aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/jinwei.me')
-rw-r--r--deprecated/jinwei.me/css/css.css18
-rw-r--r--deprecated/jinwei.me/css/demo.css176
-rw-r--r--deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xF1YPouZEKgzpqZW9wN-3Ek.woffbin0 -> 21512 bytes
-rw-r--r--deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xONSK5BxN3NFS4EJkViHIqo.woffbin0 -> 20972 bytes
-rw-r--r--deprecated/jinwei.me/css/font/icons.eotbin0 -> 7028 bytes
-rw-r--r--deprecated/jinwei.me/css/font/icons.svg68
-rw-r--r--deprecated/jinwei.me/css/font/icons.ttfbin0 -> 6780 bytes
-rw-r--r--deprecated/jinwei.me/css/font/icons.woffbin0 -> 4548 bytes
-rw-r--r--deprecated/jinwei.me/css/font/jIXlqT1WKafUSwj6s9AzV6XnXbwdDC8wAz6IIzmCDUP3rGVtsTkPsbDajuO5ueQw.woffbin0 -> 19916 bytes
-rw-r--r--deprecated/jinwei.me/css/style.css213
-rw-r--r--deprecated/jinwei.me/css/style2.css225
-rw-r--r--deprecated/jinwei.me/css/style3.css227
-rw-r--r--deprecated/jinwei.me/css/style4.css207
-rw-r--r--deprecated/jinwei.me/css/style5.css223
-rw-r--r--deprecated/jinwei.me/images/ImageAttribution.txt7
-rw-r--r--deprecated/jinwei.me/images/cartboard.jpgbin0 -> 29786 bytes
-rw-r--r--deprecated/jinwei.me/images/cover.jpgbin0 -> 31879 bytes
-rw-r--r--deprecated/jinwei.me/images/cover2.jpgbin0 -> 23878 bytes
-rw-r--r--deprecated/jinwei.me/images/dark_leather.jpgbin0 -> 13135 bytes
-rw-r--r--deprecated/jinwei.me/images/egg_shell.jpgbin0 -> 24929 bytes
-rw-r--r--deprecated/jinwei.me/images/fabric.pngbin0 -> 135491 bytes
-rw-r--r--deprecated/jinwei.me/index.html148
-rw-r--r--deprecated/jinwei.me/js/jquery.min.js3576
-rw-r--r--deprecated/jinwei.me/js/jquery.swatchbook.js255
-rw-r--r--deprecated/jinwei.me/js/modernizr.custom.79639.js167
-rw-r--r--deprecated/jinwei.me/mobile/css/bootstrap-theme.css347
-rw-r--r--deprecated/jinwei.me/mobile/css/bootstrap-theme.css.map1
-rw-r--r--deprecated/jinwei.me/mobile/css/bootstrap-theme.min.css7
-rw-r--r--deprecated/jinwei.me/mobile/css/bootstrap.css5785
-rw-r--r--deprecated/jinwei.me/mobile/css/bootstrap.css.map1
-rw-r--r--deprecated/jinwei.me/mobile/css/bootstrap.min.css7
-rw-r--r--deprecated/jinwei.me/mobile/css/navbar.less616
-rw-r--r--deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.eotbin0 -> 20335 bytes
-rw-r--r--deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.svg229
-rw-r--r--deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.ttfbin0 -> 41280 bytes
-rw-r--r--deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.woffbin0 -> 23320 bytes
-rw-r--r--deprecated/jinwei.me/mobile/index.html98
-rw-r--r--deprecated/jinwei.me/mobile/js/bootstrap.js1988
-rw-r--r--deprecated/jinwei.me/mobile/js/bootstrap.min.js759
-rw-r--r--deprecated/jinwei.me/mobile/js/jquery.min.js3375
-rw-r--r--deprecated/jinwei.me/mobile/js/less.js3635
41 files changed, 22358 insertions, 0 deletions
diff --git a/deprecated/jinwei.me/css/css.css b/deprecated/jinwei.me/css/css.css
new file mode 100644
index 0000000..072272c
--- /dev/null
+++ b/deprecated/jinwei.me/css/css.css
@@ -0,0 +1,18 @@
1@font-face {
2 font-family: 'Open Sans Condensed';
3 font-style: normal;
4 font-weight: 300;
5 src: local('Open Sans Cond Light'), local('OpenSans-CondensedLight'), url(./font/gk5FxslNkTTHtojXrkp-xF1YPouZEKgzpqZW9wN-3Ek.woff) format('woff');
6}
7@font-face {
8 font-family: 'Open Sans Condensed';
9 font-style: normal;
10 font-weight: 700;
11 src: local('Open Sans Condensed Bold'), local('OpenSans-CondensedBold'), url(./font/gk5FxslNkTTHtojXrkp-xONSK5BxN3NFS4EJkViHIqo.woff) format('woff');
12}
13@font-face {
14 font-family: 'Open Sans Condensed';
15 font-style: italic;
16 font-weight: 300;
17 src: local('Open Sans Cond Light Italic'), local('OpenSans-CondensedLightItalic'), url(./font/jIXlqT1WKafUSwj6s9AzV6XnXbwdDC8wAz6IIzmCDUP3rGVtsTkPsbDajuO5ueQw.woff) format('woff');
18}
diff --git a/deprecated/jinwei.me/css/demo.css b/deprecated/jinwei.me/css/demo.css
new file mode 100644
index 0000000..8eaa932
--- /dev/null
+++ b/deprecated/jinwei.me/css/demo.css
@@ -0,0 +1,176 @@
1@font-face {
2 font-family: 'icons';
3 src: url("font/icons.eot");
4 src: url(".font/icons.eot?#iefix") format('embedded-opentype'), url("font/icons.woff") format('woff'), url("font/icons.ttf") format('truetype'), url("font/icons.svg#icons") format('svg');
5 font-weight: normal;
6 font-style: normal;
7}
8
9*,
10*:after,
11*:before {
12 -webkit-box-sizing: border-box;
13 -moz-box-sizing: border-box;
14 box-sizing: border-box;
15 padding: 0;
16 margin: 0;
17}
18
19/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
20.clearfix:before,
21.clearfix:after {
22 content: " "; /* 1 */
23 display: table; /* 2 */
24}
25
26.clearfix:after {
27 clear: both;
28}
29
30.clearfix {
31 *zoom: 1;
32}
33
34body{
35 font-family: 'Open Sans Condensed','Arial Narrow', serif;
36 background: #ddd url(../images/egg_shell.jpg) repeat top left;
37 font-weight: 400;
38 font-size: 15px;
39 color: #333;
40 overflow: scroll;
41 overflow-x: hidden;
42}
43a{
44 color: #555;
45 text-decoration: none;
46}
47.container{
48 width: 100%;
49 position: relative;
50}
51.clr{
52 clear: both;
53 padding: 0;
54 height: 0;
55 margin: 0;
56}
57.main{
58 width: 1000px;
59 height: 700px;
60 overflow: hidden;
61 margin: 0 auto;
62 position: relative;
63}
64.container > header{
65 margin: 10px;
66 padding: 20px 10px 10px 10px;
67 position: relative;
68 display: block;
69 text-shadow: 1px 1px 1px rgba(0,0,0,0.2);
70 text-align: center;
71}
72.container > header h1{
73 font-size: 36px;
74 line-height: 36px;
75 margin: 0;
76 position: relative;
77 font-weight: 300;
78 color: #524f4e;
79 text-shadow: 1px 1px 1px rgba(255,255,255,0.7);
80}
81.container > header h1 span{
82 font-weight: 700;
83}
84.container > header h2{
85 font-size: 14px;
86 font-weight: 300;
87 margin: 0;
88 padding: 15px 0 5px 0;
89 color: #888;
90 font-family: Cambria, Georgia, serif;
91 font-style: italic;
92 text-shadow: 1px 1px 1px rgba(255,255,255,0.9);
93}
94/* Header Style */
95.codrops-top{
96 line-height: 24px;
97 font-size: 11px;
98 background: #fff;
99 background: rgba(255, 255, 255, 0.6);
100 text-transform: uppercase;
101 z-index: 9999;
102 position: relative;
103 font-family: Cambria, Georgia, serif;
104 box-shadow: 1px 0px 2px rgba(0,0,0,0.2);
105}
106.codrops-top a{
107 padding: 0px 10px;
108 letter-spacing: 1px;
109 color: #333;
110 display: inline-block;
111}
112.codrops-top a:hover{
113 background: rgba(255,255,255,0.3);
114}
115.codrops-top span.right{
116 float: right;
117}
118.codrops-top span.right a{
119 float: left;
120 display: block;
121}
122/* Demo Buttons Style */
123.codrops-demos{
124 text-align:center;
125 display: block;
126 line-height: 30px;
127 padding: 5px 0px;
128}
129.codrops-demos a{
130 display: inline-block;
131 margin: 0px 4px;
132 padding: 0px 6px;
133 color: #aaa;
134 line-height: 20px;
135 font-size: 13px;
136 text-shadow: 1px 1px 1px #fff;
137 border: 1px solid #fff;
138 background: #ffffff; /* Old browsers */
139 background: -moz-linear-gradient(top, #ffffff 0%, #f6f6f6 47%, #ededed 100%); /* FF3.6+ */
140 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(47%,#f6f6f6), color-stop(100%,#ededed)); /* Chrome,Safari4+ */
141 background: -webkit-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); /* Chrome10+,Safari5.1+ */
142 background: -o-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); /* Opera 11.10+ */
143 background: -ms-linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); /* IE10+ */
144 background: linear-gradient(top, #ffffff 0%,#f6f6f6 47%,#ededed 100%); /* W3C */
145 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ededed',GradientType=0 ); /* IE6-9 */
146 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
147}
148.codrops-demos a:hover{
149 color: #333;
150 background: #fff;
151}
152.codrops-demos a:active{
153 background: #fff;
154}
155.codrops-demos a.current-demo,
156.codrops-demos a.current-demo:hover{
157 background: #f0f0f0;
158 border-color: #d9d9d9;
159 color: #aaa;
160 box-shadow: 0 1px 1px rgba(255,255,255,0.7);
161 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f6f6f6', endColorstr='#f6f6f6',GradientType=0 ); /* IE6-9 */
162}
163.support-note span{
164 color: #ac375d;
165 font-size: 16px;
166 display: none;
167 font-weight: bold;
168 text-align: center;
169 padding: 5px 0;
170}
171.no-cssanimations .support-note span.no-cssanimations,
172.no-csstransforms .support-note span.no-csstransforms,
173.no-csstransforms3d .support-note span.no-csstransforms3d,
174.no-csstransitions .support-note span.no-csstransitions{
175 display: block;
176}
diff --git a/deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xF1YPouZEKgzpqZW9wN-3Ek.woff b/deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xF1YPouZEKgzpqZW9wN-3Ek.woff
new file mode 100644
index 0000000..66adc47
--- /dev/null
+++ b/deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xF1YPouZEKgzpqZW9wN-3Ek.woff
Binary files differ
diff --git a/deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xONSK5BxN3NFS4EJkViHIqo.woff b/deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xONSK5BxN3NFS4EJkViHIqo.woff
new file mode 100644
index 0000000..fa873b2
--- /dev/null
+++ b/deprecated/jinwei.me/css/font/gk5FxslNkTTHtojXrkp-xONSK5BxN3NFS4EJkViHIqo.woff
Binary files differ
diff --git a/deprecated/jinwei.me/css/font/icons.eot b/deprecated/jinwei.me/css/font/icons.eot
new file mode 100644
index 0000000..2a33508
--- /dev/null
+++ b/deprecated/jinwei.me/css/font/icons.eot
Binary files differ
diff --git a/deprecated/jinwei.me/css/font/icons.svg b/deprecated/jinwei.me/css/font/icons.svg
new file mode 100644
index 0000000..4c51f0f
--- /dev/null
+++ b/deprecated/jinwei.me/css/font/icons.svg
@@ -0,0 +1,68 @@
1<?xml version="1.0" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3<svg xmlns="http://www.w3.org/2000/svg">
4 <metadata>
5 Created by FontForge 20100429 at Mon Jul 2 09:32:12 2012
6 By root
7Copyright (C) 2012 by original authors @ fontello.com
8</metadata>
9<defs> <font id="icons" horiz-adv-x="1030" ><font-face
10 font-family="fontello"
11 font-weight="500"
12 font-stretch="normal"
13 units-per-em="1000"
14 panose-1="2 0 6 3 0 0 0 0 0 0"
15 ascent="800"
16 descent="-200"
17 cap-height="725"
18 bbox="13.9355 -190 1015 790"
19 underline-thickness="50"
20 underline-position="-100"
21 unicode-range="U+0030-0042"
22 />
23 <missing-glyph horiz-adv-x="364"
24d="M33 0v666h265v-666h-265zM66 33h199v600h-199v-600z" />
25 <glyph glyph-name=".notdef" horiz-adv-x="364"
26d="M33 0v666h265v-666h-265zM66 33h199v600h-199v-600z" />
27 <glyph glyph-name=".null" horiz-adv-x="0"
28 />
29 <glyph glyph-name="nonmarkingreturn" horiz-adv-x="333"
30 />
31 <glyph glyph-name="zero" unicode="0" horiz-adv-x="1010"
32d="M995 550h-100v-100h100v-100h-100v-100h100v-100h-100v-100h100v-60q0 -16 -11.5 -28t-28.5 -12h-900q-17 0 -28.5 12t-11.5 28v60h100v100h-100v100h100v100h-100v100h100v100h-100v60q0 16 11.5 28t28.5 12h900q17 0 28.5 -12t11.5 -28v-60zM395 150l250 150l-250 150
33v-300z" />
34 <glyph glyph-name="two" unicode="2"
35d="M871 466h-100l-124 151l-214 -151h-180q-53 0 -90.5 -38t-37.5 -92v-159l-107 297q-6 16 0.5 31t21.5 20l680 248q15 5 29 -2t20 -23zM977 376q16 0 27 -11.5t11 -28.5v-471q0 -17 -11 -28.5t-27 -11.5h-724q-16 0 -27 11.5t-11 28.5v471q0 17 11 28.5t27 11.5h724z
36M922 -75v161l-73 161l-167 -60l-129 -133l-139 172l-92 -215v-86h600z" />
37 <glyph glyph-name="three" unicode="3"
38d="M515 400q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM915 550q41 0 70.5 -29.5t29.5 -70.5v-450q0 -41 -29.5 -70.5t-70.5 -29.5h-800q-41 0 -70.5 29.5t-29.5 70.5v450q0 41 29.5 70.5t70.5 29.5h120q12 0 23.5 8t15.5 20l32 93
39q4 12 15 20.5t24 8.5h340q12 0 23.5 -8.5t15.5 -20.5l32 -93q4 -12 15 -20t24 -8h120zM515 0q103 0 176.5 73t73.5 177t-73.5 177t-176.5 73t-176.5 -73t-73.5 -177t73.5 -177t176.5 -73zM880 380q14 0 24.5 10.5t10.5 24.5t-10.5 24.5t-24.5 10.5t-24.5 -10.5t-10.5 -24.5
40t10.5 -24.5t24.5 -10.5z" />
41 <glyph glyph-name="four" unicode="4"
42d="M515 580q92 0 177 -25.5t141.5 -62t99 -77.5t62.5 -71.5t20 -43.5t-20 -43.5t-62.5 -71.5t-99 -77.5t-141.5 -62t-177 -25.5t-177 25.5t-141.5 62t-99 77.5t-62.5 71.5t-20 43.5t20 43.5t62.5 71.5t99 77.5t141.5 62t177 25.5zM515 85q92 0 157 63t65 152t-65 152
43t-157 63t-157 -63t-65 -152t65 -152t157 -63zM515 300q6 -6 18 -5t28 4.5t30.5 7t24.5 2t10 -8.5q0 -44 -32.5 -76t-78.5 -32t-78.5 32t-32.5 76t32.5 76t78.5 32q14 0 10 -23t-12 -47t2 -38z" />
44 <glyph glyph-name="five" unicode="5" horiz-adv-x="870"
45d="M774 300q0 -76 81 -122q-14 -45 -35 -84q-72 19 -135 -44q-55 -55 -34 -135q-39 -21 -84 -35q-21 37 -57 59t-75 22t-75 -22t-57 -59q-45 14 -84 35q21 80 -34 135t-135 34q-21 39 -35 84q37 21 59 57t22 75q0 76 -81 122q14 45 35 84q72 -19 135 44q55 55 34 135
46q39 21 84 35q21 -37 57 -59t75 -22t75 22t57 59q45 -14 84 -35q-21 -80 34 -135q63 -63 135 -44q21 -39 35 -84q-81 -46 -81 -122zM435 117q76 0 129.5 53.5t53.5 129.5t-53.5 129.5t-129.5 53.5t-129.5 -53.5t-53.5 -129.5t53.5 -129.5t129.5 -53.5z" />
47 <glyph glyph-name="six" unicode="6"
48d="M470 276v-100h-455q7 226 10 292q2 53 24.5 80.5t75.5 27.5h160l37 70q22 41 23 42q14 25 23 31.5t36 6.5h222q27 0 36 -6.5t23 -31.5q1 -1 23 -42l37 -70h160q53 0 75.5 -27.5t24.5 -80.5l10 -292h-455v100h-90zM398 630q-3 -6 -29 -54h292q-26 48 -29 54
49q-8 17 -15 21.5t-25 4.5h-154q-18 0 -25 -4.5t-15 -21.5zM560 26v100h430q-6 -89 -10 -167q-1 -15 -4 -27t-11.5 -26t-27.5 -22t-47 -8h-750q-28 0 -47 8t-27.5 22t-11.5 26t-4 27l-10 167h430v-100h90z" />
50 <glyph glyph-name="seven" unicode="7"
51d="M282 -170l125 400h-179l-113 -100h-100l80 170l-80 170h100l113 -100h179l-125 400h100l225 -400h258q6 0 16 -0.5t36 -4t46 -10.5t36 -21t16 -34q0 -31 -37.5 -48.5t-75.5 -19.5l-37 -2h-258l-225 -400h-100z" />
52 <glyph glyph-name="eight" unicode="8" horiz-adv-x="990"
53d="M495 780q130 0 240.5 -64.5t175 -175t64.5 -240.5t-64.5 -240.5t-175 -175t-240.5 -64.5t-240.5 64.5t-175 175t-64.5 240.5t64.5 240.5t175 175t240.5 64.5zM904 300q0 133 -78 240t-201 148q-18 -22 -17 -32q4 -38 18.5 -50.5t29.5 -6.5l32 13q16 6 20 1q14 -16 10 -31
54t-18.5 -27.5t-28 -30.5t-18.5 -39t10 -53q18 -36 40 -49.5t56 -14.5q19 0 33 -20.5t19.5 -41t7.5 -40.5q3 -27 -1 -72t-14 -67q-9 -27 -3 -46t19 -30q84 109 84 249zM439 705q-111 -16 -198.5 -85.5t-127.5 -172.5q1 0 21 -1.5t29.5 -3t25 -5t24 -8.5t11.5 -12
55q4 -12 -13.5 -44.5t-17.5 -60.5q0 -20 11.5 -35t26 -22.5t26 -19.5t11.5 -27q0 -26 8.5 -66.5t8.5 -44.5q0 -13 35 -55t52 -42q10 0 11.5 22.5t-2 55t-3.5 38.5q2 31 14 75q7 26 24 44t34 25.5t33.5 19t22.5 26.5q9 32 10.5 54.5t-10.5 40t-25.5 28t-33.5 18t-34.5 11
56t-29.5 6.5t-18 4q-17 6 -42 7t-36 -3t-28 11.5t-17 30.5q0 9 15 25.5t35.5 36.5t27.5 32q8 13 17 20t23 15.5t27 20.5q4 3 25 16.5t27 24.5zM366 -89q63 -20 129 -20q123 0 226 68q-12 22 -48.5 29.5t-70.5 4.5q-23 -2 -64 -18t-47 -17q-5 -1 -32.5 -8t-42.5 -8
57q-12 -1 -26.5 -13.5t-23.5 -17.5z" />
58 <glyph glyph-name="nine" unicode="9" horiz-adv-x="930"
59d="M899 255q23 -49 15 -96l-34 -184q-4 -21 -21.5 -35.5t-38.5 -14.5h-710q-21 0 -38.5 14.5t-21.5 35.5l-34 184q-8 47 15 96l157 375q9 19 31 32t43 13h103l-20 -203h-135l255 -212l255 212h-135l-20 203h103q21 0 43 -13t31 -32zM831 118q3 21 -10 36t-34 15h-644
60q-21 0 -34 -15t-10 -36l13 -72q3 -21 20 -35.5t38 -14.5h590q21 0 38 14.5t20 35.5z" />
61 <glyph glyph-name="A" unicode="A"
62d="M785 479l-270 -254l-270 254h150v246h240v-246h150zM982 148q18 -10 27 -31.5t4 -41.5l-28 -153q-4 -19 -22.5 -33t-39.5 -14h-816q-21 0 -39.5 14t-22.5 33l-28 153q-5 20 4 41.5t27 31.5l159 107h98l-170 -131h178q9 0 12 -6l40 -112h300l40 112q3 6 12 6h178l-170 131
63h98z" />
64 <glyph glyph-name="B" unicode="B" horiz-adv-x="610"
65d="M495 790q41 0 70.5 -29.5t29.5 -70.5v-780q0 -41 -29.5 -70.5t-70.5 -29.5h-380q-41 0 -70.5 29.5t-29.5 70.5v780q0 41 29.5 70.5t70.5 29.5h380zM305 -150q29 0 49.5 14.5t20.5 35.5t-20.5 35.5t-49.5 14.5t-49.5 -14.5t-20.5 -35.5t20.5 -35.5t49.5 -14.5zM515 0v660
66h-420v-660h420z" /></font>
67</defs>
68</svg> \ No newline at end of file
diff --git a/deprecated/jinwei.me/css/font/icons.ttf b/deprecated/jinwei.me/css/font/icons.ttf
new file mode 100644
index 0000000..a08b86d
--- /dev/null
+++ b/deprecated/jinwei.me/css/font/icons.ttf
Binary files differ
diff --git a/deprecated/jinwei.me/css/font/icons.woff b/deprecated/jinwei.me/css/font/icons.woff
new file mode 100644
index 0000000..9168d2d
--- /dev/null
+++ b/deprecated/jinwei.me/css/font/icons.woff
Binary files differ
diff --git a/deprecated/jinwei.me/css/font/jIXlqT1WKafUSwj6s9AzV6XnXbwdDC8wAz6IIzmCDUP3rGVtsTkPsbDajuO5ueQw.woff b/deprecated/jinwei.me/css/font/jIXlqT1WKafUSwj6s9AzV6XnXbwdDC8wAz6IIzmCDUP3rGVtsTkPsbDajuO5ueQw.woff
new file mode 100644
index 0000000..ffd3d2f
--- /dev/null
+++ b/deprecated/jinwei.me/css/font/jIXlqT1WKafUSwj6s9AzV6XnXbwdDC8wAz6IIzmCDUP3rGVtsTkPsbDajuO5ueQw.woff
Binary files differ
diff --git a/deprecated/jinwei.me/css/style.css b/deprecated/jinwei.me/css/style.css
new file mode 100644
index 0000000..921a326
--- /dev/null
+++ b/deprecated/jinwei.me/css/style.css
@@ -0,0 +1,213 @@
1.sb-container {
2 position: relative;
3 width: 150px;
4 height: 400px;
5 margin: 30px auto 0 auto;
6}
7
8.sb-container div {
9 position: absolute;
10 top: 0;
11 left: 0;
12 width: 130px;
13 background: #fff;
14 height: 400px;
15 border-radius: 5px;
16 cursor: pointer;
17 text-align: center;
18 background-image: url(../images/fabric.png);
19
20 -webkit-transform-origin: 25% 90%;
21 -moz-transform-origin: 25% 90%;
22 -o-transform-origin: 25% 90%;
23 -ms-transform-origin: 25% 90%;
24 transform-origin: 25% 90%;
25
26 -webkit-backface-visibility: hidden;
27 -moz-backface-visibility: hidden;
28 -ms-backface-visibility: hidden;
29 -o-backface-visibility: hidden;
30 backface-visibility: hidden;
31
32 -webkit-tap-highlight-color: rgba(0,0,0,0);
33}
34
35.sb-container div:nth-child(1){
36 background-color: #ea2a29;
37 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 1px 1px 1px rgba(0,0,0,0.1);
38}
39
40.sb-container div:nth-child(2){
41 background-color: #f16729;
42 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 2px 2px 1px rgba(0,0,0,0.1);
43}
44
45.sb-container div:nth-child(3){
46 background-color: #f89322;
47 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 3px 3px 2px rgba(0,0,0,0.2);
48}
49
50.sb-container div:nth-child(4){
51 background-color: #ffcf14;
52 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 4px 4px 4px rgba(0,0,0,0.2);
53}
54
55.sb-container div:nth-child(5){
56 background-color: #ffea0d;
57 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 5px 5px 6px rgba(0,0,0,0.3);
58}
59
60.sb-container div:nth-child(6){
61 background-color: #87b11d;
62 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 6px 6px 8px rgba(0,0,0,0.3);
63}
64
65.sb-container div:nth-child(7){
66 background-color: #008253;
67 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 7px 7px 10px rgba(0,0,0,0.4);
68}
69
70.sb-container div:nth-child(8){
71 background-color: #3277b5;
72 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 8px 8px 12px rgba(0,0,0,0.4);
73}
74
75.sb-container div:nth-child(9){
76 background-color: #4c549f;
77 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 9px 9px 14px rgba(0,0,0,0.4);
78}
79
80.sb-container div:nth-child(10){
81 background-color: #764394;
82 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 10px 10px 16px rgba(0,0,0,0.4);
83}
84
85.sb-container div:nth-child(11){
86 background-color: #ca0d86;
87 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 11px 11px 18px rgba(0,0,0,0.4);
88}
89
90.sb-container div:last-child{
91 background: #645b5c url(../images/cover.jpg) repeat center center;
92 box-shadow:
93 -1px -1px 3px rgba(0,0,0,0.2),
94 12px 12px 20px rgba(0,0,0,0.6),
95 inset 2px 2px 0 rgba(255, 255, 255, 0.1);
96}
97
98.sb-container div:last-child:after{
99 content: '';
100 position: absolute;
101 bottom: 15px;
102 left: 15px;
103 width: 20px;
104 height: 20px;
105 border-radius: 50%;
106 background: #dddddd;
107 background: -moz-linear-gradient(-45deg, #dddddd 0%, #58535e 48%, #889396 100%);
108 background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#dddddd), color-stop(48%,#58535e), color-stop(100%,#889396));
109 background: -webkit-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
110 background: -o-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
111 background: -ms-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
112 background: linear-gradient(135deg, #dddddd 0%,#58535e 48%,#889396 100%);
113 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dddddd', endColorstr='#889396',GradientType=1 );
114 box-shadow: -1px -1px 1px rgba(0,0,0,0.5), 1px 1px 1px rgba(255,255,255,0.1);
115}
116
117.sb-container div h4{
118 color: rgba(255,255,255,0.9);
119 text-shadow: 1px 1px 1px rgba(0,0,0,0.2);
120 font-weight: 700;
121 font-size: 16px;
122 text-transform: uppercase;
123 border-top: 1px dashed rgba(0,0,0,0.1);
124 border-bottom: 1px dashed rgba(0,0,0,0.1);
125 margin: 5px;
126 padding: 5px;
127 -webkit-touch-callout: none;
128 -webkit-user-select: none;
129 -khtml-user-select: none;
130 -moz-user-select: none;
131 -ms-user-select: none;
132 user-select: none;
133}
134
135.sb-container div:last-child h4{
136 background: rgba(0,0,0,0.2);
137 box-shadow: 0 1px 1px rgba(255,255,255,0.1);
138}
139
140.sb-container div:last-child h5{
141 font-size: 50px;
142 white-space: nowrap;
143 text-align: left;
144 margin: 0;
145 padding: 0;
146 position: absolute;
147 line-height: 50px;
148 top: 0px;
149 left: 0px;
150 color: #111;
151 text-shadow: -1px -1px 1px rgba(255,255,255,0.1);
152 text-transform: uppercase;
153
154 -webkit-transform: rotate(-90deg) translateX(-157%) translateY(73px);
155 -moz-transform: rotate(-90deg) translateX(-157%) translateY(73px);
156 -o-transform: rotate(-90deg) translateX(-157%) translateY(73px);
157 -ms-transform: rotate(-90deg) translateX(-157%) translateY(73px);
158 transform: rotate(-90deg) translateX(-157%) translateY(73px);
159
160 -webkit-transform-origin: 0 0;
161 -moz-transform-origin: 0 0;
162 -o-transform-origin: 0 0;
163 -ms-transform-origin: 0 0;
164 transform-origin: 0 0;
165
166 -webkit-touch-callout: none;
167 -webkit-user-select: none;
168 -khtml-user-select: none;
169 -moz-user-select: none;
170 -ms-user-select: none;
171 user-select: none;
172}
173
174span.sb-icon{
175 display: block;
176 height: 70px;
177 width: 70px;
178 margin: 20px auto;
179 -webkit-touch-callout: none;
180 -webkit-user-select: none;
181 -khtml-user-select: none;
182 -moz-user-select: none;
183 -ms-user-select: none;
184 user-select: none;
185}
186
187span.sb-icon:before {
188 font-family: 'icons';
189 font-style: normal;
190 font-weight: normal;
191 speak: none;
192 display: block;
193 text-decoration: inherit;
194 text-align: center;
195 text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3);
196 line-height: 64px;
197 width: 100%;
198 font-size: 60px;
199 color: #000;
200 text-shadow: 0 0 1px #000;
201}
202
203.icon-cog:before { content: '\35'; } /* '5' */
204.icon-flight:before { content: '\37'; } /* '7' */
205.icon-eye:before { content: '\34'; } /* '4' */
206.icon-install:before { content: '\39'; } /* '9' */
207.icon-bag:before { content: '\36'; } /* '6' */
208.icon-globe:before { content: '\38'; } /* '8' */
209.icon-picture:before { content: '\32'; } /* '2' */
210.icon-video:before { content: '\30'; } /* '0' */
211.icon-download:before { content: '\41'; } /* 'A' */
212.icon-mobile:before { content: '\42'; } /* 'B' */
213.icon-camera:before { content: '\33'; } /* '3' */ \ No newline at end of file
diff --git a/deprecated/jinwei.me/css/style2.css b/deprecated/jinwei.me/css/style2.css
new file mode 100644
index 0000000..b2c7b4b
--- /dev/null
+++ b/deprecated/jinwei.me/css/style2.css
@@ -0,0 +1,225 @@
1.sb-container {
2 position: relative;
3 width: 130px;
4 height: 400px;
5 margin: 30px auto 0 auto;
6}
7
8.sb-container div {
9 position: absolute;
10 top: 0;
11 left: 0;
12 width: 150px;
13 background: #fff;
14 height: 400px;
15 border-radius: 5px;
16 box-shadow: 1px 1px 3px rgba(0,0,0,0.1);
17 cursor: pointer;
18 text-align: center;
19 background-image: url(../images/fabric.png);
20 -webkit-transform-origin: 25% 90%;
21 -moz-transform-origin: 25% 90%;
22 -o-transform-origin: 25% 90%;
23 -ms-transform-origin: 25% 90%;
24 transform-origin: 25% 90%;
25
26 -webkit-backface-visibility: hidden;
27 -moz-backface-visibility: hidden;
28 -ms-backface-visibility: hidden;
29 -o-backface-visibility: hidden;
30 backface-visibility: hidden;
31
32 -webkit-tap-highlight-color: rgba(0,0,0,0);
33}
34
35.sb-container div:nth-child(1){
36 background-color: #ea2a29;
37 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -1px 1px 1px rgba(0,0,0,0.1);
38}
39
40.sb-container div:nth-child(2){
41 background-color: #f16729;
42 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -2px 2px 1px rgba(0,0,0,0.1);
43}
44
45.sb-container div:nth-child(3){
46 background-color: #f89322;
47 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -3px 3px 2px rgba(0,0,0,0.2);
48}
49
50.sb-container div:nth-child(4){
51 background-color: #ffcf14;
52 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -4px 4px 4px rgba(0,0,0,0.2);
53}
54
55.sb-container div:nth-child(5){
56 background-color: #ffea0d;
57 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -5px 5px 6px rgba(0,0,0,0.3);
58}
59
60.sb-container div:nth-child(6){
61 background-color: #87b11d;
62 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -6px 6px 8px rgba(0,0,0,0.3);
63}
64
65.sb-container div:nth-child(7){
66 background-color: #008253;
67 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -7px 7px 10px rgba(0,0,0,0.4);
68}
69
70.sb-container div:nth-child(8){
71 background-color: #3277b5;
72 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -8px 8px 12px rgba(0,0,0,0.4);
73}
74
75.sb-container div:nth-child(9){
76 background-color: #4c549f;
77 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -9px 9px 14px rgba(0,0,0,0.4);
78}
79
80.sb-container div:nth-child(10){
81 background-color: #764394;
82 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -10px 10px 16px rgba(0,0,0,0.4);
83}
84
85.sb-container div:nth-child(11){
86 background-color: #ca0d86;
87 box-shadow: 1px 1px 3px rgba(0,0,0,0.1), -11px 11px 18px rgba(0,0,0,0.4);
88}
89
90.sb-container div:last-child{
91 background: #645b5c url(../images/cover.jpg) repeat center center;
92 box-shadow:
93 1px 1px 3px rgba(0,0,0,0.2),
94 -12px 12px 20px rgba(0,0,0,0.6),
95 inset 2px 2px 0 rgba(255, 255, 255, 0.1);
96}
97
98.sb-container div:last-child:after{
99 content: '';
100 position: absolute;
101 bottom: 15px;
102 left: 15px;
103 width: 20px;
104 height: 20px;
105 border-radius: 50%;
106 background: #dddddd;
107 background: -moz-linear-gradient(-45deg, #dddddd 0%, #58535e 48%, #889396 100%);
108 background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#dddddd), color-stop(48%,#58535e), color-stop(100%,#889396));
109 background: -webkit-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
110 background: -o-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
111 background: -ms-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
112 background: linear-gradient(135deg, #dddddd 0%,#58535e 48%,#889396 100%);
113 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dddddd', endColorstr='#889396',GradientType=1 );
114 box-shadow: -1px -1px 1px rgba(255,255,255,0.1), 1px 1px 1px rgba(0,0,0,0.5);
115}
116
117.sb-container div h4{
118 color: rgba(255,255,255,0.9);
119 text-shadow: 1px 1px 1px rgba(0,0,0,0.2);
120 font-weight: 700;
121 font-size: 16px;
122 text-transform: uppercase;
123 border-top: 1px dashed rgba(0,0,0,0.1);
124 border-bottom: 1px dashed rgba(0,0,0,0.1);
125 margin: 5px;
126 padding: 5px;
127 -webkit-touch-callout: none;
128 -webkit-user-select: none;
129 -khtml-user-select: none;
130 -moz-user-select: none;
131 -ms-user-select: none;
132 user-select: none;
133}
134
135.sb-container div:last-child h4{
136 background: rgba(0,0,0,0.2);
137 box-shadow: 0 1px 1px rgba(255,255,255,0.1);
138}
139
140.sb-container div:last-child h5{
141 font-size: 50px;
142 white-space: nowrap;
143 text-align: left;
144 margin: 0;
145 padding: 0;
146 position: absolute;
147 line-height: 50px;
148 top: 0px;
149 left: 0px;
150 color: #111;
151 text-shadow: -1px -1px 1px rgba(255,255,255,0.1);
152 text-transform: uppercase;
153
154 -webkit-transform: rotate(90deg) translateX(40%) translateY(-60px);
155 -moz-transform: rotate(90deg) translateX(40%) translateY(-60px);
156 -o-transform: rotate(90deg) translateX(40%) translateY(-60px);
157 -ms-transform: rotate(90deg) translateX(40%) translateY(-60px);
158 transform: rotate(90deg) translateX(40%) translateY(-60px);
159
160 -webkit-transform-origin: 0 0;
161 -moz-transform-origin: 0 0;
162 -o-transform-origin: 0 0;
163 -ms-transform-origin: 0 0;
164 transform-origin: 0 0;
165
166 -webkit-touch-callout: none;
167 -webkit-user-select: none;
168 -khtml-user-select: none;
169 -moz-user-select: none;
170 -ms-user-select: none;
171 user-select: none;
172}
173
174span.sb-toggle{
175 padding: 5px;
176 margin: 10px;
177 display: block;
178 color: #292524;
179 font-size: 14px;
180 font-weight: 700;
181 text-transform: uppercase;
182 line-height: 14px;
183 text-shadow: 1px 1px 1px rgba(255,255,255,0.1);
184 text-align: center;
185}
186
187span.sb-icon{
188 display: block;
189 height: 70px;
190 width: 70px;
191 margin: 20px auto;
192 -webkit-touch-callout: none;
193 -webkit-user-select: none;
194 -khtml-user-select: none;
195 -moz-user-select: none;
196 -ms-user-select: none;
197 user-select: none;
198}
199span.sb-icon:before {
200 font-family: 'icons';
201 font-style: normal;
202 font-weight: normal;
203 speak: none;
204 display: block;
205 text-decoration: inherit;
206 text-align: center;
207 text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3);
208 line-height: 64px;
209 width: 100%;
210 font-size: 60px;
211 color: #000;
212 text-shadow: 0 0 1px #000;
213}
214
215.icon-cog:before { content: '\35'; } /* '5' */
216.icon-flight:before { content: '\37'; } /* '7' */
217.icon-eye:before { content: '\34'; } /* '4' */
218.icon-install:before { content: '\39'; } /* '9' */
219.icon-bag:before { content: '\36'; } /* '6' */
220.icon-globe:before { content: '\38'; } /* '8' */
221.icon-picture:before { content: '\32'; } /* '2' */
222.icon-video:before { content: '\30'; } /* '0' */
223.icon-download:before { content: '\41'; } /* 'A' */
224.icon-mobile:before { content: '\42'; } /* 'B' */
225.icon-camera:before { content: '\33'; } /* '3' */
diff --git a/deprecated/jinwei.me/css/style3.css b/deprecated/jinwei.me/css/style3.css
new file mode 100644
index 0000000..1ef270e
--- /dev/null
+++ b/deprecated/jinwei.me/css/style3.css
@@ -0,0 +1,227 @@
1.sb-container {
2 position: relative;
3 width: 150px;
4 height: 400px;
5 margin: 30px auto 0 auto;
6}
7
8.sb-container div {
9 position: absolute;
10 top: 0;
11 left: 0;
12 width: 130px;
13 background: #fff;
14 height: 400px;
15 border-radius: 5px;
16 box-shadow: -1px -1px 3px rgba(0,0,0,0.1);
17 cursor: pointer;
18 text-align: center;
19
20 -webkit-transform-origin: 25% 90%;
21 -moz-transform-origin: 25% 90%;
22 -o-transform-origin: 25% 90%;
23 -ms-transform-origin: 25% 90%;
24 transform-origin: 25% 90%;
25
26 -webkit-backface-visibility: hidden;
27 -moz-backface-visibility: hidden;
28 -ms-backface-visibility: hidden;
29 -o-backface-visibility: hidden;
30 backface-visibility: hidden;
31
32 -webkit-tap-highlight-color: rgba(0,0,0,0);
33}
34
35.sb-container div:nth-child(1){
36 background-color: #ea2a29;
37 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 1px 1px 1px rgba(0,0,0,0.1), inset 0 3px 0 rgba(255, 255, 255, 0.2);
38}
39
40.sb-container div:nth-child(2){
41 background-color: #f16729;
42 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 2px 2px 1px rgba(0,0,0,0.1), inset 0 3px 0 rgba(255, 255, 255, 0.2);
43}
44
45.sb-container div:nth-child(3){
46 background-color: #f89322;
47 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 3px 3px 2px rgba(0,0,0,0.2), inset 0 3px 0 rgba(255, 255, 255, 0.2);
48}
49
50.sb-container div:nth-child(4){
51 background-color: #ffcf14;
52 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 4px 4px 4px rgba(0,0,0,0.2), inset 0 3px 0 rgba(255, 255, 255, 0.2);
53}
54
55.sb-container div:nth-child(5){
56 background-color: #ffea0d;
57 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 5px 5px 6px rgba(0,0,0,0.3), inset 0 3px 0 rgba(255, 255, 255, 0.2);
58}
59
60.sb-container div:nth-child(6){
61 background-color: #87b11d;
62 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 6px 6px 8px rgba(0,0,0,0.3), inset 0 3px 0 rgba(255, 255, 255, 0.2);
63}
64
65.sb-container div:nth-child(7){
66 background-color: #008253;
67 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 7px 7px 10px rgba(0,0,0,0.4), inset 0 3px 0 rgba(255, 255, 255, 0.2);
68}
69
70.sb-container div:nth-child(8){
71 background-color: #3277b5;
72 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 8px 8px 12px rgba(0,0,0,0.4), inset 0 3px 0 rgba(255, 255, 255, 0.2);
73}
74
75.sb-container div:nth-child(9){
76 background-color: #4c549f;
77 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 9px 9px 14px rgba(0,0,0,0.4), inset 0 3px 0 rgba(255, 255, 255, 0.2);
78}
79
80.sb-container div:nth-child(10){
81 background-color: #764394;
82 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 10px 10px 16px rgba(0,0,0,0.4), inset 0 3px 0 rgba(255, 255, 255, 0.2);
83}
84
85.sb-container div:nth-child(11){
86 background-color: #ca0d86;
87 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 11px 11px 18px rgba(0,0,0,0.4), inset 0 3px 0 rgba(255, 255, 255, 0.2);
88}
89
90.sb-container div:last-child{
91 background: #111 url(../images/dark_leather.jpg) repeat center center;
92 box-shadow:
93 -1px -1px 3px rgba(0,0,0,0.2),
94 12px 12px 20px rgba(0,0,0,0.6),
95 inset 2px 2px 0 rgba(255, 255, 255, 0.1);
96}
97
98.sb-container div:last-child:after{
99 content: '';
100 position: absolute;
101 bottom: 15px;
102 left: 15px;
103 width: 20px;
104 height: 20px;
105 border-radius: 50%;
106 background: #dddddd;
107 background: -moz-linear-gradient(-45deg, #dddddd 0%, #58535e 48%, #889396 100%);
108 background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#dddddd), color-stop(48%,#58535e), color-stop(100%,#889396));
109 background: -webkit-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
110 background: -o-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
111 background: -ms-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
112 background: linear-gradient(135deg, #dddddd 0%,#58535e 48%,#889396 100%);
113 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dddddd', endColorstr='#889396',GradientType=1 );
114 box-shadow: -1px -1px 1px rgba(0,0,0,0.7), 1px 1px 1px rgba(255,255,255,0.1);
115}
116
117.sb-container div h4{
118 color: rgba(255,255,255,0.9);
119 text-shadow: 1px 1px 1px rgba(0,0,0,0.2);
120 font-weight: 700;
121 font-size: 16px;
122 text-transform: uppercase;
123 border-top: 1px dashed rgba(0,0,0,0.1);
124 border-bottom: 1px dashed rgba(0,0,0,0.1);
125 margin: 5px;
126 padding: 5px;
127 -webkit-touch-callout: none;
128 -webkit-user-select: none;
129 -khtml-user-select: none;
130 -moz-user-select: none;
131 -ms-user-select: none;
132 user-select: none;
133}
134
135.sb-container div:last-child h4{
136 background: rgba(0,0,0,0.2);
137 box-shadow: 0 1px 1px rgba(255,255,255,0.1);
138}
139
140.sb-container div:last-child h5{
141 font-size: 50px;
142 white-space: nowrap;
143 text-align: left;
144 margin: 0;
145 padding: 0;
146 position: absolute;
147 line-height: 50px;
148 top: 0px;
149 left: 0px;
150 color: #000;
151 text-shadow: -1px -1px 1px rgba(255,255,255,0.1);
152 text-transform: uppercase;
153
154 -webkit-transform: rotate(-90deg) translateX(-157%) translateY(73px);
155 -moz-transform: rotate(-90deg) translateX(-157%) translateY(73px);
156 -o-transform: rotate(-90deg) translateX(-157%) translateY(73px);
157 -ms-transform: rotate(-90deg) translateX(-157%) translateY(73px);
158 transform: rotate(-90deg) translateX(-157%) translateY(73px);
159
160 -webkit-transform-origin: 0 0;
161 -moz-transform-origin: 0 0;
162 -o-transform-origin: 0 0;
163 -ms-transform-origin: 0 0;
164 transform-origin: 0 0;
165
166 -webkit-touch-callout: none;
167 -webkit-user-select: none;
168 -khtml-user-select: none;
169 -moz-user-select: none;
170 -ms-user-select: none;
171 user-select: none;
172}
173
174span.sb-toggle{
175 padding: 5px;
176 margin: 10px;
177 display: block;
178 color: #000;
179 font-size: 14px;
180 font-weight: 700;
181 text-transform: uppercase;
182 line-height: 14px;
183 text-shadow: 1px 1px 1px rgba(255,255,255,0.1);
184 text-align: center;
185}
186
187span.sb-icon{
188 display: block;
189 height: 70px;
190 width: 70px;
191 margin: 20px auto;
192 -webkit-touch-callout: none;
193 -webkit-user-select: none;
194 -khtml-user-select: none;
195 -moz-user-select: none;
196 -ms-user-select: none;
197 user-select: none;
198}
199
200span.sb-icon:before {
201 font-family: 'icons';
202 font-style: normal;
203 font-weight: normal;
204 speak: none;
205 display: block;
206 text-decoration: inherit;
207 text-align: center;
208 text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3);
209 line-height: 64px;
210 width: 100%;
211 font-size: 60px;
212 color: #000;
213 text-shadow: 0 0 1px #000;
214
215}
216
217.icon-cog:before { content: '\35'; } /* '5' */
218.icon-flight:before { content: '\37'; } /* '7' */
219.icon-eye:before { content: '\34'; } /* '4' */
220.icon-install:before { content: '\39'; } /* '9' */
221.icon-bag:before { content: '\36'; } /* '6' */
222.icon-globe:before { content: '\38'; } /* '8' */
223.icon-picture:before { content: '\32'; } /* '2' */
224.icon-video:before { content: '\30'; } /* '0' */
225.icon-download:before { content: '\41'; } /* 'A' */
226.icon-mobile:before { content: '\42'; } /* 'B' */
227.icon-camera:before { content: '\33'; } /* '3' */ \ No newline at end of file
diff --git a/deprecated/jinwei.me/css/style4.css b/deprecated/jinwei.me/css/style4.css
new file mode 100644
index 0000000..04d74aa
--- /dev/null
+++ b/deprecated/jinwei.me/css/style4.css
@@ -0,0 +1,207 @@
1.sb-container {
2 position: relative;
3 width: 150px;
4 height: 400px;
5 margin: 30px auto 0 auto;
6}
7
8.sb-container div {
9 position: absolute;
10 top: 0;
11 left: 0;
12 width: 130px;
13 background: #fff;
14 height: 400px;
15 box-shadow:
16 -1px -1px 3px rgba(0,0,0,0.2);
17 cursor: pointer;
18 text-align: center;
19 background: #b98357 url(../images/cartboard.jpg) repeat center center;
20
21 -webkit-transform-origin: 25% 90%;
22 -moz-transform-origin: 25% 90%;
23 -o-transform-origin: 25% 90%;
24 -ms-transform-origin: 25% 90%;
25 transform-origin: 25% 90%;
26
27 -webkit-backface-visibility: hidden;
28 -moz-backface-visibility: hidden;
29 -ms-backface-visibility: hidden;
30 -o-backface-visibility: hidden;
31 backface-visibility: hidden;
32
33 -webkit-tap-highlight-color: rgba(0,0,0,0);
34}
35.sb-container div:nth-child(even){
36 background-position: top left;
37}
38
39.sb-container div:nth-child(1){
40 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 1px 1px 1px rgba(0,0,0,0.1);
41}
42
43.sb-container div:nth-child(2){
44 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 2px 2px 1px rgba(0,0,0,0.1);
45}
46
47.sb-container div:nth-child(3){
48 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 3px 3px 2px rgba(0,0,0,0.2);
49}
50
51.sb-container div:nth-child(4){
52 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 4px 4px 4px rgba(0,0,0,0.2);
53}
54
55.sb-container div:nth-child(5){
56 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 5px 5px 6px rgba(0,0,0,0.3);
57}
58
59.sb-container div:nth-child(6){
60 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 6px 6px 8px rgba(0,0,0,0.3);
61}
62
63.sb-container div:nth-child(7){
64 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 7px 7px 10px rgba(0,0,0,0.4);
65}
66
67.sb-container div:nth-child(8){
68 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 8px 8px 12px rgba(0,0,0,0.4);
69}
70
71.sb-container div:nth-child(9){
72 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 9px 9px 14px rgba(0,0,0,0.4);
73}
74
75.sb-container div:nth-child(10){
76 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 10px 10px 16px rgba(0,0,0,0.4);
77}
78
79.sb-container div:nth-child(11){
80 box-shadow: -1px -1px 3px rgba(0,0,0,0.2), 11px 11px 18px rgba(0,0,0,0.4);
81}
82
83.sb-container div:last-child{
84 background: #645b5c url(../images/cover2.jpg) repeat center center;
85 box-shadow:
86 -1px -1px 3px rgba(0,0,0,0.2),
87 12px 12px 20px rgba(0,0,0,0.6),
88 inset 2px 2px 0 rgba(255, 255, 255, 0.1);
89}
90
91.sb-container div:last-child:after{
92 content: '';
93 position: absolute;
94 bottom: 15px;
95 left: 15px;
96 width: 20px;
97 height: 20px;
98 border-radius: 50%;
99 background: #dddddd;
100 background: -moz-linear-gradient(-45deg, #dddddd 0%, #58535e 48%, #889396 100%);
101 background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#dddddd), color-stop(48%,#58535e), color-stop(100%,#889396));
102 background: -webkit-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
103 background: -o-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
104 background: -ms-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
105 background: linear-gradient(135deg, #dddddd 0%,#58535e 48%,#889396 100%);
106 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dddddd', endColorstr='#889396',GradientType=1 );
107 box-shadow: -1px -1px 1px rgba(0,0,0,0.7), 1px 1px 1px rgba(255,255,255,0.1);
108}
109
110.sb-container div h4{
111 color: rgba(255,255,255,0.9);
112 text-shadow: 1px 1px 1px rgba(0,0,0,0.2);
113 font-weight: 700;
114 font-size: 16px;
115 text-transform: uppercase;
116 border-top: 1px dashed rgba(0,0,0,0.1);
117 border-bottom: 1px dashed rgba(0,0,0,0.1);
118 margin: 5px;
119 padding: 5px;
120
121 -webkit-touch-callout: none;
122 -webkit-user-select: none;
123 -khtml-user-select: none;
124 -moz-user-select: none;
125 -ms-user-select: none;
126 user-select: none;
127}
128
129.sb-container div:last-child h4{
130 background: rgba(0,0,0,0.2);
131 box-shadow: 0 1px 1px rgba(255,255,255,0.1);
132}
133
134.sb-container div:last-child h5{
135 font-size: 50px;
136 white-space: nowrap;
137 text-align: left;
138 margin: 0;
139 padding: 0;
140 position: absolute;
141 line-height: 50px;
142 top: 0px;
143 left: 0px;
144 color: #111;
145 text-shadow: -1px -1px 1px rgba(255,255,255,0.1);
146 text-transform: uppercase;
147
148 -webkit-transform: rotate(-90deg) translateX(-157%) translateY(73px);
149 -moz-transform: rotate(-90deg) translateX(-157%) translateY(73px);
150 -o-transform: rotate(-90deg) translateX(-157%) translateY(73px);
151 -ms-transform: rotate(-90deg) translateX(-157%) translateY(73px);
152 transform: rotate(-90deg) translateX(-157%) translateY(73px);
153
154 -webkit-transform-origin: 0 0;
155 -moz-transform-origin: 0 0;
156 -o-transform-origin: 0 0;
157 -ms-transform-origin: 0 0;
158 transform-origin: 0 0;
159
160 -webkit-touch-callout: none;
161 -webkit-user-select: none;
162 -khtml-user-select: none;
163 -moz-user-select: none;
164 -ms-user-select: none;
165 user-select: none;
166}
167
168span.sb-icon{
169 display: block;
170 height: 70px;
171 width: 70px;
172 margin: 20px auto;
173 -webkit-touch-callout: none;
174 -webkit-user-select: none;
175 -khtml-user-select: none;
176 -moz-user-select: none;
177 -ms-user-select: none;
178 user-select: none;
179}
180
181span.sb-icon:before {
182 font-family: 'icons';
183 font-style: normal;
184 font-weight: normal;
185 speak: none;
186 display: block;
187 text-decoration: inherit;
188 text-align: center;
189 text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3);
190 line-height: 64px;
191 width: 100%;
192 font-size: 60px;
193 color: rgba(113,72,39,0.8);
194 text-shadow: 1px 1px 1px rgba(255,255,255,0.3);
195}
196
197.icon-cog:before { content: '\35'; } /* '5' */
198.icon-flight:before { content: '\37'; } /* '7' */
199.icon-eye:before { content: '\34'; } /* '4' */
200.icon-install:before { content: '\39'; } /* '9' */
201.icon-bag:before { content: '\36'; } /* '6' */
202.icon-globe:before { content: '\38'; } /* '8' */
203.icon-picture:before { content: '\32'; } /* '2' */
204.icon-video:before { content: '\30'; } /* '0' */
205.icon-download:before { content: '\41'; } /* 'A' */
206.icon-mobile:before { content: '\42'; } /* 'B' */
207.icon-camera:before { content: '\33'; } /* '3' */ \ No newline at end of file
diff --git a/deprecated/jinwei.me/css/style5.css b/deprecated/jinwei.me/css/style5.css
new file mode 100644
index 0000000..1388559
--- /dev/null
+++ b/deprecated/jinwei.me/css/style5.css
@@ -0,0 +1,223 @@
1.sb-container {
2 position: relative;
3 width: 150px;
4 height: 400px;
5 margin: 30px auto 0 auto;
6}
7
8.sb-container div {
9 position: absolute;
10 top: 0;
11 left: 0;
12 width: 130px;
13 background: #fff;
14 height: 400px;
15 border-radius: 5px;
16 cursor: pointer;
17 text-align: center;
18 background-image: url(../images/fabric.png);
19
20 -webkit-transform-origin: 25% 90%;
21 -moz-transform-origin: 25% 90%;
22 -o-transform-origin: 25% 90%;
23 -ms-transform-origin: 25% 90%;
24 transform-origin: 25% 90%;
25
26 -webkit-backface-visibility: hidden;
27 -moz-backface-visibility: hidden;
28 -ms-backface-visibility: hidden;
29 -o-backface-visibility: hidden;
30 backface-visibility: hidden;
31
32 -webkit-tap-highlight-color: rgba(0,0,0,0);
33}
34
35.sb-container div:nth-child(1){
36 background-color: #ea2a29;
37 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 1px 1px 1px rgba(0,0,0,0.1);
38}
39
40.sb-container div:nth-child(2){
41 background-color: #f16729;
42 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 2px 2px 1px rgba(0,0,0,0.1);
43}
44
45.sb-container div:nth-child(3){
46 background-color: #f89322;
47 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 3px 3px 2px rgba(0,0,0,0.2);
48}
49
50.sb-container div:nth-child(4){
51 background-color: #ffcf14;
52 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 4px 4px 4px rgba(0,0,0,0.2);
53}
54
55.sb-container div:nth-child(5){
56 background-color: #ffea0d;
57 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 5px 5px 6px rgba(0,0,0,0.3);
58}
59
60.sb-container div:nth-child(6){
61 background-color: #87b11d;
62 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 6px 6px 8px rgba(0,0,0,0.3);
63}
64
65.sb-container div:nth-child(7){
66 background-color: #008253;
67 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 7px 7px 10px rgba(0,0,0,0.4);
68}
69
70.sb-container div:nth-child(8){
71 background-color: #3277b5;
72 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 8px 8px 12px rgba(0,0,0,0.4);
73}
74
75.sb-container div:nth-child(9){
76 background-color: #4c549f;
77 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 9px 9px 14px rgba(0,0,0,0.4);
78}
79
80.sb-container div:nth-child(10){
81 background-color: #764394;
82 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 10px 10px 16px rgba(0,0,0,0.4);
83}
84
85.sb-container div:nth-child(11){
86 background-color: #ca0d86;
87 box-shadow: -1px -1px 3px rgba(0,0,0,0.1), 11px 11px 18px rgba(0,0,0,0.4);
88}
89
90.sb-container div:last-child{
91 background: #645b5c url(../images/cover.jpg) repeat center center;
92 box-shadow:
93 -1px -1px 3px rgba(0,0,0,0.2),
94 12px 12px 20px rgba(0,0,0,0.6),
95 inset 2px 2px 0 rgba(255, 255, 255, 0.1);
96}
97
98.sb-container div:last-child:after{
99 content: '';
100 position: absolute;
101 bottom: 15px;
102 left: 15px;
103 width: 20px;
104 height: 20px;
105 border-radius: 50%;
106 background: #dddddd;
107 background: -moz-linear-gradient(-45deg, #dddddd 0%, #58535e 48%, #889396 100%);
108 background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#dddddd), color-stop(48%,#58535e), color-stop(100%,#889396));
109 background: -webkit-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
110 background: -o-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
111 background: -ms-linear-gradient(-45deg, #dddddd 0%,#58535e 48%,#889396 100%);
112 background: linear-gradient(135deg, #dddddd 0%,#58535e 48%,#889396 100%);
113 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dddddd', endColorstr='#889396',GradientType=1 );
114 box-shadow: -1px -1px 1px rgba(0,0,0,0.5), 1px 1px 1px rgba(255,255,255,0.1);
115}
116
117.sb-container div h4{
118 color: rgba(255,255,255,0.9);
119 text-shadow: 1px 1px 1px rgba(0,0,0,0.2);
120 font-weight: 700;
121 font-size: 16px;
122 text-transform: uppercase;
123 border-top: 1px dashed rgba(0,0,0,0.1);
124 border-bottom: 1px dashed rgba(0,0,0,0.1);
125 margin: 5px;
126 padding: 5px;
127 -webkit-touch-callout: none;
128 -webkit-user-select: none;
129 -khtml-user-select: none;
130 -moz-user-select: none;
131 -ms-user-select: none;
132 user-select: none;
133}
134
135.sb-container div:last-child h4{
136 background: rgba(0,0,0,0.2);
137 box-shadow: 0 1px 1px rgba(255,255,255,0.1);
138}
139
140.sb-container div h4 a{
141 color: rgba(0,0,0,0.9);
142 text-shadow: 0 1px 1px rgba(255,255,255,0.4);
143}
144
145.sb-container div h4 a:hover{
146 color: rgba(255,255,255,0.9);
147 text-shadow: 1px 1px 1px rgba(0,0,0,0.2);
148}
149
150.sb-container div:last-child h5{
151 font-size: 50px;
152 white-space: nowrap;
153 text-align: left;
154 margin: 0;
155 padding: 0;
156 position: absolute;
157 line-height: 50px;
158 top: 0px;
159 left: 0px;
160 color: #111;
161 text-shadow: -1px -1px 1px rgba(255,255,255,0.1);
162 text-transform: uppercase;
163
164 -webkit-transform: rotate(-90deg) translateX(-157%) translateY(73px);
165 -moz-transform: rotate(-90deg) translateX(-157%) translateY(73px);
166 -o-transform: rotate(-90deg) translateX(-157%) translateY(73px);
167 -ms-transform: rotate(-90deg) translateX(-157%) translateY(73px);
168 transform: rotate(-90deg) translateX(-157%) translateY(73px);
169
170 -webkit-transform-origin: 0 0;
171 -moz-transform-origin: 0 0;
172 -o-transform-origin: 0 0;
173 -ms-transform-origin: 0 0;
174 transform-origin: 0 0;
175
176 -webkit-touch-callout: none;
177 -webkit-user-select: none;
178 -khtml-user-select: none;
179 -moz-user-select: none;
180 -ms-user-select: none;
181 user-select: none;
182}
183
184span.sb-icon{
185 display: block;
186 height: 70px;
187 width: 70px;
188 margin: 20px auto;
189 -webkit-touch-callout: none;
190 -webkit-user-select: none;
191 -khtml-user-select: none;
192 -moz-user-select: none;
193 -ms-user-select: none;
194 user-select: none;
195}
196
197span.sb-icon:before {
198 font-family: 'icons';
199 font-style: normal;
200 font-weight: normal;
201 speak: none;
202 display: block;
203 text-decoration: inherit;
204 text-align: center;
205 text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3);
206 line-height: 64px;
207 width: 100%;
208 font-size: 60px;
209 color: #000;
210 text-shadow: 0 0 1px #000;
211}
212
213.icon-cog:before { content: '\35'; } /* '5' */
214.icon-flight:before { content: '\37'; } /* '7' */
215.icon-eye:before { content: '\34'; } /* '4' */
216.icon-install:before { content: '\39'; } /* '9' */
217.icon-bag:before { content: '\36'; } /* '6' */
218.icon-globe:before { content: '\38'; } /* '8' */
219.icon-picture:before { content: '\32'; } /* '2' */
220.icon-video:before { content: '\30'; } /* '0' */
221.icon-download:before { content: '\41'; } /* 'A' */
222.icon-mobile:before { content: '\42'; } /* 'B' */
223.icon-camera:before { content: '\33'; } /* '3' */ \ No newline at end of file
diff --git a/deprecated/jinwei.me/images/ImageAttribution.txt b/deprecated/jinwei.me/images/ImageAttribution.txt
new file mode 100644
index 0000000..e86284d
--- /dev/null
+++ b/deprecated/jinwei.me/images/ImageAttribution.txt
@@ -0,0 +1,7 @@
1Background Pattern from http://subtlepatterns.com/
2
3Icons generated with http://fontello.com/ (Iconset by http://www.entypo.com)
4
5Seamless cover textures by http://www.fuzzimo.com/
6
7Cartboard from http://www.texturise.com/ \ No newline at end of file
diff --git a/deprecated/jinwei.me/images/cartboard.jpg b/deprecated/jinwei.me/images/cartboard.jpg
new file mode 100644
index 0000000..b0b3def
--- /dev/null
+++ b/deprecated/jinwei.me/images/cartboard.jpg
Binary files differ
diff --git a/deprecated/jinwei.me/images/cover.jpg b/deprecated/jinwei.me/images/cover.jpg
new file mode 100644
index 0000000..458945c
--- /dev/null
+++ b/deprecated/jinwei.me/images/cover.jpg
Binary files differ
diff --git a/deprecated/jinwei.me/images/cover2.jpg b/deprecated/jinwei.me/images/cover2.jpg
new file mode 100644
index 0000000..4cd268d
--- /dev/null
+++ b/deprecated/jinwei.me/images/cover2.jpg
Binary files differ
diff --git a/deprecated/jinwei.me/images/dark_leather.jpg b/deprecated/jinwei.me/images/dark_leather.jpg
new file mode 100644
index 0000000..e09299d
--- /dev/null
+++ b/deprecated/jinwei.me/images/dark_leather.jpg
Binary files differ
diff --git a/deprecated/jinwei.me/images/egg_shell.jpg b/deprecated/jinwei.me/images/egg_shell.jpg
new file mode 100644
index 0000000..a08c04e
--- /dev/null
+++ b/deprecated/jinwei.me/images/egg_shell.jpg
Binary files differ
diff --git a/deprecated/jinwei.me/images/fabric.png b/deprecated/jinwei.me/images/fabric.png
new file mode 100644
index 0000000..07178c2
--- /dev/null
+++ b/deprecated/jinwei.me/images/fabric.png
Binary files differ
diff --git a/deprecated/jinwei.me/index.html b/deprecated/jinwei.me/index.html
new file mode 100644
index 0000000..4786e51
--- /dev/null
+++ b/deprecated/jinwei.me/index.html
@@ -0,0 +1,148 @@
1<!DOCTYPE html >
2<html lang="en">
3
4<head>
5 <meta charset="UTF-8" />
6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7 <meta name="viewport" content="width=device-width, initial-scale=1" />
8 <title>Jinwei的小站</title>
9 <link href="favicon.ico" type="image/x-icon" rel=icon>
10 <link rel="stylesheet" type="text/css" href="css/demo.css" />
11 <link rel="stylesheet" type="text/css" href="css/style2.css" />
12 <link href='css/css.css' rel='stylesheet' type='text/css'>
13 <script type="text/javascript" src="js/modernizr.custom.79639.js"></script>
14</head>
15
16<body>
17 <div class="container">
18 <header>
19 <h1>
20 <span>Jinwei的小站</span>
21 </h1>
22 <h2>一生放荡不羁只敲自己喜欢的代码</h2>
23 <h2>95后,大二了,宅,伪文青,爱折腾,爱技术,爱有技术会设计的妹子</h2>
24 <div class="support-note">
25 <!-- let's check browser support with modernizr -->
26 <!--span class="no-cssanimations">CSS animations are not supported in your browser</span-->
27 <span class="no-csstransforms">都什么年代了还用这么渣的浏览器!不让看!</span>
28 <!--span class="no-csstransforms3d">CSS 3D transforms are not supported in your browser</span-->
29 <span class="no-csstransitions">都什么年代了还用这么渣的浏览器!不让看!</span>
30 <span class="note-ie">我和所有用IE的都绝交了你造吗?</span>
31 </div>
32 </header>
33 <section class="main">
34 <div id="sb-container" class="sb-container">
35 <div>
36 <span class="sb-icon icon-cog"></span>
37 <h4>
38 <span>City</span>
39 </h4>
40 </div>
41 <div>
42 <span class="sb-icon icon-flight"></span>
43 <h4>
44 <span>This</span>
45 </h4>
46 </div>
47 <div>
48 <span class="sb-icon icon-eye"></span>
49 <h4>
50 <span>With</span>
51 </h4>
52 </div>
53 <div>
54 <span class="sb-icon icon-install"></span>
55 <h4>
56 <span>Love</span>
57 </h4>
58 </div>
59 <div>
60 <span class="sb-icon icon-bag"></span>
61 <h4>
62 <span>In</span>
63 </h4>
64 </div>
65 <div>
66 <span class="sb-icon icon-globe"></span>
67 <h4>
68 <span>Fell</span>
69 </h4>
70 </div>
71 <div>
72 <span class="sb-icon icon-picture"></span>
73 <h4>
74 <span>I</span>
75 </h4>
76 </div>
77 <div>
78 <span class="sb-icon icon-video"></span>
79 <h4>
80 <span>Why</span>
81 </h4>
82 </div>
83 <div>
84 <span class="sb-icon icon-download"></span>
85 <h4>
86 <span>Reason</span>
87 </h4>
88 </div>
89 <div>
90 <span class="sb-icon icon-mobile"></span>
91 <h4>
92 <span>The</span>
93 </h4>
94 </div>
95 <div>
96 <span class="sb-icon icon-camera"></span>
97 <h4>
98 <span>Are</span>
99 </h4>
100 </div>
101 <div>
102 <h4>
103 <span>You</span>
104 </h4>
105 <span class="sb-toggle">Click to open/close</span>
106 <h5>
107 <span>
108 <a href="http://www.cnblogs.com/jinweiclarkchao/" target="_blank">My &hearts; blog</a>
109 </span>
110 </h5>
111 </div>
112 </div>
113 <!-- sb-container -->
114 <h5>
115 © 2014. All rights reserved. View on
116 <a href="https://github.com/JinweiClarkChao/jinweiclarkchao.github.com" target="_blank">Github</a>
117 </h5>
118 </section>
119 </div>
120 <script type="text/javascript" src="js/jquery.min.js"></script>
121 <script type="text/javascript" src="js/jquery.swatchbook.js"></script>
122 <script type="text/javascript">
123 $(function() {
124 $('#sb-container').swatchbook({
125 // number of degrees that is between each item
126 angleInc: -10,
127 // amount in degrees for the opened item's next sibling
128 proximity: -45,
129 neighbor: -4,
130 // index of the element that when clicked, triggers the open/close function
131 // by default there is no such element
132 closeIdx: 11
133 });
134 });
135 </script>
136 <script type="text/javascript">
137 var x = 12;
138 window.addEventListener("mousewheel", function(event) {
139 event.preventDefault();
140 if (event.wheelDelta >= 120 && x > 0)
141 $("#sb-container div")[x - 1].click();
142 else if (event.wheelDelta <= -120 && x < 12)
143 $("#sb-container div")[x + 1].click();
144 }, false);
145 </script>
146</body>
147
148</html>
diff --git a/deprecated/jinwei.me/js/jquery.min.js b/deprecated/jinwei.me/js/jquery.min.js
new file mode 100644
index 0000000..7e523f9
--- /dev/null
+++ b/deprecated/jinwei.me/js/jquery.min.js
@@ -0,0 +1,3576 @@
1/*! jQuery v1.8.3 jquery.com | jquery.org/license */
2(function(e, t) {
3 function _(e) {
4 var t = M[e] = {};
5 return v.each(e.split(y), function(e, n) {
6 t[n] = !0
7 }), t
8 }
9
10 function H(e, n, r) {
11 if (r === t && e.nodeType === 1) {
12 var i = "data-" + n.replace(P, "-$1").toLowerCase();
13 r = e.getAttribute(i);
14 if (typeof r == "string") {
15 try {
16 r = r === "true" ? !0 : r === "false" ? !1 : r === "null" ? null : +r + "" === r ? +r : D.test(r) ? v.parseJSON(r) : r
17 } catch (s) {}
18 v.data(e, n, r)
19 } else r = t
20 }
21 return r
22 }
23
24 function B(e) {
25 var t;
26 for (t in e) {
27 if (t === "data" && v.isEmptyObject(e[t])) continue;
28 if (t !== "toJSON") return !1
29 }
30 return !0
31 }
32
33 function et() {
34 return !1
35 }
36
37 function tt() {
38 return !0
39 }
40
41 function ut(e) {
42 return !e || !e.parentNode || e.parentNode.nodeType === 11
43 }
44
45 function at(e, t) {
46 do e = e[t]; while (e && e.nodeType !== 1);
47 return e
48 }
49
50 function ft(e, t, n) {
51 t = t || 0;
52 if (v.isFunction(t)) return v.grep(e, function(e, r) {
53 var i = !!t.call(e, r, e);
54 return i === n
55 });
56 if (t.nodeType) return v.grep(e, function(e, r) {
57 return e === t === n
58 });
59 if (typeof t == "string") {
60 var r = v.grep(e, function(e) {
61 return e.nodeType === 1
62 });
63 if (it.test(t)) return v.filter(t, r, !n);
64 t = v.filter(t, r)
65 }
66 return v.grep(e, function(e, r) {
67 return v.inArray(e, t) >= 0 === n
68 })
69 }
70
71 function lt(e) {
72 var t = ct.split("|"),
73 n = e.createDocumentFragment();
74 if (n.createElement)
75 while (t.length) n.createElement(t.pop());
76 return n
77 }
78
79 function Lt(e, t) {
80 return e.getElementsByTagName(t)[0] || e.appendChild(e.ownerDocument.createElement(t))
81 }
82
83 function At(e, t) {
84 if (t.nodeType !== 1 || !v.hasData(e)) return;
85 var n, r, i, s = v._data(e),
86 o = v._data(t, s),
87 u = s.events;
88 if (u) {
89 delete o.handle, o.events = {};
90 for (n in u)
91 for (r = 0, i = u[n].length; r < i; r++) v.event.add(t, n, u[n][r])
92 }
93 o.data && (o.data = v.extend({}, o.data))
94 }
95
96 function Ot(e, t) {
97 var n;
98 if (t.nodeType !== 1) return;
99 t.clearAttributes && t.clearAttributes(), t.mergeAttributes && t.mergeAttributes(e), n = t.nodeName.toLowerCase(), n === "object" ? (t.parentNode && (t.outerHTML = e.outerHTML), v.support.html5Clone && e.innerHTML && !v.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : n === "input" && Et.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : n === "option" ? t.selected = e.defaultSelected : n === "input" || n === "textarea" ? t.defaultValue = e.defaultValue : n === "script" && t.text !== e.text && (t.text = e.text), t.removeAttribute(v.expando)
100 }
101
102 function Mt(e) {
103 return typeof e.getElementsByTagName != "undefined" ? e.getElementsByTagName("*") : typeof e.querySelectorAll != "undefined" ? e.querySelectorAll("*") : []
104 }
105
106 function _t(e) {
107 Et.test(e.type) && (e.defaultChecked = e.checked)
108 }
109
110 function Qt(e, t) {
111 if (t in e) return t;
112 var n = t.charAt(0).toUpperCase() + t.slice(1),
113 r = t,
114 i = Jt.length;
115 while (i--) {
116 t = Jt[i] + n;
117 if (t in e) return t
118 }
119 return r
120 }
121
122 function Gt(e, t) {
123 return e = t || e, v.css(e, "display") === "none" || !v.contains(e.ownerDocument, e)
124 }
125
126 function Yt(e, t) {
127 var n, r, i = [],
128 s = 0,
129 o = e.length;
130 for (; s < o; s++) {
131 n = e[s];
132 if (!n.style) continue;
133 i[s] = v._data(n, "olddisplay"), t ? (!i[s] && n.style.display === "none" && (n.style.display = ""), n.style.display === "" && Gt(n) && (i[s] = v._data(n, "olddisplay", nn(n.nodeName)))) : (r = Dt(n, "display"), !i[s] && r !== "none" && v._data(n, "olddisplay", r))
134 }
135 for (s = 0; s < o; s++) {
136 n = e[s];
137 if (!n.style) continue;
138 if (!t || n.style.display === "none" || n.style.display === "") n.style.display = t ? i[s] || "" : "none"
139 }
140 return e
141 }
142
143 function Zt(e, t, n) {
144 var r = Rt.exec(t);
145 return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
146 }
147
148 function en(e, t, n, r) {
149 var i = n === (r ? "border" : "content") ? 4 : t === "width" ? 1 : 0,
150 s = 0;
151 for (; i < 4; i += 2) n === "margin" && (s += v.css(e, n + $t[i], !0)), r ? (n === "content" && (s -= parseFloat(Dt(e, "padding" + $t[i])) || 0), n !== "margin" && (s -= parseFloat(Dt(e, "border" + $t[i] + "Width")) || 0)) : (s += parseFloat(Dt(e, "padding" + $t[i])) || 0, n !== "padding" && (s += parseFloat(Dt(e, "border" + $t[i] + "Width")) || 0));
152 return s
153 }
154
155 function tn(e, t, n) {
156 var r = t === "width" ? e.offsetWidth : e.offsetHeight,
157 i = !0,
158 s = v.support.boxSizing && v.css(e, "boxSizing") === "border-box";
159 if (r <= 0 || r == null) {
160 r = Dt(e, t);
161 if (r < 0 || r == null) r = e.style[t];
162 if (Ut.test(r)) return r;
163 i = s && (v.support.boxSizingReliable || r === e.style[t]), r = parseFloat(r) || 0
164 }
165 return r + en(e, t, n || (s ? "border" : "content"), i) + "px"
166 }
167
168 function nn(e) {
169 if (Wt[e]) return Wt[e];
170 var t = v("<" + e + ">").appendTo(i.body),
171 n = t.css("display");
172 t.remove();
173 if (n === "none" || n === "") {
174 Pt = i.body.appendChild(Pt || v.extend(i.createElement("iframe"), {
175 frameBorder: 0,
176 width: 0,
177 height: 0
178 }));
179 if (!Ht || !Pt.createElement) Ht = (Pt.contentWindow || Pt.contentDocument).document, Ht.write("<!doctype html><html><body>"), Ht.close();
180 t = Ht.body.appendChild(Ht.createElement(e)), n = Dt(t, "display"), i.body.removeChild(Pt)
181 }
182 return Wt[e] = n, n
183 }
184
185 function fn(e, t, n, r) {
186 var i;
187 if (v.isArray(t)) v.each(t, function(t, i) {
188 n || sn.test(e) ? r(e, i) : fn(e + "[" + (typeof i == "object" ? t : "") + "]", i, n, r)
189 });
190 else if (!n && v.type(t) === "object")
191 for (i in t) fn(e + "[" + i + "]", t[i], n, r);
192 else r(e, t)
193 }
194
195 function Cn(e) {
196 return function(t, n) {
197 typeof t != "string" && (n = t, t = "*");
198 var r, i, s, o = t.toLowerCase().split(y),
199 u = 0,
200 a = o.length;
201 if (v.isFunction(n))
202 for (; u < a; u++) r = o[u], s = /^\+/.test(r), s && (r = r.substr(1) || "*"), i = e[r] = e[r] || [], i[s ? "unshift" : "push"](n)
203 }
204 }
205
206 function kn(e, n, r, i, s, o) {
207 s = s || n.dataTypes[0], o = o || {}, o[s] = !0;
208 var u, a = e[s],
209 f = 0,
210 l = a ? a.length : 0,
211 c = e === Sn;
212 for (; f < l && (c || !u); f++) u = a[f](n, r, i), typeof u == "string" && (!c || o[u] ? u = t : (n.dataTypes.unshift(u), u = kn(e, n, r, i, u, o)));
213 return (c || !u) && !o["*"] && (u = kn(e, n, r, i, "*", o)), u
214 }
215
216 function Ln(e, n) {
217 var r, i, s = v.ajaxSettings.flatOptions || {};
218 for (r in n) n[r] !== t && ((s[r] ? e : i || (i = {}))[r] = n[r]);
219 i && v.extend(!0, e, i)
220 }
221
222 function An(e, n, r) {
223 var i, s, o, u, a = e.contents,
224 f = e.dataTypes,
225 l = e.responseFields;
226 for (s in l) s in r && (n[l[s]] = r[s]);
227 while (f[0] === "*") f.shift(), i === t && (i = e.mimeType || n.getResponseHeader("content-type"));
228 if (i)
229 for (s in a)
230 if (a[s] && a[s].test(i)) {
231 f.unshift(s);
232 break
233 }
234 if (f[0] in r) o = f[0];
235 else {
236 for (s in r) {
237 if (!f[0] || e.converters[s + " " + f[0]]) {
238 o = s;
239 break
240 }
241 u || (u = s)
242 }
243 o = o || u
244 } if (o) return o !== f[0] && f.unshift(o), r[o]
245 }
246
247 function On(e, t) {
248 var n, r, i, s, o = e.dataTypes.slice(),
249 u = o[0],
250 a = {},
251 f = 0;
252 e.dataFilter && (t = e.dataFilter(t, e.dataType));
253 if (o[1])
254 for (n in e.converters) a[n.toLowerCase()] = e.converters[n];
255 for (; i = o[++f];)
256 if (i !== "*") {
257 if (u !== "*" && u !== i) {
258 n = a[u + " " + i] || a["* " + i];
259 if (!n)
260 for (r in a) {
261 s = r.split(" ");
262 if (s[1] === i) {
263 n = a[u + " " + s[0]] || a["* " + s[0]];
264 if (n) {
265 n === !0 ? n = a[r] : a[r] !== !0 && (i = s[0], o.splice(f--, 0, i));
266 break
267 }
268 }
269 }
270 if (n !== !0)
271 if (n && e["throws"]) t = n(t);
272 else try {
273 t = n(t)
274 } catch (l) {
275 return {
276 state: "parsererror",
277 error: n ? l : "No conversion from " + u + " to " + i
278 }
279 }
280 }
281 u = i
282 }
283 return {
284 state: "success",
285 data: t
286 }
287 }
288
289 function Fn() {
290 try {
291 return new e.XMLHttpRequest
292 } catch (t) {}
293 }
294
295 function In() {
296 try {
297 return new e.ActiveXObject("Microsoft.XMLHTTP")
298 } catch (t) {}
299 }
300
301 function $n() {
302 return setTimeout(function() {
303 qn = t
304 }, 0), qn = v.now()
305 }
306
307 function Jn(e, t) {
308 v.each(t, function(t, n) {
309 var r = (Vn[t] || []).concat(Vn["*"]),
310 i = 0,
311 s = r.length;
312 for (; i < s; i++)
313 if (r[i].call(e, t, n)) return
314 })
315 }
316
317 function Kn(e, t, n) {
318 var r, i = 0,
319 s = 0,
320 o = Xn.length,
321 u = v.Deferred().always(function() {
322 delete a.elem
323 }),
324 a = function() {
325 var t = qn || $n(),
326 n = Math.max(0, f.startTime + f.duration - t),
327 r = n / f.duration || 0,
328 i = 1 - r,
329 s = 0,
330 o = f.tweens.length;
331 for (; s < o; s++) f.tweens[s].run(i);
332 return u.notifyWith(e, [f, i, n]), i < 1 && o ? n : (u.resolveWith(e, [f]), !1)
333 },
334 f = u.promise({
335 elem: e,
336 props: v.extend({}, t),
337 opts: v.extend(!0, {
338 specialEasing: {}
339 }, n),
340 originalProperties: t,
341 originalOptions: n,
342 startTime: qn || $n(),
343 duration: n.duration,
344 tweens: [],
345 createTween: function(t, n, r) {
346 var i = v.Tween(e, f.opts, t, n, f.opts.specialEasing[t] || f.opts.easing);
347 return f.tweens.push(i), i
348 },
349 stop: function(t) {
350 var n = 0,
351 r = t ? f.tweens.length : 0;
352 for (; n < r; n++) f.tweens[n].run(1);
353 return t ? u.resolveWith(e, [f, t]) : u.rejectWith(e, [f, t]), this
354 }
355 }),
356 l = f.props;
357 Qn(l, f.opts.specialEasing);
358 for (; i < o; i++) {
359 r = Xn[i].call(f, e, l, f.opts);
360 if (r) return r
361 }
362 return Jn(f, l), v.isFunction(f.opts.start) && f.opts.start.call(e, f), v.fx.timer(v.extend(a, {
363 anim: f,
364 queue: f.opts.queue,
365 elem: e
366 })), f.progress(f.opts.progress).done(f.opts.done, f.opts.complete).fail(f.opts.fail).always(f.opts.always)
367 }
368
369 function Qn(e, t) {
370 var n, r, i, s, o;
371 for (n in e) {
372 r = v.camelCase(n), i = t[r], s = e[n], v.isArray(s) && (i = s[1], s = e[n] = s[0]), n !== r && (e[r] = s, delete e[n]), o = v.cssHooks[r];
373 if (o && "expand" in o) {
374 s = o.expand(s), delete e[r];
375 for (n in s) n in e || (e[n] = s[n], t[n] = i)
376 } else t[r] = i
377 }
378 }
379
380 function Gn(e, t, n) {
381 var r, i, s, o, u, a, f, l, c, h = this,
382 p = e.style,
383 d = {},
384 m = [],
385 g = e.nodeType && Gt(e);
386 n.queue || (l = v._queueHooks(e, "fx"), l.unqueued == null && (l.unqueued = 0, c = l.empty.fire, l.empty.fire = function() {
387 l.unqueued || c()
388 }), l.unqueued++, h.always(function() {
389 h.always(function() {
390 l.unqueued--, v.queue(e, "fx").length || l.empty.fire()
391 })
392 })), e.nodeType === 1 && ("height" in t || "width" in t) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], v.css(e, "display") === "inline" && v.css(e, "float") === "none" && (!v.support.inlineBlockNeedsLayout || nn(e.nodeName) === "inline" ? p.display = "inline-block" : p.zoom = 1)), n.overflow && (p.overflow = "hidden", v.support.shrinkWrapBlocks || h.done(function() {
393 p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
394 }));
395 for (r in t) {
396 s = t[r];
397 if (Un.exec(s)) {
398 delete t[r], a = a || s === "toggle";
399 if (s === (g ? "hide" : "show")) continue;
400 m.push(r)
401 }
402 }
403 o = m.length;
404 if (o) {
405 u = v._data(e, "fxshow") || v._data(e, "fxshow", {}), "hidden" in u && (g = u.hidden), a && (u.hidden = !g), g ? v(e).show() : h.done(function() {
406 v(e).hide()
407 }), h.done(function() {
408 var t;
409 v.removeData(e, "fxshow", !0);
410 for (t in d) v.style(e, t, d[t])
411 });
412 for (r = 0; r < o; r++) i = m[r], f = h.createTween(i, g ? u[i] : 0), d[i] = u[i] || v.style(e, i), i in u || (u[i] = f.start, g && (f.end = f.start, f.start = i === "width" || i === "height" ? 1 : 0))
413 }
414 }
415
416 function Yn(e, t, n, r, i) {
417 return new Yn.prototype.init(e, t, n, r, i)
418 }
419
420 function Zn(e, t) {
421 var n, r = {
422 height: e
423 },
424 i = 0;
425 t = t ? 1 : 0;
426 for (; i < 4; i += 2 - t) n = $t[i], r["margin" + n] = r["padding" + n] = e;
427 return t && (r.opacity = r.width = e), r
428 }
429
430 function tr(e) {
431 return v.isWindow(e) ? e : e.nodeType === 9 ? e.defaultView || e.parentWindow : !1
432 }
433 var n, r, i = e.document,
434 s = e.location,
435 o = e.navigator,
436 u = e.jQuery,
437 a = e.$,
438 f = Array.prototype.push,
439 l = Array.prototype.slice,
440 c = Array.prototype.indexOf,
441 h = Object.prototype.toString,
442 p = Object.prototype.hasOwnProperty,
443 d = String.prototype.trim,
444 v = function(e, t) {
445 return new v.fn.init(e, t, n)
446 },
447 m = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
448 g = /\S/,
449 y = /\s+/,
450 b = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
451 w = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
452 E = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
453 S = /^[\],:{}\s]*$/,
454 x = /(?:^|:|,)(?:\s*\[)+/g,
455 T = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
456 N = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
457 C = /^-ms-/,
458 k = /-([\da-z])/gi,
459 L = function(e, t) {
460 return (t + "").toUpperCase()
461 },
462 A = function() {
463 i.addEventListener ? (i.removeEventListener("DOMContentLoaded", A, !1), v.ready()) : i.readyState === "complete" && (i.detachEvent("onreadystatechange", A), v.ready())
464 },
465 O = {};
466 v.fn = v.prototype = {
467 constructor: v,
468 init: function(e, n, r) {
469 var s, o, u, a;
470 if (!e) return this;
471 if (e.nodeType) return this.context = this[0] = e, this.length = 1, this;
472 if (typeof e == "string") {
473 e.charAt(0) === "<" && e.charAt(e.length - 1) === ">" && e.length >= 3 ? s = [null, e, null] : s = w.exec(e);
474 if (s && (s[1] || !n)) {
475 if (s[1]) return n = n instanceof v ? n[0] : n, a = n && n.nodeType ? n.ownerDocument || n : i, e = v.parseHTML(s[1], a, !0), E.test(s[1]) && v.isPlainObject(n) && this.attr.call(e, n, !0), v.merge(this, e);
476 o = i.getElementById(s[2]);
477 if (o && o.parentNode) {
478 if (o.id !== s[2]) return r.find(e);
479 this.length = 1, this[0] = o
480 }
481 return this.context = i, this.selector = e, this
482 }
483 return !n || n.jquery ? (n || r).find(e) : this.constructor(n).find(e)
484 }
485 return v.isFunction(e) ? r.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), v.makeArray(e, this))
486 },
487 selector: "",
488 jquery: "1.8.3",
489 length: 0,
490 size: function() {
491 return this.length
492 },
493 toArray: function() {
494 return l.call(this)
495 },
496 get: function(e) {
497 return e == null ? this.toArray() : e < 0 ? this[this.length + e] : this[e]
498 },
499 pushStack: function(e, t, n) {
500 var r = v.merge(this.constructor(), e);
501 return r.prevObject = this, r.context = this.context, t === "find" ? r.selector = this.selector + (this.selector ? " " : "") + n : t && (r.selector = this.selector + "." + t + "(" + n + ")"), r
502 },
503 each: function(e, t) {
504 return v.each(this, e, t)
505 },
506 ready: function(e) {
507 return v.ready.promise().done(e), this
508 },
509 eq: function(e) {
510 return e = +e, e === -1 ? this.slice(e) : this.slice(e, e + 1)
511 },
512 first: function() {
513 return this.eq(0)
514 },
515 last: function() {
516 return this.eq(-1)
517 },
518 slice: function() {
519 return this.pushStack(l.apply(this, arguments), "slice", l.call(arguments).join(","))
520 },
521 map: function(e) {
522 return this.pushStack(v.map(this, function(t, n) {
523 return e.call(t, n, t)
524 }))
525 },
526 end: function() {
527 return this.prevObject || this.constructor(null)
528 },
529 push: f,
530 sort: [].sort,
531 splice: [].splice
532 }, v.fn.init.prototype = v.fn, v.extend = v.fn.extend = function() {
533 var e, n, r, i, s, o, u = arguments[0] || {},
534 a = 1,
535 f = arguments.length,
536 l = !1;
537 typeof u == "boolean" && (l = u, u = arguments[1] || {}, a = 2), typeof u != "object" && !v.isFunction(u) && (u = {}), f === a && (u = this, --a);
538 for (; a < f; a++)
539 if ((e = arguments[a]) != null)
540 for (n in e) {
541 r = u[n], i = e[n];
542 if (u === i) continue;
543 l && i && (v.isPlainObject(i) || (s = v.isArray(i))) ? (s ? (s = !1, o = r && v.isArray(r) ? r : []) : o = r && v.isPlainObject(r) ? r : {}, u[n] = v.extend(l, o, i)) : i !== t && (u[n] = i)
544 }
545 return u
546 }, v.extend({
547 noConflict: function(t) {
548 return e.$ === v && (e.$ = a), t && e.jQuery === v && (e.jQuery = u), v
549 },
550 isReady: !1,
551 readyWait: 1,
552 holdReady: function(e) {
553 e ? v.readyWait++ : v.ready(!0)
554 },
555 ready: function(e) {
556 if (e === !0 ? --v.readyWait : v.isReady) return;
557 if (!i.body) return setTimeout(v.ready, 1);
558 v.isReady = !0;
559 if (e !== !0 && --v.readyWait > 0) return;
560 r.resolveWith(i, [v]), v.fn.trigger && v(i).trigger("ready").off("ready")
561 },
562 isFunction: function(e) {
563 return v.type(e) === "function"
564 },
565 isArray: Array.isArray || function(e) {
566 return v.type(e) === "array"
567 },
568 isWindow: function(e) {
569 return e != null && e == e.window
570 },
571 isNumeric: function(e) {
572 return !isNaN(parseFloat(e)) && isFinite(e)
573 },
574 type: function(e) {
575 return e == null ? String(e) : O[h.call(e)] || "object"
576 },
577 isPlainObject: function(e) {
578 if (!e || v.type(e) !== "object" || e.nodeType || v.isWindow(e)) return !1;
579 try {
580 if (e.constructor && !p.call(e, "constructor") && !p.call(e.constructor.prototype, "isPrototypeOf")) return !1
581 } catch (n) {
582 return !1
583 }
584 var r;
585 for (r in e);
586 return r === t || p.call(e, r)
587 },
588 isEmptyObject: function(e) {
589 var t;
590 for (t in e) return !1;
591 return !0
592 },
593 error: function(e) {
594 throw new Error(e)
595 },
596 parseHTML: function(e, t, n) {
597 var r;
598 return !e || typeof e != "string" ? null : (typeof t == "boolean" && (n = t, t = 0), t = t || i, (r = E.exec(e)) ? [t.createElement(r[1])] : (r = v.buildFragment([e], t, n ? null : []), v.merge([], (r.cacheable ? v.clone(r.fragment) : r.fragment).childNodes)))
599 },
600 parseJSON: function(t) {
601 if (!t || typeof t != "string") return null;
602 t = v.trim(t);
603 if (e.JSON && e.JSON.parse) return e.JSON.parse(t);
604 if (S.test(t.replace(T, "@").replace(N, "]").replace(x, ""))) return (new Function("return " + t))();
605 v.error("Invalid JSON: " + t)
606 },
607 parseXML: function(n) {
608 var r, i;
609 if (!n || typeof n != "string") return null;
610 try {
611 e.DOMParser ? (i = new DOMParser, r = i.parseFromString(n, "text/xml")) : (r = new ActiveXObject("Microsoft.XMLDOM"), r.async = "false", r.loadXML(n))
612 } catch (s) {
613 r = t
614 }
615 return (!r || !r.documentElement || r.getElementsByTagName("parsererror").length) && v.error("Invalid XML: " + n), r
616 },
617 noop: function() {},
618 globalEval: function(t) {
619 t && g.test(t) && (e.execScript || function(t) {
620 e.eval.call(e, t)
621 })(t)
622 },
623 camelCase: function(e) {
624 return e.replace(C, "ms-").replace(k, L)
625 },
626 nodeName: function(e, t) {
627 return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
628 },
629 each: function(e, n, r) {
630 var i, s = 0,
631 o = e.length,
632 u = o === t || v.isFunction(e);
633 if (r) {
634 if (u) {
635 for (i in e)
636 if (n.apply(e[i], r) === !1) break
637 } else
638 for (; s < o;)
639 if (n.apply(e[s++], r) === !1) break
640 } else if (u) {
641 for (i in e)
642 if (n.call(e[i], i, e[i]) === !1) break
643 } else
644 for (; s < o;)
645 if (n.call(e[s], s, e[s++]) === !1) break; return e
646 },
647 trim: d && !d.call("\ufeff\u00a0") ? function(e) {
648 return e == null ? "" : d.call(e)
649 } : function(e) {
650 return e == null ? "" : (e + "").replace(b, "")
651 },
652 makeArray: function(e, t) {
653 var n, r = t || [];
654 return e != null && (n = v.type(e), e.length == null || n === "string" || n === "function" || n === "regexp" || v.isWindow(e) ? f.call(r, e) : v.merge(r, e)), r
655 },
656 inArray: function(e, t, n) {
657 var r;
658 if (t) {
659 if (c) return c.call(t, e, n);
660 r = t.length, n = n ? n < 0 ? Math.max(0, r + n) : n : 0;
661 for (; n < r; n++)
662 if (n in t && t[n] === e) return n
663 }
664 return -1
665 },
666 merge: function(e, n) {
667 var r = n.length,
668 i = e.length,
669 s = 0;
670 if (typeof r == "number")
671 for (; s < r; s++) e[i++] = n[s];
672 else
673 while (n[s] !== t) e[i++] = n[s++];
674 return e.length = i, e
675 },
676 grep: function(e, t, n) {
677 var r, i = [],
678 s = 0,
679 o = e.length;
680 n = !!n;
681 for (; s < o; s++) r = !!t(e[s], s), n !== r && i.push(e[s]);
682 return i
683 },
684 map: function(e, n, r) {
685 var i, s, o = [],
686 u = 0,
687 a = e.length,
688 f = e instanceof v || a !== t && typeof a == "number" && (a > 0 && e[0] && e[a - 1] || a === 0 || v.isArray(e));
689 if (f)
690 for (; u < a; u++) i = n(e[u], u, r), i != null && (o[o.length] = i);
691 else
692 for (s in e) i = n(e[s], s, r), i != null && (o[o.length] = i);
693 return o.concat.apply([], o)
694 },
695 guid: 1,
696 proxy: function(e, n) {
697 var r, i, s;
698 return typeof n == "string" && (r = e[n], n = e, e = r), v.isFunction(e) ? (i = l.call(arguments, 2), s = function() {
699 return e.apply(n, i.concat(l.call(arguments)))
700 }, s.guid = e.guid = e.guid || v.guid++, s) : t
701 },
702 access: function(e, n, r, i, s, o, u) {
703 var a, f = r == null,
704 l = 0,
705 c = e.length;
706 if (r && typeof r == "object") {
707 for (l in r) v.access(e, n, l, r[l], 1, o, i);
708 s = 1
709 } else if (i !== t) {
710 a = u === t && v.isFunction(i), f && (a ? (a = n, n = function(e, t, n) {
711 return a.call(v(e), n)
712 }) : (n.call(e, i), n = null));
713 if (n)
714 for (; l < c; l++) n(e[l], r, a ? i.call(e[l], l, n(e[l], r)) : i, u);
715 s = 1
716 }
717 return s ? e : f ? n.call(e) : c ? n(e[0], r) : o
718 },
719 now: function() {
720 return (new Date).getTime()
721 }
722 }), v.ready.promise = function(t) {
723 if (!r) {
724 r = v.Deferred();
725 if (i.readyState === "complete") setTimeout(v.ready, 1);
726 else if (i.addEventListener) i.addEventListener("DOMContentLoaded", A, !1), e.addEventListener("load", v.ready, !1);
727 else {
728 i.attachEvent("onreadystatechange", A), e.attachEvent("onload", v.ready);
729 var n = !1;
730 try {
731 n = e.frameElement == null && i.documentElement
732 } catch (s) {}
733 n && n.doScroll && function o() {
734 if (!v.isReady) {
735 try {
736 n.doScroll("left")
737 } catch (e) {
738 return setTimeout(o, 50)
739 }
740 v.ready()
741 }
742 }()
743 }
744 }
745 return r.promise(t)
746 }, v.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(e, t) {
747 O["[object " + t + "]"] = t.toLowerCase()
748 }), n = v(i);
749 var M = {};
750 v.Callbacks = function(e) {
751 e = typeof e == "string" ? M[e] || _(e) : v.extend({}, e);
752 var n, r, i, s, o, u, a = [],
753 f = !e.once && [],
754 l = function(t) {
755 n = e.memory && t, r = !0, u = s || 0, s = 0, o = a.length, i = !0;
756 for (; a && u < o; u++)
757 if (a[u].apply(t[0], t[1]) === !1 && e.stopOnFalse) {
758 n = !1;
759 break
760 }
761 i = !1, a && (f ? f.length && l(f.shift()) : n ? a = [] : c.disable())
762 },
763 c = {
764 add: function() {
765 if (a) {
766 var t = a.length;
767 (function r(t) {
768 v.each(t, function(t, n) {
769 var i = v.type(n);
770 i === "function" ? (!e.unique || !c.has(n)) && a.push(n) : n && n.length && i !== "string" && r(n)
771 })
772 })(arguments), i ? o = a.length : n && (s = t, l(n))
773 }
774 return this
775 },
776 remove: function() {
777 return a && v.each(arguments, function(e, t) {
778 var n;
779 while ((n = v.inArray(t, a, n)) > -1) a.splice(n, 1), i && (n <= o && o--, n <= u && u--)
780 }), this
781 },
782 has: function(e) {
783 return v.inArray(e, a) > -1
784 },
785 empty: function() {
786 return a = [], this
787 },
788 disable: function() {
789 return a = f = n = t, this
790 },
791 disabled: function() {
792 return !a
793 },
794 lock: function() {
795 return f = t, n || c.disable(), this
796 },
797 locked: function() {
798 return !f
799 },
800 fireWith: function(e, t) {
801 return t = t || [], t = [e, t.slice ? t.slice() : t], a && (!r || f) && (i ? f.push(t) : l(t)), this
802 },
803 fire: function() {
804 return c.fireWith(this, arguments), this
805 },
806 fired: function() {
807 return !!r
808 }
809 };
810 return c
811 }, v.extend({
812 Deferred: function(e) {
813 var t = [
814 ["resolve", "done", v.Callbacks("once memory"), "resolved"],
815 ["reject", "fail", v.Callbacks("once memory"), "rejected"],
816 ["notify", "progress", v.Callbacks("memory")]
817 ],
818 n = "pending",
819 r = {
820 state: function() {
821 return n
822 },
823 always: function() {
824 return i.done(arguments).fail(arguments), this
825 },
826 then: function() {
827 var e = arguments;
828 return v.Deferred(function(n) {
829 v.each(t, function(t, r) {
830 var s = r[0],
831 o = e[t];
832 i[r[1]](v.isFunction(o) ? function() {
833 var e = o.apply(this, arguments);
834 e && v.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[s + "With"](this === i ? n : this, [e])
835 } : n[s])
836 }), e = null
837 }).promise()
838 },
839 promise: function(e) {
840 return e != null ? v.extend(e, r) : r
841 }
842 },
843 i = {};
844 return r.pipe = r.then, v.each(t, function(e, s) {
845 var o = s[2],
846 u = s[3];
847 r[s[1]] = o.add, u && o.add(function() {
848 n = u
849 }, t[e ^ 1][2].disable, t[2][2].lock), i[s[0]] = o.fire, i[s[0] + "With"] = o.fireWith
850 }), r.promise(i), e && e.call(i, i), i
851 },
852 when: function(e) {
853 var t = 0,
854 n = l.call(arguments),
855 r = n.length,
856 i = r !== 1 || e && v.isFunction(e.promise) ? r : 0,
857 s = i === 1 ? e : v.Deferred(),
858 o = function(e, t, n) {
859 return function(r) {
860 t[e] = this, n[e] = arguments.length > 1 ? l.call(arguments) : r, n === u ? s.notifyWith(t, n) : --i || s.resolveWith(t, n)
861 }
862 },
863 u, a, f;
864 if (r > 1) {
865 u = new Array(r), a = new Array(r), f = new Array(r);
866 for (; t < r; t++) n[t] && v.isFunction(n[t].promise) ? n[t].promise().done(o(t, f, n)).fail(s.reject).progress(o(t, a, u)) : --i
867 }
868 return i || s.resolveWith(f, n), s.promise()
869 }
870 }), v.support = function() {
871 var t, n, r, s, o, u, a, f, l, c, h, p = i.createElement("div");
872 p.setAttribute("className", "t"), p.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", n = p.getElementsByTagName("*"), r = p.getElementsByTagName("a")[0];
873 if (!n || !r || !n.length) return {};
874 s = i.createElement("select"), o = s.appendChild(i.createElement("option")), u = p.getElementsByTagName("input")[0], r.style.cssText = "top:1px;float:left;opacity:.5", t = {
875 leadingWhitespace: p.firstChild.nodeType === 3,
876 tbody: !p.getElementsByTagName("tbody").length,
877 htmlSerialize: !!p.getElementsByTagName("link").length,
878 style: /top/.test(r.getAttribute("style")),
879 hrefNormalized: r.getAttribute("href") === "/a",
880 opacity: /^0.5/.test(r.style.opacity),
881 cssFloat: !!r.style.cssFloat,
882 checkOn: u.value === "on",
883 optSelected: o.selected,
884 getSetAttribute: p.className !== "t",
885 enctype: !!i.createElement("form").enctype,
886 html5Clone: i.createElement("nav").cloneNode(!0).outerHTML !== "<:nav></:nav>",
887 boxModel: i.compatMode === "CSS1Compat",
888 submitBubbles: !0,
889 changeBubbles: !0,
890 focusinBubbles: !1,
891 deleteExpando: !0,
892 noCloneEvent: !0,
893 inlineBlockNeedsLayout: !1,
894 shrinkWrapBlocks: !1,
895 reliableMarginRight: !0,
896 boxSizingReliable: !0,
897 pixelPosition: !1
898 }, u.checked = !0, t.noCloneChecked = u.cloneNode(!0).checked, s.disabled = !0, t.optDisabled = !o.disabled;
899 try {
900 delete p.test
901 } catch (d) {
902 t.deleteExpando = !1
903 }!p.addEventListener && p.attachEvent && p.fireEvent && (p.attachEvent("onclick", h = function() {
904 t.noCloneEvent = !1
905 }), p.cloneNode(!0).fireEvent("onclick"), p.detachEvent("onclick", h)), u = i.createElement("input"), u.value = "t", u.setAttribute("type", "radio"), t.radioValue = u.value === "t", u.setAttribute("checked", "checked"), u.setAttribute("name", "t"), p.appendChild(u), a = i.createDocumentFragment(), a.appendChild(p.lastChild), t.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked, t.appendChecked = u.checked, a.removeChild(u), a.appendChild(p);
906 if (p.attachEvent)
907 for (l in {
908 submit: !0,
909 change: !0,
910 focusin: !0
911 }) f = "on" + l, c = f in p, c || (p.setAttribute(f, "return;"), c = typeof p[f] == "function"), t[l + "Bubbles"] = c;
912 return v(function() {
913 var n, r, s, o, u = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
914 a = i.getElementsByTagName("body")[0];
915 if (!a) return;
916 n = i.createElement("div"), n.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px", a.insertBefore(n, a.firstChild), r = i.createElement("div"), n.appendChild(r), r.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", s = r.getElementsByTagName("td"), s[0].style.cssText = "padding:0;margin:0;border:0;display:none", c = s[0].offsetHeight === 0, s[0].style.display = "", s[1].style.display = "none", t.reliableHiddenOffsets = c && s[0].offsetHeight === 0, r.innerHTML = "", r.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", t.boxSizing = r.offsetWidth === 4, t.doesNotIncludeMarginInBodyOffset = a.offsetTop !== 1, e.getComputedStyle && (t.pixelPosition = (e.getComputedStyle(r, null) || {}).top !== "1%", t.boxSizingReliable = (e.getComputedStyle(r, null) || {
917 width: "4px"
918 }).width === "4px", o = i.createElement("div"), o.style.cssText = r.style.cssText = u, o.style.marginRight = o.style.width = "0", r.style.width = "1px", r.appendChild(o), t.reliableMarginRight = !parseFloat((e.getComputedStyle(o, null) || {}).marginRight)), typeof r.style.zoom != "undefined" && (r.innerHTML = "", r.style.cssText = u + "width:1px;padding:1px;display:inline;zoom:1", t.inlineBlockNeedsLayout = r.offsetWidth === 3, r.style.display = "block", r.style.overflow = "visible", r.innerHTML = "<div></div>", r.firstChild.style.width = "5px", t.shrinkWrapBlocks = r.offsetWidth !== 3, n.style.zoom = 1), a.removeChild(n), n = r = s = o = null
919 }), a.removeChild(p), n = r = s = o = u = a = p = null, t
920 }();
921 var D = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
922 P = /([A-Z])/g;
923 v.extend({
924 cache: {},
925 deletedIds: [],
926 uuid: 0,
927 expando: "jQuery" + (v.fn.jquery + Math.random()).replace(/\D/g, ""),
928 noData: {
929 embed: !0,
930 object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
931 applet: !0
932 },
933 hasData: function(e) {
934 return e = e.nodeType ? v.cache[e[v.expando]] : e[v.expando], !!e && !B(e)
935 },
936 data: function(e, n, r, i) {
937 if (!v.acceptData(e)) return;
938 var s, o, u = v.expando,
939 a = typeof n == "string",
940 f = e.nodeType,
941 l = f ? v.cache : e,
942 c = f ? e[u] : e[u] && u;
943 if ((!c || !l[c] || !i && !l[c].data) && a && r === t) return;
944 c || (f ? e[u] = c = v.deletedIds.pop() || v.guid++ : c = u), l[c] || (l[c] = {}, f || (l[c].toJSON = v.noop));
945 if (typeof n == "object" || typeof n == "function") i ? l[c] = v.extend(l[c], n) : l[c].data = v.extend(l[c].data, n);
946 return s = l[c], i || (s.data || (s.data = {}), s = s.data), r !== t && (s[v.camelCase(n)] = r), a ? (o = s[n], o == null && (o = s[v.camelCase(n)])) : o = s, o
947 },
948 removeData: function(e, t, n) {
949 if (!v.acceptData(e)) return;
950 var r, i, s, o = e.nodeType,
951 u = o ? v.cache : e,
952 a = o ? e[v.expando] : v.expando;
953 if (!u[a]) return;
954 if (t) {
955 r = n ? u[a] : u[a].data;
956 if (r) {
957 v.isArray(t) || (t in r ? t = [t] : (t = v.camelCase(t), t in r ? t = [t] : t = t.split(" ")));
958 for (i = 0, s = t.length; i < s; i++) delete r[t[i]];
959 if (!(n ? B : v.isEmptyObject)(r)) return
960 }
961 }
962 if (!n) {
963 delete u[a].data;
964 if (!B(u[a])) return
965 }
966 o ? v.cleanData([e], !0) : v.support.deleteExpando || u != u.window ? delete u[a] : u[a] = null
967 },
968 _data: function(e, t, n) {
969 return v.data(e, t, n, !0)
970 },
971 acceptData: function(e) {
972 var t = e.nodeName && v.noData[e.nodeName.toLowerCase()];
973 return !t || t !== !0 && e.getAttribute("classid") === t
974 }
975 }), v.fn.extend({
976 data: function(e, n) {
977 var r, i, s, o, u, a = this[0],
978 f = 0,
979 l = null;
980 if (e === t) {
981 if (this.length) {
982 l = v.data(a);
983 if (a.nodeType === 1 && !v._data(a, "parsedAttrs")) {
984 s = a.attributes;
985 for (u = s.length; f < u; f++) o = s[f].name, o.indexOf("data-") || (o = v.camelCase(o.substring(5)), H(a, o, l[o]));
986 v._data(a, "parsedAttrs", !0)
987 }
988 }
989 return l
990 }
991 return typeof e == "object" ? this.each(function() {
992 v.data(this, e)
993 }) : (r = e.split(".", 2), r[1] = r[1] ? "." + r[1] : "", i = r[1] + "!", v.access(this, function(n) {
994 if (n === t) return l = this.triggerHandler("getData" + i, [r[0]]), l === t && a && (l = v.data(a, e), l = H(a, e, l)), l === t && r[1] ? this.data(r[0]) : l;
995 r[1] = n, this.each(function() {
996 var t = v(this);
997 t.triggerHandler("setData" + i, r), v.data(this, e, n), t.triggerHandler("changeData" + i, r)
998 })
999 }, null, n, arguments.length > 1, null, !1))
1000 },
1001 removeData: function(e) {
1002 return this.each(function() {
1003 v.removeData(this, e)
1004 })
1005 }
1006 }), v.extend({
1007 queue: function(e, t, n) {
1008 var r;
1009 if (e) return t = (t || "fx") + "queue", r = v._data(e, t), n && (!r || v.isArray(n) ? r = v._data(e, t, v.makeArray(n)) : r.push(n)), r || []
1010 },
1011 dequeue: function(e, t) {
1012 t = t || "fx";
1013 var n = v.queue(e, t),
1014 r = n.length,
1015 i = n.shift(),
1016 s = v._queueHooks(e, t),
1017 o = function() {
1018 v.dequeue(e, t)
1019 };
1020 i === "inprogress" && (i = n.shift(), r--), i && (t === "fx" && n.unshift("inprogress"), delete s.stop, i.call(e, o, s)), !r && s && s.empty.fire()
1021 },
1022 _queueHooks: function(e, t) {
1023 var n = t + "queueHooks";
1024 return v._data(e, n) || v._data(e, n, {
1025 empty: v.Callbacks("once memory").add(function() {
1026 v.removeData(e, t + "queue", !0), v.removeData(e, n, !0)
1027 })
1028 })
1029 }
1030 }), v.fn.extend({
1031 queue: function(e, n) {
1032 var r = 2;
1033 return typeof e != "string" && (n = e, e = "fx", r--), arguments.length < r ? v.queue(this[0], e) : n === t ? this : this.each(function() {
1034 var t = v.queue(this, e, n);
1035 v._queueHooks(this, e), e === "fx" && t[0] !== "inprogress" && v.dequeue(this, e)
1036 })
1037 },
1038 dequeue: function(e) {
1039 return this.each(function() {
1040 v.dequeue(this, e)
1041 })
1042 },
1043 delay: function(e, t) {
1044 return e = v.fx ? v.fx.speeds[e] || e : e, t = t || "fx", this.queue(t, function(t, n) {
1045 var r = setTimeout(t, e);
1046 n.stop = function() {
1047 clearTimeout(r)
1048 }
1049 })
1050 },
1051 clearQueue: function(e) {
1052 return this.queue(e || "fx", [])
1053 },
1054 promise: function(e, n) {
1055 var r, i = 1,
1056 s = v.Deferred(),
1057 o = this,
1058 u = this.length,
1059 a = function() {
1060 --i || s.resolveWith(o, [o])
1061 };
1062 typeof e != "string" && (n = e, e = t), e = e || "fx";
1063 while (u--) r = v._data(o[u], e + "queueHooks"), r && r.empty && (i++, r.empty.add(a));
1064 return a(), s.promise(n)
1065 }
1066 });
1067 var j, F, I, q = /[\t\r\n]/g,
1068 R = /\r/g,
1069 U = /^(?:button|input)$/i,
1070 z = /^(?:button|input|object|select|textarea)$/i,
1071 W = /^a(?:rea|)$/i,
1072 X = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
1073 V = v.support.getSetAttribute;
1074 v.fn.extend({
1075 attr: function(e, t) {
1076 return v.access(this, v.attr, e, t, arguments.length > 1)
1077 },
1078 removeAttr: function(e) {
1079 return this.each(function() {
1080 v.removeAttr(this, e)
1081 })
1082 },
1083 prop: function(e, t) {
1084 return v.access(this, v.prop, e, t, arguments.length > 1)
1085 },
1086 removeProp: function(e) {
1087 return e = v.propFix[e] || e, this.each(function() {
1088 try {
1089 this[e] = t, delete this[e]
1090 } catch (n) {}
1091 })
1092 },
1093 addClass: function(e) {
1094 var t, n, r, i, s, o, u;
1095 if (v.isFunction(e)) return this.each(function(t) {
1096 v(this).addClass(e.call(this, t, this.className))
1097 });
1098 if (e && typeof e == "string") {
1099 t = e.split(y);
1100 for (n = 0, r = this.length; n < r; n++) {
1101 i = this[n];
1102 if (i.nodeType === 1)
1103 if (!i.className && t.length === 1) i.className = e;
1104 else {
1105 s = " " + i.className + " ";
1106 for (o = 0, u = t.length; o < u; o++) s.indexOf(" " + t[o] + " ") < 0 && (s += t[o] + " ");
1107 i.className = v.trim(s)
1108 }
1109 }
1110 }
1111 return this
1112 },
1113 removeClass: function(e) {
1114 var n, r, i, s, o, u, a;
1115 if (v.isFunction(e)) return this.each(function(t) {
1116 v(this).removeClass(e.call(this, t, this.className))
1117 });
1118 if (e && typeof e == "string" || e === t) {
1119 n = (e || "").split(y);
1120 for (u = 0, a = this.length; u < a; u++) {
1121 i = this[u];
1122 if (i.nodeType === 1 && i.className) {
1123 r = (" " + i.className + " ").replace(q, " ");
1124 for (s = 0, o = n.length; s < o; s++)
1125 while (r.indexOf(" " + n[s] + " ") >= 0) r = r.replace(" " + n[s] + " ", " ");
1126 i.className = e ? v.trim(r) : ""
1127 }
1128 }
1129 }
1130 return this
1131 },
1132 toggleClass: function(e, t) {
1133 var n = typeof e,
1134 r = typeof t == "boolean";
1135 return v.isFunction(e) ? this.each(function(n) {
1136 v(this).toggleClass(e.call(this, n, this.className, t), t)
1137 }) : this.each(function() {
1138 if (n === "string") {
1139 var i, s = 0,
1140 o = v(this),
1141 u = t,
1142 a = e.split(y);
1143 while (i = a[s++]) u = r ? u : !o.hasClass(i), o[u ? "addClass" : "removeClass"](i)
1144 } else if (n === "undefined" || n === "boolean") this.className && v._data(this, "__className__", this.className), this.className = this.className || e === !1 ? "" : v._data(this, "__className__") || ""
1145 })
1146 },
1147 hasClass: function(e) {
1148 var t = " " + e + " ",
1149 n = 0,
1150 r = this.length;
1151 for (; n < r; n++)
1152 if (this[n].nodeType === 1 && (" " + this[n].className + " ").replace(q, " ").indexOf(t) >= 0) return !0;
1153 return !1
1154 },
1155 val: function(e) {
1156 var n, r, i, s = this[0];
1157 if (!arguments.length) {
1158 if (s) return n = v.valHooks[s.type] || v.valHooks[s.nodeName.toLowerCase()], n && "get" in n && (r = n.get(s, "value")) !== t ? r : (r = s.value, typeof r == "string" ? r.replace(R, "") : r == null ? "" : r);
1159 return
1160 }
1161 return i = v.isFunction(e), this.each(function(r) {
1162 var s, o = v(this);
1163 if (this.nodeType !== 1) return;
1164 i ? s = e.call(this, r, o.val()) : s = e, s == null ? s = "" : typeof s == "number" ? s += "" : v.isArray(s) && (s = v.map(s, function(e) {
1165 return e == null ? "" : e + ""
1166 })), n = v.valHooks[this.type] || v.valHooks[this.nodeName.toLowerCase()];
1167 if (!n || !("set" in n) || n.set(this, s, "value") === t) this.value = s
1168 })
1169 }
1170 }), v.extend({
1171 valHooks: {
1172 option: {
1173 get: function(e) {
1174 var t = e.attributes.value;
1175 return !t || t.specified ? e.value : e.text
1176 }
1177 },
1178 select: {
1179 get: function(e) {
1180 var t, n, r = e.options,
1181 i = e.selectedIndex,
1182 s = e.type === "select-one" || i < 0,
1183 o = s ? null : [],
1184 u = s ? i + 1 : r.length,
1185 a = i < 0 ? u : s ? i : 0;
1186 for (; a < u; a++) {
1187 n = r[a];
1188 if ((n.selected || a === i) && (v.support.optDisabled ? !n.disabled : n.getAttribute("disabled") === null) && (!n.parentNode.disabled || !v.nodeName(n.parentNode, "optgroup"))) {
1189 t = v(n).val();
1190 if (s) return t;
1191 o.push(t)
1192 }
1193 }
1194 return o
1195 },
1196 set: function(e, t) {
1197 var n = v.makeArray(t);
1198 return v(e).find("option").each(function() {
1199 this.selected = v.inArray(v(this).val(), n) >= 0
1200 }), n.length || (e.selectedIndex = -1), n
1201 }
1202 }
1203 },
1204 attrFn: {},
1205 attr: function(e, n, r, i) {
1206 var s, o, u, a = e.nodeType;
1207 if (!e || a === 3 || a === 8 || a === 2) return;
1208 if (i && v.isFunction(v.fn[n])) return v(e)[n](r);
1209 if (typeof e.getAttribute == "undefined") return v.prop(e, n, r);
1210 u = a !== 1 || !v.isXMLDoc(e), u && (n = n.toLowerCase(), o = v.attrHooks[n] || (X.test(n) ? F : j));
1211 if (r !== t) {
1212 if (r === null) {
1213 v.removeAttr(e, n);
1214 return
1215 }
1216 return o && "set" in o && u && (s = o.set(e, r, n)) !== t ? s : (e.setAttribute(n, r + ""), r)
1217 }
1218 return o && "get" in o && u && (s = o.get(e, n)) !== null ? s : (s = e.getAttribute(n), s === null ? t : s)
1219 },
1220 removeAttr: function(e, t) {
1221 var n, r, i, s, o = 0;
1222 if (t && e.nodeType === 1) {
1223 r = t.split(y);
1224 for (; o < r.length; o++) i = r[o], i && (n = v.propFix[i] || i, s = X.test(i), s || v.attr(e, i, ""), e.removeAttribute(V ? i : n), s && n in e && (e[n] = !1))
1225 }
1226 },
1227 attrHooks: {
1228 type: {
1229 set: function(e, t) {
1230 if (U.test(e.nodeName) && e.parentNode) v.error("type property can't be changed");
1231 else if (!v.support.radioValue && t === "radio" && v.nodeName(e, "input")) {
1232 var n = e.value;
1233 return e.setAttribute("type", t), n && (e.value = n), t
1234 }
1235 }
1236 },
1237 value: {
1238 get: function(e, t) {
1239 return j && v.nodeName(e, "button") ? j.get(e, t) : t in e ? e.value : null
1240 },
1241 set: function(e, t, n) {
1242 if (j && v.nodeName(e, "button")) return j.set(e, t, n);
1243 e.value = t
1244 }
1245 }
1246 },
1247 propFix: {
1248 tabindex: "tabIndex",
1249 readonly: "readOnly",
1250 "for": "htmlFor",
1251 "class": "className",
1252 maxlength: "maxLength",
1253 cellspacing: "cellSpacing",
1254 cellpadding: "cellPadding",
1255 rowspan: "rowSpan",
1256 colspan: "colSpan",
1257 usemap: "useMap",
1258 frameborder: "frameBorder",
1259 contenteditable: "contentEditable"
1260 },
1261 prop: function(e, n, r) {
1262 var i, s, o, u = e.nodeType;
1263 if (!e || u === 3 || u === 8 || u === 2) return;
1264 return o = u !== 1 || !v.isXMLDoc(e), o && (n = v.propFix[n] || n, s = v.propHooks[n]), r !== t ? s && "set" in s && (i = s.set(e, r, n)) !== t ? i : e[n] = r : s && "get" in s && (i = s.get(e, n)) !== null ? i : e[n]
1265 },
1266 propHooks: {
1267 tabIndex: {
1268 get: function(e) {
1269 var n = e.getAttributeNode("tabindex");
1270 return n && n.specified ? parseInt(n.value, 10) : z.test(e.nodeName) || W.test(e.nodeName) && e.href ? 0 : t
1271 }
1272 }
1273 }
1274 }), F = {
1275 get: function(e, n) {
1276 var r, i = v.prop(e, n);
1277 return i === !0 || typeof i != "boolean" && (r = e.getAttributeNode(n)) && r.nodeValue !== !1 ? n.toLowerCase() : t
1278 },
1279 set: function(e, t, n) {
1280 var r;
1281 return t === !1 ? v.removeAttr(e, n) : (r = v.propFix[n] || n, r in e && (e[r] = !0), e.setAttribute(n, n.toLowerCase())), n
1282 }
1283 }, V || (I = {
1284 name: !0,
1285 id: !0,
1286 coords: !0
1287 }, j = v.valHooks.button = {
1288 get: function(e, n) {
1289 var r;
1290 return r = e.getAttributeNode(n), r && (I[n] ? r.value !== "" : r.specified) ? r.value : t
1291 },
1292 set: function(e, t, n) {
1293 var r = e.getAttributeNode(n);
1294 return r || (r = i.createAttribute(n), e.setAttributeNode(r)), r.value = t + ""
1295 }
1296 }, v.each(["width", "height"], function(e, t) {
1297 v.attrHooks[t] = v.extend(v.attrHooks[t], {
1298 set: function(e, n) {
1299 if (n === "") return e.setAttribute(t, "auto"), n
1300 }
1301 })
1302 }), v.attrHooks.contenteditable = {
1303 get: j.get,
1304 set: function(e, t, n) {
1305 t === "" && (t = "false"), j.set(e, t, n)
1306 }
1307 }), v.support.hrefNormalized || v.each(["href", "src", "width", "height"], function(e, n) {
1308 v.attrHooks[n] = v.extend(v.attrHooks[n], {
1309 get: function(e) {
1310 var r = e.getAttribute(n, 2);
1311 return r === null ? t : r
1312 }
1313 })
1314 }), v.support.style || (v.attrHooks.style = {
1315 get: function(e) {
1316 return e.style.cssText.toLowerCase() || t
1317 },
1318 set: function(e, t) {
1319 return e.style.cssText = t + ""
1320 }
1321 }), v.support.optSelected || (v.propHooks.selected = v.extend(v.propHooks.selected, {
1322 get: function(e) {
1323 var t = e.parentNode;
1324 return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null
1325 }
1326 })), v.support.enctype || (v.propFix.enctype = "encoding"), v.support.checkOn || v.each(["radio", "checkbox"], function() {
1327 v.valHooks[this] = {
1328 get: function(e) {
1329 return e.getAttribute("value") === null ? "on" : e.value
1330 }
1331 }
1332 }), v.each(["radio", "checkbox"], function() {
1333 v.valHooks[this] = v.extend(v.valHooks[this], {
1334 set: function(e, t) {
1335 if (v.isArray(t)) return e.checked = v.inArray(v(e).val(), t) >= 0
1336 }
1337 })
1338 });
1339 var $ = /^(?:textarea|input|select)$/i,
1340 J = /^([^\.]*|)(?:\.(.+)|)$/,
1341 K = /(?:^|\s)hover(\.\S+|)\b/,
1342 Q = /^key/,
1343 G = /^(?:mouse|contextmenu)|click/,
1344 Y = /^(?:focusinfocus|focusoutblur)$/,
1345 Z = function(e) {
1346 return v.event.special.hover ? e : e.replace(K, "mouseenter$1 mouseleave$1")
1347 };
1348 v.event = {
1349 add: function(e, n, r, i, s) {
1350 var o, u, a, f, l, c, h, p, d, m, g;
1351 if (e.nodeType === 3 || e.nodeType === 8 || !n || !r || !(o = v._data(e))) return;
1352 r.handler && (d = r, r = d.handler, s = d.selector), r.guid || (r.guid = v.guid++), a = o.events, a || (o.events = a = {}), u = o.handle, u || (o.handle = u = function(e) {
1353 return typeof v == "undefined" || !!e && v.event.triggered === e.type ? t : v.event.dispatch.apply(u.elem, arguments)
1354 }, u.elem = e), n = v.trim(Z(n)).split(" ");
1355 for (f = 0; f < n.length; f++) {
1356 l = J.exec(n[f]) || [], c = l[1], h = (l[2] || "").split(".").sort(), g = v.event.special[c] || {}, c = (s ? g.delegateType : g.bindType) || c, g = v.event.special[c] || {}, p = v.extend({
1357 type: c,
1358 origType: l[1],
1359 data: i,
1360 handler: r,
1361 guid: r.guid,
1362 selector: s,
1363 needsContext: s && v.expr.match.needsContext.test(s),
1364 namespace: h.join(".")
1365 }, d), m = a[c];
1366 if (!m) {
1367 m = a[c] = [], m.delegateCount = 0;
1368 if (!g.setup || g.setup.call(e, i, h, u) === !1) e.addEventListener ? e.addEventListener(c, u, !1) : e.attachEvent && e.attachEvent("on" + c, u)
1369 }
1370 g.add && (g.add.call(e, p), p.handler.guid || (p.handler.guid = r.guid)), s ? m.splice(m.delegateCount++, 0, p) : m.push(p), v.event.global[c] = !0
1371 }
1372 e = null
1373 },
1374 global: {},
1375 remove: function(e, t, n, r, i) {
1376 var s, o, u, a, f, l, c, h, p, d, m, g = v.hasData(e) && v._data(e);
1377 if (!g || !(h = g.events)) return;
1378 t = v.trim(Z(t || "")).split(" ");
1379 for (s = 0; s < t.length; s++) {
1380 o = J.exec(t[s]) || [], u = a = o[1], f = o[2];
1381 if (!u) {
1382 for (u in h) v.event.remove(e, u + t[s], n, r, !0);
1383 continue
1384 }
1385 p = v.event.special[u] || {}, u = (r ? p.delegateType : p.bindType) || u, d = h[u] || [], l = d.length, f = f ? new RegExp("(^|\\.)" + f.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
1386 for (c = 0; c < d.length; c++) m = d[c], (i || a === m.origType) && (!n || n.guid === m.guid) && (!f || f.test(m.namespace)) && (!r || r === m.selector || r === "**" && m.selector) && (d.splice(c--, 1), m.selector && d.delegateCount--, p.remove && p.remove.call(e, m));
1387 d.length === 0 && l !== d.length && ((!p.teardown || p.teardown.call(e, f, g.handle) === !1) && v.removeEvent(e, u, g.handle), delete h[u])
1388 }
1389 v.isEmptyObject(h) && (delete g.handle, v.removeData(e, "events", !0))
1390 },
1391 customEvent: {
1392 getData: !0,
1393 setData: !0,
1394 changeData: !0
1395 },
1396 trigger: function(n, r, s, o) {
1397 if (!s || s.nodeType !== 3 && s.nodeType !== 8) {
1398 var u, a, f, l, c, h, p, d, m, g, y = n.type || n,
1399 b = [];
1400 if (Y.test(y + v.event.triggered)) return;
1401 y.indexOf("!") >= 0 && (y = y.slice(0, -1), a = !0), y.indexOf(".") >= 0 && (b = y.split("."), y = b.shift(), b.sort());
1402 if ((!s || v.event.customEvent[y]) && !v.event.global[y]) return;
1403 n = typeof n == "object" ? n[v.expando] ? n : new v.Event(y, n) : new v.Event(y), n.type = y, n.isTrigger = !0, n.exclusive = a, n.namespace = b.join("."), n.namespace_re = n.namespace ? new RegExp("(^|\\.)" + b.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, h = y.indexOf(":") < 0 ? "on" + y : "";
1404 if (!s) {
1405 u = v.cache;
1406 for (f in u) u[f].events && u[f].events[y] && v.event.trigger(n, r, u[f].handle.elem, !0);
1407 return
1408 }
1409 n.result = t, n.target || (n.target = s), r = r != null ? v.makeArray(r) : [], r.unshift(n), p = v.event.special[y] || {};
1410 if (p.trigger && p.trigger.apply(s, r) === !1) return;
1411 m = [
1412 [s, p.bindType || y]
1413 ];
1414 if (!o && !p.noBubble && !v.isWindow(s)) {
1415 g = p.delegateType || y, l = Y.test(g + y) ? s : s.parentNode;
1416 for (c = s; l; l = l.parentNode) m.push([l, g]), c = l;
1417 c === (s.ownerDocument || i) && m.push([c.defaultView || c.parentWindow || e, g])
1418 }
1419 for (f = 0; f < m.length && !n.isPropagationStopped(); f++) l = m[f][0], n.type = m[f][1], d = (v._data(l, "events") || {})[n.type] && v._data(l, "handle"), d && d.apply(l, r), d = h && l[h], d && v.acceptData(l) && d.apply && d.apply(l, r) === !1 && n.preventDefault();
1420 return n.type = y, !o && !n.isDefaultPrevented() && (!p._default || p._default.apply(s.ownerDocument, r) === !1) && (y !== "click" || !v.nodeName(s, "a")) && v.acceptData(s) && h && s[y] && (y !== "focus" && y !== "blur" || n.target.offsetWidth !== 0) && !v.isWindow(s) && (c = s[h], c && (s[h] = null), v.event.triggered = y, s[y](), v.event.triggered = t, c && (s[h] = c)), n.result
1421 }
1422 return
1423 },
1424 dispatch: function(n) {
1425 n = v.event.fix(n || e.event);
1426 var r, i, s, o, u, a, f, c, h, p, d = (v._data(this, "events") || {})[n.type] || [],
1427 m = d.delegateCount,
1428 g = l.call(arguments),
1429 y = !n.exclusive && !n.namespace,
1430 b = v.event.special[n.type] || {},
1431 w = [];
1432 g[0] = n, n.delegateTarget = this;
1433 if (b.preDispatch && b.preDispatch.call(this, n) === !1) return;
1434 if (m && (!n.button || n.type !== "click"))
1435 for (s = n.target; s != this; s = s.parentNode || this)
1436 if (s.disabled !== !0 || n.type !== "click") {
1437 u = {}, f = [];
1438 for (r = 0; r < m; r++) c = d[r], h = c.selector, u[h] === t && (u[h] = c.needsContext ? v(h, this).index(s) >= 0 : v.find(h, this, null, [s]).length), u[h] && f.push(c);
1439 f.length && w.push({
1440 elem: s,
1441 matches: f
1442 })
1443 }
1444 d.length > m && w.push({
1445 elem: this,
1446 matches: d.slice(m)
1447 });
1448 for (r = 0; r < w.length && !n.isPropagationStopped(); r++) {
1449 a = w[r], n.currentTarget = a.elem;
1450 for (i = 0; i < a.matches.length && !n.isImmediatePropagationStopped(); i++) {
1451 c = a.matches[i];
1452 if (y || !n.namespace && !c.namespace || n.namespace_re && n.namespace_re.test(c.namespace)) n.data = c.data, n.handleObj = c, o = ((v.event.special[c.origType] || {}).handle || c.handler).apply(a.elem, g), o !== t && (n.result = o, o === !1 && (n.preventDefault(), n.stopPropagation()))
1453 }
1454 }
1455 return b.postDispatch && b.postDispatch.call(this, n), n.result
1456 },
1457 props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
1458 fixHooks: {},
1459 keyHooks: {
1460 props: "char charCode key keyCode".split(" "),
1461 filter: function(e, t) {
1462 return e.which == null && (e.which = t.charCode != null ? t.charCode : t.keyCode), e
1463 }
1464 },
1465 mouseHooks: {
1466 props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
1467 filter: function(e, n) {
1468 var r, s, o, u = n.button,
1469 a = n.fromElement;
1470 return e.pageX == null && n.clientX != null && (r = e.target.ownerDocument || i, s = r.documentElement, o = r.body, e.pageX = n.clientX + (s && s.scrollLeft || o && o.scrollLeft || 0) - (s && s.clientLeft || o && o.clientLeft || 0), e.pageY = n.clientY + (s && s.scrollTop || o && o.scrollTop || 0) - (s && s.clientTop || o && o.clientTop || 0)), !e.relatedTarget && a && (e.relatedTarget = a === e.target ? n.toElement : a), !e.which && u !== t && (e.which = u & 1 ? 1 : u & 2 ? 3 : u & 4 ? 2 : 0), e
1471 }
1472 },
1473 fix: function(e) {
1474 if (e[v.expando]) return e;
1475 var t, n, r = e,
1476 s = v.event.fixHooks[e.type] || {},
1477 o = s.props ? this.props.concat(s.props) : this.props;
1478 e = v.Event(r);
1479 for (t = o.length; t;) n = o[--t], e[n] = r[n];
1480 return e.target || (e.target = r.srcElement || i), e.target.nodeType === 3 && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, s.filter ? s.filter(e, r) : e
1481 },
1482 special: {
1483 load: {
1484 noBubble: !0
1485 },
1486 focus: {
1487 delegateType: "focusin"
1488 },
1489 blur: {
1490 delegateType: "focusout"
1491 },
1492 beforeunload: {
1493 setup: function(e, t, n) {
1494 v.isWindow(this) && (this.onbeforeunload = n)
1495 },
1496 teardown: function(e, t) {
1497 this.onbeforeunload === t && (this.onbeforeunload = null)
1498 }
1499 }
1500 },
1501 simulate: function(e, t, n, r) {
1502 var i = v.extend(new v.Event, n, {
1503 type: e,
1504 isSimulated: !0,
1505 originalEvent: {}
1506 });
1507 r ? v.event.trigger(i, null, t) : v.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault()
1508 }
1509 }, v.event.handle = v.event.dispatch, v.removeEvent = i.removeEventListener ? function(e, t, n) {
1510 e.removeEventListener && e.removeEventListener(t, n, !1)
1511 } : function(e, t, n) {
1512 var r = "on" + t;
1513 e.detachEvent && (typeof e[r] == "undefined" && (e[r] = null), e.detachEvent(r, n))
1514 }, v.Event = function(e, t) {
1515 if (!(this instanceof v.Event)) return new v.Event(e, t);
1516 e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.returnValue === !1 || e.getPreventDefault && e.getPreventDefault() ? tt : et) : this.type = e, t && v.extend(this, t), this.timeStamp = e && e.timeStamp || v.now(), this[v.expando] = !0
1517 }, v.Event.prototype = {
1518 preventDefault: function() {
1519 this.isDefaultPrevented = tt;
1520 var e = this.originalEvent;
1521 if (!e) return;
1522 e.preventDefault ? e.preventDefault() : e.returnValue = !1
1523 },
1524 stopPropagation: function() {
1525 this.isPropagationStopped = tt;
1526 var e = this.originalEvent;
1527 if (!e) return;
1528 e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0
1529 },
1530 stopImmediatePropagation: function() {
1531 this.isImmediatePropagationStopped = tt, this.stopPropagation()
1532 },
1533 isDefaultPrevented: et,
1534 isPropagationStopped: et,
1535 isImmediatePropagationStopped: et
1536 }, v.each({
1537 mouseenter: "mouseover",
1538 mouseleave: "mouseout"
1539 }, function(e, t) {
1540 v.event.special[e] = {
1541 delegateType: t,
1542 bindType: t,
1543 handle: function(e) {
1544 var n, r = this,
1545 i = e.relatedTarget,
1546 s = e.handleObj,
1547 o = s.selector;
1548 if (!i || i !== r && !v.contains(r, i)) e.type = s.origType, n = s.handler.apply(this, arguments), e.type = t;
1549 return n
1550 }
1551 }
1552 }), v.support.submitBubbles || (v.event.special.submit = {
1553 setup: function() {
1554 if (v.nodeName(this, "form")) return !1;
1555 v.event.add(this, "click._submit keypress._submit", function(e) {
1556 var n = e.target,
1557 r = v.nodeName(n, "input") || v.nodeName(n, "button") ? n.form : t;
1558 r && !v._data(r, "_submit_attached") && (v.event.add(r, "submit._submit", function(e) {
1559 e._submit_bubble = !0
1560 }), v._data(r, "_submit_attached", !0))
1561 })
1562 },
1563 postDispatch: function(e) {
1564 e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && v.event.simulate("submit", this.parentNode, e, !0))
1565 },
1566 teardown: function() {
1567 if (v.nodeName(this, "form")) return !1;
1568 v.event.remove(this, "._submit")
1569 }
1570 }), v.support.changeBubbles || (v.event.special.change = {
1571 setup: function() {
1572 if ($.test(this.nodeName)) {
1573 if (this.type === "checkbox" || this.type === "radio") v.event.add(this, "propertychange._change", function(e) {
1574 e.originalEvent.propertyName === "checked" && (this._just_changed = !0)
1575 }), v.event.add(this, "click._change", function(e) {
1576 this._just_changed && !e.isTrigger && (this._just_changed = !1), v.event.simulate("change", this, e, !0)
1577 });
1578 return !1
1579 }
1580 v.event.add(this, "beforeactivate._change", function(e) {
1581 var t = e.target;
1582 $.test(t.nodeName) && !v._data(t, "_change_attached") && (v.event.add(t, "change._change", function(e) {
1583 this.parentNode && !e.isSimulated && !e.isTrigger && v.event.simulate("change", this.parentNode, e, !0)
1584 }), v._data(t, "_change_attached", !0))
1585 })
1586 },
1587 handle: function(e) {
1588 var t = e.target;
1589 if (this !== t || e.isSimulated || e.isTrigger || t.type !== "radio" && t.type !== "checkbox") return e.handleObj.handler.apply(this, arguments)
1590 },
1591 teardown: function() {
1592 return v.event.remove(this, "._change"), !$.test(this.nodeName)
1593 }
1594 }), v.support.focusinBubbles || v.each({
1595 focus: "focusin",
1596 blur: "focusout"
1597 }, function(e, t) {
1598 var n = 0,
1599 r = function(e) {
1600 v.event.simulate(t, e.target, v.event.fix(e), !0)
1601 };
1602 v.event.special[t] = {
1603 setup: function() {
1604 n++ === 0 && i.addEventListener(e, r, !0)
1605 },
1606 teardown: function() {
1607 --n === 0 && i.removeEventListener(e, r, !0)
1608 }
1609 }
1610 }), v.fn.extend({
1611 on: function(e, n, r, i, s) {
1612 var o, u;
1613 if (typeof e == "object") {
1614 typeof n != "string" && (r = r || n, n = t);
1615 for (u in e) this.on(u, n, r, e[u], s);
1616 return this
1617 }
1618 r == null && i == null ? (i = n, r = n = t) : i == null && (typeof n == "string" ? (i = r, r = t) : (i = r, r = n, n = t));
1619 if (i === !1) i = et;
1620 else if (!i) return this;
1621 return s === 1 && (o = i, i = function(e) {
1622 return v().off(e), o.apply(this, arguments)
1623 }, i.guid = o.guid || (o.guid = v.guid++)), this.each(function() {
1624 v.event.add(this, e, i, r, n)
1625 })
1626 },
1627 one: function(e, t, n, r) {
1628 return this.on(e, t, n, r, 1)
1629 },
1630 off: function(e, n, r) {
1631 var i, s;
1632 if (e && e.preventDefault && e.handleObj) return i = e.handleObj, v(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
1633 if (typeof e == "object") {
1634 for (s in e) this.off(s, n, e[s]);
1635 return this
1636 }
1637 if (n === !1 || typeof n == "function") r = n, n = t;
1638 return r === !1 && (r = et), this.each(function() {
1639 v.event.remove(this, e, r, n)
1640 })
1641 },
1642 bind: function(e, t, n) {
1643 return this.on(e, null, t, n)
1644 },
1645 unbind: function(e, t) {
1646 return this.off(e, null, t)
1647 },
1648 live: function(e, t, n) {
1649 return v(this.context).on(e, this.selector, t, n), this
1650 },
1651 die: function(e, t) {
1652 return v(this.context).off(e, this.selector || "**", t), this
1653 },
1654 delegate: function(e, t, n, r) {
1655 return this.on(t, e, n, r)
1656 },
1657 undelegate: function(e, t, n) {
1658 return arguments.length === 1 ? this.off(e, "**") : this.off(t, e || "**", n)
1659 },
1660 trigger: function(e, t) {
1661 return this.each(function() {
1662 v.event.trigger(e, t, this)
1663 })
1664 },
1665 triggerHandler: function(e, t) {
1666 if (this[0]) return v.event.trigger(e, t, this[0], !0)
1667 },
1668 toggle: function(e) {
1669 var t = arguments,
1670 n = e.guid || v.guid++,
1671 r = 0,
1672 i = function(n) {
1673 var i = (v._data(this, "lastToggle" + e.guid) || 0) % r;
1674 return v._data(this, "lastToggle" + e.guid, i + 1), n.preventDefault(), t[i].apply(this, arguments) || !1
1675 };
1676 i.guid = n;
1677 while (r < t.length) t[r++].guid = n;
1678 return this.click(i)
1679 },
1680 hover: function(e, t) {
1681 return this.mouseenter(e).mouseleave(t || e)
1682 }
1683 }), v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) {
1684 v.fn[t] = function(e, n) {
1685 return n == null && (n = e, e = null), arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
1686 }, Q.test(t) && (v.event.fixHooks[t] = v.event.keyHooks), G.test(t) && (v.event.fixHooks[t] = v.event.mouseHooks)
1687 }),
1688 function(e, t) {
1689 function nt(e, t, n, r) {
1690 n = n || [], t = t || g;
1691 var i, s, a, f, l = t.nodeType;
1692 if (!e || typeof e != "string") return n;
1693 if (l !== 1 && l !== 9) return [];
1694 a = o(t);
1695 if (!a && !r)
1696 if (i = R.exec(e))
1697 if (f = i[1]) {
1698 if (l === 9) {
1699 s = t.getElementById(f);
1700 if (!s || !s.parentNode) return n;
1701 if (s.id === f) return n.push(s), n
1702 } else if (t.ownerDocument && (s = t.ownerDocument.getElementById(f)) && u(t, s) && s.id === f) return n.push(s), n
1703 } else {
1704 if (i[2]) return S.apply(n, x.call(t.getElementsByTagName(e), 0)), n;
1705 if ((f = i[3]) && Z && t.getElementsByClassName) return S.apply(n, x.call(t.getElementsByClassName(f), 0)), n
1706 }
1707 return vt(e.replace(j, "$1"), t, n, r, a)
1708 }
1709
1710 function rt(e) {
1711 return function(t) {
1712 var n = t.nodeName.toLowerCase();
1713 return n === "input" && t.type === e
1714 }
1715 }
1716
1717 function it(e) {
1718 return function(t) {
1719 var n = t.nodeName.toLowerCase();
1720 return (n === "input" || n === "button") && t.type === e
1721 }
1722 }
1723
1724 function st(e) {
1725 return N(function(t) {
1726 return t = +t, N(function(n, r) {
1727 var i, s = e([], n.length, t),
1728 o = s.length;
1729 while (o--) n[i = s[o]] && (n[i] = !(r[i] = n[i]))
1730 })
1731 })
1732 }
1733
1734 function ot(e, t, n) {
1735 if (e === t) return n;
1736 var r = e.nextSibling;
1737 while (r) {
1738 if (r === t) return -1;
1739 r = r.nextSibling
1740 }
1741 return 1
1742 }
1743
1744 function ut(e, t) {
1745 var n, r, s, o, u, a, f, l = L[d][e + " "];
1746 if (l) return t ? 0 : l.slice(0);
1747 u = e, a = [], f = i.preFilter;
1748 while (u) {
1749 if (!n || (r = F.exec(u))) r && (u = u.slice(r[0].length) || u), a.push(s = []);
1750 n = !1;
1751 if (r = I.exec(u)) s.push(n = new m(r.shift())), u = u.slice(n.length), n.type = r[0].replace(j, " ");
1752 for (o in i.filter)(r = J[o].exec(u)) && (!f[o] || (r = f[o](r))) && (s.push(n = new m(r.shift())), u = u.slice(n.length), n.type = o, n.matches = r);
1753 if (!n) break
1754 }
1755 return t ? u.length : u ? nt.error(e) : L(e, a).slice(0)
1756 }
1757
1758 function at(e, t, r) {
1759 var i = t.dir,
1760 s = r && t.dir === "parentNode",
1761 o = w++;
1762 return t.first ? function(t, n, r) {
1763 while (t = t[i])
1764 if (s || t.nodeType === 1) return e(t, n, r)
1765 } : function(t, r, u) {
1766 if (!u) {
1767 var a, f = b + " " + o + " ",
1768 l = f + n;
1769 while (t = t[i])
1770 if (s || t.nodeType === 1) {
1771 if ((a = t[d]) === l) return t.sizset;
1772 if (typeof a == "string" && a.indexOf(f) === 0) {
1773 if (t.sizset) return t
1774 } else {
1775 t[d] = l;
1776 if (e(t, r, u)) return t.sizset = !0, t;
1777 t.sizset = !1
1778 }
1779 }
1780 } else
1781 while (t = t[i])
1782 if (s || t.nodeType === 1)
1783 if (e(t, r, u)) return t
1784 }
1785 }
1786
1787 function ft(e) {
1788 return e.length > 1 ? function(t, n, r) {
1789 var i = e.length;
1790 while (i--)
1791 if (!e[i](t, n, r)) return !1;
1792 return !0
1793 } : e[0]
1794 }
1795
1796 function lt(e, t, n, r, i) {
1797 var s, o = [],
1798 u = 0,
1799 a = e.length,
1800 f = t != null;
1801 for (; u < a; u++)
1802 if (s = e[u])
1803 if (!n || n(s, r, i)) o.push(s), f && t.push(u);
1804 return o
1805 }
1806
1807 function ct(e, t, n, r, i, s) {
1808 return r && !r[d] && (r = ct(r)), i && !i[d] && (i = ct(i, s)), N(function(s, o, u, a) {
1809 var f, l, c, h = [],
1810 p = [],
1811 d = o.length,
1812 v = s || dt(t || "*", u.nodeType ? [u] : u, []),
1813 m = e && (s || !t) ? lt(v, h, e, u, a) : v,
1814 g = n ? i || (s ? e : d || r) ? [] : o : m;
1815 n && n(m, g, u, a);
1816 if (r) {
1817 f = lt(g, p), r(f, [], u, a), l = f.length;
1818 while (l--)
1819 if (c = f[l]) g[p[l]] = !(m[p[l]] = c)
1820 }
1821 if (s) {
1822 if (i || e) {
1823 if (i) {
1824 f = [], l = g.length;
1825 while (l--)(c = g[l]) && f.push(m[l] = c);
1826 i(null, g = [], f, a)
1827 }
1828 l = g.length;
1829 while (l--)(c = g[l]) && (f = i ? T.call(s, c) : h[l]) > -1 && (s[f] = !(o[f] = c))
1830 }
1831 } else g = lt(g === o ? g.splice(d, g.length) : g), i ? i(null, o, g, a) : S.apply(o, g)
1832 })
1833 }
1834
1835 function ht(e) {
1836 var t, n, r, s = e.length,
1837 o = i.relative[e[0].type],
1838 u = o || i.relative[" "],
1839 a = o ? 1 : 0,
1840 f = at(function(e) {
1841 return e === t
1842 }, u, !0),
1843 l = at(function(e) {
1844 return T.call(t, e) > -1
1845 }, u, !0),
1846 h = [
1847 function(e, n, r) {
1848 return !o && (r || n !== c) || ((t = n).nodeType ? f(e, n, r) : l(e, n, r))
1849 }
1850 ];
1851 for (; a < s; a++)
1852 if (n = i.relative[e[a].type]) h = [at(ft(h), n)];
1853 else {
1854 n = i.filter[e[a].type].apply(null, e[a].matches);
1855 if (n[d]) {
1856 r = ++a;
1857 for (; r < s; r++)
1858 if (i.relative[e[r].type]) break;
1859 return ct(a > 1 && ft(h), a > 1 && e.slice(0, a - 1).join("").replace(j, "$1"), n, a < r && ht(e.slice(a, r)), r < s && ht(e = e.slice(r)), r < s && e.join(""))
1860 }
1861 h.push(n)
1862 }
1863 return ft(h)
1864 }
1865
1866 function pt(e, t) {
1867 var r = t.length > 0,
1868 s = e.length > 0,
1869 o = function(u, a, f, l, h) {
1870 var p, d, v, m = [],
1871 y = 0,
1872 w = "0",
1873 x = u && [],
1874 T = h != null,
1875 N = c,
1876 C = u || s && i.find.TAG("*", h && a.parentNode || a),
1877 k = b += N == null ? 1 : Math.E;
1878 T && (c = a !== g && a, n = o.el);
1879 for (;
1880 (p = C[w]) != null; w++) {
1881 if (s && p) {
1882 for (d = 0; v = e[d]; d++)
1883 if (v(p, a, f)) {
1884 l.push(p);
1885 break
1886 }
1887 T && (b = k, n = ++o.el)
1888 }
1889 r && ((p = !v && p) && y--, u && x.push(p))
1890 }
1891 y += w;
1892 if (r && w !== y) {
1893 for (d = 0; v = t[d]; d++) v(x, m, a, f);
1894 if (u) {
1895 if (y > 0)
1896 while (w--)!x[w] && !m[w] && (m[w] = E.call(l));
1897 m = lt(m)
1898 }
1899 S.apply(l, m), T && !u && m.length > 0 && y + t.length > 1 && nt.uniqueSort(l)
1900 }
1901 return T && (b = k, c = N), x
1902 };
1903 return o.el = 0, r ? N(o) : o
1904 }
1905
1906 function dt(e, t, n) {
1907 var r = 0,
1908 i = t.length;
1909 for (; r < i; r++) nt(e, t[r], n);
1910 return n
1911 }
1912
1913 function vt(e, t, n, r, s) {
1914 var o, u, f, l, c, h = ut(e),
1915 p = h.length;
1916 if (!r && h.length === 1) {
1917 u = h[0] = h[0].slice(0);
1918 if (u.length > 2 && (f = u[0]).type === "ID" && t.nodeType === 9 && !s && i.relative[u[1].type]) {
1919 t = i.find.ID(f.matches[0].replace($, ""), t, s)[0];
1920 if (!t) return n;
1921 e = e.slice(u.shift().length)
1922 }
1923 for (o = J.POS.test(e) ? -1 : u.length - 1; o >= 0; o--) {
1924 f = u[o];
1925 if (i.relative[l = f.type]) break;
1926 if (c = i.find[l])
1927 if (r = c(f.matches[0].replace($, ""), z.test(u[0].type) && t.parentNode || t, s)) {
1928 u.splice(o, 1), e = r.length && u.join("");
1929 if (!e) return S.apply(n, x.call(r, 0)), n;
1930 break
1931 }
1932 }
1933 }
1934 return a(e, h)(r, t, s, n, z.test(e)), n
1935 }
1936
1937 function mt() {}
1938 var n, r, i, s, o, u, a, f, l, c, h = !0,
1939 p = "undefined",
1940 d = ("sizcache" + Math.random()).replace(".", ""),
1941 m = String,
1942 g = e.document,
1943 y = g.documentElement,
1944 b = 0,
1945 w = 0,
1946 E = [].pop,
1947 S = [].push,
1948 x = [].slice,
1949 T = [].indexOf || function(e) {
1950 var t = 0,
1951 n = this.length;
1952 for (; t < n; t++)
1953 if (this[t] === e) return t;
1954 return -1
1955 },
1956 N = function(e, t) {
1957 return e[d] = t == null || t, e
1958 },
1959 C = function() {
1960 var e = {},
1961 t = [];
1962 return N(function(n, r) {
1963 return t.push(n) > i.cacheLength && delete e[t.shift()], e[n + " "] = r
1964 }, e)
1965 },
1966 k = C(),
1967 L = C(),
1968 A = C(),
1969 O = "[\\x20\\t\\r\\n\\f]",
1970 M = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
1971 _ = M.replace("w", "w#"),
1972 D = "([*^$|!~]?=)",
1973 P = "\\[" + O + "*(" + M + ")" + O + "*(?:" + D + O + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + _ + ")|)|)" + O + "*\\]",
1974 H = ":(" + M + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + P + ")|[^:]|\\\\.)*|.*))\\)|)",
1975 B = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + O + "*((?:-\\d)?\\d*)" + O + "*\\)|)(?=[^-]|$)",
1976 j = new RegExp("^" + O + "+|((?:^|[^\\\\])(?:\\\\.)*)" + O + "+$", "g"),
1977 F = new RegExp("^" + O + "*," + O + "*"),
1978 I = new RegExp("^" + O + "*([\\x20\\t\\r\\n\\f>+~])" + O + "*"),
1979 q = new RegExp(H),
1980 R = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,
1981 U = /^:not/,
1982 z = /[\x20\t\r\n\f]*[+~]/,
1983 W = /:not\($/,
1984 X = /h\d/i,
1985 V = /input|select|textarea|button/i,
1986 $ = /\\(?!\\)/g,
1987 J = {
1988 ID: new RegExp("^#(" + M + ")"),
1989 CLASS: new RegExp("^\\.(" + M + ")"),
1990 NAME: new RegExp("^\\[name=['\"]?(" + M + ")['\"]?\\]"),
1991 TAG: new RegExp("^(" + M.replace("w", "w*") + ")"),
1992 ATTR: new RegExp("^" + P),
1993 PSEUDO: new RegExp("^" + H),
1994 POS: new RegExp(B, "i"),
1995 CHILD: new RegExp("^:(only|nth|first|last)-child(?:\\(" + O + "*(even|odd|(([+-]|)(\\d*)n|)" + O + "*(?:([+-]|)" + O + "*(\\d+)|))" + O + "*\\)|)", "i"),
1996 needsContext: new RegExp("^" + O + "*[>+~]|" + B, "i")
1997 },
1998 K = function(e) {
1999 var t = g.createElement("div");
2000 try {
2001 return e(t)
2002 } catch (n) {
2003 return !1
2004 } finally {
2005 t = null
2006 }
2007 },
2008 Q = K(function(e) {
2009 return e.appendChild(g.createComment("")), !e.getElementsByTagName("*").length
2010 }),
2011 G = K(function(e) {
2012 return e.innerHTML = "<a href='#'></a>", e.firstChild && typeof e.firstChild.getAttribute !== p && e.firstChild.getAttribute("href") === "#"
2013 }),
2014 Y = K(function(e) {
2015 e.innerHTML = "<select></select>";
2016 var t = typeof e.lastChild.getAttribute("multiple");
2017 return t !== "boolean" && t !== "string"
2018 }),
2019 Z = K(function(e) {
2020 return e.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>", !e.getElementsByClassName || !e.getElementsByClassName("e").length ? !1 : (e.lastChild.className = "e", e.getElementsByClassName("e").length === 2)
2021 }),
2022 et = K(function(e) {
2023 e.id = d + 0, e.innerHTML = "<a name='" + d + "'></a><div name='" + d + "'></div>", y.insertBefore(e, y.firstChild);
2024 var t = g.getElementsByName && g.getElementsByName(d).length === 2 + g.getElementsByName(d + 0).length;
2025 return r = !g.getElementById(d), y.removeChild(e), t
2026 });
2027 try {
2028 x.call(y.childNodes, 0)[0].nodeType
2029 } catch (tt) {
2030 x = function(e) {
2031 var t, n = [];
2032 for (; t = this[e]; e++) n.push(t);
2033 return n
2034 }
2035 }
2036 nt.matches = function(e, t) {
2037 return nt(e, null, null, t)
2038 }, nt.matchesSelector = function(e, t) {
2039 return nt(t, null, null, [e]).length > 0
2040 }, s = nt.getText = function(e) {
2041 var t, n = "",
2042 r = 0,
2043 i = e.nodeType;
2044 if (i) {
2045 if (i === 1 || i === 9 || i === 11) {
2046 if (typeof e.textContent == "string") return e.textContent;
2047 for (e = e.firstChild; e; e = e.nextSibling) n += s(e)
2048 } else if (i === 3 || i === 4) return e.nodeValue
2049 } else
2050 for (; t = e[r]; r++) n += s(t);
2051 return n
2052 }, o = nt.isXML = function(e) {
2053 var t = e && (e.ownerDocument || e).documentElement;
2054 return t ? t.nodeName !== "HTML" : !1
2055 }, u = nt.contains = y.contains ? function(e, t) {
2056 var n = e.nodeType === 9 ? e.documentElement : e,
2057 r = t && t.parentNode;
2058 return e === r || !!(r && r.nodeType === 1 && n.contains && n.contains(r))
2059 } : y.compareDocumentPosition ? function(e, t) {
2060 return t && !!(e.compareDocumentPosition(t) & 16)
2061 } : function(e, t) {
2062 while (t = t.parentNode)
2063 if (t === e) return !0;
2064 return !1
2065 }, nt.attr = function(e, t) {
2066 var n, r = o(e);
2067 return r || (t = t.toLowerCase()), (n = i.attrHandle[t]) ? n(e) : r || Y ? e.getAttribute(t) : (n = e.getAttributeNode(t), n ? typeof e[t] == "boolean" ? e[t] ? t : null : n.specified ? n.value : null : null)
2068 }, i = nt.selectors = {
2069 cacheLength: 50,
2070 createPseudo: N,
2071 match: J,
2072 attrHandle: G ? {} : {
2073 href: function(e) {
2074 return e.getAttribute("href", 2)
2075 },
2076 type: function(e) {
2077 return e.getAttribute("type")
2078 }
2079 },
2080 find: {
2081 ID: r ? function(e, t, n) {
2082 if (typeof t.getElementById !== p && !n) {
2083 var r = t.getElementById(e);
2084 return r && r.parentNode ? [r] : []
2085 }
2086 } : function(e, n, r) {
2087 if (typeof n.getElementById !== p && !r) {
2088 var i = n.getElementById(e);
2089 return i ? i.id === e || typeof i.getAttributeNode !== p && i.getAttributeNode("id").value === e ? [i] : t : []
2090 }
2091 },
2092 TAG: Q ? function(e, t) {
2093 if (typeof t.getElementsByTagName !== p) return t.getElementsByTagName(e)
2094 } : function(e, t) {
2095 var n = t.getElementsByTagName(e);
2096 if (e === "*") {
2097 var r, i = [],
2098 s = 0;
2099 for (; r = n[s]; s++) r.nodeType === 1 && i.push(r);
2100 return i
2101 }
2102 return n
2103 },
2104 NAME: et && function(e, t) {
2105 if (typeof t.getElementsByName !== p) return t.getElementsByName(name)
2106 },
2107 CLASS: Z && function(e, t, n) {
2108 if (typeof t.getElementsByClassName !== p && !n) return t.getElementsByClassName(e)
2109 }
2110 },
2111 relative: {
2112 ">": {
2113 dir: "parentNode",
2114 first: !0
2115 },
2116 " ": {
2117 dir: "parentNode"
2118 },
2119 "+": {
2120 dir: "previousSibling",
2121 first: !0
2122 },
2123 "~": {
2124 dir: "previousSibling"
2125 }
2126 },
2127 preFilter: {
2128 ATTR: function(e) {
2129 return e[1] = e[1].replace($, ""), e[3] = (e[4] || e[5] || "").replace($, ""), e[2] === "~=" && (e[3] = " " + e[3] + " "), e.slice(0, 4)
2130 },
2131 CHILD: function(e) {
2132 return e[1] = e[1].toLowerCase(), e[1] === "nth" ? (e[2] || nt.error(e[0]), e[3] = +(e[3] ? e[4] + (e[5] || 1) : 2 * (e[2] === "even" || e[2] === "odd")), e[4] = +(e[6] + e[7] || e[2] === "odd")) : e[2] && nt.error(e[0]), e
2133 },
2134 PSEUDO: function(e) {
2135 var t, n;
2136 if (J.CHILD.test(e[0])) return null;
2137 if (e[3]) e[2] = e[3];
2138 else if (t = e[4]) q.test(t) && (n = ut(t, !0)) && (n = t.indexOf(")", t.length - n) - t.length) && (t = t.slice(0, n), e[0] = e[0].slice(0, n)), e[2] = t;
2139 return e.slice(0, 3)
2140 }
2141 },
2142 filter: {
2143 ID: r ? function(e) {
2144 return e = e.replace($, ""),
2145 function(t) {
2146 return t.getAttribute("id") === e
2147 }
2148 } : function(e) {
2149 return e = e.replace($, ""),
2150 function(t) {
2151 var n = typeof t.getAttributeNode !== p && t.getAttributeNode("id");
2152 return n && n.value === e
2153 }
2154 },
2155 TAG: function(e) {
2156 return e === "*" ? function() {
2157 return !0
2158 } : (e = e.replace($, "").toLowerCase(), function(t) {
2159 return t.nodeName && t.nodeName.toLowerCase() === e
2160 })
2161 },
2162 CLASS: function(e) {
2163 var t = k[d][e + " "];
2164 return t || (t = new RegExp("(^|" + O + ")" + e + "(" + O + "|$)")) && k(e, function(e) {
2165 return t.test(e.className || typeof e.getAttribute !== p && e.getAttribute("class") || "")
2166 })
2167 },
2168 ATTR: function(e, t, n) {
2169 return function(r, i) {
2170 var s = nt.attr(r, e);
2171 return s == null ? t === "!=" : t ? (s += "", t === "=" ? s === n : t === "!=" ? s !== n : t === "^=" ? n && s.indexOf(n) === 0 : t === "*=" ? n && s.indexOf(n) > -1 : t === "$=" ? n && s.substr(s.length - n.length) === n : t === "~=" ? (" " + s + " ").indexOf(n) > -1 : t === "|=" ? s === n || s.substr(0, n.length + 1) === n + "-" : !1) : !0
2172 }
2173 },
2174 CHILD: function(e, t, n, r) {
2175 return e === "nth" ? function(e) {
2176 var t, i, s = e.parentNode;
2177 if (n === 1 && r === 0) return !0;
2178 if (s) {
2179 i = 0;
2180 for (t = s.firstChild; t; t = t.nextSibling)
2181 if (t.nodeType === 1) {
2182 i++;
2183 if (e === t) break
2184 }
2185 }
2186 return i -= r, i === n || i % n === 0 && i / n >= 0
2187 } : function(t) {
2188 var n = t;
2189 switch (e) {
2190 case "only":
2191 case "first":
2192 while (n = n.previousSibling)
2193 if (n.nodeType === 1) return !1;
2194 if (e === "first") return !0;
2195 n = t;
2196 case "last":
2197 while (n = n.nextSibling)
2198 if (n.nodeType === 1) return !1;
2199 return !0
2200 }
2201 }
2202 },
2203 PSEUDO: function(e, t) {
2204 var n, r = i.pseudos[e] || i.setFilters[e.toLowerCase()] || nt.error("unsupported pseudo: " + e);
2205 return r[d] ? r(t) : r.length > 1 ? (n = [e, e, "", t], i.setFilters.hasOwnProperty(e.toLowerCase()) ? N(function(e, n) {
2206 var i, s = r(e, t),
2207 o = s.length;
2208 while (o--) i = T.call(e, s[o]), e[i] = !(n[i] = s[o])
2209 }) : function(e) {
2210 return r(e, 0, n)
2211 }) : r
2212 }
2213 },
2214 pseudos: {
2215 not: N(function(e) {
2216 var t = [],
2217 n = [],
2218 r = a(e.replace(j, "$1"));
2219 return r[d] ? N(function(e, t, n, i) {
2220 var s, o = r(e, null, i, []),
2221 u = e.length;
2222 while (u--)
2223 if (s = o[u]) e[u] = !(t[u] = s)
2224 }) : function(e, i, s) {
2225 return t[0] = e, r(t, null, s, n), !n.pop()
2226 }
2227 }),
2228 has: N(function(e) {
2229 return function(t) {
2230 return nt(e, t).length > 0
2231 }
2232 }),
2233 contains: N(function(e) {
2234 return function(t) {
2235 return (t.textContent || t.innerText || s(t)).indexOf(e) > -1
2236 }
2237 }),
2238 enabled: function(e) {
2239 return e.disabled === !1
2240 },
2241 disabled: function(e) {
2242 return e.disabled === !0
2243 },
2244 checked: function(e) {
2245 var t = e.nodeName.toLowerCase();
2246 return t === "input" && !!e.checked || t === "option" && !!e.selected
2247 },
2248 selected: function(e) {
2249 return e.parentNode && e.parentNode.selectedIndex, e.selected === !0
2250 },
2251 parent: function(e) {
2252 return !i.pseudos.empty(e)
2253 },
2254 empty: function(e) {
2255 var t;
2256 e = e.firstChild;
2257 while (e) {
2258 if (e.nodeName > "@" || (t = e.nodeType) === 3 || t === 4) return !1;
2259 e = e.nextSibling
2260 }
2261 return !0
2262 },
2263 header: function(e) {
2264 return X.test(e.nodeName)
2265 },
2266 text: function(e) {
2267 var t, n;
2268 return e.nodeName.toLowerCase() === "input" && (t = e.type) === "text" && ((n = e.getAttribute("type")) == null || n.toLowerCase() === t)
2269 },
2270 radio: rt("radio"),
2271 checkbox: rt("checkbox"),
2272 file: rt("file"),
2273 password: rt("password"),
2274 image: rt("image"),
2275 submit: it("submit"),
2276 reset: it("reset"),
2277 button: function(e) {
2278 var t = e.nodeName.toLowerCase();
2279 return t === "input" && e.type === "button" || t === "button"
2280 },
2281 input: function(e) {
2282 return V.test(e.nodeName)
2283 },
2284 focus: function(e) {
2285 var t = e.ownerDocument;
2286 return e === t.activeElement && (!t.hasFocus || t.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
2287 },
2288 active: function(e) {
2289 return e === e.ownerDocument.activeElement
2290 },
2291 first: st(function() {
2292 return [0]
2293 }),
2294 last: st(function(e, t) {
2295 return [t - 1]
2296 }),
2297 eq: st(function(e, t, n) {
2298 return [n < 0 ? n + t : n]
2299 }),
2300 even: st(function(e, t) {
2301 for (var n = 0; n < t; n += 2) e.push(n);
2302 return e
2303 }),
2304 odd: st(function(e, t) {
2305 for (var n = 1; n < t; n += 2) e.push(n);
2306 return e
2307 }),
2308 lt: st(function(e, t, n) {
2309 for (var r = n < 0 ? n + t : n; --r >= 0;) e.push(r);
2310 return e
2311 }),
2312 gt: st(function(e, t, n) {
2313 for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
2314 return e
2315 })
2316 }
2317 }, f = y.compareDocumentPosition ? function(e, t) {
2318 return e === t ? (l = !0, 0) : (!e.compareDocumentPosition || !t.compareDocumentPosition ? e.compareDocumentPosition : e.compareDocumentPosition(t) & 4) ? -1 : 1
2319 } : function(e, t) {
2320 if (e === t) return l = !0, 0;
2321 if (e.sourceIndex && t.sourceIndex) return e.sourceIndex - t.sourceIndex;
2322 var n, r, i = [],
2323 s = [],
2324 o = e.parentNode,
2325 u = t.parentNode,
2326 a = o;
2327 if (o === u) return ot(e, t);
2328 if (!o) return -1;
2329 if (!u) return 1;
2330 while (a) i.unshift(a), a = a.parentNode;
2331 a = u;
2332 while (a) s.unshift(a), a = a.parentNode;
2333 n = i.length, r = s.length;
2334 for (var f = 0; f < n && f < r; f++)
2335 if (i[f] !== s[f]) return ot(i[f], s[f]);
2336 return f === n ? ot(e, s[f], -1) : ot(i[f], t, 1)
2337 }, [0, 0].sort(f), h = !l, nt.uniqueSort = function(e) {
2338 var t, n = [],
2339 r = 1,
2340 i = 0;
2341 l = h, e.sort(f);
2342 if (l) {
2343 for (; t = e[r]; r++) t === e[r - 1] && (i = n.push(r));
2344 while (i--) e.splice(n[i], 1)
2345 }
2346 return e
2347 }, nt.error = function(e) {
2348 throw new Error("Syntax error, unrecognized expression: " + e)
2349 }, a = nt.compile = function(e, t) {
2350 var n, r = [],
2351 i = [],
2352 s = A[d][e + " "];
2353 if (!s) {
2354 t || (t = ut(e)), n = t.length;
2355 while (n--) s = ht(t[n]), s[d] ? r.push(s) : i.push(s);
2356 s = A(e, pt(i, r))
2357 }
2358 return s
2359 }, g.querySelectorAll && function() {
2360 var e, t = vt,
2361 n = /'|\\/g,
2362 r = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
2363 i = [":focus"],
2364 s = [":active"],
2365 u = y.matchesSelector || y.mozMatchesSelector || y.webkitMatchesSelector || y.oMatchesSelector || y.msMatchesSelector;
2366 K(function(e) {
2367 e.innerHTML = "<select><option selected=''></option></select>", e.querySelectorAll("[selected]").length || i.push("\\[" + O + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), e.querySelectorAll(":checked").length || i.push(":checked")
2368 }), K(function(e) {
2369 e.innerHTML = "<p test=''></p>", e.querySelectorAll("[test^='']").length && i.push("[*^$]=" + O + "*(?:\"\"|'')"), e.innerHTML = "<input type='hidden'/>", e.querySelectorAll(":enabled").length || i.push(":enabled", ":disabled")
2370 }), i = new RegExp(i.join("|")), vt = function(e, r, s, o, u) {
2371 if (!o && !u && !i.test(e)) {
2372 var a, f, l = !0,
2373 c = d,
2374 h = r,
2375 p = r.nodeType === 9 && e;
2376 if (r.nodeType === 1 && r.nodeName.toLowerCase() !== "object") {
2377 a = ut(e), (l = r.getAttribute("id")) ? c = l.replace(n, "\\$&") : r.setAttribute("id", c), c = "[id='" + c + "'] ", f = a.length;
2378 while (f--) a[f] = c + a[f].join("");
2379 h = z.test(e) && r.parentNode || r, p = a.join(",")
2380 }
2381 if (p) try {
2382 return S.apply(s, x.call(h.querySelectorAll(p), 0)), s
2383 } catch (v) {} finally {
2384 l || r.removeAttribute("id")
2385 }
2386 }
2387 return t(e, r, s, o, u)
2388 }, u && (K(function(t) {
2389 e = u.call(t, "div");
2390 try {
2391 u.call(t, "[test!='']:sizzle"), s.push("!=", H)
2392 } catch (n) {}
2393 }), s = new RegExp(s.join("|")), nt.matchesSelector = function(t, n) {
2394 n = n.replace(r, "='$1']");
2395 if (!o(t) && !s.test(n) && !i.test(n)) try {
2396 var a = u.call(t, n);
2397 if (a || e || t.document && t.document.nodeType !== 11) return a
2398 } catch (f) {}
2399 return nt(n, null, null, [t]).length > 0
2400 })
2401 }(), i.pseudos.nth = i.pseudos.eq, i.filters = mt.prototype = i.pseudos, i.setFilters = new mt, nt.attr = v.attr, v.find = nt, v.expr = nt.selectors, v.expr[":"] = v.expr.pseudos, v.unique = nt.uniqueSort, v.text = nt.getText, v.isXMLDoc = nt.isXML, v.contains = nt.contains
2402 }(e);
2403 var nt = /Until$/,
2404 rt = /^(?:parents|prev(?:Until|All))/,
2405 it = /^.[^:#\[\.,]*$/,
2406 st = v.expr.match.needsContext,
2407 ot = {
2408 children: !0,
2409 contents: !0,
2410 next: !0,
2411 prev: !0
2412 };
2413 v.fn.extend({
2414 find: function(e) {
2415 var t, n, r, i, s, o, u = this;
2416 if (typeof e != "string") return v(e).filter(function() {
2417 for (t = 0, n = u.length; t < n; t++)
2418 if (v.contains(u[t], this)) return !0
2419 });
2420 o = this.pushStack("", "find", e);
2421 for (t = 0, n = this.length; t < n; t++) {
2422 r = o.length, v.find(e, this[t], o);
2423 if (t > 0)
2424 for (i = r; i < o.length; i++)
2425 for (s = 0; s < r; s++)
2426 if (o[s] === o[i]) {
2427 o.splice(i--, 1);
2428 break
2429 }
2430 }
2431 return o
2432 },
2433 has: function(e) {
2434 var t, n = v(e, this),
2435 r = n.length;
2436 return this.filter(function() {
2437 for (t = 0; t < r; t++)
2438 if (v.contains(this, n[t])) return !0
2439 })
2440 },
2441 not: function(e) {
2442 return this.pushStack(ft(this, e, !1), "not", e)
2443 },
2444 filter: function(e) {
2445 return this.pushStack(ft(this, e, !0), "filter", e)
2446 },
2447 is: function(e) {
2448 return !!e && (typeof e == "string" ? st.test(e) ? v(e, this.context).index(this[0]) >= 0 : v.filter(e, this).length > 0 : this.filter(e).length > 0)
2449 },
2450 closest: function(e, t) {
2451 var n, r = 0,
2452 i = this.length,
2453 s = [],
2454 o = st.test(e) || typeof e != "string" ? v(e, t || this.context) : 0;
2455 for (; r < i; r++) {
2456 n = this[r];
2457 while (n && n.ownerDocument && n !== t && n.nodeType !== 11) {
2458 if (o ? o.index(n) > -1 : v.find.matchesSelector(n, e)) {
2459 s.push(n);
2460 break
2461 }
2462 n = n.parentNode
2463 }
2464 }
2465 return s = s.length > 1 ? v.unique(s) : s, this.pushStack(s, "closest", e)
2466 },
2467 index: function(e) {
2468 return e ? typeof e == "string" ? v.inArray(this[0], v(e)) : v.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.prevAll().length : -1
2469 },
2470 add: function(e, t) {
2471 var n = typeof e == "string" ? v(e, t) : v.makeArray(e && e.nodeType ? [e] : e),
2472 r = v.merge(this.get(), n);
2473 return this.pushStack(ut(n[0]) || ut(r[0]) ? r : v.unique(r))
2474 },
2475 addBack: function(e) {
2476 return this.add(e == null ? this.prevObject : this.prevObject.filter(e))
2477 }
2478 }), v.fn.andSelf = v.fn.addBack, v.each({
2479 parent: function(e) {
2480 var t = e.parentNode;
2481 return t && t.nodeType !== 11 ? t : null
2482 },
2483 parents: function(e) {
2484 return v.dir(e, "parentNode")
2485 },
2486 parentsUntil: function(e, t, n) {
2487 return v.dir(e, "parentNode", n)
2488 },
2489 next: function(e) {
2490 return at(e, "nextSibling")
2491 },
2492 prev: function(e) {
2493 return at(e, "previousSibling")
2494 },
2495 nextAll: function(e) {
2496 return v.dir(e, "nextSibling")
2497 },
2498 prevAll: function(e) {
2499 return v.dir(e, "previousSibling")
2500 },
2501 nextUntil: function(e, t, n) {
2502 return v.dir(e, "nextSibling", n)
2503 },
2504 prevUntil: function(e, t, n) {
2505 return v.dir(e, "previousSibling", n)
2506 },
2507 siblings: function(e) {
2508 return v.sibling((e.parentNode || {}).firstChild, e)
2509 },
2510 children: function(e) {
2511 return v.sibling(e.firstChild)
2512 },
2513 contents: function(e) {
2514 return v.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : v.merge([], e.childNodes)
2515 }
2516 }, function(e, t) {
2517 v.fn[e] = function(n, r) {
2518 var i = v.map(this, t, n);
2519 return nt.test(e) || (r = n), r && typeof r == "string" && (i = v.filter(r, i)), i = this.length > 1 && !ot[e] ? v.unique(i) : i, this.length > 1 && rt.test(e) && (i = i.reverse()), this.pushStack(i, e, l.call(arguments).join(","))
2520 }
2521 }), v.extend({
2522 filter: function(e, t, n) {
2523 return n && (e = ":not(" + e + ")"), t.length === 1 ? v.find.matchesSelector(t[0], e) ? [t[0]] : [] : v.find.matches(e, t)
2524 },
2525 dir: function(e, n, r) {
2526 var i = [],
2527 s = e[n];
2528 while (s && s.nodeType !== 9 && (r === t || s.nodeType !== 1 || !v(s).is(r))) s.nodeType === 1 && i.push(s), s = s[n];
2529 return i
2530 },
2531 sibling: function(e, t) {
2532 var n = [];
2533 for (; e; e = e.nextSibling) e.nodeType === 1 && e !== t && n.push(e);
2534 return n
2535 }
2536 });
2537 var ct = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
2538 ht = / jQuery\d+="(?:null|\d+)"/g,
2539 pt = /^\s+/,
2540 dt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
2541 vt = /<([\w:]+)/,
2542 mt = /<tbody/i,
2543 gt = /<|&#?\w+;/,
2544 yt = /<(?:script|style|link)/i,
2545 bt = /<(?:script|object|embed|option|style)/i,
2546 wt = new RegExp("<(?:" + ct + ")[\\s/>]", "i"),
2547 Et = /^(?:checkbox|radio)$/,
2548 St = /checked\s*(?:[^=]|=\s*.checked.)/i,
2549 xt = /\/(java|ecma)script/i,
2550 Tt = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,
2551 Nt = {
2552 option: [1, "<select multiple='multiple'>", "</select>"],
2553 legend: [1, "<fieldset>", "</fieldset>"],
2554 thead: [1, "<table>", "</table>"],
2555 tr: [2, "<table><tbody>", "</tbody></table>"],
2556 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
2557 col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
2558 area: [1, "<map>", "</map>"],
2559 _default: [0, "", ""]
2560 },
2561 Ct = lt(i),
2562 kt = Ct.appendChild(i.createElement("div"));
2563 Nt.optgroup = Nt.option, Nt.tbody = Nt.tfoot = Nt.colgroup = Nt.caption = Nt.thead, Nt.th = Nt.td, v.support.htmlSerialize || (Nt._default = [1, "X<div>", "</div>"]), v.fn.extend({
2564 text: function(e) {
2565 return v.access(this, function(e) {
2566 return e === t ? v.text(this) : this.empty().append((this[0] && this[0].ownerDocument || i).createTextNode(e))
2567 }, null, e, arguments.length)
2568 },
2569 wrapAll: function(e) {
2570 if (v.isFunction(e)) return this.each(function(t) {
2571 v(this).wrapAll(e.call(this, t))
2572 });
2573 if (this[0]) {
2574 var t = v(e, this[0].ownerDocument).eq(0).clone(!0);
2575 this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
2576 var e = this;
2577 while (e.firstChild && e.firstChild.nodeType === 1) e = e.firstChild;
2578 return e
2579 }).append(this)
2580 }
2581 return this
2582 },
2583 wrapInner: function(e) {
2584 return v.isFunction(e) ? this.each(function(t) {
2585 v(this).wrapInner(e.call(this, t))
2586 }) : this.each(function() {
2587 var t = v(this),
2588 n = t.contents();
2589 n.length ? n.wrapAll(e) : t.append(e)
2590 })
2591 },
2592 wrap: function(e) {
2593 var t = v.isFunction(e);
2594 return this.each(function(n) {
2595 v(this).wrapAll(t ? e.call(this, n) : e)
2596 })
2597 },
2598 unwrap: function() {
2599 return this.parent().each(function() {
2600 v.nodeName(this, "body") || v(this).replaceWith(this.childNodes)
2601 }).end()
2602 },
2603 append: function() {
2604 return this.domManip(arguments, !0, function(e) {
2605 (this.nodeType === 1 || this.nodeType === 11) && this.appendChild(e)
2606 })
2607 },
2608 prepend: function() {
2609 return this.domManip(arguments, !0, function(e) {
2610 (this.nodeType === 1 || this.nodeType === 11) && this.insertBefore(e, this.firstChild)
2611 })
2612 },
2613 before: function() {
2614 if (!ut(this[0])) return this.domManip(arguments, !1, function(e) {
2615 this.parentNode.insertBefore(e, this)
2616 });
2617 if (arguments.length) {
2618 var e = v.clean(arguments);
2619 return this.pushStack(v.merge(e, this), "before", this.selector)
2620 }
2621 },
2622 after: function() {
2623 if (!ut(this[0])) return this.domManip(arguments, !1, function(e) {
2624 this.parentNode.insertBefore(e, this.nextSibling)
2625 });
2626 if (arguments.length) {
2627 var e = v.clean(arguments);
2628 return this.pushStack(v.merge(this, e), "after", this.selector)
2629 }
2630 },
2631 remove: function(e, t) {
2632 var n, r = 0;
2633 for (;
2634 (n = this[r]) != null; r++)
2635 if (!e || v.filter(e, [n]).length)!t && n.nodeType === 1 && (v.cleanData(n.getElementsByTagName("*")), v.cleanData([n])), n.parentNode && n.parentNode.removeChild(n);
2636 return this
2637 },
2638 empty: function() {
2639 var e, t = 0;
2640 for (;
2641 (e = this[t]) != null; t++) {
2642 e.nodeType === 1 && v.cleanData(e.getElementsByTagName("*"));
2643 while (e.firstChild) e.removeChild(e.firstChild)
2644 }
2645 return this
2646 },
2647 clone: function(e, t) {
2648 return e = e == null ? !1 : e, t = t == null ? e : t, this.map(function() {
2649 return v.clone(this, e, t)
2650 })
2651 },
2652 html: function(e) {
2653 return v.access(this, function(e) {
2654 var n = this[0] || {},
2655 r = 0,
2656 i = this.length;
2657 if (e === t) return n.nodeType === 1 ? n.innerHTML.replace(ht, "") : t;
2658 if (typeof e == "string" && !yt.test(e) && (v.support.htmlSerialize || !wt.test(e)) && (v.support.leadingWhitespace || !pt.test(e)) && !Nt[(vt.exec(e) || ["", ""])[1].toLowerCase()]) {
2659 e = e.replace(dt, "<$1></$2>");
2660 try {
2661 for (; r < i; r++) n = this[r] || {}, n.nodeType === 1 && (v.cleanData(n.getElementsByTagName("*")), n.innerHTML = e);
2662 n = 0
2663 } catch (s) {}
2664 }
2665 n && this.empty().append(e)
2666 }, null, e, arguments.length)
2667 },
2668 replaceWith: function(e) {
2669 return ut(this[0]) ? this.length ? this.pushStack(v(v.isFunction(e) ? e() : e), "replaceWith", e) : this : v.isFunction(e) ? this.each(function(t) {
2670 var n = v(this),
2671 r = n.html();
2672 n.replaceWith(e.call(this, t, r))
2673 }) : (typeof e != "string" && (e = v(e).detach()), this.each(function() {
2674 var t = this.nextSibling,
2675 n = this.parentNode;
2676 v(this).remove(), t ? v(t).before(e) : v(n).append(e)
2677 }))
2678 },
2679 detach: function(e) {
2680 return this.remove(e, !0)
2681 },
2682 domManip: function(e, n, r) {
2683 e = [].concat.apply([], e);
2684 var i, s, o, u, a = 0,
2685 f = e[0],
2686 l = [],
2687 c = this.length;
2688 if (!v.support.checkClone && c > 1 && typeof f == "string" && St.test(f)) return this.each(function() {
2689 v(this).domManip(e, n, r)
2690 });
2691 if (v.isFunction(f)) return this.each(function(i) {
2692 var s = v(this);
2693 e[0] = f.call(this, i, n ? s.html() : t), s.domManip(e, n, r)
2694 });
2695 if (this[0]) {
2696 i = v.buildFragment(e, this, l), o = i.fragment, s = o.firstChild, o.childNodes.length === 1 && (o = s);
2697 if (s) {
2698 n = n && v.nodeName(s, "tr");
2699 for (u = i.cacheable || c - 1; a < c; a++) r.call(n && v.nodeName(this[a], "table") ? Lt(this[a], "tbody") : this[a], a === u ? o : v.clone(o, !0, !0))
2700 }
2701 o = s = null, l.length && v.each(l, function(e, t) {
2702 t.src ? v.ajax ? v.ajax({
2703 url: t.src,
2704 type: "GET",
2705 dataType: "script",
2706 async: !1,
2707 global: !1,
2708 "throws": !0
2709 }) : v.error("no ajax") : v.globalEval((t.text || t.textContent || t.innerHTML || "").replace(Tt, "")), t.parentNode && t.parentNode.removeChild(t)
2710 })
2711 }
2712 return this
2713 }
2714 }), v.buildFragment = function(e, n, r) {
2715 var s, o, u, a = e[0];
2716 return n = n || i, n = !n.nodeType && n[0] || n, n = n.ownerDocument || n, e.length === 1 && typeof a == "string" && a.length < 512 && n === i && a.charAt(0) === "<" && !bt.test(a) && (v.support.checkClone || !St.test(a)) && (v.support.html5Clone || !wt.test(a)) && (o = !0, s = v.fragments[a], u = s !== t), s || (s = n.createDocumentFragment(), v.clean(e, n, s, r), o && (v.fragments[a] = u && s)), {
2717 fragment: s,
2718 cacheable: o
2719 }
2720 }, v.fragments = {}, v.each({
2721 appendTo: "append",
2722 prependTo: "prepend",
2723 insertBefore: "before",
2724 insertAfter: "after",
2725 replaceAll: "replaceWith"
2726 }, function(e, t) {
2727 v.fn[e] = function(n) {
2728 var r, i = 0,
2729 s = [],
2730 o = v(n),
2731 u = o.length,
2732 a = this.length === 1 && this[0].parentNode;
2733 if ((a == null || a && a.nodeType === 11 && a.childNodes.length === 1) && u === 1) return o[t](this[0]), this;
2734 for (; i < u; i++) r = (i > 0 ? this.clone(!0) : this).get(), v(o[i])[t](r), s = s.concat(r);
2735 return this.pushStack(s, e, o.selector)
2736 }
2737 }), v.extend({
2738 clone: function(e, t, n) {
2739 var r, i, s, o;
2740 v.support.html5Clone || v.isXMLDoc(e) || !wt.test("<" + e.nodeName + ">") ? o = e.cloneNode(!0) : (kt.innerHTML = e.outerHTML, kt.removeChild(o = kt.firstChild));
2741 if ((!v.support.noCloneEvent || !v.support.noCloneChecked) && (e.nodeType === 1 || e.nodeType === 11) && !v.isXMLDoc(e)) {
2742 Ot(e, o), r = Mt(e), i = Mt(o);
2743 for (s = 0; r[s]; ++s) i[s] && Ot(r[s], i[s])
2744 }
2745 if (t) {
2746 At(e, o);
2747 if (n) {
2748 r = Mt(e), i = Mt(o);
2749 for (s = 0; r[s]; ++s) At(r[s], i[s])
2750 }
2751 }
2752 return r = i = null, o
2753 },
2754 clean: function(e, t, n, r) {
2755 var s, o, u, a, f, l, c, h, p, d, m, g, y = t === i && Ct,
2756 b = [];
2757 if (!t || typeof t.createDocumentFragment == "undefined") t = i;
2758 for (s = 0;
2759 (u = e[s]) != null; s++) {
2760 typeof u == "number" && (u += "");
2761 if (!u) continue;
2762 if (typeof u == "string")
2763 if (!gt.test(u)) u = t.createTextNode(u);
2764 else {
2765 y = y || lt(t), c = t.createElement("div"), y.appendChild(c), u = u.replace(dt, "<$1></$2>"), a = (vt.exec(u) || ["", ""])[1].toLowerCase(), f = Nt[a] || Nt._default, l = f[0], c.innerHTML = f[1] + u + f[2];
2766 while (l--) c = c.lastChild;
2767 if (!v.support.tbody) {
2768 h = mt.test(u), p = a === "table" && !h ? c.firstChild && c.firstChild.childNodes : f[1] === "<table>" && !h ? c.childNodes : [];
2769 for (o = p.length - 1; o >= 0; --o) v.nodeName(p[o], "tbody") && !p[o].childNodes.length && p[o].parentNode.removeChild(p[o])
2770 }!v.support.leadingWhitespace && pt.test(u) && c.insertBefore(t.createTextNode(pt.exec(u)[0]), c.firstChild), u = c.childNodes, c.parentNode.removeChild(c)
2771 }
2772 u.nodeType ? b.push(u) : v.merge(b, u)
2773 }
2774 c && (u = c = y = null);
2775 if (!v.support.appendChecked)
2776 for (s = 0;
2777 (u = b[s]) != null; s++) v.nodeName(u, "input") ? _t(u) : typeof u.getElementsByTagName != "undefined" && v.grep(u.getElementsByTagName("input"), _t);
2778 if (n) {
2779 m = function(e) {
2780 if (!e.type || xt.test(e.type)) return r ? r.push(e.parentNode ? e.parentNode.removeChild(e) : e) : n.appendChild(e)
2781 };
2782 for (s = 0;
2783 (u = b[s]) != null; s++)
2784 if (!v.nodeName(u, "script") || !m(u)) n.appendChild(u), typeof u.getElementsByTagName != "undefined" && (g = v.grep(v.merge([], u.getElementsByTagName("script")), m), b.splice.apply(b, [s + 1, 0].concat(g)), s += g.length)
2785 }
2786 return b
2787 },
2788 cleanData: function(e, t) {
2789 var n, r, i, s, o = 0,
2790 u = v.expando,
2791 a = v.cache,
2792 f = v.support.deleteExpando,
2793 l = v.event.special;
2794 for (;
2795 (i = e[o]) != null; o++)
2796 if (t || v.acceptData(i)) {
2797 r = i[u], n = r && a[r];
2798 if (n) {
2799 if (n.events)
2800 for (s in n.events) l[s] ? v.event.remove(i, s) : v.removeEvent(i, s, n.handle);
2801 a[r] && (delete a[r], f ? delete i[u] : i.removeAttribute ? i.removeAttribute(u) : i[u] = null, v.deletedIds.push(r))
2802 }
2803 }
2804 }
2805 }),
2806 function() {
2807 var e, t;
2808 v.uaMatch = function(e) {
2809 e = e.toLowerCase();
2810 var t = /(chrome)[ \/]([\w.]+)/.exec(e) || /(webkit)[ \/]([\w.]+)/.exec(e) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) || /(msie) ([\w.]+)/.exec(e) || e.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e) || [];
2811 return {
2812 browser: t[1] || "",
2813 version: t[2] || "0"
2814 }
2815 }, e = v.uaMatch(o.userAgent), t = {}, e.browser && (t[e.browser] = !0, t.version = e.version), t.chrome ? t.webkit = !0 : t.webkit && (t.safari = !0), v.browser = t, v.sub = function() {
2816 function e(t, n) {
2817 return new e.fn.init(t, n)
2818 }
2819 v.extend(!0, e, this), e.superclass = this, e.fn = e.prototype = this(), e.fn.constructor = e, e.sub = this.sub, e.fn.init = function(r, i) {
2820 return i && i instanceof v && !(i instanceof e) && (i = e(i)), v.fn.init.call(this, r, i, t)
2821 }, e.fn.init.prototype = e.fn;
2822 var t = e(i);
2823 return e
2824 }
2825 }();
2826 var Dt, Pt, Ht, Bt = /alpha\([^)]*\)/i,
2827 jt = /opacity=([^)]*)/,
2828 Ft = /^(top|right|bottom|left)$/,
2829 It = /^(none|table(?!-c[ea]).+)/,
2830 qt = /^margin/,
2831 Rt = new RegExp("^(" + m + ")(.*)$", "i"),
2832 Ut = new RegExp("^(" + m + ")(?!px)[a-z%]+$", "i"),
2833 zt = new RegExp("^([-+])=(" + m + ")", "i"),
2834 Wt = {
2835 BODY: "block"
2836 },
2837 Xt = {
2838 position: "absolute",
2839 visibility: "hidden",
2840 display: "block"
2841 },
2842 Vt = {
2843 letterSpacing: 0,
2844 fontWeight: 400
2845 },
2846 $t = ["Top", "Right", "Bottom", "Left"],
2847 Jt = ["Webkit", "O", "Moz", "ms"],
2848 Kt = v.fn.toggle;
2849 v.fn.extend({
2850 css: function(e, n) {
2851 return v.access(this, function(e, n, r) {
2852 return r !== t ? v.style(e, n, r) : v.css(e, n)
2853 }, e, n, arguments.length > 1)
2854 },
2855 show: function() {
2856 return Yt(this, !0)
2857 },
2858 hide: function() {
2859 return Yt(this)
2860 },
2861 toggle: function(e, t) {
2862 var n = typeof e == "boolean";
2863 return v.isFunction(e) && v.isFunction(t) ? Kt.apply(this, arguments) : this.each(function() {
2864 (n ? e : Gt(this)) ? v(this).show() : v(this).hide()
2865 })
2866 }
2867 }), v.extend({
2868 cssHooks: {
2869 opacity: {
2870 get: function(e, t) {
2871 if (t) {
2872 var n = Dt(e, "opacity");
2873 return n === "" ? "1" : n
2874 }
2875 }
2876 }
2877 },
2878 cssNumber: {
2879 fillOpacity: !0,
2880 fontWeight: !0,
2881 lineHeight: !0,
2882 opacity: !0,
2883 orphans: !0,
2884 widows: !0,
2885 zIndex: !0,
2886 zoom: !0
2887 },
2888 cssProps: {
2889 "float": v.support.cssFloat ? "cssFloat" : "styleFloat"
2890 },
2891 style: function(e, n, r, i) {
2892 if (!e || e.nodeType === 3 || e.nodeType === 8 || !e.style) return;
2893 var s, o, u, a = v.camelCase(n),
2894 f = e.style;
2895 n = v.cssProps[a] || (v.cssProps[a] = Qt(f, a)), u = v.cssHooks[n] || v.cssHooks[a];
2896 if (r === t) return u && "get" in u && (s = u.get(e, !1, i)) !== t ? s : f[n];
2897 o = typeof r, o === "string" && (s = zt.exec(r)) && (r = (s[1] + 1) * s[2] + parseFloat(v.css(e, n)), o = "number");
2898 if (r == null || o === "number" && isNaN(r)) return;
2899 o === "number" && !v.cssNumber[a] && (r += "px");
2900 if (!u || !("set" in u) || (r = u.set(e, r, i)) !== t) try {
2901 f[n] = r
2902 } catch (l) {}
2903 },
2904 css: function(e, n, r, i) {
2905 var s, o, u, a = v.camelCase(n);
2906 return n = v.cssProps[a] || (v.cssProps[a] = Qt(e.style, a)), u = v.cssHooks[n] || v.cssHooks[a], u && "get" in u && (s = u.get(e, !0, i)), s === t && (s = Dt(e, n)), s === "normal" && n in Vt && (s = Vt[n]), r || i !== t ? (o = parseFloat(s), r || v.isNumeric(o) ? o || 0 : s) : s
2907 },
2908 swap: function(e, t, n) {
2909 var r, i, s = {};
2910 for (i in t) s[i] = e.style[i], e.style[i] = t[i];
2911 r = n.call(e);
2912 for (i in t) e.style[i] = s[i];
2913 return r
2914 }
2915 }), e.getComputedStyle ? Dt = function(t, n) {
2916 var r, i, s, o, u = e.getComputedStyle(t, null),
2917 a = t.style;
2918 return u && (r = u.getPropertyValue(n) || u[n], r === "" && !v.contains(t.ownerDocument, t) && (r = v.style(t, n)), Ut.test(r) && qt.test(n) && (i = a.width, s = a.minWidth, o = a.maxWidth, a.minWidth = a.maxWidth = a.width = r, r = u.width, a.width = i, a.minWidth = s, a.maxWidth = o)), r
2919 } : i.documentElement.currentStyle && (Dt = function(e, t) {
2920 var n, r, i = e.currentStyle && e.currentStyle[t],
2921 s = e.style;
2922 return i == null && s && s[t] && (i = s[t]), Ut.test(i) && !Ft.test(t) && (n = s.left, r = e.runtimeStyle && e.runtimeStyle.left, r && (e.runtimeStyle.left = e.currentStyle.left), s.left = t === "fontSize" ? "1em" : i, i = s.pixelLeft + "px", s.left = n, r && (e.runtimeStyle.left = r)), i === "" ? "auto" : i
2923 }), v.each(["height", "width"], function(e, t) {
2924 v.cssHooks[t] = {
2925 get: function(e, n, r) {
2926 if (n) return e.offsetWidth === 0 && It.test(Dt(e, "display")) ? v.swap(e, Xt, function() {
2927 return tn(e, t, r)
2928 }) : tn(e, t, r)
2929 },
2930 set: function(e, n, r) {
2931 return Zt(e, n, r ? en(e, t, r, v.support.boxSizing && v.css(e, "boxSizing") === "border-box") : 0)
2932 }
2933 }
2934 }), v.support.opacity || (v.cssHooks.opacity = {
2935 get: function(e, t) {
2936 return jt.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
2937 },
2938 set: function(e, t) {
2939 var n = e.style,
2940 r = e.currentStyle,
2941 i = v.isNumeric(t) ? "alpha(opacity=" + t * 100 + ")" : "",
2942 s = r && r.filter || n.filter || "";
2943 n.zoom = 1;
2944 if (t >= 1 && v.trim(s.replace(Bt, "")) === "" && n.removeAttribute) {
2945 n.removeAttribute("filter");
2946 if (r && !r.filter) return
2947 }
2948 n.filter = Bt.test(s) ? s.replace(Bt, i) : s + " " + i
2949 }
2950 }), v(function() {
2951 v.support.reliableMarginRight || (v.cssHooks.marginRight = {
2952 get: function(e, t) {
2953 return v.swap(e, {
2954 display: "inline-block"
2955 }, function() {
2956 if (t) return Dt(e, "marginRight")
2957 })
2958 }
2959 }), !v.support.pixelPosition && v.fn.position && v.each(["top", "left"], function(e, t) {
2960 v.cssHooks[t] = {
2961 get: function(e, n) {
2962 if (n) {
2963 var r = Dt(e, t);
2964 return Ut.test(r) ? v(e).position()[t] + "px" : r
2965 }
2966 }
2967 }
2968 })
2969 }), v.expr && v.expr.filters && (v.expr.filters.hidden = function(e) {
2970 return e.offsetWidth === 0 && e.offsetHeight === 0 || !v.support.reliableHiddenOffsets && (e.style && e.style.display || Dt(e, "display")) === "none"
2971 }, v.expr.filters.visible = function(e) {
2972 return !v.expr.filters.hidden(e)
2973 }), v.each({
2974 margin: "",
2975 padding: "",
2976 border: "Width"
2977 }, function(e, t) {
2978 v.cssHooks[e + t] = {
2979 expand: function(n) {
2980 var r, i = typeof n == "string" ? n.split(" ") : [n],
2981 s = {};
2982 for (r = 0; r < 4; r++) s[e + $t[r] + t] = i[r] || i[r - 2] || i[0];
2983 return s
2984 }
2985 }, qt.test(e) || (v.cssHooks[e + t].set = Zt)
2986 });
2987 var rn = /%20/g,
2988 sn = /\[\]$/,
2989 on = /\r?\n/g,
2990 un = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
2991 an = /^(?:select|textarea)/i;
2992 v.fn.extend({
2993 serialize: function() {
2994 return v.param(this.serializeArray())
2995 },
2996 serializeArray: function() {
2997 return this.map(function() {
2998 return this.elements ? v.makeArray(this.elements) : this
2999 }).filter(function() {
3000 return this.name && !this.disabled && (this.checked || an.test(this.nodeName) || un.test(this.type))
3001 }).map(function(e, t) {
3002 var n = v(this).val();
3003 return n == null ? null : v.isArray(n) ? v.map(n, function(e, n) {
3004 return {
3005 name: t.name,
3006 value: e.replace(on, "\r\n")
3007 }
3008 }) : {
3009 name: t.name,
3010 value: n.replace(on, "\r\n")
3011 }
3012 }).get()
3013 }
3014 }), v.param = function(e, n) {
3015 var r, i = [],
3016 s = function(e, t) {
3017 t = v.isFunction(t) ? t() : t == null ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
3018 };
3019 n === t && (n = v.ajaxSettings && v.ajaxSettings.traditional);
3020 if (v.isArray(e) || e.jquery && !v.isPlainObject(e)) v.each(e, function() {
3021 s(this.name, this.value)
3022 });
3023 else
3024 for (r in e) fn(r, e[r], n, s);
3025 return i.join("&").replace(rn, "+")
3026 };
3027 var ln, cn, hn = /#.*$/,
3028 pn = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
3029 dn = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
3030 vn = /^(?:GET|HEAD)$/,
3031 mn = /^\/\//,
3032 gn = /\?/,
3033 yn = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
3034 bn = /([?&])_=[^&]*/,
3035 wn = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
3036 En = v.fn.load,
3037 Sn = {},
3038 xn = {},
3039 Tn = ["*/"] + ["*"];
3040 try {
3041 cn = s.href
3042 } catch (Nn) {
3043 cn = i.createElement("a"), cn.href = "", cn = cn.href
3044 }
3045 ln = wn.exec(cn.toLowerCase()) || [], v.fn.load = function(e, n, r) {
3046 if (typeof e != "string" && En) return En.apply(this, arguments);
3047 if (!this.length) return this;
3048 var i, s, o, u = this,
3049 a = e.indexOf(" ");
3050 return a >= 0 && (i = e.slice(a, e.length), e = e.slice(0, a)), v.isFunction(n) ? (r = n, n = t) : n && typeof n == "object" && (s = "POST"), v.ajax({
3051 url: e,
3052 type: s,
3053 dataType: "html",
3054 data: n,
3055 complete: function(e, t) {
3056 r && u.each(r, o || [e.responseText, t, e])
3057 }
3058 }).done(function(e) {
3059 o = arguments, u.html(i ? v("<div>").append(e.replace(yn, "")).find(i) : e)
3060 }), this
3061 }, v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(e, t) {
3062 v.fn[t] = function(e) {
3063 return this.on(t, e)
3064 }
3065 }), v.each(["get", "post"], function(e, n) {
3066 v[n] = function(e, r, i, s) {
3067 return v.isFunction(r) && (s = s || i, i = r, r = t), v.ajax({
3068 type: n,
3069 url: e,
3070 data: r,
3071 success: i,
3072 dataType: s
3073 })
3074 }
3075 }), v.extend({
3076 getScript: function(e, n) {
3077 return v.get(e, t, n, "script")
3078 },
3079 getJSON: function(e, t, n) {
3080 return v.get(e, t, n, "json")
3081 },
3082 ajaxSetup: function(e, t) {
3083 return t ? Ln(e, v.ajaxSettings) : (t = e, e = v.ajaxSettings), Ln(e, t), e
3084 },
3085 ajaxSettings: {
3086 url: cn,
3087 isLocal: dn.test(ln[1]),
3088 global: !0,
3089 type: "GET",
3090 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
3091 processData: !0,
3092 async: !0,
3093 accepts: {
3094 xml: "application/xml, text/xml",
3095 html: "text/html",
3096 text: "text/plain",
3097 json: "application/json, text/javascript",
3098 "*": Tn
3099 },
3100 contents: {
3101 xml: /xml/,
3102 html: /html/,
3103 json: /json/
3104 },
3105 responseFields: {
3106 xml: "responseXML",
3107 text: "responseText"
3108 },
3109 converters: {
3110 "* text": e.String,
3111 "text html": !0,
3112 "text json": v.parseJSON,
3113 "text xml": v.parseXML
3114 },
3115 flatOptions: {
3116 context: !0,
3117 url: !0
3118 }
3119 },
3120 ajaxPrefilter: Cn(Sn),
3121 ajaxTransport: Cn(xn),
3122 ajax: function(e, n) {
3123 function T(e, n, s, a) {
3124 var l, y, b, w, S, T = n;
3125 if (E === 2) return;
3126 E = 2, u && clearTimeout(u), o = t, i = a || "", x.readyState = e > 0 ? 4 : 0, s && (w = An(c, x, s));
3127 if (e >= 200 && e < 300 || e === 304) c.ifModified && (S = x.getResponseHeader("Last-Modified"), S && (v.lastModified[r] = S), S = x.getResponseHeader("Etag"), S && (v.etag[r] = S)), e === 304 ? (T = "notmodified", l = !0) : (l = On(c, w), T = l.state, y = l.data, b = l.error, l = !b);
3128 else {
3129 b = T;
3130 if (!T || e) T = "error", e < 0 && (e = 0)
3131 }
3132 x.status = e, x.statusText = (n || T) + "", l ? d.resolveWith(h, [y, T, x]) : d.rejectWith(h, [x, T, b]), x.statusCode(g), g = t, f && p.trigger("ajax" + (l ? "Success" : "Error"), [x, c, l ? y : b]), m.fireWith(h, [x, T]), f && (p.trigger("ajaxComplete", [x, c]), --v.active || v.event.trigger("ajaxStop"))
3133 }
3134 typeof e == "object" && (n = e, e = t), n = n || {};
3135 var r, i, s, o, u, a, f, l, c = v.ajaxSetup({}, n),
3136 h = c.context || c,
3137 p = h !== c && (h.nodeType || h instanceof v) ? v(h) : v.event,
3138 d = v.Deferred(),
3139 m = v.Callbacks("once memory"),
3140 g = c.statusCode || {},
3141 b = {},
3142 w = {},
3143 E = 0,
3144 S = "canceled",
3145 x = {
3146 readyState: 0,
3147 setRequestHeader: function(e, t) {
3148 if (!E) {
3149 var n = e.toLowerCase();
3150 e = w[n] = w[n] || e, b[e] = t
3151 }
3152 return this
3153 },
3154 getAllResponseHeaders: function() {
3155 return E === 2 ? i : null
3156 },
3157 getResponseHeader: function(e) {
3158 var n;
3159 if (E === 2) {
3160 if (!s) {
3161 s = {};
3162 while (n = pn.exec(i)) s[n[1].toLowerCase()] = n[2]
3163 }
3164 n = s[e.toLowerCase()]
3165 }
3166 return n === t ? null : n
3167 },
3168 overrideMimeType: function(e) {
3169 return E || (c.mimeType = e), this
3170 },
3171 abort: function(e) {
3172 return e = e || S, o && o.abort(e), T(0, e), this
3173 }
3174 };
3175 d.promise(x), x.success = x.done, x.error = x.fail, x.complete = m.add, x.statusCode = function(e) {
3176 if (e) {
3177 var t;
3178 if (E < 2)
3179 for (t in e) g[t] = [g[t], e[t]];
3180 else t = e[x.status], x.always(t)
3181 }
3182 return this
3183 }, c.url = ((e || c.url) + "").replace(hn, "").replace(mn, ln[1] + "//"), c.dataTypes = v.trim(c.dataType || "*").toLowerCase().split(y), c.crossDomain == null && (a = wn.exec(c.url.toLowerCase()), c.crossDomain = !(!a || a[1] === ln[1] && a[2] === ln[2] && (a[3] || (a[1] === "http:" ? 80 : 443)) == (ln[3] || (ln[1] === "http:" ? 80 : 443)))), c.data && c.processData && typeof c.data != "string" && (c.data = v.param(c.data, c.traditional)), kn(Sn, c, n, x);
3184 if (E === 2) return x;
3185 f = c.global, c.type = c.type.toUpperCase(), c.hasContent = !vn.test(c.type), f && v.active++ === 0 && v.event.trigger("ajaxStart");
3186 if (!c.hasContent) {
3187 c.data && (c.url += (gn.test(c.url) ? "&" : "?") + c.data, delete c.data), r = c.url;
3188 if (c.cache === !1) {
3189 var N = v.now(),
3190 C = c.url.replace(bn, "$1_=" + N);
3191 c.url = C + (C === c.url ? (gn.test(c.url) ? "&" : "?") + "_=" + N : "")
3192 }
3193 }(c.data && c.hasContent && c.contentType !== !1 || n.contentType) && x.setRequestHeader("Content-Type", c.contentType), c.ifModified && (r = r || c.url, v.lastModified[r] && x.setRequestHeader("If-Modified-Since", v.lastModified[r]), v.etag[r] && x.setRequestHeader("If-None-Match", v.etag[r])), x.setRequestHeader("Accept", c.dataTypes[0] && c.accepts[c.dataTypes[0]] ? c.accepts[c.dataTypes[0]] + (c.dataTypes[0] !== "*" ? ", " + Tn + "; q=0.01" : "") : c.accepts["*"]);
3194 for (l in c.headers) x.setRequestHeader(l, c.headers[l]);
3195 if (!c.beforeSend || c.beforeSend.call(h, x, c) !== !1 && E !== 2) {
3196 S = "abort";
3197 for (l in {
3198 success: 1,
3199 error: 1,
3200 complete: 1
3201 }) x[l](c[l]);
3202 o = kn(xn, c, n, x);
3203 if (!o) T(-1, "No Transport");
3204 else {
3205 x.readyState = 1, f && p.trigger("ajaxSend", [x, c]), c.async && c.timeout > 0 && (u = setTimeout(function() {
3206 x.abort("timeout")
3207 }, c.timeout));
3208 try {
3209 E = 1, o.send(b, T)
3210 } catch (k) {
3211 if (!(E < 2)) throw k;
3212 T(-1, k)
3213 }
3214 }
3215 return x
3216 }
3217 return x.abort()
3218 },
3219 active: 0,
3220 lastModified: {},
3221 etag: {}
3222 });
3223 var Mn = [],
3224 _n = /\?/,
3225 Dn = /(=)\?(?=&|$)|\?\?/,
3226 Pn = v.now();
3227 v.ajaxSetup({
3228 jsonp: "callback",
3229 jsonpCallback: function() {
3230 var e = Mn.pop() || v.expando + "_" + Pn++;
3231 return this[e] = !0, e
3232 }
3233 }), v.ajaxPrefilter("json jsonp", function(n, r, i) {
3234 var s, o, u, a = n.data,
3235 f = n.url,
3236 l = n.jsonp !== !1,
3237 c = l && Dn.test(f),
3238 h = l && !c && typeof a == "string" && !(n.contentType || "").indexOf("application/x-www-form-urlencoded") && Dn.test(a);
3239 if (n.dataTypes[0] === "jsonp" || c || h) return s = n.jsonpCallback = v.isFunction(n.jsonpCallback) ? n.jsonpCallback() : n.jsonpCallback, o = e[s], c ? n.url = f.replace(Dn, "$1" + s) : h ? n.data = a.replace(Dn, "$1" + s) : l && (n.url += (_n.test(f) ? "&" : "?") + n.jsonp + "=" + s), n.converters["script json"] = function() {
3240 return u || v.error(s + " was not called"), u[0]
3241 }, n.dataTypes[0] = "json", e[s] = function() {
3242 u = arguments
3243 }, i.always(function() {
3244 e[s] = o, n[s] && (n.jsonpCallback = r.jsonpCallback, Mn.push(s)), u && v.isFunction(o) && o(u[0]), u = o = t
3245 }), "script"
3246 }), v.ajaxSetup({
3247 accepts: {
3248 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
3249 },
3250 contents: {
3251 script: /javascript|ecmascript/
3252 },
3253 converters: {
3254 "text script": function(e) {
3255 return v.globalEval(e), e
3256 }
3257 }
3258 }), v.ajaxPrefilter("script", function(e) {
3259 e.cache === t && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
3260 }), v.ajaxTransport("script", function(e) {
3261 if (e.crossDomain) {
3262 var n, r = i.head || i.getElementsByTagName("head")[0] || i.documentElement;
3263 return {
3264 send: function(s, o) {
3265 n = i.createElement("script"), n.async = "async", e.scriptCharset && (n.charset = e.scriptCharset), n.src = e.url, n.onload = n.onreadystatechange = function(e, i) {
3266 if (i || !n.readyState || /loaded|complete/.test(n.readyState)) n.onload = n.onreadystatechange = null, r && n.parentNode && r.removeChild(n), n = t, i || o(200, "success")
3267 }, r.insertBefore(n, r.firstChild)
3268 },
3269 abort: function() {
3270 n && n.onload(0, 1)
3271 }
3272 }
3273 }
3274 });
3275 var Hn, Bn = e.ActiveXObject ? function() {
3276 for (var e in Hn) Hn[e](0, 1)
3277 } : !1,
3278 jn = 0;
3279 v.ajaxSettings.xhr = e.ActiveXObject ? function() {
3280 return !this.isLocal && Fn() || In()
3281 } : Fn,
3282 function(e) {
3283 v.extend(v.support, {
3284 ajax: !!e,
3285 cors: !!e && "withCredentials" in e
3286 })
3287 }(v.ajaxSettings.xhr()), v.support.ajax && v.ajaxTransport(function(n) {
3288 if (!n.crossDomain || v.support.cors) {
3289 var r;
3290 return {
3291 send: function(i, s) {
3292 var o, u, a = n.xhr();
3293 n.username ? a.open(n.type, n.url, n.async, n.username, n.password) : a.open(n.type, n.url, n.async);
3294 if (n.xhrFields)
3295 for (u in n.xhrFields) a[u] = n.xhrFields[u];
3296 n.mimeType && a.overrideMimeType && a.overrideMimeType(n.mimeType), !n.crossDomain && !i["X-Requested-With"] && (i["X-Requested-With"] = "XMLHttpRequest");
3297 try {
3298 for (u in i) a.setRequestHeader(u, i[u])
3299 } catch (f) {}
3300 a.send(n.hasContent && n.data || null), r = function(e, i) {
3301 var u, f, l, c, h;
3302 try {
3303 if (r && (i || a.readyState === 4)) {
3304 r = t, o && (a.onreadystatechange = v.noop, Bn && delete Hn[o]);
3305 if (i) a.readyState !== 4 && a.abort();
3306 else {
3307 u = a.status, l = a.getAllResponseHeaders(), c = {}, h = a.responseXML, h && h.documentElement && (c.xml = h);
3308 try {
3309 c.text = a.responseText
3310 } catch (p) {}
3311 try {
3312 f = a.statusText
3313 } catch (p) {
3314 f = ""
3315 }!u && n.isLocal && !n.crossDomain ? u = c.text ? 200 : 404 : u === 1223 && (u = 204)
3316 }
3317 }
3318 } catch (d) {
3319 i || s(-1, d)
3320 }
3321 c && s(u, f, c, l)
3322 }, n.async ? a.readyState === 4 ? setTimeout(r, 0) : (o = ++jn, Bn && (Hn || (Hn = {}, v(e).unload(Bn)), Hn[o] = r), a.onreadystatechange = r) : r()
3323 },
3324 abort: function() {
3325 r && r(0, 1)
3326 }
3327 }
3328 }
3329 });
3330 var qn, Rn, Un = /^(?:toggle|show|hide)$/,
3331 zn = new RegExp("^(?:([-+])=|)(" + m + ")([a-z%]*)$", "i"),
3332 Wn = /queueHooks$/,
3333 Xn = [Gn],
3334 Vn = {
3335 "*": [
3336 function(e, t) {
3337 var n, r, i = this.createTween(e, t),
3338 s = zn.exec(t),
3339 o = i.cur(),
3340 u = +o || 0,
3341 a = 1,
3342 f = 20;
3343 if (s) {
3344 n = +s[2], r = s[3] || (v.cssNumber[e] ? "" : "px");
3345 if (r !== "px" && u) {
3346 u = v.css(i.elem, e, !0) || n || 1;
3347 do a = a || ".5", u /= a, v.style(i.elem, e, u + r); while (a !== (a = i.cur() / o) && a !== 1 && --f)
3348 }
3349 i.unit = r, i.start = u, i.end = s[1] ? u + (s[1] + 1) * n : n
3350 }
3351 return i
3352 }
3353 ]
3354 };
3355 v.Animation = v.extend(Kn, {
3356 tweener: function(e, t) {
3357 v.isFunction(e) ? (t = e, e = ["*"]) : e = e.split(" ");
3358 var n, r = 0,
3359 i = e.length;
3360 for (; r < i; r++) n = e[r], Vn[n] = Vn[n] || [], Vn[n].unshift(t)
3361 },
3362 prefilter: function(e, t) {
3363 t ? Xn.unshift(e) : Xn.push(e)
3364 }
3365 }), v.Tween = Yn, Yn.prototype = {
3366 constructor: Yn,
3367 init: function(e, t, n, r, i, s) {
3368 this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = s || (v.cssNumber[n] ? "" : "px")
3369 },
3370 cur: function() {
3371 var e = Yn.propHooks[this.prop];
3372 return e && e.get ? e.get(this) : Yn.propHooks._default.get(this)
3373 },
3374 run: function(e) {
3375 var t, n = Yn.propHooks[this.prop];
3376 return this.options.duration ? this.pos = t = v.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Yn.propHooks._default.set(this), this
3377 }
3378 }, Yn.prototype.init.prototype = Yn.prototype, Yn.propHooks = {
3379 _default: {
3380 get: function(e) {
3381 var t;
3382 return e.elem[e.prop] == null || !!e.elem.style && e.elem.style[e.prop] != null ? (t = v.css(e.elem, e.prop, !1, ""), !t || t === "auto" ? 0 : t) : e.elem[e.prop]
3383 },
3384 set: function(e) {
3385 v.fx.step[e.prop] ? v.fx.step[e.prop](e) : e.elem.style && (e.elem.style[v.cssProps[e.prop]] != null || v.cssHooks[e.prop]) ? v.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
3386 }
3387 }
3388 }, Yn.propHooks.scrollTop = Yn.propHooks.scrollLeft = {
3389 set: function(e) {
3390 e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
3391 }
3392 }, v.each(["toggle", "show", "hide"], function(e, t) {
3393 var n = v.fn[t];
3394 v.fn[t] = function(r, i, s) {
3395 return r == null || typeof r == "boolean" || !e && v.isFunction(r) && v.isFunction(i) ? n.apply(this, arguments) : this.animate(Zn(t, !0), r, i, s)
3396 }
3397 }), v.fn.extend({
3398 fadeTo: function(e, t, n, r) {
3399 return this.filter(Gt).css("opacity", 0).show().end().animate({
3400 opacity: t
3401 }, e, n, r)
3402 },
3403 animate: function(e, t, n, r) {
3404 var i = v.isEmptyObject(e),
3405 s = v.speed(t, n, r),
3406 o = function() {
3407 var t = Kn(this, v.extend({}, e), s);
3408 i && t.stop(!0)
3409 };
3410 return i || s.queue === !1 ? this.each(o) : this.queue(s.queue, o)
3411 },
3412 stop: function(e, n, r) {
3413 var i = function(e) {
3414 var t = e.stop;
3415 delete e.stop, t(r)
3416 };
3417 return typeof e != "string" && (r = n, n = e, e = t), n && e !== !1 && this.queue(e || "fx", []), this.each(function() {
3418 var t = !0,
3419 n = e != null && e + "queueHooks",
3420 s = v.timers,
3421 o = v._data(this);
3422 if (n) o[n] && o[n].stop && i(o[n]);
3423 else
3424 for (n in o) o[n] && o[n].stop && Wn.test(n) && i(o[n]);
3425 for (n = s.length; n--;) s[n].elem === this && (e == null || s[n].queue === e) && (s[n].anim.stop(r), t = !1, s.splice(n, 1));
3426 (t || !r) && v.dequeue(this, e)
3427 })
3428 }
3429 }), v.each({
3430 slideDown: Zn("show"),
3431 slideUp: Zn("hide"),
3432 slideToggle: Zn("toggle"),
3433 fadeIn: {
3434 opacity: "show"
3435 },
3436 fadeOut: {
3437 opacity: "hide"
3438 },
3439 fadeToggle: {
3440 opacity: "toggle"
3441 }
3442 }, function(e, t) {
3443 v.fn[e] = function(e, n, r) {
3444 return this.animate(t, e, n, r)
3445 }
3446 }), v.speed = function(e, t, n) {
3447 var r = e && typeof e == "object" ? v.extend({}, e) : {
3448 complete: n || !n && t || v.isFunction(e) && e,
3449 duration: e,
3450 easing: n && t || t && !v.isFunction(t) && t
3451 };
3452 r.duration = v.fx.off ? 0 : typeof r.duration == "number" ? r.duration : r.duration in v.fx.speeds ? v.fx.speeds[r.duration] : v.fx.speeds._default;
3453 if (r.queue == null || r.queue === !0) r.queue = "fx";
3454 return r.old = r.complete, r.complete = function() {
3455 v.isFunction(r.old) && r.old.call(this), r.queue && v.dequeue(this, r.queue)
3456 }, r
3457 }, v.easing = {
3458 linear: function(e) {
3459 return e
3460 },
3461 swing: function(e) {
3462 return .5 - Math.cos(e * Math.PI) / 2
3463 }
3464 }, v.timers = [], v.fx = Yn.prototype.init, v.fx.tick = function() {
3465 var e, n = v.timers,
3466 r = 0;
3467 qn = v.now();
3468 for (; r < n.length; r++) e = n[r], !e() && n[r] === e && n.splice(r--, 1);
3469 n.length || v.fx.stop(), qn = t
3470 }, v.fx.timer = function(e) {
3471 e() && v.timers.push(e) && !Rn && (Rn = setInterval(v.fx.tick, v.fx.interval))
3472 }, v.fx.interval = 13, v.fx.stop = function() {
3473 clearInterval(Rn), Rn = null
3474 }, v.fx.speeds = {
3475 slow: 600,
3476 fast: 200,
3477 _default: 400
3478 }, v.fx.step = {}, v.expr && v.expr.filters && (v.expr.filters.animated = function(e) {
3479 return v.grep(v.timers, function(t) {
3480 return e === t.elem
3481 }).length
3482 });
3483 var er = /^(?:body|html)$/i;
3484 v.fn.offset = function(e) {
3485 if (arguments.length) return e === t ? this : this.each(function(t) {
3486 v.offset.setOffset(this, e, t)
3487 });
3488 var n, r, i, s, o, u, a, f = {
3489 top: 0,
3490 left: 0
3491 },
3492 l = this[0],
3493 c = l && l.ownerDocument;
3494 if (!c) return;
3495 return (r = c.body) === l ? v.offset.bodyOffset(l) : (n = c.documentElement, v.contains(n, l) ? (typeof l.getBoundingClientRect != "undefined" && (f = l.getBoundingClientRect()), i = tr(c), s = n.clientTop || r.clientTop || 0, o = n.clientLeft || r.clientLeft || 0, u = i.pageYOffset || n.scrollTop, a = i.pageXOffset || n.scrollLeft, {
3496 top: f.top + u - s,
3497 left: f.left + a - o
3498 }) : f)
3499 }, v.offset = {
3500 bodyOffset: function(e) {
3501 var t = e.offsetTop,
3502 n = e.offsetLeft;
3503 return v.support.doesNotIncludeMarginInBodyOffset && (t += parseFloat(v.css(e, "marginTop")) || 0, n += parseFloat(v.css(e, "marginLeft")) || 0), {
3504 top: t,
3505 left: n
3506 }
3507 },
3508 setOffset: function(e, t, n) {
3509 var r = v.css(e, "position");
3510 r === "static" && (e.style.position = "relative");
3511 var i = v(e),
3512 s = i.offset(),
3513 o = v.css(e, "top"),
3514 u = v.css(e, "left"),
3515 a = (r === "absolute" || r === "fixed") && v.inArray("auto", [o, u]) > -1,
3516 f = {},
3517 l = {},
3518 c, h;
3519 a ? (l = i.position(), c = l.top, h = l.left) : (c = parseFloat(o) || 0, h = parseFloat(u) || 0), v.isFunction(t) && (t = t.call(e, n, s)), t.top != null && (f.top = t.top - s.top + c), t.left != null && (f.left = t.left - s.left + h), "using" in t ? t.using.call(e, f) : i.css(f)
3520 }
3521 }, v.fn.extend({
3522 position: function() {
3523 if (!this[0]) return;
3524 var e = this[0],
3525 t = this.offsetParent(),
3526 n = this.offset(),
3527 r = er.test(t[0].nodeName) ? {
3528 top: 0,
3529 left: 0
3530 } : t.offset();
3531 return n.top -= parseFloat(v.css(e, "marginTop")) || 0, n.left -= parseFloat(v.css(e, "marginLeft")) || 0, r.top += parseFloat(v.css(t[0], "borderTopWidth")) || 0, r.left += parseFloat(v.css(t[0], "borderLeftWidth")) || 0, {
3532 top: n.top - r.top,
3533 left: n.left - r.left
3534 }
3535 },
3536 offsetParent: function() {
3537 return this.map(function() {
3538 var e = this.offsetParent || i.body;
3539 while (e && !er.test(e.nodeName) && v.css(e, "position") === "static") e = e.offsetParent;
3540 return e || i.body
3541 })
3542 }
3543 }), v.each({
3544 scrollLeft: "pageXOffset",
3545 scrollTop: "pageYOffset"
3546 }, function(e, n) {
3547 var r = /Y/.test(n);
3548 v.fn[e] = function(i) {
3549 return v.access(this, function(e, i, s) {
3550 var o = tr(e);
3551 if (s === t) return o ? n in o ? o[n] : o.document.documentElement[i] : e[i];
3552 o ? o.scrollTo(r ? v(o).scrollLeft() : s, r ? s : v(o).scrollTop()) : e[i] = s
3553 }, e, i, arguments.length, null)
3554 }
3555 }), v.each({
3556 Height: "height",
3557 Width: "width"
3558 }, function(e, n) {
3559 v.each({
3560 padding: "inner" + e,
3561 content: n,
3562 "": "outer" + e
3563 }, function(r, i) {
3564 v.fn[i] = function(i, s) {
3565 var o = arguments.length && (r || typeof i != "boolean"),
3566 u = r || (i === !0 || s === !0 ? "margin" : "border");
3567 return v.access(this, function(n, r, i) {
3568 var s;
3569 return v.isWindow(n) ? n.document.documentElement["client" + e] : n.nodeType === 9 ? (s = n.documentElement, Math.max(n.body["scroll" + e], s["scroll" + e], n.body["offset" + e], s["offset" + e], s["client" + e])) : i === t ? v.css(n, r, i, u) : v.style(n, r, i, u)
3570 }, n, o ? i : t, o, null)
3571 }
3572 })
3573 }), e.jQuery = e.$ = v, typeof define == "function" && define.amd && define.amd.jQuery && define("jquery", [], function() {
3574 return v
3575 })
3576})(window); \ No newline at end of file
diff --git a/deprecated/jinwei.me/js/jquery.swatchbook.js b/deprecated/jinwei.me/js/jquery.swatchbook.js
new file mode 100644
index 0000000..dc6ce43
--- /dev/null
+++ b/deprecated/jinwei.me/js/jquery.swatchbook.js
@@ -0,0 +1,255 @@
1/**
2 * jquery.swatchbook.js v1.1.0
3 * http://www.codrops.com
4 *
5 * Licensed under the MIT license.
6 * http://www.opensource.org/licenses/mit-license.php
7 *
8 * Copyright 2012, Codrops
9 * http://www.codrops.com
10 */
11
12;
13(function($, window, undefined) {
14
15 'use strict';
16
17 // global
18 var Modernizr = window.Modernizr;
19
20 jQuery.fn.reverse = [].reverse;
21
22 $.SwatchBook = function(options, element) {
23
24 this.$el = $(element);
25 this._init(options);
26
27 };
28
29 $.SwatchBook.defaults = {
30 // index of initial centered item
31 center: 6,
32 // number of degrees that is between each item
33 angleInc: 8,
34 speed: 700,
35 easing: 'ease',
36 // amount in degrees for the opened item's next sibling
37 proximity: 45,
38 // amount in degrees between the opened item's next siblings
39 neighbor: 4,
40 // animate on load
41 onLoadAnim: true,
42 // if it should be closed by default
43 initclosed: false,
44 // index of the element that when clicked, triggers the open/close function
45 // by default there is no such element
46 closeIdx: -1,
47 // open one specific item initially (overrides initclosed)
48 openAt: -1
49 };
50
51 $.SwatchBook.prototype = {
52
53 _init: function(options) {
54
55 this.options = $.extend(true, {}, $.SwatchBook.defaults, options);
56
57 this.$items = this.$el.children('div');
58 this.itemsCount = this.$items.length;
59 this.current = -1;
60 this.support = Modernizr.csstransitions;
61 this.cache = [];
62
63 if (this.options.onLoadAnim) {
64 this._setTransition();
65 }
66
67 if (!this.options.initclosed) {
68 this._center(this.options.center, this.options.onLoadAnim);
69 } else {
70
71 this.isClosed = true;
72 if (!this.options.onLoadAnim) {
73 this._setTransition();
74 }
75
76 }
77
78 if (this.options.openAt >= 0 && this.options.openAt < this.itemsCount) {
79 this._openItem(this.$items.eq(this.options.openAt));
80 }
81
82 this._initEvents();
83
84 },
85 _setTransition: function() {
86
87 if (this.support) {
88 this.$items.css({
89 'transition': 'all ' + this.options.speed + 'ms ' + this.options.easing
90 });
91 }
92
93 },
94 _openclose: function() {
95
96 this.isClosed ? this._center(this.options.center, true) : this.$items.css({
97 'transform': 'rotate(0deg)'
98 });
99 this.isClosed = !this.isClosed;
100
101 },
102 _center: function(idx, anim) {
103
104 var self = this;
105
106 this.$items.each(function(i) {
107
108 var transformStr = 'rotate(' + (self.options.angleInc * (i - idx)) + 'deg)';
109 $(this).css({
110 'transform': transformStr
111 });
112
113 });
114
115 },
116 _openItem: function($item) {
117
118 var itmIdx = $item.index();
119
120 if (itmIdx !== this.current) {
121
122 if (this.options.closeIdx !== -1 && itmIdx === this.options.closeIdx) {
123
124 this._openclose();
125 this._setCurrent();
126
127 } else {
128
129 this._setCurrent($item);
130 $item.css({
131 'transform': 'rotate(0deg)'
132 });
133 this._rotateSiblings($item);
134
135 }
136
137 }
138
139 },
140 _initEvents: function() {
141
142 var self = this;
143
144 this.$items.on('click.swatchbook', function(event) {
145 self._openItem($(this));
146 });
147
148 },
149 _rotateSiblings: function($item) {
150
151 var self = this,
152 idx = $item.index(),
153 $cached = this.cache[idx],
154 $siblings;
155
156 if ($cached) {
157 $siblings = $cached;
158 } else {
159
160 $siblings = $item.siblings();
161 this.cache[idx] = $siblings;
162
163 }
164
165 $siblings.each(function(i) {
166
167 var rotateVal = i < idx ?
168 self.options.angleInc * (i - idx) :
169 i - idx === 1 ?
170 self.options.proximity :
171 self.options.proximity + (i - idx - 1) * self.options.neighbor;
172
173 var transformStr = 'rotate(' + rotateVal + 'deg)';
174
175 $(this).css({
176 'transform': transformStr
177 });
178
179 });
180
181 },
182 _setCurrent: function($el) {
183
184 this.current = $el ? $el.index() : -1;
185 this.$items.removeClass('ff-active');
186 if ($el) {
187 $el.addClass('ff-active');
188 }
189
190 }
191
192 };
193
194 var logError = function(message) {
195
196 if (window.console) {
197
198 window.console.error(message);
199
200 }
201
202 };
203
204 $.fn.swatchbook = function(options) {
205
206 var instance = $.data(this, 'swatchbook');
207
208 if (typeof options === 'string') {
209
210 var args = Array.prototype.slice.call(arguments, 1);
211
212 this.each(function() {
213
214 if (!instance) {
215
216 logError("cannot call methods on swatchbook prior to initialization; " +
217 "attempted to call method '" + options + "'");
218 return;
219
220 }
221
222 if (!$.isFunction(instance[options]) || options.charAt(0) === "_") {
223
224 logError("no such method '" + options + "' for swatchbook instance");
225 return;
226
227 }
228
229 instance[options].apply(instance, args);
230
231 });
232
233 } else {
234
235 this.each(function() {
236
237 if (instance) {
238
239 instance._init();
240
241 } else {
242
243 instance = $.data(this, 'swatchbook', new $.SwatchBook(options, this));
244
245 }
246
247 });
248
249 }
250
251 return instance;
252
253 };
254
255})(jQuery, window); \ No newline at end of file
diff --git a/deprecated/jinwei.me/js/modernizr.custom.79639.js b/deprecated/jinwei.me/js/modernizr.custom.79639.js
new file mode 100644
index 0000000..23b151c
--- /dev/null
+++ b/deprecated/jinwei.me/js/modernizr.custom.79639.js
@@ -0,0 +1,167 @@
1/* Modernizr 2.5.3 (Custom Build) | MIT & BSD
2 * Build: http://www.modernizr.com/download/#-cssanimations-csstransforms-csstransforms3d-csstransitions-shiv-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes
3 */
4;
5window.Modernizr = function(a, b, c) {
6 function z(a) {
7 j.cssText = a
8 }
9
10 function A(a, b) {
11 return z(m.join(a + ";") + (b || ""))
12 }
13
14 function B(a, b) {
15 return typeof a === b
16 }
17
18 function C(a, b) {
19 return !!~("" + a).indexOf(b)
20 }
21
22 function D(a, b) {
23 for (var d in a)
24 if (j[a[d]] !== c) return b == "pfx" ? a[d] : !0;
25 return !1
26 }
27
28 function E(a, b, d) {
29 for (var e in a) {
30 var f = b[a[e]];
31 if (f !== c) return d === !1 ? a[e] : B(f, "function") ? f.bind(d || b) : f
32 }
33 return !1
34 }
35
36 function F(a, b, c) {
37 var d = a.charAt(0).toUpperCase() + a.substr(1),
38 e = (a + " " + o.join(d + " ") + d).split(" ");
39 return B(b, "string") || B(b, "undefined") ? D(e, b) : (e = (a + " " + p.join(d + " ") + d).split(" "), E(e, b, c))
40 }
41 var d = "2.5.3",
42 e = {},
43 f = !0,
44 g = b.documentElement,
45 h = "modernizr",
46 i = b.createElement(h),
47 j = i.style,
48 k, l = {}.toString,
49 m = " -webkit- -moz- -o- -ms- ".split(" "),
50 n = "Webkit Moz O ms",
51 o = n.split(" "),
52 p = n.toLowerCase().split(" "),
53 q = {},
54 r = {},
55 s = {},
56 t = [],
57 u = t.slice,
58 v, w = function(a, c, d, e) {
59 var f, i, j, k = b.createElement("div"),
60 l = b.body,
61 m = l ? l : b.createElement("body");
62 if (parseInt(d, 10))
63 while (d--) j = b.createElement("div"), j.id = e ? e[d] : h + (d + 1), k.appendChild(j);
64 return f = ["&#173;", "<style>", a, "</style>"].join(""), k.id = h, (l ? k : m).innerHTML += f, m.appendChild(k), l || (m.style.background = "", g.appendChild(m)), i = c(k, a), l ? k.parentNode.removeChild(k) : m.parentNode.removeChild(m), !!i
65 },
66 x = {}.hasOwnProperty,
67 y;
68 !B(x, "undefined") && !B(x.call, "undefined") ? y = function(a, b) {
69 return x.call(a, b)
70 } : y = function(a, b) {
71 return b in a && B(a.constructor.prototype[b], "undefined")
72 }, Function.prototype.bind || (Function.prototype.bind = function(b) {
73 var c = this;
74 if (typeof c != "function") throw new TypeError;
75 var d = u.call(arguments, 1),
76 e = function() {
77 if (this instanceof e) {
78 var a = function() {};
79 a.prototype = c.prototype;
80 var f = new a,
81 g = c.apply(f, d.concat(u.call(arguments)));
82 return Object(g) === g ? g : f
83 }
84 return c.apply(b, d.concat(u.call(arguments)))
85 };
86 return e
87 });
88 var G = function(a, c) {
89 var d = a.join(""),
90 f = c.length;
91 w(d, function(a, c) {
92 var d = b.styleSheets[b.styleSheets.length - 1],
93 g = d ? d.cssRules && d.cssRules[0] ? d.cssRules[0].cssText : d.cssText || "" : "",
94 h = a.childNodes,
95 i = {};
96 while (f--) i[h[f].id] = h[f];
97 e.csstransforms3d = (i.csstransforms3d && i.csstransforms3d.offsetLeft) === 9 && i.csstransforms3d.offsetHeight === 3
98 }, f, c)
99 }([, ["@media (", m.join("transform-3d),("), h, ")", "{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join("")], [, "csstransforms3d"]);
100 q.cssanimations = function() {
101 return F("animationName")
102 }, q.csstransforms = function() {
103 return !!F("transform")
104 }, q.csstransforms3d = function() {
105 var a = !!F("perspective");
106 return a && "webkitPerspective" in g.style && (a = e.csstransforms3d), a
107 }, q.csstransitions = function() {
108 return F("transition")
109 };
110 for (var H in q) y(q, H) && (v = H.toLowerCase(), e[v] = q[H](), t.push((e[v] ? "" : "no-") + v));
111 return z(""), i = k = null,
112 function(a, b) {
113 function g(a, b) {
114 var c = a.createElement("p"),
115 d = a.getElementsByTagName("head")[0] || a.documentElement;
116 return c.innerHTML = "x<style>" + b + "</style>", d.insertBefore(c.lastChild, d.firstChild)
117 }
118
119 function h() {
120 var a = k.elements;
121 return typeof a == "string" ? a.split(" ") : a
122 }
123
124 function i(a) {
125 var b = {},
126 c = a.createElement,
127 e = a.createDocumentFragment,
128 f = e();
129 a.createElement = function(a) {
130 var e = (b[a] || (b[a] = c(a))).cloneNode();
131 return k.shivMethods && e.canHaveChildren && !d.test(a) ? f.appendChild(e) : e
132 }, a.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + h().join().replace(/\w+/g, function(a) {
133 return b[a] = c(a), f.createElement(a), 'c("' + a + '")'
134 }) + ");return n}")(k, f)
135 }
136
137 function j(a) {
138 var b;
139 return a.documentShived ? a : (k.shivCSS && !e && (b = !!g(a, "article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")), f || (b = !i(a)), b && (a.documentShived = b), a)
140 }
141 var c = a.html5 || {},
142 d = /^<|^(?:button|form|map|select|textarea)$/i,
143 e, f;
144 (function() {
145 var a = b.createElement("a");
146 a.innerHTML = "<xyz></xyz>", e = "hidden" in a, f = a.childNodes.length == 1 || function() {
147 try {
148 b.createElement("a")
149 } catch (a) {
150 return !0
151 }
152 var c = b.createDocumentFragment();
153 return typeof c.cloneNode == "undefined" || typeof c.createDocumentFragment == "undefined" || typeof c.createElement == "undefined"
154 }()
155 })();
156 var k = {
157 elements: c.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",
158 shivCSS: c.shivCSS !== !1,
159 shivMethods: c.shivMethods !== !1,
160 type: "default",
161 shivDocument: j
162 };
163 a.html5 = k, j(b)
164 }(this, b), e._version = d, e._prefixes = m, e._domPrefixes = p, e._cssomPrefixes = o, e.testProp = function(a) {
165 return D([a])
166 }, e.testAllProps = F, e.testStyles = w, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (f ? " js " + t.join(" ") : ""), e
167}(this, this.document); \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/css/bootstrap-theme.css b/deprecated/jinwei.me/mobile/css/bootstrap-theme.css
new file mode 100644
index 0000000..a406992
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/css/bootstrap-theme.css
@@ -0,0 +1,347 @@
1/*!
2 * Bootstrap v3.1.1 (http://getbootstrap.com)
3 * Copyright 2011-2014 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */
6
7.btn-default,
8.btn-primary,
9.btn-success,
10.btn-info,
11.btn-warning,
12.btn-danger {
13 text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
14 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
15 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
16}
17.btn-default:active,
18.btn-primary:active,
19.btn-success:active,
20.btn-info:active,
21.btn-warning:active,
22.btn-danger:active,
23.btn-default.active,
24.btn-primary.active,
25.btn-success.active,
26.btn-info.active,
27.btn-warning.active,
28.btn-danger.active {
29 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
30 box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
31}
32.btn:active,
33.btn.active {
34 background-image: none;
35}
36.btn-default {
37 text-shadow: 0 1px 0 #fff;
38 background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
39 background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
40 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
41 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
42 background-repeat: repeat-x;
43 border-color: #dbdbdb;
44 border-color: #ccc;
45}
46.btn-default:hover,
47.btn-default:focus {
48 background-color: #e0e0e0;
49 background-position: 0 -15px;
50}
51.btn-default:active,
52.btn-default.active {
53 background-color: #e0e0e0;
54 border-color: #dbdbdb;
55}
56.btn-primary {
57 background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
58 background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
59 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
60 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
61 background-repeat: repeat-x;
62 border-color: #2b669a;
63}
64.btn-primary:hover,
65.btn-primary:focus {
66 background-color: #2d6ca2;
67 background-position: 0 -15px;
68}
69.btn-primary:active,
70.btn-primary.active {
71 background-color: #2d6ca2;
72 border-color: #2b669a;
73}
74.btn-success {
75 background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
76 background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
77 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
78 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
79 background-repeat: repeat-x;
80 border-color: #3e8f3e;
81}
82.btn-success:hover,
83.btn-success:focus {
84 background-color: #419641;
85 background-position: 0 -15px;
86}
87.btn-success:active,
88.btn-success.active {
89 background-color: #419641;
90 border-color: #3e8f3e;
91}
92.btn-info {
93 background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
94 background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
95 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
96 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
97 background-repeat: repeat-x;
98 border-color: #28a4c9;
99}
100.btn-info:hover,
101.btn-info:focus {
102 background-color: #2aabd2;
103 background-position: 0 -15px;
104}
105.btn-info:active,
106.btn-info.active {
107 background-color: #2aabd2;
108 border-color: #28a4c9;
109}
110.btn-warning {
111 background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
112 background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
113 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
114 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
115 background-repeat: repeat-x;
116 border-color: #e38d13;
117}
118.btn-warning:hover,
119.btn-warning:focus {
120 background-color: #eb9316;
121 background-position: 0 -15px;
122}
123.btn-warning:active,
124.btn-warning.active {
125 background-color: #eb9316;
126 border-color: #e38d13;
127}
128.btn-danger {
129 background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
130 background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
131 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
132 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
133 background-repeat: repeat-x;
134 border-color: #b92c28;
135}
136.btn-danger:hover,
137.btn-danger:focus {
138 background-color: #c12e2a;
139 background-position: 0 -15px;
140}
141.btn-danger:active,
142.btn-danger.active {
143 background-color: #c12e2a;
144 border-color: #b92c28;
145}
146.thumbnail,
147.img-thumbnail {
148 -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
149 box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
150}
151.dropdown-menu > li > a:hover,
152.dropdown-menu > li > a:focus {
153 background-color: #e8e8e8;
154 background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
155 background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
156 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
157 background-repeat: repeat-x;
158}
159.dropdown-menu > .active > a,
160.dropdown-menu > .active > a:hover,
161.dropdown-menu > .active > a:focus {
162 background-color: #357ebd;
163 background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
164 background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
165 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
166 background-repeat: repeat-x;
167}
168.navbar-default {
169 background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
170 background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
171 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
172 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
173 background-repeat: repeat-x;
174 border-radius: 4px;
175 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
176 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
177}
178.navbar-default .navbar-nav > .active > a {
179 background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
180 background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
181 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
182 background-repeat: repeat-x;
183 -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
184 box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
185}
186.navbar-brand,
187.navbar-nav > li > a {
188 text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
189}
190.navbar-inverse {
191 background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
192 background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
193 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
194 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
195 background-repeat: repeat-x;
196}
197.navbar-inverse .navbar-nav > .active > a {
198 background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
199 background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
200 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
201 background-repeat: repeat-x;
202 -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
203 box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
204}
205.navbar-inverse .navbar-brand,
206.navbar-inverse .navbar-nav > li > a {
207 text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
208}
209.navbar-static-top,
210.navbar-fixed-top,
211.navbar-fixed-bottom {
212 border-radius: 0;
213}
214.alert {
215 text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
216 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
217 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
218}
219.alert-success {
220 background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
221 background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
222 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
223 background-repeat: repeat-x;
224 border-color: #b2dba1;
225}
226.alert-info {
227 background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
228 background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
229 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
230 background-repeat: repeat-x;
231 border-color: #9acfea;
232}
233.alert-warning {
234 background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
235 background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
236 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
237 background-repeat: repeat-x;
238 border-color: #f5e79e;
239}
240.alert-danger {
241 background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
242 background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
243 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
244 background-repeat: repeat-x;
245 border-color: #dca7a7;
246}
247.progress {
248 background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
249 background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
250 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
251 background-repeat: repeat-x;
252}
253.progress-bar {
254 background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
255 background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
256 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
257 background-repeat: repeat-x;
258}
259.progress-bar-success {
260 background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
261 background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
262 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
263 background-repeat: repeat-x;
264}
265.progress-bar-info {
266 background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
267 background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
268 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
269 background-repeat: repeat-x;
270}
271.progress-bar-warning {
272 background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
273 background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
274 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
275 background-repeat: repeat-x;
276}
277.progress-bar-danger {
278 background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
279 background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
280 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
281 background-repeat: repeat-x;
282}
283.list-group {
284 border-radius: 4px;
285 -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
286 box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
287}
288.list-group-item.active,
289.list-group-item.active:hover,
290.list-group-item.active:focus {
291 text-shadow: 0 -1px 0 #3071a9;
292 background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
293 background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
294 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
295 background-repeat: repeat-x;
296 border-color: #3278b3;
297}
298.panel {
299 -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
300 box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
301}
302.panel-default > .panel-heading {
303 background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
304 background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
305 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
306 background-repeat: repeat-x;
307}
308.panel-primary > .panel-heading {
309 background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
310 background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
311 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
312 background-repeat: repeat-x;
313}
314.panel-success > .panel-heading {
315 background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
316 background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
317 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
318 background-repeat: repeat-x;
319}
320.panel-info > .panel-heading {
321 background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
322 background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
323 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
324 background-repeat: repeat-x;
325}
326.panel-warning > .panel-heading {
327 background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
328 background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
329 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
330 background-repeat: repeat-x;
331}
332.panel-danger > .panel-heading {
333 background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
334 background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
335 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
336 background-repeat: repeat-x;
337}
338.well {
339 background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
340 background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
341 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
342 background-repeat: repeat-x;
343 border-color: #dcdcdc;
344 -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
345 box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
346}
347/*# sourceMappingURL=bootstrap-theme.css.map */
diff --git a/deprecated/jinwei.me/mobile/css/bootstrap-theme.css.map b/deprecated/jinwei.me/mobile/css/bootstrap-theme.css.map
new file mode 100644
index 0000000..b36fc9a
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/css/bootstrap-theme.css.map
@@ -0,0 +1 @@
{"version":3,"sources":["less/theme.less","less/mixins.less"],"names":[],"mappings":"AAeA;AACA;AACA;AACA;AACA;AACA;EACE,wCAAA;ECoGA,2FAAA;EACQ,mFAAA;;ADhGR,YAAC;AAAD,YAAC;AAAD,YAAC;AAAD,SAAC;AAAD,YAAC;AAAD,WAAC;AACD,YAAC;AAAD,YAAC;AAAD,YAAC;AAAD,SAAC;AAAD,YAAC;AAAD,WAAC;EC8FD,wDAAA;EACQ,gDAAA;;ADnER,IAAC;AACD,IAAC;EACC,sBAAA;;AAKJ;EC4PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;EAyB2C,yBAAA;EAA2B,kBAAA;;AAvBtE,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAeJ;EC2PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAgBJ;EC0PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAiBJ;ECyPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,SAAC;AACD,SAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,SAAC;AACD,SAAC;EACC,yBAAA;EACA,qBAAA;;AAkBJ;ECwPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAmBJ;ECuPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,WAAC;AACD,WAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,WAAC;AACD,WAAC;EACC,yBAAA;EACA,qBAAA;;AA2BJ;AACA;EC6CE,kDAAA;EACQ,0CAAA;;ADpCV,cAAe,KAAK,IAAG;AACvB,cAAe,KAAK,IAAG;ECmOnB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EDpOF,yBAAA;;AAEF,cAAe,UAAU;AACzB,cAAe,UAAU,IAAG;AAC5B,cAAe,UAAU,IAAG;EC6NxB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED9NF,yBAAA;;AAUF;ECiNI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EAoCF,mEAAA;EDrPA,kBAAA;ECaA,2FAAA;EACQ,mFAAA;;ADjBV,eAOE,YAAY,UAAU;EC0MpB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EApMF,wDAAA;EACQ,gDAAA;;ADLV;AACA,WAAY,KAAK;EACf,8CAAA;;AAIF;EC+LI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EAoCF,mEAAA;;ADtOF,eAIE,YAAY,UAAU;EC2LpB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EApMF,uDAAA;EACQ,+CAAA;;ADCV,eASE;AATF,eAUE,YAAY,KAAK;EACf,yCAAA;;AAKJ;AACA;AACA;EACE,gBAAA;;AAUF;EACE,6CAAA;EChCA,0FAAA;EACQ,kFAAA;;AD2CV;ECqJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAKF;ECoJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAMF;ECmJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAOF;ECkJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAgBF;ECyII,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADlIJ;EC+HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADjIJ;EC8HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADhIJ;EC6HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD/HJ;EC4HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD9HJ;EC2HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADtHJ;EACE,kBAAA;EC/EA,kDAAA;EACQ,0CAAA;;ADiFV,gBAAgB;AAChB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;EACrB,6BAAA;EC4GE,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED7GF,qBAAA;;AAUF;ECjGE,iDAAA;EACQ,yCAAA;;AD0GV,cAAe;ECsFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADxFJ,cAAe;ECqFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADvFJ,cAAe;ECoFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADtFJ,WAAY;ECmFR,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADrFJ,cAAe;ECkFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADpFJ,aAAc;ECiFV,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD5EJ;ECyEI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED1EF,qBAAA;EC1HA,yFAAA;EACQ,iFAAA","sourcesContent":["\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-bg, 5%); @end-color: darken(@navbar-default-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-bg; @end-color: lighten(@navbar-inverse-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n}\n\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","//\n// Mixins\n// --------------------------------------------------\n\n\n// Utilities\n// -------------------------\n\n// Clearfix\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n\n// WebKit-style focus\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n\n// Center-align a block level element\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n// Sizing shortcuts\n.size(@width; @height) {\n width: @width;\n height: @height;\n}\n.square(@size) {\n .size(@size; @size);\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n &::-moz-placeholder { color: @color; // Firefox\n opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Text overflow\n// Requires inline-block or block for proper styling\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// CSS image replacement\n//\n// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note\n// that we cannot chain the mixins together in Less, so they are repeated.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n\n\n\n// CSS3 PROPERTIES\n// --------------------------------------------------\n\n// Single side border-radius\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support the\n// standard `box-shadow` property.\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Transitions\n.transition(@transition) {\n -webkit-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n// Transformations\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n transform: rotate(@degrees);\n}\n.scale(@ratio; @ratio-y...) {\n -webkit-transform: scale(@ratio, @ratio-y);\n -ms-transform: scale(@ratio, @ratio-y); // IE9 only\n transform: scale(@ratio, @ratio-y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n transform: translate(@x, @y);\n}\n.skew(@x; @y) {\n -webkit-transform: skew(@x, @y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n transform: skew(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// User select\n// For selecting text on the page\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n\n// Resize anything\n.resizable(@direction) {\n resize: @direction; // Options: horizontal, vertical, both\n overflow: auto; // Safari fix\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Opacity\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n\n\n\n// GRADIENTS\n// --------------------------------------------------\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n\n// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n\n\n\n// Retina images\n//\n// Short retina mixin for setting background-image and -size\n\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// COMPONENT MIXINS\n// --------------------------------------------------\n\n// Horizontal dividers\n// -------------------------\n// Dividers (basically an hr) within dropdowns and nav lists\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n\n// Panels\n// -------------------------\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse .panel-body {\n border-top-color: @border;\n }\n }\n & > .panel-footer {\n + .panel-collapse .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n\n// Alerts\n// -------------------------\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n\n// Tables\n// -------------------------\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n\n// List Groups\n// -------------------------\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a& {\n color: @color;\n\n .list-group-item-heading { color: inherit; }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n\n// Button variants\n// -------------------------\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 8%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n// -------------------------\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n\n// Pagination\n// -------------------------\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n\n// Labels\n// -------------------------\n.label-variant(@color) {\n background-color: @color;\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n\n// Contextual backgrounds\n// -------------------------\n.bg-variant(@color) {\n background-color: @color;\n a&:hover {\n background-color: darken(@color, 10%);\n }\n}\n\n// Typography\n// -------------------------\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover {\n color: darken(@color, 10%);\n }\n}\n\n// Navbar vertical align\n// -------------------------\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n\n// Progress bars\n// -------------------------\n.progress-bar-variant(@color) {\n background-color: @color;\n .progress-striped & {\n #gradient > .striped();\n }\n}\n\n// Responsive utilities\n// -------------------------\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n\n\n// Grid System\n// -----------\n\n// Centered container element\n.container-fixed() {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: (@gutter / -2);\n margin-right: (@gutter / -2);\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n @media (min-width: @screen-xs-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-push(@columns) {\n @media (min-width: @screen-xs-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-pull(@columns) {\n @media (min-width: @screen-xs-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n\n// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-focus-border` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n"]} \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/css/bootstrap-theme.min.css b/deprecated/jinwei.me/mobile/css/bootstrap-theme.min.css
new file mode 100644
index 0000000..ba4bd28
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/css/bootstrap-theme.min.css
@@ -0,0 +1,7 @@
1/*!
2 * Bootstrap v3.1.1 (http://getbootstrap.com)
3 * Copyright 2011-2014 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */
6
7.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/css/bootstrap.css b/deprecated/jinwei.me/mobile/css/bootstrap.css
new file mode 100644
index 0000000..7f36651
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/css/bootstrap.css
@@ -0,0 +1,5785 @@
1/*!
2 * Bootstrap v3.1.1 (http://getbootstrap.com)
3 * Copyright 2011-2014 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */
6
7/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
8html {
9 font-family: sans-serif;
10 -webkit-text-size-adjust: 100%;
11 -ms-text-size-adjust: 100%;
12}
13body {
14 margin: 0;
15}
16article,
17aside,
18details,
19figcaption,
20figure,
21footer,
22header,
23hgroup,
24main,
25nav,
26section,
27summary {
28 display: block;
29}
30audio,
31canvas,
32progress,
33video {
34 display: inline-block;
35 vertical-align: baseline;
36}
37audio:not([controls]) {
38 display: none;
39 height: 0;
40}
41[hidden],
42template {
43 display: none;
44}
45a {
46 background: transparent;
47}
48a:active,
49a:hover {
50 outline: 0;
51}
52abbr[title] {
53 border-bottom: 1px dotted;
54}
55b,
56strong {
57 font-weight: bold;
58}
59dfn {
60 font-style: italic;
61}
62h1 {
63 margin: .67em 0;
64 font-size: 2em;
65}
66mark {
67 color: #000;
68 background: #ff0;
69}
70small {
71 font-size: 80%;
72}
73sub,
74sup {
75 position: relative;
76 font-size: 75%;
77 line-height: 0;
78 vertical-align: baseline;
79}
80sup {
81 top: -.5em;
82}
83sub {
84 bottom: -.25em;
85}
86img {
87 border: 0;
88}
89svg:not(:root) {
90 overflow: hidden;
91}
92figure {
93 margin: 1em 40px;
94}
95hr {
96 height: 0;
97 -moz-box-sizing: content-box;
98 box-sizing: content-box;
99}
100pre {
101 overflow: auto;
102}
103code,
104kbd,
105pre,
106samp {
107 font-family: monospace, monospace;
108 font-size: 1em;
109}
110button,
111input,
112optgroup,
113select,
114textarea {
115 margin: 0;
116 font: inherit;
117 color: inherit;
118}
119button {
120 overflow: visible;
121}
122button,
123select {
124 text-transform: none;
125}
126button,
127html input[type="button"],
128input[type="reset"],
129input[type="submit"] {
130 -webkit-appearance: button;
131 cursor: pointer;
132}
133button[disabled],
134html input[disabled] {
135 cursor: default;
136}
137button::-moz-focus-inner,
138input::-moz-focus-inner {
139 padding: 0;
140 border: 0;
141}
142input {
143 line-height: normal;
144}
145input[type="checkbox"],
146input[type="radio"] {
147 box-sizing: border-box;
148 padding: 0;
149}
150input[type="number"]::-webkit-inner-spin-button,
151input[type="number"]::-webkit-outer-spin-button {
152 height: auto;
153}
154input[type="search"] {
155 -webkit-box-sizing: content-box;
156 -moz-box-sizing: content-box;
157 box-sizing: content-box;
158 -webkit-appearance: textfield;
159}
160input[type="search"]::-webkit-search-cancel-button,
161input[type="search"]::-webkit-search-decoration {
162 -webkit-appearance: none;
163}
164fieldset {
165 padding: .35em .625em .75em;
166 margin: 0 2px;
167 border: 1px solid #c0c0c0;
168}
169legend {
170 padding: 0;
171 border: 0;
172}
173textarea {
174 overflow: auto;
175}
176optgroup {
177 font-weight: bold;
178}
179table {
180 border-spacing: 0;
181 border-collapse: collapse;
182}
183td,
184th {
185 padding: 0;
186}
187@media print {
188 * {
189 color: #000 !important;
190 text-shadow: none !important;
191 background: transparent !important;
192 box-shadow: none !important;
193 }
194 a,
195 a:visited {
196 text-decoration: underline;
197 }
198 a[href]:after {
199 content: " (" attr(href) ")";
200 }
201 abbr[title]:after {
202 content: " (" attr(title) ")";
203 }
204 a[href^="javascript:"]:after,
205 a[href^="#"]:after {
206 content: "";
207 }
208 pre,
209 blockquote {
210 border: 1px solid #999;
211
212 page-break-inside: avoid;
213 }
214 thead {
215 display: table-header-group;
216 }
217 tr,
218 img {
219 page-break-inside: avoid;
220 }
221 img {
222 max-width: 100% !important;
223 }
224 p,
225 h2,
226 h3 {
227 orphans: 3;
228 widows: 3;
229 }
230 h2,
231 h3 {
232 page-break-after: avoid;
233 }
234 select {
235 background: #fff !important;
236 }
237 .navbar {
238 display: none;
239 }
240 .table td,
241 .table th {
242 background-color: #fff !important;
243 }
244 .btn > .caret,
245 .dropup > .btn > .caret {
246 border-top-color: #000 !important;
247 }
248 .label {
249 border: 1px solid #000;
250 }
251 .table {
252 border-collapse: collapse !important;
253 }
254 .table-bordered th,
255 .table-bordered td {
256 border: 1px solid #ddd !important;
257 }
258}
259* {
260 -webkit-box-sizing: border-box;
261 -moz-box-sizing: border-box;
262 box-sizing: border-box;
263}
264*:before,
265*:after {
266 -webkit-box-sizing: border-box;
267 -moz-box-sizing: border-box;
268 box-sizing: border-box;
269}
270html {
271 font-size: 62.5%;
272
273 -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
274}
275body {
276 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
277 font-size: 14px;
278 line-height: 1.42857143;
279 color: #333;
280 background-color: #fff;
281}
282input,
283button,
284select,
285textarea {
286 font-family: inherit;
287 font-size: inherit;
288 line-height: inherit;
289}
290a {
291 color: #428bca;
292 text-decoration: none;
293}
294a:hover,
295a:focus {
296 color: #2a6496;
297 text-decoration: underline;
298}
299a:focus {
300 outline: thin dotted;
301 outline: 5px auto -webkit-focus-ring-color;
302 outline-offset: -2px;
303}
304figure {
305 margin: 0;
306}
307img {
308 vertical-align: middle;
309}
310.img-responsive,
311.thumbnail > img,
312.thumbnail a > img,
313.carousel-inner > .item > img,
314.carousel-inner > .item > a > img {
315 display: block;
316 max-width: 100%;
317 height: auto;
318}
319.img-rounded {
320 border-radius: 6px;
321}
322.img-thumbnail {
323 display: inline-block;
324 max-width: 100%;
325 height: auto;
326 padding: 4px;
327 line-height: 1.42857143;
328 background-color: #fff;
329 border: 1px solid #ddd;
330 border-radius: 4px;
331 -webkit-transition: all .2s ease-in-out;
332 transition: all .2s ease-in-out;
333}
334.img-circle {
335 border-radius: 50%;
336}
337hr {
338 margin-top: 20px;
339 margin-bottom: 20px;
340 border: 0;
341 border-top: 1px solid #eee;
342}
343.sr-only {
344 position: absolute;
345 width: 1px;
346 height: 1px;
347 padding: 0;
348 margin: -1px;
349 overflow: hidden;
350 clip: rect(0, 0, 0, 0);
351 border: 0;
352}
353h1,
354h2,
355h3,
356h4,
357h5,
358h6,
359.h1,
360.h2,
361.h3,
362.h4,
363.h5,
364.h6 {
365 font-family: inherit;
366 font-weight: 500;
367 line-height: 1.1;
368 color: inherit;
369}
370h1 small,
371h2 small,
372h3 small,
373h4 small,
374h5 small,
375h6 small,
376.h1 small,
377.h2 small,
378.h3 small,
379.h4 small,
380.h5 small,
381.h6 small,
382h1 .small,
383h2 .small,
384h3 .small,
385h4 .small,
386h5 .small,
387h6 .small,
388.h1 .small,
389.h2 .small,
390.h3 .small,
391.h4 .small,
392.h5 .small,
393.h6 .small {
394 font-weight: normal;
395 line-height: 1;
396 color: #999;
397}
398h1,
399.h1,
400h2,
401.h2,
402h3,
403.h3 {
404 margin-top: 20px;
405 margin-bottom: 10px;
406}
407h1 small,
408.h1 small,
409h2 small,
410.h2 small,
411h3 small,
412.h3 small,
413h1 .small,
414.h1 .small,
415h2 .small,
416.h2 .small,
417h3 .small,
418.h3 .small {
419 font-size: 65%;
420}
421h4,
422.h4,
423h5,
424.h5,
425h6,
426.h6 {
427 margin-top: 10px;
428 margin-bottom: 10px;
429}
430h4 small,
431.h4 small,
432h5 small,
433.h5 small,
434h6 small,
435.h6 small,
436h4 .small,
437.h4 .small,
438h5 .small,
439.h5 .small,
440h6 .small,
441.h6 .small {
442 font-size: 75%;
443}
444h1,
445.h1 {
446 font-size: 36px;
447}
448h2,
449.h2 {
450 font-size: 30px;
451}
452h3,
453.h3 {
454 font-size: 24px;
455}
456h4,
457.h4 {
458 font-size: 18px;
459}
460h5,
461.h5 {
462 font-size: 14px;
463}
464h6,
465.h6 {
466 font-size: 12px;
467}
468p {
469 margin: 0 0 10px;
470}
471.lead {
472 margin-bottom: 20px;
473 font-size: 16px;
474 font-weight: 200;
475 line-height: 1.4;
476}
477@media (min-width: 768px) {
478 .lead {
479 font-size: 21px;
480 }
481}
482small,
483.small {
484 font-size: 85%;
485}
486cite {
487 font-style: normal;
488}
489.text-left {
490 text-align: left;
491}
492.text-right {
493 text-align: right;
494}
495.text-center {
496 text-align: center;
497}
498.text-justify {
499 text-align: justify;
500}
501.text-muted {
502 color: #999;
503}
504.text-primary {
505 color: #428bca;
506}
507a.text-primary:hover {
508 color: #3071a9;
509}
510.text-success {
511 color: #3c763d;
512}
513a.text-success:hover {
514 color: #2b542c;
515}
516.text-info {
517 color: #31708f;
518}
519a.text-info:hover {
520 color: #245269;
521}
522.text-warning {
523 color: #8a6d3b;
524}
525a.text-warning:hover {
526 color: #66512c;
527}
528.text-danger {
529 color: #a94442;
530}
531a.text-danger:hover {
532 color: #843534;
533}
534.bg-primary {
535 color: #fff;
536 background-color: #428bca;
537}
538a.bg-primary:hover {
539 background-color: #3071a9;
540}
541.bg-success {
542 background-color: #dff0d8;
543}
544a.bg-success:hover {
545 background-color: #c1e2b3;
546}
547.bg-info {
548 background-color: #d9edf7;
549}
550a.bg-info:hover {
551 background-color: #afd9ee;
552}
553.bg-warning {
554 background-color: #fcf8e3;
555}
556a.bg-warning:hover {
557 background-color: #f7ecb5;
558}
559.bg-danger {
560 background-color: #f2dede;
561}
562a.bg-danger:hover {
563 background-color: #e4b9b9;
564}
565.page-header {
566 padding-bottom: 9px;
567 margin: 40px 0 20px;
568 border-bottom: 1px solid #eee;
569}
570ul,
571ol {
572 margin-top: 0;
573 margin-bottom: 10px;
574}
575ul ul,
576ol ul,
577ul ol,
578ol ol {
579 margin-bottom: 0;
580}
581.list-unstyled {
582 padding-left: 0;
583 list-style: none;
584}
585.list-inline {
586 padding-left: 0;
587 margin-left: -5px;
588 list-style: none;
589}
590.list-inline > li {
591 display: inline-block;
592 padding-right: 5px;
593 padding-left: 5px;
594}
595dl {
596 margin-top: 0;
597 margin-bottom: 20px;
598}
599dt,
600dd {
601 line-height: 1.42857143;
602}
603dt {
604 font-weight: bold;
605}
606dd {
607 margin-left: 0;
608}
609@media (min-width: 768px) {
610 .dl-horizontal dt {
611 float: left;
612 width: 160px;
613 overflow: hidden;
614 clear: left;
615 text-align: right;
616 text-overflow: ellipsis;
617 white-space: nowrap;
618 }
619 .dl-horizontal dd {
620 margin-left: 180px;
621 }
622}
623abbr[title],
624abbr[data-original-title] {
625 cursor: help;
626 border-bottom: 1px dotted #999;
627}
628.initialism {
629 font-size: 90%;
630 text-transform: uppercase;
631}
632blockquote {
633 padding: 10px 20px;
634 margin: 0 0 20px;
635 font-size: 17.5px;
636 border-left: 5px solid #eee;
637}
638blockquote p:last-child,
639blockquote ul:last-child,
640blockquote ol:last-child {
641 margin-bottom: 0;
642}
643blockquote footer,
644blockquote small,
645blockquote .small {
646 display: block;
647 font-size: 80%;
648 line-height: 1.42857143;
649 color: #999;
650}
651blockquote footer:before,
652blockquote small:before,
653blockquote .small:before {
654 content: '\2014 \00A0';
655}
656.blockquote-reverse,
657blockquote.pull-right {
658 padding-right: 15px;
659 padding-left: 0;
660 text-align: right;
661 border-right: 5px solid #eee;
662 border-left: 0;
663}
664.blockquote-reverse footer:before,
665blockquote.pull-right footer:before,
666.blockquote-reverse small:before,
667blockquote.pull-right small:before,
668.blockquote-reverse .small:before,
669blockquote.pull-right .small:before {
670 content: '';
671}
672.blockquote-reverse footer:after,
673blockquote.pull-right footer:after,
674.blockquote-reverse small:after,
675blockquote.pull-right small:after,
676.blockquote-reverse .small:after,
677blockquote.pull-right .small:after {
678 content: '\00A0 \2014';
679}
680blockquote:before,
681blockquote:after {
682 content: "";
683}
684address {
685 margin-bottom: 20px;
686 font-style: normal;
687 line-height: 1.42857143;
688}
689code,
690kbd,
691pre,
692samp {
693 font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
694}
695code {
696 padding: 2px 4px;
697 font-size: 90%;
698 color: #c7254e;
699 white-space: nowrap;
700 background-color: #f9f2f4;
701 border-radius: 4px;
702}
703kbd {
704 padding: 2px 4px;
705 font-size: 90%;
706 color: #fff;
707 background-color: #333;
708 border-radius: 3px;
709 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
710}
711pre {
712 display: block;
713 padding: 9.5px;
714 margin: 0 0 10px;
715 font-size: 13px;
716 line-height: 1.42857143;
717 color: #333;
718 word-break: break-all;
719 word-wrap: break-word;
720 background-color: #f5f5f5;
721 border: 1px solid #ccc;
722 border-radius: 4px;
723}
724pre code {
725 padding: 0;
726 font-size: inherit;
727 color: inherit;
728 white-space: pre-wrap;
729 background-color: transparent;
730 border-radius: 0;
731}
732.pre-scrollable {
733 max-height: 340px;
734 overflow-y: scroll;
735}
736.container {
737 padding-right: 15px;
738 padding-left: 15px;
739 margin-right: auto;
740 margin-left: auto;
741}
742@media (min-width: 768px) {
743 .container {
744 width: 750px;
745 }
746}
747@media (min-width: 992px) {
748 .container {
749 width: 970px;
750 }
751}
752@media (min-width: 1200px) {
753 .container {
754 width: 1170px;
755 }
756}
757.container-fluid {
758 padding-right: 15px;
759 padding-left: 15px;
760 margin-right: auto;
761 margin-left: auto;
762}
763.row {
764 margin-right: -15px;
765 margin-left: -15px;
766}
767.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
768 position: relative;
769 min-height: 1px;
770 padding-right: 15px;
771 padding-left: 15px;
772}
773.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
774 float: left;
775}
776.col-xs-12 {
777 width: 100%;
778}
779.col-xs-11 {
780 width: 91.66666667%;
781}
782.col-xs-10 {
783 width: 83.33333333%;
784}
785.col-xs-9 {
786 width: 75%;
787}
788.col-xs-8 {
789 width: 66.66666667%;
790}
791.col-xs-7 {
792 width: 58.33333333%;
793}
794.col-xs-6 {
795 width: 50%;
796}
797.col-xs-5 {
798 width: 41.66666667%;
799}
800.col-xs-4 {
801 width: 33.33333333%;
802}
803.col-xs-3 {
804 width: 25%;
805}
806.col-xs-2 {
807 width: 16.66666667%;
808}
809.col-xs-1 {
810 width: 8.33333333%;
811}
812.col-xs-pull-12 {
813 right: 100%;
814}
815.col-xs-pull-11 {
816 right: 91.66666667%;
817}
818.col-xs-pull-10 {
819 right: 83.33333333%;
820}
821.col-xs-pull-9 {
822 right: 75%;
823}
824.col-xs-pull-8 {
825 right: 66.66666667%;
826}
827.col-xs-pull-7 {
828 right: 58.33333333%;
829}
830.col-xs-pull-6 {
831 right: 50%;
832}
833.col-xs-pull-5 {
834 right: 41.66666667%;
835}
836.col-xs-pull-4 {
837 right: 33.33333333%;
838}
839.col-xs-pull-3 {
840 right: 25%;
841}
842.col-xs-pull-2 {
843 right: 16.66666667%;
844}
845.col-xs-pull-1 {
846 right: 8.33333333%;
847}
848.col-xs-pull-0 {
849 right: 0;
850}
851.col-xs-push-12 {
852 left: 100%;
853}
854.col-xs-push-11 {
855 left: 91.66666667%;
856}
857.col-xs-push-10 {
858 left: 83.33333333%;
859}
860.col-xs-push-9 {
861 left: 75%;
862}
863.col-xs-push-8 {
864 left: 66.66666667%;
865}
866.col-xs-push-7 {
867 left: 58.33333333%;
868}
869.col-xs-push-6 {
870 left: 50%;
871}
872.col-xs-push-5 {
873 left: 41.66666667%;
874}
875.col-xs-push-4 {
876 left: 33.33333333%;
877}
878.col-xs-push-3 {
879 left: 25%;
880}
881.col-xs-push-2 {
882 left: 16.66666667%;
883}
884.col-xs-push-1 {
885 left: 8.33333333%;
886}
887.col-xs-push-0 {
888 left: 0;
889}
890.col-xs-offset-12 {
891 margin-left: 100%;
892}
893.col-xs-offset-11 {
894 margin-left: 91.66666667%;
895}
896.col-xs-offset-10 {
897 margin-left: 83.33333333%;
898}
899.col-xs-offset-9 {
900 margin-left: 75%;
901}
902.col-xs-offset-8 {
903 margin-left: 66.66666667%;
904}
905.col-xs-offset-7 {
906 margin-left: 58.33333333%;
907}
908.col-xs-offset-6 {
909 margin-left: 50%;
910}
911.col-xs-offset-5 {
912 margin-left: 41.66666667%;
913}
914.col-xs-offset-4 {
915 margin-left: 33.33333333%;
916}
917.col-xs-offset-3 {
918 margin-left: 25%;
919}
920.col-xs-offset-2 {
921 margin-left: 16.66666667%;
922}
923.col-xs-offset-1 {
924 margin-left: 8.33333333%;
925}
926.col-xs-offset-0 {
927 margin-left: 0;
928}
929@media (min-width: 768px) {
930 .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
931 float: left;
932 }
933 .col-sm-12 {
934 width: 100%;
935 }
936 .col-sm-11 {
937 width: 91.66666667%;
938 }
939 .col-sm-10 {
940 width: 83.33333333%;
941 }
942 .col-sm-9 {
943 width: 75%;
944 }
945 .col-sm-8 {
946 width: 66.66666667%;
947 }
948 .col-sm-7 {
949 width: 58.33333333%;
950 }
951 .col-sm-6 {
952 width: 50%;
953 }
954 .col-sm-5 {
955 width: 41.66666667%;
956 }
957 .col-sm-4 {
958 width: 33.33333333%;
959 }
960 .col-sm-3 {
961 width: 25%;
962 }
963 .col-sm-2 {
964 width: 16.66666667%;
965 }
966 .col-sm-1 {
967 width: 8.33333333%;
968 }
969 .col-sm-pull-12 {
970 right: 100%;
971 }
972 .col-sm-pull-11 {
973 right: 91.66666667%;
974 }
975 .col-sm-pull-10 {
976 right: 83.33333333%;
977 }
978 .col-sm-pull-9 {
979 right: 75%;
980 }
981 .col-sm-pull-8 {
982 right: 66.66666667%;
983 }
984 .col-sm-pull-7 {
985 right: 58.33333333%;
986 }
987 .col-sm-pull-6 {
988 right: 50%;
989 }
990 .col-sm-pull-5 {
991 right: 41.66666667%;
992 }
993 .col-sm-pull-4 {
994 right: 33.33333333%;
995 }
996 .col-sm-pull-3 {
997 right: 25%;
998 }
999 .col-sm-pull-2 {
1000 right: 16.66666667%;
1001 }
1002 .col-sm-pull-1 {
1003 right: 8.33333333%;
1004 }
1005 .col-sm-pull-0 {
1006 right: 0;
1007 }
1008 .col-sm-push-12 {
1009 left: 100%;
1010 }
1011 .col-sm-push-11 {
1012 left: 91.66666667%;
1013 }
1014 .col-sm-push-10 {
1015 left: 83.33333333%;
1016 }
1017 .col-sm-push-9 {
1018 left: 75%;
1019 }
1020 .col-sm-push-8 {
1021 left: 66.66666667%;
1022 }
1023 .col-sm-push-7 {
1024 left: 58.33333333%;
1025 }
1026 .col-sm-push-6 {
1027 left: 50%;
1028 }
1029 .col-sm-push-5 {
1030 left: 41.66666667%;
1031 }
1032 .col-sm-push-4 {
1033 left: 33.33333333%;
1034 }
1035 .col-sm-push-3 {
1036 left: 25%;
1037 }
1038 .col-sm-push-2 {
1039 left: 16.66666667%;
1040 }
1041 .col-sm-push-1 {
1042 left: 8.33333333%;
1043 }
1044 .col-sm-push-0 {
1045 left: 0;
1046 }
1047 .col-sm-offset-12 {
1048 margin-left: 100%;
1049 }
1050 .col-sm-offset-11 {
1051 margin-left: 91.66666667%;
1052 }
1053 .col-sm-offset-10 {
1054 margin-left: 83.33333333%;
1055 }
1056 .col-sm-offset-9 {
1057 margin-left: 75%;
1058 }
1059 .col-sm-offset-8 {
1060 margin-left: 66.66666667%;
1061 }
1062 .col-sm-offset-7 {
1063 margin-left: 58.33333333%;
1064 }
1065 .col-sm-offset-6 {
1066 margin-left: 50%;
1067 }
1068 .col-sm-offset-5 {
1069 margin-left: 41.66666667%;
1070 }
1071 .col-sm-offset-4 {
1072 margin-left: 33.33333333%;
1073 }
1074 .col-sm-offset-3 {
1075 margin-left: 25%;
1076 }
1077 .col-sm-offset-2 {
1078 margin-left: 16.66666667%;
1079 }
1080 .col-sm-offset-1 {
1081 margin-left: 8.33333333%;
1082 }
1083 .col-sm-offset-0 {
1084 margin-left: 0;
1085 }
1086}
1087@media (min-width: 992px) {
1088 .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
1089 float: left;
1090 }
1091 .col-md-12 {
1092 width: 100%;
1093 }
1094 .col-md-11 {
1095 width: 91.66666667%;
1096 }
1097 .col-md-10 {
1098 width: 83.33333333%;
1099 }
1100 .col-md-9 {
1101 width: 75%;
1102 }
1103 .col-md-8 {
1104 width: 66.66666667%;
1105 }
1106 .col-md-7 {
1107 width: 58.33333333%;
1108 }
1109 .col-md-6 {
1110 width: 50%;
1111 }
1112 .col-md-5 {
1113 width: 41.66666667%;
1114 }
1115 .col-md-4 {
1116 width: 33.33333333%;
1117 }
1118 .col-md-3 {
1119 width: 25%;
1120 }
1121 .col-md-2 {
1122 width: 16.66666667%;
1123 }
1124 .col-md-1 {
1125 width: 8.33333333%;
1126 }
1127 .col-md-pull-12 {
1128 right: 100%;
1129 }
1130 .col-md-pull-11 {
1131 right: 91.66666667%;
1132 }
1133 .col-md-pull-10 {
1134 right: 83.33333333%;
1135 }
1136 .col-md-pull-9 {
1137 right: 75%;
1138 }
1139 .col-md-pull-8 {
1140 right: 66.66666667%;
1141 }
1142 .col-md-pull-7 {
1143 right: 58.33333333%;
1144 }
1145 .col-md-pull-6 {
1146 right: 50%;
1147 }
1148 .col-md-pull-5 {
1149 right: 41.66666667%;
1150 }
1151 .col-md-pull-4 {
1152 right: 33.33333333%;
1153 }
1154 .col-md-pull-3 {
1155 right: 25%;
1156 }
1157 .col-md-pull-2 {
1158 right: 16.66666667%;
1159 }
1160 .col-md-pull-1 {
1161 right: 8.33333333%;
1162 }
1163 .col-md-pull-0 {
1164 right: 0;
1165 }
1166 .col-md-push-12 {
1167 left: 100%;
1168 }
1169 .col-md-push-11 {
1170 left: 91.66666667%;
1171 }
1172 .col-md-push-10 {
1173 left: 83.33333333%;
1174 }
1175 .col-md-push-9 {
1176 left: 75%;
1177 }
1178 .col-md-push-8 {
1179 left: 66.66666667%;
1180 }
1181 .col-md-push-7 {
1182 left: 58.33333333%;
1183 }
1184 .col-md-push-6 {
1185 left: 50%;
1186 }
1187 .col-md-push-5 {
1188 left: 41.66666667%;
1189 }
1190 .col-md-push-4 {
1191 left: 33.33333333%;
1192 }
1193 .col-md-push-3 {
1194 left: 25%;
1195 }
1196 .col-md-push-2 {
1197 left: 16.66666667%;
1198 }
1199 .col-md-push-1 {
1200 left: 8.33333333%;
1201 }
1202 .col-md-push-0 {
1203 left: 0;
1204 }
1205 .col-md-offset-12 {
1206 margin-left: 100%;
1207 }
1208 .col-md-offset-11 {
1209 margin-left: 91.66666667%;
1210 }
1211 .col-md-offset-10 {
1212 margin-left: 83.33333333%;
1213 }
1214 .col-md-offset-9 {
1215 margin-left: 75%;
1216 }
1217 .col-md-offset-8 {
1218 margin-left: 66.66666667%;
1219 }
1220 .col-md-offset-7 {
1221 margin-left: 58.33333333%;
1222 }
1223 .col-md-offset-6 {
1224 margin-left: 50%;
1225 }
1226 .col-md-offset-5 {
1227 margin-left: 41.66666667%;
1228 }
1229 .col-md-offset-4 {
1230 margin-left: 33.33333333%;
1231 }
1232 .col-md-offset-3 {
1233 margin-left: 25%;
1234 }
1235 .col-md-offset-2 {
1236 margin-left: 16.66666667%;
1237 }
1238 .col-md-offset-1 {
1239 margin-left: 8.33333333%;
1240 }
1241 .col-md-offset-0 {
1242 margin-left: 0;
1243 }
1244}
1245@media (min-width: 1200px) {
1246 .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
1247 float: left;
1248 }
1249 .col-lg-12 {
1250 width: 100%;
1251 }
1252 .col-lg-11 {
1253 width: 91.66666667%;
1254 }
1255 .col-lg-10 {
1256 width: 83.33333333%;
1257 }
1258 .col-lg-9 {
1259 width: 75%;
1260 }
1261 .col-lg-8 {
1262 width: 66.66666667%;
1263 }
1264 .col-lg-7 {
1265 width: 58.33333333%;
1266 }
1267 .col-lg-6 {
1268 width: 50%;
1269 }
1270 .col-lg-5 {
1271 width: 41.66666667%;
1272 }
1273 .col-lg-4 {
1274 width: 33.33333333%;
1275 }
1276 .col-lg-3 {
1277 width: 25%;
1278 }
1279 .col-lg-2 {
1280 width: 16.66666667%;
1281 }
1282 .col-lg-1 {
1283 width: 8.33333333%;
1284 }
1285 .col-lg-pull-12 {
1286 right: 100%;
1287 }
1288 .col-lg-pull-11 {
1289 right: 91.66666667%;
1290 }
1291 .col-lg-pull-10 {
1292 right: 83.33333333%;
1293 }
1294 .col-lg-pull-9 {
1295 right: 75%;
1296 }
1297 .col-lg-pull-8 {
1298 right: 66.66666667%;
1299 }
1300 .col-lg-pull-7 {
1301 right: 58.33333333%;
1302 }
1303 .col-lg-pull-6 {
1304 right: 50%;
1305 }
1306 .col-lg-pull-5 {
1307 right: 41.66666667%;
1308 }
1309 .col-lg-pull-4 {
1310 right: 33.33333333%;
1311 }
1312 .col-lg-pull-3 {
1313 right: 25%;
1314 }
1315 .col-lg-pull-2 {
1316 right: 16.66666667%;
1317 }
1318 .col-lg-pull-1 {
1319 right: 8.33333333%;
1320 }
1321 .col-lg-pull-0 {
1322 right: 0;
1323 }
1324 .col-lg-push-12 {
1325 left: 100%;
1326 }
1327 .col-lg-push-11 {
1328 left: 91.66666667%;
1329 }
1330 .col-lg-push-10 {
1331 left: 83.33333333%;
1332 }
1333 .col-lg-push-9 {
1334 left: 75%;
1335 }
1336 .col-lg-push-8 {
1337 left: 66.66666667%;
1338 }
1339 .col-lg-push-7 {
1340 left: 58.33333333%;
1341 }
1342 .col-lg-push-6 {
1343 left: 50%;
1344 }
1345 .col-lg-push-5 {
1346 left: 41.66666667%;
1347 }
1348 .col-lg-push-4 {
1349 left: 33.33333333%;
1350 }
1351 .col-lg-push-3 {
1352 left: 25%;
1353 }
1354 .col-lg-push-2 {
1355 left: 16.66666667%;
1356 }
1357 .col-lg-push-1 {
1358 left: 8.33333333%;
1359 }
1360 .col-lg-push-0 {
1361 left: 0;
1362 }
1363 .col-lg-offset-12 {
1364 margin-left: 100%;
1365 }
1366 .col-lg-offset-11 {
1367 margin-left: 91.66666667%;
1368 }
1369 .col-lg-offset-10 {
1370 margin-left: 83.33333333%;
1371 }
1372 .col-lg-offset-9 {
1373 margin-left: 75%;
1374 }
1375 .col-lg-offset-8 {
1376 margin-left: 66.66666667%;
1377 }
1378 .col-lg-offset-7 {
1379 margin-left: 58.33333333%;
1380 }
1381 .col-lg-offset-6 {
1382 margin-left: 50%;
1383 }
1384 .col-lg-offset-5 {
1385 margin-left: 41.66666667%;
1386 }
1387 .col-lg-offset-4 {
1388 margin-left: 33.33333333%;
1389 }
1390 .col-lg-offset-3 {
1391 margin-left: 25%;
1392 }
1393 .col-lg-offset-2 {
1394 margin-left: 16.66666667%;
1395 }
1396 .col-lg-offset-1 {
1397 margin-left: 8.33333333%;
1398 }
1399 .col-lg-offset-0 {
1400 margin-left: 0;
1401 }
1402}
1403table {
1404 max-width: 100%;
1405 background-color: transparent;
1406}
1407th {
1408 text-align: left;
1409}
1410.table {
1411 width: 100%;
1412 margin-bottom: 20px;
1413}
1414.table > thead > tr > th,
1415.table > tbody > tr > th,
1416.table > tfoot > tr > th,
1417.table > thead > tr > td,
1418.table > tbody > tr > td,
1419.table > tfoot > tr > td {
1420 padding: 8px;
1421 line-height: 1.42857143;
1422 vertical-align: top;
1423 border-top: 1px solid #ddd;
1424}
1425.table > thead > tr > th {
1426 vertical-align: bottom;
1427 border-bottom: 2px solid #ddd;
1428}
1429.table > caption + thead > tr:first-child > th,
1430.table > colgroup + thead > tr:first-child > th,
1431.table > thead:first-child > tr:first-child > th,
1432.table > caption + thead > tr:first-child > td,
1433.table > colgroup + thead > tr:first-child > td,
1434.table > thead:first-child > tr:first-child > td {
1435 border-top: 0;
1436}
1437.table > tbody + tbody {
1438 border-top: 2px solid #ddd;
1439}
1440.table .table {
1441 background-color: #fff;
1442}
1443.table-condensed > thead > tr > th,
1444.table-condensed > tbody > tr > th,
1445.table-condensed > tfoot > tr > th,
1446.table-condensed > thead > tr > td,
1447.table-condensed > tbody > tr > td,
1448.table-condensed > tfoot > tr > td {
1449 padding: 5px;
1450}
1451.table-bordered {
1452 border: 1px solid #ddd;
1453}
1454.table-bordered > thead > tr > th,
1455.table-bordered > tbody > tr > th,
1456.table-bordered > tfoot > tr > th,
1457.table-bordered > thead > tr > td,
1458.table-bordered > tbody > tr > td,
1459.table-bordered > tfoot > tr > td {
1460 border: 1px solid #ddd;
1461}
1462.table-bordered > thead > tr > th,
1463.table-bordered > thead > tr > td {
1464 border-bottom-width: 2px;
1465}
1466.table-striped > tbody > tr:nth-child(odd) > td,
1467.table-striped > tbody > tr:nth-child(odd) > th {
1468 background-color: #f9f9f9;
1469}
1470.table-hover > tbody > tr:hover > td,
1471.table-hover > tbody > tr:hover > th {
1472 background-color: #f5f5f5;
1473}
1474table col[class*="col-"] {
1475 position: static;
1476 display: table-column;
1477 float: none;
1478}
1479table td[class*="col-"],
1480table th[class*="col-"] {
1481 position: static;
1482 display: table-cell;
1483 float: none;
1484}
1485.table > thead > tr > td.active,
1486.table > tbody > tr > td.active,
1487.table > tfoot > tr > td.active,
1488.table > thead > tr > th.active,
1489.table > tbody > tr > th.active,
1490.table > tfoot > tr > th.active,
1491.table > thead > tr.active > td,
1492.table > tbody > tr.active > td,
1493.table > tfoot > tr.active > td,
1494.table > thead > tr.active > th,
1495.table > tbody > tr.active > th,
1496.table > tfoot > tr.active > th {
1497 background-color: #f5f5f5;
1498}
1499.table-hover > tbody > tr > td.active:hover,
1500.table-hover > tbody > tr > th.active:hover,
1501.table-hover > tbody > tr.active:hover > td,
1502.table-hover > tbody > tr.active:hover > th {
1503 background-color: #e8e8e8;
1504}
1505.table > thead > tr > td.success,
1506.table > tbody > tr > td.success,
1507.table > tfoot > tr > td.success,
1508.table > thead > tr > th.success,
1509.table > tbody > tr > th.success,
1510.table > tfoot > tr > th.success,
1511.table > thead > tr.success > td,
1512.table > tbody > tr.success > td,
1513.table > tfoot > tr.success > td,
1514.table > thead > tr.success > th,
1515.table > tbody > tr.success > th,
1516.table > tfoot > tr.success > th {
1517 background-color: #dff0d8;
1518}
1519.table-hover > tbody > tr > td.success:hover,
1520.table-hover > tbody > tr > th.success:hover,
1521.table-hover > tbody > tr.success:hover > td,
1522.table-hover > tbody > tr.success:hover > th {
1523 background-color: #d0e9c6;
1524}
1525.table > thead > tr > td.info,
1526.table > tbody > tr > td.info,
1527.table > tfoot > tr > td.info,
1528.table > thead > tr > th.info,
1529.table > tbody > tr > th.info,
1530.table > tfoot > tr > th.info,
1531.table > thead > tr.info > td,
1532.table > tbody > tr.info > td,
1533.table > tfoot > tr.info > td,
1534.table > thead > tr.info > th,
1535.table > tbody > tr.info > th,
1536.table > tfoot > tr.info > th {
1537 background-color: #d9edf7;
1538}
1539.table-hover > tbody > tr > td.info:hover,
1540.table-hover > tbody > tr > th.info:hover,
1541.table-hover > tbody > tr.info:hover > td,
1542.table-hover > tbody > tr.info:hover > th {
1543 background-color: #c4e3f3;
1544}
1545.table > thead > tr > td.warning,
1546.table > tbody > tr > td.warning,
1547.table > tfoot > tr > td.warning,
1548.table > thead > tr > th.warning,
1549.table > tbody > tr > th.warning,
1550.table > tfoot > tr > th.warning,
1551.table > thead > tr.warning > td,
1552.table > tbody > tr.warning > td,
1553.table > tfoot > tr.warning > td,
1554.table > thead > tr.warning > th,
1555.table > tbody > tr.warning > th,
1556.table > tfoot > tr.warning > th {
1557 background-color: #fcf8e3;
1558}
1559.table-hover > tbody > tr > td.warning:hover,
1560.table-hover > tbody > tr > th.warning:hover,
1561.table-hover > tbody > tr.warning:hover > td,
1562.table-hover > tbody > tr.warning:hover > th {
1563 background-color: #faf2cc;
1564}
1565.table > thead > tr > td.danger,
1566.table > tbody > tr > td.danger,
1567.table > tfoot > tr > td.danger,
1568.table > thead > tr > th.danger,
1569.table > tbody > tr > th.danger,
1570.table > tfoot > tr > th.danger,
1571.table > thead > tr.danger > td,
1572.table > tbody > tr.danger > td,
1573.table > tfoot > tr.danger > td,
1574.table > thead > tr.danger > th,
1575.table > tbody > tr.danger > th,
1576.table > tfoot > tr.danger > th {
1577 background-color: #f2dede;
1578}
1579.table-hover > tbody > tr > td.danger:hover,
1580.table-hover > tbody > tr > th.danger:hover,
1581.table-hover > tbody > tr.danger:hover > td,
1582.table-hover > tbody > tr.danger:hover > th {
1583 background-color: #ebcccc;
1584}
1585@media (max-width: 767px) {
1586 .table-responsive {
1587 width: 100%;
1588 margin-bottom: 15px;
1589 overflow-x: scroll;
1590 overflow-y: hidden;
1591 -webkit-overflow-scrolling: touch;
1592 -ms-overflow-style: -ms-autohiding-scrollbar;
1593 border: 1px solid #ddd;
1594 }
1595 .table-responsive > .table {
1596 margin-bottom: 0;
1597 }
1598 .table-responsive > .table > thead > tr > th,
1599 .table-responsive > .table > tbody > tr > th,
1600 .table-responsive > .table > tfoot > tr > th,
1601 .table-responsive > .table > thead > tr > td,
1602 .table-responsive > .table > tbody > tr > td,
1603 .table-responsive > .table > tfoot > tr > td {
1604 white-space: nowrap;
1605 }
1606 .table-responsive > .table-bordered {
1607 border: 0;
1608 }
1609 .table-responsive > .table-bordered > thead > tr > th:first-child,
1610 .table-responsive > .table-bordered > tbody > tr > th:first-child,
1611 .table-responsive > .table-bordered > tfoot > tr > th:first-child,
1612 .table-responsive > .table-bordered > thead > tr > td:first-child,
1613 .table-responsive > .table-bordered > tbody > tr > td:first-child,
1614 .table-responsive > .table-bordered > tfoot > tr > td:first-child {
1615 border-left: 0;
1616 }
1617 .table-responsive > .table-bordered > thead > tr > th:last-child,
1618 .table-responsive > .table-bordered > tbody > tr > th:last-child,
1619 .table-responsive > .table-bordered > tfoot > tr > th:last-child,
1620 .table-responsive > .table-bordered > thead > tr > td:last-child,
1621 .table-responsive > .table-bordered > tbody > tr > td:last-child,
1622 .table-responsive > .table-bordered > tfoot > tr > td:last-child {
1623 border-right: 0;
1624 }
1625 .table-responsive > .table-bordered > tbody > tr:last-child > th,
1626 .table-responsive > .table-bordered > tfoot > tr:last-child > th,
1627 .table-responsive > .table-bordered > tbody > tr:last-child > td,
1628 .table-responsive > .table-bordered > tfoot > tr:last-child > td {
1629 border-bottom: 0;
1630 }
1631}
1632fieldset {
1633 min-width: 0;
1634 padding: 0;
1635 margin: 0;
1636 border: 0;
1637}
1638legend {
1639 display: block;
1640 width: 100%;
1641 padding: 0;
1642 margin-bottom: 20px;
1643 font-size: 21px;
1644 line-height: inherit;
1645 color: #333;
1646 border: 0;
1647 border-bottom: 1px solid #e5e5e5;
1648}
1649label {
1650 display: inline-block;
1651 margin-bottom: 5px;
1652 font-weight: bold;
1653}
1654input[type="search"] {
1655 -webkit-box-sizing: border-box;
1656 -moz-box-sizing: border-box;
1657 box-sizing: border-box;
1658}
1659input[type="radio"],
1660input[type="checkbox"] {
1661 margin: 4px 0 0;
1662 margin-top: 1px \9;
1663 /* IE8-9 */
1664 line-height: normal;
1665}
1666input[type="file"] {
1667 display: block;
1668}
1669input[type="range"] {
1670 display: block;
1671 width: 100%;
1672}
1673select[multiple],
1674select[size] {
1675 height: auto;
1676}
1677input[type="file"]:focus,
1678input[type="radio"]:focus,
1679input[type="checkbox"]:focus {
1680 outline: thin dotted;
1681 outline: 5px auto -webkit-focus-ring-color;
1682 outline-offset: -2px;
1683}
1684output {
1685 display: block;
1686 padding-top: 7px;
1687 font-size: 14px;
1688 line-height: 1.42857143;
1689 color: #555;
1690}
1691.form-control {
1692 display: block;
1693 width: 100%;
1694 height: 34px;
1695 padding: 6px 12px;
1696 font-size: 14px;
1697 line-height: 1.42857143;
1698 color: #555;
1699 background-color: #fff;
1700 background-image: none;
1701 border: 1px solid #ccc;
1702 border-radius: 4px;
1703 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1704 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1705 -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1706 transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1707}
1708.form-control:focus {
1709 border-color: #66afe9;
1710 outline: 0;
1711 -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
1712 box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
1713}
1714.form-control::-moz-placeholder {
1715 color: #999;
1716 opacity: 1;
1717}
1718.form-control:-ms-input-placeholder {
1719 color: #999;
1720}
1721.form-control::-webkit-input-placeholder {
1722 color: #999;
1723}
1724.form-control[disabled],
1725.form-control[readonly],
1726fieldset[disabled] .form-control {
1727 cursor: not-allowed;
1728 background-color: #eee;
1729 opacity: 1;
1730}
1731textarea.form-control {
1732 height: auto;
1733}
1734input[type="search"] {
1735 -webkit-appearance: none;
1736}
1737input[type="date"] {
1738 line-height: 34px;
1739}
1740.form-group {
1741 margin-bottom: 15px;
1742}
1743.radio,
1744.checkbox {
1745 display: block;
1746 min-height: 20px;
1747 padding-left: 20px;
1748 margin-top: 10px;
1749 margin-bottom: 10px;
1750}
1751.radio label,
1752.checkbox label {
1753 display: inline;
1754 font-weight: normal;
1755 cursor: pointer;
1756}
1757.radio input[type="radio"],
1758.radio-inline input[type="radio"],
1759.checkbox input[type="checkbox"],
1760.checkbox-inline input[type="checkbox"] {
1761 float: left;
1762 margin-left: -20px;
1763}
1764.radio + .radio,
1765.checkbox + .checkbox {
1766 margin-top: -5px;
1767}
1768.radio-inline,
1769.checkbox-inline {
1770 display: inline-block;
1771 padding-left: 20px;
1772 margin-bottom: 0;
1773 font-weight: normal;
1774 vertical-align: middle;
1775 cursor: pointer;
1776}
1777.radio-inline + .radio-inline,
1778.checkbox-inline + .checkbox-inline {
1779 margin-top: 0;
1780 margin-left: 10px;
1781}
1782input[type="radio"][disabled],
1783input[type="checkbox"][disabled],
1784.radio[disabled],
1785.radio-inline[disabled],
1786.checkbox[disabled],
1787.checkbox-inline[disabled],
1788fieldset[disabled] input[type="radio"],
1789fieldset[disabled] input[type="checkbox"],
1790fieldset[disabled] .radio,
1791fieldset[disabled] .radio-inline,
1792fieldset[disabled] .checkbox,
1793fieldset[disabled] .checkbox-inline {
1794 cursor: not-allowed;
1795}
1796.input-sm {
1797 height: 30px;
1798 padding: 5px 10px;
1799 font-size: 12px;
1800 line-height: 1.5;
1801 border-radius: 3px;
1802}
1803select.input-sm {
1804 height: 30px;
1805 line-height: 30px;
1806}
1807textarea.input-sm,
1808select[multiple].input-sm {
1809 height: auto;
1810}
1811.input-lg {
1812 height: 46px;
1813 padding: 10px 16px;
1814 font-size: 18px;
1815 line-height: 1.33;
1816 border-radius: 6px;
1817}
1818select.input-lg {
1819 height: 46px;
1820 line-height: 46px;
1821}
1822textarea.input-lg,
1823select[multiple].input-lg {
1824 height: auto;
1825}
1826.has-feedback {
1827 position: relative;
1828}
1829.has-feedback .form-control {
1830 padding-right: 42.5px;
1831}
1832.has-feedback .form-control-feedback {
1833 position: absolute;
1834 top: 25px;
1835 right: 0;
1836 display: block;
1837 width: 34px;
1838 height: 34px;
1839 line-height: 34px;
1840 text-align: center;
1841}
1842.has-success .help-block,
1843.has-success .control-label,
1844.has-success .radio,
1845.has-success .checkbox,
1846.has-success .radio-inline,
1847.has-success .checkbox-inline {
1848 color: #3c763d;
1849}
1850.has-success .form-control {
1851 border-color: #3c763d;
1852 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1853 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1854}
1855.has-success .form-control:focus {
1856 border-color: #2b542c;
1857 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
1858 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
1859}
1860.has-success .input-group-addon {
1861 color: #3c763d;
1862 background-color: #dff0d8;
1863 border-color: #3c763d;
1864}
1865.has-success .form-control-feedback {
1866 color: #3c763d;
1867}
1868.has-warning .help-block,
1869.has-warning .control-label,
1870.has-warning .radio,
1871.has-warning .checkbox,
1872.has-warning .radio-inline,
1873.has-warning .checkbox-inline {
1874 color: #8a6d3b;
1875}
1876.has-warning .form-control {
1877 border-color: #8a6d3b;
1878 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1879 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1880}
1881.has-warning .form-control:focus {
1882 border-color: #66512c;
1883 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
1884 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
1885}
1886.has-warning .input-group-addon {
1887 color: #8a6d3b;
1888 background-color: #fcf8e3;
1889 border-color: #8a6d3b;
1890}
1891.has-warning .form-control-feedback {
1892 color: #8a6d3b;
1893}
1894.has-error .help-block,
1895.has-error .control-label,
1896.has-error .radio,
1897.has-error .checkbox,
1898.has-error .radio-inline,
1899.has-error .checkbox-inline {
1900 color: #a94442;
1901}
1902.has-error .form-control {
1903 border-color: #a94442;
1904 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1905 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
1906}
1907.has-error .form-control:focus {
1908 border-color: #843534;
1909 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
1910 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
1911}
1912.has-error .input-group-addon {
1913 color: #a94442;
1914 background-color: #f2dede;
1915 border-color: #a94442;
1916}
1917.has-error .form-control-feedback {
1918 color: #a94442;
1919}
1920.form-control-static {
1921 margin-bottom: 0;
1922}
1923.help-block {
1924 display: block;
1925 margin-top: 5px;
1926 margin-bottom: 10px;
1927 color: #737373;
1928}
1929@media (min-width: 768px) {
1930 .form-inline .form-group {
1931 display: inline-block;
1932 margin-bottom: 0;
1933 vertical-align: middle;
1934 }
1935 .form-inline .form-control {
1936 display: inline-block;
1937 width: auto;
1938 vertical-align: middle;
1939 }
1940 .form-inline .input-group > .form-control {
1941 width: 100%;
1942 }
1943 .form-inline .control-label {
1944 margin-bottom: 0;
1945 vertical-align: middle;
1946 }
1947 .form-inline .radio,
1948 .form-inline .checkbox {
1949 display: inline-block;
1950 padding-left: 0;
1951 margin-top: 0;
1952 margin-bottom: 0;
1953 vertical-align: middle;
1954 }
1955 .form-inline .radio input[type="radio"],
1956 .form-inline .checkbox input[type="checkbox"] {
1957 float: none;
1958 margin-left: 0;
1959 }
1960 .form-inline .has-feedback .form-control-feedback {
1961 top: 0;
1962 }
1963}
1964.form-horizontal .control-label,
1965.form-horizontal .radio,
1966.form-horizontal .checkbox,
1967.form-horizontal .radio-inline,
1968.form-horizontal .checkbox-inline {
1969 padding-top: 7px;
1970 margin-top: 0;
1971 margin-bottom: 0;
1972}
1973.form-horizontal .radio,
1974.form-horizontal .checkbox {
1975 min-height: 27px;
1976}
1977.form-horizontal .form-group {
1978 margin-right: -15px;
1979 margin-left: -15px;
1980}
1981.form-horizontal .form-control-static {
1982 padding-top: 7px;
1983}
1984@media (min-width: 768px) {
1985 .form-horizontal .control-label {
1986 text-align: right;
1987 }
1988}
1989.form-horizontal .has-feedback .form-control-feedback {
1990 top: 0;
1991 right: 15px;
1992}
1993.btn {
1994 display: inline-block;
1995 padding: 6px 12px;
1996 margin-bottom: 0;
1997 font-size: 14px;
1998 font-weight: normal;
1999 line-height: 1.42857143;
2000 text-align: center;
2001 white-space: nowrap;
2002 vertical-align: middle;
2003 cursor: pointer;
2004 -webkit-user-select: none;
2005 -moz-user-select: none;
2006 -ms-user-select: none;
2007 user-select: none;
2008 background-image: none;
2009 border: 1px solid transparent;
2010 border-radius: 4px;
2011}
2012.btn:focus,
2013.btn:active:focus,
2014.btn.active:focus {
2015 outline: thin dotted;
2016 outline: 5px auto -webkit-focus-ring-color;
2017 outline-offset: -2px;
2018}
2019.btn:hover,
2020.btn:focus {
2021 color: #333;
2022 text-decoration: none;
2023}
2024.btn:active,
2025.btn.active {
2026 background-image: none;
2027 outline: 0;
2028 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
2029 box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
2030}
2031.btn.disabled,
2032.btn[disabled],
2033fieldset[disabled] .btn {
2034 pointer-events: none;
2035 cursor: not-allowed;
2036 filter: alpha(opacity=65);
2037 -webkit-box-shadow: none;
2038 box-shadow: none;
2039 opacity: .65;
2040}
2041.btn-default {
2042 color: #333;
2043 background-color: #fff;
2044 border-color: #ccc;
2045}
2046.btn-default:hover,
2047.btn-default:focus,
2048.btn-default:active,
2049.btn-default.active,
2050.open .dropdown-toggle.btn-default {
2051 color: #333;
2052 background-color: #ebebeb;
2053 border-color: #adadad;
2054}
2055.btn-default:active,
2056.btn-default.active,
2057.open .dropdown-toggle.btn-default {
2058 background-image: none;
2059}
2060.btn-default.disabled,
2061.btn-default[disabled],
2062fieldset[disabled] .btn-default,
2063.btn-default.disabled:hover,
2064.btn-default[disabled]:hover,
2065fieldset[disabled] .btn-default:hover,
2066.btn-default.disabled:focus,
2067.btn-default[disabled]:focus,
2068fieldset[disabled] .btn-default:focus,
2069.btn-default.disabled:active,
2070.btn-default[disabled]:active,
2071fieldset[disabled] .btn-default:active,
2072.btn-default.disabled.active,
2073.btn-default[disabled].active,
2074fieldset[disabled] .btn-default.active {
2075 background-color: #fff;
2076 border-color: #ccc;
2077}
2078.btn-default .badge {
2079 color: #fff;
2080 background-color: #333;
2081}
2082.btn-primary {
2083 color: #fff;
2084 background-color: #428bca;
2085 border-color: #357ebd;
2086}
2087.btn-primary:hover,
2088.btn-primary:focus,
2089.btn-primary:active,
2090.btn-primary.active,
2091.open .dropdown-toggle.btn-primary {
2092 color: #fff;
2093 background-color: #3276b1;
2094 border-color: #285e8e;
2095}
2096.btn-primary:active,
2097.btn-primary.active,
2098.open .dropdown-toggle.btn-primary {
2099 background-image: none;
2100}
2101.btn-primary.disabled,
2102.btn-primary[disabled],
2103fieldset[disabled] .btn-primary,
2104.btn-primary.disabled:hover,
2105.btn-primary[disabled]:hover,
2106fieldset[disabled] .btn-primary:hover,
2107.btn-primary.disabled:focus,
2108.btn-primary[disabled]:focus,
2109fieldset[disabled] .btn-primary:focus,
2110.btn-primary.disabled:active,
2111.btn-primary[disabled]:active,
2112fieldset[disabled] .btn-primary:active,
2113.btn-primary.disabled.active,
2114.btn-primary[disabled].active,
2115fieldset[disabled] .btn-primary.active {
2116 background-color: #428bca;
2117 border-color: #357ebd;
2118}
2119.btn-primary .badge {
2120 color: #428bca;
2121 background-color: #fff;
2122}
2123.btn-success {
2124 color: #fff;
2125 background-color: #5cb85c;
2126 border-color: #4cae4c;
2127}
2128.btn-success:hover,
2129.btn-success:focus,
2130.btn-success:active,
2131.btn-success.active,
2132.open .dropdown-toggle.btn-success {
2133 color: #fff;
2134 background-color: #47a447;
2135 border-color: #398439;
2136}
2137.btn-success:active,
2138.btn-success.active,
2139.open .dropdown-toggle.btn-success {
2140 background-image: none;
2141}
2142.btn-success.disabled,
2143.btn-success[disabled],
2144fieldset[disabled] .btn-success,
2145.btn-success.disabled:hover,
2146.btn-success[disabled]:hover,
2147fieldset[disabled] .btn-success:hover,
2148.btn-success.disabled:focus,
2149.btn-success[disabled]:focus,
2150fieldset[disabled] .btn-success:focus,
2151.btn-success.disabled:active,
2152.btn-success[disabled]:active,
2153fieldset[disabled] .btn-success:active,
2154.btn-success.disabled.active,
2155.btn-success[disabled].active,
2156fieldset[disabled] .btn-success.active {
2157 background-color: #5cb85c;
2158 border-color: #4cae4c;
2159}
2160.btn-success .badge {
2161 color: #5cb85c;
2162 background-color: #fff;
2163}
2164.btn-info {
2165 color: #fff;
2166 background-color: #5bc0de;
2167 border-color: #46b8da;
2168}
2169.btn-info:hover,
2170.btn-info:focus,
2171.btn-info:active,
2172.btn-info.active,
2173.open .dropdown-toggle.btn-info {
2174 color: #fff;
2175 background-color: #39b3d7;
2176 border-color: #269abc;
2177}
2178.btn-info:active,
2179.btn-info.active,
2180.open .dropdown-toggle.btn-info {
2181 background-image: none;
2182}
2183.btn-info.disabled,
2184.btn-info[disabled],
2185fieldset[disabled] .btn-info,
2186.btn-info.disabled:hover,
2187.btn-info[disabled]:hover,
2188fieldset[disabled] .btn-info:hover,
2189.btn-info.disabled:focus,
2190.btn-info[disabled]:focus,
2191fieldset[disabled] .btn-info:focus,
2192.btn-info.disabled:active,
2193.btn-info[disabled]:active,
2194fieldset[disabled] .btn-info:active,
2195.btn-info.disabled.active,
2196.btn-info[disabled].active,
2197fieldset[disabled] .btn-info.active {
2198 background-color: #5bc0de;
2199 border-color: #46b8da;
2200}
2201.btn-info .badge {
2202 color: #5bc0de;
2203 background-color: #fff;
2204}
2205.btn-warning {
2206 color: #fff;
2207 background-color: #f0ad4e;
2208 border-color: #eea236;
2209}
2210.btn-warning:hover,
2211.btn-warning:focus,
2212.btn-warning:active,
2213.btn-warning.active,
2214.open .dropdown-toggle.btn-warning {
2215 color: #fff;
2216 background-color: #ed9c28;
2217 border-color: #d58512;
2218}
2219.btn-warning:active,
2220.btn-warning.active,
2221.open .dropdown-toggle.btn-warning {
2222 background-image: none;
2223}
2224.btn-warning.disabled,
2225.btn-warning[disabled],
2226fieldset[disabled] .btn-warning,
2227.btn-warning.disabled:hover,
2228.btn-warning[disabled]:hover,
2229fieldset[disabled] .btn-warning:hover,
2230.btn-warning.disabled:focus,
2231.btn-warning[disabled]:focus,
2232fieldset[disabled] .btn-warning:focus,
2233.btn-warning.disabled:active,
2234.btn-warning[disabled]:active,
2235fieldset[disabled] .btn-warning:active,
2236.btn-warning.disabled.active,
2237.btn-warning[disabled].active,
2238fieldset[disabled] .btn-warning.active {
2239 background-color: #f0ad4e;
2240 border-color: #eea236;
2241}
2242.btn-warning .badge {
2243 color: #f0ad4e;
2244 background-color: #fff;
2245}
2246.btn-danger {
2247 color: #fff;
2248 background-color: #d9534f;
2249 border-color: #d43f3a;
2250}
2251.btn-danger:hover,
2252.btn-danger:focus,
2253.btn-danger:active,
2254.btn-danger.active,
2255.open .dropdown-toggle.btn-danger {
2256 color: #fff;
2257 background-color: #d2322d;
2258 border-color: #ac2925;
2259}
2260.btn-danger:active,
2261.btn-danger.active,
2262.open .dropdown-toggle.btn-danger {
2263 background-image: none;
2264}
2265.btn-danger.disabled,
2266.btn-danger[disabled],
2267fieldset[disabled] .btn-danger,
2268.btn-danger.disabled:hover,
2269.btn-danger[disabled]:hover,
2270fieldset[disabled] .btn-danger:hover,
2271.btn-danger.disabled:focus,
2272.btn-danger[disabled]:focus,
2273fieldset[disabled] .btn-danger:focus,
2274.btn-danger.disabled:active,
2275.btn-danger[disabled]:active,
2276fieldset[disabled] .btn-danger:active,
2277.btn-danger.disabled.active,
2278.btn-danger[disabled].active,
2279fieldset[disabled] .btn-danger.active {
2280 background-color: #d9534f;
2281 border-color: #d43f3a;
2282}
2283.btn-danger .badge {
2284 color: #d9534f;
2285 background-color: #fff;
2286}
2287.btn-link {
2288 font-weight: normal;
2289 color: #428bca;
2290 cursor: pointer;
2291 border-radius: 0;
2292}
2293.btn-link,
2294.btn-link:active,
2295.btn-link[disabled],
2296fieldset[disabled] .btn-link {
2297 background-color: transparent;
2298 -webkit-box-shadow: none;
2299 box-shadow: none;
2300}
2301.btn-link,
2302.btn-link:hover,
2303.btn-link:focus,
2304.btn-link:active {
2305 border-color: transparent;
2306}
2307.btn-link:hover,
2308.btn-link:focus {
2309 color: #2a6496;
2310 text-decoration: underline;
2311 background-color: transparent;
2312}
2313.btn-link[disabled]:hover,
2314fieldset[disabled] .btn-link:hover,
2315.btn-link[disabled]:focus,
2316fieldset[disabled] .btn-link:focus {
2317 color: #999;
2318 text-decoration: none;
2319}
2320.btn-lg,
2321.btn-group-lg > .btn {
2322 padding: 10px 16px;
2323 font-size: 18px;
2324 line-height: 1.33;
2325 border-radius: 6px;
2326}
2327.btn-sm,
2328.btn-group-sm > .btn {
2329 padding: 5px 10px;
2330 font-size: 12px;
2331 line-height: 1.5;
2332 border-radius: 3px;
2333}
2334.btn-xs,
2335.btn-group-xs > .btn {
2336 padding: 1px 5px;
2337 font-size: 12px;
2338 line-height: 1.5;
2339 border-radius: 3px;
2340}
2341.btn-block {
2342 display: block;
2343 width: 100%;
2344 padding-right: 0;
2345 padding-left: 0;
2346}
2347.btn-block + .btn-block {
2348 margin-top: 5px;
2349}
2350input[type="submit"].btn-block,
2351input[type="reset"].btn-block,
2352input[type="button"].btn-block {
2353 width: 100%;
2354}
2355.fade {
2356 opacity: 0;
2357 -webkit-transition: opacity .15s linear;
2358 transition: opacity .15s linear;
2359}
2360.fade.in {
2361 opacity: 1;
2362}
2363.collapse {
2364 display: none;
2365}
2366.collapse.in {
2367 display: block;
2368}
2369.collapsing {
2370 position: relative;
2371 height: 0;
2372 overflow: hidden;
2373 -webkit-transition: height .35s ease;
2374 transition: height .35s ease;
2375}
2376@font-face {
2377 font-family: 'Glyphicons Halflings';
2378
2379 src: url('../fonts/glyphicons-halflings-regular.eot');
2380 src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
2381}
2382.glyphicon {
2383 position: relative;
2384 top: 1px;
2385 display: inline-block;
2386 font-family: 'Glyphicons Halflings';
2387 font-style: normal;
2388 font-weight: normal;
2389 line-height: 1;
2390
2391 -webkit-font-smoothing: antialiased;
2392 -moz-osx-font-smoothing: grayscale;
2393}
2394.glyphicon-asterisk:before {
2395 content: "\2a";
2396}
2397.glyphicon-plus:before {
2398 content: "\2b";
2399}
2400.glyphicon-euro:before {
2401 content: "\20ac";
2402}
2403.glyphicon-minus:before {
2404 content: "\2212";
2405}
2406.glyphicon-cloud:before {
2407 content: "\2601";
2408}
2409.glyphicon-envelope:before {
2410 content: "\2709";
2411}
2412.glyphicon-pencil:before {
2413 content: "\270f";
2414}
2415.glyphicon-glass:before {
2416 content: "\e001";
2417}
2418.glyphicon-music:before {
2419 content: "\e002";
2420}
2421.glyphicon-search:before {
2422 content: "\e003";
2423}
2424.glyphicon-heart:before {
2425 content: "\e005";
2426}
2427.glyphicon-star:before {
2428 content: "\e006";
2429}
2430.glyphicon-star-empty:before {
2431 content: "\e007";
2432}
2433.glyphicon-user:before {
2434 content: "\e008";
2435}
2436.glyphicon-film:before {
2437 content: "\e009";
2438}
2439.glyphicon-th-large:before {
2440 content: "\e010";
2441}
2442.glyphicon-th:before {
2443 content: "\e011";
2444}
2445.glyphicon-th-list:before {
2446 content: "\e012";
2447}
2448.glyphicon-ok:before {
2449 content: "\e013";
2450}
2451.glyphicon-remove:before {
2452 content: "\e014";
2453}
2454.glyphicon-zoom-in:before {
2455 content: "\e015";
2456}
2457.glyphicon-zoom-out:before {
2458 content: "\e016";
2459}
2460.glyphicon-off:before {
2461 content: "\e017";
2462}
2463.glyphicon-signal:before {
2464 content: "\e018";
2465}
2466.glyphicon-cog:before {
2467 content: "\e019";
2468}
2469.glyphicon-trash:before {
2470 content: "\e020";
2471}
2472.glyphicon-home:before {
2473 content: "\e021";
2474}
2475.glyphicon-file:before {
2476 content: "\e022";
2477}
2478.glyphicon-time:before {
2479 content: "\e023";
2480}
2481.glyphicon-road:before {
2482 content: "\e024";
2483}
2484.glyphicon-download-alt:before {
2485 content: "\e025";
2486}
2487.glyphicon-download:before {
2488 content: "\e026";
2489}
2490.glyphicon-upload:before {
2491 content: "\e027";
2492}
2493.glyphicon-inbox:before {
2494 content: "\e028";
2495}
2496.glyphicon-play-circle:before {
2497 content: "\e029";
2498}
2499.glyphicon-repeat:before {
2500 content: "\e030";
2501}
2502.glyphicon-refresh:before {
2503 content: "\e031";
2504}
2505.glyphicon-list-alt:before {
2506 content: "\e032";
2507}
2508.glyphicon-lock:before {
2509 content: "\e033";
2510}
2511.glyphicon-flag:before {
2512 content: "\e034";
2513}
2514.glyphicon-headphones:before {
2515 content: "\e035";
2516}
2517.glyphicon-volume-off:before {
2518 content: "\e036";
2519}
2520.glyphicon-volume-down:before {
2521 content: "\e037";
2522}
2523.glyphicon-volume-up:before {
2524 content: "\e038";
2525}
2526.glyphicon-qrcode:before {
2527 content: "\e039";
2528}
2529.glyphicon-barcode:before {
2530 content: "\e040";
2531}
2532.glyphicon-tag:before {
2533 content: "\e041";
2534}
2535.glyphicon-tags:before {
2536 content: "\e042";
2537}
2538.glyphicon-book:before {
2539 content: "\e043";
2540}
2541.glyphicon-bookmark:before {
2542 content: "\e044";
2543}
2544.glyphicon-print:before {
2545 content: "\e045";
2546}
2547.glyphicon-camera:before {
2548 content: "\e046";
2549}
2550.glyphicon-font:before {
2551 content: "\e047";
2552}
2553.glyphicon-bold:before {
2554 content: "\e048";
2555}
2556.glyphicon-italic:before {
2557 content: "\e049";
2558}
2559.glyphicon-text-height:before {
2560 content: "\e050";
2561}
2562.glyphicon-text-width:before {
2563 content: "\e051";
2564}
2565.glyphicon-align-left:before {
2566 content: "\e052";
2567}
2568.glyphicon-align-center:before {
2569 content: "\e053";
2570}
2571.glyphicon-align-right:before {
2572 content: "\e054";
2573}
2574.glyphicon-align-justify:before {
2575 content: "\e055";
2576}
2577.glyphicon-list:before {
2578 content: "\e056";
2579}
2580.glyphicon-indent-left:before {
2581 content: "\e057";
2582}
2583.glyphicon-indent-right:before {
2584 content: "\e058";
2585}
2586.glyphicon-facetime-video:before {
2587 content: "\e059";
2588}
2589.glyphicon-picture:before {
2590 content: "\e060";
2591}
2592.glyphicon-map-marker:before {
2593 content: "\e062";
2594}
2595.glyphicon-adjust:before {
2596 content: "\e063";
2597}
2598.glyphicon-tint:before {
2599 content: "\e064";
2600}
2601.glyphicon-edit:before {
2602 content: "\e065";
2603}
2604.glyphicon-share:before {
2605 content: "\e066";
2606}
2607.glyphicon-check:before {
2608 content: "\e067";
2609}
2610.glyphicon-move:before {
2611 content: "\e068";
2612}
2613.glyphicon-step-backward:before {
2614 content: "\e069";
2615}
2616.glyphicon-fast-backward:before {
2617 content: "\e070";
2618}
2619.glyphicon-backward:before {
2620 content: "\e071";
2621}
2622.glyphicon-play:before {
2623 content: "\e072";
2624}
2625.glyphicon-pause:before {
2626 content: "\e073";
2627}
2628.glyphicon-stop:before {
2629 content: "\e074";
2630}
2631.glyphicon-forward:before {
2632 content: "\e075";
2633}
2634.glyphicon-fast-forward:before {
2635 content: "\e076";
2636}
2637.glyphicon-step-forward:before {
2638 content: "\e077";
2639}
2640.glyphicon-eject:before {
2641 content: "\e078";
2642}
2643.glyphicon-chevron-left:before {
2644 content: "\e079";
2645}
2646.glyphicon-chevron-right:before {
2647 content: "\e080";
2648}
2649.glyphicon-plus-sign:before {
2650 content: "\e081";
2651}
2652.glyphicon-minus-sign:before {
2653 content: "\e082";
2654}
2655.glyphicon-remove-sign:before {
2656 content: "\e083";
2657}
2658.glyphicon-ok-sign:before {
2659 content: "\e084";
2660}
2661.glyphicon-question-sign:before {
2662 content: "\e085";
2663}
2664.glyphicon-info-sign:before {
2665 content: "\e086";
2666}
2667.glyphicon-screenshot:before {
2668 content: "\e087";
2669}
2670.glyphicon-remove-circle:before {
2671 content: "\e088";
2672}
2673.glyphicon-ok-circle:before {
2674 content: "\e089";
2675}
2676.glyphicon-ban-circle:before {
2677 content: "\e090";
2678}
2679.glyphicon-arrow-left:before {
2680 content: "\e091";
2681}
2682.glyphicon-arrow-right:before {
2683 content: "\e092";
2684}
2685.glyphicon-arrow-up:before {
2686 content: "\e093";
2687}
2688.glyphicon-arrow-down:before {
2689 content: "\e094";
2690}
2691.glyphicon-share-alt:before {
2692 content: "\e095";
2693}
2694.glyphicon-resize-full:before {
2695 content: "\e096";
2696}
2697.glyphicon-resize-small:before {
2698 content: "\e097";
2699}
2700.glyphicon-exclamation-sign:before {
2701 content: "\e101";
2702}
2703.glyphicon-gift:before {
2704 content: "\e102";
2705}
2706.glyphicon-leaf:before {
2707 content: "\e103";
2708}
2709.glyphicon-fire:before {
2710 content: "\e104";
2711}
2712.glyphicon-eye-open:before {
2713 content: "\e105";
2714}
2715.glyphicon-eye-close:before {
2716 content: "\e106";
2717}
2718.glyphicon-warning-sign:before {
2719 content: "\e107";
2720}
2721.glyphicon-plane:before {
2722 content: "\e108";
2723}
2724.glyphicon-calendar:before {
2725 content: "\e109";
2726}
2727.glyphicon-random:before {
2728 content: "\e110";
2729}
2730.glyphicon-comment:before {
2731 content: "\e111";
2732}
2733.glyphicon-magnet:before {
2734 content: "\e112";
2735}
2736.glyphicon-chevron-up:before {
2737 content: "\e113";
2738}
2739.glyphicon-chevron-down:before {
2740 content: "\e114";
2741}
2742.glyphicon-retweet:before {
2743 content: "\e115";
2744}
2745.glyphicon-shopping-cart:before {
2746 content: "\e116";
2747}
2748.glyphicon-folder-close:before {
2749 content: "\e117";
2750}
2751.glyphicon-folder-open:before {
2752 content: "\e118";
2753}
2754.glyphicon-resize-vertical:before {
2755 content: "\e119";
2756}
2757.glyphicon-resize-horizontal:before {
2758 content: "\e120";
2759}
2760.glyphicon-hdd:before {
2761 content: "\e121";
2762}
2763.glyphicon-bullhorn:before {
2764 content: "\e122";
2765}
2766.glyphicon-bell:before {
2767 content: "\e123";
2768}
2769.glyphicon-certificate:before {
2770 content: "\e124";
2771}
2772.glyphicon-thumbs-up:before {
2773 content: "\e125";
2774}
2775.glyphicon-thumbs-down:before {
2776 content: "\e126";
2777}
2778.glyphicon-hand-right:before {
2779 content: "\e127";
2780}
2781.glyphicon-hand-left:before {
2782 content: "\e128";
2783}
2784.glyphicon-hand-up:before {
2785 content: "\e129";
2786}
2787.glyphicon-hand-down:before {
2788 content: "\e130";
2789}
2790.glyphicon-circle-arrow-right:before {
2791 content: "\e131";
2792}
2793.glyphicon-circle-arrow-left:before {
2794 content: "\e132";
2795}
2796.glyphicon-circle-arrow-up:before {
2797 content: "\e133";
2798}
2799.glyphicon-circle-arrow-down:before {
2800 content: "\e134";
2801}
2802.glyphicon-globe:before {
2803 content: "\e135";
2804}
2805.glyphicon-wrench:before {
2806 content: "\e136";
2807}
2808.glyphicon-tasks:before {
2809 content: "\e137";
2810}
2811.glyphicon-filter:before {
2812 content: "\e138";
2813}
2814.glyphicon-briefcase:before {
2815 content: "\e139";
2816}
2817.glyphicon-fullscreen:before {
2818 content: "\e140";
2819}
2820.glyphicon-dashboard:before {
2821 content: "\e141";
2822}
2823.glyphicon-paperclip:before {
2824 content: "\e142";
2825}
2826.glyphicon-heart-empty:before {
2827 content: "\e143";
2828}
2829.glyphicon-link:before {
2830 content: "\e144";
2831}
2832.glyphicon-phone:before {
2833 content: "\e145";
2834}
2835.glyphicon-pushpin:before {
2836 content: "\e146";
2837}
2838.glyphicon-usd:before {
2839 content: "\e148";
2840}
2841.glyphicon-gbp:before {
2842 content: "\e149";
2843}
2844.glyphicon-sort:before {
2845 content: "\e150";
2846}
2847.glyphicon-sort-by-alphabet:before {
2848 content: "\e151";
2849}
2850.glyphicon-sort-by-alphabet-alt:before {
2851 content: "\e152";
2852}
2853.glyphicon-sort-by-order:before {
2854 content: "\e153";
2855}
2856.glyphicon-sort-by-order-alt:before {
2857 content: "\e154";
2858}
2859.glyphicon-sort-by-attributes:before {
2860 content: "\e155";
2861}
2862.glyphicon-sort-by-attributes-alt:before {
2863 content: "\e156";
2864}
2865.glyphicon-unchecked:before {
2866 content: "\e157";
2867}
2868.glyphicon-expand:before {
2869 content: "\e158";
2870}
2871.glyphicon-collapse-down:before {
2872 content: "\e159";
2873}
2874.glyphicon-collapse-up:before {
2875 content: "\e160";
2876}
2877.glyphicon-log-in:before {
2878 content: "\e161";
2879}
2880.glyphicon-flash:before {
2881 content: "\e162";
2882}
2883.glyphicon-log-out:before {
2884 content: "\e163";
2885}
2886.glyphicon-new-window:before {
2887 content: "\e164";
2888}
2889.glyphicon-record:before {
2890 content: "\e165";
2891}
2892.glyphicon-save:before {
2893 content: "\e166";
2894}
2895.glyphicon-open:before {
2896 content: "\e167";
2897}
2898.glyphicon-saved:before {
2899 content: "\e168";
2900}
2901.glyphicon-import:before {
2902 content: "\e169";
2903}
2904.glyphicon-export:before {
2905 content: "\e170";
2906}
2907.glyphicon-send:before {
2908 content: "\e171";
2909}
2910.glyphicon-floppy-disk:before {
2911 content: "\e172";
2912}
2913.glyphicon-floppy-saved:before {
2914 content: "\e173";
2915}
2916.glyphicon-floppy-remove:before {
2917 content: "\e174";
2918}
2919.glyphicon-floppy-save:before {
2920 content: "\e175";
2921}
2922.glyphicon-floppy-open:before {
2923 content: "\e176";
2924}
2925.glyphicon-credit-card:before {
2926 content: "\e177";
2927}
2928.glyphicon-transfer:before {
2929 content: "\e178";
2930}
2931.glyphicon-cutlery:before {
2932 content: "\e179";
2933}
2934.glyphicon-header:before {
2935 content: "\e180";
2936}
2937.glyphicon-compressed:before {
2938 content: "\e181";
2939}
2940.glyphicon-earphone:before {
2941 content: "\e182";
2942}
2943.glyphicon-phone-alt:before {
2944 content: "\e183";
2945}
2946.glyphicon-tower:before {
2947 content: "\e184";
2948}
2949.glyphicon-stats:before {
2950 content: "\e185";
2951}
2952.glyphicon-sd-video:before {
2953 content: "\e186";
2954}
2955.glyphicon-hd-video:before {
2956 content: "\e187";
2957}
2958.glyphicon-subtitles:before {
2959 content: "\e188";
2960}
2961.glyphicon-sound-stereo:before {
2962 content: "\e189";
2963}
2964.glyphicon-sound-dolby:before {
2965 content: "\e190";
2966}
2967.glyphicon-sound-5-1:before {
2968 content: "\e191";
2969}
2970.glyphicon-sound-6-1:before {
2971 content: "\e192";
2972}
2973.glyphicon-sound-7-1:before {
2974 content: "\e193";
2975}
2976.glyphicon-copyright-mark:before {
2977 content: "\e194";
2978}
2979.glyphicon-registration-mark:before {
2980 content: "\e195";
2981}
2982.glyphicon-cloud-download:before {
2983 content: "\e197";
2984}
2985.glyphicon-cloud-upload:before {
2986 content: "\e198";
2987}
2988.glyphicon-tree-conifer:before {
2989 content: "\e199";
2990}
2991.glyphicon-tree-deciduous:before {
2992 content: "\e200";
2993}
2994.caret {
2995 display: inline-block;
2996 width: 0;
2997 height: 0;
2998 margin-left: 2px;
2999 vertical-align: middle;
3000 border-top: 4px solid;
3001 border-right: 4px solid transparent;
3002 border-left: 4px solid transparent;
3003}
3004.dropdown {
3005 position: relative;
3006}
3007.dropdown-toggle:focus {
3008 outline: 0;
3009}
3010.dropdown-menu {
3011 position: absolute;
3012 top: 100%;
3013 left: 0;
3014 z-index: 1000;
3015 display: none;
3016 float: left;
3017 min-width: 160px;
3018 padding: 5px 0;
3019 margin: 2px 0 0;
3020 font-size: 14px;
3021 list-style: none;
3022 background-color: #fff;
3023 background-clip: padding-box;
3024 border: 1px solid #ccc;
3025 border: 1px solid rgba(0, 0, 0, .15);
3026 border-radius: 4px;
3027 -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
3028 box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
3029}
3030.dropdown-menu.pull-right {
3031 right: 0;
3032 left: auto;
3033}
3034.dropdown-menu .divider {
3035 height: 1px;
3036 margin: 9px 0;
3037 overflow: hidden;
3038 background-color: #e5e5e5;
3039}
3040.dropdown-menu > li > a {
3041 display: block;
3042 padding: 3px 20px;
3043 clear: both;
3044 font-weight: normal;
3045 line-height: 1.42857143;
3046 color: #333;
3047 white-space: nowrap;
3048}
3049.dropdown-menu > li > a:hover,
3050.dropdown-menu > li > a:focus {
3051 color: #262626;
3052 text-decoration: none;
3053 background-color: #f5f5f5;
3054}
3055.dropdown-menu > .active > a,
3056.dropdown-menu > .active > a:hover,
3057.dropdown-menu > .active > a:focus {
3058 color: #fff;
3059 text-decoration: none;
3060 background-color: #428bca;
3061 outline: 0;
3062}
3063.dropdown-menu > .disabled > a,
3064.dropdown-menu > .disabled > a:hover,
3065.dropdown-menu > .disabled > a:focus {
3066 color: #999;
3067}
3068.dropdown-menu > .disabled > a:hover,
3069.dropdown-menu > .disabled > a:focus {
3070 text-decoration: none;
3071 cursor: not-allowed;
3072 background-color: transparent;
3073 background-image: none;
3074 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
3075}
3076.open > .dropdown-menu {
3077 display: block;
3078}
3079.open > a {
3080 outline: 0;
3081}
3082.dropdown-menu-right {
3083 right: 0;
3084 left: auto;
3085}
3086.dropdown-menu-left {
3087 right: auto;
3088 left: 0;
3089}
3090.dropdown-header {
3091 display: block;
3092 padding: 3px 20px;
3093 font-size: 12px;
3094 line-height: 1.42857143;
3095 color: #999;
3096}
3097.dropdown-backdrop {
3098 position: fixed;
3099 top: 0;
3100 right: 0;
3101 bottom: 0;
3102 left: 0;
3103 z-index: 990;
3104}
3105.pull-right > .dropdown-menu {
3106 right: 0;
3107 left: auto;
3108}
3109.dropup .caret,
3110.navbar-fixed-bottom .dropdown .caret {
3111 content: "";
3112 border-top: 0;
3113 border-bottom: 4px solid;
3114}
3115.dropup .dropdown-menu,
3116.navbar-fixed-bottom .dropdown .dropdown-menu {
3117 top: auto;
3118 bottom: 100%;
3119 margin-bottom: 1px;
3120}
3121@media (min-width: 768px) {
3122 .navbar-right .dropdown-menu {
3123 right: 0;
3124 left: auto;
3125 }
3126 .navbar-right .dropdown-menu-left {
3127 right: auto;
3128 left: 0;
3129 }
3130}
3131.btn-group,
3132.btn-group-vertical {
3133 position: relative;
3134 display: inline-block;
3135 vertical-align: middle;
3136}
3137.btn-group > .btn,
3138.btn-group-vertical > .btn {
3139 position: relative;
3140 float: left;
3141}
3142.btn-group > .btn:hover,
3143.btn-group-vertical > .btn:hover,
3144.btn-group > .btn:focus,
3145.btn-group-vertical > .btn:focus,
3146.btn-group > .btn:active,
3147.btn-group-vertical > .btn:active,
3148.btn-group > .btn.active,
3149.btn-group-vertical > .btn.active {
3150 z-index: 2;
3151}
3152.btn-group > .btn:focus,
3153.btn-group-vertical > .btn:focus {
3154 outline: none;
3155}
3156.btn-group .btn + .btn,
3157.btn-group .btn + .btn-group,
3158.btn-group .btn-group + .btn,
3159.btn-group .btn-group + .btn-group {
3160 margin-left: -1px;
3161}
3162.btn-toolbar {
3163 margin-left: -5px;
3164}
3165.btn-toolbar .btn-group,
3166.btn-toolbar .input-group {
3167 float: left;
3168}
3169.btn-toolbar > .btn,
3170.btn-toolbar > .btn-group,
3171.btn-toolbar > .input-group {
3172 margin-left: 5px;
3173}
3174.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3175 border-radius: 0;
3176}
3177.btn-group > .btn:first-child {
3178 margin-left: 0;
3179}
3180.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3181 border-top-right-radius: 0;
3182 border-bottom-right-radius: 0;
3183}
3184.btn-group > .btn:last-child:not(:first-child),
3185.btn-group > .dropdown-toggle:not(:first-child) {
3186 border-top-left-radius: 0;
3187 border-bottom-left-radius: 0;
3188}
3189.btn-group > .btn-group {
3190 float: left;
3191}
3192.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3193 border-radius: 0;
3194}
3195.btn-group > .btn-group:first-child > .btn:last-child,
3196.btn-group > .btn-group:first-child > .dropdown-toggle {
3197 border-top-right-radius: 0;
3198 border-bottom-right-radius: 0;
3199}
3200.btn-group > .btn-group:last-child > .btn:first-child {
3201 border-top-left-radius: 0;
3202 border-bottom-left-radius: 0;
3203}
3204.btn-group .dropdown-toggle:active,
3205.btn-group.open .dropdown-toggle {
3206 outline: 0;
3207}
3208.btn-group > .btn + .dropdown-toggle {
3209 padding-right: 8px;
3210 padding-left: 8px;
3211}
3212.btn-group > .btn-lg + .dropdown-toggle {
3213 padding-right: 12px;
3214 padding-left: 12px;
3215}
3216.btn-group.open .dropdown-toggle {
3217 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3218 box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
3219}
3220.btn-group.open .dropdown-toggle.btn-link {
3221 -webkit-box-shadow: none;
3222 box-shadow: none;
3223}
3224.btn .caret {
3225 margin-left: 0;
3226}
3227.btn-lg .caret {
3228 border-width: 5px 5px 0;
3229 border-bottom-width: 0;
3230}
3231.dropup .btn-lg .caret {
3232 border-width: 0 5px 5px;
3233}
3234.btn-group-vertical > .btn,
3235.btn-group-vertical > .btn-group,
3236.btn-group-vertical > .btn-group > .btn {
3237 display: block;
3238 float: none;
3239 width: 100%;
3240 max-width: 100%;
3241}
3242.btn-group-vertical > .btn-group > .btn {
3243 float: none;
3244}
3245.btn-group-vertical > .btn + .btn,
3246.btn-group-vertical > .btn + .btn-group,
3247.btn-group-vertical > .btn-group + .btn,
3248.btn-group-vertical > .btn-group + .btn-group {
3249 margin-top: -1px;
3250 margin-left: 0;
3251}
3252.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3253 border-radius: 0;
3254}
3255.btn-group-vertical > .btn:first-child:not(:last-child) {
3256 border-top-right-radius: 4px;
3257 border-bottom-right-radius: 0;
3258 border-bottom-left-radius: 0;
3259}
3260.btn-group-vertical > .btn:last-child:not(:first-child) {
3261 border-top-left-radius: 0;
3262 border-top-right-radius: 0;
3263 border-bottom-left-radius: 4px;
3264}
3265.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3266 border-radius: 0;
3267}
3268.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
3269.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3270 border-bottom-right-radius: 0;
3271 border-bottom-left-radius: 0;
3272}
3273.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
3274 border-top-left-radius: 0;
3275 border-top-right-radius: 0;
3276}
3277.btn-group-justified {
3278 display: table;
3279 width: 100%;
3280 table-layout: fixed;
3281 border-collapse: separate;
3282}
3283.btn-group-justified > .btn,
3284.btn-group-justified > .btn-group {
3285 display: table-cell;
3286 float: none;
3287 width: 1%;
3288}
3289.btn-group-justified > .btn-group .btn {
3290 width: 100%;
3291}
3292[data-toggle="buttons"] > .btn > input[type="radio"],
3293[data-toggle="buttons"] > .btn > input[type="checkbox"] {
3294 display: none;
3295}
3296.input-group {
3297 position: relative;
3298 display: table;
3299 border-collapse: separate;
3300}
3301.input-group[class*="col-"] {
3302 float: none;
3303 padding-right: 0;
3304 padding-left: 0;
3305}
3306.input-group .form-control {
3307 position: relative;
3308 z-index: 2;
3309 float: left;
3310 width: 100%;
3311 margin-bottom: 0;
3312}
3313.input-group-lg > .form-control,
3314.input-group-lg > .input-group-addon,
3315.input-group-lg > .input-group-btn > .btn {
3316 height: 46px;
3317 padding: 10px 16px;
3318 font-size: 18px;
3319 line-height: 1.33;
3320 border-radius: 6px;
3321}
3322select.input-group-lg > .form-control,
3323select.input-group-lg > .input-group-addon,
3324select.input-group-lg > .input-group-btn > .btn {
3325 height: 46px;
3326 line-height: 46px;
3327}
3328textarea.input-group-lg > .form-control,
3329textarea.input-group-lg > .input-group-addon,
3330textarea.input-group-lg > .input-group-btn > .btn,
3331select[multiple].input-group-lg > .form-control,
3332select[multiple].input-group-lg > .input-group-addon,
3333select[multiple].input-group-lg > .input-group-btn > .btn {
3334 height: auto;
3335}
3336.input-group-sm > .form-control,
3337.input-group-sm > .input-group-addon,
3338.input-group-sm > .input-group-btn > .btn {
3339 height: 30px;
3340 padding: 5px 10px;
3341 font-size: 12px;
3342 line-height: 1.5;
3343 border-radius: 3px;
3344}
3345select.input-group-sm > .form-control,
3346select.input-group-sm > .input-group-addon,
3347select.input-group-sm > .input-group-btn > .btn {
3348 height: 30px;
3349 line-height: 30px;
3350}
3351textarea.input-group-sm > .form-control,
3352textarea.input-group-sm > .input-group-addon,
3353textarea.input-group-sm > .input-group-btn > .btn,
3354select[multiple].input-group-sm > .form-control,
3355select[multiple].input-group-sm > .input-group-addon,
3356select[multiple].input-group-sm > .input-group-btn > .btn {
3357 height: auto;
3358}
3359.input-group-addon,
3360.input-group-btn,
3361.input-group .form-control {
3362 display: table-cell;
3363}
3364.input-group-addon:not(:first-child):not(:last-child),
3365.input-group-btn:not(:first-child):not(:last-child),
3366.input-group .form-control:not(:first-child):not(:last-child) {
3367 border-radius: 0;
3368}
3369.input-group-addon,
3370.input-group-btn {
3371 width: 1%;
3372 white-space: nowrap;
3373 vertical-align: middle;
3374}
3375.input-group-addon {
3376 padding: 6px 12px;
3377 font-size: 14px;
3378 font-weight: normal;
3379 line-height: 1;
3380 color: #555;
3381 text-align: center;
3382 background-color: #eee;
3383 border: 1px solid #ccc;
3384 border-radius: 4px;
3385}
3386.input-group-addon.input-sm {
3387 padding: 5px 10px;
3388 font-size: 12px;
3389 border-radius: 3px;
3390}
3391.input-group-addon.input-lg {
3392 padding: 10px 16px;
3393 font-size: 18px;
3394 border-radius: 6px;
3395}
3396.input-group-addon input[type="radio"],
3397.input-group-addon input[type="checkbox"] {
3398 margin-top: 0;
3399}
3400.input-group .form-control:first-child,
3401.input-group-addon:first-child,
3402.input-group-btn:first-child > .btn,
3403.input-group-btn:first-child > .btn-group > .btn,
3404.input-group-btn:first-child > .dropdown-toggle,
3405.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
3406.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
3407 border-top-right-radius: 0;
3408 border-bottom-right-radius: 0;
3409}
3410.input-group-addon:first-child {
3411 border-right: 0;
3412}
3413.input-group .form-control:last-child,
3414.input-group-addon:last-child,
3415.input-group-btn:last-child > .btn,
3416.input-group-btn:last-child > .btn-group > .btn,
3417.input-group-btn:last-child > .dropdown-toggle,
3418.input-group-btn:first-child > .btn:not(:first-child),
3419.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
3420 border-top-left-radius: 0;
3421 border-bottom-left-radius: 0;
3422}
3423.input-group-addon:last-child {
3424 border-left: 0;
3425}
3426.input-group-btn {
3427 position: relative;
3428 font-size: 0;
3429 white-space: nowrap;
3430}
3431.input-group-btn > .btn {
3432 position: relative;
3433}
3434.input-group-btn > .btn + .btn {
3435 margin-left: -1px;
3436}
3437.input-group-btn > .btn:hover,
3438.input-group-btn > .btn:focus,
3439.input-group-btn > .btn:active {
3440 z-index: 2;
3441}
3442.input-group-btn:first-child > .btn,
3443.input-group-btn:first-child > .btn-group {
3444 margin-right: -1px;
3445}
3446.input-group-btn:last-child > .btn,
3447.input-group-btn:last-child > .btn-group {
3448 margin-left: -1px;
3449}
3450.nav {
3451 padding-left: 0;
3452 margin-bottom: 0;
3453 list-style: none;
3454}
3455.nav > li {
3456 position: relative;
3457 display: block;
3458}
3459.nav > li > a {
3460 position: relative;
3461 display: block;
3462 padding: 10px 15px;
3463}
3464.nav > li > a:hover,
3465.nav > li > a:focus {
3466 text-decoration: none;
3467 background-color: #eee;
3468}
3469.nav > li.disabled > a {
3470 color: #999;
3471}
3472.nav > li.disabled > a:hover,
3473.nav > li.disabled > a:focus {
3474 color: #999;
3475 text-decoration: none;
3476 cursor: not-allowed;
3477 background-color: transparent;
3478}
3479.nav .open > a,
3480.nav .open > a:hover,
3481.nav .open > a:focus {
3482 background-color: #eee;
3483 border-color: #428bca;
3484}
3485.nav .nav-divider {
3486 height: 1px;
3487 margin: 9px 0;
3488 overflow: hidden;
3489 background-color: #e5e5e5;
3490}
3491.nav > li > a > img {
3492 max-width: none;
3493}
3494.nav-tabs {
3495 border-bottom: 1px solid #ddd;
3496}
3497.nav-tabs > li {
3498 float: left;
3499 margin-bottom: -1px;
3500}
3501.nav-tabs > li > a {
3502 margin-right: 2px;
3503 line-height: 1.42857143;
3504 border: 1px solid transparent;
3505 border-radius: 4px 4px 0 0;
3506}
3507.nav-tabs > li > a:hover {
3508 border-color: #eee #eee #ddd;
3509}
3510.nav-tabs > li.active > a,
3511.nav-tabs > li.active > a:hover,
3512.nav-tabs > li.active > a:focus {
3513 color: #555;
3514 cursor: default;
3515 background-color: #fff;
3516 border: 1px solid #ddd;
3517 border-bottom-color: transparent;
3518}
3519.nav-tabs.nav-justified {
3520 width: 100%;
3521 border-bottom: 0;
3522}
3523.nav-tabs.nav-justified > li {
3524 float: none;
3525}
3526.nav-tabs.nav-justified > li > a {
3527 margin-bottom: 5px;
3528 text-align: center;
3529}
3530.nav-tabs.nav-justified > .dropdown .dropdown-menu {
3531 top: auto;
3532 left: auto;
3533}
3534@media (min-width: 768px) {
3535 .nav-tabs.nav-justified > li {
3536 display: table-cell;
3537 width: 1%;
3538 }
3539 .nav-tabs.nav-justified > li > a {
3540 margin-bottom: 0;
3541 }
3542}
3543.nav-tabs.nav-justified > li > a {
3544 margin-right: 0;
3545 border-radius: 4px;
3546}
3547.nav-tabs.nav-justified > .active > a,
3548.nav-tabs.nav-justified > .active > a:hover,
3549.nav-tabs.nav-justified > .active > a:focus {
3550 border: 1px solid #ddd;
3551}
3552@media (min-width: 768px) {
3553 .nav-tabs.nav-justified > li > a {
3554 border-bottom: 1px solid #ddd;
3555 border-radius: 4px 4px 0 0;
3556 }
3557 .nav-tabs.nav-justified > .active > a,
3558 .nav-tabs.nav-justified > .active > a:hover,
3559 .nav-tabs.nav-justified > .active > a:focus {
3560 border-bottom-color: #fff;
3561 }
3562}
3563.nav-pills > li {
3564 float: left;
3565}
3566.nav-pills > li > a {
3567 border-radius: 4px;
3568}
3569.nav-pills > li + li {
3570 margin-left: 2px;
3571}
3572.nav-pills > li.active > a,
3573.nav-pills > li.active > a:hover,
3574.nav-pills > li.active > a:focus {
3575 color: #fff;
3576 background-color: #428bca;
3577}
3578.nav-stacked > li {
3579 float: none;
3580}
3581.nav-stacked > li + li {
3582 margin-top: 2px;
3583 margin-left: 0;
3584}
3585.nav-justified {
3586 width: 100%;
3587}
3588.nav-justified > li {
3589 float: none;
3590}
3591.nav-justified > li > a {
3592 margin-bottom: 5px;
3593 text-align: center;
3594}
3595.nav-justified > .dropdown .dropdown-menu {
3596 top: auto;
3597 left: auto;
3598}
3599@media (min-width: 768px) {
3600 .nav-justified > li {
3601 display: table-cell;
3602 width: 1%;
3603 }
3604 .nav-justified > li > a {
3605 margin-bottom: 0;
3606 }
3607}
3608.nav-tabs-justified {
3609 border-bottom: 0;
3610}
3611.nav-tabs-justified > li > a {
3612 margin-right: 0;
3613 border-radius: 4px;
3614}
3615.nav-tabs-justified > .active > a,
3616.nav-tabs-justified > .active > a:hover,
3617.nav-tabs-justified > .active > a:focus {
3618 border: 1px solid #ddd;
3619}
3620@media (min-width: 768px) {
3621 .nav-tabs-justified > li > a {
3622 border-bottom: 1px solid #ddd;
3623 border-radius: 4px 4px 0 0;
3624 }
3625 .nav-tabs-justified > .active > a,
3626 .nav-tabs-justified > .active > a:hover,
3627 .nav-tabs-justified > .active > a:focus {
3628 border-bottom-color: #fff;
3629 }
3630}
3631.tab-content > .tab-pane {
3632 display: none;
3633}
3634.tab-content > .active {
3635 display: block;
3636}
3637.nav-tabs .dropdown-menu {
3638 margin-top: -1px;
3639 border-top-left-radius: 0;
3640 border-top-right-radius: 0;
3641}
3642.navbar {
3643 position: relative;
3644 min-height: 50px;
3645 margin-bottom: 20px;
3646 border: 1px solid transparent;
3647}
3648@media (min-width: 768px) {
3649 .navbar {
3650 border-radius: 4px;
3651 }
3652}
3653@media (min-width: 768px) {
3654 .navbar-header {
3655 float: left;
3656 }
3657}
3658.navbar-collapse {
3659 max-height: 340px;
3660 padding-right: 15px;
3661 padding-left: 15px;
3662 overflow-x: visible;
3663 -webkit-overflow-scrolling: touch;
3664 border-top: 1px solid transparent;
3665 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
3666}
3667.navbar-collapse.in {
3668 overflow-y: auto;
3669}
3670@media (min-width: 768px) {
3671 .navbar-collapse {
3672 width: auto;
3673 border-top: 0;
3674 box-shadow: none;
3675 }
3676 .navbar-collapse.collapse {
3677 display: block !important;
3678 height: auto !important;
3679 padding-bottom: 0;
3680 overflow: visible !important;
3681 }
3682 .navbar-collapse.in {
3683 overflow-y: visible;
3684 }
3685 .navbar-fixed-top .navbar-collapse,
3686 .navbar-static-top .navbar-collapse,
3687 .navbar-fixed-bottom .navbar-collapse {
3688 padding-right: 0;
3689 padding-left: 0;
3690 }
3691}
3692.container > .navbar-header,
3693.container-fluid > .navbar-header,
3694.container > .navbar-collapse,
3695.container-fluid > .navbar-collapse {
3696 margin-right: -15px;
3697 margin-left: -15px;
3698}
3699@media (min-width: 768px) {
3700 .container > .navbar-header,
3701 .container-fluid > .navbar-header,
3702 .container > .navbar-collapse,
3703 .container-fluid > .navbar-collapse {
3704 margin-right: 0;
3705 margin-left: 0;
3706 }
3707}
3708.navbar-static-top {
3709 z-index: 1000;
3710 border-width: 0 0 1px;
3711}
3712@media (min-width: 768px) {
3713 .navbar-static-top {
3714 border-radius: 0;
3715 }
3716}
3717.navbar-fixed-top,
3718.navbar-fixed-bottom {
3719 position: fixed;
3720 right: 0;
3721 left: 0;
3722 z-index: 1030;
3723}
3724@media (min-width: 768px) {
3725 .navbar-fixed-top,
3726 .navbar-fixed-bottom {
3727 border-radius: 0;
3728 }
3729}
3730.navbar-fixed-top {
3731 top: 0;
3732 border-width: 0 0 1px;
3733}
3734.navbar-fixed-bottom {
3735 bottom: 0;
3736 margin-bottom: 0;
3737 border-width: 1px 0 0;
3738}
3739.navbar-brand {
3740 float: left;
3741 height: 50px;
3742 padding: 15px 15px;
3743 font-size: 18px;
3744 line-height: 20px;
3745}
3746.navbar-brand:hover,
3747.navbar-brand:focus {
3748 text-decoration: none;
3749}
3750@media (min-width: 768px) {
3751 .navbar > .container .navbar-brand,
3752 .navbar > .container-fluid .navbar-brand {
3753 margin-left: -15px;
3754 }
3755}
3756.navbar-toggle {
3757 position: relative;
3758 float: right;
3759 padding: 9px 10px;
3760 margin-top: 8px;
3761 margin-right: 15px;
3762 margin-bottom: 8px;
3763 background-color: transparent;
3764 background-image: none;
3765 border: 1px solid transparent;
3766 border-radius: 4px;
3767}
3768.navbar-toggle:focus {
3769 outline: none;
3770}
3771.navbar-toggle .icon-bar {
3772 display: block;
3773 width: 22px;
3774 height: 2px;
3775 border-radius: 1px;
3776}
3777.navbar-toggle .icon-bar + .icon-bar {
3778 margin-top: 4px;
3779}
3780@media (min-width: 768px) {
3781 .navbar-toggle {
3782 display: none;
3783 }
3784}
3785.navbar-nav {
3786 margin: 7.5px -15px;
3787}
3788.navbar-nav > li > a {
3789 padding-top: 10px;
3790 padding-bottom: 10px;
3791 line-height: 20px;
3792}
3793@media (max-width: 767px) {
3794 .navbar-nav .open .dropdown-menu {
3795 position: static;
3796 float: none;
3797 width: auto;
3798 margin-top: 0;
3799 background-color: transparent;
3800 border: 0;
3801 box-shadow: none;
3802 }
3803 .navbar-nav .open .dropdown-menu > li > a,
3804 .navbar-nav .open .dropdown-menu .dropdown-header {
3805 padding: 5px 15px 5px 25px;
3806 }
3807 .navbar-nav .open .dropdown-menu > li > a {
3808 line-height: 20px;
3809 }
3810 .navbar-nav .open .dropdown-menu > li > a:hover,
3811 .navbar-nav .open .dropdown-menu > li > a:focus {
3812 background-image: none;
3813 }
3814}
3815@media (min-width: 768px) {
3816 .navbar-nav {
3817 float: left;
3818 margin: 0;
3819 }
3820 .navbar-nav > li {
3821 float: left;
3822 }
3823 .navbar-nav > li > a {
3824 padding-top: 15px;
3825 padding-bottom: 15px;
3826 }
3827 .navbar-nav.navbar-right:last-child {
3828 margin-right: -15px;
3829 }
3830}
3831@media (min-width: 768px) {
3832 .navbar-left {
3833 float: left !important;
3834 }
3835 .navbar-right {
3836 float: right !important;
3837 }
3838}
3839.navbar-form {
3840 padding: 10px 15px;
3841 margin-top: 8px;
3842 margin-right: -15px;
3843 margin-bottom: 8px;
3844 margin-left: -15px;
3845 border-top: 1px solid transparent;
3846 border-bottom: 1px solid transparent;
3847 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
3848 box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
3849}
3850@media (min-width: 768px) {
3851 .navbar-form .form-group {
3852 display: inline-block;
3853 margin-bottom: 0;
3854 vertical-align: middle;
3855 }
3856 .navbar-form .form-control {
3857 display: inline-block;
3858 width: auto;
3859 vertical-align: middle;
3860 }
3861 .navbar-form .input-group > .form-control {
3862 width: 100%;
3863 }
3864 .navbar-form .control-label {
3865 margin-bottom: 0;
3866 vertical-align: middle;
3867 }
3868 .navbar-form .radio,
3869 .navbar-form .checkbox {
3870 display: inline-block;
3871 padding-left: 0;
3872 margin-top: 0;
3873 margin-bottom: 0;
3874 vertical-align: middle;
3875 }
3876 .navbar-form .radio input[type="radio"],
3877 .navbar-form .checkbox input[type="checkbox"] {
3878 float: none;
3879 margin-left: 0;
3880 }
3881 .navbar-form .has-feedback .form-control-feedback {
3882 top: 0;
3883 }
3884}
3885@media (max-width: 767px) {
3886 .navbar-form .form-group {
3887 margin-bottom: 5px;
3888 }
3889}
3890@media (min-width: 768px) {
3891 .navbar-form {
3892 width: auto;
3893 padding-top: 0;
3894 padding-bottom: 0;
3895 margin-right: 0;
3896 margin-left: 0;
3897 border: 0;
3898 -webkit-box-shadow: none;
3899 box-shadow: none;
3900 }
3901 .navbar-form.navbar-right:last-child {
3902 margin-right: -15px;
3903 }
3904}
3905.navbar-nav > li > .dropdown-menu {
3906 margin-top: 0;
3907 border-top-left-radius: 0;
3908 border-top-right-radius: 0;
3909}
3910.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
3911 border-bottom-right-radius: 0;
3912 border-bottom-left-radius: 0;
3913}
3914.navbar-btn {
3915 margin-top: 8px;
3916 margin-bottom: 8px;
3917}
3918.navbar-btn.btn-sm {
3919 margin-top: 10px;
3920 margin-bottom: 10px;
3921}
3922.navbar-btn.btn-xs {
3923 margin-top: 14px;
3924 margin-bottom: 14px;
3925}
3926.navbar-text {
3927 margin-top: 15px;
3928 margin-bottom: 15px;
3929}
3930@media (min-width: 768px) {
3931 .navbar-text {
3932 float: left;
3933 margin-right: 15px;
3934 margin-left: 15px;
3935 }
3936 .navbar-text.navbar-right:last-child {
3937 margin-right: 0;
3938 }
3939}
3940.navbar-default {
3941 background-color: #f8f8f8;
3942 border-color: #e7e7e7;
3943}
3944.navbar-default .navbar-brand {
3945 color: #777;
3946}
3947.navbar-default .navbar-brand:hover,
3948.navbar-default .navbar-brand:focus {
3949 color: #5e5e5e;
3950 background-color: transparent;
3951}
3952.navbar-default .navbar-text {
3953 color: #777;
3954}
3955.navbar-default .navbar-nav > li > a {
3956 color: #777;
3957}
3958.navbar-default .navbar-nav > li > a:hover,
3959.navbar-default .navbar-nav > li > a:focus {
3960 color: #333;
3961 background-color: transparent;
3962}
3963.navbar-default .navbar-nav > .active > a,
3964.navbar-default .navbar-nav > .active > a:hover,
3965.navbar-default .navbar-nav > .active > a:focus {
3966 color: #555;
3967 background-color: #e7e7e7;
3968}
3969.navbar-default .navbar-nav > .disabled > a,
3970.navbar-default .navbar-nav > .disabled > a:hover,
3971.navbar-default .navbar-nav > .disabled > a:focus {
3972 color: #ccc;
3973 background-color: transparent;
3974}
3975.navbar-default .navbar-toggle {
3976 border-color: #ddd;
3977}
3978.navbar-default .navbar-toggle:hover,
3979.navbar-default .navbar-toggle:focus {
3980 background-color: #ddd;
3981}
3982.navbar-default .navbar-toggle .icon-bar {
3983 background-color: #888;
3984}
3985.navbar-default .navbar-collapse,
3986.navbar-default .navbar-form {
3987 border-color: #e7e7e7;
3988}
3989.navbar-default .navbar-nav > .open > a,
3990.navbar-default .navbar-nav > .open > a:hover,
3991.navbar-default .navbar-nav > .open > a:focus {
3992 color: #555;
3993 background-color: #e7e7e7;
3994}
3995@media (max-width: 767px) {
3996 .navbar-default .navbar-nav .open .dropdown-menu > li > a {
3997 color: #777;
3998 }
3999 .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
4000 .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
4001 color: #333;
4002 background-color: transparent;
4003 }
4004 .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
4005 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
4006 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
4007 color: #555;
4008 background-color: #e7e7e7;
4009 }
4010 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
4011 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4012 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4013 color: #ccc;
4014 background-color: transparent;
4015 }
4016}
4017.navbar-default .navbar-link {
4018 color: #777;
4019}
4020.navbar-default .navbar-link:hover {
4021 color: #333;
4022}
4023.navbar-inverse {
4024 background-color: #222;
4025 border-color: #080808;
4026}
4027.navbar-inverse .navbar-brand {
4028 color: #999;
4029}
4030.navbar-inverse .navbar-brand:hover,
4031.navbar-inverse .navbar-brand:focus {
4032 color: #fff;
4033 background-color: transparent;
4034}
4035.navbar-inverse .navbar-text {
4036 color: #999;
4037}
4038.navbar-inverse .navbar-nav > li > a {
4039 color: #999;
4040}
4041.navbar-inverse .navbar-nav > li > a:hover,
4042.navbar-inverse .navbar-nav > li > a:focus {
4043 color: #fff;
4044 background-color: transparent;
4045}
4046.navbar-inverse .navbar-nav > .active > a,
4047.navbar-inverse .navbar-nav > .active > a:hover,
4048.navbar-inverse .navbar-nav > .active > a:focus {
4049 color: #fff;
4050 background-color: #080808;
4051}
4052.navbar-inverse .navbar-nav > .disabled > a,
4053.navbar-inverse .navbar-nav > .disabled > a:hover,
4054.navbar-inverse .navbar-nav > .disabled > a:focus {
4055 color: #444;
4056 background-color: transparent;
4057}
4058.navbar-inverse .navbar-toggle {
4059 border-color: #333;
4060}
4061.navbar-inverse .navbar-toggle:hover,
4062.navbar-inverse .navbar-toggle:focus {
4063 background-color: #333;
4064}
4065.navbar-inverse .navbar-toggle .icon-bar {
4066 background-color: #fff;
4067}
4068.navbar-inverse .navbar-collapse,
4069.navbar-inverse .navbar-form {
4070 border-color: #101010;
4071}
4072.navbar-inverse .navbar-nav > .open > a,
4073.navbar-inverse .navbar-nav > .open > a:hover,
4074.navbar-inverse .navbar-nav > .open > a:focus {
4075 color: #fff;
4076 background-color: #080808;
4077}
4078@media (max-width: 767px) {
4079 .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4080 border-color: #080808;
4081 }
4082 .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4083 background-color: #080808;
4084 }
4085 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4086 color: #999;
4087 }
4088 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4089 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4090 color: #fff;
4091 background-color: transparent;
4092 }
4093 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4094 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4095 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4096 color: #fff;
4097 background-color: #080808;
4098 }
4099 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4100 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4101 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4102 color: #444;
4103 background-color: transparent;
4104 }
4105}
4106.navbar-inverse .navbar-link {
4107 color: #999;
4108}
4109.navbar-inverse .navbar-link:hover {
4110 color: #fff;
4111}
4112.breadcrumb {
4113 padding: 8px 15px;
4114 margin-bottom: 20px;
4115 list-style: none;
4116 background-color: #f5f5f5;
4117 border-radius: 4px;
4118}
4119.breadcrumb > li {
4120 display: inline-block;
4121}
4122.breadcrumb > li + li:before {
4123 padding: 0 5px;
4124 color: #ccc;
4125 content: "/\00a0";
4126}
4127.breadcrumb > .active {
4128 color: #999;
4129}
4130.pagination {
4131 display: inline-block;
4132 padding-left: 0;
4133 margin: 20px 0;
4134 border-radius: 4px;
4135}
4136.pagination > li {
4137 display: inline;
4138}
4139.pagination > li > a,
4140.pagination > li > span {
4141 position: relative;
4142 float: left;
4143 padding: 6px 12px;
4144 margin-left: -1px;
4145 line-height: 1.42857143;
4146 color: #428bca;
4147 text-decoration: none;
4148 background-color: #fff;
4149 border: 1px solid #ddd;
4150}
4151.pagination > li:first-child > a,
4152.pagination > li:first-child > span {
4153 margin-left: 0;
4154 border-top-left-radius: 4px;
4155 border-bottom-left-radius: 4px;
4156}
4157.pagination > li:last-child > a,
4158.pagination > li:last-child > span {
4159 border-top-right-radius: 4px;
4160 border-bottom-right-radius: 4px;
4161}
4162.pagination > li > a:hover,
4163.pagination > li > span:hover,
4164.pagination > li > a:focus,
4165.pagination > li > span:focus {
4166 color: #2a6496;
4167 background-color: #eee;
4168 border-color: #ddd;
4169}
4170.pagination > .active > a,
4171.pagination > .active > span,
4172.pagination > .active > a:hover,
4173.pagination > .active > span:hover,
4174.pagination > .active > a:focus,
4175.pagination > .active > span:focus {
4176 z-index: 2;
4177 color: #fff;
4178 cursor: default;
4179 background-color: #428bca;
4180 border-color: #428bca;
4181}
4182.pagination > .disabled > span,
4183.pagination > .disabled > span:hover,
4184.pagination > .disabled > span:focus,
4185.pagination > .disabled > a,
4186.pagination > .disabled > a:hover,
4187.pagination > .disabled > a:focus {
4188 color: #999;
4189 cursor: not-allowed;
4190 background-color: #fff;
4191 border-color: #ddd;
4192}
4193.pagination-lg > li > a,
4194.pagination-lg > li > span {
4195 padding: 10px 16px;
4196 font-size: 18px;
4197}
4198.pagination-lg > li:first-child > a,
4199.pagination-lg > li:first-child > span {
4200 border-top-left-radius: 6px;
4201 border-bottom-left-radius: 6px;
4202}
4203.pagination-lg > li:last-child > a,
4204.pagination-lg > li:last-child > span {
4205 border-top-right-radius: 6px;
4206 border-bottom-right-radius: 6px;
4207}
4208.pagination-sm > li > a,
4209.pagination-sm > li > span {
4210 padding: 5px 10px;
4211 font-size: 12px;
4212}
4213.pagination-sm > li:first-child > a,
4214.pagination-sm > li:first-child > span {
4215 border-top-left-radius: 3px;
4216 border-bottom-left-radius: 3px;
4217}
4218.pagination-sm > li:last-child > a,
4219.pagination-sm > li:last-child > span {
4220 border-top-right-radius: 3px;
4221 border-bottom-right-radius: 3px;
4222}
4223.pager {
4224 padding-left: 0;
4225 margin: 20px 0;
4226 text-align: center;
4227 list-style: none;
4228}
4229.pager li {
4230 display: inline;
4231}
4232.pager li > a,
4233.pager li > span {
4234 display: inline-block;
4235 padding: 5px 14px;
4236 background-color: #fff;
4237 border: 1px solid #ddd;
4238 border-radius: 15px;
4239}
4240.pager li > a:hover,
4241.pager li > a:focus {
4242 text-decoration: none;
4243 background-color: #eee;
4244}
4245.pager .next > a,
4246.pager .next > span {
4247 float: right;
4248}
4249.pager .previous > a,
4250.pager .previous > span {
4251 float: left;
4252}
4253.pager .disabled > a,
4254.pager .disabled > a:hover,
4255.pager .disabled > a:focus,
4256.pager .disabled > span {
4257 color: #999;
4258 cursor: not-allowed;
4259 background-color: #fff;
4260}
4261.label {
4262 display: inline;
4263 padding: .2em .6em .3em;
4264 font-size: 75%;
4265 font-weight: bold;
4266 line-height: 1;
4267 color: #fff;
4268 text-align: center;
4269 white-space: nowrap;
4270 vertical-align: baseline;
4271 border-radius: .25em;
4272}
4273.label[href]:hover,
4274.label[href]:focus {
4275 color: #fff;
4276 text-decoration: none;
4277 cursor: pointer;
4278}
4279.label:empty {
4280 display: none;
4281}
4282.btn .label {
4283 position: relative;
4284 top: -1px;
4285}
4286.label-default {
4287 background-color: #999;
4288}
4289.label-default[href]:hover,
4290.label-default[href]:focus {
4291 background-color: #808080;
4292}
4293.label-primary {
4294 background-color: #428bca;
4295}
4296.label-primary[href]:hover,
4297.label-primary[href]:focus {
4298 background-color: #3071a9;
4299}
4300.label-success {
4301 background-color: #5cb85c;
4302}
4303.label-success[href]:hover,
4304.label-success[href]:focus {
4305 background-color: #449d44;
4306}
4307.label-info {
4308 background-color: #5bc0de;
4309}
4310.label-info[href]:hover,
4311.label-info[href]:focus {
4312 background-color: #31b0d5;
4313}
4314.label-warning {
4315 background-color: #f0ad4e;
4316}
4317.label-warning[href]:hover,
4318.label-warning[href]:focus {
4319 background-color: #ec971f;
4320}
4321.label-danger {
4322 background-color: #d9534f;
4323}
4324.label-danger[href]:hover,
4325.label-danger[href]:focus {
4326 background-color: #c9302c;
4327}
4328.badge {
4329 display: inline-block;
4330 min-width: 10px;
4331 padding: 3px 7px;
4332 font-size: 12px;
4333 font-weight: bold;
4334 line-height: 1;
4335 color: #fff;
4336 text-align: center;
4337 white-space: nowrap;
4338 vertical-align: baseline;
4339 background-color: #999;
4340 border-radius: 10px;
4341}
4342.badge:empty {
4343 display: none;
4344}
4345.btn .badge {
4346 position: relative;
4347 top: -1px;
4348}
4349.btn-xs .badge {
4350 top: 0;
4351 padding: 1px 5px;
4352}
4353a.badge:hover,
4354a.badge:focus {
4355 color: #fff;
4356 text-decoration: none;
4357 cursor: pointer;
4358}
4359a.list-group-item.active > .badge,
4360.nav-pills > .active > a > .badge {
4361 color: #428bca;
4362 background-color: #fff;
4363}
4364.nav-pills > li > a > .badge {
4365 margin-left: 3px;
4366}
4367.jumbotron {
4368 padding: 30px;
4369 margin-bottom: 30px;
4370 color: inherit;
4371 background-color: #eee;
4372}
4373.jumbotron h1,
4374.jumbotron .h1 {
4375 color: inherit;
4376}
4377.jumbotron p {
4378 margin-bottom: 15px;
4379 font-size: 21px;
4380 font-weight: 200;
4381}
4382.container .jumbotron {
4383 border-radius: 6px;
4384}
4385.jumbotron .container {
4386 max-width: 100%;
4387}
4388@media screen and (min-width: 768px) {
4389 .jumbotron {
4390 padding-top: 48px;
4391 padding-bottom: 48px;
4392 }
4393 .container .jumbotron {
4394 padding-right: 60px;
4395 padding-left: 60px;
4396 }
4397 .jumbotron h1,
4398 .jumbotron .h1 {
4399 font-size: 63px;
4400 }
4401}
4402.thumbnail {
4403 display: block;
4404 padding: 4px;
4405 margin-bottom: 20px;
4406 line-height: 1.42857143;
4407 background-color: #fff;
4408 border: 1px solid #ddd;
4409 border-radius: 4px;
4410 -webkit-transition: all .2s ease-in-out;
4411 transition: all .2s ease-in-out;
4412}
4413.thumbnail > img,
4414.thumbnail a > img {
4415 margin-right: auto;
4416 margin-left: auto;
4417}
4418a.thumbnail:hover,
4419a.thumbnail:focus,
4420a.thumbnail.active {
4421 border-color: #428bca;
4422}
4423.thumbnail .caption {
4424 padding: 9px;
4425 color: #333;
4426}
4427.alert {
4428 padding: 15px;
4429 margin-bottom: 20px;
4430 border: 1px solid transparent;
4431 border-radius: 4px;
4432}
4433.alert h4 {
4434 margin-top: 0;
4435 color: inherit;
4436}
4437.alert .alert-link {
4438 font-weight: bold;
4439}
4440.alert > p,
4441.alert > ul {
4442 margin-bottom: 0;
4443}
4444.alert > p + p {
4445 margin-top: 5px;
4446}
4447.alert-dismissable {
4448 padding-right: 35px;
4449}
4450.alert-dismissable .close {
4451 position: relative;
4452 top: -2px;
4453 right: -21px;
4454 color: inherit;
4455}
4456.alert-success {
4457 color: #3c763d;
4458 background-color: #dff0d8;
4459 border-color: #d6e9c6;
4460}
4461.alert-success hr {
4462 border-top-color: #c9e2b3;
4463}
4464.alert-success .alert-link {
4465 color: #2b542c;
4466}
4467.alert-info {
4468 color: #31708f;
4469 background-color: #d9edf7;
4470 border-color: #bce8f1;
4471}
4472.alert-info hr {
4473 border-top-color: #a6e1ec;
4474}
4475.alert-info .alert-link {
4476 color: #245269;
4477}
4478.alert-warning {
4479 color: #8a6d3b;
4480 background-color: #fcf8e3;
4481 border-color: #faebcc;
4482}
4483.alert-warning hr {
4484 border-top-color: #f7e1b5;
4485}
4486.alert-warning .alert-link {
4487 color: #66512c;
4488}
4489.alert-danger {
4490 color: #a94442;
4491 background-color: #f2dede;
4492 border-color: #ebccd1;
4493}
4494.alert-danger hr {
4495 border-top-color: #e4b9c0;
4496}
4497.alert-danger .alert-link {
4498 color: #843534;
4499}
4500@-webkit-keyframes progress-bar-stripes {
4501 from {
4502 background-position: 40px 0;
4503 }
4504 to {
4505 background-position: 0 0;
4506 }
4507}
4508@keyframes progress-bar-stripes {
4509 from {
4510 background-position: 40px 0;
4511 }
4512 to {
4513 background-position: 0 0;
4514 }
4515}
4516.progress {
4517 height: 20px;
4518 margin-bottom: 20px;
4519 overflow: hidden;
4520 background-color: #f5f5f5;
4521 border-radius: 4px;
4522 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
4523 box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
4524}
4525.progress-bar {
4526 float: left;
4527 width: 0;
4528 height: 100%;
4529 font-size: 12px;
4530 line-height: 20px;
4531 color: #fff;
4532 text-align: center;
4533 background-color: #428bca;
4534 -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
4535 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
4536 -webkit-transition: width .6s ease;
4537 transition: width .6s ease;
4538}
4539.progress-striped .progress-bar {
4540 background-image: -webkit-linear-gradient(45deg, 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);
4541 background-image: linear-gradient(45deg, 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);
4542 background-size: 40px 40px;
4543}
4544.progress.active .progress-bar {
4545 -webkit-animation: progress-bar-stripes 2s linear infinite;
4546 animation: progress-bar-stripes 2s linear infinite;
4547}
4548.progress-bar-success {
4549 background-color: #5cb85c;
4550}
4551.progress-striped .progress-bar-success {
4552 background-image: -webkit-linear-gradient(45deg, 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);
4553 background-image: linear-gradient(45deg, 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);
4554}
4555.progress-bar-info {
4556 background-color: #5bc0de;
4557}
4558.progress-striped .progress-bar-info {
4559 background-image: -webkit-linear-gradient(45deg, 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);
4560 background-image: linear-gradient(45deg, 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);
4561}
4562.progress-bar-warning {
4563 background-color: #f0ad4e;
4564}
4565.progress-striped .progress-bar-warning {
4566 background-image: -webkit-linear-gradient(45deg, 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);
4567 background-image: linear-gradient(45deg, 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);
4568}
4569.progress-bar-danger {
4570 background-color: #d9534f;
4571}
4572.progress-striped .progress-bar-danger {
4573 background-image: -webkit-linear-gradient(45deg, 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);
4574 background-image: linear-gradient(45deg, 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);
4575}
4576.media,
4577.media-body {
4578 overflow: hidden;
4579 zoom: 1;
4580}
4581.media,
4582.media .media {
4583 margin-top: 15px;
4584}
4585.media:first-child {
4586 margin-top: 0;
4587}
4588.media-object {
4589 display: block;
4590}
4591.media-heading {
4592 margin: 0 0 5px;
4593}
4594.media > .pull-left {
4595 margin-right: 10px;
4596}
4597.media > .pull-right {
4598 margin-left: 10px;
4599}
4600.media-list {
4601 padding-left: 0;
4602 list-style: none;
4603}
4604.list-group {
4605 padding-left: 0;
4606 margin-bottom: 20px;
4607}
4608.list-group-item {
4609 position: relative;
4610 display: block;
4611 padding: 10px 15px;
4612 margin-bottom: -1px;
4613 background-color: #fff;
4614 border: 1px solid #ddd;
4615}
4616.list-group-item:first-child {
4617 border-top-left-radius: 4px;
4618 border-top-right-radius: 4px;
4619}
4620.list-group-item:last-child {
4621 margin-bottom: 0;
4622 border-bottom-right-radius: 4px;
4623 border-bottom-left-radius: 4px;
4624}
4625.list-group-item > .badge {
4626 float: right;
4627}
4628.list-group-item > .badge + .badge {
4629 margin-right: 5px;
4630}
4631a.list-group-item {
4632 color: #555;
4633}
4634a.list-group-item .list-group-item-heading {
4635 color: #333;
4636}
4637a.list-group-item:hover,
4638a.list-group-item:focus {
4639 text-decoration: none;
4640 background-color: #f5f5f5;
4641}
4642a.list-group-item.active,
4643a.list-group-item.active:hover,
4644a.list-group-item.active:focus {
4645 z-index: 2;
4646 color: #fff;
4647 background-color: #428bca;
4648 border-color: #428bca;
4649}
4650a.list-group-item.active .list-group-item-heading,
4651a.list-group-item.active:hover .list-group-item-heading,
4652a.list-group-item.active:focus .list-group-item-heading {
4653 color: inherit;
4654}
4655a.list-group-item.active .list-group-item-text,
4656a.list-group-item.active:hover .list-group-item-text,
4657a.list-group-item.active:focus .list-group-item-text {
4658 color: #e1edf7;
4659}
4660.list-group-item-success {
4661 color: #3c763d;
4662 background-color: #dff0d8;
4663}
4664a.list-group-item-success {
4665 color: #3c763d;
4666}
4667a.list-group-item-success .list-group-item-heading {
4668 color: inherit;
4669}
4670a.list-group-item-success:hover,
4671a.list-group-item-success:focus {
4672 color: #3c763d;
4673 background-color: #d0e9c6;
4674}
4675a.list-group-item-success.active,
4676a.list-group-item-success.active:hover,
4677a.list-group-item-success.active:focus {
4678 color: #fff;
4679 background-color: #3c763d;
4680 border-color: #3c763d;
4681}
4682.list-group-item-info {
4683 color: #31708f;
4684 background-color: #d9edf7;
4685}
4686a.list-group-item-info {
4687 color: #31708f;
4688}
4689a.list-group-item-info .list-group-item-heading {
4690 color: inherit;
4691}
4692a.list-group-item-info:hover,
4693a.list-group-item-info:focus {
4694 color: #31708f;
4695 background-color: #c4e3f3;
4696}
4697a.list-group-item-info.active,
4698a.list-group-item-info.active:hover,
4699a.list-group-item-info.active:focus {
4700 color: #fff;
4701 background-color: #31708f;
4702 border-color: #31708f;
4703}
4704.list-group-item-warning {
4705 color: #8a6d3b;
4706 background-color: #fcf8e3;
4707}
4708a.list-group-item-warning {
4709 color: #8a6d3b;
4710}
4711a.list-group-item-warning .list-group-item-heading {
4712 color: inherit;
4713}
4714a.list-group-item-warning:hover,
4715a.list-group-item-warning:focus {
4716 color: #8a6d3b;
4717 background-color: #faf2cc;
4718}
4719a.list-group-item-warning.active,
4720a.list-group-item-warning.active:hover,
4721a.list-group-item-warning.active:focus {
4722 color: #fff;
4723 background-color: #8a6d3b;
4724 border-color: #8a6d3b;
4725}
4726.list-group-item-danger {
4727 color: #a94442;
4728 background-color: #f2dede;
4729}
4730a.list-group-item-danger {
4731 color: #a94442;
4732}
4733a.list-group-item-danger .list-group-item-heading {
4734 color: inherit;
4735}
4736a.list-group-item-danger:hover,
4737a.list-group-item-danger:focus {
4738 color: #a94442;
4739 background-color: #ebcccc;
4740}
4741a.list-group-item-danger.active,
4742a.list-group-item-danger.active:hover,
4743a.list-group-item-danger.active:focus {
4744 color: #fff;
4745 background-color: #a94442;
4746 border-color: #a94442;
4747}
4748.list-group-item-heading {
4749 margin-top: 0;
4750 margin-bottom: 5px;
4751}
4752.list-group-item-text {
4753 margin-bottom: 0;
4754 line-height: 1.3;
4755}
4756.panel {
4757 margin-bottom: 20px;
4758 background-color: #fff;
4759 border: 1px solid transparent;
4760 border-radius: 4px;
4761 -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
4762 box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
4763}
4764.panel-body {
4765 padding: 15px;
4766}
4767.panel-heading {
4768 padding: 10px 15px;
4769 border-bottom: 1px solid transparent;
4770 border-top-left-radius: 3px;
4771 border-top-right-radius: 3px;
4772}
4773.panel-heading > .dropdown .dropdown-toggle {
4774 color: inherit;
4775}
4776.panel-title {
4777 margin-top: 0;
4778 margin-bottom: 0;
4779 font-size: 16px;
4780 color: inherit;
4781}
4782.panel-title > a {
4783 color: inherit;
4784}
4785.panel-footer {
4786 padding: 10px 15px;
4787 background-color: #f5f5f5;
4788 border-top: 1px solid #ddd;
4789 border-bottom-right-radius: 3px;
4790 border-bottom-left-radius: 3px;
4791}
4792.panel > .list-group {
4793 margin-bottom: 0;
4794}
4795.panel > .list-group .list-group-item {
4796 border-width: 1px 0;
4797 border-radius: 0;
4798}
4799.panel > .list-group:first-child .list-group-item:first-child {
4800 border-top: 0;
4801 border-top-left-radius: 3px;
4802 border-top-right-radius: 3px;
4803}
4804.panel > .list-group:last-child .list-group-item:last-child {
4805 border-bottom: 0;
4806 border-bottom-right-radius: 3px;
4807 border-bottom-left-radius: 3px;
4808}
4809.panel-heading + .list-group .list-group-item:first-child {
4810 border-top-width: 0;
4811}
4812.panel > .table,
4813.panel > .table-responsive > .table {
4814 margin-bottom: 0;
4815}
4816.panel > .table:first-child,
4817.panel > .table-responsive:first-child > .table:first-child {
4818 border-top-left-radius: 3px;
4819 border-top-right-radius: 3px;
4820}
4821.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
4822.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
4823.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
4824.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
4825.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
4826.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
4827.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
4828.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
4829 border-top-left-radius: 3px;
4830}
4831.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
4832.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
4833.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
4834.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
4835.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
4836.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
4837.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
4838.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
4839 border-top-right-radius: 3px;
4840}
4841.panel > .table:last-child,
4842.panel > .table-responsive:last-child > .table:last-child {
4843 border-bottom-right-radius: 3px;
4844 border-bottom-left-radius: 3px;
4845}
4846.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
4847.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
4848.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
4849.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
4850.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
4851.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
4852.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
4853.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
4854 border-bottom-left-radius: 3px;
4855}
4856.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
4857.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
4858.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
4859.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
4860.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
4861.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
4862.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
4863.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
4864 border-bottom-right-radius: 3px;
4865}
4866.panel > .panel-body + .table,
4867.panel > .panel-body + .table-responsive {
4868 border-top: 1px solid #ddd;
4869}
4870.panel > .table > tbody:first-child > tr:first-child th,
4871.panel > .table > tbody:first-child > tr:first-child td {
4872 border-top: 0;
4873}
4874.panel > .table-bordered,
4875.panel > .table-responsive > .table-bordered {
4876 border: 0;
4877}
4878.panel > .table-bordered > thead > tr > th:first-child,
4879.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
4880.panel > .table-bordered > tbody > tr > th:first-child,
4881.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
4882.panel > .table-bordered > tfoot > tr > th:first-child,
4883.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
4884.panel > .table-bordered > thead > tr > td:first-child,
4885.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
4886.panel > .table-bordered > tbody > tr > td:first-child,
4887.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
4888.panel > .table-bordered > tfoot > tr > td:first-child,
4889.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
4890 border-left: 0;
4891}
4892.panel > .table-bordered > thead > tr > th:last-child,
4893.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
4894.panel > .table-bordered > tbody > tr > th:last-child,
4895.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
4896.panel > .table-bordered > tfoot > tr > th:last-child,
4897.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
4898.panel > .table-bordered > thead > tr > td:last-child,
4899.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
4900.panel > .table-bordered > tbody > tr > td:last-child,
4901.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
4902.panel > .table-bordered > tfoot > tr > td:last-child,
4903.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
4904 border-right: 0;
4905}
4906.panel > .table-bordered > thead > tr:first-child > td,
4907.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
4908.panel > .table-bordered > tbody > tr:first-child > td,
4909.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
4910.panel > .table-bordered > thead > tr:first-child > th,
4911.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
4912.panel > .table-bordered > tbody > tr:first-child > th,
4913.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
4914 border-bottom: 0;
4915}
4916.panel > .table-bordered > tbody > tr:last-child > td,
4917.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
4918.panel > .table-bordered > tfoot > tr:last-child > td,
4919.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
4920.panel > .table-bordered > tbody > tr:last-child > th,
4921.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
4922.panel > .table-bordered > tfoot > tr:last-child > th,
4923.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
4924 border-bottom: 0;
4925}
4926.panel > .table-responsive {
4927 margin-bottom: 0;
4928 border: 0;
4929}
4930.panel-group {
4931 margin-bottom: 20px;
4932}
4933.panel-group .panel {
4934 margin-bottom: 0;
4935 overflow: hidden;
4936 border-radius: 4px;
4937}
4938.panel-group .panel + .panel {
4939 margin-top: 5px;
4940}
4941.panel-group .panel-heading {
4942 border-bottom: 0;
4943}
4944.panel-group .panel-heading + .panel-collapse .panel-body {
4945 border-top: 1px solid #ddd;
4946}
4947.panel-group .panel-footer {
4948 border-top: 0;
4949}
4950.panel-group .panel-footer + .panel-collapse .panel-body {
4951 border-bottom: 1px solid #ddd;
4952}
4953.panel-default {
4954 border-color: #ddd;
4955}
4956.panel-default > .panel-heading {
4957 color: #333;
4958 background-color: #f5f5f5;
4959 border-color: #ddd;
4960}
4961.panel-default > .panel-heading + .panel-collapse .panel-body {
4962 border-top-color: #ddd;
4963}
4964.panel-default > .panel-footer + .panel-collapse .panel-body {
4965 border-bottom-color: #ddd;
4966}
4967.panel-primary {
4968 border-color: #428bca;
4969}
4970.panel-primary > .panel-heading {
4971 color: #fff;
4972 background-color: #428bca;
4973 border-color: #428bca;
4974}
4975.panel-primary > .panel-heading + .panel-collapse .panel-body {
4976 border-top-color: #428bca;
4977}
4978.panel-primary > .panel-footer + .panel-collapse .panel-body {
4979 border-bottom-color: #428bca;
4980}
4981.panel-success {
4982 border-color: #d6e9c6;
4983}
4984.panel-success > .panel-heading {
4985 color: #3c763d;
4986 background-color: #dff0d8;
4987 border-color: #d6e9c6;
4988}
4989.panel-success > .panel-heading + .panel-collapse .panel-body {
4990 border-top-color: #d6e9c6;
4991}
4992.panel-success > .panel-footer + .panel-collapse .panel-body {
4993 border-bottom-color: #d6e9c6;
4994}
4995.panel-info {
4996 border-color: #bce8f1;
4997}
4998.panel-info > .panel-heading {
4999 color: #31708f;
5000 background-color: #d9edf7;
5001 border-color: #bce8f1;
5002}
5003.panel-info > .panel-heading + .panel-collapse .panel-body {
5004 border-top-color: #bce8f1;
5005}
5006.panel-info > .panel-footer + .panel-collapse .panel-body {
5007 border-bottom-color: #bce8f1;
5008}
5009.panel-warning {
5010 border-color: #faebcc;
5011}
5012.panel-warning > .panel-heading {
5013 color: #8a6d3b;
5014 background-color: #fcf8e3;
5015 border-color: #faebcc;
5016}
5017.panel-warning > .panel-heading + .panel-collapse .panel-body {
5018 border-top-color: #faebcc;
5019}
5020.panel-warning > .panel-footer + .panel-collapse .panel-body {
5021 border-bottom-color: #faebcc;
5022}
5023.panel-danger {
5024 border-color: #ebccd1;
5025}
5026.panel-danger > .panel-heading {
5027 color: #a94442;
5028 background-color: #f2dede;
5029 border-color: #ebccd1;
5030}
5031.panel-danger > .panel-heading + .panel-collapse .panel-body {
5032 border-top-color: #ebccd1;
5033}
5034.panel-danger > .panel-footer + .panel-collapse .panel-body {
5035 border-bottom-color: #ebccd1;
5036}
5037.well {
5038 min-height: 20px;
5039 padding: 19px;
5040 margin-bottom: 20px;
5041 background-color: #f5f5f5;
5042 border: 1px solid #e3e3e3;
5043 border-radius: 4px;
5044 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
5045 box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
5046}
5047.well blockquote {
5048 border-color: #ddd;
5049 border-color: rgba(0, 0, 0, .15);
5050}
5051.well-lg {
5052 padding: 24px;
5053 border-radius: 6px;
5054}
5055.well-sm {
5056 padding: 9px;
5057 border-radius: 3px;
5058}
5059.close {
5060 float: right;
5061 font-size: 21px;
5062 font-weight: bold;
5063 line-height: 1;
5064 color: #000;
5065 text-shadow: 0 1px 0 #fff;
5066 filter: alpha(opacity=20);
5067 opacity: .2;
5068}
5069.close:hover,
5070.close:focus {
5071 color: #000;
5072 text-decoration: none;
5073 cursor: pointer;
5074 filter: alpha(opacity=50);
5075 opacity: .5;
5076}
5077button.close {
5078 -webkit-appearance: none;
5079 padding: 0;
5080 cursor: pointer;
5081 background: transparent;
5082 border: 0;
5083}
5084.modal-open {
5085 overflow: hidden;
5086}
5087.modal {
5088 position: fixed;
5089 top: 0;
5090 right: 0;
5091 bottom: 0;
5092 left: 0;
5093 z-index: 1050;
5094 display: none;
5095 overflow: auto;
5096 overflow-y: scroll;
5097 -webkit-overflow-scrolling: touch;
5098 outline: 0;
5099}
5100.modal.fade .modal-dialog {
5101 -webkit-transition: -webkit-transform .3s ease-out;
5102 -moz-transition: -moz-transform .3s ease-out;
5103 -o-transition: -o-transform .3s ease-out;
5104 transition: transform .3s ease-out;
5105 -webkit-transform: translate(0, -25%);
5106 -ms-transform: translate(0, -25%);
5107 transform: translate(0, -25%);
5108}
5109.modal.in .modal-dialog {
5110 -webkit-transform: translate(0, 0);
5111 -ms-transform: translate(0, 0);
5112 transform: translate(0, 0);
5113}
5114.modal-dialog {
5115 position: relative;
5116 width: auto;
5117 margin: 10px;
5118}
5119.modal-content {
5120 position: relative;
5121 background-color: #fff;
5122 background-clip: padding-box;
5123 border: 1px solid #999;
5124 border: 1px solid rgba(0, 0, 0, .2);
5125 border-radius: 6px;
5126 outline: none;
5127 -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
5128 box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
5129}
5130.modal-backdrop {
5131 position: fixed;
5132 top: 0;
5133 right: 0;
5134 bottom: 0;
5135 left: 0;
5136 z-index: 1040;
5137 background-color: #000;
5138}
5139.modal-backdrop.fade {
5140 filter: alpha(opacity=0);
5141 opacity: 0;
5142}
5143.modal-backdrop.in {
5144 filter: alpha(opacity=50);
5145 opacity: .5;
5146}
5147.modal-header {
5148 min-height: 16.42857143px;
5149 padding: 15px;
5150 border-bottom: 1px solid #e5e5e5;
5151}
5152.modal-header .close {
5153 margin-top: -2px;
5154}
5155.modal-title {
5156 margin: 0;
5157 line-height: 1.42857143;
5158}
5159.modal-body {
5160 position: relative;
5161 padding: 20px;
5162}
5163.modal-footer {
5164 padding: 19px 20px 20px;
5165 margin-top: 15px;
5166 text-align: right;
5167 border-top: 1px solid #e5e5e5;
5168}
5169.modal-footer .btn + .btn {
5170 margin-bottom: 0;
5171 margin-left: 5px;
5172}
5173.modal-footer .btn-group .btn + .btn {
5174 margin-left: -1px;
5175}
5176.modal-footer .btn-block + .btn-block {
5177 margin-left: 0;
5178}
5179@media (min-width: 768px) {
5180 .modal-dialog {
5181 width: 600px;
5182 margin: 30px auto;
5183 }
5184 .modal-content {
5185 -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
5186 box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
5187 }
5188 .modal-sm {
5189 width: 300px;
5190 }
5191}
5192@media (min-width: 992px) {
5193 .modal-lg {
5194 width: 900px;
5195 }
5196}
5197.tooltip {
5198 position: absolute;
5199 z-index: 1030;
5200 display: block;
5201 font-size: 12px;
5202 line-height: 1.4;
5203 visibility: visible;
5204 filter: alpha(opacity=0);
5205 opacity: 0;
5206}
5207.tooltip.in {
5208 filter: alpha(opacity=90);
5209 opacity: .9;
5210}
5211.tooltip.top {
5212 padding: 5px 0;
5213 margin-top: -3px;
5214}
5215.tooltip.right {
5216 padding: 0 5px;
5217 margin-left: 3px;
5218}
5219.tooltip.bottom {
5220 padding: 5px 0;
5221 margin-top: 3px;
5222}
5223.tooltip.left {
5224 padding: 0 5px;
5225 margin-left: -3px;
5226}
5227.tooltip-inner {
5228 max-width: 200px;
5229 padding: 3px 8px;
5230 color: #fff;
5231 text-align: center;
5232 text-decoration: none;
5233 background-color: #000;
5234 border-radius: 4px;
5235}
5236.tooltip-arrow {
5237 position: absolute;
5238 width: 0;
5239 height: 0;
5240 border-color: transparent;
5241 border-style: solid;
5242}
5243.tooltip.top .tooltip-arrow {
5244 bottom: 0;
5245 left: 50%;
5246 margin-left: -5px;
5247 border-width: 5px 5px 0;
5248 border-top-color: #000;
5249}
5250.tooltip.top-left .tooltip-arrow {
5251 bottom: 0;
5252 left: 5px;
5253 border-width: 5px 5px 0;
5254 border-top-color: #000;
5255}
5256.tooltip.top-right .tooltip-arrow {
5257 right: 5px;
5258 bottom: 0;
5259 border-width: 5px 5px 0;
5260 border-top-color: #000;
5261}
5262.tooltip.right .tooltip-arrow {
5263 top: 50%;
5264 left: 0;
5265 margin-top: -5px;
5266 border-width: 5px 5px 5px 0;
5267 border-right-color: #000;
5268}
5269.tooltip.left .tooltip-arrow {
5270 top: 50%;
5271 right: 0;
5272 margin-top: -5px;
5273 border-width: 5px 0 5px 5px;
5274 border-left-color: #000;
5275}
5276.tooltip.bottom .tooltip-arrow {
5277 top: 0;
5278 left: 50%;
5279 margin-left: -5px;
5280 border-width: 0 5px 5px;
5281 border-bottom-color: #000;
5282}
5283.tooltip.bottom-left .tooltip-arrow {
5284 top: 0;
5285 left: 5px;
5286 border-width: 0 5px 5px;
5287 border-bottom-color: #000;
5288}
5289.tooltip.bottom-right .tooltip-arrow {
5290 top: 0;
5291 right: 5px;
5292 border-width: 0 5px 5px;
5293 border-bottom-color: #000;
5294}
5295.popover {
5296 position: absolute;
5297 top: 0;
5298 left: 0;
5299 z-index: 1010;
5300 display: none;
5301 max-width: 276px;
5302 padding: 1px;
5303 text-align: left;
5304 white-space: normal;
5305 background-color: #fff;
5306 background-clip: padding-box;
5307 border: 1px solid #ccc;
5308 border: 1px solid rgba(0, 0, 0, .2);
5309 border-radius: 6px;
5310 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
5311 box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
5312}
5313.popover.top {
5314 margin-top: -10px;
5315}
5316.popover.right {
5317 margin-left: 10px;
5318}
5319.popover.bottom {
5320 margin-top: 10px;
5321}
5322.popover.left {
5323 margin-left: -10px;
5324}
5325.popover-title {
5326 padding: 8px 14px;
5327 margin: 0;
5328 font-size: 14px;
5329 font-weight: normal;
5330 line-height: 18px;
5331 background-color: #f7f7f7;
5332 border-bottom: 1px solid #ebebeb;
5333 border-radius: 5px 5px 0 0;
5334}
5335.popover-content {
5336 padding: 9px 14px;
5337}
5338.popover > .arrow,
5339.popover > .arrow:after {
5340 position: absolute;
5341 display: block;
5342 width: 0;
5343 height: 0;
5344 border-color: transparent;
5345 border-style: solid;
5346}
5347.popover > .arrow {
5348 border-width: 11px;
5349}
5350.popover > .arrow:after {
5351 content: "";
5352 border-width: 10px;
5353}
5354.popover.top > .arrow {
5355 bottom: -11px;
5356 left: 50%;
5357 margin-left: -11px;
5358 border-top-color: #999;
5359 border-top-color: rgba(0, 0, 0, .25);
5360 border-bottom-width: 0;
5361}
5362.popover.top > .arrow:after {
5363 bottom: 1px;
5364 margin-left: -10px;
5365 content: " ";
5366 border-top-color: #fff;
5367 border-bottom-width: 0;
5368}
5369.popover.right > .arrow {
5370 top: 50%;
5371 left: -11px;
5372 margin-top: -11px;
5373 border-right-color: #999;
5374 border-right-color: rgba(0, 0, 0, .25);
5375 border-left-width: 0;
5376}
5377.popover.right > .arrow:after {
5378 bottom: -10px;
5379 left: 1px;
5380 content: " ";
5381 border-right-color: #fff;
5382 border-left-width: 0;
5383}
5384.popover.bottom > .arrow {
5385 top: -11px;
5386 left: 50%;
5387 margin-left: -11px;
5388 border-top-width: 0;
5389 border-bottom-color: #999;
5390 border-bottom-color: rgba(0, 0, 0, .25);
5391}
5392.popover.bottom > .arrow:after {
5393 top: 1px;
5394 margin-left: -10px;
5395 content: " ";
5396 border-top-width: 0;
5397 border-bottom-color: #fff;
5398}
5399.popover.left > .arrow {
5400 top: 50%;
5401 right: -11px;
5402 margin-top: -11px;
5403 border-right-width: 0;
5404 border-left-color: #999;
5405 border-left-color: rgba(0, 0, 0, .25);
5406}
5407.popover.left > .arrow:after {
5408 right: 1px;
5409 bottom: -10px;
5410 content: " ";
5411 border-right-width: 0;
5412 border-left-color: #fff;
5413}
5414.carousel {
5415 position: relative;
5416}
5417.carousel-inner {
5418 position: relative;
5419 width: 100%;
5420 overflow: hidden;
5421}
5422.carousel-inner > .item {
5423 position: relative;
5424 display: none;
5425 -webkit-transition: .6s ease-in-out left;
5426 transition: .6s ease-in-out left;
5427}
5428.carousel-inner > .item > img,
5429.carousel-inner > .item > a > img {
5430 line-height: 1;
5431}
5432.carousel-inner > .active,
5433.carousel-inner > .next,
5434.carousel-inner > .prev {
5435 display: block;
5436}
5437.carousel-inner > .active {
5438 left: 0;
5439}
5440.carousel-inner > .next,
5441.carousel-inner > .prev {
5442 position: absolute;
5443 top: 0;
5444 width: 100%;
5445}
5446.carousel-inner > .next {
5447 left: 100%;
5448}
5449.carousel-inner > .prev {
5450 left: -100%;
5451}
5452.carousel-inner > .next.left,
5453.carousel-inner > .prev.right {
5454 left: 0;
5455}
5456.carousel-inner > .active.left {
5457 left: -100%;
5458}
5459.carousel-inner > .active.right {
5460 left: 100%;
5461}
5462.carousel-control {
5463 position: absolute;
5464 top: 0;
5465 bottom: 0;
5466 left: 0;
5467 width: 15%;
5468 font-size: 20px;
5469 color: #fff;
5470 text-align: center;
5471 text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
5472 filter: alpha(opacity=50);
5473 opacity: .5;
5474}
5475.carousel-control.left {
5476 background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%));
5477 background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
5478 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
5479 background-repeat: repeat-x;
5480}
5481.carousel-control.right {
5482 right: 0;
5483 left: auto;
5484 background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%));
5485 background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
5486 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
5487 background-repeat: repeat-x;
5488}
5489.carousel-control:hover,
5490.carousel-control:focus {
5491 color: #fff;
5492 text-decoration: none;
5493 filter: alpha(opacity=90);
5494 outline: none;
5495 opacity: .9;
5496}
5497.carousel-control .icon-prev,
5498.carousel-control .icon-next,
5499.carousel-control .glyphicon-chevron-left,
5500.carousel-control .glyphicon-chevron-right {
5501 position: absolute;
5502 top: 50%;
5503 z-index: 5;
5504 display: inline-block;
5505}
5506.carousel-control .icon-prev,
5507.carousel-control .glyphicon-chevron-left {
5508 left: 50%;
5509}
5510.carousel-control .icon-next,
5511.carousel-control .glyphicon-chevron-right {
5512 right: 50%;
5513}
5514.carousel-control .icon-prev,
5515.carousel-control .icon-next {
5516 width: 20px;
5517 height: 20px;
5518 margin-top: -10px;
5519 margin-left: -10px;
5520 font-family: serif;
5521}
5522.carousel-control .icon-prev:before {
5523 content: '\2039';
5524}
5525.carousel-control .icon-next:before {
5526 content: '\203a';
5527}
5528.carousel-indicators {
5529 position: absolute;
5530 bottom: 10px;
5531 left: 50%;
5532 z-index: 15;
5533 width: 60%;
5534 padding-left: 0;
5535 margin-left: -30%;
5536 text-align: center;
5537 list-style: none;
5538}
5539.carousel-indicators li {
5540 display: inline-block;
5541 width: 10px;
5542 height: 10px;
5543 margin: 1px;
5544 text-indent: -999px;
5545 cursor: pointer;
5546 background-color: #000 \9;
5547 background-color: rgba(0, 0, 0, 0);
5548 border: 1px solid #fff;
5549 border-radius: 10px;
5550}
5551.carousel-indicators .active {
5552 width: 12px;
5553 height: 12px;
5554 margin: 0;
5555 background-color: #fff;
5556}
5557.carousel-caption {
5558 position: absolute;
5559 right: 15%;
5560 bottom: 20px;
5561 left: 15%;
5562 z-index: 10;
5563 padding-top: 20px;
5564 padding-bottom: 20px;
5565 color: #fff;
5566 text-align: center;
5567 text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
5568}
5569.carousel-caption .btn {
5570 text-shadow: none;
5571}
5572@media screen and (min-width: 768px) {
5573 .carousel-control .glyphicon-chevron-left,
5574 .carousel-control .glyphicon-chevron-right,
5575 .carousel-control .icon-prev,
5576 .carousel-control .icon-next {
5577 width: 30px;
5578 height: 30px;
5579 margin-top: -15px;
5580 margin-left: -15px;
5581 font-size: 30px;
5582 }
5583 .carousel-caption {
5584 right: 20%;
5585 left: 20%;
5586 padding-bottom: 30px;
5587 }
5588 .carousel-indicators {
5589 bottom: 20px;
5590 }
5591}
5592.clearfix:before,
5593.clearfix:after,
5594.container:before,
5595.container:after,
5596.container-fluid:before,
5597.container-fluid:after,
5598.row:before,
5599.row:after,
5600.form-horizontal .form-group:before,
5601.form-horizontal .form-group:after,
5602.btn-toolbar:before,
5603.btn-toolbar:after,
5604.btn-group-vertical > .btn-group:before,
5605.btn-group-vertical > .btn-group:after,
5606.nav:before,
5607.nav:after,
5608.navbar:before,
5609.navbar:after,
5610.navbar-header:before,
5611.navbar-header:after,
5612.navbar-collapse:before,
5613.navbar-collapse:after,
5614.pager:before,
5615.pager:after,
5616.panel-body:before,
5617.panel-body:after,
5618.modal-footer:before,
5619.modal-footer:after {
5620 display: table;
5621 content: " ";
5622}
5623.clearfix:after,
5624.container:after,
5625.container-fluid:after,
5626.row:after,
5627.form-horizontal .form-group:after,
5628.btn-toolbar:after,
5629.btn-group-vertical > .btn-group:after,
5630.nav:after,
5631.navbar:after,
5632.navbar-header:after,
5633.navbar-collapse:after,
5634.pager:after,
5635.panel-body:after,
5636.modal-footer:after {
5637 clear: both;
5638}
5639.center-block {
5640 display: block;
5641 margin-right: auto;
5642 margin-left: auto;
5643}
5644.pull-right {
5645 float: right !important;
5646}
5647.pull-left {
5648 float: left !important;
5649}
5650.hide {
5651 display: none !important;
5652}
5653.show {
5654 display: block !important;
5655}
5656.invisible {
5657 visibility: hidden;
5658}
5659.text-hide {
5660 font: 0/0 a;
5661 color: transparent;
5662 text-shadow: none;
5663 background-color: transparent;
5664 border: 0;
5665}
5666.hidden {
5667 display: none !important;
5668 visibility: hidden !important;
5669}
5670.affix {
5671 position: fixed;
5672}
5673@-ms-viewport {
5674 width: device-width;
5675}
5676.visible-xs,
5677.visible-sm,
5678.visible-md,
5679.visible-lg {
5680 display: none !important;
5681}
5682@media (max-width: 767px) {
5683 .visible-xs {
5684 display: block !important;
5685 }
5686 table.visible-xs {
5687 display: table;
5688 }
5689 tr.visible-xs {
5690 display: table-row !important;
5691 }
5692 th.visible-xs,
5693 td.visible-xs {
5694 display: table-cell !important;
5695 }
5696}
5697@media (min-width: 768px) and (max-width: 991px) {
5698 .visible-sm {
5699 display: block !important;
5700 }
5701 table.visible-sm {
5702 display: table;
5703 }
5704 tr.visible-sm {
5705 display: table-row !important;
5706 }
5707 th.visible-sm,
5708 td.visible-sm {
5709 display: table-cell !important;
5710 }
5711}
5712@media (min-width: 992px) and (max-width: 1199px) {
5713 .visible-md {
5714 display: block !important;
5715 }
5716 table.visible-md {
5717 display: table;
5718 }
5719 tr.visible-md {
5720 display: table-row !important;
5721 }
5722 th.visible-md,
5723 td.visible-md {
5724 display: table-cell !important;
5725 }
5726}
5727@media (min-width: 1200px) {
5728 .visible-lg {
5729 display: block !important;
5730 }
5731 table.visible-lg {
5732 display: table;
5733 }
5734 tr.visible-lg {
5735 display: table-row !important;
5736 }
5737 th.visible-lg,
5738 td.visible-lg {
5739 display: table-cell !important;
5740 }
5741}
5742@media (max-width: 767px) {
5743 .hidden-xs {
5744 display: none !important;
5745 }
5746}
5747@media (min-width: 768px) and (max-width: 991px) {
5748 .hidden-sm {
5749 display: none !important;
5750 }
5751}
5752@media (min-width: 992px) and (max-width: 1199px) {
5753 .hidden-md {
5754 display: none !important;
5755 }
5756}
5757@media (min-width: 1200px) {
5758 .hidden-lg {
5759 display: none !important;
5760 }
5761}
5762.visible-print {
5763 display: none !important;
5764}
5765@media print {
5766 .visible-print {
5767 display: block !important;
5768 }
5769 table.visible-print {
5770 display: table;
5771 }
5772 tr.visible-print {
5773 display: table-row !important;
5774 }
5775 th.visible-print,
5776 td.visible-print {
5777 display: table-cell !important;
5778 }
5779}
5780@media print {
5781 .hidden-print {
5782 display: none !important;
5783 }
5784}
5785/*# sourceMappingURL=bootstrap.css.map */
diff --git a/deprecated/jinwei.me/mobile/css/bootstrap.css.map b/deprecated/jinwei.me/mobile/css/bootstrap.css.map
new file mode 100644
index 0000000..6bc5a2d
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/css/bootstrap.css.map
@@ -0,0 +1 @@
{"version":3,"sources":["less/normalize.less","less/print.less","less/scaffolding.less","less/mixins.less","less/variables.less","less/thumbnails.less","less/carousel.less","less/type.less","less/code.less","less/grid.less","less/tables.less","less/forms.less","less/buttons.less","less/button-groups.less","less/component-animations.less","less/glyphicons.less","less/dropdowns.less","less/input-groups.less","less/navs.less","less/navbar.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/pager.less","less/labels.less","less/badges.less","less/jumbotron.less","less/alerts.less","less/progress-bars.less","less/media.less","less/list-group.less","less/panels.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/popovers.less","less/responsive-utilities.less"],"names":[],"mappings":"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","sourcesContent":["/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS text size adjust after orientation change, without disabling\n// user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined in IE 8/9.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9.\n// Hide the `template` element in IE, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background: transparent;\n}\n\n//\n// Improve readability when focused and also mouse hovered in all browsers.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9, Safari 5, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari 5 and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari 5, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow displayed oddly in IE 9.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari 5.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8+, and Opera\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n// (include `-moz` to future-proof).\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box; // 2\n box-sizing: content-box;\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}","//\n// Basic print styles\n// --------------------------------------------------\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css\n\n@media print {\n\n * {\n text-shadow: none !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n background: transparent !important;\n box-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links for images, or javascript/internal links\n a[href^=\"javascript:\"]:after,\n a[href^=\"#\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245\n // Once fixed, we can just straight up remove this.\n select {\n background: #fff !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .table {\n td,\n th {\n background-color: #fff !important;\n }\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n}\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 62.5%;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: underline;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n","//\n// Mixins\n// --------------------------------------------------\n\n\n// Utilities\n// -------------------------\n\n// Clearfix\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n\n// WebKit-style focus\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n\n// Center-align a block level element\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n// Sizing shortcuts\n.size(@width; @height) {\n width: @width;\n height: @height;\n}\n.square(@size) {\n .size(@size; @size);\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n &::-moz-placeholder { color: @color; // Firefox\n opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Text overflow\n// Requires inline-block or block for proper styling\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// CSS image replacement\n//\n// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note\n// that we cannot chain the mixins together in Less, so they are repeated.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n\n\n\n// CSS3 PROPERTIES\n// --------------------------------------------------\n\n// Single side border-radius\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support the\n// standard `box-shadow` property.\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Transitions\n.transition(@transition) {\n -webkit-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n// Transformations\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n transform: rotate(@degrees);\n}\n.scale(@ratio; @ratio-y...) {\n -webkit-transform: scale(@ratio, @ratio-y);\n -ms-transform: scale(@ratio, @ratio-y); // IE9 only\n transform: scale(@ratio, @ratio-y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n transform: translate(@x, @y);\n}\n.skew(@x; @y) {\n -webkit-transform: skew(@x, @y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n transform: skew(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// User select\n// For selecting text on the page\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n\n// Resize anything\n.resizable(@direction) {\n resize: @direction; // Options: horizontal, vertical, both\n overflow: auto; // Safari fix\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Opacity\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n\n\n\n// GRADIENTS\n// --------------------------------------------------\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n\n// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n\n\n\n// Retina images\n//\n// Short retina mixin for setting background-image and -size\n\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// COMPONENT MIXINS\n// --------------------------------------------------\n\n// Horizontal dividers\n// -------------------------\n// Dividers (basically an hr) within dropdowns and nav lists\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n\n// Panels\n// -------------------------\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse .panel-body {\n border-top-color: @border;\n }\n }\n & > .panel-footer {\n + .panel-collapse .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n\n// Alerts\n// -------------------------\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n\n// Tables\n// -------------------------\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n\n// List Groups\n// -------------------------\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a& {\n color: @color;\n\n .list-group-item-heading { color: inherit; }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n\n// Button variants\n// -------------------------\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 8%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n// -------------------------\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n\n// Pagination\n// -------------------------\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n\n// Labels\n// -------------------------\n.label-variant(@color) {\n background-color: @color;\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n\n// Contextual backgrounds\n// -------------------------\n.bg-variant(@color) {\n background-color: @color;\n a&:hover {\n background-color: darken(@color, 10%);\n }\n}\n\n// Typography\n// -------------------------\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover {\n color: darken(@color, 10%);\n }\n}\n\n// Navbar vertical align\n// -------------------------\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n\n// Progress bars\n// -------------------------\n.progress-bar-variant(@color) {\n background-color: @color;\n .progress-striped & {\n #gradient > .striped();\n }\n}\n\n// Responsive utilities\n// -------------------------\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n\n\n// Grid System\n// -----------\n\n// Centered container element\n.container-fixed() {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: (@gutter / -2);\n margin-right: (@gutter / -2);\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n @media (min-width: @screen-xs-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-push(@columns) {\n @media (min-width: @screen-xs-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-pull(@columns) {\n @media (min-width: @screen-xs-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n\n// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-focus-border` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n@gray-darker: lighten(#000, 13.5%); // #222\n@gray-dark: lighten(#000, 20%); // #333\n@gray: lighten(#000, 33.5%); // #555\n@gray-light: lighten(#000, 60%); // #999\n@gray-lighter: lighten(#000, 93.5%); // #eee\n\n@brand-primary: #428bca;\n@brand-success: #5cb85c;\n@brand-info: #5bc0de;\n@brand-warning: #f0ad4e;\n@brand-danger: #d9534f;\n\n\n//== Scaffolding\n//\n// ## Settings for some of the most global styles.\n\n//** Background color for `<body>`.\n@body-bg: #fff;\n//** Global text color on `<body>`.\n@text-color: @gray-dark;\n\n//** Global textual link color.\n@link-color: @brand-primary;\n//** Link hover color set via `darken()` function.\n@link-hover-color: darken(@link-color, 15%);\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n@font-family-sans-serif: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n@font-family-serif: Georgia, \"Times New Roman\", Times, serif;\n//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.\n@font-family-monospace: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n@font-family-base: @font-family-sans-serif;\n\n@font-size-base: 14px;\n@font-size-large: ceil((@font-size-base * 1.25)); // ~18px\n@font-size-small: ceil((@font-size-base * 0.85)); // ~12px\n\n@font-size-h1: floor((@font-size-base * 2.6)); // ~36px\n@font-size-h2: floor((@font-size-base * 2.15)); // ~30px\n@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px\n@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px\n@font-size-h5: @font-size-base;\n@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n@line-height-base: 1.428571429; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px\n\n//** By default, this inherits from the `<body>`.\n@headings-font-family: inherit;\n@headings-font-weight: 500;\n@headings-line-height: 1.1;\n@headings-color: inherit;\n\n\n//-- Iconography\n//\n//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n@icon-font-path: \"../fonts/\";\n@icon-font-name: \"glyphicons-halflings-regular\";\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n@padding-base-vertical: 6px;\n@padding-base-horizontal: 12px;\n\n@padding-large-vertical: 10px;\n@padding-large-horizontal: 16px;\n\n@padding-small-vertical: 5px;\n@padding-small-horizontal: 10px;\n\n@padding-xs-vertical: 1px;\n@padding-xs-horizontal: 5px;\n\n@line-height-large: 1.33;\n@line-height-small: 1.5;\n\n@border-radius-base: 4px;\n@border-radius-large: 6px;\n@border-radius-small: 3px;\n\n//** Global color for active items (e.g., navs or dropdowns).\n@component-active-color: #fff;\n//** Global background color for active items (e.g., navs or dropdowns).\n@component-active-bg: @brand-primary;\n\n//** Width of the `border` for generating carets that indicator dropdowns.\n@caret-width-base: 4px;\n//** Carets increase slightly in size for larger components.\n@caret-width-large: 5px;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for `<th>`s and `<td>`s.\n@table-cell-padding: 8px;\n//** Padding for cells in `.table-condensed`.\n@table-condensed-cell-padding: 5px;\n\n//** Default background color used for all tables.\n@table-bg: transparent;\n//** Background color used for `.table-striped`.\n@table-bg-accent: #f9f9f9;\n//** Background color used for `.table-hover`.\n@table-bg-hover: #f5f5f5;\n@table-bg-active: @table-bg-hover;\n\n//** Border color for table and cell borders.\n@table-border-color: #ddd;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n@btn-font-weight: normal;\n\n@btn-default-color: #333;\n@btn-default-bg: #fff;\n@btn-default-border: #ccc;\n\n@btn-primary-color: #fff;\n@btn-primary-bg: @brand-primary;\n@btn-primary-border: darken(@btn-primary-bg, 5%);\n\n@btn-success-color: #fff;\n@btn-success-bg: @brand-success;\n@btn-success-border: darken(@btn-success-bg, 5%);\n\n@btn-info-color: #fff;\n@btn-info-bg: @brand-info;\n@btn-info-border: darken(@btn-info-bg, 5%);\n\n@btn-warning-color: #fff;\n@btn-warning-bg: @brand-warning;\n@btn-warning-border: darken(@btn-warning-bg, 5%);\n\n@btn-danger-color: #fff;\n@btn-danger-bg: @brand-danger;\n@btn-danger-border: darken(@btn-danger-bg, 5%);\n\n@btn-link-disabled-color: @gray-light;\n\n\n//== Forms\n//\n//##\n\n//** `<input>` background color\n@input-bg: #fff;\n//** `<input disabled>` background color\n@input-bg-disabled: @gray-lighter;\n\n//** Text color for `<input>`s\n@input-color: @gray;\n//** `<input>` border color\n@input-border: #ccc;\n//** `<input>` border radius\n@input-border-radius: @border-radius-base;\n//** Border color for inputs on focus\n@input-border-focus: #66afe9;\n\n//** Placeholder text color\n@input-color-placeholder: @gray-light;\n\n//** Default `.form-control` height\n@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);\n//** Large `.form-control` height\n@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);\n//** Small `.form-control` height\n@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);\n\n@legend-color: @gray-dark;\n@legend-border-color: #e5e5e5;\n\n//** Background color for textual input addons\n@input-group-addon-bg: @gray-lighter;\n//** Border color for textual input addons\n@input-group-addon-border-color: @input-border;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n@dropdown-bg: #fff;\n//** Dropdown menu `border-color`.\n@dropdown-border: rgba(0,0,0,.15);\n//** Dropdown menu `border-color` **for IE8**.\n@dropdown-fallback-border: #ccc;\n//** Divider color for between dropdown items.\n@dropdown-divider-bg: #e5e5e5;\n\n//** Dropdown link text color.\n@dropdown-link-color: @gray-dark;\n//** Hover color for dropdown links.\n@dropdown-link-hover-color: darken(@gray-dark, 5%);\n//** Hover background for dropdown links.\n@dropdown-link-hover-bg: #f5f5f5;\n\n//** Active dropdown menu item text color.\n@dropdown-link-active-color: @component-active-color;\n//** Active dropdown menu item background color.\n@dropdown-link-active-bg: @component-active-bg;\n\n//** Disabled dropdown menu item background color.\n@dropdown-link-disabled-color: @gray-light;\n\n//** Text color for headers within dropdown menus.\n@dropdown-header-color: @gray-light;\n\n// Note: Deprecated @dropdown-caret-color as of v3.1.0\n@dropdown-caret-color: #000;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n@zindex-navbar: 1000;\n@zindex-dropdown: 1000;\n@zindex-popover: 1010;\n@zindex-tooltip: 1030;\n@zindex-navbar-fixed: 1030;\n@zindex-modal-background: 1040;\n@zindex-modal: 1050;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1\n@screen-xs: 480px;\n@screen-xs-min: @screen-xs;\n@screen-phone: @screen-xs-min;\n\n// Small screen / tablet\n// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1\n@screen-sm: 768px;\n@screen-sm-min: @screen-sm;\n@screen-tablet: @screen-sm-min;\n\n// Medium screen / desktop\n// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1\n@screen-md: 992px;\n@screen-md-min: @screen-md;\n@screen-desktop: @screen-md-min;\n\n// Large screen / wide desktop\n// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1\n@screen-lg: 1200px;\n@screen-lg-min: @screen-lg;\n@screen-lg-desktop: @screen-lg-min;\n\n// So media queries don't overlap when required, provide a maximum\n@screen-xs-max: (@screen-sm-min - 1);\n@screen-sm-max: (@screen-md-min - 1);\n@screen-md-max: (@screen-lg-min - 1);\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n@grid-columns: 12;\n//** Padding between columns. Gets divided in half for the left and right.\n@grid-gutter-width: 30px;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n@grid-float-breakpoint: @screen-sm-min;\n//** Point at which the navbar begins collapsing.\n@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n@container-tablet: ((720px + @grid-gutter-width));\n//** For `@screen-sm-min` and up.\n@container-sm: @container-tablet;\n\n// Medium screen / desktop\n@container-desktop: ((940px + @grid-gutter-width));\n//** For `@screen-md-min` and up.\n@container-md: @container-desktop;\n\n// Large screen / wide desktop\n@container-large-desktop: ((1140px + @grid-gutter-width));\n//** For `@screen-lg-min` and up.\n@container-lg: @container-large-desktop;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n@navbar-height: 50px;\n@navbar-margin-bottom: @line-height-computed;\n@navbar-border-radius: @border-radius-base;\n@navbar-padding-horizontal: floor((@grid-gutter-width / 2));\n@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);\n@navbar-collapse-max-height: 340px;\n\n@navbar-default-color: #777;\n@navbar-default-bg: #f8f8f8;\n@navbar-default-border: darken(@navbar-default-bg, 6.5%);\n\n// Navbar links\n@navbar-default-link-color: #777;\n@navbar-default-link-hover-color: #333;\n@navbar-default-link-hover-bg: transparent;\n@navbar-default-link-active-color: #555;\n@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);\n@navbar-default-link-disabled-color: #ccc;\n@navbar-default-link-disabled-bg: transparent;\n\n// Navbar brand label\n@navbar-default-brand-color: @navbar-default-link-color;\n@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);\n@navbar-default-brand-hover-bg: transparent;\n\n// Navbar toggle\n@navbar-default-toggle-hover-bg: #ddd;\n@navbar-default-toggle-icon-bar-bg: #888;\n@navbar-default-toggle-border-color: #ddd;\n\n\n// Inverted navbar\n// Reset inverted navbar basics\n@navbar-inverse-color: @gray-light;\n@navbar-inverse-bg: #222;\n@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);\n\n// Inverted navbar links\n@navbar-inverse-link-color: @gray-light;\n@navbar-inverse-link-hover-color: #fff;\n@navbar-inverse-link-hover-bg: transparent;\n@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;\n@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);\n@navbar-inverse-link-disabled-color: #444;\n@navbar-inverse-link-disabled-bg: transparent;\n\n// Inverted navbar brand label\n@navbar-inverse-brand-color: @navbar-inverse-link-color;\n@navbar-inverse-brand-hover-color: #fff;\n@navbar-inverse-brand-hover-bg: transparent;\n\n// Inverted navbar toggle\n@navbar-inverse-toggle-hover-bg: #333;\n@navbar-inverse-toggle-icon-bar-bg: #fff;\n@navbar-inverse-toggle-border-color: #333;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n@nav-link-padding: 10px 15px;\n@nav-link-hover-bg: @gray-lighter;\n\n@nav-disabled-link-color: @gray-light;\n@nav-disabled-link-hover-color: @gray-light;\n\n@nav-open-link-hover-color: #fff;\n\n//== Tabs\n@nav-tabs-border-color: #ddd;\n\n@nav-tabs-link-hover-border-color: @gray-lighter;\n\n@nav-tabs-active-link-hover-bg: @body-bg;\n@nav-tabs-active-link-hover-color: @gray;\n@nav-tabs-active-link-hover-border-color: #ddd;\n\n@nav-tabs-justified-link-border-color: #ddd;\n@nav-tabs-justified-active-link-border-color: @body-bg;\n\n//== Pills\n@nav-pills-border-radius: @border-radius-base;\n@nav-pills-active-link-hover-bg: @component-active-bg;\n@nav-pills-active-link-hover-color: @component-active-color;\n\n\n//== Pagination\n//\n//##\n\n@pagination-color: @link-color;\n@pagination-bg: #fff;\n@pagination-border: #ddd;\n\n@pagination-hover-color: @link-hover-color;\n@pagination-hover-bg: @gray-lighter;\n@pagination-hover-border: #ddd;\n\n@pagination-active-color: #fff;\n@pagination-active-bg: @brand-primary;\n@pagination-active-border: @brand-primary;\n\n@pagination-disabled-color: @gray-light;\n@pagination-disabled-bg: #fff;\n@pagination-disabled-border: #ddd;\n\n\n//== Pager\n//\n//##\n\n@pager-bg: @pagination-bg;\n@pager-border: @pagination-border;\n@pager-border-radius: 15px;\n\n@pager-hover-bg: @pagination-hover-bg;\n\n@pager-active-bg: @pagination-active-bg;\n@pager-active-color: @pagination-active-color;\n\n@pager-disabled-color: @pagination-disabled-color;\n\n\n//== Jumbotron\n//\n//##\n\n@jumbotron-padding: 30px;\n@jumbotron-color: inherit;\n@jumbotron-bg: @gray-lighter;\n@jumbotron-heading-color: inherit;\n@jumbotron-font-size: ceil((@font-size-base * 1.5));\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n@state-success-text: #3c763d;\n@state-success-bg: #dff0d8;\n@state-success-border: darken(spin(@state-success-bg, -10), 5%);\n\n@state-info-text: #31708f;\n@state-info-bg: #d9edf7;\n@state-info-border: darken(spin(@state-info-bg, -10), 7%);\n\n@state-warning-text: #8a6d3b;\n@state-warning-bg: #fcf8e3;\n@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);\n\n@state-danger-text: #a94442;\n@state-danger-bg: #f2dede;\n@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n@tooltip-max-width: 200px;\n//** Tooltip text color\n@tooltip-color: #fff;\n//** Tooltip background color\n@tooltip-bg: #000;\n@tooltip-opacity: .9;\n\n//** Tooltip arrow width\n@tooltip-arrow-width: 5px;\n//** Tooltip arrow color\n@tooltip-arrow-color: @tooltip-bg;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n@popover-bg: #fff;\n//** Popover maximum width\n@popover-max-width: 276px;\n//** Popover border color\n@popover-border-color: rgba(0,0,0,.2);\n//** Popover fallback border color\n@popover-fallback-border-color: #ccc;\n\n//** Popover title background color\n@popover-title-bg: darken(@popover-bg, 3%);\n\n//** Popover arrow width\n@popover-arrow-width: 10px;\n//** Popover arrow color\n@popover-arrow-color: #fff;\n\n//** Popover outer arrow width\n@popover-arrow-outer-width: (@popover-arrow-width + 1);\n//** Popover outer arrow color\n@popover-arrow-outer-color: fadein(@popover-border-color, 5%);\n//** Popover outer arrow fallback color\n@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n@label-default-bg: @gray-light;\n//** Primary label background color\n@label-primary-bg: @brand-primary;\n//** Success label background color\n@label-success-bg: @brand-success;\n//** Info label background color\n@label-info-bg: @brand-info;\n//** Warning label background color\n@label-warning-bg: @brand-warning;\n//** Danger label background color\n@label-danger-bg: @brand-danger;\n\n//** Default label text color\n@label-color: #fff;\n//** Default text color of a linked label\n@label-link-hover-color: #fff;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n@modal-inner-padding: 20px;\n\n//** Padding applied to the modal title\n@modal-title-padding: 15px;\n//** Modal title line-height\n@modal-title-line-height: @line-height-base;\n\n//** Background color of modal content area\n@modal-content-bg: #fff;\n//** Modal content border color\n@modal-content-border-color: rgba(0,0,0,.2);\n//** Modal content border color **for IE8**\n@modal-content-fallback-border-color: #999;\n\n//** Modal backdrop background color\n@modal-backdrop-bg: #000;\n//** Modal backdrop opacity\n@modal-backdrop-opacity: .5;\n//** Modal header border color\n@modal-header-border-color: #e5e5e5;\n//** Modal footer border color\n@modal-footer-border-color: @modal-header-border-color;\n\n@modal-lg: 900px;\n@modal-md: 600px;\n@modal-sm: 300px;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n@alert-padding: 15px;\n@alert-border-radius: @border-radius-base;\n@alert-link-font-weight: bold;\n\n@alert-success-bg: @state-success-bg;\n@alert-success-text: @state-success-text;\n@alert-success-border: @state-success-border;\n\n@alert-info-bg: @state-info-bg;\n@alert-info-text: @state-info-text;\n@alert-info-border: @state-info-border;\n\n@alert-warning-bg: @state-warning-bg;\n@alert-warning-text: @state-warning-text;\n@alert-warning-border: @state-warning-border;\n\n@alert-danger-bg: @state-danger-bg;\n@alert-danger-text: @state-danger-text;\n@alert-danger-border: @state-danger-border;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n@progress-bg: #f5f5f5;\n//** Progress bar text color\n@progress-bar-color: #fff;\n\n//** Default progress bar color\n@progress-bar-bg: @brand-primary;\n//** Success progress bar color\n@progress-bar-success-bg: @brand-success;\n//** Warning progress bar color\n@progress-bar-warning-bg: @brand-warning;\n//** Danger progress bar color\n@progress-bar-danger-bg: @brand-danger;\n//** Info progress bar color\n@progress-bar-info-bg: @brand-info;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n@list-group-bg: #fff;\n//** `.list-group-item` border color\n@list-group-border: #ddd;\n//** List group border radius\n@list-group-border-radius: @border-radius-base;\n\n//** Background color of single list elements on hover\n@list-group-hover-bg: #f5f5f5;\n//** Text color of active list elements\n@list-group-active-color: @component-active-color;\n//** Background color of active list elements\n@list-group-active-bg: @component-active-bg;\n//** Border color of active list elements\n@list-group-active-border: @list-group-active-bg;\n@list-group-active-text-color: lighten(@list-group-active-bg, 40%);\n\n@list-group-link-color: #555;\n@list-group-link-heading-color: #333;\n\n\n//== Panels\n//\n//##\n\n@panel-bg: #fff;\n@panel-body-padding: 15px;\n@panel-border-radius: @border-radius-base;\n\n//** Border color for elements within panels\n@panel-inner-border: #ddd;\n@panel-footer-bg: #f5f5f5;\n\n@panel-default-text: @gray-dark;\n@panel-default-border: #ddd;\n@panel-default-heading-bg: #f5f5f5;\n\n@panel-primary-text: #fff;\n@panel-primary-border: @brand-primary;\n@panel-primary-heading-bg: @brand-primary;\n\n@panel-success-text: @state-success-text;\n@panel-success-border: @state-success-border;\n@panel-success-heading-bg: @state-success-bg;\n\n@panel-info-text: @state-info-text;\n@panel-info-border: @state-info-border;\n@panel-info-heading-bg: @state-info-bg;\n\n@panel-warning-text: @state-warning-text;\n@panel-warning-border: @state-warning-border;\n@panel-warning-heading-bg: @state-warning-bg;\n\n@panel-danger-text: @state-danger-text;\n@panel-danger-border: @state-danger-border;\n@panel-danger-heading-bg: @state-danger-bg;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n@thumbnail-padding: 4px;\n//** Thumbnail background color\n@thumbnail-bg: @body-bg;\n//** Thumbnail border color\n@thumbnail-border: #ddd;\n//** Thumbnail border radius\n@thumbnail-border-radius: @border-radius-base;\n\n//** Custom text color for thumbnail captions\n@thumbnail-caption-color: @text-color;\n//** Padding around the thumbnail caption\n@thumbnail-caption-padding: 9px;\n\n\n//== Wells\n//\n//##\n\n@well-bg: #f5f5f5;\n@well-border: darken(@well-bg, 7%);\n\n\n//== Badges\n//\n//##\n\n@badge-color: #fff;\n//** Linked badge text color on hover\n@badge-link-hover-color: #fff;\n@badge-bg: @gray-light;\n\n//** Badge text color in active nav link\n@badge-active-color: @link-color;\n//** Badge background color in active nav link\n@badge-active-bg: #fff;\n\n@badge-font-weight: bold;\n@badge-line-height: 1;\n@badge-border-radius: 10px;\n\n\n//== Breadcrumbs\n//\n//##\n\n@breadcrumb-padding-vertical: 8px;\n@breadcrumb-padding-horizontal: 15px;\n//** Breadcrumb background color\n@breadcrumb-bg: #f5f5f5;\n//** Breadcrumb text color\n@breadcrumb-color: #ccc;\n//** Text color of current page in the breadcrumb\n@breadcrumb-active-color: @gray-light;\n//** Textual separator for between breadcrumb elements\n@breadcrumb-separator: \"/\";\n\n\n//== Carousel\n//\n//##\n\n@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);\n\n@carousel-control-color: #fff;\n@carousel-control-width: 15%;\n@carousel-control-opacity: .5;\n@carousel-control-font-size: 20px;\n\n@carousel-indicator-active-bg: #fff;\n@carousel-indicator-border-color: #fff;\n\n@carousel-caption-color: #fff;\n\n\n//== Close\n//\n//##\n\n@close-font-weight: bold;\n@close-color: #000;\n@close-text-shadow: 0 1px 0 #fff;\n\n\n//== Code\n//\n//##\n\n@code-color: #c7254e;\n@code-bg: #f9f2f4;\n\n@kbd-color: #fff;\n@kbd-bg: #333;\n\n@pre-bg: #f5f5f5;\n@pre-color: @gray-dark;\n@pre-border-color: #ccc;\n@pre-scrollable-max-height: 340px;\n\n\n//== Type\n//\n//##\n\n//** Text muted color\n@text-muted: @gray-light;\n//** Abbreviations and acronyms border color\n@abbr-border-color: @gray-light;\n//** Headings small color\n@headings-small-color: @gray-light;\n//** Blockquote small color\n@blockquote-small-color: @gray-light;\n//** Blockquote font size\n@blockquote-font-size: (@font-size-base * 1.25);\n//** Blockquote border color\n@blockquote-border-color: @gray-lighter;\n//** Page header border color\n@page-header-border-color: @gray-lighter;\n\n\n//== Miscellaneous\n//\n//##\n\n//** Horizontal line color.\n@hr-border: @gray-lighter;\n\n//** Horizontal offset for forms and lists.\n@component-offset-horizontal: 180px;\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n }\n\n > .active,\n > .next,\n > .prev { display: block; }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: none;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n font-family: serif;\n }\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n font-size: 30px;\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 200;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: 14px base font * 85% = about 12px\nsmall,\n.small { font-size: 85%; }\n\n// Undo browser default styling\ncite { font-style: normal; }\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// --------------------------------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n@media (min-width: @grid-float-breakpoint) {\n .dl-horizontal {\n dt {\n float: left;\n width: (@component-offset-horizontal - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @component-offset-horizontal;\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n }\n}\n\n// MISC\n// ----\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Quotes\nblockquote:before,\nblockquote:after {\n content: \"\";\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n white-space: nowrap;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n max-width: 100%;\n background-color: @table-bg;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-child(odd) {\n > td,\n > th {\n background-color: @table-bg-accent;\n }\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n > td,\n > th {\n background-color: @table-bg-hover;\n }\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n@media (max-width: @screen-xs-max) {\n .table-responsive {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n overflow-x: scroll;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n -webkit-overflow-scrolling: touch;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; /* IE8-9 */\n line-height: normal;\n}\n\n// Set the height of file controls to match text inputs\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n cursor: not-allowed;\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS date input\n//\n// In Mobile Safari, date inputs require a pixel line-height that matches the\n// given height of the input.\n\ninput[type=\"date\"] {\n line-height: @input-height-base;\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: 15px;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n display: block;\n min-height: @line-height-computed; // clear the floating input if there is no label text\n margin-top: 10px;\n margin-bottom: 10px;\n padding-left: 20px;\n label {\n display: inline;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n float: left;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"],\n.radio,\n.radio-inline,\n.checkbox,\n.checkbox-inline {\n &[disabled],\n fieldset[disabled] & {\n cursor: not-allowed;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n\n // Feedback icon (requires .glyphicon classes)\n .form-control-feedback {\n position: absolute;\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n right: 0;\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n }\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n margin-bottom: 0; // Remove default margin from `p`\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match (which also avoids\n // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n vertical-align: middle;\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n float: none;\n margin-left: 0;\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of labels, radios, and checkboxes\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n .form-control-static {\n padding-top: (@padding-base-vertical + 1);\n }\n\n // Only right align form labels here when the columns stop stacking\n @media (min-width: @screen-sm-min) {\n .control-label {\n text-align: right;\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n top: 0;\n right: (@grid-gutter-width / 2);\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: not-allowed;\n pointer-events: none; // Future-proof disabling of clicks\n .opacity(.65);\n .box-shadow(none);\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n cursor: pointer;\n border-radius: 0;\n\n &,\n &:active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: underline;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n &:focus {\n // Remove focus outline when dropdown JS adds it after closing the menu\n outline: none;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// 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\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n border-top-right-radius: @border-radius-base;\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n border-bottom-left-radius: @border-radius-base;\n .border-top-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n}\n\n\n// Checkbox and radio options\n[data-toggle=\"buttons\"] > .btn > input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn > input[type=\"checkbox\"] {\n display: none;\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n &.in {\n display: block;\n }\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition(height .35s ease);\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: ~\"url('@{icon-font-path}@{icon-font-name}.eot')\";\n src: ~\"url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype')\",\n ~\"url('@{icon-font-path}@{icon-font-name}.woff') format('woff')\",\n ~\"url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype')\",\n ~\"url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg')\";\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\2a\"; } }\n.glyphicon-plus { &:before { content: \"\\2b\"; } }\n.glyphicon-euro { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base solid;\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n}\n// Nuke hover/focus effects\n.dropdown-menu > .disabled > a {\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: not-allowed;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base solid;\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 1px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn { .input-lg(); }\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn { .input-sm(); }\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @border-radius-base;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n max-height: @navbar-collapse-max-height;\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: none;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n\n &.navbar-right:last-child {\n margin-right: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right { .pull-right(); }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n\n // Outdent the form if last child to line up with content down the page\n &.navbar-right:last-child {\n margin-right: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n\n // Outdent the form if last child to line up with content down the page\n &.navbar-right:last-child {\n margin-right: 0;\n }\n }\n}\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n visibility: hidden !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: not-allowed;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: not-allowed;\n }\n }\n\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n &[href] {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base classes\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: baseline;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n .btn-xs & {\n top: 0;\n padding: 1px 5px;\n }\n}\n\n// Hover state, but only for links\na.badge {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n}\n\n// Account for counters in navs\na.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n .container & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: (@font-size-base * 4.5);\n }\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissable alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n.progress-striped .progress-bar {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n.progress.active .progress-bar {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Media objects\n// Source: http://stubbornella.org/content/?p=497\n// --------------------------------------------------\n\n\n// Common styles\n// -------------------------\n\n// Clear the floats\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n\n// Proper spacing between instances of .media\n.media,\n.media .media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n\n// For images and videos, set to block\n.media-object {\n display: block;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin: 0 0 5px;\n}\n\n\n// Media image alignment\n// -------------------------\n\n.media {\n > .pull-left {\n margin-right: 10px;\n }\n > .pull-right {\n margin-left: 10px;\n }\n}\n\n\n// Media list variation\n// -------------------------\n\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n\n // Align badges within list items\n > .badge {\n float: right;\n }\n > .badge + .badge {\n margin-right: 5px;\n }\n}\n\n\n// Linked list items\n//\n// Use anchor elements instead of `li`s or `div`s to create linked list items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @list-group-hover-bg;\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: 10px 15px;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table {\n margin-bottom: 0;\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n overflow: hidden; // crop contents when collapsed\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n + .panel-collapse .panel-body {\n border-top: 1px solid @panel-inner-border;\n }\n }\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: auto;\n overflow-y: scroll;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0)}\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: none;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n min-height: (@modal-title-padding + @modal-title-line-height);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n margin-top: 15px;\n padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n visibility: visible;\n font-size: @font-size-small;\n line-height: 1.4;\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n text-decoration: none;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n text-align: left; // Reset given new insertion method\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Overrides for proper insertion\n white-space: normal;\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 18px;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: 5px 5px 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#browsers\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n"]} \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/css/bootstrap.min.css b/deprecated/jinwei.me/mobile/css/bootstrap.min.css
new file mode 100644
index 0000000..679272d
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/css/bootstrap.min.css
@@ -0,0 +1,7 @@
1/*!
2 * Bootstrap v3.1.1 (http://getbootstrap.com)
3 * Copyright 2011-2014 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */
6
7/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@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) ")"}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}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.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,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,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(45deg,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-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,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(45deg,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)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,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(45deg,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)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,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(45deg,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)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,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(45deg,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)}.media,.media-body{overflow:hidden;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{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(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{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.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,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.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,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/css/navbar.less b/deprecated/jinwei.me/mobile/css/navbar.less
new file mode 100644
index 0000000..8c4c210
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/css/navbar.less
@@ -0,0 +1,616 @@
1//
2// Navbars
3// --------------------------------------------------
4
5
6// Wrapper and base class
7//
8// Provide a static navbar from which we expand to create full-width, fixed, and
9// other navbar variations.
10
11.navbar {
12 position: relative;
13 min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
14 margin-bottom: @navbar-margin-bottom;
15 border: 1px solid transparent;
16
17 // Prevent floats from breaking the navbar
18 &:extend(.clearfix all);
19
20 @media (min-width: @grid-float-breakpoint) {
21 border-radius: @navbar-border-radius;
22 }
23}
24
25
26// Navbar heading
27//
28// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
29// styling of responsive aspects.
30
31.navbar-header {
32 &:extend(.clearfix all);
33
34 @media (min-width: @grid-float-breakpoint) {
35 float: left;
36 }
37}
38
39
40// Navbar collapse (body)
41//
42// Group your navbar content into this for easy collapsing and expanding across
43// various device sizes. By default, this content is collapsed when <768px, but
44// will expand past that for a horizontal display.
45//
46// To start (on mobile devices) the navbar links, forms, and buttons are stacked
47// vertically and include a `max-height` to overflow in case you have too much
48// content for the user's viewport.
49
50.navbar-collapse {
51 max-height: @navbar-collapse-max-height;
52 overflow-x: visible;
53 padding-right: @navbar-padding-horizontal;
54 padding-left: @navbar-padding-horizontal;
55 border-top: 1px solid transparent;
56 box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
57 &:extend(.clearfix all);
58 -webkit-overflow-scrolling: touch;
59
60 &.in {
61 overflow-y: auto;
62 }
63
64 @media (min-width: @grid-float-breakpoint) {
65 width: auto;
66 border-top: 0;
67 box-shadow: none;
68
69 &.collapse {
70 display: block !important;
71 height: auto !important;
72 padding-bottom: 0; // Override default setting
73 overflow: visible !important;
74 }
75
76 &.in {
77 overflow-y: visible;
78 }
79
80 // Undo the collapse side padding for navbars with containers to ensure
81 // alignment of right-aligned contents.
82 .navbar-fixed-top &,
83 .navbar-static-top &,
84 .navbar-fixed-bottom & {
85 padding-left: 0;
86 padding-right: 0;
87 }
88 }
89}
90
91
92// Both navbar header and collapse
93//
94// When a container is present, change the behavior of the header and collapse.
95
96.container,
97.container-fluid {
98 > .navbar-header,
99 > .navbar-collapse {
100 margin-right: -@navbar-padding-horizontal;
101 margin-left: -@navbar-padding-horizontal;
102
103 @media (min-width: @grid-float-breakpoint) {
104 margin-right: 0;
105 margin-left: 0;
106 }
107 }
108}
109
110
111//
112// Navbar alignment options
113//
114// Display the navbar across the entirety of the page or fixed it to the top or
115// bottom of the page.
116
117// Static top (unfixed, but 100% wide) navbar
118.navbar-static-top {
119 z-index: @zindex-navbar;
120 border-width: 0 0 1px;
121
122 @media (min-width: @grid-float-breakpoint) {
123 border-radius: 0;
124 }
125}
126
127// Fix the top/bottom navbars when screen real estate supports it
128.navbar-fixed-top,
129.navbar-fixed-bottom {
130 position: fixed;
131 right: 0;
132 left: 0;
133 z-index: @zindex-navbar-fixed;
134
135 // Undo the rounded corners
136 @media (min-width: @grid-float-breakpoint) {
137 border-radius: 0;
138 }
139}
140.navbar-fixed-top {
141 top: 0;
142 border-width: 0 0 1px;
143}
144.navbar-fixed-bottom {
145 bottom: 0;
146 margin-bottom: 0; // override .navbar defaults
147 border-width: 1px 0 0;
148}
149
150
151// Brand/project name
152
153.navbar-brand {
154 float: left;
155 padding: @navbar-padding-vertical @navbar-padding-horizontal;
156 font-size: @font-size-large;
157 line-height: @line-height-computed;
158 height: @navbar-height;
159
160 &:hover,
161 &:focus {
162 text-decoration: none;
163 }
164
165 @media (min-width: @grid-float-breakpoint) {
166 .navbar > .container &,
167 .navbar > .container-fluid & {
168 margin-left: -@navbar-padding-horizontal;
169 }
170 }
171}
172
173
174// Navbar toggle
175//
176// Custom button for toggling the `.navbar-collapse`, powered by the collapse
177// JavaScript plugin.
178
179.navbar-toggle {
180 position: relative;
181 float: right;
182 margin-right: @navbar-padding-horizontal;
183 padding: 9px 10px;
184 .navbar-vertical-align(34px);
185 background-color: transparent;
186 background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
187 border: 1px solid transparent;
188 border-radius: @border-radius-base;
189
190 // We remove the `outline` here, but later compensate by attaching `:hover`
191 // styles to `:focus`.
192 &:focus {
193 outline: none;
194 }
195
196 // Bars
197 .icon-bar {
198 display: block;
199 width: 22px;
200 height: 2px;
201 border-radius: 1px;
202 }
203 .icon-bar + .icon-bar {
204 margin-top: 4px;
205 }
206
207 @media (min-width: @grid-float-breakpoint) {
208 display: none;
209 }
210}
211
212
213// Navbar nav links
214//
215// Builds on top of the `.nav` components with its own modifier class to make
216// the nav the full height of the horizontal nav (above 768px).
217
218.navbar-nav {
219 margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
220
221 > li > a {
222 padding-top: 10px;
223 padding-bottom: 10px;
224 line-height: @line-height-computed;
225 }
226
227 @media (max-width: @grid-float-breakpoint-max) {
228 // Dropdowns get custom display when collapsed
229 .open .dropdown-menu {
230 position: static;
231 float: none;
232 width: auto;
233 margin-top: 0;
234 background-color: transparent;
235 border: 0;
236 box-shadow: none;
237 > li > a,
238 .dropdown-header {
239 padding: 5px 15px 5px 25px;
240 }
241 > li > a {
242 line-height: @line-height-computed;
243 &:hover,
244 &:focus {
245 background-image: none;
246 }
247 }
248 }
249 }
250
251 // Uncollapse the nav
252 @media (min-width: @grid-float-breakpoint) {
253 float: left;
254 margin: 0;
255
256 > li {
257 float: left;
258 > a {
259 padding-top: @navbar-padding-vertical;
260 padding-bottom: @navbar-padding-vertical;
261 }
262 }
263
264 &.navbar-right:last-child {
265 margin-right: -@navbar-padding-horizontal;
266 }
267 }
268}
269
270
271// Component alignment
272//
273// Repurpose the pull utilities as their own navbar utilities to avoid specificity
274// issues with parents and chaining. Only do this when the navbar is uncollapsed
275// though so that navbar contents properly stack and align in mobile.
276
277@media (min-width: @grid-float-breakpoint) {
278 .navbar-left { .pull-left(); }
279 .navbar-right { .pull-right(); }
280}
281
282
283// Navbar form
284//
285// Extension of the `.form-inline` with some extra flavor for optimum display in
286// our navbars.
287
288.navbar-form {
289 margin-left: -@navbar-padding-horizontal;
290 margin-right: -@navbar-padding-horizontal;
291 padding: 10px @navbar-padding-horizontal;
292 border-top: 1px solid transparent;
293 border-bottom: 1px solid transparent;
294 @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
295 .box-shadow(@shadow);
296
297 // Mixin behavior for optimum display
298 .form-inline();
299
300 .form-group {
301 @media (max-width: @grid-float-breakpoint-max) {
302 margin-bottom: 5px;
303 }
304 }
305
306 // Vertically center in expanded, horizontal navbar
307 .navbar-vertical-align(@input-height-base);
308
309 // Undo 100% width for pull classes
310 @media (min-width: @grid-float-breakpoint) {
311 width: auto;
312 border: 0;
313 margin-left: 0;
314 margin-right: 0;
315 padding-top: 0;
316 padding-bottom: 0;
317 .box-shadow(none);
318
319 // Outdent the form if last child to line up with content down the page
320 &.navbar-right:last-child {
321 margin-right: -@navbar-padding-horizontal;
322 }
323 }
324}
325
326
327// Dropdown menus
328
329// Menu position and menu carets
330.navbar-nav > li > .dropdown-menu {
331 margin-top: 0;
332 .border-top-radius(0);
333}
334// Menu position and menu caret support for dropups via extra dropup class
335.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
336 .border-bottom-radius(0);
337}
338
339
340// Buttons in navbars
341//
342// Vertically center a button within a navbar (when *not* in a form).
343
344.navbar-btn {
345 .navbar-vertical-align(@input-height-base);
346
347 &.btn-sm {
348 .navbar-vertical-align(@input-height-small);
349 }
350 &.btn-xs {
351 .navbar-vertical-align(22);
352 }
353}
354
355
356// Text in navbars
357//
358// Add a class to make any element properly align itself vertically within the navbars.
359
360.navbar-text {
361 .navbar-vertical-align(@line-height-computed);
362
363 @media (min-width: @grid-float-breakpoint) {
364 float: left;
365 margin-left: @navbar-padding-horizontal;
366 margin-right: @navbar-padding-horizontal;
367
368 // Outdent the form if last child to line up with content down the page
369 &.navbar-right:last-child {
370 margin-right: 0;
371 }
372 }
373}
374
375// Alternate navbars
376// --------------------------------------------------
377
378// Default navbar
379.navbar-default {
380 background-color: @navbar-default-bg;
381 border-color: @navbar-default-border;
382
383 .navbar-brand {
384 color: @navbar-default-brand-color;
385 &:hover,
386 &:focus {
387 color: @navbar-default-brand-hover-color;
388 background-color: @navbar-default-brand-hover-bg;
389 }
390 }
391
392 .navbar-text {
393 color: @navbar-default-color;
394 }
395
396 .navbar-nav {
397 > li > a {
398 color: @navbar-default-link-color;
399
400 &:hover,
401 &:focus {
402 color: @navbar-default-link-hover-color;
403 background-color: @navbar-default-link-hover-bg;
404 }
405 }
406 > .active > a {
407 &,
408 &:hover,
409 &:focus {
410 color: @navbar-default-link-active-color;
411 background-color: @navbar-default-link-active-bg;
412 }
413 }
414 > .disabled > a {
415 &,
416 &:hover,
417 &:focus {
418 color: @navbar-default-link-disabled-color;
419 background-color: @navbar-default-link-disabled-bg;
420 }
421 }
422 }
423
424 .navbar-toggle {
425 border-color: @navbar-default-toggle-border-color;
426 &:hover,
427 &:focus {
428 background-color: @navbar-default-toggle-hover-bg;
429 }
430 .icon-bar {
431 background-color: @navbar-default-toggle-icon-bar-bg;
432 }
433 }
434
435 .navbar-collapse,
436 .navbar-form {
437 border-color: @navbar-default-border;
438 }
439
440 // Dropdown menu items
441 .navbar-nav {
442 // Remove background color from open dropdown
443 > .open > a {
444 &,
445 &:hover,
446 &:focus {
447 background-color: @navbar-default-link-active-bg;
448 color: @navbar-default-link-active-color;
449 }
450 }
451
452 @media (max-width: @grid-float-breakpoint-max) {
453 // Dropdowns get custom display when collapsed
454 .open .dropdown-menu {
455 > li > a {
456 color: @navbar-default-link-color;
457 &:hover,
458 &:focus {
459 color: @navbar-default-link-hover-color;
460 background-color: @navbar-default-link-hover-bg;
461 }
462 }
463 > .active > a {
464 &,
465 &:hover,
466 &:focus {
467 color: @navbar-default-link-active-color;
468 background-color: @navbar-default-link-active-bg;
469 }
470 }
471 > .disabled > a {
472 &,
473 &:hover,
474 &:focus {
475 color: @navbar-default-link-disabled-color;
476 background-color: @navbar-default-link-disabled-bg;
477 }
478 }
479 }
480 }
481 }
482
483
484 // Links in navbars
485 //
486 // Add a class to ensure links outside the navbar nav are colored correctly.
487
488 .navbar-link {
489 color: @navbar-default-link-color;
490 &:hover {
491 color: @navbar-default-link-hover-color;
492 }
493 }
494
495}
496
497// Inverse navbar
498
499.navbar-inverse {
500 background-color: @navbar-inverse-bg;
501 border-color: @navbar-inverse-border;
502
503 .navbar-brand {
504 color: @navbar-inverse-brand-color;
505 &:hover,
506 &:focus {
507 color: @navbar-inverse-brand-hover-color;
508 background-color: @navbar-inverse-brand-hover-bg;
509 }
510 }
511
512 .navbar-text {
513 color: @navbar-inverse-color;
514 }
515
516 .navbar-nav {
517 > li > a {
518 color: @navbar-inverse-link-color;
519
520 &:hover,
521 &:focus {
522 color: @navbar-inverse-link-hover-color;
523 background-color: @navbar-inverse-link-hover-bg;
524 }
525 }
526 > .active > a {
527 &,
528 &:hover,
529 &:focus {
530 color: @navbar-inverse-link-active-color;
531 background-color: @navbar-inverse-link-active-bg;
532 }
533 }
534 > .disabled > a {
535 &,
536 &:hover,
537 &:focus {
538 color: @navbar-inverse-link-disabled-color;
539 background-color: @navbar-inverse-link-disabled-bg;
540 }
541 }
542 }
543
544 // Darken the responsive nav toggle
545 .navbar-toggle {
546 border-color: @navbar-inverse-toggle-border-color;
547 &:hover,
548 &:focus {
549 background-color: @navbar-inverse-toggle-hover-bg;
550 }
551 .icon-bar {
552 background-color: @navbar-inverse-toggle-icon-bar-bg;
553 }
554 }
555
556 .navbar-collapse,
557 .navbar-form {
558 border-color: darken(@navbar-inverse-bg, 7%);
559 }
560
561 // Dropdowns
562 .navbar-nav {
563 > .open > a {
564 &,
565 &:hover,
566 &:focus {
567 background-color: @navbar-inverse-link-active-bg;
568 color: @navbar-inverse-link-active-color;
569 }
570 }
571
572 @media (max-width: @grid-float-breakpoint-max) {
573 // Dropdowns get custom display
574 .open .dropdown-menu {
575 > .dropdown-header {
576 border-color: @navbar-inverse-border;
577 }
578 .divider {
579 background-color: @navbar-inverse-border;
580 }
581 > li > a {
582 color: @navbar-inverse-link-color;
583 &:hover,
584 &:focus {
585 color: @navbar-inverse-link-hover-color;
586 background-color: @navbar-inverse-link-hover-bg;
587 }
588 }
589 > .active > a {
590 &,
591 &:hover,
592 &:focus {
593 color: @navbar-inverse-link-active-color;
594 background-color: @navbar-inverse-link-active-bg;
595 }
596 }
597 > .disabled > a {
598 &,
599 &:hover,
600 &:focus {
601 color: @navbar-inverse-link-disabled-color;
602 background-color: @navbar-inverse-link-disabled-bg;
603 }
604 }
605 }
606 }
607 }
608
609 .navbar-link {
610 color: @navbar-inverse-link-color;
611 &:hover {
612 color: @navbar-inverse-link-hover-color;
613 }
614 }
615
616}
diff --git a/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.eot b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..4a4ca86
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.svg b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..e3e2dc7
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,229 @@
1<?xml version="1.0" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3<svg xmlns="http://www.w3.org/2000/svg">
4<metadata></metadata>
5<defs>
6<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
7<font-face units-per-em="1200" ascent="960" descent="-240" />
8<missing-glyph horiz-adv-x="500" />
9<glyph />
10<glyph />
11<glyph unicode="&#xd;" />
12<glyph unicode=" " />
13<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
14<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
15<glyph unicode="&#xa0;" />
16<glyph unicode="&#x2000;" horiz-adv-x="652" />
17<glyph unicode="&#x2001;" horiz-adv-x="1304" />
18<glyph unicode="&#x2002;" horiz-adv-x="652" />
19<glyph unicode="&#x2003;" horiz-adv-x="1304" />
20<glyph unicode="&#x2004;" horiz-adv-x="434" />
21<glyph unicode="&#x2005;" horiz-adv-x="326" />
22<glyph unicode="&#x2006;" horiz-adv-x="217" />
23<glyph unicode="&#x2007;" horiz-adv-x="217" />
24<glyph unicode="&#x2008;" horiz-adv-x="163" />
25<glyph unicode="&#x2009;" horiz-adv-x="260" />
26<glyph unicode="&#x200a;" horiz-adv-x="72" />
27<glyph unicode="&#x202f;" horiz-adv-x="260" />
28<glyph unicode="&#x205f;" horiz-adv-x="326" />
29<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
30<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
31<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
32<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
33<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
34<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
35<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
36<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
37<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
38<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
39<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
40<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
41<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
42<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
43<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
44<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
45<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
46<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
47<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
48<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
49<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
50<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
51<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
52<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
53<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
54<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
55<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
56<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
57<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
58<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
59<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
60<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
61<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
62<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
63<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
64<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
65<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
66<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
67<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
68<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
69<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
70<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
71<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
72<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
73<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
74<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
75<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
76<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
77<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
78<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
79<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
80<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
81<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
82<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
83<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
84<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
85<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
86<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
87<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
88<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
89<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
90<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
91<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
92<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
93<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
94<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
95<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
96<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
97<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
98<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
99<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
100<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
101<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
102<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
103<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
104<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
105<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
106<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
107<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
108<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
109<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
110<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
111<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
112<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
113<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
114<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
115<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
116<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
117<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
118<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
119<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
120<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
121<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
122<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
123<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
124<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
125<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
126<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
127<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
128<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
129<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
130<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
131<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
132<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
133<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
134<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
135<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
136<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
137<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
138<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
139<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
140<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
141<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
142<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
143<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
144<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
145<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
146<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
147<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
148<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
149<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
150<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
151<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
152<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
153<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
154<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
155<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
156<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
157<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
158<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
159<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
160<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
161<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
162<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
163<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
164<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
165<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
166<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
167<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
168<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
169<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
170<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
171<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
172<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
173<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
174<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
175<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
176<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
177<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
178<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
179<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
180<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
181<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
182<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
183<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
184<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
185<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
186<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
187<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
188<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
189<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
190<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
191<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
192<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
193<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
194<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
195<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
196<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
197<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
198<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
199<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
200<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
201<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
202<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
203<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
204<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
205<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
206<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
207<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
208<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
209<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
210<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
211<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
212<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
213<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
214<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
215<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
216<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
217<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
218<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
219<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
220<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
221<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
222<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
223<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
224<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
225<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
226<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
227<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
228</font>
229</defs></svg> \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.ttf b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..67fa00b
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.woff b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..8c54182
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/deprecated/jinwei.me/mobile/index.html b/deprecated/jinwei.me/mobile/index.html
new file mode 100644
index 0000000..9964c70
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/index.html
@@ -0,0 +1,98 @@
1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5 <meta charset="utf-8">
6 <meta http-equiv="X-UA-Compatible" content="IE=edge">
7 <meta name="viewport" content="width=device-width, initial-scale=1">
8 <script src="js/less.js" type="text/javascript"></script>
9 <title>Jinwei的小站</title>
10 <!-- Bootstrap core CSS -->
11 <link href="css/bootstrap.min.css" rel="stylesheet">
12 <link rel="stylesheet/less" type="text/css" href="css/navbar.less">
13</head>
14
15<body>
16 <div class="container">
17 <!-- Static navbar -->
18 <div class="navbar navbar-default" role="navigation">
19 <div class="container-fluid">
20 <div class="navbar-header">
21 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
22 <span class="sr-only">Toggle navigation</span>
23 <span class="icon-bar"></span>
24 <span class="icon-bar"></span>
25 <span class="icon-bar"></span>
26 </button>
27 <a class="navbar-brand" href="#">jinwei.me</a>
28 </div>
29 <div class="navbar-collapse collapse">
30 <ul class="nav navbar-nav">
31 <li class="active">
32 <a href="http://jinwei-me.lofter.com">Blog</a>
33 </li>
34 <li class="dropdown">
35 <a href="#" class="dropdown-toggle" data-toggle="dropdown">
36 About me <b class="caret"></b>
37 </a>
38 <ul class="dropdown-menu">
39 <li class="dropdown-header">Tags</li>
40 <li>
41 <a href="#">95后</a>
42 </li>
43 <li>
44 <a href="#">大一</a>
45 </li>
46 <li>
47 <a href="#">Go语言爱好者</a>
48 </li>
49 <li>
50 <a href="#">伪文青</a>
51 </li>
52 <li>
53 <a href="#">宅</a>
54 </li>
55 <li>
56 <a href="#">爱折腾</a>
57 </li>
58 <li>
59 <a href="#">爱技术</a>
60 </li>
61 <li>
62 <a href="#">爱有技术会设计的妹子</a>
63 </li>
64 </ul>
65 </li>
66 </ul>
67 <ul class="nav navbar-nav navbar-right">
68 <li>
69 <a href="https://github.com/JinweiClarkChao/jinweiclarkchao.github.com" target="_blank">View it on Github</a>
70 </li>
71 </ul>
72 </div>
73 <!--/.nav-collapse -->
74 </div>
75 <!--/.container-fluid -->
76 </div>
77 <!-- Main component for a primary marketing message or call to action -->
78 <div class="jumbotron">
79 <h1>Jinwei的小站</h1>
80 <p>如果你是Android用户,下载下面的App</p>
81 <p>
82 <a class="btn btn-lg btn-primary" href="http://jinwei-me.lofter.com/app" target="_blank" role="button">Download App</a>
83 </p>
84 <p>如果你是iPhone, iPad, Windows Phone, Blackberry等用户......</p>
85 <p>
86 <a class="btn btn-lg btn-primary" href="#" role="button">Wait for me</a>
87 </p>
88 </div>
89 </div>
90 <!-- /container -->
91 <!-- Bootstrap core JavaScript
92 ================================================== -->
93 <!-- Placed at the end of the document so the pages load faster -->
94 <script src="js/jquery.min.js"></script>
95 <script src="js/bootstrap.min.js"></script>
96</body>
97
98</html>
diff --git a/deprecated/jinwei.me/mobile/js/bootstrap.js b/deprecated/jinwei.me/mobile/js/bootstrap.js
new file mode 100644
index 0000000..1019e52
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/js/bootstrap.js
@@ -0,0 +1,1988 @@
1/*!
2 * Bootstrap v3.1.1 (http://getbootstrap.com)
3 * Copyright 2011-2014 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */
6
7if (typeof jQuery === 'undefined') {
8 throw new Error('Bootstrap\'s JavaScript requires jQuery')
9}
10
11/* ========================================================================
12 * Bootstrap: transition.js v3.1.1
13 * http://getbootstrap.com/javascript/#transitions
14 * ========================================================================
15 * Copyright 2011-2014 Twitter, Inc.
16 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
17 * ======================================================================== */
18
19
20+ function($) {
21 'use strict';
22
23 // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
24 // ============================================================
25
26 function transitionEnd() {
27 var el = document.createElement('bootstrap')
28
29 var transEndEventNames = {
30 'WebkitTransition': 'webkitTransitionEnd',
31 'MozTransition': 'transitionend',
32 'OTransition': 'oTransitionEnd otransitionend',
33 'transition': 'transitionend'
34 }
35
36 for (var name in transEndEventNames) {
37 if (el.style[name] !== undefined) {
38 return {
39 end: transEndEventNames[name]
40 }
41 }
42 }
43
44 return false // explicit for ie8 ( ._.)
45 }
46
47 // http://blog.alexmaccaw.com/css-transitions
48 $.fn.emulateTransitionEnd = function(duration) {
49 var called = false,
50 $el = this
51 $(this).one($.support.transition.end, function() {
52 called = true
53 })
54 var callback = function() {
55 if (!called) $($el).trigger($.support.transition.end)
56 }
57 setTimeout(callback, duration)
58 return this
59 }
60
61 $(function() {
62 $.support.transition = transitionEnd()
63 })
64
65}(jQuery);
66
67/* ========================================================================
68 * Bootstrap: alert.js v3.1.1
69 * http://getbootstrap.com/javascript/#alerts
70 * ========================================================================
71 * Copyright 2011-2014 Twitter, Inc.
72 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
73 * ======================================================================== */
74
75
76+ function($) {
77 'use strict';
78
79 // ALERT CLASS DEFINITION
80 // ======================
81
82 var dismiss = '[data-dismiss="alert"]'
83 var Alert = function(el) {
84 $(el).on('click', dismiss, this.close)
85 }
86
87 Alert.prototype.close = function(e) {
88 var $this = $(this)
89 var selector = $this.attr('data-target')
90
91 if (!selector) {
92 selector = $this.attr('href')
93 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
94 }
95
96 var $parent = $(selector)
97
98 if (e) e.preventDefault()
99
100 if (!$parent.length) {
101 $parent = $this.hasClass('alert') ? $this : $this.parent()
102 }
103
104 $parent.trigger(e = $.Event('close.bs.alert'))
105
106 if (e.isDefaultPrevented()) return
107
108 $parent.removeClass('in')
109
110 function removeElement() {
111 $parent.trigger('closed.bs.alert').remove()
112 }
113
114 $.support.transition && $parent.hasClass('fade') ?
115 $parent
116 .one($.support.transition.end, removeElement)
117 .emulateTransitionEnd(150) :
118 removeElement()
119 }
120
121
122 // ALERT PLUGIN DEFINITION
123 // =======================
124
125 var old = $.fn.alert
126
127 $.fn.alert = function(option) {
128 return this.each(function() {
129 var $this = $(this)
130 var data = $this.data('bs.alert')
131
132 if (!data) $this.data('bs.alert', (data = new Alert(this)))
133 if (typeof option == 'string') data[option].call($this)
134 })
135 }
136
137 $.fn.alert.Constructor = Alert
138
139
140 // ALERT NO CONFLICT
141 // =================
142
143 $.fn.alert.noConflict = function() {
144 $.fn.alert = old
145 return this
146 }
147
148
149 // ALERT DATA-API
150 // ==============
151
152 $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
153
154}(jQuery);
155
156/* ========================================================================
157 * Bootstrap: button.js v3.1.1
158 * http://getbootstrap.com/javascript/#buttons
159 * ========================================================================
160 * Copyright 2011-2014 Twitter, Inc.
161 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
162 * ======================================================================== */
163
164
165+ function($) {
166 'use strict';
167
168 // BUTTON PUBLIC CLASS DEFINITION
169 // ==============================
170
171 var Button = function(element, options) {
172 this.$element = $(element)
173 this.options = $.extend({}, Button.DEFAULTS, options)
174 this.isLoading = false
175 }
176
177 Button.DEFAULTS = {
178 loadingText: 'loading...'
179 }
180
181 Button.prototype.setState = function(state) {
182 var d = 'disabled'
183 var $el = this.$element
184 var val = $el.is('input') ? 'val' : 'html'
185 var data = $el.data()
186
187 state = state + 'Text'
188
189 if (!data.resetText) $el.data('resetText', $el[val]())
190
191 $el[val](data[state] || this.options[state])
192
193 // push to event loop to allow forms to submit
194 setTimeout($.proxy(function() {
195 if (state == 'loadingText') {
196 this.isLoading = true
197 $el.addClass(d).attr(d, d)
198 } else if (this.isLoading) {
199 this.isLoading = false
200 $el.removeClass(d).removeAttr(d)
201 }
202 }, this), 0)
203 }
204
205 Button.prototype.toggle = function() {
206 var changed = true
207 var $parent = this.$element.closest('[data-toggle="buttons"]')
208
209 if ($parent.length) {
210 var $input = this.$element.find('input')
211 if ($input.prop('type') == 'radio') {
212 if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
213 else $parent.find('.active').removeClass('active')
214 }
215 if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
216 }
217
218 if (changed) this.$element.toggleClass('active')
219 }
220
221
222 // BUTTON PLUGIN DEFINITION
223 // ========================
224
225 var old = $.fn.button
226
227 $.fn.button = function(option) {
228 return this.each(function() {
229 var $this = $(this)
230 var data = $this.data('bs.button')
231 var options = typeof option == 'object' && option
232
233 if (!data) $this.data('bs.button', (data = new Button(this, options)))
234
235 if (option == 'toggle') data.toggle()
236 else if (option) data.setState(option)
237 })
238 }
239
240 $.fn.button.Constructor = Button
241
242
243 // BUTTON NO CONFLICT
244 // ==================
245
246 $.fn.button.noConflict = function() {
247 $.fn.button = old
248 return this
249 }
250
251
252 // BUTTON DATA-API
253 // ===============
254
255 $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function(e) {
256 var $btn = $(e.target)
257 if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
258 $btn.button('toggle')
259 e.preventDefault()
260 })
261
262}(jQuery);
263
264/* ========================================================================
265 * Bootstrap: carousel.js v3.1.1
266 * http://getbootstrap.com/javascript/#carousel
267 * ========================================================================
268 * Copyright 2011-2014 Twitter, Inc.
269 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
270 * ======================================================================== */
271
272
273+ function($) {
274 'use strict';
275
276 // CAROUSEL CLASS DEFINITION
277 // =========================
278
279 var Carousel = function(element, options) {
280 this.$element = $(element)
281 this.$indicators = this.$element.find('.carousel-indicators')
282 this.options = options
283 this.paused =
284 this.sliding =
285 this.interval =
286 this.$active =
287 this.$items = null
288
289 this.options.pause == 'hover' && this.$element
290 .on('mouseenter', $.proxy(this.pause, this))
291 .on('mouseleave', $.proxy(this.cycle, this))
292 }
293
294 Carousel.DEFAULTS = {
295 interval: 5000,
296 pause: 'hover',
297 wrap: true
298 }
299
300 Carousel.prototype.cycle = function(e) {
301 e || (this.paused = false)
302
303 this.interval && clearInterval(this.interval)
304
305 this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
306
307 return this
308 }
309
310 Carousel.prototype.getActiveIndex = function() {
311 this.$active = this.$element.find('.item.active')
312 this.$items = this.$active.parent().children()
313
314 return this.$items.index(this.$active)
315 }
316
317 Carousel.prototype.to = function(pos) {
318 var that = this
319 var activeIndex = this.getActiveIndex()
320
321 if (pos > (this.$items.length - 1) || pos < 0) return
322
323 if (this.sliding) return this.$element.one('slid.bs.carousel', function() {
324 that.to(pos)
325 })
326 if (activeIndex == pos) return this.pause().cycle()
327
328 return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
329 }
330
331 Carousel.prototype.pause = function(e) {
332 e || (this.paused = true)
333
334 if (this.$element.find('.next, .prev').length && $.support.transition) {
335 this.$element.trigger($.support.transition.end)
336 this.cycle(true)
337 }
338
339 this.interval = clearInterval(this.interval)
340
341 return this
342 }
343
344 Carousel.prototype.next = function() {
345 if (this.sliding) return
346 return this.slide('next')
347 }
348
349 Carousel.prototype.prev = function() {
350 if (this.sliding) return
351 return this.slide('prev')
352 }
353
354 Carousel.prototype.slide = function(type, next) {
355 var $active = this.$element.find('.item.active')
356 var $next = next || $active[type]()
357 var isCycling = this.interval
358 var direction = type == 'next' ? 'left' : 'right'
359 var fallback = type == 'next' ? 'first' : 'last'
360 var that = this
361
362 if (!$next.length) {
363 if (!this.options.wrap) return
364 $next = this.$element.find('.item')[fallback]()
365 }
366
367 if ($next.hasClass('active')) return this.sliding = false
368
369 var e = $.Event('slide.bs.carousel', {
370 relatedTarget: $next[0],
371 direction: direction
372 })
373 this.$element.trigger(e)
374 if (e.isDefaultPrevented()) return
375
376 this.sliding = true
377
378 isCycling && this.pause()
379
380 if (this.$indicators.length) {
381 this.$indicators.find('.active').removeClass('active')
382 this.$element.one('slid.bs.carousel', function() {
383 var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
384 $nextIndicator && $nextIndicator.addClass('active')
385 })
386 }
387
388 if ($.support.transition && this.$element.hasClass('slide')) {
389 $next.addClass(type)
390 $next[0].offsetWidth // force reflow
391 $active.addClass(direction)
392 $next.addClass(direction)
393 $active
394 .one($.support.transition.end, function() {
395 $next.removeClass([type, direction].join(' ')).addClass('active')
396 $active.removeClass(['active', direction].join(' '))
397 that.sliding = false
398 setTimeout(function() {
399 that.$element.trigger('slid.bs.carousel')
400 }, 0)
401 })
402 .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
403 } else {
404 $active.removeClass('active')
405 $next.addClass('active')
406 this.sliding = false
407 this.$element.trigger('slid.bs.carousel')
408 }
409
410 isCycling && this.cycle()
411
412 return this
413 }
414
415
416 // CAROUSEL PLUGIN DEFINITION
417 // ==========================
418
419 var old = $.fn.carousel
420
421 $.fn.carousel = function(option) {
422 return this.each(function() {
423 var $this = $(this)
424 var data = $this.data('bs.carousel')
425 var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
426 var action = typeof option == 'string' ? option : options.slide
427
428 if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
429 if (typeof option == 'number') data.to(option)
430 else if (action) data[action]()
431 else if (options.interval) data.pause().cycle()
432 })
433 }
434
435 $.fn.carousel.Constructor = Carousel
436
437
438 // CAROUSEL NO CONFLICT
439 // ====================
440
441 $.fn.carousel.noConflict = function() {
442 $.fn.carousel = old
443 return this
444 }
445
446
447 // CAROUSEL DATA-API
448 // =================
449
450 $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function(e) {
451 var $this = $(this),
452 href
453 var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
454 var options = $.extend({}, $target.data(), $this.data())
455 var slideIndex = $this.attr('data-slide-to')
456 if (slideIndex) options.interval = false
457
458 $target.carousel(options)
459
460 if (slideIndex = $this.attr('data-slide-to')) {
461 $target.data('bs.carousel').to(slideIndex)
462 }
463
464 e.preventDefault()
465 })
466
467 $(window).on('load', function() {
468 $('[data-ride="carousel"]').each(function() {
469 var $carousel = $(this)
470 $carousel.carousel($carousel.data())
471 })
472 })
473
474}(jQuery);
475
476/* ========================================================================
477 * Bootstrap: collapse.js v3.1.1
478 * http://getbootstrap.com/javascript/#collapse
479 * ========================================================================
480 * Copyright 2011-2014 Twitter, Inc.
481 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
482 * ======================================================================== */
483
484
485+ function($) {
486 'use strict';
487
488 // COLLAPSE PUBLIC CLASS DEFINITION
489 // ================================
490
491 var Collapse = function(element, options) {
492 this.$element = $(element)
493 this.options = $.extend({}, Collapse.DEFAULTS, options)
494 this.transitioning = null
495
496 if (this.options.parent) this.$parent = $(this.options.parent)
497 if (this.options.toggle) this.toggle()
498 }
499
500 Collapse.DEFAULTS = {
501 toggle: true
502 }
503
504 Collapse.prototype.dimension = function() {
505 var hasWidth = this.$element.hasClass('width')
506 return hasWidth ? 'width' : 'height'
507 }
508
509 Collapse.prototype.show = function() {
510 if (this.transitioning || this.$element.hasClass('in')) return
511
512 var startEvent = $.Event('show.bs.collapse')
513 this.$element.trigger(startEvent)
514 if (startEvent.isDefaultPrevented()) return
515
516 var actives = this.$parent && this.$parent.find('> .panel > .in')
517
518 if (actives && actives.length) {
519 var hasData = actives.data('bs.collapse')
520 if (hasData && hasData.transitioning) return
521 actives.collapse('hide')
522 hasData || actives.data('bs.collapse', null)
523 }
524
525 var dimension = this.dimension()
526
527 this.$element
528 .removeClass('collapse')
529 .addClass('collapsing')[dimension](0)
530
531 this.transitioning = 1
532
533 var complete = function() {
534 this.$element
535 .removeClass('collapsing')
536 .addClass('collapse in')[dimension]('auto')
537 this.transitioning = 0
538 this.$element.trigger('shown.bs.collapse')
539 }
540
541 if (!$.support.transition) return complete.call(this)
542
543 var scrollSize = $.camelCase(['scroll', dimension].join('-'))
544
545 this.$element
546 .one($.support.transition.end, $.proxy(complete, this))
547 .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
548 }
549
550 Collapse.prototype.hide = function() {
551 if (this.transitioning || !this.$element.hasClass('in')) return
552
553 var startEvent = $.Event('hide.bs.collapse')
554 this.$element.trigger(startEvent)
555 if (startEvent.isDefaultPrevented()) return
556
557 var dimension = this.dimension()
558
559 this.$element[dimension](this.$element[dimension]())[0].offsetHeight
560
561 this.$element
562 .addClass('collapsing')
563 .removeClass('collapse')
564 .removeClass('in')
565
566 this.transitioning = 1
567
568 var complete = function() {
569 this.transitioning = 0
570 this.$element
571 .trigger('hidden.bs.collapse')
572 .removeClass('collapsing')
573 .addClass('collapse')
574 }
575
576 if (!$.support.transition) return complete.call(this)
577
578 this.$element[dimension](0)
579 .one($.support.transition.end, $.proxy(complete, this))
580 .emulateTransitionEnd(350)
581 }
582
583 Collapse.prototype.toggle = function() {
584 this[this.$element.hasClass('in') ? 'hide' : 'show']()
585 }
586
587
588 // COLLAPSE PLUGIN DEFINITION
589 // ==========================
590
591 var old = $.fn.collapse
592
593 $.fn.collapse = function(option) {
594 return this.each(function() {
595 var $this = $(this)
596 var data = $this.data('bs.collapse')
597 var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
598
599 if (!data && options.toggle && option == 'show') option = !option
600 if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
601 if (typeof option == 'string') data[option]()
602 })
603 }
604
605 $.fn.collapse.Constructor = Collapse
606
607
608 // COLLAPSE NO CONFLICT
609 // ====================
610
611 $.fn.collapse.noConflict = function() {
612 $.fn.collapse = old
613 return this
614 }
615
616
617 // COLLAPSE DATA-API
618 // =================
619
620 $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function(e) {
621 var $this = $(this),
622 href
623 var target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
624 var $target = $(target)
625 var data = $target.data('bs.collapse')
626 var option = data ? 'toggle' : $this.data()
627 var parent = $this.attr('data-parent')
628 var $parent = parent && $(parent)
629
630 if (!data || !data.transitioning) {
631 if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
632 $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
633 }
634
635 $target.collapse(option)
636 })
637
638}(jQuery);
639
640/* ========================================================================
641 * Bootstrap: dropdown.js v3.1.1
642 * http://getbootstrap.com/javascript/#dropdowns
643 * ========================================================================
644 * Copyright 2011-2014 Twitter, Inc.
645 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
646 * ======================================================================== */
647
648
649+ function($) {
650 'use strict';
651
652 // DROPDOWN CLASS DEFINITION
653 // =========================
654
655 var backdrop = '.dropdown-backdrop'
656 var toggle = '[data-toggle=dropdown]'
657 var Dropdown = function(element) {
658 $(element).on('click.bs.dropdown', this.toggle)
659 }
660
661 Dropdown.prototype.toggle = function(e) {
662 var $this = $(this)
663
664 if ($this.is('.disabled, :disabled')) return
665
666 var $parent = getParent($this)
667 var isActive = $parent.hasClass('open')
668
669 clearMenus()
670
671 if (!isActive) {
672 if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
673 // if mobile we use a backdrop because click events don't delegate
674 $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
675 }
676
677 var relatedTarget = {
678 relatedTarget: this
679 }
680 $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
681
682 if (e.isDefaultPrevented()) return
683
684 $parent
685 .toggleClass('open')
686 .trigger('shown.bs.dropdown', relatedTarget)
687
688 $this.focus()
689 }
690
691 return false
692 }
693
694 Dropdown.prototype.keydown = function(e) {
695 if (!/(38|40|27)/.test(e.keyCode)) return
696
697 var $this = $(this)
698
699 e.preventDefault()
700 e.stopPropagation()
701
702 if ($this.is('.disabled, :disabled')) return
703
704 var $parent = getParent($this)
705 var isActive = $parent.hasClass('open')
706
707 if (!isActive || (isActive && e.keyCode == 27)) {
708 if (e.which == 27) $parent.find(toggle).focus()
709 return $this.click()
710 }
711
712 var desc = ' li:not(.divider):visible a'
713 var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
714
715 if (!$items.length) return
716
717 var index = $items.index($items.filter(':focus'))
718
719 if (e.keyCode == 38 && index > 0) index-- // up
720 if (e.keyCode == 40 && index < $items.length - 1) index++ // down
721 if (!~index) index = 0
722
723 $items.eq(index).focus()
724 }
725
726 function clearMenus(e) {
727 $(backdrop).remove()
728 $(toggle).each(function() {
729 var $parent = getParent($(this))
730 var relatedTarget = {
731 relatedTarget: this
732 }
733 if (!$parent.hasClass('open')) return
734 $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
735 if (e.isDefaultPrevented()) return
736 $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
737 })
738 }
739
740 function getParent($this) {
741 var selector = $this.attr('data-target')
742
743 if (!selector) {
744 selector = $this.attr('href')
745 selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
746 }
747
748 var $parent = selector && $(selector)
749
750 return $parent && $parent.length ? $parent : $this.parent()
751 }
752
753
754 // DROPDOWN PLUGIN DEFINITION
755 // ==========================
756
757 var old = $.fn.dropdown
758
759 $.fn.dropdown = function(option) {
760 return this.each(function() {
761 var $this = $(this)
762 var data = $this.data('bs.dropdown')
763
764 if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
765 if (typeof option == 'string') data[option].call($this)
766 })
767 }
768
769 $.fn.dropdown.Constructor = Dropdown
770
771
772 // DROPDOWN NO CONFLICT
773 // ====================
774
775 $.fn.dropdown.noConflict = function() {
776 $.fn.dropdown = old
777 return this
778 }
779
780
781 // APPLY TO STANDARD DROPDOWN ELEMENTS
782 // ===================================
783
784 $(document)
785 .on('click.bs.dropdown.data-api', clearMenus)
786 .on('click.bs.dropdown.data-api', '.dropdown form', function(e) {
787 e.stopPropagation()
788 })
789 .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
790 .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
791
792}(jQuery);
793
794/* ========================================================================
795 * Bootstrap: modal.js v3.1.1
796 * http://getbootstrap.com/javascript/#modals
797 * ========================================================================
798 * Copyright 2011-2014 Twitter, Inc.
799 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
800 * ======================================================================== */
801
802
803+ function($) {
804 'use strict';
805
806 // MODAL CLASS DEFINITION
807 // ======================
808
809 var Modal = function(element, options) {
810 this.options = options
811 this.$element = $(element)
812 this.$backdrop =
813 this.isShown = null
814
815 if (this.options.remote) {
816 this.$element
817 .find('.modal-content')
818 .load(this.options.remote, $.proxy(function() {
819 this.$element.trigger('loaded.bs.modal')
820 }, this))
821 }
822 }
823
824 Modal.DEFAULTS = {
825 backdrop: true,
826 keyboard: true,
827 show: true
828 }
829
830 Modal.prototype.toggle = function(_relatedTarget) {
831 return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
832 }
833
834 Modal.prototype.show = function(_relatedTarget) {
835 var that = this
836 var e = $.Event('show.bs.modal', {
837 relatedTarget: _relatedTarget
838 })
839
840 this.$element.trigger(e)
841
842 if (this.isShown || e.isDefaultPrevented()) return
843
844 this.isShown = true
845
846 this.escape()
847
848 this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
849
850 this.backdrop(function() {
851 var transition = $.support.transition && that.$element.hasClass('fade')
852
853 if (!that.$element.parent().length) {
854 that.$element.appendTo(document.body) // don't move modals dom position
855 }
856
857 that.$element
858 .show()
859 .scrollTop(0)
860
861 if (transition) {
862 that.$element[0].offsetWidth // force reflow
863 }
864
865 that.$element
866 .addClass('in')
867 .attr('aria-hidden', false)
868
869 that.enforceFocus()
870
871 var e = $.Event('shown.bs.modal', {
872 relatedTarget: _relatedTarget
873 })
874
875 transition ?
876 that.$element.find('.modal-dialog') // wait for modal to slide in
877 .one($.support.transition.end, function() {
878 that.$element.focus().trigger(e)
879 })
880 .emulateTransitionEnd(300) :
881 that.$element.focus().trigger(e)
882 })
883 }
884
885 Modal.prototype.hide = function(e) {
886 if (e) e.preventDefault()
887
888 e = $.Event('hide.bs.modal')
889
890 this.$element.trigger(e)
891
892 if (!this.isShown || e.isDefaultPrevented()) return
893
894 this.isShown = false
895
896 this.escape()
897
898 $(document).off('focusin.bs.modal')
899
900 this.$element
901 .removeClass('in')
902 .attr('aria-hidden', true)
903 .off('click.dismiss.bs.modal')
904
905 $.support.transition && this.$element.hasClass('fade') ?
906 this.$element
907 .one($.support.transition.end, $.proxy(this.hideModal, this))
908 .emulateTransitionEnd(300) :
909 this.hideModal()
910 }
911
912 Modal.prototype.enforceFocus = function() {
913 $(document)
914 .off('focusin.bs.modal') // guard against infinite focus loop
915 .on('focusin.bs.modal', $.proxy(function(e) {
916 if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
917 this.$element.focus()
918 }
919 }, this))
920 }
921
922 Modal.prototype.escape = function() {
923 if (this.isShown && this.options.keyboard) {
924 this.$element.on('keyup.dismiss.bs.modal', $.proxy(function(e) {
925 e.which == 27 && this.hide()
926 }, this))
927 } else if (!this.isShown) {
928 this.$element.off('keyup.dismiss.bs.modal')
929 }
930 }
931
932 Modal.prototype.hideModal = function() {
933 var that = this
934 this.$element.hide()
935 this.backdrop(function() {
936 that.removeBackdrop()
937 that.$element.trigger('hidden.bs.modal')
938 })
939 }
940
941 Modal.prototype.removeBackdrop = function() {
942 this.$backdrop && this.$backdrop.remove()
943 this.$backdrop = null
944 }
945
946 Modal.prototype.backdrop = function(callback) {
947 var animate = this.$element.hasClass('fade') ? 'fade' : ''
948
949 if (this.isShown && this.options.backdrop) {
950 var doAnimate = $.support.transition && animate
951
952 this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
953 .appendTo(document.body)
954
955 this.$element.on('click.dismiss.bs.modal', $.proxy(function(e) {
956 if (e.target !== e.currentTarget) return
957 this.options.backdrop == 'static' ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this)
958 }, this))
959
960 if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
961
962 this.$backdrop.addClass('in')
963
964 if (!callback) return
965
966 doAnimate ?
967 this.$backdrop
968 .one($.support.transition.end, callback)
969 .emulateTransitionEnd(150) :
970 callback()
971
972 } else if (!this.isShown && this.$backdrop) {
973 this.$backdrop.removeClass('in')
974
975 $.support.transition && this.$element.hasClass('fade') ?
976 this.$backdrop
977 .one($.support.transition.end, callback)
978 .emulateTransitionEnd(150) :
979 callback()
980
981 } else if (callback) {
982 callback()
983 }
984 }
985
986
987 // MODAL PLUGIN DEFINITION
988 // =======================
989
990 var old = $.fn.modal
991
992 $.fn.modal = function(option, _relatedTarget) {
993 return this.each(function() {
994 var $this = $(this)
995 var data = $this.data('bs.modal')
996 var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
997
998 if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
999 if (typeof option == 'string') data[option](_relatedTarget)
1000 else if (options.show) data.show(_relatedTarget)
1001 })
1002 }
1003
1004 $.fn.modal.Constructor = Modal
1005
1006
1007 // MODAL NO CONFLICT
1008 // =================
1009
1010 $.fn.modal.noConflict = function() {
1011 $.fn.modal = old
1012 return this
1013 }
1014
1015
1016 // MODAL DATA-API
1017 // ==============
1018
1019 $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function(e) {
1020 var $this = $(this)
1021 var href = $this.attr('href')
1022 var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1023 var option = $target.data('bs.modal') ? 'toggle' : $.extend({
1024 remote: !/#/.test(href) && href
1025 }, $target.data(), $this.data())
1026
1027 if ($this.is('a')) e.preventDefault()
1028
1029 $target
1030 .modal(option, this)
1031 .one('hide', function() {
1032 $this.is(':visible') && $this.focus()
1033 })
1034 })
1035
1036 $(document)
1037 .on('show.bs.modal', '.modal', function() {
1038 $(document.body).addClass('modal-open')
1039 })
1040 .on('hidden.bs.modal', '.modal', function() {
1041 $(document.body).removeClass('modal-open')
1042 })
1043
1044}(jQuery);
1045
1046/* ========================================================================
1047 * Bootstrap: tooltip.js v3.1.1
1048 * http://getbootstrap.com/javascript/#tooltip
1049 * Inspired by the original jQuery.tipsy by Jason Frame
1050 * ========================================================================
1051 * Copyright 2011-2014 Twitter, Inc.
1052 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1053 * ======================================================================== */
1054
1055
1056+ function($) {
1057 'use strict';
1058
1059 // TOOLTIP PUBLIC CLASS DEFINITION
1060 // ===============================
1061
1062 var Tooltip = function(element, options) {
1063 this.type =
1064 this.options =
1065 this.enabled =
1066 this.timeout =
1067 this.hoverState =
1068 this.$element = null
1069
1070 this.init('tooltip', element, options)
1071 }
1072
1073 Tooltip.DEFAULTS = {
1074 animation: true,
1075 placement: 'top',
1076 selector: false,
1077 template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
1078 trigger: 'hover focus',
1079 title: '',
1080 delay: 0,
1081 html: false,
1082 container: false
1083 }
1084
1085 Tooltip.prototype.init = function(type, element, options) {
1086 this.enabled = true
1087 this.type = type
1088 this.$element = $(element)
1089 this.options = this.getOptions(options)
1090
1091 var triggers = this.options.trigger.split(' ')
1092
1093 for (var i = triggers.length; i--;) {
1094 var trigger = triggers[i]
1095
1096 if (trigger == 'click') {
1097 this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1098 } else if (trigger != 'manual') {
1099 var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
1100 var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
1101
1102 this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1103 this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1104 }
1105 }
1106
1107 this.options.selector ?
1108 (this._options = $.extend({}, this.options, {
1109 trigger: 'manual',
1110 selector: ''
1111 })) :
1112 this.fixTitle()
1113 }
1114
1115 Tooltip.prototype.getDefaults = function() {
1116 return Tooltip.DEFAULTS
1117 }
1118
1119 Tooltip.prototype.getOptions = function(options) {
1120 options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1121
1122 if (options.delay && typeof options.delay == 'number') {
1123 options.delay = {
1124 show: options.delay,
1125 hide: options.delay
1126 }
1127 }
1128
1129 return options
1130 }
1131
1132 Tooltip.prototype.getDelegateOptions = function() {
1133 var options = {}
1134 var defaults = this.getDefaults()
1135
1136 this._options && $.each(this._options, function(key, value) {
1137 if (defaults[key] != value) options[key] = value
1138 })
1139
1140 return options
1141 }
1142
1143 Tooltip.prototype.enter = function(obj) {
1144 var self = obj instanceof this.constructor ?
1145 obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1146
1147 clearTimeout(self.timeout)
1148
1149 self.hoverState = 'in'
1150
1151 if (!self.options.delay || !self.options.delay.show) return self.show()
1152
1153 self.timeout = setTimeout(function() {
1154 if (self.hoverState == 'in') self.show()
1155 }, self.options.delay.show)
1156 }
1157
1158 Tooltip.prototype.leave = function(obj) {
1159 var self = obj instanceof this.constructor ?
1160 obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1161
1162 clearTimeout(self.timeout)
1163
1164 self.hoverState = 'out'
1165
1166 if (!self.options.delay || !self.options.delay.hide) return self.hide()
1167
1168 self.timeout = setTimeout(function() {
1169 if (self.hoverState == 'out') self.hide()
1170 }, self.options.delay.hide)
1171 }
1172
1173 Tooltip.prototype.show = function() {
1174 var e = $.Event('show.bs.' + this.type)
1175
1176 if (this.hasContent() && this.enabled) {
1177 this.$element.trigger(e)
1178
1179 if (e.isDefaultPrevented()) return
1180 var that = this;
1181
1182 var $tip = this.tip()
1183
1184 this.setContent()
1185
1186 if (this.options.animation) $tip.addClass('fade')
1187
1188 var placement = typeof this.options.placement == 'function' ?
1189 this.options.placement.call(this, $tip[0], this.$element[0]) :
1190 this.options.placement
1191
1192 var autoToken = /\s?auto?\s?/i
1193 var autoPlace = autoToken.test(placement)
1194 if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1195
1196 $tip
1197 .detach()
1198 .css({
1199 top: 0,
1200 left: 0,
1201 display: 'block'
1202 })
1203 .addClass(placement)
1204
1205 this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1206
1207 var pos = this.getPosition()
1208 var actualWidth = $tip[0].offsetWidth
1209 var actualHeight = $tip[0].offsetHeight
1210
1211 if (autoPlace) {
1212 var $parent = this.$element.parent()
1213
1214 var orgPlacement = placement
1215 var docScroll = document.documentElement.scrollTop || document.body.scrollTop
1216 var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
1217 var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
1218 var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
1219
1220 placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
1221 placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
1222 placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
1223 placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
1224 placement
1225
1226 $tip
1227 .removeClass(orgPlacement)
1228 .addClass(placement)
1229 }
1230
1231 var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1232
1233 this.applyPlacement(calculatedOffset, placement)
1234 this.hoverState = null
1235
1236 var complete = function() {
1237 that.$element.trigger('shown.bs.' + that.type)
1238 }
1239
1240 $.support.transition && this.$tip.hasClass('fade') ?
1241 $tip
1242 .one($.support.transition.end, complete)
1243 .emulateTransitionEnd(150) :
1244 complete()
1245 }
1246 }
1247
1248 Tooltip.prototype.applyPlacement = function(offset, placement) {
1249 var replace
1250 var $tip = this.tip()
1251 var width = $tip[0].offsetWidth
1252 var height = $tip[0].offsetHeight
1253
1254 // manually read margins because getBoundingClientRect includes difference
1255 var marginTop = parseInt($tip.css('margin-top'), 10)
1256 var marginLeft = parseInt($tip.css('margin-left'), 10)
1257
1258 // we must check for NaN for ie 8/9
1259 if (isNaN(marginTop)) marginTop = 0
1260 if (isNaN(marginLeft)) marginLeft = 0
1261
1262 offset.top = offset.top + marginTop
1263 offset.left = offset.left + marginLeft
1264
1265 // $.fn.offset doesn't round pixel values
1266 // so we use setOffset directly with our own function B-0
1267 $.offset.setOffset($tip[0], $.extend({
1268 using: function(props) {
1269 $tip.css({
1270 top: Math.round(props.top),
1271 left: Math.round(props.left)
1272 })
1273 }
1274 }, offset), 0)
1275
1276 $tip.addClass('in')
1277
1278 // check to see if placing tip in new offset caused the tip to resize itself
1279 var actualWidth = $tip[0].offsetWidth
1280 var actualHeight = $tip[0].offsetHeight
1281
1282 if (placement == 'top' && actualHeight != height) {
1283 replace = true
1284 offset.top = offset.top + height - actualHeight
1285 }
1286
1287 if (/bottom|top/.test(placement)) {
1288 var delta = 0
1289
1290 if (offset.left < 0) {
1291 delta = offset.left * -2
1292 offset.left = 0
1293
1294 $tip.offset(offset)
1295
1296 actualWidth = $tip[0].offsetWidth
1297 actualHeight = $tip[0].offsetHeight
1298 }
1299
1300 this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
1301 } else {
1302 this.replaceArrow(actualHeight - height, actualHeight, 'top')
1303 }
1304
1305 if (replace) $tip.offset(offset)
1306 }
1307
1308 Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
1309 this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')
1310 }
1311
1312 Tooltip.prototype.setContent = function() {
1313 var $tip = this.tip()
1314 var title = this.getTitle()
1315
1316 $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1317 $tip.removeClass('fade in top bottom left right')
1318 }
1319
1320 Tooltip.prototype.hide = function() {
1321 var that = this
1322 var $tip = this.tip()
1323 var e = $.Event('hide.bs.' + this.type)
1324
1325 function complete() {
1326 if (that.hoverState != 'in') $tip.detach()
1327 that.$element.trigger('hidden.bs.' + that.type)
1328 }
1329
1330 this.$element.trigger(e)
1331
1332 if (e.isDefaultPrevented()) return
1333
1334 $tip.removeClass('in')
1335
1336 $.support.transition && this.$tip.hasClass('fade') ?
1337 $tip
1338 .one($.support.transition.end, complete)
1339 .emulateTransitionEnd(150) :
1340 complete()
1341
1342 this.hoverState = null
1343
1344 return this
1345 }
1346
1347 Tooltip.prototype.fixTitle = function() {
1348 var $e = this.$element
1349 if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
1350 $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1351 }
1352 }
1353
1354 Tooltip.prototype.hasContent = function() {
1355 return this.getTitle()
1356 }
1357
1358 Tooltip.prototype.getPosition = function() {
1359 var el = this.$element[0]
1360 return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
1361 width: el.offsetWidth,
1362 height: el.offsetHeight
1363 }, this.$element.offset())
1364 }
1365
1366 Tooltip.prototype.getCalculatedOffset = function(placement, pos, actualWidth, actualHeight) {
1367 return placement == 'bottom' ? {
1368 top: pos.top + pos.height,
1369 left: pos.left + pos.width / 2 - actualWidth / 2
1370 } :
1371 placement == 'top' ? {
1372 top: pos.top - actualHeight,
1373 left: pos.left + pos.width / 2 - actualWidth / 2
1374 } :
1375 placement == 'left' ? {
1376 top: pos.top + pos.height / 2 - actualHeight / 2,
1377 left: pos.left - actualWidth
1378 } :
1379 /* placement == 'right' */
1380 {
1381 top: pos.top + pos.height / 2 - actualHeight / 2,
1382 left: pos.left + pos.width
1383 }
1384 }
1385
1386 Tooltip.prototype.getTitle = function() {
1387 var title
1388 var $e = this.$element
1389 var o = this.options
1390
1391 title = $e.attr('data-original-title') || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1392
1393 return title
1394 }
1395
1396 Tooltip.prototype.tip = function() {
1397 return this.$tip = this.$tip || $(this.options.template)
1398 }
1399
1400 Tooltip.prototype.arrow = function() {
1401 return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
1402 }
1403
1404 Tooltip.prototype.validate = function() {
1405 if (!this.$element[0].parentNode) {
1406 this.hide()
1407 this.$element = null
1408 this.options = null
1409 }
1410 }
1411
1412 Tooltip.prototype.enable = function() {
1413 this.enabled = true
1414 }
1415
1416 Tooltip.prototype.disable = function() {
1417 this.enabled = false
1418 }
1419
1420 Tooltip.prototype.toggleEnabled = function() {
1421 this.enabled = !this.enabled
1422 }
1423
1424 Tooltip.prototype.toggle = function(e) {
1425 var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
1426 self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1427 }
1428
1429 Tooltip.prototype.destroy = function() {
1430 clearTimeout(this.timeout)
1431 this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
1432 }
1433
1434
1435 // TOOLTIP PLUGIN DEFINITION
1436 // =========================
1437
1438 var old = $.fn.tooltip
1439
1440 $.fn.tooltip = function(option) {
1441 return this.each(function() {
1442 var $this = $(this)
1443 var data = $this.data('bs.tooltip')
1444 var options = typeof option == 'object' && option
1445
1446 if (!data && option == 'destroy') return
1447 if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1448 if (typeof option == 'string') data[option]()
1449 })
1450 }
1451
1452 $.fn.tooltip.Constructor = Tooltip
1453
1454
1455 // TOOLTIP NO CONFLICT
1456 // ===================
1457
1458 $.fn.tooltip.noConflict = function() {
1459 $.fn.tooltip = old
1460 return this
1461 }
1462
1463}(jQuery);
1464
1465/* ========================================================================
1466 * Bootstrap: popover.js v3.1.1
1467 * http://getbootstrap.com/javascript/#popovers
1468 * ========================================================================
1469 * Copyright 2011-2014 Twitter, Inc.
1470 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1471 * ======================================================================== */
1472
1473
1474+ function($) {
1475 'use strict';
1476
1477 // POPOVER PUBLIC CLASS DEFINITION
1478 // ===============================
1479
1480 var Popover = function(element, options) {
1481 this.init('popover', element, options)
1482 }
1483
1484 if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1485
1486 Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
1487 placement: 'right',
1488 trigger: 'click',
1489 content: '',
1490 template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1491 })
1492
1493
1494 // NOTE: POPOVER EXTENDS tooltip.js
1495 // ================================
1496
1497 Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1498
1499 Popover.prototype.constructor = Popover
1500
1501 Popover.prototype.getDefaults = function() {
1502 return Popover.DEFAULTS
1503 }
1504
1505 Popover.prototype.setContent = function() {
1506 var $tip = this.tip()
1507 var title = this.getTitle()
1508 var content = this.getContent()
1509
1510 $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1511 $tip.find('.popover-content')[ // we use append for html objects to maintain js events
1512 this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
1513 ](content)
1514
1515 $tip.removeClass('fade top bottom left right in')
1516
1517 // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1518 // this manually by checking the contents.
1519 if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1520 }
1521
1522 Popover.prototype.hasContent = function() {
1523 return this.getTitle() || this.getContent()
1524 }
1525
1526 Popover.prototype.getContent = function() {
1527 var $e = this.$element
1528 var o = this.options
1529
1530 return $e.attr('data-content') || (typeof o.content == 'function' ?
1531 o.content.call($e[0]) :
1532 o.content)
1533 }
1534
1535 Popover.prototype.arrow = function() {
1536 return this.$arrow = this.$arrow || this.tip().find('.arrow')
1537 }
1538
1539 Popover.prototype.tip = function() {
1540 if (!this.$tip) this.$tip = $(this.options.template)
1541 return this.$tip
1542 }
1543
1544
1545 // POPOVER PLUGIN DEFINITION
1546 // =========================
1547
1548 var old = $.fn.popover
1549
1550 $.fn.popover = function(option) {
1551 return this.each(function() {
1552 var $this = $(this)
1553 var data = $this.data('bs.popover')
1554 var options = typeof option == 'object' && option
1555
1556 if (!data && option == 'destroy') return
1557 if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1558 if (typeof option == 'string') data[option]()
1559 })
1560 }
1561
1562 $.fn.popover.Constructor = Popover
1563
1564
1565 // POPOVER NO CONFLICT
1566 // ===================
1567
1568 $.fn.popover.noConflict = function() {
1569 $.fn.popover = old
1570 return this
1571 }
1572
1573}(jQuery);
1574
1575/* ========================================================================
1576 * Bootstrap: scrollspy.js v3.1.1
1577 * http://getbootstrap.com/javascript/#scrollspy
1578 * ========================================================================
1579 * Copyright 2011-2014 Twitter, Inc.
1580 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1581 * ======================================================================== */
1582
1583
1584+ function($) {
1585 'use strict';
1586
1587 // SCROLLSPY CLASS DEFINITION
1588 // ==========================
1589
1590 function ScrollSpy(element, options) {
1591 var href
1592 var process = $.proxy(this.process, this)
1593
1594 this.$element = $(element).is('body') ? $(window) : $(element)
1595 this.$body = $('body')
1596 this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
1597 this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1598 this.selector = (this.options.target || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
1599 || '') + ' .nav li > a'
1600 this.offsets = $([])
1601 this.targets = $([])
1602 this.activeTarget = null
1603
1604 this.refresh()
1605 this.process()
1606 }
1607
1608 ScrollSpy.DEFAULTS = {
1609 offset: 10
1610 }
1611
1612 ScrollSpy.prototype.refresh = function() {
1613 var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
1614
1615 this.offsets = $([])
1616 this.targets = $([])
1617
1618 var self = this
1619 var $targets = this.$body
1620 .find(this.selector)
1621 .map(function() {
1622 var $el = $(this)
1623 var href = $el.data('target') || $el.attr('href')
1624 var $href = /^#./.test(href) && $(href)
1625
1626 return ($href && $href.length && $href.is(':visible') && [
1627 [$href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href]
1628 ]) || null
1629 })
1630 .sort(function(a, b) {
1631 return a[0] - b[0]
1632 })
1633 .each(function() {
1634 self.offsets.push(this[0])
1635 self.targets.push(this[1])
1636 })
1637 }
1638
1639 ScrollSpy.prototype.process = function() {
1640 var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1641 var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
1642 var maxScroll = scrollHeight - this.$scrollElement.height()
1643 var offsets = this.offsets
1644 var targets = this.targets
1645 var activeTarget = this.activeTarget
1646 var i
1647
1648 if (scrollTop >= maxScroll) {
1649 return activeTarget != (i = targets.last()[0]) && this.activate(i)
1650 }
1651
1652 if (activeTarget && scrollTop <= offsets[0]) {
1653 return activeTarget != (i = targets[0]) && this.activate(i)
1654 }
1655
1656 for (i = offsets.length; i--;) {
1657 activeTarget != targets[i] && scrollTop >= offsets[i] && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) && this.activate(targets[i])
1658 }
1659 }
1660
1661 ScrollSpy.prototype.activate = function(target) {
1662 this.activeTarget = target
1663
1664 $(this.selector)
1665 .parentsUntil(this.options.target, '.active')
1666 .removeClass('active')
1667
1668 var selector = this.selector +
1669 '[data-target="' + target + '"],' +
1670 this.selector + '[href="' + target + '"]'
1671
1672 var active = $(selector)
1673 .parents('li')
1674 .addClass('active')
1675
1676 if (active.parent('.dropdown-menu').length) {
1677 active = active
1678 .closest('li.dropdown')
1679 .addClass('active')
1680 }
1681
1682 active.trigger('activate.bs.scrollspy')
1683 }
1684
1685
1686 // SCROLLSPY PLUGIN DEFINITION
1687 // ===========================
1688
1689 var old = $.fn.scrollspy
1690
1691 $.fn.scrollspy = function(option) {
1692 return this.each(function() {
1693 var $this = $(this)
1694 var data = $this.data('bs.scrollspy')
1695 var options = typeof option == 'object' && option
1696
1697 if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
1698 if (typeof option == 'string') data[option]()
1699 })
1700 }
1701
1702 $.fn.scrollspy.Constructor = ScrollSpy
1703
1704
1705 // SCROLLSPY NO CONFLICT
1706 // =====================
1707
1708 $.fn.scrollspy.noConflict = function() {
1709 $.fn.scrollspy = old
1710 return this
1711 }
1712
1713
1714 // SCROLLSPY DATA-API
1715 // ==================
1716
1717 $(window).on('load', function() {
1718 $('[data-spy="scroll"]').each(function() {
1719 var $spy = $(this)
1720 $spy.scrollspy($spy.data())
1721 })
1722 })
1723
1724}(jQuery);
1725
1726/* ========================================================================
1727 * Bootstrap: tab.js v3.1.1
1728 * http://getbootstrap.com/javascript/#tabs
1729 * ========================================================================
1730 * Copyright 2011-2014 Twitter, Inc.
1731 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1732 * ======================================================================== */
1733
1734
1735+ function($) {
1736 'use strict';
1737
1738 // TAB CLASS DEFINITION
1739 // ====================
1740
1741 var Tab = function(element) {
1742 this.element = $(element)
1743 }
1744
1745 Tab.prototype.show = function() {
1746 var $this = this.element
1747 var $ul = $this.closest('ul:not(.dropdown-menu)')
1748 var selector = $this.data('target')
1749
1750 if (!selector) {
1751 selector = $this.attr('href')
1752 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
1753 }
1754
1755 if ($this.parent('li').hasClass('active')) return
1756
1757 var previous = $ul.find('.active:last a')[0]
1758 var e = $.Event('show.bs.tab', {
1759 relatedTarget: previous
1760 })
1761
1762 $this.trigger(e)
1763
1764 if (e.isDefaultPrevented()) return
1765
1766 var $target = $(selector)
1767
1768 this.activate($this.parent('li'), $ul)
1769 this.activate($target, $target.parent(), function() {
1770 $this.trigger({
1771 type: 'shown.bs.tab',
1772 relatedTarget: previous
1773 })
1774 })
1775 }
1776
1777 Tab.prototype.activate = function(element, container, callback) {
1778 var $active = container.find('> .active')
1779 var transition = callback && $.support.transition && $active.hasClass('fade')
1780
1781 function next() {
1782 $active
1783 .removeClass('active')
1784 .find('> .dropdown-menu > .active')
1785 .removeClass('active')
1786
1787 element.addClass('active')
1788
1789 if (transition) {
1790 element[0].offsetWidth // reflow for transition
1791 element.addClass('in')
1792 } else {
1793 element.removeClass('fade')
1794 }
1795
1796 if (element.parent('.dropdown-menu')) {
1797 element.closest('li.dropdown').addClass('active')
1798 }
1799
1800 callback && callback()
1801 }
1802
1803 transition ?
1804 $active
1805 .one($.support.transition.end, next)
1806 .emulateTransitionEnd(150) :
1807 next()
1808
1809 $active.removeClass('in')
1810 }
1811
1812
1813 // TAB PLUGIN DEFINITION
1814 // =====================
1815
1816 var old = $.fn.tab
1817
1818 $.fn.tab = function(option) {
1819 return this.each(function() {
1820 var $this = $(this)
1821 var data = $this.data('bs.tab')
1822
1823 if (!data) $this.data('bs.tab', (data = new Tab(this)))
1824 if (typeof option == 'string') data[option]()
1825 })
1826 }
1827
1828 $.fn.tab.Constructor = Tab
1829
1830
1831 // TAB NO CONFLICT
1832 // ===============
1833
1834 $.fn.tab.noConflict = function() {
1835 $.fn.tab = old
1836 return this
1837 }
1838
1839
1840 // TAB DATA-API
1841 // ============
1842
1843 $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function(e) {
1844 e.preventDefault()
1845 $(this).tab('show')
1846 })
1847
1848}(jQuery);
1849
1850/* ========================================================================
1851 * Bootstrap: affix.js v3.1.1
1852 * http://getbootstrap.com/javascript/#affix
1853 * ========================================================================
1854 * Copyright 2011-2014 Twitter, Inc.
1855 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1856 * ======================================================================== */
1857
1858
1859+ function($) {
1860 'use strict';
1861
1862 // AFFIX CLASS DEFINITION
1863 // ======================
1864
1865 var Affix = function(element, options) {
1866 this.options = $.extend({}, Affix.DEFAULTS, options)
1867 this.$window = $(window)
1868 .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
1869 .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
1870
1871 this.$element = $(element)
1872 this.affixed =
1873 this.unpin =
1874 this.pinnedOffset = null
1875
1876 this.checkPosition()
1877 }
1878
1879 Affix.RESET = 'affix affix-top affix-bottom'
1880
1881 Affix.DEFAULTS = {
1882 offset: 0
1883 }
1884
1885 Affix.prototype.getPinnedOffset = function() {
1886 if (this.pinnedOffset) return this.pinnedOffset
1887 this.$element.removeClass(Affix.RESET).addClass('affix')
1888 var scrollTop = this.$window.scrollTop()
1889 var position = this.$element.offset()
1890 return (this.pinnedOffset = position.top - scrollTop)
1891 }
1892
1893 Affix.prototype.checkPositionWithEventLoop = function() {
1894 setTimeout($.proxy(this.checkPosition, this), 1)
1895 }
1896
1897 Affix.prototype.checkPosition = function() {
1898 if (!this.$element.is(':visible')) return
1899
1900 var scrollHeight = $(document).height()
1901 var scrollTop = this.$window.scrollTop()
1902 var position = this.$element.offset()
1903 var offset = this.options.offset
1904 var offsetTop = offset.top
1905 var offsetBottom = offset.bottom
1906
1907 if (this.affixed == 'top') position.top += scrollTop
1908
1909 if (typeof offset != 'object') offsetBottom = offsetTop = offset
1910 if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
1911 if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
1912
1913 var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
1914 offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
1915 offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
1916
1917 if (this.affixed === affix) return
1918 if (this.unpin) this.$element.css('top', '')
1919
1920 var affixType = 'affix' + (affix ? '-' + affix : '')
1921 var e = $.Event(affixType + '.bs.affix')
1922
1923 this.$element.trigger(e)
1924
1925 if (e.isDefaultPrevented()) return
1926
1927 this.affixed = affix
1928 this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
1929
1930 this.$element
1931 .removeClass(Affix.RESET)
1932 .addClass(affixType)
1933 .trigger($.Event(affixType.replace('affix', 'affixed')))
1934
1935 if (affix == 'bottom') {
1936 this.$element.offset({
1937 top: scrollHeight - offsetBottom - this.$element.height()
1938 })
1939 }
1940 }
1941
1942
1943 // AFFIX PLUGIN DEFINITION
1944 // =======================
1945
1946 var old = $.fn.affix
1947
1948 $.fn.affix = function(option) {
1949 return this.each(function() {
1950 var $this = $(this)
1951 var data = $this.data('bs.affix')
1952 var options = typeof option == 'object' && option
1953
1954 if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
1955 if (typeof option == 'string') data[option]()
1956 })
1957 }
1958
1959 $.fn.affix.Constructor = Affix
1960
1961
1962 // AFFIX NO CONFLICT
1963 // =================
1964
1965 $.fn.affix.noConflict = function() {
1966 $.fn.affix = old
1967 return this
1968 }
1969
1970
1971 // AFFIX DATA-API
1972 // ==============
1973
1974 $(window).on('load', function() {
1975 $('[data-spy="affix"]').each(function() {
1976 var $spy = $(this)
1977 var data = $spy.data()
1978
1979 data.offset = data.offset || {}
1980
1981 if (data.offsetBottom) data.offset.bottom = data.offsetBottom
1982 if (data.offsetTop) data.offset.top = data.offsetTop
1983
1984 $spy.affix(data)
1985 })
1986 })
1987
1988}(jQuery); \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/js/bootstrap.min.js b/deprecated/jinwei.me/mobile/js/bootstrap.min.js
new file mode 100644
index 0000000..42eb86f
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/js/bootstrap.min.js
@@ -0,0 +1,759 @@
1/*!
2 * Bootstrap v3.1.1 (http://getbootstrap.com)
3 * Copyright 2011-2014 Twitter, Inc.
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 */
6if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); + function(a) {
7 "use strict";
8
9 function b() {
10 var a = document.createElement("bootstrap"),
11 b = {
12 WebkitTransition: "webkitTransitionEnd",
13 MozTransition: "transitionend",
14 OTransition: "oTransitionEnd otransitionend",
15 transition: "transitionend"
16 };
17 for (var c in b)
18 if (void 0 !== a.style[c]) return {
19 end: b[c]
20 };
21 return !1
22 }
23 a.fn.emulateTransitionEnd = function(b) {
24 var c = !1,
25 d = this;
26 a(this).one(a.support.transition.end, function() {
27 c = !0
28 });
29 var e = function() {
30 c || a(d).trigger(a.support.transition.end)
31 };
32 return setTimeout(e, b), this
33 }, a(function() {
34 a.support.transition = b()
35 })
36}(jQuery), + function(a) {
37 "use strict";
38 var b = '[data-dismiss="alert"]',
39 c = function(c) {
40 a(c).on("click", b, this.close)
41 };
42 c.prototype.close = function(b) {
43 function c() {
44 f.trigger("closed.bs.alert").remove()
45 }
46 var d = a(this),
47 e = d.attr("data-target");
48 e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, ""));
49 var f = a(e);
50 b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one(a.support.transition.end, c).emulateTransitionEnd(150) : c())
51 };
52 var d = a.fn.alert;
53 a.fn.alert = function(b) {
54 return this.each(function() {
55 var d = a(this),
56 e = d.data("bs.alert");
57 e || d.data("bs.alert", e = new c(this)), "string" == typeof b && e[b].call(d)
58 })
59 }, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function() {
60 return a.fn.alert = d, this
61 }, a(document).on("click.bs.alert.data-api", b, c.prototype.close)
62}(jQuery), + function(a) {
63 "use strict";
64 var b = function(c, d) {
65 this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.isLoading = !1
66 };
67 b.DEFAULTS = {
68 loadingText: "loading..."
69 }, b.prototype.setState = function(b) {
70 var c = "disabled",
71 d = this.$element,
72 e = d.is("input") ? "val" : "html",
73 f = d.data();
74 b += "Text", f.resetText || d.data("resetText", d[e]()), d[e](f[b] || this.options[b]), setTimeout(a.proxy(function() {
75 "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c))
76 }, this), 0)
77 }, b.prototype.toggle = function() {
78 var a = !0,
79 b = this.$element.closest('[data-toggle="buttons"]');
80 if (b.length) {
81 var c = this.$element.find("input");
82 "radio" == c.prop("type") && (c.prop("checked") && this.$element.hasClass("active") ? a = !1 : b.find(".active").removeClass("active")), a && c.prop("checked", !this.$element.hasClass("active")).trigger("change")
83 }
84 a && this.$element.toggleClass("active")
85 };
86 var c = a.fn.button;
87 a.fn.button = function(c) {
88 return this.each(function() {
89 var d = a(this),
90 e = d.data("bs.button"),
91 f = "object" == typeof c && c;
92 e || d.data("bs.button", e = new b(this, f)), "toggle" == c ? e.toggle() : c && e.setState(c)
93 })
94 }, a.fn.button.Constructor = b, a.fn.button.noConflict = function() {
95 return a.fn.button = c, this
96 }, a(document).on("click.bs.button.data-api", "[data-toggle^=button]", function(b) {
97 var c = a(b.target);
98 c.hasClass("btn") || (c = c.closest(".btn")), c.button("toggle"), b.preventDefault()
99 })
100}(jQuery), + function(a) {
101 "use strict";
102 var b = function(b, c) {
103 this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter", a.proxy(this.pause, this)).on("mouseleave", a.proxy(this.cycle, this))
104 };
105 b.DEFAULTS = {
106 interval: 5e3,
107 pause: "hover",
108 wrap: !0
109 }, b.prototype.cycle = function(b) {
110 return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this
111 }, b.prototype.getActiveIndex = function() {
112 return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active)
113 }, b.prototype.to = function(b) {
114 var c = this,
115 d = this.getActiveIndex();
116 return b > this.$items.length - 1 || 0 > b ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function() {
117 c.to(b)
118 }) : d == b ? this.pause().cycle() : this.slide(b > d ? "next" : "prev", a(this.$items[b]))
119 }, b.prototype.pause = function(b) {
120 return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
121 }, b.prototype.next = function() {
122 return this.sliding ? void 0 : this.slide("next")
123 }, b.prototype.prev = function() {
124 return this.sliding ? void 0 : this.slide("prev")
125 }, b.prototype.slide = function(b, c) {
126 var d = this.$element.find(".item.active"),
127 e = c || d[b](),
128 f = this.interval,
129 g = "next" == b ? "left" : "right",
130 h = "next" == b ? "first" : "last",
131 i = this;
132 if (!e.length) {
133 if (!this.options.wrap) return;
134 e = this.$element.find(".item")[h]()
135 }
136 if (e.hasClass("active")) return this.sliding = !1;
137 var j = a.Event("slide.bs.carousel", {
138 relatedTarget: e[0],
139 direction: g
140 });
141 return this.$element.trigger(j), j.isDefaultPrevented() ? void 0 : (this.sliding = !0, f && this.pause(), this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid.bs.carousel", function() {
142 var b = a(i.$indicators.children()[i.getActiveIndex()]);
143 b && b.addClass("active")
144 })), a.support.transition && this.$element.hasClass("slide") ? (e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one(a.support.transition.end, function() {
145 e.removeClass([b, g].join(" ")).addClass("active"), d.removeClass(["active", g].join(" ")), i.sliding = !1, setTimeout(function() {
146 i.$element.trigger("slid.bs.carousel")
147 }, 0)
148 }).emulateTransitionEnd(1e3 * d.css("transition-duration").slice(0, -1))) : (d.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger("slid.bs.carousel")), f && this.cycle(), this)
149 };
150 var c = a.fn.carousel;
151 a.fn.carousel = function(c) {
152 return this.each(function() {
153 var d = a(this),
154 e = d.data("bs.carousel"),
155 f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c),
156 g = "string" == typeof c ? c : f.slide;
157 e || d.data("bs.carousel", e = new b(this, f)), "number" == typeof c ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle()
158 })
159 }, a.fn.carousel.Constructor = b, a.fn.carousel.noConflict = function() {
160 return a.fn.carousel = c, this
161 }, a(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(b) {
162 var c, d = a(this),
163 e = a(d.attr("data-target") || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")),
164 f = a.extend({}, e.data(), d.data()),
165 g = d.attr("data-slide-to");
166 g && (f.interval = !1), e.carousel(f), (g = d.attr("data-slide-to")) && e.data("bs.carousel").to(g), b.preventDefault()
167 }), a(window).on("load", function() {
168 a('[data-ride="carousel"]').each(function() {
169 var b = a(this);
170 b.carousel(b.data())
171 })
172 })
173}(jQuery), + function(a) {
174 "use strict";
175 var b = function(c, d) {
176 this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle()
177 };
178 b.DEFAULTS = {
179 toggle: !0
180 }, b.prototype.dimension = function() {
181 var a = this.$element.hasClass("width");
182 return a ? "width" : "height"
183 }, b.prototype.show = function() {
184 if (!this.transitioning && !this.$element.hasClass("in")) {
185 var b = a.Event("show.bs.collapse");
186 if (this.$element.trigger(b), !b.isDefaultPrevented()) {
187 var c = this.$parent && this.$parent.find("> .panel > .in");
188 if (c && c.length) {
189 var d = c.data("bs.collapse");
190 if (d && d.transitioning) return;
191 c.collapse("hide"), d || c.data("bs.collapse", null)
192 }
193 var e = this.dimension();
194 this.$element.removeClass("collapse").addClass("collapsing")[e](0), this.transitioning = 1;
195 var f = function() {
196 this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
197 };
198 if (!a.support.transition) return f.call(this);
199 var g = a.camelCase(["scroll", e].join("-"));
200 this.$element.one(a.support.transition.end, a.proxy(f, this)).emulateTransitionEnd(350)[e](this.$element[0][g])
201 }
202 }
203 }, b.prototype.hide = function() {
204 if (!this.transitioning && this.$element.hasClass("in")) {
205 var b = a.Event("hide.bs.collapse");
206 if (this.$element.trigger(b), !b.isDefaultPrevented()) {
207 var c = this.dimension();
208 this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1;
209 var d = function() {
210 this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")
211 };
212 return a.support.transition ? void this.$element[c](0).one(a.support.transition.end, a.proxy(d, this)).emulateTransitionEnd(350) : d.call(this)
213 }
214 }
215 }, b.prototype.toggle = function() {
216 this[this.$element.hasClass("in") ? "hide" : "show"]()
217 };
218 var c = a.fn.collapse;
219 a.fn.collapse = function(c) {
220 return this.each(function() {
221 var d = a(this),
222 e = d.data("bs.collapse"),
223 f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c);
224 !e && f.toggle && "show" == c && (c = !c), e || d.data("bs.collapse", e = new b(this, f)), "string" == typeof c && e[c]()
225 })
226 }, a.fn.collapse.Constructor = b, a.fn.collapse.noConflict = function() {
227 return a.fn.collapse = c, this
228 }, a(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function(b) {
229 var c, d = a(this),
230 e = d.attr("data-target") || b.preventDefault() || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""),
231 f = a(e),
232 g = f.data("bs.collapse"),
233 h = g ? "toggle" : d.data(),
234 i = d.attr("data-parent"),
235 j = i && a(i);
236 g && g.transitioning || (j && j.find('[data-toggle=collapse][data-parent="' + i + '"]').not(d).addClass("collapsed"), d[f.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), f.collapse(h)
237 })
238}(jQuery), + function(a) {
239 "use strict";
240
241 function b(b) {
242 a(d).remove(), a(e).each(function() {
243 var d = c(a(this)),
244 e = {
245 relatedTarget: this
246 };
247 d.hasClass("open") && (d.trigger(b = a.Event("hide.bs.dropdown", e)), b.isDefaultPrevented() || d.removeClass("open").trigger("hidden.bs.dropdown", e))
248 })
249 }
250
251 function c(b) {
252 var c = b.attr("data-target");
253 c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""));
254 var d = c && a(c);
255 return d && d.length ? d : b.parent()
256 }
257 var d = ".dropdown-backdrop",
258 e = "[data-toggle=dropdown]",
259 f = function(b) {
260 a(b).on("click.bs.dropdown", this.toggle)
261 };
262 f.prototype.toggle = function(d) {
263 var e = a(this);
264 if (!e.is(".disabled, :disabled")) {
265 var f = c(e),
266 g = f.hasClass("open");
267 if (b(), !g) {
268 "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click", b);
269 var h = {
270 relatedTarget: this
271 };
272 if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return;
273 f.toggleClass("open").trigger("shown.bs.dropdown", h), e.focus()
274 }
275 return !1
276 }
277 }, f.prototype.keydown = function(b) {
278 if (/(38|40|27)/.test(b.keyCode)) {
279 var d = a(this);
280 if (b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled")) {
281 var f = c(d),
282 g = f.hasClass("open");
283 if (!g || g && 27 == b.keyCode) return 27 == b.which && f.find(e).focus(), d.click();
284 var h = " li:not(.divider):visible a",
285 i = f.find("[role=menu]" + h + ", [role=listbox]" + h);
286 if (i.length) {
287 var j = i.index(i.filter(":focus"));
288 38 == b.keyCode && j > 0 && j--, 40 == b.keyCode && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).focus()
289 }
290 }
291 }
292 };
293 var g = a.fn.dropdown;
294 a.fn.dropdown = function(b) {
295 return this.each(function() {
296 var c = a(this),
297 d = c.data("bs.dropdown");
298 d || c.data("bs.dropdown", d = new f(this)), "string" == typeof b && d[b].call(c)
299 })
300 }, a.fn.dropdown.Constructor = f, a.fn.dropdown.noConflict = function() {
301 return a.fn.dropdown = g, this
302 }, a(document).on("click.bs.dropdown.data-api", b).on("click.bs.dropdown.data-api", ".dropdown form", function(a) {
303 a.stopPropagation()
304 }).on("click.bs.dropdown.data-api", e, f.prototype.toggle).on("keydown.bs.dropdown.data-api", e + ", [role=menu], [role=listbox]", f.prototype.keydown)
305}(jQuery), + function(a) {
306 "use strict";
307 var b = function(b, c) {
308 this.options = c, this.$element = a(b), this.$backdrop = this.isShown = null, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function() {
309 this.$element.trigger("loaded.bs.modal")
310 }, this))
311 };
312 b.DEFAULTS = {
313 backdrop: !0,
314 keyboard: !0,
315 show: !0
316 }, b.prototype.toggle = function(a) {
317 return this[this.isShown ? "hide" : "show"](a)
318 }, b.prototype.show = function(b) {
319 var c = this,
320 d = a.Event("show.bs.modal", {
321 relatedTarget: b
322 });
323 this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(function() {
324 var d = a.support.transition && c.$element.hasClass("fade");
325 c.$element.parent().length || c.$element.appendTo(document.body), c.$element.show().scrollTop(0), d && c.$element[0].offsetWidth, c.$element.addClass("in").attr("aria-hidden", !1), c.enforceFocus();
326 var e = a.Event("shown.bs.modal", {
327 relatedTarget: b
328 });
329 d ? c.$element.find(".modal-dialog").one(a.support.transition.end, function() {
330 c.$element.focus().trigger(e)
331 }).emulateTransitionEnd(300) : c.$element.focus().trigger(e)
332 }))
333 }, b.prototype.hide = function(b) {
334 b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one(a.support.transition.end, a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal())
335 }, b.prototype.enforceFocus = function() {
336 a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function(a) {
337 this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.focus()
338 }, this))
339 }, b.prototype.escape = function() {
340 this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", a.proxy(function(a) {
341 27 == a.which && this.hide()
342 }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal")
343 }, b.prototype.hideModal = function() {
344 var a = this;
345 this.$element.hide(), this.backdrop(function() {
346 a.removeBackdrop(), a.$element.trigger("hidden.bs.modal")
347 })
348 }, b.prototype.removeBackdrop = function() {
349 this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
350 }, b.prototype.backdrop = function(b) {
351 var c = this.$element.hasClass("fade") ? "fade" : "";
352 if (this.isShown && this.options.backdrop) {
353 var d = a.support.transition && c;
354 if (this.$backdrop = a('<div class="modal-backdrop ' + c + '" />').appendTo(document.body), this.$element.on("click.dismiss.bs.modal", a.proxy(function(a) {
355 a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this))
356 }, this)), d && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return;
357 d ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b()
358 } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b()) : b && b()
359 };
360 var c = a.fn.modal;
361 a.fn.modal = function(c, d) {
362 return this.each(function() {
363 var e = a(this),
364 f = e.data("bs.modal"),
365 g = a.extend({}, b.DEFAULTS, e.data(), "object" == typeof c && c);
366 f || e.data("bs.modal", f = new b(this, g)), "string" == typeof c ? f[c](d) : g.show && f.show(d)
367 })
368 }, a.fn.modal.Constructor = b, a.fn.modal.noConflict = function() {
369 return a.fn.modal = c, this
370 }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(b) {
371 var c = a(this),
372 d = c.attr("href"),
373 e = a(c.attr("data-target") || d && d.replace(/.*(?=#[^\s]+$)/, "")),
374 f = e.data("bs.modal") ? "toggle" : a.extend({
375 remote: !/#/.test(d) && d
376 }, e.data(), c.data());
377 c.is("a") && b.preventDefault(), e.modal(f, this).one("hide", function() {
378 c.is(":visible") && c.focus()
379 })
380 }), a(document).on("show.bs.modal", ".modal", function() {
381 a(document.body).addClass("modal-open")
382 }).on("hidden.bs.modal", ".modal", function() {
383 a(document.body).removeClass("modal-open")
384 })
385}(jQuery), + function(a) {
386 "use strict";
387 var b = function(a, b) {
388 this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", a, b)
389 };
390 b.DEFAULTS = {
391 animation: !0,
392 placement: "top",
393 selector: !1,
394 template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
395 trigger: "hover focus",
396 title: "",
397 delay: 0,
398 html: !1,
399 container: !1
400 }, b.prototype.init = function(b, c, d) {
401 this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d);
402 for (var e = this.options.trigger.split(" "), f = e.length; f--;) {
403 var g = e[f];
404 if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this));
405 else if ("manual" != g) {
406 var h = "hover" == g ? "mouseenter" : "focusin",
407 i = "hover" == g ? "mouseleave" : "focusout";
408 this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this))
409 }
410 }
411 this.options.selector ? this._options = a.extend({}, this.options, {
412 trigger: "manual",
413 selector: ""
414 }) : this.fixTitle()
415 }, b.prototype.getDefaults = function() {
416 return b.DEFAULTS
417 }, b.prototype.getOptions = function(b) {
418 return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = {
419 show: b.delay,
420 hide: b.delay
421 }), b
422 }, b.prototype.getDelegateOptions = function() {
423 var b = {},
424 c = this.getDefaults();
425 return this._options && a.each(this._options, function(a, d) {
426 c[a] != d && (b[a] = d)
427 }), b
428 }, b.prototype.enter = function(b) {
429 var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
430 return clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void(c.timeout = setTimeout(function() {
431 "in" == c.hoverState && c.show()
432 }, c.options.delay.show)) : c.show()
433 }, b.prototype.leave = function(b) {
434 var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
435 return clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void(c.timeout = setTimeout(function() {
436 "out" == c.hoverState && c.hide()
437 }, c.options.delay.hide)) : c.hide()
438 }, b.prototype.show = function() {
439 var b = a.Event("show.bs." + this.type);
440 if (this.hasContent() && this.enabled) {
441 if (this.$element.trigger(b), b.isDefaultPrevented()) return;
442 var c = this,
443 d = this.tip();
444 this.setContent(), this.options.animation && d.addClass("fade");
445 var e = "function" == typeof this.options.placement ? this.options.placement.call(this, d[0], this.$element[0]) : this.options.placement,
446 f = /\s?auto?\s?/i,
447 g = f.test(e);
448 g && (e = e.replace(f, "") || "top"), d.detach().css({
449 top: 0,
450 left: 0,
451 display: "block"
452 }).addClass(e), this.options.container ? d.appendTo(this.options.container) : d.insertAfter(this.$element);
453 var h = this.getPosition(),
454 i = d[0].offsetWidth,
455 j = d[0].offsetHeight;
456 if (g) {
457 var k = this.$element.parent(),
458 l = e,
459 m = document.documentElement.scrollTop || document.body.scrollTop,
460 n = "body" == this.options.container ? window.innerWidth : k.outerWidth(),
461 o = "body" == this.options.container ? window.innerHeight : k.outerHeight(),
462 p = "body" == this.options.container ? 0 : k.offset().left;
463 e = "bottom" == e && h.top + h.height + j - m > o ? "top" : "top" == e && h.top - m - j < 0 ? "bottom" : "right" == e && h.right + i > n ? "left" : "left" == e && h.left - i < p ? "right" : e, d.removeClass(l).addClass(e)
464 }
465 var q = this.getCalculatedOffset(e, h, i, j);
466 this.applyPlacement(q, e), this.hoverState = null;
467 var r = function() {
468 c.$element.trigger("shown.bs." + c.type)
469 };
470 a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, r).emulateTransitionEnd(150) : r()
471 }
472 }, b.prototype.applyPlacement = function(b, c) {
473 var d, e = this.tip(),
474 f = e[0].offsetWidth,
475 g = e[0].offsetHeight,
476 h = parseInt(e.css("margin-top"), 10),
477 i = parseInt(e.css("margin-left"), 10);
478 isNaN(h) && (h = 0), isNaN(i) && (i = 0), b.top = b.top + h, b.left = b.left + i, a.offset.setOffset(e[0], a.extend({
479 using: function(a) {
480 e.css({
481 top: Math.round(a.top),
482 left: Math.round(a.left)
483 })
484 }
485 }, b), 0), e.addClass("in");
486 var j = e[0].offsetWidth,
487 k = e[0].offsetHeight;
488 if ("top" == c && k != g && (d = !0, b.top = b.top + g - k), /bottom|top/.test(c)) {
489 var l = 0;
490 b.left < 0 && (l = -2 * b.left, b.left = 0, e.offset(b), j = e[0].offsetWidth, k = e[0].offsetHeight), this.replaceArrow(l - f + j, j, "left")
491 } else this.replaceArrow(k - g, k, "top");
492 d && e.offset(b)
493 }, b.prototype.replaceArrow = function(a, b, c) {
494 this.arrow().css(c, a ? 50 * (1 - a / b) + "%" : "")
495 }, b.prototype.setContent = function() {
496 var a = this.tip(),
497 b = this.getTitle();
498 a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right")
499 }, b.prototype.hide = function() {
500 function b() {
501 "in" != c.hoverState && d.detach(), c.$element.trigger("hidden.bs." + c.type)
502 }
503 var c = this,
504 d = this.tip(),
505 e = a.Event("hide.bs." + this.type);
506 return this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (d.removeClass("in"), a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, b).emulateTransitionEnd(150) : b(), this.hoverState = null, this)
507 }, b.prototype.fixTitle = function() {
508 var a = this.$element;
509 (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "")
510 }, b.prototype.hasContent = function() {
511 return this.getTitle()
512 }, b.prototype.getPosition = function() {
513 var b = this.$element[0];
514 return a.extend({}, "function" == typeof b.getBoundingClientRect ? b.getBoundingClientRect() : {
515 width: b.offsetWidth,
516 height: b.offsetHeight
517 }, this.$element.offset())
518 }, b.prototype.getCalculatedOffset = function(a, b, c, d) {
519 return "bottom" == a ? {
520 top: b.top + b.height,
521 left: b.left + b.width / 2 - c / 2
522 } : "top" == a ? {
523 top: b.top - d,
524 left: b.left + b.width / 2 - c / 2
525 } : "left" == a ? {
526 top: b.top + b.height / 2 - d / 2,
527 left: b.left - c
528 } : {
529 top: b.top + b.height / 2 - d / 2,
530 left: b.left + b.width
531 }
532 }, b.prototype.getTitle = function() {
533 var a, b = this.$element,
534 c = this.options;
535 return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title)
536 }, b.prototype.tip = function() {
537 return this.$tip = this.$tip || a(this.options.template)
538 }, b.prototype.arrow = function() {
539 return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
540 }, b.prototype.validate = function() {
541 this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
542 }, b.prototype.enable = function() {
543 this.enabled = !0
544 }, b.prototype.disable = function() {
545 this.enabled = !1
546 }, b.prototype.toggleEnabled = function() {
547 this.enabled = !this.enabled
548 }, b.prototype.toggle = function(b) {
549 var c = b ? a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;
550 c.tip().hasClass("in") ? c.leave(c) : c.enter(c)
551 }, b.prototype.destroy = function() {
552 clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type)
553 };
554 var c = a.fn.tooltip;
555 a.fn.tooltip = function(c) {
556 return this.each(function() {
557 var d = a(this),
558 e = d.data("bs.tooltip"),
559 f = "object" == typeof c && c;
560 (e || "destroy" != c) && (e || d.data("bs.tooltip", e = new b(this, f)), "string" == typeof c && e[c]())
561 })
562 }, a.fn.tooltip.Constructor = b, a.fn.tooltip.noConflict = function() {
563 return a.fn.tooltip = c, this
564 }
565}(jQuery), + function(a) {
566 "use strict";
567 var b = function(a, b) {
568 this.init("popover", a, b)
569 };
570 if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js");
571 b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
572 placement: "right",
573 trigger: "click",
574 content: "",
575 template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
576 }), b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), b.prototype.constructor = b, b.prototype.getDefaults = function() {
577 return b.DEFAULTS
578 }, b.prototype.setContent = function() {
579 var a = this.tip(),
580 b = this.getTitle(),
581 c = this.getContent();
582 a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content")[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide()
583 }, b.prototype.hasContent = function() {
584 return this.getTitle() || this.getContent()
585 }, b.prototype.getContent = function() {
586 var a = this.$element,
587 b = this.options;
588 return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content)
589 }, b.prototype.arrow = function() {
590 return this.$arrow = this.$arrow || this.tip().find(".arrow")
591 }, b.prototype.tip = function() {
592 return this.$tip || (this.$tip = a(this.options.template)), this.$tip
593 };
594 var c = a.fn.popover;
595 a.fn.popover = function(c) {
596 return this.each(function() {
597 var d = a(this),
598 e = d.data("bs.popover"),
599 f = "object" == typeof c && c;
600 (e || "destroy" != c) && (e || d.data("bs.popover", e = new b(this, f)), "string" == typeof c && e[c]())
601 })
602 }, a.fn.popover.Constructor = b, a.fn.popover.noConflict = function() {
603 return a.fn.popover = c, this
604 }
605}(jQuery), + function(a) {
606 "use strict";
607
608 function b(c, d) {
609 var e, f = a.proxy(this.process, this);
610 this.$element = a(a(c).is("body") ? window : c), this.$body = a("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", f), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || (e = a(c).attr("href")) && e.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.offsets = a([]), this.targets = a([]), this.activeTarget = null, this.refresh(), this.process()
611 }
612 b.DEFAULTS = {
613 offset: 10
614 }, b.prototype.refresh = function() {
615 var b = this.$element[0] == window ? "offset" : "position";
616 this.offsets = a([]), this.targets = a([]); {
617 var c = this;
618 this.$body.find(this.selector).map(function() {
619 var d = a(this),
620 e = d.data("target") || d.attr("href"),
621 f = /^#./.test(e) && a(e);
622 return f && f.length && f.is(":visible") && [
623 [f[b]().top + (!a.isWindow(c.$scrollElement.get(0)) && c.$scrollElement.scrollTop()), e]
624 ] || null
625 }).sort(function(a, b) {
626 return a[0] - b[0]
627 }).each(function() {
628 c.offsets.push(this[0]), c.targets.push(this[1])
629 })
630 }
631 }, b.prototype.process = function() {
632 var a, b = this.$scrollElement.scrollTop() + this.options.offset,
633 c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
634 d = c - this.$scrollElement.height(),
635 e = this.offsets,
636 f = this.targets,
637 g = this.activeTarget;
638 if (b >= d) return g != (a = f.last()[0]) && this.activate(a);
639 if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a);
640 for (a = e.length; a--;) g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a])
641 }, b.prototype.activate = function(b) {
642 this.activeTarget = b, a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active");
643 var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]',
644 d = a(c).parents("li").addClass("active");
645 d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy")
646 };
647 var c = a.fn.scrollspy;
648 a.fn.scrollspy = function(c) {
649 return this.each(function() {
650 var d = a(this),
651 e = d.data("bs.scrollspy"),
652 f = "object" == typeof c && c;
653 e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]()
654 })
655 }, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function() {
656 return a.fn.scrollspy = c, this
657 }, a(window).on("load", function() {
658 a('[data-spy="scroll"]').each(function() {
659 var b = a(this);
660 b.scrollspy(b.data())
661 })
662 })
663}(jQuery), + function(a) {
664 "use strict";
665 var b = function(b) {
666 this.element = a(b)
667 };
668 b.prototype.show = function() {
669 var b = this.element,
670 c = b.closest("ul:not(.dropdown-menu)"),
671 d = b.data("target");
672 if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) {
673 var e = c.find(".active:last a")[0],
674 f = a.Event("show.bs.tab", {
675 relatedTarget: e
676 });
677 if (b.trigger(f), !f.isDefaultPrevented()) {
678 var g = a(d);
679 this.activate(b.parent("li"), c), this.activate(g, g.parent(), function() {
680 b.trigger({
681 type: "shown.bs.tab",
682 relatedTarget: e
683 })
684 })
685 }
686 }
687 }, b.prototype.activate = function(b, c, d) {
688 function e() {
689 f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), b.addClass("active"), g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu") && b.closest("li.dropdown").addClass("active"), d && d()
690 }
691 var f = c.find("> .active"),
692 g = d && a.support.transition && f.hasClass("fade");
693 g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(), f.removeClass("in")
694 };
695 var c = a.fn.tab;
696 a.fn.tab = function(c) {
697 return this.each(function() {
698 var d = a(this),
699 e = d.data("bs.tab");
700 e || d.data("bs.tab", e = new b(this)), "string" == typeof c && e[c]()
701 })
702 }, a.fn.tab.Constructor = b, a.fn.tab.noConflict = function() {
703 return a.fn.tab = c, this
704 }, a(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(b) {
705 b.preventDefault(), a(this).tab("show")
706 })
707}(jQuery), + function(a) {
708 "use strict";
709 var b = function(c, d) {
710 this.options = a.extend({}, b.DEFAULTS, d), this.$window = a(window).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(c), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition()
711 };
712 b.RESET = "affix affix-top affix-bottom", b.DEFAULTS = {
713 offset: 0
714 }, b.prototype.getPinnedOffset = function() {
715 if (this.pinnedOffset) return this.pinnedOffset;
716 this.$element.removeClass(b.RESET).addClass("affix");
717 var a = this.$window.scrollTop(),
718 c = this.$element.offset();
719 return this.pinnedOffset = c.top - a
720 }, b.prototype.checkPositionWithEventLoop = function() {
721 setTimeout(a.proxy(this.checkPosition, this), 1)
722 }, b.prototype.checkPosition = function() {
723 if (this.$element.is(":visible")) {
724 var c = a(document).height(),
725 d = this.$window.scrollTop(),
726 e = this.$element.offset(),
727 f = this.options.offset,
728 g = f.top,
729 h = f.bottom;
730 "top" == this.affixed && (e.top += d), "object" != typeof f && (h = g = f), "function" == typeof g && (g = f.top(this.$element)), "function" == typeof h && (h = f.bottom(this.$element));
731 var i = null != this.unpin && d + this.unpin <= e.top ? !1 : null != h && e.top + this.$element.height() >= c - h ? "bottom" : null != g && g >= d ? "top" : !1;
732 if (this.affixed !== i) {
733 this.unpin && this.$element.css("top", "");
734 var j = "affix" + (i ? "-" + i : ""),
735 k = a.Event(j + ".bs.affix");
736 this.$element.trigger(k), k.isDefaultPrevented() || (this.affixed = i, this.unpin = "bottom" == i ? this.getPinnedOffset() : null, this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix", "affixed"))), "bottom" == i && this.$element.offset({
737 top: c - h - this.$element.height()
738 }))
739 }
740 }
741 };
742 var c = a.fn.affix;
743 a.fn.affix = function(c) {
744 return this.each(function() {
745 var d = a(this),
746 e = d.data("bs.affix"),
747 f = "object" == typeof c && c;
748 e || d.data("bs.affix", e = new b(this, f)), "string" == typeof c && e[c]()
749 })
750 }, a.fn.affix.Constructor = b, a.fn.affix.noConflict = function() {
751 return a.fn.affix = c, this
752 }, a(window).on("load", function() {
753 a('[data-spy="affix"]').each(function() {
754 var b = a(this),
755 c = b.data();
756 c.offset = c.offset || {}, c.offsetBottom && (c.offset.bottom = c.offsetBottom), c.offsetTop && (c.offset.top = c.offsetTop), b.affix(c)
757 })
758 })
759}(jQuery); \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/js/jquery.min.js b/deprecated/jinwei.me/mobile/js/jquery.min.js
new file mode 100644
index 0000000..60479ce
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/js/jquery.min.js
@@ -0,0 +1,3375 @@
1/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ ! function(a, b) {
2 "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function(a) {
3 if (!a.document) throw new Error("jQuery requires a window with a document");
4 return b(a)
5 } : b(a)
6}("undefined" != typeof window ? window : this, function(a, b) {
7 var c = [],
8 d = c.slice,
9 e = c.concat,
10 f = c.push,
11 g = c.indexOf,
12 h = {},
13 i = h.toString,
14 j = h.hasOwnProperty,
15 k = "".trim,
16 l = {},
17 m = "1.11.0",
18 n = function(a, b) {
19 return new n.fn.init(a, b)
20 },
21 o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
22 p = /^-ms-/,
23 q = /-([\da-z])/gi,
24 r = function(a, b) {
25 return b.toUpperCase()
26 };
27 n.fn = n.prototype = {
28 jquery: m,
29 constructor: n,
30 selector: "",
31 length: 0,
32 toArray: function() {
33 return d.call(this)
34 },
35 get: function(a) {
36 return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this)
37 },
38 pushStack: function(a) {
39 var b = n.merge(this.constructor(), a);
40 return b.prevObject = this, b.context = this.context, b
41 },
42 each: function(a, b) {
43 return n.each(this, a, b)
44 },
45 map: function(a) {
46 return this.pushStack(n.map(this, function(b, c) {
47 return a.call(b, c, b)
48 }))
49 },
50 slice: function() {
51 return this.pushStack(d.apply(this, arguments))
52 },
53 first: function() {
54 return this.eq(0)
55 },
56 last: function() {
57 return this.eq(-1)
58 },
59 eq: function(a) {
60 var b = this.length,
61 c = +a + (0 > a ? b : 0);
62 return this.pushStack(c >= 0 && b > c ? [this[c]] : [])
63 },
64 end: function() {
65 return this.prevObject || this.constructor(null)
66 },
67 push: f,
68 sort: c.sort,
69 splice: c.splice
70 }, n.extend = n.fn.extend = function() {
71 var a, b, c, d, e, f, g = arguments[0] || {},
72 h = 1,
73 i = arguments.length,
74 j = !1;
75 for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || n.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)
76 if (null != (e = arguments[h]))
77 for (d in e) a = g[d], c = e[d], g !== c && (j && c && (n.isPlainObject(c) || (b = n.isArray(c))) ? (b ? (b = !1, f = a && n.isArray(a) ? a : []) : f = a && n.isPlainObject(a) ? a : {}, g[d] = n.extend(j, f, c)) : void 0 !== c && (g[d] = c));
78 return g
79 }, n.extend({
80 expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""),
81 isReady: !0,
82 error: function(a) {
83 throw new Error(a)
84 },
85 noop: function() {},
86 isFunction: function(a) {
87 return "function" === n.type(a)
88 },
89 isArray: Array.isArray || function(a) {
90 return "array" === n.type(a)
91 },
92 isWindow: function(a) {
93 return null != a && a == a.window
94 },
95 isNumeric: function(a) {
96 return a - parseFloat(a) >= 0
97 },
98 isEmptyObject: function(a) {
99 var b;
100 for (b in a) return !1;
101 return !0
102 },
103 isPlainObject: function(a) {
104 var b;
105 if (!a || "object" !== n.type(a) || a.nodeType || n.isWindow(a)) return !1;
106 try {
107 if (a.constructor && !j.call(a, "constructor") && !j.call(a.constructor.prototype, "isPrototypeOf")) return !1
108 } catch (c) {
109 return !1
110 }
111 if (l.ownLast)
112 for (b in a) return j.call(a, b);
113 for (b in a);
114 return void 0 === b || j.call(a, b)
115 },
116 type: function(a) {
117 return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a
118 },
119 globalEval: function(b) {
120 b && n.trim(b) && (a.execScript || function(b) {
121 a.eval.call(a, b)
122 })(b)
123 },
124 camelCase: function(a) {
125 return a.replace(p, "ms-").replace(q, r)
126 },
127 nodeName: function(a, b) {
128 return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase()
129 },
130 each: function(a, b, c) {
131 var d, e = 0,
132 f = a.length,
133 g = s(a);
134 if (c) {
135 if (g) {
136 for (; f > e; e++)
137 if (d = b.apply(a[e], c), d === !1) break
138 } else
139 for (e in a)
140 if (d = b.apply(a[e], c), d === !1) break
141 } else if (g) {
142 for (; f > e; e++)
143 if (d = b.call(a[e], e, a[e]), d === !1) break
144 } else
145 for (e in a)
146 if (d = b.call(a[e], e, a[e]), d === !1) break; return a
147 },
148 trim: k && !k.call("\ufeff\xa0") ? function(a) {
149 return null == a ? "" : k.call(a)
150 } : function(a) {
151 return null == a ? "" : (a + "").replace(o, "")
152 },
153 makeArray: function(a, b) {
154 var c = b || [];
155 return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c
156 },
157 inArray: function(a, b, c) {
158 var d;
159 if (b) {
160 if (g) return g.call(b, a, c);
161 for (d = b.length, c = c ? 0 > c ? Math.max(0, d + c) : c : 0; d > c; c++)
162 if (c in b && b[c] === a) return c
163 }
164 return -1
165 },
166 merge: function(a, b) {
167 var c = +b.length,
168 d = 0,
169 e = a.length;
170 while (c > d) a[e++] = b[d++];
171 if (c !== c)
172 while (void 0 !== b[d]) a[e++] = b[d++];
173 return a.length = e, a
174 },
175 grep: function(a, b, c) {
176 for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++) d = !b(a[f], f), d !== h && e.push(a[f]);
177 return e
178 },
179 map: function(a, b, c) {
180 var d, f = 0,
181 g = a.length,
182 h = s(a),
183 i = [];
184 if (h)
185 for (; g > f; f++) d = b(a[f], f, c), null != d && i.push(d);
186 else
187 for (f in a) d = b(a[f], f, c), null != d && i.push(d);
188 return e.apply([], i)
189 },
190 guid: 1,
191 proxy: function(a, b) {
192 var c, e, f;
193 return "string" == typeof b && (f = a[b], b = a, a = f), n.isFunction(a) ? (c = d.call(arguments, 2), e = function() {
194 return a.apply(b || this, c.concat(d.call(arguments)))
195 }, e.guid = a.guid = a.guid || n.guid++, e) : void 0
196 },
197 now: function() {
198 return +new Date
199 },
200 support: l
201 }), n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(a, b) {
202 h["[object " + b + "]"] = b.toLowerCase()
203 });
204
205 function s(a) {
206 var b = a.length,
207 c = n.type(a);
208 return "function" === c || n.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a
209 }
210 var t = function(a) {
211 var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s = "sizzle" + -new Date,
212 t = a.document,
213 u = 0,
214 v = 0,
215 w = eb(),
216 x = eb(),
217 y = eb(),
218 z = function(a, b) {
219 return a === b && (j = !0), 0
220 },
221 A = "undefined",
222 B = 1 << 31,
223 C = {}.hasOwnProperty,
224 D = [],
225 E = D.pop,
226 F = D.push,
227 G = D.push,
228 H = D.slice,
229 I = D.indexOf || function(a) {
230 for (var b = 0, c = this.length; c > b; b++)
231 if (this[b] === a) return b;
232 return -1
233 },
234 J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
235 K = "[\\x20\\t\\r\\n\\f]",
236 L = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
237 M = L.replace("w", "w#"),
238 N = "\\[" + K + "*(" + L + ")" + K + "*(?:([*^$|!~]?=)" + K + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + M + ")|)|)" + K + "*\\]",
239 O = ":(" + L + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + N.replace(3, 8) + ")*)|.*)\\)|)",
240 P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$", "g"),
241 Q = new RegExp("^" + K + "*," + K + "*"),
242 R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"),
243 S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]", "g"),
244 T = new RegExp(O),
245 U = new RegExp("^" + M + "$"),
246 V = {
247 ID: new RegExp("^#(" + L + ")"),
248 CLASS: new RegExp("^\\.(" + L + ")"),
249 TAG: new RegExp("^(" + L.replace("w", "w*") + ")"),
250 ATTR: new RegExp("^" + N),
251 PSEUDO: new RegExp("^" + O),
252 CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)", "i"),
253 bool: new RegExp("^(?:" + J + ")$", "i"),
254 needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)", "i")
255 },
256 W = /^(?:input|select|textarea|button)$/i,
257 X = /^h\d$/i,
258 Y = /^[^{]+\{\s*\[native \w/,
259 Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
260 $ = /[+~]/,
261 _ = /'|\\/g,
262 ab = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)", "ig"),
263 bb = function(a, b, c) {
264 var d = "0x" + b - 65536;
265 return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320)
266 };
267 try {
268 G.apply(D = H.call(t.childNodes), t.childNodes), D[t.childNodes.length].nodeType
269 } catch (cb) {
270 G = {
271 apply: D.length ? function(a, b) {
272 F.apply(a, H.call(b))
273 } : function(a, b) {
274 var c = a.length,
275 d = 0;
276 while (a[c++] = b[d++]);
277 a.length = c - 1
278 }
279 }
280 }
281
282 function db(a, b, d, e) {
283 var f, g, h, i, j, m, p, q, u, v;
284 if ((b ? b.ownerDocument || b : t) !== l && k(b), b = b || l, d = d || [], !a || "string" != typeof a) return d;
285 if (1 !== (i = b.nodeType) && 9 !== i) return [];
286 if (n && !e) {
287 if (f = Z.exec(a))
288 if (h = f[1]) {
289 if (9 === i) {
290 if (g = b.getElementById(h), !g || !g.parentNode) return d;
291 if (g.id === h) return d.push(g), d
292 } else if (b.ownerDocument && (g = b.ownerDocument.getElementById(h)) && r(b, g) && g.id === h) return d.push(g), d
293 } else {
294 if (f[2]) return G.apply(d, b.getElementsByTagName(a)), d;
295 if ((h = f[3]) && c.getElementsByClassName && b.getElementsByClassName) return G.apply(d, b.getElementsByClassName(h)), d
296 }
297 if (c.qsa && (!o || !o.test(a))) {
298 if (q = p = s, u = b, v = 9 === i && a, 1 === i && "object" !== b.nodeName.toLowerCase()) {
299 m = ob(a), (p = b.getAttribute("id")) ? q = p.replace(_, "\\$&") : b.setAttribute("id", q), q = "[id='" + q + "'] ", j = m.length;
300 while (j--) m[j] = q + pb(m[j]);
301 u = $.test(a) && mb(b.parentNode) || b, v = m.join(",")
302 }
303 if (v) try {
304 return G.apply(d, u.querySelectorAll(v)), d
305 } catch (w) {} finally {
306 p || b.removeAttribute("id")
307 }
308 }
309 }
310 return xb(a.replace(P, "$1"), b, d, e)
311 }
312
313 function eb() {
314 var a = [];
315
316 function b(c, e) {
317 return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e
318 }
319 return b
320 }
321
322 function fb(a) {
323 return a[s] = !0, a
324 }
325
326 function gb(a) {
327 var b = l.createElement("div");
328 try {
329 return !!a(b)
330 } catch (c) {
331 return !1
332 } finally {
333 b.parentNode && b.parentNode.removeChild(b), b = null
334 }
335 }
336
337 function hb(a, b) {
338 var c = a.split("|"),
339 e = a.length;
340 while (e--) d.attrHandle[c[e]] = b
341 }
342
343 function ib(a, b) {
344 var c = b && a,
345 d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || B) - (~a.sourceIndex || B);
346 if (d) return d;
347 if (c)
348 while (c = c.nextSibling)
349 if (c === b) return -1;
350 return a ? 1 : -1
351 }
352
353 function jb(a) {
354 return function(b) {
355 var c = b.nodeName.toLowerCase();
356 return "input" === c && b.type === a
357 }
358 }
359
360 function kb(a) {
361 return function(b) {
362 var c = b.nodeName.toLowerCase();
363 return ("input" === c || "button" === c) && b.type === a
364 }
365 }
366
367 function lb(a) {
368 return fb(function(b) {
369 return b = +b, fb(function(c, d) {
370 var e, f = a([], c.length, b),
371 g = f.length;
372 while (g--) c[e = f[g]] && (c[e] = !(d[e] = c[e]))
373 })
374 })
375 }
376
377 function mb(a) {
378 return a && typeof a.getElementsByTagName !== A && a
379 }
380 c = db.support = {}, f = db.isXML = function(a) {
381 var b = a && (a.ownerDocument || a).documentElement;
382 return b ? "HTML" !== b.nodeName : !1
383 }, k = db.setDocument = function(a) {
384 var b, e = a ? a.ownerDocument || a : t,
385 g = e.defaultView;
386 return e !== l && 9 === e.nodeType && e.documentElement ? (l = e, m = e.documentElement, n = !f(e), g && g !== g.top && (g.addEventListener ? g.addEventListener("unload", function() {
387 k()
388 }, !1) : g.attachEvent && g.attachEvent("onunload", function() {
389 k()
390 })), c.attributes = gb(function(a) {
391 return a.className = "i", !a.getAttribute("className")
392 }), c.getElementsByTagName = gb(function(a) {
393 return a.appendChild(e.createComment("")), !a.getElementsByTagName("*").length
394 }), c.getElementsByClassName = Y.test(e.getElementsByClassName) && gb(function(a) {
395 return a.innerHTML = "<div class='a'></div><div class='a i'></div>", a.firstChild.className = "i", 2 === a.getElementsByClassName("i").length
396 }), c.getById = gb(function(a) {
397 return m.appendChild(a).id = s, !e.getElementsByName || !e.getElementsByName(s).length
398 }), c.getById ? (d.find.ID = function(a, b) {
399 if (typeof b.getElementById !== A && n) {
400 var c = b.getElementById(a);
401 return c && c.parentNode ? [c] : []
402 }
403 }, d.filter.ID = function(a) {
404 var b = a.replace(ab, bb);
405 return function(a) {
406 return a.getAttribute("id") === b
407 }
408 }) : (delete d.find.ID, d.filter.ID = function(a) {
409 var b = a.replace(ab, bb);
410 return function(a) {
411 var c = typeof a.getAttributeNode !== A && a.getAttributeNode("id");
412 return c && c.value === b
413 }
414 }), d.find.TAG = c.getElementsByTagName ? function(a, b) {
415 return typeof b.getElementsByTagName !== A ? b.getElementsByTagName(a) : void 0
416 } : function(a, b) {
417 var c, d = [],
418 e = 0,
419 f = b.getElementsByTagName(a);
420 if ("*" === a) {
421 while (c = f[e++]) 1 === c.nodeType && d.push(c);
422 return d
423 }
424 return f
425 }, d.find.CLASS = c.getElementsByClassName && function(a, b) {
426 return typeof b.getElementsByClassName !== A && n ? b.getElementsByClassName(a) : void 0
427 }, p = [], o = [], (c.qsa = Y.test(e.querySelectorAll)) && (gb(function(a) {
428 a.innerHTML = "<select t=''><option selected=''></option></select>", a.querySelectorAll("[t^='']").length && o.push("[*^$]=" + K + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || o.push("\\[" + K + "*(?:value|" + J + ")"), a.querySelectorAll(":checked").length || o.push(":checked")
429 }), gb(function(a) {
430 var b = e.createElement("input");
431 b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && o.push("name" + K + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || o.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), o.push(",.*:")
432 })), (c.matchesSelector = Y.test(q = m.webkitMatchesSelector || m.mozMatchesSelector || m.oMatchesSelector || m.msMatchesSelector)) && gb(function(a) {
433 c.disconnectedMatch = q.call(a, "div"), q.call(a, "[s!='']:x"), p.push("!=", O)
434 }), o = o.length && new RegExp(o.join("|")), p = p.length && new RegExp(p.join("|")), b = Y.test(m.compareDocumentPosition), r = b || Y.test(m.contains) ? function(a, b) {
435 var c = 9 === a.nodeType ? a.documentElement : a,
436 d = b && b.parentNode;
437 return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d)))
438 } : function(a, b) {
439 if (b)
440 while (b = b.parentNode)
441 if (b === a) return !0;
442 return !1
443 }, z = b ? function(a, b) {
444 if (a === b) return j = !0, 0;
445 var d = !a.compareDocumentPosition - !b.compareDocumentPosition;
446 return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === e || a.ownerDocument === t && r(t, a) ? -1 : b === e || b.ownerDocument === t && r(t, b) ? 1 : i ? I.call(i, a) - I.call(i, b) : 0 : 4 & d ? -1 : 1)
447 } : function(a, b) {
448 if (a === b) return j = !0, 0;
449 var c, d = 0,
450 f = a.parentNode,
451 g = b.parentNode,
452 h = [a],
453 k = [b];
454 if (!f || !g) return a === e ? -1 : b === e ? 1 : f ? -1 : g ? 1 : i ? I.call(i, a) - I.call(i, b) : 0;
455 if (f === g) return ib(a, b);
456 c = a;
457 while (c = c.parentNode) h.unshift(c);
458 c = b;
459 while (c = c.parentNode) k.unshift(c);
460 while (h[d] === k[d]) d++;
461 return d ? ib(h[d], k[d]) : h[d] === t ? -1 : k[d] === t ? 1 : 0
462 }, e) : l
463 }, db.matches = function(a, b) {
464 return db(a, null, null, b)
465 }, db.matchesSelector = function(a, b) {
466 if ((a.ownerDocument || a) !== l && k(a), b = b.replace(S, "='$1']"), !(!c.matchesSelector || !n || p && p.test(b) || o && o.test(b))) try {
467 var d = q.call(a, b);
468 if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType) return d
469 } catch (e) {}
470 return db(b, l, null, [a]).length > 0
471 }, db.contains = function(a, b) {
472 return (a.ownerDocument || a) !== l && k(a), r(a, b)
473 }, db.attr = function(a, b) {
474 (a.ownerDocument || a) !== l && k(a);
475 var e = d.attrHandle[b.toLowerCase()],
476 f = e && C.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !n) : void 0;
477 return void 0 !== f ? f : c.attributes || !n ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null
478 }, db.error = function(a) {
479 throw new Error("Syntax error, unrecognized expression: " + a)
480 }, db.uniqueSort = function(a) {
481 var b, d = [],
482 e = 0,
483 f = 0;
484 if (j = !c.detectDuplicates, i = !c.sortStable && a.slice(0), a.sort(z), j) {
485 while (b = a[f++]) b === a[f] && (e = d.push(f));
486 while (e--) a.splice(d[e], 1)
487 }
488 return i = null, a
489 }, e = db.getText = function(a) {
490 var b, c = "",
491 d = 0,
492 f = a.nodeType;
493 if (f) {
494 if (1 === f || 9 === f || 11 === f) {
495 if ("string" == typeof a.textContent) return a.textContent;
496 for (a = a.firstChild; a; a = a.nextSibling) c += e(a)
497 } else if (3 === f || 4 === f) return a.nodeValue
498 } else
499 while (b = a[d++]) c += e(b);
500 return c
501 }, d = db.selectors = {
502 cacheLength: 50,
503 createPseudo: fb,
504 match: V,
505 attrHandle: {},
506 find: {},
507 relative: {
508 ">": {
509 dir: "parentNode",
510 first: !0
511 },
512 " ": {
513 dir: "parentNode"
514 },
515 "+": {
516 dir: "previousSibling",
517 first: !0
518 },
519 "~": {
520 dir: "previousSibling"
521 }
522 },
523 preFilter: {
524 ATTR: function(a) {
525 return a[1] = a[1].replace(ab, bb), a[3] = (a[4] || a[5] || "").replace(ab, bb), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4)
526 },
527 CHILD: function(a) {
528 return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || db.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && db.error(a[0]), a
529 },
530 PSEUDO: function(a) {
531 var b, c = !a[5] && a[2];
532 return V.CHILD.test(a[0]) ? null : (a[3] && void 0 !== a[4] ? a[2] = a[4] : c && T.test(c) && (b = ob(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3))
533 }
534 },
535 filter: {
536 TAG: function(a) {
537 var b = a.replace(ab, bb).toLowerCase();
538 return "*" === a ? function() {
539 return !0
540 } : function(a) {
541 return a.nodeName && a.nodeName.toLowerCase() === b
542 }
543 },
544 CLASS: function(a) {
545 var b = w[a + " "];
546 return b || (b = new RegExp("(^|" + K + ")" + a + "(" + K + "|$)")) && w(a, function(a) {
547 return b.test("string" == typeof a.className && a.className || typeof a.getAttribute !== A && a.getAttribute("class") || "")
548 })
549 },
550 ATTR: function(a, b, c) {
551 return function(d) {
552 var e = db.attr(d, a);
553 return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0
554 }
555 },
556 CHILD: function(a, b, c, d, e) {
557 var f = "nth" !== a.slice(0, 3),
558 g = "last" !== a.slice(-4),
559 h = "of-type" === b;
560 return 1 === d && 0 === e ? function(a) {
561 return !!a.parentNode
562 } : function(b, c, i) {
563 var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling",
564 q = b.parentNode,
565 r = h && b.nodeName.toLowerCase(),
566 t = !i && !h;
567 if (q) {
568 if (f) {
569 while (p) {
570 l = b;
571 while (l = l[p])
572 if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) return !1;
573 o = p = "only" === a && !o && "nextSibling"
574 }
575 return !0
576 }
577 if (o = [g ? q.firstChild : q.lastChild], g && t) {
578 k = q[s] || (q[s] = {}), j = k[a] || [], n = j[0] === u && j[1], m = j[0] === u && j[2], l = n && q.childNodes[n];
579 while (l = ++n && l && l[p] || (m = n = 0) || o.pop())
580 if (1 === l.nodeType && ++m && l === b) {
581 k[a] = [u, n, m];
582 break
583 }
584 } else if (t && (j = (b[s] || (b[s] = {}))[a]) && j[0] === u) m = j[1];
585 else
586 while (l = ++n && l && l[p] || (m = n = 0) || o.pop())
587 if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (t && ((l[s] || (l[s] = {}))[a] = [u, m]), l === b)) break; return m -= e, m === d || m % d === 0 && m / d >= 0
588 }
589 }
590 },
591 PSEUDO: function(a, b) {
592 var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || db.error("unsupported pseudo: " + a);
593 return e[s] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? fb(function(a, c) {
594 var d, f = e(a, b),
595 g = f.length;
596 while (g--) d = I.call(a, f[g]), a[d] = !(c[d] = f[g])
597 }) : function(a) {
598 return e(a, 0, c)
599 }) : e
600 }
601 },
602 pseudos: {
603 not: fb(function(a) {
604 var b = [],
605 c = [],
606 d = g(a.replace(P, "$1"));
607 return d[s] ? fb(function(a, b, c, e) {
608 var f, g = d(a, null, e, []),
609 h = a.length;
610 while (h--)(f = g[h]) && (a[h] = !(b[h] = f))
611 }) : function(a, e, f) {
612 return b[0] = a, d(b, null, f, c), !c.pop()
613 }
614 }),
615 has: fb(function(a) {
616 return function(b) {
617 return db(a, b).length > 0
618 }
619 }),
620 contains: fb(function(a) {
621 return function(b) {
622 return (b.textContent || b.innerText || e(b)).indexOf(a) > -1
623 }
624 }),
625 lang: fb(function(a) {
626 return U.test(a || "") || db.error("unsupported lang: " + a), a = a.replace(ab, bb).toLowerCase(),
627 function(b) {
628 var c;
629 do
630 if (c = n ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang")) return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-");
631 while ((b = b.parentNode) && 1 === b.nodeType);
632 return !1
633 }
634 }),
635 target: function(b) {
636 var c = a.location && a.location.hash;
637 return c && c.slice(1) === b.id
638 },
639 root: function(a) {
640 return a === m
641 },
642 focus: function(a) {
643 return a === l.activeElement && (!l.hasFocus || l.hasFocus()) && !!(a.type || a.href || ~a.tabIndex)
644 },
645 enabled: function(a) {
646 return a.disabled === !1
647 },
648 disabled: function(a) {
649 return a.disabled === !0
650 },
651 checked: function(a) {
652 var b = a.nodeName.toLowerCase();
653 return "input" === b && !!a.checked || "option" === b && !!a.selected
654 },
655 selected: function(a) {
656 return a.parentNode && a.parentNode.selectedIndex, a.selected === !0
657 },
658 empty: function(a) {
659 for (a = a.firstChild; a; a = a.nextSibling)
660 if (a.nodeType < 6) return !1;
661 return !0
662 },
663 parent: function(a) {
664 return !d.pseudos.empty(a)
665 },
666 header: function(a) {
667 return X.test(a.nodeName)
668 },
669 input: function(a) {
670 return W.test(a.nodeName)
671 },
672 button: function(a) {
673 var b = a.nodeName.toLowerCase();
674 return "input" === b && "button" === a.type || "button" === b
675 },
676 text: function(a) {
677 var b;
678 return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase())
679 },
680 first: lb(function() {
681 return [0]
682 }),
683 last: lb(function(a, b) {
684 return [b - 1]
685 }),
686 eq: lb(function(a, b, c) {
687 return [0 > c ? c + b : c]
688 }),
689 even: lb(function(a, b) {
690 for (var c = 0; b > c; c += 2) a.push(c);
691 return a
692 }),
693 odd: lb(function(a, b) {
694 for (var c = 1; b > c; c += 2) a.push(c);
695 return a
696 }),
697 lt: lb(function(a, b, c) {
698 for (var d = 0 > c ? c + b : c; --d >= 0;) a.push(d);
699 return a
700 }),
701 gt: lb(function(a, b, c) {
702 for (var d = 0 > c ? c + b : c; ++d < b;) a.push(d);
703 return a
704 })
705 }
706 }, d.pseudos.nth = d.pseudos.eq;
707 for (b in {
708 radio: !0,
709 checkbox: !0,
710 file: !0,
711 password: !0,
712 image: !0
713 }) d.pseudos[b] = jb(b);
714 for (b in {
715 submit: !0,
716 reset: !0
717 }) d.pseudos[b] = kb(b);
718
719 function nb() {}
720 nb.prototype = d.filters = d.pseudos, d.setFilters = new nb;
721
722 function ob(a, b) {
723 var c, e, f, g, h, i, j, k = x[a + " "];
724 if (k) return b ? 0 : k.slice(0);
725 h = a, i = [], j = d.preFilter;
726 while (h) {
727 (!c || (e = Q.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = R.exec(h)) && (c = e.shift(), f.push({
728 value: c,
729 type: e[0].replace(P, " ")
730 }), h = h.slice(c.length));
731 for (g in d.filter)!(e = V[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({
732 value: c,
733 type: g,
734 matches: e
735 }), h = h.slice(c.length));
736 if (!c) break
737 }
738 return b ? h.length : h ? db.error(a) : x(a, i).slice(0)
739 }
740
741 function pb(a) {
742 for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value;
743 return d
744 }
745
746 function qb(a, b, c) {
747 var d = b.dir,
748 e = c && "parentNode" === d,
749 f = v++;
750 return b.first ? function(b, c, f) {
751 while (b = b[d])
752 if (1 === b.nodeType || e) return a(b, c, f)
753 } : function(b, c, g) {
754 var h, i, j = [u, f];
755 if (g) {
756 while (b = b[d])
757 if ((1 === b.nodeType || e) && a(b, c, g)) return !0
758 } else
759 while (b = b[d])
760 if (1 === b.nodeType || e) {
761 if (i = b[s] || (b[s] = {}), (h = i[d]) && h[0] === u && h[1] === f) return j[2] = h[2];
762 if (i[d] = j, j[2] = a(b, c, g)) return !0
763 }
764 }
765 }
766
767 function rb(a) {
768 return a.length > 1 ? function(b, c, d) {
769 var e = a.length;
770 while (e--)
771 if (!a[e](b, c, d)) return !1;
772 return !0
773 } : a[0]
774 }
775
776 function sb(a, b, c, d, e) {
777 for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h));
778 return g
779 }
780
781 function tb(a, b, c, d, e, f) {
782 return d && !d[s] && (d = tb(d)), e && !e[s] && (e = tb(e, f)), fb(function(f, g, h, i) {
783 var j, k, l, m = [],
784 n = [],
785 o = g.length,
786 p = f || wb(b || "*", h.nodeType ? [h] : h, []),
787 q = !a || !f && b ? p : sb(p, m, a, h, i),
788 r = c ? e || (f ? a : o || d) ? [] : g : q;
789 if (c && c(q, r, h, i), d) {
790 j = sb(r, n), d(j, [], h, i), k = j.length;
791 while (k--)(l = j[k]) && (r[n[k]] = !(q[n[k]] = l))
792 }
793 if (f) {
794 if (e || a) {
795 if (e) {
796 j = [], k = r.length;
797 while (k--)(l = r[k]) && j.push(q[k] = l);
798 e(null, r = [], j, i)
799 }
800 k = r.length;
801 while (k--)(l = r[k]) && (j = e ? I.call(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l))
802 }
803 } else r = sb(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : G.apply(g, r)
804 })
805 }
806
807 function ub(a) {
808 for (var b, c, e, f = a.length, g = d.relative[a[0].type], i = g || d.relative[" "], j = g ? 1 : 0, k = qb(function(a) {
809 return a === b
810 }, i, !0), l = qb(function(a) {
811 return I.call(b, a) > -1
812 }, i, !0), m = [
813 function(a, c, d) {
814 return !g && (d || c !== h) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d))
815 }
816 ]; f > j; j++)
817 if (c = d.relative[a[j].type]) m = [qb(rb(m), c)];
818 else {
819 if (c = d.filter[a[j].type].apply(null, a[j].matches), c[s]) {
820 for (e = ++j; f > e; e++)
821 if (d.relative[a[e].type]) break;
822 return tb(j > 1 && rb(m), j > 1 && pb(a.slice(0, j - 1).concat({
823 value: " " === a[j - 2].type ? "*" : ""
824 })).replace(P, "$1"), c, e > j && ub(a.slice(j, e)), f > e && ub(a = a.slice(e)), f > e && pb(a))
825 }
826 m.push(c)
827 }
828 return rb(m)
829 }
830
831 function vb(a, b) {
832 var c = b.length > 0,
833 e = a.length > 0,
834 f = function(f, g, i, j, k) {
835 var m, n, o, p = 0,
836 q = "0",
837 r = f && [],
838 s = [],
839 t = h,
840 v = f || e && d.find.TAG("*", k),
841 w = u += null == t ? 1 : Math.random() || .1,
842 x = v.length;
843 for (k && (h = g !== l && g); q !== x && null != (m = v[q]); q++) {
844 if (e && m) {
845 n = 0;
846 while (o = a[n++])
847 if (o(m, g, i)) {
848 j.push(m);
849 break
850 }
851 k && (u = w)
852 }
853 c && ((m = !o && m) && p--, f && r.push(m))
854 }
855 if (p += q, c && q !== p) {
856 n = 0;
857 while (o = b[n++]) o(r, s, g, i);
858 if (f) {
859 if (p > 0)
860 while (q--) r[q] || s[q] || (s[q] = E.call(j));
861 s = sb(s)
862 }
863 G.apply(j, s), k && !f && s.length > 0 && p + b.length > 1 && db.uniqueSort(j)
864 }
865 return k && (u = w, h = t), r
866 };
867 return c ? fb(f) : f
868 }
869 g = db.compile = function(a, b) {
870 var c, d = [],
871 e = [],
872 f = y[a + " "];
873 if (!f) {
874 b || (b = ob(a)), c = b.length;
875 while (c--) f = ub(b[c]), f[s] ? d.push(f) : e.push(f);
876 f = y(a, vb(e, d))
877 }
878 return f
879 };
880
881 function wb(a, b, c) {
882 for (var d = 0, e = b.length; e > d; d++) db(a, b[d], c);
883 return c
884 }
885
886 function xb(a, b, e, f) {
887 var h, i, j, k, l, m = ob(a);
888 if (!f && 1 === m.length) {
889 if (i = m[0] = m[0].slice(0), i.length > 2 && "ID" === (j = i[0]).type && c.getById && 9 === b.nodeType && n && d.relative[i[1].type]) {
890 if (b = (d.find.ID(j.matches[0].replace(ab, bb), b) || [])[0], !b) return e;
891 a = a.slice(i.shift().value.length)
892 }
893 h = V.needsContext.test(a) ? 0 : i.length;
894 while (h--) {
895 if (j = i[h], d.relative[k = j.type]) break;
896 if ((l = d.find[k]) && (f = l(j.matches[0].replace(ab, bb), $.test(i[0].type) && mb(b.parentNode) || b))) {
897 if (i.splice(h, 1), a = f.length && pb(i), !a) return G.apply(e, f), e;
898 break
899 }
900 }
901 }
902 return g(a, m)(f, b, !n, e, $.test(a) && mb(b.parentNode) || b), e
903 }
904 return c.sortStable = s.split("").sort(z).join("") === s, c.detectDuplicates = !!j, k(), c.sortDetached = gb(function(a) {
905 return 1 & a.compareDocumentPosition(l.createElement("div"))
906 }), gb(function(a) {
907 return a.innerHTML = "<a href='#'></a>", "#" === a.firstChild.getAttribute("href")
908 }) || hb("type|href|height|width", function(a, b, c) {
909 return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2)
910 }), c.attributes && gb(function(a) {
911 return a.innerHTML = "<input/>", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value")
912 }) || hb("value", function(a, b, c) {
913 return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue
914 }), gb(function(a) {
915 return null == a.getAttribute("disabled")
916 }) || hb(J, function(a, b, c) {
917 var d;
918 return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null
919 }), db
920 }(a);
921 n.find = t, n.expr = t.selectors, n.expr[":"] = n.expr.pseudos, n.unique = t.uniqueSort, n.text = t.getText, n.isXMLDoc = t.isXML, n.contains = t.contains;
922 var u = n.expr.match.needsContext,
923 v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
924 w = /^.[^:#\[\.,]*$/;
925
926 function x(a, b, c) {
927 if (n.isFunction(b)) return n.grep(a, function(a, d) {
928 return !!b.call(a, d, a) !== c
929 });
930 if (b.nodeType) return n.grep(a, function(a) {
931 return a === b !== c
932 });
933 if ("string" == typeof b) {
934 if (w.test(b)) return n.filter(b, a, c);
935 b = n.filter(b, a)
936 }
937 return n.grep(a, function(a) {
938 return n.inArray(a, b) >= 0 !== c
939 })
940 }
941 n.filter = function(a, b, c) {
942 var d = b[0];
943 return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? n.find.matchesSelector(d, a) ? [d] : [] : n.find.matches(a, n.grep(b, function(a) {
944 return 1 === a.nodeType
945 }))
946 }, n.fn.extend({
947 find: function(a) {
948 var b, c = [],
949 d = this,
950 e = d.length;
951 if ("string" != typeof a) return this.pushStack(n(a).filter(function() {
952 for (b = 0; e > b; b++)
953 if (n.contains(d[b], this)) return !0
954 }));
955 for (b = 0; e > b; b++) n.find(a, d[b], c);
956 return c = this.pushStack(e > 1 ? n.unique(c) : c), c.selector = this.selector ? this.selector + " " + a : a, c
957 },
958 filter: function(a) {
959 return this.pushStack(x(this, a || [], !1))
960 },
961 not: function(a) {
962 return this.pushStack(x(this, a || [], !0))
963 },
964 is: function(a) {
965 return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length
966 }
967 });
968 var y, z = a.document,
969 A = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
970 B = n.fn.init = function(a, b) {
971 var c, d;
972 if (!a) return this;
973 if ("string" == typeof a) {
974 if (c = "<" === a.charAt(0) && ">" === a.charAt(a.length - 1) && a.length >= 3 ? [null, a, null] : A.exec(a), !c || !c[1] && b) return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a);
975 if (c[1]) {
976 if (b = b instanceof n ? b[0] : b, n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : z, !0)), v.test(c[1]) && n.isPlainObject(b))
977 for (c in b) n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]);
978 return this
979 }
980 if (d = z.getElementById(c[2]), d && d.parentNode) {
981 if (d.id !== c[2]) return y.find(a);
982 this.length = 1, this[0] = d
983 }
984 return this.context = z, this.selector = a, this
985 }
986 return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : n.isFunction(a) ? "undefined" != typeof y.ready ? y.ready(a) : a(n) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), n.makeArray(a, this))
987 };
988 B.prototype = n.fn, y = n(z);
989 var C = /^(?:parents|prev(?:Until|All))/,
990 D = {
991 children: !0,
992 contents: !0,
993 next: !0,
994 prev: !0
995 };
996 n.extend({
997 dir: function(a, b, c) {
998 var d = [],
999 e = a[b];
1000 while (e && 9 !== e.nodeType && (void 0 === c || 1 !== e.nodeType || !n(e).is(c))) 1 === e.nodeType && d.push(e), e = e[b];
1001 return d
1002 },
1003 sibling: function(a, b) {
1004 for (var c = []; a; a = a.nextSibling) 1 === a.nodeType && a !== b && c.push(a);
1005 return c
1006 }
1007 }), n.fn.extend({
1008 has: function(a) {
1009 var b, c = n(a, this),
1010 d = c.length;
1011 return this.filter(function() {
1012 for (b = 0; d > b; b++)
1013 if (n.contains(this, c[b])) return !0
1014 })
1015 },
1016 closest: function(a, b) {
1017 for (var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; e > d; d++)
1018 for (c = this[d]; c && c !== b; c = c.parentNode)
1019 if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) {
1020 f.push(c);
1021 break
1022 }
1023 return this.pushStack(f.length > 1 ? n.unique(f) : f)
1024 },
1025 index: function(a) {
1026 return a ? "string" == typeof a ? n.inArray(this[0], n(a)) : n.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
1027 },
1028 add: function(a, b) {
1029 return this.pushStack(n.unique(n.merge(this.get(), n(a, b))))
1030 },
1031 addBack: function(a) {
1032 return this.add(null == a ? this.prevObject : this.prevObject.filter(a))
1033 }
1034 });
1035
1036 function E(a, b) {
1037 do a = a[b]; while (a && 1 !== a.nodeType);
1038 return a
1039 }
1040 n.each({
1041 parent: function(a) {
1042 var b = a.parentNode;
1043 return b && 11 !== b.nodeType ? b : null
1044 },
1045 parents: function(a) {
1046 return n.dir(a, "parentNode")
1047 },
1048 parentsUntil: function(a, b, c) {
1049 return n.dir(a, "parentNode", c)
1050 },
1051 next: function(a) {
1052 return E(a, "nextSibling")
1053 },
1054 prev: function(a) {
1055 return E(a, "previousSibling")
1056 },
1057 nextAll: function(a) {
1058 return n.dir(a, "nextSibling")
1059 },
1060 prevAll: function(a) {
1061 return n.dir(a, "previousSibling")
1062 },
1063 nextUntil: function(a, b, c) {
1064 return n.dir(a, "nextSibling", c)
1065 },
1066 prevUntil: function(a, b, c) {
1067 return n.dir(a, "previousSibling", c)
1068 },
1069 siblings: function(a) {
1070 return n.sibling((a.parentNode || {}).firstChild, a)
1071 },
1072 children: function(a) {
1073 return n.sibling(a.firstChild)
1074 },
1075 contents: function(a) {
1076 return n.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : n.merge([], a.childNodes)
1077 }
1078 }, function(a, b) {
1079 n.fn[a] = function(c, d) {
1080 var e = n.map(this, b, c);
1081 return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = n.filter(d, e)), this.length > 1 && (D[a] || (e = n.unique(e)), C.test(a) && (e = e.reverse())), this.pushStack(e)
1082 }
1083 });
1084 var F = /\S+/g,
1085 G = {};
1086
1087 function H(a) {
1088 var b = G[a] = {};
1089 return n.each(a.match(F) || [], function(a, c) {
1090 b[c] = !0
1091 }), b
1092 }
1093 n.Callbacks = function(a) {
1094 a = "string" == typeof a ? G[a] || H(a) : n.extend({}, a);
1095 var b, c, d, e, f, g, h = [],
1096 i = !a.once && [],
1097 j = function(l) {
1098 for (c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; h && e > f; f++)
1099 if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) {
1100 c = !1;
1101 break
1102 }
1103 b = !1, h && (i ? i.length && j(i.shift()) : c ? h = [] : k.disable())
1104 },
1105 k = {
1106 add: function() {
1107 if (h) {
1108 var d = h.length;
1109 ! function f(b) {
1110 n.each(b, function(b, c) {
1111 var d = n.type(c);
1112 "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && f(c)
1113 })
1114 }(arguments), b ? e = h.length : c && (g = d, j(c))
1115 }
1116 return this
1117 },
1118 remove: function() {
1119 return h && n.each(arguments, function(a, c) {
1120 var d;
1121 while ((d = n.inArray(c, h, d)) > -1) h.splice(d, 1), b && (e >= d && e--, f >= d && f--)
1122 }), this
1123 },
1124 has: function(a) {
1125 return a ? n.inArray(a, h) > -1 : !(!h || !h.length)
1126 },
1127 empty: function() {
1128 return h = [], e = 0, this
1129 },
1130 disable: function() {
1131 return h = i = c = void 0, this
1132 },
1133 disabled: function() {
1134 return !h
1135 },
1136 lock: function() {
1137 return i = void 0, c || k.disable(), this
1138 },
1139 locked: function() {
1140 return !i
1141 },
1142 fireWith: function(a, c) {
1143 return !h || d && !i || (c = c || [], c = [a, c.slice ? c.slice() : c], b ? i.push(c) : j(c)), this
1144 },
1145 fire: function() {
1146 return k.fireWith(this, arguments), this
1147 },
1148 fired: function() {
1149 return !!d
1150 }
1151 };
1152 return k
1153 }, n.extend({
1154 Deferred: function(a) {
1155 var b = [
1156 ["resolve", "done", n.Callbacks("once memory"), "resolved"],
1157 ["reject", "fail", n.Callbacks("once memory"), "rejected"],
1158 ["notify", "progress", n.Callbacks("memory")]
1159 ],
1160 c = "pending",
1161 d = {
1162 state: function() {
1163 return c
1164 },
1165 always: function() {
1166 return e.done(arguments).fail(arguments), this
1167 },
1168 then: function() {
1169 var a = arguments;
1170 return n.Deferred(function(c) {
1171 n.each(b, function(b, f) {
1172 var g = n.isFunction(a[b]) && a[b];
1173 e[f[1]](function() {
1174 var a = g && g.apply(this, arguments);
1175 a && n.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments)
1176 })
1177 }), a = null
1178 }).promise()
1179 },
1180 promise: function(a) {
1181 return null != a ? n.extend(a, d) : d
1182 }
1183 },
1184 e = {};
1185 return d.pipe = d.then, n.each(b, function(a, f) {
1186 var g = f[2],
1187 h = f[3];
1188 d[f[1]] = g.add, h && g.add(function() {
1189 c = h
1190 }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function() {
1191 return e[f[0] + "With"](this === e ? d : this, arguments), this
1192 }, e[f[0] + "With"] = g.fireWith
1193 }), d.promise(e), a && a.call(e, e), e
1194 },
1195 when: function(a) {
1196 var b = 0,
1197 c = d.call(arguments),
1198 e = c.length,
1199 f = 1 !== e || a && n.isFunction(a.promise) ? e : 0,
1200 g = 1 === f ? a : n.Deferred(),
1201 h = function(a, b, c) {
1202 return function(e) {
1203 b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c)
1204 }
1205 },
1206 i, j, k;
1207 if (e > 1)
1208 for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) c[b] && n.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f;
1209 return f || g.resolveWith(k, c), g.promise()
1210 }
1211 });
1212 var I;
1213 n.fn.ready = function(a) {
1214 return n.ready.promise().done(a), this
1215 }, n.extend({
1216 isReady: !1,
1217 readyWait: 1,
1218 holdReady: function(a) {
1219 a ? n.readyWait++ : n.ready(!0)
1220 },
1221 ready: function(a) {
1222 if (a === !0 ? !--n.readyWait : !n.isReady) {
1223 if (!z.body) return setTimeout(n.ready);
1224 n.isReady = !0, a !== !0 && --n.readyWait > 0 || (I.resolveWith(z, [n]), n.fn.trigger && n(z).trigger("ready").off("ready"))
1225 }
1226 }
1227 });
1228
1229 function J() {
1230 z.addEventListener ? (z.removeEventListener("DOMContentLoaded", K, !1), a.removeEventListener("load", K, !1)) : (z.detachEvent("onreadystatechange", K), a.detachEvent("onload", K))
1231 }
1232
1233 function K() {
1234 (z.addEventListener || "load" === event.type || "complete" === z.readyState) && (J(), n.ready())
1235 }
1236 n.ready.promise = function(b) {
1237 if (!I)
1238 if (I = n.Deferred(), "complete" === z.readyState) setTimeout(n.ready);
1239 else if (z.addEventListener) z.addEventListener("DOMContentLoaded", K, !1), a.addEventListener("load", K, !1);
1240 else {
1241 z.attachEvent("onreadystatechange", K), a.attachEvent("onload", K);
1242 var c = !1;
1243 try {
1244 c = null == a.frameElement && z.documentElement
1245 } catch (d) {}
1246 c && c.doScroll && ! function e() {
1247 if (!n.isReady) {
1248 try {
1249 c.doScroll("left")
1250 } catch (a) {
1251 return setTimeout(e, 50)
1252 }
1253 J(), n.ready()
1254 }
1255 }()
1256 }
1257 return I.promise(b)
1258 };
1259 var L = "undefined",
1260 M;
1261 for (M in n(l)) break;
1262 l.ownLast = "0" !== M, l.inlineBlockNeedsLayout = !1, n(function() {
1263 var a, b, c = z.getElementsByTagName("body")[0];
1264 c && (a = z.createElement("div"), a.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px", b = z.createElement("div"), c.appendChild(a).appendChild(b), typeof b.style.zoom !== L && (b.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1", (l.inlineBlockNeedsLayout = 3 === b.offsetWidth) && (c.style.zoom = 1)), c.removeChild(a), a = b = null)
1265 }),
1266 function() {
1267 var a = z.createElement("div");
1268 if (null == l.deleteExpando) {
1269 l.deleteExpando = !0;
1270 try {
1271 delete a.test
1272 } catch (b) {
1273 l.deleteExpando = !1
1274 }
1275 }
1276 a = null
1277 }(), n.acceptData = function(a) {
1278 var b = n.noData[(a.nodeName + " ").toLowerCase()],
1279 c = +a.nodeType || 1;
1280 return 1 !== c && 9 !== c ? !1 : !b || b !== !0 && a.getAttribute("classid") === b
1281 };
1282 var N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
1283 O = /([A-Z])/g;
1284
1285 function P(a, b, c) {
1286 if (void 0 === c && 1 === a.nodeType) {
1287 var d = "data-" + b.replace(O, "-$1").toLowerCase();
1288 if (c = a.getAttribute(d), "string" == typeof c) {
1289 try {
1290 c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : N.test(c) ? n.parseJSON(c) : c
1291 } catch (e) {}
1292 n.data(a, b, c)
1293 } else c = void 0
1294 }
1295 return c
1296 }
1297
1298 function Q(a) {
1299 var b;
1300 for (b in a)
1301 if (("data" !== b || !n.isEmptyObject(a[b])) && "toJSON" !== b) return !1;
1302 return !0
1303 }
1304
1305 function R(a, b, d, e) {
1306 if (n.acceptData(a)) {
1307 var f, g, h = n.expando,
1308 i = a.nodeType,
1309 j = i ? n.cache : a,
1310 k = i ? a[h] : a[h] && h;
1311 if (k && j[k] && (e || j[k].data) || void 0 !== d || "string" != typeof b) return k || (k = i ? a[h] = c.pop() || n.guid++ : h), j[k] || (j[k] = i ? {} : {
1312 toJSON: n.noop
1313 }), ("object" == typeof b || "function" == typeof b) && (e ? j[k] = n.extend(j[k], b) : j[k].data = n.extend(j[k].data, b)), g = j[k], e || (g.data || (g.data = {}), g = g.data), void 0 !== d && (g[n.camelCase(b)] = d), "string" == typeof b ? (f = g[b], null == f && (f = g[n.camelCase(b)])) : f = g, f
1314 }
1315 }
1316
1317 function S(a, b, c) {
1318 if (n.acceptData(a)) {
1319 var d, e, f = a.nodeType,
1320 g = f ? n.cache : a,
1321 h = f ? a[n.expando] : n.expando;
1322 if (g[h]) {
1323 if (b && (d = c ? g[h] : g[h].data)) {
1324 n.isArray(b) ? b = b.concat(n.map(b, n.camelCase)) : b in d ? b = [b] : (b = n.camelCase(b), b = b in d ? [b] : b.split(" ")), e = b.length;
1325 while (e--) delete d[b[e]];
1326 if (c ? !Q(d) : !n.isEmptyObject(d)) return
1327 }(c || (delete g[h].data, Q(g[h]))) && (f ? n.cleanData([a], !0) : l.deleteExpando || g != g.window ? delete g[h] : g[h] = null)
1328 }
1329 }
1330 }
1331 n.extend({
1332 cache: {},
1333 noData: {
1334 "applet ": !0,
1335 "embed ": !0,
1336 "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
1337 },
1338 hasData: function(a) {
1339 return a = a.nodeType ? n.cache[a[n.expando]] : a[n.expando], !!a && !Q(a)
1340 },
1341 data: function(a, b, c) {
1342 return R(a, b, c)
1343 },
1344 removeData: function(a, b) {
1345 return S(a, b)
1346 },
1347 _data: function(a, b, c) {
1348 return R(a, b, c, !0)
1349 },
1350 _removeData: function(a, b) {
1351 return S(a, b, !0)
1352 }
1353 }), n.fn.extend({
1354 data: function(a, b) {
1355 var c, d, e, f = this[0],
1356 g = f && f.attributes;
1357 if (void 0 === a) {
1358 if (this.length && (e = n.data(f), 1 === f.nodeType && !n._data(f, "parsedAttrs"))) {
1359 c = g.length;
1360 while (c--) d = g[c].name, 0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)), P(f, d, e[d]));
1361 n._data(f, "parsedAttrs", !0)
1362 }
1363 return e
1364 }
1365 return "object" == typeof a ? this.each(function() {
1366 n.data(this, a)
1367 }) : arguments.length > 1 ? this.each(function() {
1368 n.data(this, a, b)
1369 }) : f ? P(f, a, n.data(f, a)) : void 0
1370 },
1371 removeData: function(a) {
1372 return this.each(function() {
1373 n.removeData(this, a)
1374 })
1375 }
1376 }), n.extend({
1377 queue: function(a, b, c) {
1378 var d;
1379 return a ? (b = (b || "fx") + "queue", d = n._data(a, b), c && (!d || n.isArray(c) ? d = n._data(a, b, n.makeArray(c)) : d.push(c)), d || []) : void 0
1380 },
1381 dequeue: function(a, b) {
1382 b = b || "fx";
1383 var c = n.queue(a, b),
1384 d = c.length,
1385 e = c.shift(),
1386 f = n._queueHooks(a, b),
1387 g = function() {
1388 n.dequeue(a, b)
1389 };
1390 "inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire()
1391 },
1392 _queueHooks: function(a, b) {
1393 var c = b + "queueHooks";
1394 return n._data(a, c) || n._data(a, c, {
1395 empty: n.Callbacks("once memory").add(function() {
1396 n._removeData(a, b + "queue"), n._removeData(a, c)
1397 })
1398 })
1399 }
1400 }), n.fn.extend({
1401 queue: function(a, b) {
1402 var c = 2;
1403 return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function() {
1404 var c = n.queue(this, a, b);
1405 n._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a)
1406 })
1407 },
1408 dequeue: function(a) {
1409 return this.each(function() {
1410 n.dequeue(this, a)
1411 })
1412 },
1413 clearQueue: function(a) {
1414 return this.queue(a || "fx", [])
1415 },
1416 promise: function(a, b) {
1417 var c, d = 1,
1418 e = n.Deferred(),
1419 f = this,
1420 g = this.length,
1421 h = function() {
1422 --d || e.resolveWith(f, [f])
1423 };
1424 "string" != typeof a && (b = a, a = void 0), a = a || "fx";
1425 while (g--) c = n._data(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h));
1426 return h(), e.promise(b)
1427 }
1428 });
1429 var T = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
1430 U = ["Top", "Right", "Bottom", "Left"],
1431 V = function(a, b) {
1432 return a = b || a, "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a)
1433 },
1434 W = n.access = function(a, b, c, d, e, f, g) {
1435 var h = 0,
1436 i = a.length,
1437 j = null == c;
1438 if ("object" === n.type(c)) {
1439 e = !0;
1440 for (h in c) n.access(a, b, h, c[h], !0, f, g)
1441 } else if (void 0 !== d && (e = !0, n.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function(a, b, c) {
1442 return j.call(n(a), c)
1443 })), b))
1444 for (; i > h; h++) b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c)));
1445 return e ? a : j ? b.call(a) : i ? b(a[0], c) : f
1446 },
1447 X = /^(?:checkbox|radio)$/i;
1448 ! function() {
1449 var a = z.createDocumentFragment(),
1450 b = z.createElement("div"),
1451 c = z.createElement("input");
1452 if (b.setAttribute("className", "t"), b.innerHTML = " <link/><table></table><a href='/a'>a</a>", l.leadingWhitespace = 3 === b.firstChild.nodeType, l.tbody = !b.getElementsByTagName("tbody").length, l.htmlSerialize = !!b.getElementsByTagName("link").length, l.html5Clone = "<:nav></:nav>" !== z.createElement("nav").cloneNode(!0).outerHTML, c.type = "checkbox", c.checked = !0, a.appendChild(c), l.appendChecked = c.checked, b.innerHTML = "<textarea>x</textarea>", l.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue, a.appendChild(b), b.innerHTML = "<input type='radio' checked='checked' name='t'/>", l.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, l.noCloneEvent = !0, b.attachEvent && (b.attachEvent("onclick", function() {
1453 l.noCloneEvent = !1
1454 }), b.cloneNode(!0).click()), null == l.deleteExpando) {
1455 l.deleteExpando = !0;
1456 try {
1457 delete b.test
1458 } catch (d) {
1459 l.deleteExpando = !1
1460 }
1461 }
1462 a = b = c = null
1463 }(),
1464 function() {
1465 var b, c, d = z.createElement("div");
1466 for (b in {
1467 submit: !0,
1468 change: !0,
1469 focusin: !0
1470 }) c = "on" + b, (l[b + "Bubbles"] = c in a) || (d.setAttribute(c, "t"), l[b + "Bubbles"] = d.attributes[c].expando === !1);
1471 d = null
1472 }();
1473 var Y = /^(?:input|select|textarea)$/i,
1474 Z = /^key/,
1475 $ = /^(?:mouse|contextmenu)|click/,
1476 _ = /^(?:focusinfocus|focusoutblur)$/,
1477 ab = /^([^.]*)(?:\.(.+)|)$/;
1478
1479 function bb() {
1480 return !0
1481 }
1482
1483 function cb() {
1484 return !1
1485 }
1486
1487 function db() {
1488 try {
1489 return z.activeElement
1490 } catch (a) {}
1491 }
1492 n.event = {
1493 global: {},
1494 add: function(a, b, c, d, e) {
1495 var f, g, h, i, j, k, l, m, o, p, q, r = n._data(a);
1496 if (r) {
1497 c.handler && (i = c, c = i.handler, e = i.selector), c.guid || (c.guid = n.guid++), (g = r.events) || (g = r.events = {}), (k = r.handle) || (k = r.handle = function(a) {
1498 return typeof n === L || a && n.event.triggered === a.type ? void 0 : n.event.dispatch.apply(k.elem, arguments)
1499 }, k.elem = a), b = (b || "").match(F) || [""], h = b.length;
1500 while (h--) f = ab.exec(b[h]) || [], o = q = f[1], p = (f[2] || "").split(".").sort(), o && (j = n.event.special[o] || {}, o = (e ? j.delegateType : j.bindType) || o, j = n.event.special[o] || {}, l = n.extend({
1501 type: o,
1502 origType: q,
1503 data: d,
1504 handler: c,
1505 guid: c.guid,
1506 selector: e,
1507 needsContext: e && n.expr.match.needsContext.test(e),
1508 namespace: p.join(".")
1509 }, i), (m = g[o]) || (m = g[o] = [], m.delegateCount = 0, j.setup && j.setup.call(a, d, p, k) !== !1 || (a.addEventListener ? a.addEventListener(o, k, !1) : a.attachEvent && a.attachEvent("on" + o, k))), j.add && (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, l) : m.push(l), n.event.global[o] = !0);
1510 a = null
1511 }
1512 },
1513 remove: function(a, b, c, d, e) {
1514 var f, g, h, i, j, k, l, m, o, p, q, r = n.hasData(a) && n._data(a);
1515 if (r && (k = r.events)) {
1516 b = (b || "").match(F) || [""], j = b.length;
1517 while (j--)
1518 if (h = ab.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) {
1519 l = n.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, m = k[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), i = f = m.length;
1520 while (f--) g = m[f], !e && q !== g.origType || c && c.guid !== g.guid || h && !h.test(g.namespace) || d && d !== g.selector && ("**" !== d || !g.selector) || (m.splice(f, 1), g.selector && m.delegateCount--, l.remove && l.remove.call(a, g));
1521 i && !m.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle), delete k[o])
1522 } else
1523 for (o in k) n.event.remove(a, o + b[j], c, d, !0);
1524 n.isEmptyObject(k) && (delete r.handle, n._removeData(a, "events"))
1525 }
1526 },
1527 trigger: function(b, c, d, e) {
1528 var f, g, h, i, k, l, m, o = [d || z],
1529 p = j.call(b, "type") ? b.type : b,
1530 q = j.call(b, "namespace") ? b.namespace.split(".") : [];
1531 if (h = l = d = d || z, 3 !== d.nodeType && 8 !== d.nodeType && !_.test(p + n.event.triggered) && (p.indexOf(".") >= 0 && (q = p.split("."), p = q.shift(), q.sort()), g = p.indexOf(":") < 0 && "on" + p, b = b[n.expando] ? b : new n.Event(p, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = q.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : n.makeArray(c, [b]), k = n.event.special[p] || {}, e || !k.trigger || k.trigger.apply(d, c) !== !1)) {
1532 if (!e && !k.noBubble && !n.isWindow(d)) {
1533 for (i = k.delegateType || p, _.test(i + p) || (h = h.parentNode); h; h = h.parentNode) o.push(h), l = h;
1534 l === (d.ownerDocument || z) && o.push(l.defaultView || l.parentWindow || a)
1535 }
1536 m = 0;
1537 while ((h = o[m++]) && !b.isPropagationStopped()) b.type = m > 1 ? i : k.bindType || p, f = (n._data(h, "events") || {})[b.type] && n._data(h, "handle"), f && f.apply(h, c), f = g && h[g], f && f.apply && n.acceptData(h) && (b.result = f.apply(h, c), b.result === !1 && b.preventDefault());
1538 if (b.type = p, !e && !b.isDefaultPrevented() && (!k._default || k._default.apply(o.pop(), c) === !1) && n.acceptData(d) && g && d[p] && !n.isWindow(d)) {
1539 l = d[g], l && (d[g] = null), n.event.triggered = p;
1540 try {
1541 d[p]()
1542 } catch (r) {}
1543 n.event.triggered = void 0, l && (d[g] = l)
1544 }
1545 return b.result
1546 }
1547 },
1548 dispatch: function(a) {
1549 a = n.event.fix(a);
1550 var b, c, e, f, g, h = [],
1551 i = d.call(arguments),
1552 j = (n._data(this, "events") || {})[a.type] || [],
1553 k = n.event.special[a.type] || {};
1554 if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) {
1555 h = n.event.handlers.call(this, a, j), b = 0;
1556 while ((f = h[b++]) && !a.isPropagationStopped()) {
1557 a.currentTarget = f.elem, g = 0;
1558 while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped())(!a.namespace_re || a.namespace_re.test(e.namespace)) && (a.handleObj = e, a.data = e.data, c = ((n.event.special[e.origType] || {}).handle || e.handler).apply(f.elem, i), void 0 !== c && (a.result = c) === !1 && (a.preventDefault(), a.stopPropagation()))
1559 }
1560 return k.postDispatch && k.postDispatch.call(this, a), a.result
1561 }
1562 },
1563 handlers: function(a, b) {
1564 var c, d, e, f, g = [],
1565 h = b.delegateCount,
1566 i = a.target;
1567 if (h && i.nodeType && (!a.button || "click" !== a.type))
1568 for (; i != this; i = i.parentNode || this)
1569 if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) {
1570 for (e = [], f = 0; h > f; f++) d = b[f], c = d.selector + " ", void 0 === e[c] && (e[c] = d.needsContext ? n(c, this).index(i) >= 0 : n.find(c, this, null, [i]).length), e[c] && e.push(d);
1571 e.length && g.push({
1572 elem: i,
1573 handlers: e
1574 })
1575 }
1576 return h < b.length && g.push({
1577 elem: this,
1578 handlers: b.slice(h)
1579 }), g
1580 },
1581 fix: function(a) {
1582 if (a[n.expando]) return a;
1583 var b, c, d, e = a.type,
1584 f = a,
1585 g = this.fixHooks[e];
1586 g || (this.fixHooks[e] = g = $.test(e) ? this.mouseHooks : Z.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new n.Event(f), b = d.length;
1587 while (b--) c = d[b], a[c] = f[c];
1588 return a.target || (a.target = f.srcElement || z), 3 === a.target.nodeType && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, g.filter ? g.filter(a, f) : a
1589 },
1590 props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
1591 fixHooks: {},
1592 keyHooks: {
1593 props: "char charCode key keyCode".split(" "),
1594 filter: function(a, b) {
1595 return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a
1596 }
1597 },
1598 mouseHooks: {
1599 props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
1600 filter: function(a, b) {
1601 var c, d, e, f = b.button,
1602 g = b.fromElement;
1603 return null == a.pageX && null != b.clientX && (d = a.target.ownerDocument || z, e = d.documentElement, c = d.body, a.pageX = b.clientX + (e && e.scrollLeft || c && c.scrollLeft || 0) - (e && e.clientLeft || c && c.clientLeft || 0), a.pageY = b.clientY + (e && e.scrollTop || c && c.scrollTop || 0) - (e && e.clientTop || c && c.clientTop || 0)), !a.relatedTarget && g && (a.relatedTarget = g === a.target ? b.toElement : g), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a
1604 }
1605 },
1606 special: {
1607 load: {
1608 noBubble: !0
1609 },
1610 focus: {
1611 trigger: function() {
1612 if (this !== db() && this.focus) try {
1613 return this.focus(), !1
1614 } catch (a) {}
1615 },
1616 delegateType: "focusin"
1617 },
1618 blur: {
1619 trigger: function() {
1620 return this === db() && this.blur ? (this.blur(), !1) : void 0
1621 },
1622 delegateType: "focusout"
1623 },
1624 click: {
1625 trigger: function() {
1626 return n.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
1627 },
1628 _default: function(a) {
1629 return n.nodeName(a.target, "a")
1630 }
1631 },
1632 beforeunload: {
1633 postDispatch: function(a) {
1634 void 0 !== a.result && (a.originalEvent.returnValue = a.result)
1635 }
1636 }
1637 },
1638 simulate: function(a, b, c, d) {
1639 var e = n.extend(new n.Event, c, {
1640 type: a,
1641 isSimulated: !0,
1642 originalEvent: {}
1643 });
1644 d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault()
1645 }
1646 }, n.removeEvent = z.removeEventListener ? function(a, b, c) {
1647 a.removeEventListener && a.removeEventListener(b, c, !1)
1648 } : function(a, b, c) {
1649 var d = "on" + b;
1650 a.detachEvent && (typeof a[d] === L && (a[d] = null), a.detachEvent(d, c))
1651 }, n.Event = function(a, b) {
1652 return this instanceof n.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && (a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault()) ? bb : cb) : this.type = a, b && n.extend(this, b), this.timeStamp = a && a.timeStamp || n.now(), void(this[n.expando] = !0)) : new n.Event(a, b)
1653 }, n.Event.prototype = {
1654 isDefaultPrevented: cb,
1655 isPropagationStopped: cb,
1656 isImmediatePropagationStopped: cb,
1657 preventDefault: function() {
1658 var a = this.originalEvent;
1659 this.isDefaultPrevented = bb, a && (a.preventDefault ? a.preventDefault() : a.returnValue = !1)
1660 },
1661 stopPropagation: function() {
1662 var a = this.originalEvent;
1663 this.isPropagationStopped = bb, a && (a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0)
1664 },
1665 stopImmediatePropagation: function() {
1666 this.isImmediatePropagationStopped = bb, this.stopPropagation()
1667 }
1668 }, n.each({
1669 mouseenter: "mouseover",
1670 mouseleave: "mouseout"
1671 }, function(a, b) {
1672 n.event.special[a] = {
1673 delegateType: b,
1674 bindType: b,
1675 handle: function(a) {
1676 var c, d = this,
1677 e = a.relatedTarget,
1678 f = a.handleObj;
1679 return (!e || e !== d && !n.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c
1680 }
1681 }
1682 }), l.submitBubbles || (n.event.special.submit = {
1683 setup: function() {
1684 return n.nodeName(this, "form") ? !1 : void n.event.add(this, "click._submit keypress._submit", function(a) {
1685 var b = a.target,
1686 c = n.nodeName(b, "input") || n.nodeName(b, "button") ? b.form : void 0;
1687 c && !n._data(c, "submitBubbles") && (n.event.add(c, "submit._submit", function(a) {
1688 a._submit_bubble = !0
1689 }), n._data(c, "submitBubbles", !0))
1690 })
1691 },
1692 postDispatch: function(a) {
1693 a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && n.event.simulate("submit", this.parentNode, a, !0))
1694 },
1695 teardown: function() {
1696 return n.nodeName(this, "form") ? !1 : void n.event.remove(this, "._submit")
1697 }
1698 }), l.changeBubbles || (n.event.special.change = {
1699 setup: function() {
1700 return Y.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (n.event.add(this, "propertychange._change", function(a) {
1701 "checked" === a.originalEvent.propertyName && (this._just_changed = !0)
1702 }), n.event.add(this, "click._change", function(a) {
1703 this._just_changed && !a.isTrigger && (this._just_changed = !1), n.event.simulate("change", this, a, !0)
1704 })), !1) : void n.event.add(this, "beforeactivate._change", function(a) {
1705 var b = a.target;
1706 Y.test(b.nodeName) && !n._data(b, "changeBubbles") && (n.event.add(b, "change._change", function(a) {
1707 !this.parentNode || a.isSimulated || a.isTrigger || n.event.simulate("change", this.parentNode, a, !0)
1708 }), n._data(b, "changeBubbles", !0))
1709 })
1710 },
1711 handle: function(a) {
1712 var b = a.target;
1713 return this !== b || a.isSimulated || a.isTrigger || "radio" !== b.type && "checkbox" !== b.type ? a.handleObj.handler.apply(this, arguments) : void 0
1714 },
1715 teardown: function() {
1716 return n.event.remove(this, "._change"), !Y.test(this.nodeName)
1717 }
1718 }), l.focusinBubbles || n.each({
1719 focus: "focusin",
1720 blur: "focusout"
1721 }, function(a, b) {
1722 var c = function(a) {
1723 n.event.simulate(b, a.target, n.event.fix(a), !0)
1724 };
1725 n.event.special[b] = {
1726 setup: function() {
1727 var d = this.ownerDocument || this,
1728 e = n._data(d, b);
1729 e || d.addEventListener(a, c, !0), n._data(d, b, (e || 0) + 1)
1730 },
1731 teardown: function() {
1732 var d = this.ownerDocument || this,
1733 e = n._data(d, b) - 1;
1734 e ? n._data(d, b, e) : (d.removeEventListener(a, c, !0), n._removeData(d, b))
1735 }
1736 }
1737 }), n.fn.extend({
1738 on: function(a, b, c, d, e) {
1739 var f, g;
1740 if ("object" == typeof a) {
1741 "string" != typeof b && (c = c || b, b = void 0);
1742 for (f in a) this.on(f, b, c, a[f], e);
1743 return this
1744 }
1745 if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1) d = cb;
1746 else if (!d) return this;
1747 return 1 === e && (g = d, d = function(a) {
1748 return n().off(a), g.apply(this, arguments)
1749 }, d.guid = g.guid || (g.guid = n.guid++)), this.each(function() {
1750 n.event.add(this, a, d, c, b)
1751 })
1752 },
1753 one: function(a, b, c, d) {
1754 return this.on(a, b, c, d, 1)
1755 },
1756 off: function(a, b, c) {
1757 var d, e;
1758 if (a && a.preventDefault && a.handleObj) return d = a.handleObj, n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this;
1759 if ("object" == typeof a) {
1760 for (e in a) this.off(e, b, a[e]);
1761 return this
1762 }
1763 return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = cb), this.each(function() {
1764 n.event.remove(this, a, c, b)
1765 })
1766 },
1767 trigger: function(a, b) {
1768 return this.each(function() {
1769 n.event.trigger(a, b, this)
1770 })
1771 },
1772 triggerHandler: function(a, b) {
1773 var c = this[0];
1774 return c ? n.event.trigger(a, b, c, !0) : void 0
1775 }
1776 });
1777
1778 function eb(a) {
1779 var b = fb.split("|"),
1780 c = a.createDocumentFragment();
1781 if (c.createElement)
1782 while (b.length) c.createElement(b.pop());
1783 return c
1784 }
1785 var fb = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
1786 gb = / jQuery\d+="(?:null|\d+)"/g,
1787 hb = new RegExp("<(?:" + fb + ")[\\s/>]", "i"),
1788 ib = /^\s+/,
1789 jb = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
1790 kb = /<([\w:]+)/,
1791 lb = /<tbody/i,
1792 mb = /<|&#?\w+;/,
1793 nb = /<(?:script|style|link)/i,
1794 ob = /checked\s*(?:[^=]|=\s*.checked.)/i,
1795 pb = /^$|\/(?:java|ecma)script/i,
1796 qb = /^true\/(.*)/,
1797 rb = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
1798 sb = {
1799 option: [1, "<select multiple='multiple'>", "</select>"],
1800 legend: [1, "<fieldset>", "</fieldset>"],
1801 area: [1, "<map>", "</map>"],
1802 param: [1, "<object>", "</object>"],
1803 thead: [1, "<table>", "</table>"],
1804 tr: [2, "<table><tbody>", "</tbody></table>"],
1805 col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
1806 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
1807 _default: l.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
1808 },
1809 tb = eb(z),
1810 ub = tb.appendChild(z.createElement("div"));
1811 sb.optgroup = sb.option, sb.tbody = sb.tfoot = sb.colgroup = sb.caption = sb.thead, sb.th = sb.td;
1812
1813 function vb(a, b) {
1814 var c, d, e = 0,
1815 f = typeof a.getElementsByTagName !== L ? a.getElementsByTagName(b || "*") : typeof a.querySelectorAll !== L ? a.querySelectorAll(b || "*") : void 0;
1816 if (!f)
1817 for (f = [], c = a.childNodes || a; null != (d = c[e]); e++)!b || n.nodeName(d, b) ? f.push(d) : n.merge(f, vb(d, b));
1818 return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], f) : f
1819 }
1820
1821 function wb(a) {
1822 X.test(a.type) && (a.defaultChecked = a.checked)
1823 }
1824
1825 function xb(a, b) {
1826 return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a
1827 }
1828
1829 function yb(a) {
1830 return a.type = (null !== n.find.attr(a, "type")) + "/" + a.type, a
1831 }
1832
1833 function zb(a) {
1834 var b = qb.exec(a.type);
1835 return b ? a.type = b[1] : a.removeAttribute("type"), a
1836 }
1837
1838 function Ab(a, b) {
1839 for (var c, d = 0; null != (c = a[d]); d++) n._data(c, "globalEval", !b || n._data(b[d], "globalEval"))
1840 }
1841
1842 function Bb(a, b) {
1843 if (1 === b.nodeType && n.hasData(a)) {
1844 var c, d, e, f = n._data(a),
1845 g = n._data(b, f),
1846 h = f.events;
1847 if (h) {
1848 delete g.handle, g.events = {};
1849 for (c in h)
1850 for (d = 0, e = h[c].length; e > d; d++) n.event.add(b, c, h[c][d])
1851 }
1852 g.data && (g.data = n.extend({}, g.data))
1853 }
1854 }
1855
1856 function Cb(a, b) {
1857 var c, d, e;
1858 if (1 === b.nodeType) {
1859 if (c = b.nodeName.toLowerCase(), !l.noCloneEvent && b[n.expando]) {
1860 e = n._data(b);
1861 for (d in e.events) n.removeEvent(b, d, e.handle);
1862 b.removeAttribute(n.expando)
1863 }
1864 "script" === c && b.text !== a.text ? (yb(b).text = a.text, zb(b)) : "object" === c ? (b.parentNode && (b.outerHTML = a.outerHTML), l.html5Clone && a.innerHTML && !n.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : "input" === c && X.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : "option" === c ? b.defaultSelected = b.selected = a.defaultSelected : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue)
1865 }
1866 }
1867 n.extend({
1868 clone: function(a, b, c) {
1869 var d, e, f, g, h, i = n.contains(a.ownerDocument, a);
1870 if (l.html5Clone || n.isXMLDoc(a) || !hb.test("<" + a.nodeName + ">") ? f = a.cloneNode(!0) : (ub.innerHTML = a.outerHTML, ub.removeChild(f = ub.firstChild)), !(l.noCloneEvent && l.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a)))
1871 for (d = vb(f), h = vb(a), g = 0; null != (e = h[g]); ++g) d[g] && Cb(e, d[g]);
1872 if (b)
1873 if (c)
1874 for (h = h || vb(a), d = d || vb(f), g = 0; null != (e = h[g]); g++) Bb(e, d[g]);
1875 else Bb(a, f);
1876 return d = vb(f, "script"), d.length > 0 && Ab(d, !i && vb(a, "script")), d = h = e = null, f
1877 },
1878 buildFragment: function(a, b, c, d) {
1879 for (var e, f, g, h, i, j, k, m = a.length, o = eb(b), p = [], q = 0; m > q; q++)
1880 if (f = a[q], f || 0 === f)
1881 if ("object" === n.type(f)) n.merge(p, f.nodeType ? [f] : f);
1882 else if (mb.test(f)) {
1883 h = h || o.appendChild(b.createElement("div")), i = (kb.exec(f) || ["", ""])[1].toLowerCase(), k = sb[i] || sb._default, h.innerHTML = k[1] + f.replace(jb, "<$1></$2>") + k[2], e = k[0];
1884 while (e--) h = h.lastChild;
1885 if (!l.leadingWhitespace && ib.test(f) && p.push(b.createTextNode(ib.exec(f)[0])), !l.tbody) {
1886 f = "table" !== i || lb.test(f) ? "<table>" !== k[1] || lb.test(f) ? 0 : h : h.firstChild, e = f && f.childNodes.length;
1887 while (e--) n.nodeName(j = f.childNodes[e], "tbody") && !j.childNodes.length && f.removeChild(j)
1888 }
1889 n.merge(p, h.childNodes), h.textContent = "";
1890 while (h.firstChild) h.removeChild(h.firstChild);
1891 h = o.lastChild
1892 } else p.push(b.createTextNode(f));
1893 h && o.removeChild(h), l.appendChecked || n.grep(vb(p, "input"), wb), q = 0;
1894 while (f = p[q++])
1895 if ((!d || -1 === n.inArray(f, d)) && (g = n.contains(f.ownerDocument, f), h = vb(o.appendChild(f), "script"), g && Ab(h), c)) {
1896 e = 0;
1897 while (f = h[e++]) pb.test(f.type || "") && c.push(f)
1898 }
1899 return h = null, o
1900 },
1901 cleanData: function(a, b) {
1902 for (var d, e, f, g, h = 0, i = n.expando, j = n.cache, k = l.deleteExpando, m = n.event.special; null != (d = a[h]); h++)
1903 if ((b || n.acceptData(d)) && (f = d[i], g = f && j[f])) {
1904 if (g.events)
1905 for (e in g.events) m[e] ? n.event.remove(d, e) : n.removeEvent(d, e, g.handle);
1906 j[f] && (delete j[f], k ? delete d[i] : typeof d.removeAttribute !== L ? d.removeAttribute(i) : d[i] = null, c.push(f))
1907 }
1908 }
1909 }), n.fn.extend({
1910 text: function(a) {
1911 return W(this, function(a) {
1912 return void 0 === a ? n.text(this) : this.empty().append((this[0] && this[0].ownerDocument || z).createTextNode(a))
1913 }, null, a, arguments.length)
1914 },
1915 append: function() {
1916 return this.domManip(arguments, function(a) {
1917 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
1918 var b = xb(this, a);
1919 b.appendChild(a)
1920 }
1921 })
1922 },
1923 prepend: function() {
1924 return this.domManip(arguments, function(a) {
1925 if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
1926 var b = xb(this, a);
1927 b.insertBefore(a, b.firstChild)
1928 }
1929 })
1930 },
1931 before: function() {
1932 return this.domManip(arguments, function(a) {
1933 this.parentNode && this.parentNode.insertBefore(a, this)
1934 })
1935 },
1936 after: function() {
1937 return this.domManip(arguments, function(a) {
1938 this.parentNode && this.parentNode.insertBefore(a, this.nextSibling)
1939 })
1940 },
1941 remove: function(a, b) {
1942 for (var c, d = a ? n.filter(a, this) : this, e = 0; null != (c = d[e]); e++) b || 1 !== c.nodeType || n.cleanData(vb(c)), c.parentNode && (b && n.contains(c.ownerDocument, c) && Ab(vb(c, "script")), c.parentNode.removeChild(c));
1943 return this
1944 },
1945 empty: function() {
1946 for (var a, b = 0; null != (a = this[b]); b++) {
1947 1 === a.nodeType && n.cleanData(vb(a, !1));
1948 while (a.firstChild) a.removeChild(a.firstChild);
1949 a.options && n.nodeName(a, "select") && (a.options.length = 0)
1950 }
1951 return this
1952 },
1953 clone: function(a, b) {
1954 return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function() {
1955 return n.clone(this, a, b)
1956 })
1957 },
1958 html: function(a) {
1959 return W(this, function(a) {
1960 var b = this[0] || {},
1961 c = 0,
1962 d = this.length;
1963 if (void 0 === a) return 1 === b.nodeType ? b.innerHTML.replace(gb, "") : void 0;
1964 if (!("string" != typeof a || nb.test(a) || !l.htmlSerialize && hb.test(a) || !l.leadingWhitespace && ib.test(a) || sb[(kb.exec(a) || ["", ""])[1].toLowerCase()])) {
1965 a = a.replace(jb, "<$1></$2>");
1966 try {
1967 for (; d > c; c++) b = this[c] || {}, 1 === b.nodeType && (n.cleanData(vb(b, !1)), b.innerHTML = a);
1968 b = 0
1969 } catch (e) {}
1970 }
1971 b && this.empty().append(a)
1972 }, null, a, arguments.length)
1973 },
1974 replaceWith: function() {
1975 var a = arguments[0];
1976 return this.domManip(arguments, function(b) {
1977 a = this.parentNode, n.cleanData(vb(this)), a && a.replaceChild(b, this)
1978 }), a && (a.length || a.nodeType) ? this : this.remove()
1979 },
1980 detach: function(a) {
1981 return this.remove(a, !0)
1982 },
1983 domManip: function(a, b) {
1984 a = e.apply([], a);
1985 var c, d, f, g, h, i, j = 0,
1986 k = this.length,
1987 m = this,
1988 o = k - 1,
1989 p = a[0],
1990 q = n.isFunction(p);
1991 if (q || k > 1 && "string" == typeof p && !l.checkClone && ob.test(p)) return this.each(function(c) {
1992 var d = m.eq(c);
1993 q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b)
1994 });
1995 if (k && (i = n.buildFragment(a, this[0].ownerDocument, !1, this), c = i.firstChild, 1 === i.childNodes.length && (i = c), c)) {
1996 for (g = n.map(vb(i, "script"), yb), f = g.length; k > j; j++) d = i, j !== o && (d = n.clone(d, !0, !0), f && n.merge(g, vb(d, "script"))), b.call(this[j], d, j);
1997 if (f)
1998 for (h = g[g.length - 1].ownerDocument, n.map(g, zb), j = 0; f > j; j++) d = g[j], pb.test(d.type || "") && !n._data(d, "globalEval") && n.contains(h, d) && (d.src ? n._evalUrl && n._evalUrl(d.src) : n.globalEval((d.text || d.textContent || d.innerHTML || "").replace(rb, "")));
1999 i = c = null
2000 }
2001 return this
2002 }
2003 }), n.each({
2004 appendTo: "append",
2005 prependTo: "prepend",
2006 insertBefore: "before",
2007 insertAfter: "after",
2008 replaceAll: "replaceWith"
2009 }, function(a, b) {
2010 n.fn[a] = function(a) {
2011 for (var c, d = 0, e = [], g = n(a), h = g.length - 1; h >= d; d++) c = d === h ? this : this.clone(!0), n(g[d])[b](c), f.apply(e, c.get());
2012 return this.pushStack(e)
2013 }
2014 });
2015 var Db, Eb = {};
2016
2017 function Fb(b, c) {
2018 var d = n(c.createElement(b)).appendTo(c.body),
2019 e = a.getDefaultComputedStyle ? a.getDefaultComputedStyle(d[0]).display : n.css(d[0], "display");
2020 return d.detach(), e
2021 }
2022
2023 function Gb(a) {
2024 var b = z,
2025 c = Eb[a];
2026 return c || (c = Fb(a, b), "none" !== c && c || (Db = (Db || n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement), b = (Db[0].contentWindow || Db[0].contentDocument).document, b.write(), b.close(), c = Fb(a, b), Db.detach()), Eb[a] = c), c
2027 }! function() {
2028 var a, b, c = z.createElement("div"),
2029 d = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";
2030 c.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = c.getElementsByTagName("a")[0], a.style.cssText = "float:left;opacity:.5", l.opacity = /^0.5/.test(a.style.opacity), l.cssFloat = !!a.style.cssFloat, c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = "content-box" === c.style.backgroundClip, a = c = null, l.shrinkWrapBlocks = function() {
2031 var a, c, e, f;
2032 if (null == b) {
2033 if (a = z.getElementsByTagName("body")[0], !a) return;
2034 f = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px", c = z.createElement("div"), e = z.createElement("div"), a.appendChild(c).appendChild(e), b = !1, typeof e.style.zoom !== L && (e.style.cssText = d + ";width:1px;padding:1px;zoom:1", e.innerHTML = "<div></div>", e.firstChild.style.width = "5px", b = 3 !== e.offsetWidth), a.removeChild(c), a = c = e = null
2035 }
2036 return b
2037 }
2038 }();
2039 var Hb = /^margin/,
2040 Ib = new RegExp("^(" + T + ")(?!px)[a-z%]+$", "i"),
2041 Jb, Kb, Lb = /^(top|right|bottom|left)$/;
2042 a.getComputedStyle ? (Jb = function(a) {
2043 return a.ownerDocument.defaultView.getComputedStyle(a, null)
2044 }, Kb = function(a, b, c) {
2045 var d, e, f, g, h = a.style;
2046 return c = c || Jb(a), g = c ? c.getPropertyValue(b) || c[b] : void 0, c && ("" !== g || n.contains(a.ownerDocument, a) || (g = n.style(a, b)), Ib.test(g) && Hb.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), void 0 === g ? g : g + ""
2047 }) : z.documentElement.currentStyle && (Jb = function(a) {
2048 return a.currentStyle
2049 }, Kb = function(a, b, c) {
2050 var d, e, f, g, h = a.style;
2051 return c = c || Jb(a), g = c ? c[b] : void 0, null == g && h && h[b] && (g = h[b]), Ib.test(g) && !Lb.test(b) && (d = h.left, e = a.runtimeStyle, f = e && e.left, f && (e.left = a.currentStyle.left), h.left = "fontSize" === b ? "1em" : g, g = h.pixelLeft + "px", h.left = d, f && (e.left = f)), void 0 === g ? g : g + "" || "auto"
2052 });
2053
2054 function Mb(a, b) {
2055 return {
2056 get: function() {
2057 var c = a();
2058 if (null != c) return c ? void delete this.get : (this.get = b).apply(this, arguments)
2059 }
2060 }
2061 }! function() {
2062 var b, c, d, e, f, g, h = z.createElement("div"),
2063 i = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px",
2064 j = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";
2065 h.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", b = h.getElementsByTagName("a")[0], b.style.cssText = "float:left;opacity:.5", l.opacity = /^0.5/.test(b.style.opacity), l.cssFloat = !!b.style.cssFloat, h.style.backgroundClip = "content-box", h.cloneNode(!0).style.backgroundClip = "", l.clearCloneStyle = "content-box" === h.style.backgroundClip, b = h = null, n.extend(l, {
2066 reliableHiddenOffsets: function() {
2067 if (null != c) return c;
2068 var a, b, d, e = z.createElement("div"),
2069 f = z.getElementsByTagName("body")[0];
2070 if (f) return e.setAttribute("className", "t"), e.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = z.createElement("div"), a.style.cssText = i, f.appendChild(a).appendChild(e), e.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", b = e.getElementsByTagName("td"), b[0].style.cssText = "padding:0;margin:0;border:0;display:none", d = 0 === b[0].offsetHeight, b[0].style.display = "", b[1].style.display = "none", c = d && 0 === b[0].offsetHeight, f.removeChild(a), e = f = null, c
2071 },
2072 boxSizing: function() {
2073 return null == d && k(), d
2074 },
2075 boxSizingReliable: function() {
2076 return null == e && k(), e
2077 },
2078 pixelPosition: function() {
2079 return null == f && k(), f
2080 },
2081 reliableMarginRight: function() {
2082 var b, c, d, e;
2083 if (null == g && a.getComputedStyle) {
2084 if (b = z.getElementsByTagName("body")[0], !b) return;
2085 c = z.createElement("div"), d = z.createElement("div"), c.style.cssText = i, b.appendChild(c).appendChild(d), e = d.appendChild(z.createElement("div")), e.style.cssText = d.style.cssText = j, e.style.marginRight = e.style.width = "0", d.style.width = "1px", g = !parseFloat((a.getComputedStyle(e, null) || {}).marginRight), b.removeChild(c)
2086 }
2087 return g
2088 }
2089 });
2090
2091 function k() {
2092 var b, c, h = z.getElementsByTagName("body")[0];
2093 h && (b = z.createElement("div"), c = z.createElement("div"), b.style.cssText = i, h.appendChild(b).appendChild(c), c.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%", n.swap(h, null != h.style.zoom ? {
2094 zoom: 1
2095 } : {}, function() {
2096 d = 4 === c.offsetWidth
2097 }), e = !0, f = !1, g = !0, a.getComputedStyle && (f = "1%" !== (a.getComputedStyle(c, null) || {}).top, e = "4px" === (a.getComputedStyle(c, null) || {
2098 width: "4px"
2099 }).width), h.removeChild(b), c = h = null)
2100 }
2101 }(), n.swap = function(a, b, c, d) {
2102 var e, f, g = {};
2103 for (f in b) g[f] = a.style[f], a.style[f] = b[f];
2104 e = c.apply(a, d || []);
2105 for (f in b) a.style[f] = g[f];
2106 return e
2107 };
2108 var Nb = /alpha\([^)]*\)/i,
2109 Ob = /opacity\s*=\s*([^)]*)/,
2110 Pb = /^(none|table(?!-c[ea]).+)/,
2111 Qb = new RegExp("^(" + T + ")(.*)$", "i"),
2112 Rb = new RegExp("^([+-])=(" + T + ")", "i"),
2113 Sb = {
2114 position: "absolute",
2115 visibility: "hidden",
2116 display: "block"
2117 },
2118 Tb = {
2119 letterSpacing: 0,
2120 fontWeight: 400
2121 },
2122 Ub = ["Webkit", "O", "Moz", "ms"];
2123
2124 function Vb(a, b) {
2125 if (b in a) return b;
2126 var c = b.charAt(0).toUpperCase() + b.slice(1),
2127 d = b,
2128 e = Ub.length;
2129 while (e--)
2130 if (b = Ub[e] + c, b in a) return b;
2131 return d
2132 }
2133
2134 function Wb(a, b) {
2135 for (var c, d, e, f = [], g = 0, h = a.length; h > g; g++) d = a[g], d.style && (f[g] = n._data(d, "olddisplay"), c = d.style.display, b ? (f[g] || "none" !== c || (d.style.display = ""), "" === d.style.display && V(d) && (f[g] = n._data(d, "olddisplay", Gb(d.nodeName)))) : f[g] || (e = V(d), (c && "none" !== c || !e) && n._data(d, "olddisplay", e ? c : n.css(d, "display"))));
2136 for (g = 0; h > g; g++) d = a[g], d.style && (b && "none" !== d.style.display && "" !== d.style.display || (d.style.display = b ? f[g] || "" : "none"));
2137 return a
2138 }
2139
2140 function Xb(a, b, c) {
2141 var d = Qb.exec(b);
2142 return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b
2143 }
2144
2145 function Yb(a, b, c, d, e) {
2146 for (var f = c === (d ? "border" : "content") ? 4 : "width" === b ? 1 : 0, g = 0; 4 > f; f += 2) "margin" === c && (g += n.css(a, c + U[f], !0, e)), d ? ("content" === c && (g -= n.css(a, "padding" + U[f], !0, e)), "margin" !== c && (g -= n.css(a, "border" + U[f] + "Width", !0, e))) : (g += n.css(a, "padding" + U[f], !0, e), "padding" !== c && (g += n.css(a, "border" + U[f] + "Width", !0, e)));
2147 return g
2148 }
2149
2150 function Zb(a, b, c) {
2151 var d = !0,
2152 e = "width" === b ? a.offsetWidth : a.offsetHeight,
2153 f = Jb(a),
2154 g = l.boxSizing() && "border-box" === n.css(a, "boxSizing", !1, f);
2155 if (0 >= e || null == e) {
2156 if (e = Kb(a, b, f), (0 > e || null == e) && (e = a.style[b]), Ib.test(e)) return e;
2157 d = g && (l.boxSizingReliable() || e === a.style[b]), e = parseFloat(e) || 0
2158 }
2159 return e + Yb(a, b, c || (g ? "border" : "content"), d, f) + "px"
2160 }
2161 n.extend({
2162 cssHooks: {
2163 opacity: {
2164 get: function(a, b) {
2165 if (b) {
2166 var c = Kb(a, "opacity");
2167 return "" === c ? "1" : c
2168 }
2169 }
2170 }
2171 },
2172 cssNumber: {
2173 columnCount: !0,
2174 fillOpacity: !0,
2175 fontWeight: !0,
2176 lineHeight: !0,
2177 opacity: !0,
2178 order: !0,
2179 orphans: !0,
2180 widows: !0,
2181 zIndex: !0,
2182 zoom: !0
2183 },
2184 cssProps: {
2185 "float": l.cssFloat ? "cssFloat" : "styleFloat"
2186 },
2187 style: function(a, b, c, d) {
2188 if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) {
2189 var e, f, g, h = n.camelCase(b),
2190 i = a.style;
2191 if (b = n.cssProps[h] || (n.cssProps[h] = Vb(i, h)), g = n.cssHooks[b] || n.cssHooks[h], void 0 === c) return g && "get" in g && void 0 !== (e = g.get(a, !1, d)) ? e : i[b];
2192 if (f = typeof c, "string" === f && (e = Rb.exec(c)) && (c = (e[1] + 1) * e[2] + parseFloat(n.css(a, b)), f = "number"), null != c && c === c && ("number" !== f || n.cssNumber[h] || (c += "px"), l.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), !(g && "set" in g && void 0 === (c = g.set(a, c, d))))) try {
2193 i[b] = "", i[b] = c
2194 } catch (j) {}
2195 }
2196 },
2197 css: function(a, b, c, d) {
2198 var e, f, g, h = n.camelCase(b);
2199 return b = n.cssProps[h] || (n.cssProps[h] = Vb(a.style, h)), g = n.cssHooks[b] || n.cssHooks[h], g && "get" in g && (f = g.get(a, !0, c)), void 0 === f && (f = Kb(a, b, d)), "normal" === f && b in Tb && (f = Tb[b]), "" === c || c ? (e = parseFloat(f), c === !0 || n.isNumeric(e) ? e || 0 : f) : f
2200 }
2201 }), n.each(["height", "width"], function(a, b) {
2202 n.cssHooks[b] = {
2203 get: function(a, c, d) {
2204 return c ? 0 === a.offsetWidth && Pb.test(n.css(a, "display")) ? n.swap(a, Sb, function() {
2205 return Zb(a, b, d)
2206 }) : Zb(a, b, d) : void 0
2207 },
2208 set: function(a, c, d) {
2209 var e = d && Jb(a);
2210 return Xb(a, c, d ? Yb(a, b, d, l.boxSizing() && "border-box" === n.css(a, "boxSizing", !1, e), e) : 0)
2211 }
2212 }
2213 }), l.opacity || (n.cssHooks.opacity = {
2214 get: function(a, b) {
2215 return Ob.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : b ? "1" : ""
2216 },
2217 set: function(a, b) {
2218 var c = a.style,
2219 d = a.currentStyle,
2220 e = n.isNumeric(b) ? "alpha(opacity=" + 100 * b + ")" : "",
2221 f = d && d.filter || c.filter || "";
2222 c.zoom = 1, (b >= 1 || "" === b) && "" === n.trim(f.replace(Nb, "")) && c.removeAttribute && (c.removeAttribute("filter"), "" === b || d && !d.filter) || (c.filter = Nb.test(f) ? f.replace(Nb, e) : f + " " + e)
2223 }
2224 }), n.cssHooks.marginRight = Mb(l.reliableMarginRight, function(a, b) {
2225 return b ? n.swap(a, {
2226 display: "inline-block"
2227 }, Kb, [a, "marginRight"]) : void 0
2228 }), n.each({
2229 margin: "",
2230 padding: "",
2231 border: "Width"
2232 }, function(a, b) {
2233 n.cssHooks[a + b] = {
2234 expand: function(c) {
2235 for (var d = 0, e = {}, f = "string" == typeof c ? c.split(" ") : [c]; 4 > d; d++) e[a + U[d] + b] = f[d] || f[d - 2] || f[0];
2236 return e
2237 }
2238 }, Hb.test(a) || (n.cssHooks[a + b].set = Xb)
2239 }), n.fn.extend({
2240 css: function(a, b) {
2241 return W(this, function(a, b, c) {
2242 var d, e, f = {},
2243 g = 0;
2244 if (n.isArray(b)) {
2245 for (d = Jb(a), e = b.length; e > g; g++) f[b[g]] = n.css(a, b[g], !1, d);
2246 return f
2247 }
2248 return void 0 !== c ? n.style(a, b, c) : n.css(a, b)
2249 }, a, b, arguments.length > 1)
2250 },
2251 show: function() {
2252 return Wb(this, !0)
2253 },
2254 hide: function() {
2255 return Wb(this)
2256 },
2257 toggle: function(a) {
2258 return "boolean" == typeof a ? a ? this.show() : this.hide() : this.each(function() {
2259 V(this) ? n(this).show() : n(this).hide()
2260 })
2261 }
2262 });
2263
2264 function $b(a, b, c, d, e) {
2265 return new $b.prototype.init(a, b, c, d, e)
2266 }
2267 n.Tween = $b, $b.prototype = {
2268 constructor: $b,
2269 init: function(a, b, c, d, e, f) {
2270 this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (n.cssNumber[c] ? "" : "px")
2271 },
2272 cur: function() {
2273 var a = $b.propHooks[this.prop];
2274 return a && a.get ? a.get(this) : $b.propHooks._default.get(this)
2275 },
2276 run: function(a) {
2277 var b, c = $b.propHooks[this.prop];
2278 return this.pos = b = this.options.duration ? n.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : $b.propHooks._default.set(this), this
2279 }
2280 }, $b.prototype.init.prototype = $b.prototype, $b.propHooks = {
2281 _default: {
2282 get: function(a) {
2283 var b;
2284 return null == a.elem[a.prop] || a.elem.style && null != a.elem.style[a.prop] ? (b = n.css(a.elem, a.prop, ""), b && "auto" !== b ? b : 0) : a.elem[a.prop]
2285 },
2286 set: function(a) {
2287 n.fx.step[a.prop] ? n.fx.step[a.prop](a) : a.elem.style && (null != a.elem.style[n.cssProps[a.prop]] || n.cssHooks[a.prop]) ? n.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now
2288 }
2289 }
2290 }, $b.propHooks.scrollTop = $b.propHooks.scrollLeft = {
2291 set: function(a) {
2292 a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now)
2293 }
2294 }, n.easing = {
2295 linear: function(a) {
2296 return a
2297 },
2298 swing: function(a) {
2299 return .5 - Math.cos(a * Math.PI) / 2
2300 }
2301 }, n.fx = $b.prototype.init, n.fx.step = {};
2302 var _b, ac, bc = /^(?:toggle|show|hide)$/,
2303 cc = new RegExp("^(?:([+-])=|)(" + T + ")([a-z%]*)$", "i"),
2304 dc = /queueHooks$/,
2305 ec = [jc],
2306 fc = {
2307 "*": [
2308 function(a, b) {
2309 var c = this.createTween(a, b),
2310 d = c.cur(),
2311 e = cc.exec(b),
2312 f = e && e[3] || (n.cssNumber[a] ? "" : "px"),
2313 g = (n.cssNumber[a] || "px" !== f && +d) && cc.exec(n.css(c.elem, a)),
2314 h = 1,
2315 i = 20;
2316 if (g && g[3] !== f) {
2317 f = f || g[3], e = e || [], g = +d || 1;
2318 do h = h || ".5", g /= h, n.style(c.elem, a, g + f); while (h !== (h = c.cur() / d) && 1 !== h && --i)
2319 }
2320 return e && (g = c.start = +g || +d || 0, c.unit = f, c.end = e[1] ? g + (e[1] + 1) * e[2] : +e[2]), c
2321 }
2322 ]
2323 };
2324
2325 function gc() {
2326 return setTimeout(function() {
2327 _b = void 0
2328 }), _b = n.now()
2329 }
2330
2331 function hc(a, b) {
2332 var c, d = {
2333 height: a
2334 },
2335 e = 0;
2336 for (b = b ? 1 : 0; 4 > e; e += 2 - b) c = U[e], d["margin" + c] = d["padding" + c] = a;
2337 return b && (d.opacity = d.width = a), d
2338 }
2339
2340 function ic(a, b, c) {
2341 for (var d, e = (fc[b] || []).concat(fc["*"]), f = 0, g = e.length; g > f; f++)
2342 if (d = e[f].call(c, b, a)) return d
2343 }
2344
2345 function jc(a, b, c) {
2346 var d, e, f, g, h, i, j, k, m = this,
2347 o = {},
2348 p = a.style,
2349 q = a.nodeType && V(a),
2350 r = n._data(a, "fxshow");
2351 c.queue || (h = n._queueHooks(a, "fx"), null == h.unqueued && (h.unqueued = 0, i = h.empty.fire, h.empty.fire = function() {
2352 h.unqueued || i()
2353 }), h.unqueued++, m.always(function() {
2354 m.always(function() {
2355 h.unqueued--, n.queue(a, "fx").length || h.empty.fire()
2356 })
2357 })), 1 === a.nodeType && ("height" in b || "width" in b) && (c.overflow = [p.overflow, p.overflowX, p.overflowY], j = n.css(a, "display"), k = Gb(a.nodeName), "none" === j && (j = k), "inline" === j && "none" === n.css(a, "float") && (l.inlineBlockNeedsLayout && "inline" !== k ? p.zoom = 1 : p.display = "inline-block")), c.overflow && (p.overflow = "hidden", l.shrinkWrapBlocks() || m.always(function() {
2358 p.overflow = c.overflow[0], p.overflowX = c.overflow[1], p.overflowY = c.overflow[2]
2359 }));
2360 for (d in b)
2361 if (e = b[d], bc.exec(e)) {
2362 if (delete b[d], f = f || "toggle" === e, e === (q ? "hide" : "show")) {
2363 if ("show" !== e || !r || void 0 === r[d]) continue;
2364 q = !0
2365 }
2366 o[d] = r && r[d] || n.style(a, d)
2367 }
2368 if (!n.isEmptyObject(o)) {
2369 r ? "hidden" in r && (q = r.hidden) : r = n._data(a, "fxshow", {}), f && (r.hidden = !q), q ? n(a).show() : m.done(function() {
2370 n(a).hide()
2371 }), m.done(function() {
2372 var b;
2373 n._removeData(a, "fxshow");
2374 for (b in o) n.style(a, b, o[b])
2375 });
2376 for (d in o) g = ic(q ? r[d] : 0, d, m), d in r || (r[d] = g.start, q && (g.end = g.start, g.start = "width" === d || "height" === d ? 1 : 0))
2377 }
2378 }
2379
2380 function kc(a, b) {
2381 var c, d, e, f, g;
2382 for (c in a)
2383 if (d = n.camelCase(c), e = b[d], f = a[c], n.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = n.cssHooks[d], g && "expand" in g) {
2384 f = g.expand(f), delete a[d];
2385 for (c in f) c in a || (a[c] = f[c], b[c] = e)
2386 } else b[d] = e
2387 }
2388
2389 function lc(a, b, c) {
2390 var d, e, f = 0,
2391 g = ec.length,
2392 h = n.Deferred().always(function() {
2393 delete i.elem
2394 }),
2395 i = function() {
2396 if (e) return !1;
2397 for (var b = _b || gc(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; i > g; g++) j.tweens[g].run(f);
2398 return h.notifyWith(a, [j, f, c]), 1 > f && i ? c : (h.resolveWith(a, [j]), !1)
2399 },
2400 j = h.promise({
2401 elem: a,
2402 props: n.extend({}, b),
2403 opts: n.extend(!0, {
2404 specialEasing: {}
2405 }, c),
2406 originalProperties: b,
2407 originalOptions: c,
2408 startTime: _b || gc(),
2409 duration: c.duration,
2410 tweens: [],
2411 createTween: function(b, c) {
2412 var d = n.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing);
2413 return j.tweens.push(d), d
2414 },
2415 stop: function(b) {
2416 var c = 0,
2417 d = b ? j.tweens.length : 0;
2418 if (e) return this;
2419 for (e = !0; d > c; c++) j.tweens[c].run(1);
2420 return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this
2421 }
2422 }),
2423 k = j.props;
2424 for (kc(k, j.opts.specialEasing); g > f; f++)
2425 if (d = ec[f].call(j, a, k, j.opts)) return d;
2426 return n.map(k, ic, j), n.isFunction(j.opts.start) && j.opts.start.call(a, j), n.fx.timer(n.extend(i, {
2427 elem: a,
2428 anim: j,
2429 queue: j.opts.queue
2430 })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always)
2431 }
2432 n.Animation = n.extend(lc, {
2433 tweener: function(a, b) {
2434 n.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" ");
2435 for (var c, d = 0, e = a.length; e > d; d++) c = a[d], fc[c] = fc[c] || [], fc[c].unshift(b)
2436 },
2437 prefilter: function(a, b) {
2438 b ? ec.unshift(a) : ec.push(a)
2439 }
2440 }), n.speed = function(a, b, c) {
2441 var d = a && "object" == typeof a ? n.extend({}, a) : {
2442 complete: c || !c && b || n.isFunction(a) && a,
2443 duration: a,
2444 easing: c && b || b && !n.isFunction(b) && b
2445 };
2446 return d.duration = n.fx.off ? 0 : "number" == typeof d.duration ? d.duration : d.duration in n.fx.speeds ? n.fx.speeds[d.duration] : n.fx.speeds._default, (null == d.queue || d.queue === !0) && (d.queue = "fx"), d.old = d.complete, d.complete = function() {
2447 n.isFunction(d.old) && d.old.call(this), d.queue && n.dequeue(this, d.queue)
2448 }, d
2449 }, n.fn.extend({
2450 fadeTo: function(a, b, c, d) {
2451 return this.filter(V).css("opacity", 0).show().end().animate({
2452 opacity: b
2453 }, a, c, d)
2454 },
2455 animate: function(a, b, c, d) {
2456 var e = n.isEmptyObject(a),
2457 f = n.speed(b, c, d),
2458 g = function() {
2459 var b = lc(this, n.extend({}, a), f);
2460 (e || n._data(this, "finish")) && b.stop(!0)
2461 };
2462 return g.finish = g, e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g)
2463 },
2464 stop: function(a, b, c) {
2465 var d = function(a) {
2466 var b = a.stop;
2467 delete a.stop, b(c)
2468 };
2469 return "string" != typeof a && (c = b, b = a, a = void 0), b && a !== !1 && this.queue(a || "fx", []), this.each(function() {
2470 var b = !0,
2471 e = null != a && a + "queueHooks",
2472 f = n.timers,
2473 g = n._data(this);
2474 if (e) g[e] && g[e].stop && d(g[e]);
2475 else
2476 for (e in g) g[e] && g[e].stop && dc.test(e) && d(g[e]);
2477 for (e = f.length; e--;) f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1));
2478 (b || !c) && n.dequeue(this, a)
2479 })
2480 },
2481 finish: function(a) {
2482 return a !== !1 && (a = a || "fx"), this.each(function() {
2483 var b, c = n._data(this),
2484 d = c[a + "queue"],
2485 e = c[a + "queueHooks"],
2486 f = n.timers,
2487 g = d ? d.length : 0;
2488 for (c.finish = !0, n.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1));
2489 for (b = 0; g > b; b++) d[b] && d[b].finish && d[b].finish.call(this);
2490 delete c.finish
2491 })
2492 }
2493 }), n.each(["toggle", "show", "hide"], function(a, b) {
2494 var c = n.fn[b];
2495 n.fn[b] = function(a, d, e) {
2496 return null == a || "boolean" == typeof a ? c.apply(this, arguments) : this.animate(hc(b, !0), a, d, e)
2497 }
2498 }), n.each({
2499 slideDown: hc("show"),
2500 slideUp: hc("hide"),
2501 slideToggle: hc("toggle"),
2502 fadeIn: {
2503 opacity: "show"
2504 },
2505 fadeOut: {
2506 opacity: "hide"
2507 },
2508 fadeToggle: {
2509 opacity: "toggle"
2510 }
2511 }, function(a, b) {
2512 n.fn[a] = function(a, c, d) {
2513 return this.animate(b, a, c, d)
2514 }
2515 }), n.timers = [], n.fx.tick = function() {
2516 var a, b = n.timers,
2517 c = 0;
2518 for (_b = n.now(); c < b.length; c++) a = b[c], a() || b[c] !== a || b.splice(c--, 1);
2519 b.length || n.fx.stop(), _b = void 0
2520 }, n.fx.timer = function(a) {
2521 n.timers.push(a), a() ? n.fx.start() : n.timers.pop()
2522 }, n.fx.interval = 13, n.fx.start = function() {
2523 ac || (ac = setInterval(n.fx.tick, n.fx.interval))
2524 }, n.fx.stop = function() {
2525 clearInterval(ac), ac = null
2526 }, n.fx.speeds = {
2527 slow: 600,
2528 fast: 200,
2529 _default: 400
2530 }, n.fn.delay = function(a, b) {
2531 return a = n.fx ? n.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function(b, c) {
2532 var d = setTimeout(b, a);
2533 c.stop = function() {
2534 clearTimeout(d)
2535 }
2536 })
2537 },
2538 function() {
2539 var a, b, c, d, e = z.createElement("div");
2540 e.setAttribute("className", "t"), e.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", a = e.getElementsByTagName("a")[0], c = z.createElement("select"), d = c.appendChild(z.createElement("option")), b = e.getElementsByTagName("input")[0], a.style.cssText = "top:1px", l.getSetAttribute = "t" !== e.className, l.style = /top/.test(a.getAttribute("style")), l.hrefNormalized = "/a" === a.getAttribute("href"), l.checkOn = !!b.value, l.optSelected = d.selected, l.enctype = !!z.createElement("form").enctype, c.disabled = !0, l.optDisabled = !d.disabled, b = z.createElement("input"), b.setAttribute("value", ""), l.input = "" === b.getAttribute("value"), b.value = "t", b.setAttribute("type", "radio"), l.radioValue = "t" === b.value, a = b = c = d = e = null
2541 }();
2542 var mc = /\r/g;
2543 n.fn.extend({
2544 val: function(a) {
2545 var b, c, d, e = this[0]; {
2546 if (arguments.length) return d = n.isFunction(a), this.each(function(c) {
2547 var e;
2548 1 === this.nodeType && (e = d ? a.call(this, c, n(this).val()) : a, null == e ? e = "" : "number" == typeof e ? e += "" : n.isArray(e) && (e = n.map(e, function(a) {
2549 return null == a ? "" : a + ""
2550 })), b = n.valHooks[this.type] || n.valHooks[this.nodeName.toLowerCase()], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e))
2551 });
2552 if (e) return b = n.valHooks[e.type] || n.valHooks[e.nodeName.toLowerCase()], b && "get" in b && void 0 !== (c = b.get(e, "value")) ? c : (c = e.value, "string" == typeof c ? c.replace(mc, "") : null == c ? "" : c)
2553 }
2554 }
2555 }), n.extend({
2556 valHooks: {
2557 option: {
2558 get: function(a) {
2559 var b = n.find.attr(a, "value");
2560 return null != b ? b : n.text(a)
2561 }
2562 },
2563 select: {
2564 get: function(a) {
2565 for (var b, c, d = a.options, e = a.selectedIndex, f = "select-one" === a.type || 0 > e, g = f ? null : [], h = f ? e + 1 : d.length, i = 0 > e ? h : f ? e : 0; h > i; i++)
2566 if (c = d[i], !(!c.selected && i !== e || (l.optDisabled ? c.disabled : null !== c.getAttribute("disabled")) || c.parentNode.disabled && n.nodeName(c.parentNode, "optgroup"))) {
2567 if (b = n(c).val(), f) return b;
2568 g.push(b)
2569 }
2570 return g
2571 },
2572 set: function(a, b) {
2573 var c, d, e = a.options,
2574 f = n.makeArray(b),
2575 g = e.length;
2576 while (g--)
2577 if (d = e[g], n.inArray(n.valHooks.option.get(d), f) >= 0) try {
2578 d.selected = c = !0
2579 } catch (h) {
2580 d.scrollHeight
2581 } else d.selected = !1;
2582 return c || (a.selectedIndex = -1), e
2583 }
2584 }
2585 }
2586 }), n.each(["radio", "checkbox"], function() {
2587 n.valHooks[this] = {
2588 set: function(a, b) {
2589 return n.isArray(b) ? a.checked = n.inArray(n(a).val(), b) >= 0 : void 0
2590 }
2591 }, l.checkOn || (n.valHooks[this].get = function(a) {
2592 return null === a.getAttribute("value") ? "on" : a.value
2593 })
2594 });
2595 var nc, oc, pc = n.expr.attrHandle,
2596 qc = /^(?:checked|selected)$/i,
2597 rc = l.getSetAttribute,
2598 sc = l.input;
2599 n.fn.extend({
2600 attr: function(a, b) {
2601 return W(this, n.attr, a, b, arguments.length > 1)
2602 },
2603 removeAttr: function(a) {
2604 return this.each(function() {
2605 n.removeAttr(this, a)
2606 })
2607 }
2608 }), n.extend({
2609 attr: function(a, b, c) {
2610 var d, e, f = a.nodeType;
2611 if (a && 3 !== f && 8 !== f && 2 !== f) return typeof a.getAttribute === L ? n.prop(a, b, c) : (1 === f && n.isXMLDoc(a) || (b = b.toLowerCase(), d = n.attrHooks[b] || (n.expr.match.bool.test(b) ? oc : nc)), void 0 === c ? d && "get" in d && null !== (e = d.get(a, b)) ? e : (e = n.find.attr(a, b), null == e ? void 0 : e) : null !== c ? d && "set" in d && void 0 !== (e = d.set(a, c, b)) ? e : (a.setAttribute(b, c + ""), c) : void n.removeAttr(a, b))
2612 },
2613 removeAttr: function(a, b) {
2614 var c, d, e = 0,
2615 f = b && b.match(F);
2616 if (f && 1 === a.nodeType)
2617 while (c = f[e++]) d = n.propFix[c] || c, n.expr.match.bool.test(c) ? sc && rc || !qc.test(c) ? a[d] = !1 : a[n.camelCase("default-" + c)] = a[d] = !1 : n.attr(a, c, ""), a.removeAttribute(rc ? c : d)
2618 },
2619 attrHooks: {
2620 type: {
2621 set: function(a, b) {
2622 if (!l.radioValue && "radio" === b && n.nodeName(a, "input")) {
2623 var c = a.value;
2624 return a.setAttribute("type", b), c && (a.value = c), b
2625 }
2626 }
2627 }
2628 }
2629 }), oc = {
2630 set: function(a, b, c) {
2631 return b === !1 ? n.removeAttr(a, c) : sc && rc || !qc.test(c) ? a.setAttribute(!rc && n.propFix[c] || c, c) : a[n.camelCase("default-" + c)] = a[c] = !0, c
2632 }
2633 }, n.each(n.expr.match.bool.source.match(/\w+/g), function(a, b) {
2634 var c = pc[b] || n.find.attr;
2635 pc[b] = sc && rc || !qc.test(b) ? function(a, b, d) {
2636 var e, f;
2637 return d || (f = pc[b], pc[b] = e, e = null != c(a, b, d) ? b.toLowerCase() : null, pc[b] = f), e
2638 } : function(a, b, c) {
2639 return c ? void 0 : a[n.camelCase("default-" + b)] ? b.toLowerCase() : null
2640 }
2641 }), sc && rc || (n.attrHooks.value = {
2642 set: function(a, b, c) {
2643 return n.nodeName(a, "input") ? void(a.defaultValue = b) : nc && nc.set(a, b, c)
2644 }
2645 }), rc || (nc = {
2646 set: function(a, b, c) {
2647 var d = a.getAttributeNode(c);
2648 return d || a.setAttributeNode(d = a.ownerDocument.createAttribute(c)), d.value = b += "", "value" === c || b === a.getAttribute(c) ? b : void 0
2649 }
2650 }, pc.id = pc.name = pc.coords = function(a, b, c) {
2651 var d;
2652 return c ? void 0 : (d = a.getAttributeNode(b)) && "" !== d.value ? d.value : null
2653 }, n.valHooks.button = {
2654 get: function(a, b) {
2655 var c = a.getAttributeNode(b);
2656 return c && c.specified ? c.value : void 0
2657 },
2658 set: nc.set
2659 }, n.attrHooks.contenteditable = {
2660 set: function(a, b, c) {
2661 nc.set(a, "" === b ? !1 : b, c)
2662 }
2663 }, n.each(["width", "height"], function(a, b) {
2664 n.attrHooks[b] = {
2665 set: function(a, c) {
2666 return "" === c ? (a.setAttribute(b, "auto"), c) : void 0
2667 }
2668 }
2669 })), l.style || (n.attrHooks.style = {
2670 get: function(a) {
2671 return a.style.cssText || void 0
2672 },
2673 set: function(a, b) {
2674 return a.style.cssText = b + ""
2675 }
2676 });
2677 var tc = /^(?:input|select|textarea|button|object)$/i,
2678 uc = /^(?:a|area)$/i;
2679 n.fn.extend({
2680 prop: function(a, b) {
2681 return W(this, n.prop, a, b, arguments.length > 1)
2682 },
2683 removeProp: function(a) {
2684 return a = n.propFix[a] || a, this.each(function() {
2685 try {
2686 this[a] = void 0, delete this[a]
2687 } catch (b) {}
2688 })
2689 }
2690 }), n.extend({
2691 propFix: {
2692 "for": "htmlFor",
2693 "class": "className"
2694 },
2695 prop: function(a, b, c) {
2696 var d, e, f, g = a.nodeType;
2697 if (a && 3 !== g && 8 !== g && 2 !== g) return f = 1 !== g || !n.isXMLDoc(a), f && (b = n.propFix[b] || b, e = n.propHooks[b]), void 0 !== c ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) ? d : a[b] = c : e && "get" in e && null !== (d = e.get(a, b)) ? d : a[b]
2698 },
2699 propHooks: {
2700 tabIndex: {
2701 get: function(a) {
2702 var b = n.find.attr(a, "tabindex");
2703 return b ? parseInt(b, 10) : tc.test(a.nodeName) || uc.test(a.nodeName) && a.href ? 0 : -1
2704 }
2705 }
2706 }
2707 }), l.hrefNormalized || n.each(["href", "src"], function(a, b) {
2708 n.propHooks[b] = {
2709 get: function(a) {
2710 return a.getAttribute(b, 4)
2711 }
2712 }
2713 }), l.optSelected || (n.propHooks.selected = {
2714 get: function(a) {
2715 var b = a.parentNode;
2716 return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null
2717 }
2718 }), n.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
2719 n.propFix[this.toLowerCase()] = this
2720 }), l.enctype || (n.propFix.enctype = "encoding");
2721 var vc = /[\t\r\n\f]/g;
2722 n.fn.extend({
2723 addClass: function(a) {
2724 var b, c, d, e, f, g, h = 0,
2725 i = this.length,
2726 j = "string" == typeof a && a;
2727 if (n.isFunction(a)) return this.each(function(b) {
2728 n(this).addClass(a.call(this, b, this.className))
2729 });
2730 if (j)
2731 for (b = (a || "").match(F) || []; i > h; h++)
2732 if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(vc, " ") : " ")) {
2733 f = 0;
2734 while (e = b[f++]) d.indexOf(" " + e + " ") < 0 && (d += e + " ");
2735 g = n.trim(d), c.className !== g && (c.className = g)
2736 }
2737 return this
2738 },
2739 removeClass: function(a) {
2740 var b, c, d, e, f, g, h = 0,
2741 i = this.length,
2742 j = 0 === arguments.length || "string" == typeof a && a;
2743 if (n.isFunction(a)) return this.each(function(b) {
2744 n(this).removeClass(a.call(this, b, this.className))
2745 });
2746 if (j)
2747 for (b = (a || "").match(F) || []; i > h; h++)
2748 if (c = this[h], d = 1 === c.nodeType && (c.className ? (" " + c.className + " ").replace(vc, " ") : "")) {
2749 f = 0;
2750 while (e = b[f++])
2751 while (d.indexOf(" " + e + " ") >= 0) d = d.replace(" " + e + " ", " ");
2752 g = a ? n.trim(d) : "", c.className !== g && (c.className = g)
2753 }
2754 return this
2755 },
2756 toggleClass: function(a, b) {
2757 var c = typeof a;
2758 return "boolean" == typeof b && "string" === c ? b ? this.addClass(a) : this.removeClass(a) : this.each(n.isFunction(a) ? function(c) {
2759 n(this).toggleClass(a.call(this, c, this.className, b), b)
2760 } : function() {
2761 if ("string" === c) {
2762 var b, d = 0,
2763 e = n(this),
2764 f = a.match(F) || [];
2765 while (b = f[d++]) e.hasClass(b) ? e.removeClass(b) : e.addClass(b)
2766 } else(c === L || "boolean" === c) && (this.className && n._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : n._data(this, "__className__") || "")
2767 })
2768 },
2769 hasClass: function(a) {
2770 for (var b = " " + a + " ", c = 0, d = this.length; d > c; c++)
2771 if (1 === this[c].nodeType && (" " + this[c].className + " ").replace(vc, " ").indexOf(b) >= 0) return !0;
2772 return !1
2773 }
2774 }), n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) {
2775 n.fn[b] = function(a, c) {
2776 return arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b)
2777 }
2778 }), n.fn.extend({
2779 hover: function(a, b) {
2780 return this.mouseenter(a).mouseleave(b || a)
2781 },
2782 bind: function(a, b, c) {
2783 return this.on(a, null, b, c)
2784 },
2785 unbind: function(a, b) {
2786 return this.off(a, null, b)
2787 },
2788 delegate: function(a, b, c, d) {
2789 return this.on(b, a, c, d)
2790 },
2791 undelegate: function(a, b, c) {
2792 return 1 === arguments.length ? this.off(a, "**") : this.off(b, a || "**", c)
2793 }
2794 });
2795 var wc = n.now(),
2796 xc = /\?/,
2797 yc = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
2798 n.parseJSON = function(b) {
2799 if (a.JSON && a.JSON.parse) return a.JSON.parse(b + "");
2800 var c, d = null,
2801 e = n.trim(b + "");
2802 return e && !n.trim(e.replace(yc, function(a, b, e, f) {
2803 return c && b && (d = 0), 0 === d ? a : (c = e || b, d += !f - !e, "")
2804 })) ? Function("return " + e)() : n.error("Invalid JSON: " + b)
2805 }, n.parseXML = function(b) {
2806 var c, d;
2807 if (!b || "string" != typeof b) return null;
2808 try {
2809 a.DOMParser ? (d = new DOMParser, c = d.parseFromString(b, "text/xml")) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = "false", c.loadXML(b))
2810 } catch (e) {
2811 c = void 0
2812 }
2813 return c && c.documentElement && !c.getElementsByTagName("parsererror").length || n.error("Invalid XML: " + b), c
2814 };
2815 var zc, Ac, Bc = /#.*$/,
2816 Cc = /([?&])_=[^&]*/,
2817 Dc = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
2818 Ec = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
2819 Fc = /^(?:GET|HEAD)$/,
2820 Gc = /^\/\//,
2821 Hc = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
2822 Ic = {},
2823 Jc = {},
2824 Kc = "*/".concat("*");
2825 try {
2826 Ac = location.href
2827 } catch (Lc) {
2828 Ac = z.createElement("a"), Ac.href = "", Ac = Ac.href
2829 }
2830 zc = Hc.exec(Ac.toLowerCase()) || [];
2831
2832 function Mc(a) {
2833 return function(b, c) {
2834 "string" != typeof b && (c = b, b = "*");
2835 var d, e = 0,
2836 f = b.toLowerCase().match(F) || [];
2837 if (n.isFunction(c))
2838 while (d = f[e++]) "+" === d.charAt(0) ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) : (a[d] = a[d] || []).push(c)
2839 }
2840 }
2841
2842 function Nc(a, b, c, d) {
2843 var e = {},
2844 f = a === Jc;
2845
2846 function g(h) {
2847 var i;
2848 return e[h] = !0, n.each(a[h] || [], function(a, h) {
2849 var j = h(b, c, d);
2850 return "string" != typeof j || f || e[j] ? f ? !(i = j) : void 0 : (b.dataTypes.unshift(j), g(j), !1)
2851 }), i
2852 }
2853 return g(b.dataTypes[0]) || !e["*"] && g("*")
2854 }
2855
2856 function Oc(a, b) {
2857 var c, d, e = n.ajaxSettings.flatOptions || {};
2858 for (d in b) void 0 !== b[d] && ((e[d] ? a : c || (c = {}))[d] = b[d]);
2859 return c && n.extend(!0, a, c), a
2860 }
2861
2862 function Pc(a, b, c) {
2863 var d, e, f, g, h = a.contents,
2864 i = a.dataTypes;
2865 while ("*" === i[0]) i.shift(), void 0 === e && (e = a.mimeType || b.getResponseHeader("Content-Type"));
2866 if (e)
2867 for (g in h)
2868 if (h[g] && h[g].test(e)) {
2869 i.unshift(g);
2870 break
2871 }
2872 if (i[0] in c) f = i[0];
2873 else {
2874 for (g in c) {
2875 if (!i[0] || a.converters[g + " " + i[0]]) {
2876 f = g;
2877 break
2878 }
2879 d || (d = g)
2880 }
2881 f = f || d
2882 }
2883 return f ? (f !== i[0] && i.unshift(f), c[f]) : void 0
2884 }
2885
2886 function Qc(a, b, c, d) {
2887 var e, f, g, h, i, j = {},
2888 k = a.dataTypes.slice();
2889 if (k[1])
2890 for (g in a.converters) j[g.toLowerCase()] = a.converters[g];
2891 f = k.shift();
2892 while (f)
2893 if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift())
2894 if ("*" === f) f = i;
2895 else if ("*" !== i && i !== f) {
2896 if (g = j[i + " " + f] || j["* " + f], !g)
2897 for (e in j)
2898 if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) {
2899 g === !0 ? g = j[e] : j[e] !== !0 && (f = h[0], k.unshift(h[1]));
2900 break
2901 }
2902 if (g !== !0)
2903 if (g && a["throws"]) b = g(b);
2904 else try {
2905 b = g(b)
2906 } catch (l) {
2907 return {
2908 state: "parsererror",
2909 error: g ? l : "No conversion from " + i + " to " + f
2910 }
2911 }
2912 }
2913 return {
2914 state: "success",
2915 data: b
2916 }
2917 }
2918 n.extend({
2919 active: 0,
2920 lastModified: {},
2921 etag: {},
2922 ajaxSettings: {
2923 url: Ac,
2924 type: "GET",
2925 isLocal: Ec.test(zc[1]),
2926 global: !0,
2927 processData: !0,
2928 async: !0,
2929 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
2930 accepts: {
2931 "*": Kc,
2932 text: "text/plain",
2933 html: "text/html",
2934 xml: "application/xml, text/xml",
2935 json: "application/json, text/javascript"
2936 },
2937 contents: {
2938 xml: /xml/,
2939 html: /html/,
2940 json: /json/
2941 },
2942 responseFields: {
2943 xml: "responseXML",
2944 text: "responseText",
2945 json: "responseJSON"
2946 },
2947 converters: {
2948 "* text": String,
2949 "text html": !0,
2950 "text json": n.parseJSON,
2951 "text xml": n.parseXML
2952 },
2953 flatOptions: {
2954 url: !0,
2955 context: !0
2956 }
2957 },
2958 ajaxSetup: function(a, b) {
2959 return b ? Oc(Oc(a, n.ajaxSettings), b) : Oc(n.ajaxSettings, a)
2960 },
2961 ajaxPrefilter: Mc(Ic),
2962 ajaxTransport: Mc(Jc),
2963 ajax: function(a, b) {
2964 "object" == typeof a && (b = a, a = void 0), b = b || {};
2965 var c, d, e, f, g, h, i, j, k = n.ajaxSetup({}, b),
2966 l = k.context || k,
2967 m = k.context && (l.nodeType || l.jquery) ? n(l) : n.event,
2968 o = n.Deferred(),
2969 p = n.Callbacks("once memory"),
2970 q = k.statusCode || {},
2971 r = {},
2972 s = {},
2973 t = 0,
2974 u = "canceled",
2975 v = {
2976 readyState: 0,
2977 getResponseHeader: function(a) {
2978 var b;
2979 if (2 === t) {
2980 if (!j) {
2981 j = {};
2982 while (b = Dc.exec(f)) j[b[1].toLowerCase()] = b[2]
2983 }
2984 b = j[a.toLowerCase()]
2985 }
2986 return null == b ? null : b
2987 },
2988 getAllResponseHeaders: function() {
2989 return 2 === t ? f : null
2990 },
2991 setRequestHeader: function(a, b) {
2992 var c = a.toLowerCase();
2993 return t || (a = s[c] = s[c] || a, r[a] = b), this
2994 },
2995 overrideMimeType: function(a) {
2996 return t || (k.mimeType = a), this
2997 },
2998 statusCode: function(a) {
2999 var b;
3000 if (a)
3001 if (2 > t)
3002 for (b in a) q[b] = [q[b], a[b]];
3003 else v.always(a[v.status]);
3004 return this
3005 },
3006 abort: function(a) {
3007 var b = a || u;
3008 return i && i.abort(b), x(0, b), this
3009 }
3010 };
3011 if (o.promise(v).complete = p.add, v.success = v.done, v.error = v.fail, k.url = ((a || k.url || Ac) + "").replace(Bc, "").replace(Gc, zc[1] + "//"), k.type = b.method || b.type || k.method || k.type, k.dataTypes = n.trim(k.dataType || "*").toLowerCase().match(F) || [""], null == k.crossDomain && (c = Hc.exec(k.url.toLowerCase()), k.crossDomain = !(!c || c[1] === zc[1] && c[2] === zc[2] && (c[3] || ("http:" === c[1] ? "80" : "443")) === (zc[3] || ("http:" === zc[1] ? "80" : "443")))), k.data && k.processData && "string" != typeof k.data && (k.data = n.param(k.data, k.traditional)), Nc(Ic, k, b, v), 2 === t) return v;
3012 h = k.global, h && 0 === n.active++ && n.event.trigger("ajaxStart"), k.type = k.type.toUpperCase(), k.hasContent = !Fc.test(k.type), e = k.url, k.hasContent || (k.data && (e = k.url += (xc.test(e) ? "&" : "?") + k.data, delete k.data), k.cache === !1 && (k.url = Cc.test(e) ? e.replace(Cc, "$1_=" + wc++) : e + (xc.test(e) ? "&" : "?") + "_=" + wc++)), k.ifModified && (n.lastModified[e] && v.setRequestHeader("If-Modified-Since", n.lastModified[e]), n.etag[e] && v.setRequestHeader("If-None-Match", n.etag[e])), (k.data && k.hasContent && k.contentType !== !1 || b.contentType) && v.setRequestHeader("Content-Type", k.contentType), v.setRequestHeader("Accept", k.dataTypes[0] && k.accepts[k.dataTypes[0]] ? k.accepts[k.dataTypes[0]] + ("*" !== k.dataTypes[0] ? ", " + Kc + "; q=0.01" : "") : k.accepts["*"]);
3013 for (d in k.headers) v.setRequestHeader(d, k.headers[d]);
3014 if (k.beforeSend && (k.beforeSend.call(l, v, k) === !1 || 2 === t)) return v.abort();
3015 u = "abort";
3016 for (d in {
3017 success: 1,
3018 error: 1,
3019 complete: 1
3020 }) v[d](k[d]);
3021 if (i = Nc(Jc, k, b, v)) {
3022 v.readyState = 1, h && m.trigger("ajaxSend", [v, k]), k.async && k.timeout > 0 && (g = setTimeout(function() {
3023 v.abort("timeout")
3024 }, k.timeout));
3025 try {
3026 t = 1, i.send(r, x)
3027 } catch (w) {
3028 if (!(2 > t)) throw w;
3029 x(-1, w)
3030 }
3031 } else x(-1, "No Transport");
3032
3033 function x(a, b, c, d) {
3034 var j, r, s, u, w, x = b;
3035 2 !== t && (t = 2, g && clearTimeout(g), i = void 0, f = d || "", v.readyState = a > 0 ? 4 : 0, j = a >= 200 && 300 > a || 304 === a, c && (u = Pc(k, v, c)), u = Qc(k, u, v, j), j ? (k.ifModified && (w = v.getResponseHeader("Last-Modified"), w && (n.lastModified[e] = w), w = v.getResponseHeader("etag"), w && (n.etag[e] = w)), 204 === a || "HEAD" === k.type ? x = "nocontent" : 304 === a ? x = "notmodified" : (x = u.state, r = u.data, s = u.error, j = !s)) : (s = x, (a || !x) && (x = "error", 0 > a && (a = 0))), v.status = a, v.statusText = (b || x) + "", j ? o.resolveWith(l, [r, x, v]) : o.rejectWith(l, [v, x, s]), v.statusCode(q), q = void 0, h && m.trigger(j ? "ajaxSuccess" : "ajaxError", [v, k, j ? r : s]), p.fireWith(l, [v, x]), h && (m.trigger("ajaxComplete", [v, k]), --n.active || n.event.trigger("ajaxStop")))
3036 }
3037 return v
3038 },
3039 getJSON: function(a, b, c) {
3040 return n.get(a, b, c, "json")
3041 },
3042 getScript: function(a, b) {
3043 return n.get(a, void 0, b, "script")
3044 }
3045 }), n.each(["get", "post"], function(a, b) {
3046 n[b] = function(a, c, d, e) {
3047 return n.isFunction(c) && (e = e || d, d = c, c = void 0), n.ajax({
3048 url: a,
3049 type: b,
3050 dataType: e,
3051 data: c,
3052 success: d
3053 })
3054 }
3055 }), n.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(a, b) {
3056 n.fn[b] = function(a) {
3057 return this.on(b, a)
3058 }
3059 }), n._evalUrl = function(a) {
3060 return n.ajax({
3061 url: a,
3062 type: "GET",
3063 dataType: "script",
3064 async: !1,
3065 global: !1,
3066 "throws": !0
3067 })
3068 }, n.fn.extend({
3069 wrapAll: function(a) {
3070 if (n.isFunction(a)) return this.each(function(b) {
3071 n(this).wrapAll(a.call(this, b))
3072 });
3073 if (this[0]) {
3074 var b = n(a, this[0].ownerDocument).eq(0).clone(!0);
3075 this[0].parentNode && b.insertBefore(this[0]), b.map(function() {
3076 var a = this;
3077 while (a.firstChild && 1 === a.firstChild.nodeType) a = a.firstChild;
3078 return a
3079 }).append(this)
3080 }
3081 return this
3082 },
3083 wrapInner: function(a) {
3084 return this.each(n.isFunction(a) ? function(b) {
3085 n(this).wrapInner(a.call(this, b))
3086 } : function() {
3087 var b = n(this),
3088 c = b.contents();
3089 c.length ? c.wrapAll(a) : b.append(a)
3090 })
3091 },
3092 wrap: function(a) {
3093 var b = n.isFunction(a);
3094 return this.each(function(c) {
3095 n(this).wrapAll(b ? a.call(this, c) : a)
3096 })
3097 },
3098 unwrap: function() {
3099 return this.parent().each(function() {
3100 n.nodeName(this, "body") || n(this).replaceWith(this.childNodes)
3101 }).end()
3102 }
3103 }), n.expr.filters.hidden = function(a) {
3104 return a.offsetWidth <= 0 && a.offsetHeight <= 0 || !l.reliableHiddenOffsets() && "none" === (a.style && a.style.display || n.css(a, "display"))
3105 }, n.expr.filters.visible = function(a) {
3106 return !n.expr.filters.hidden(a)
3107 };
3108 var Rc = /%20/g,
3109 Sc = /\[\]$/,
3110 Tc = /\r?\n/g,
3111 Uc = /^(?:submit|button|image|reset|file)$/i,
3112 Vc = /^(?:input|select|textarea|keygen)/i;
3113
3114 function Wc(a, b, c, d) {
3115 var e;
3116 if (n.isArray(b)) n.each(b, function(b, e) {
3117 c || Sc.test(a) ? d(a, e) : Wc(a + "[" + ("object" == typeof e ? b : "") + "]", e, c, d)
3118 });
3119 else if (c || "object" !== n.type(b)) d(a, b);
3120 else
3121 for (e in b) Wc(a + "[" + e + "]", b[e], c, d)
3122 }
3123 n.param = function(a, b) {
3124 var c, d = [],
3125 e = function(a, b) {
3126 b = n.isFunction(b) ? b() : null == b ? "" : b, d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b)
3127 };
3128 if (void 0 === b && (b = n.ajaxSettings && n.ajaxSettings.traditional), n.isArray(a) || a.jquery && !n.isPlainObject(a)) n.each(a, function() {
3129 e(this.name, this.value)
3130 });
3131 else
3132 for (c in a) Wc(c, a[c], b, e);
3133 return d.join("&").replace(Rc, "+")
3134 }, n.fn.extend({
3135 serialize: function() {
3136 return n.param(this.serializeArray())
3137 },
3138 serializeArray: function() {
3139 return this.map(function() {
3140 var a = n.prop(this, "elements");
3141 return a ? n.makeArray(a) : this
3142 }).filter(function() {
3143 var a = this.type;
3144 return this.name && !n(this).is(":disabled") && Vc.test(this.nodeName) && !Uc.test(a) && (this.checked || !X.test(a))
3145 }).map(function(a, b) {
3146 var c = n(this).val();
3147 return null == c ? null : n.isArray(c) ? n.map(c, function(a) {
3148 return {
3149 name: b.name,
3150 value: a.replace(Tc, "\r\n")
3151 }
3152 }) : {
3153 name: b.name,
3154 value: c.replace(Tc, "\r\n")
3155 }
3156 }).get()
3157 }
3158 }), n.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function() {
3159 return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && $c() || _c()
3160 } : $c;
3161 var Xc = 0,
3162 Yc = {},
3163 Zc = n.ajaxSettings.xhr();
3164 a.ActiveXObject && n(a).on("unload", function() {
3165 for (var a in Yc) Yc[a](void 0, !0)
3166 }), l.cors = !!Zc && "withCredentials" in Zc, Zc = l.ajax = !!Zc, Zc && n.ajaxTransport(function(a) {
3167 if (!a.crossDomain || l.cors) {
3168 var b;
3169 return {
3170 send: function(c, d) {
3171 var e, f = a.xhr(),
3172 g = ++Xc;
3173 if (f.open(a.type, a.url, a.async, a.username, a.password), a.xhrFields)
3174 for (e in a.xhrFields) f[e] = a.xhrFields[e];
3175 a.mimeType && f.overrideMimeType && f.overrideMimeType(a.mimeType), a.crossDomain || c["X-Requested-With"] || (c["X-Requested-With"] = "XMLHttpRequest");
3176 for (e in c) void 0 !== c[e] && f.setRequestHeader(e, c[e] + "");
3177 f.send(a.hasContent && a.data || null), b = function(c, e) {
3178 var h, i, j;
3179 if (b && (e || 4 === f.readyState))
3180 if (delete Yc[g], b = void 0, f.onreadystatechange = n.noop, e) 4 !== f.readyState && f.abort();
3181 else {
3182 j = {}, h = f.status, "string" == typeof f.responseText && (j.text = f.responseText);
3183 try {
3184 i = f.statusText
3185 } catch (k) {
3186 i = ""
3187 }
3188 h || !a.isLocal || a.crossDomain ? 1223 === h && (h = 204) : h = j.text ? 200 : 404
3189 }
3190 j && d(h, i, j, f.getAllResponseHeaders())
3191 }, a.async ? 4 === f.readyState ? setTimeout(b) : f.onreadystatechange = Yc[g] = b : b()
3192 },
3193 abort: function() {
3194 b && b(void 0, !0)
3195 }
3196 }
3197 }
3198 });
3199
3200 function $c() {
3201 try {
3202 return new a.XMLHttpRequest
3203 } catch (b) {}
3204 }
3205
3206 function _c() {
3207 try {
3208 return new a.ActiveXObject("Microsoft.XMLHTTP")
3209 } catch (b) {}
3210 }
3211 n.ajaxSetup({
3212 accepts: {
3213 script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
3214 },
3215 contents: {
3216 script: /(?:java|ecma)script/
3217 },
3218 converters: {
3219 "text script": function(a) {
3220 return n.globalEval(a), a
3221 }
3222 }
3223 }), n.ajaxPrefilter("script", function(a) {
3224 void 0 === a.cache && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1)
3225 }), n.ajaxTransport("script", function(a) {
3226 if (a.crossDomain) {
3227 var b, c = z.head || n("head")[0] || z.documentElement;
3228 return {
3229 send: function(d, e) {
3230 b = z.createElement("script"), b.async = !0, a.scriptCharset && (b.charset = a.scriptCharset), b.src = a.url, b.onload = b.onreadystatechange = function(a, c) {
3231 (c || !b.readyState || /loaded|complete/.test(b.readyState)) && (b.onload = b.onreadystatechange = null, b.parentNode && b.parentNode.removeChild(b), b = null, c || e(200, "success"))
3232 }, c.insertBefore(b, c.firstChild)
3233 },
3234 abort: function() {
3235 b && b.onload(void 0, !0)
3236 }
3237 }
3238 }
3239 });
3240 var ad = [],
3241 bd = /(=)\?(?=&|$)|\?\?/;
3242 n.ajaxSetup({
3243 jsonp: "callback",
3244 jsonpCallback: function() {
3245 var a = ad.pop() || n.expando + "_" + wc++;
3246 return this[a] = !0, a
3247 }
3248 }), n.ajaxPrefilter("json jsonp", function(b, c, d) {
3249 var e, f, g, h = b.jsonp !== !1 && (bd.test(b.url) ? "url" : "string" == typeof b.data && !(b.contentType || "").indexOf("application/x-www-form-urlencoded") && bd.test(b.data) && "data");
3250 return h || "jsonp" === b.dataTypes[0] ? (e = b.jsonpCallback = n.isFunction(b.jsonpCallback) ? b.jsonpCallback() : b.jsonpCallback, h ? b[h] = b[h].replace(bd, "$1" + e) : b.jsonp !== !1 && (b.url += (xc.test(b.url) ? "&" : "?") + b.jsonp + "=" + e), b.converters["script json"] = function() {
3251 return g || n.error(e + " was not called"), g[0]
3252 }, b.dataTypes[0] = "json", f = a[e], a[e] = function() {
3253 g = arguments
3254 }, d.always(function() {
3255 a[e] = f, b[e] && (b.jsonpCallback = c.jsonpCallback, ad.push(e)), g && n.isFunction(f) && f(g[0]), g = f = void 0
3256 }), "script") : void 0
3257 }), n.parseHTML = function(a, b, c) {
3258 if (!a || "string" != typeof a) return null;
3259 "boolean" == typeof b && (c = b, b = !1), b = b || z;
3260 var d = v.exec(a),
3261 e = !c && [];
3262 return d ? [b.createElement(d[1])] : (d = n.buildFragment([a], b, e), e && e.length && n(e).remove(), n.merge([], d.childNodes))
3263 };
3264 var cd = n.fn.load;
3265 n.fn.load = function(a, b, c) {
3266 if ("string" != typeof a && cd) return cd.apply(this, arguments);
3267 var d, e, f, g = this,
3268 h = a.indexOf(" ");
3269 return h >= 0 && (d = a.slice(h, a.length), a = a.slice(0, h)), n.isFunction(b) ? (c = b, b = void 0) : b && "object" == typeof b && (f = "POST"), g.length > 0 && n.ajax({
3270 url: a,
3271 type: f,
3272 dataType: "html",
3273 data: b
3274 }).done(function(a) {
3275 e = arguments, g.html(d ? n("<div>").append(n.parseHTML(a)).find(d) : a)
3276 }).complete(c && function(a, b) {
3277 g.each(c, e || [a.responseText, b, a])
3278 }), this
3279 }, n.expr.filters.animated = function(a) {
3280 return n.grep(n.timers, function(b) {
3281 return a === b.elem
3282 }).length
3283 };
3284 var dd = a.document.documentElement;
3285
3286 function ed(a) {
3287 return n.isWindow(a) ? a : 9 === a.nodeType ? a.defaultView || a.parentWindow : !1
3288 }
3289 n.offset = {
3290 setOffset: function(a, b, c) {
3291 var d, e, f, g, h, i, j, k = n.css(a, "position"),
3292 l = n(a),
3293 m = {};
3294 "static" === k && (a.style.position = "relative"), h = l.offset(), f = n.css(a, "top"), i = n.css(a, "left"), j = ("absolute" === k || "fixed" === k) && n.inArray("auto", [f, i]) > -1, j ? (d = l.position(), g = d.top, e = d.left) : (g = parseFloat(f) || 0, e = parseFloat(i) || 0), n.isFunction(b) && (b = b.call(a, c, h)), null != b.top && (m.top = b.top - h.top + g), null != b.left && (m.left = b.left - h.left + e), "using" in b ? b.using.call(a, m) : l.css(m)
3295 }
3296 }, n.fn.extend({
3297 offset: function(a) {
3298 if (arguments.length) return void 0 === a ? this : this.each(function(b) {
3299 n.offset.setOffset(this, a, b)
3300 });
3301 var b, c, d = {
3302 top: 0,
3303 left: 0
3304 },
3305 e = this[0],
3306 f = e && e.ownerDocument;
3307 if (f) return b = f.documentElement, n.contains(b, e) ? (typeof e.getBoundingClientRect !== L && (d = e.getBoundingClientRect()), c = ed(f), {
3308 top: d.top + (c.pageYOffset || b.scrollTop) - (b.clientTop || 0),
3309 left: d.left + (c.pageXOffset || b.scrollLeft) - (b.clientLeft || 0)
3310 }) : d
3311 },
3312 position: function() {
3313 if (this[0]) {
3314 var a, b, c = {
3315 top: 0,
3316 left: 0
3317 },
3318 d = this[0];
3319 return "fixed" === n.css(d, "position") ? b = d.getBoundingClientRect() : (a = this.offsetParent(), b = this.offset(), n.nodeName(a[0], "html") || (c = a.offset()), c.top += n.css(a[0], "borderTopWidth", !0), c.left += n.css(a[0], "borderLeftWidth", !0)), {
3320 top: b.top - c.top - n.css(d, "marginTop", !0),
3321 left: b.left - c.left - n.css(d, "marginLeft", !0)
3322 }
3323 }
3324 },
3325 offsetParent: function() {
3326 return this.map(function() {
3327 var a = this.offsetParent || dd;
3328 while (a && !n.nodeName(a, "html") && "static" === n.css(a, "position")) a = a.offsetParent;
3329 return a || dd
3330 })
3331 }
3332 }), n.each({
3333 scrollLeft: "pageXOffset",
3334 scrollTop: "pageYOffset"
3335 }, function(a, b) {
3336 var c = /Y/.test(b);
3337 n.fn[a] = function(d) {
3338 return W(this, function(a, d, e) {
3339 var f = ed(a);
3340 return void 0 === e ? f ? b in f ? f[b] : f.document.documentElement[d] : a[d] : void(f ? f.scrollTo(c ? n(f).scrollLeft() : e, c ? e : n(f).scrollTop()) : a[d] = e)
3341 }, a, d, arguments.length, null)
3342 }
3343 }), n.each(["top", "left"], function(a, b) {
3344 n.cssHooks[b] = Mb(l.pixelPosition, function(a, c) {
3345 return c ? (c = Kb(a, b), Ib.test(c) ? n(a).position()[b] + "px" : c) : void 0
3346 })
3347 }), n.each({
3348 Height: "height",
3349 Width: "width"
3350 }, function(a, b) {
3351 n.each({
3352 padding: "inner" + a,
3353 content: b,
3354 "": "outer" + a
3355 }, function(c, d) {
3356 n.fn[d] = function(d, e) {
3357 var f = arguments.length && (c || "boolean" != typeof d),
3358 g = c || (d === !0 || e === !0 ? "margin" : "border");
3359 return W(this, function(b, c, d) {
3360 var e;
3361 return n.isWindow(b) ? b.document.documentElement["client" + a] : 9 === b.nodeType ? (e = b.documentElement, Math.max(b.body["scroll" + a], e["scroll" + a], b.body["offset" + a], e["offset" + a], e["client" + a])) : void 0 === d ? n.css(b, c, g) : n.style(b, c, d, g)
3362 }, b, f ? d : void 0, f, null)
3363 }
3364 })
3365 }), n.fn.size = function() {
3366 return this.length
3367 }, n.fn.andSelf = n.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function() {
3368 return n
3369 });
3370 var fd = a.jQuery,
3371 gd = a.$;
3372 return n.noConflict = function(b) {
3373 return a.$ === n && (a.$ = gd), b && a.jQuery === n && (a.jQuery = fd), n
3374 }, typeof b === L && (a.jQuery = a.$ = n), n
3375}); \ No newline at end of file
diff --git a/deprecated/jinwei.me/mobile/js/less.js b/deprecated/jinwei.me/mobile/js/less.js
new file mode 100644
index 0000000..01ba958
--- /dev/null
+++ b/deprecated/jinwei.me/mobile/js/less.js
@@ -0,0 +1,3635 @@
1/*!
2 * LESS - Leaner CSS v1.7.0
3 * http://lesscss.org
4 *
5 * Copyright (c) 2009-2014, Alexis Sellier <[email protected]>
6 * Licensed under the Apache v2 License.
7 *
8 */
9
10/** * @license Apache v2
11 */
12
13! function(a, b) {
14 function c(b) {
15 return a.less[b.split("/")[1]]
16 }
17
18 function d(a, b) {
19 "undefined" != typeof console && w.logLevel >= b && console.log("less: " + a)
20 }
21
22 function e(a) {
23 return a.replace(/^[a-z-]+:\/+?[^\/]+/, "").replace(/^\//, "").replace(/\.[a-zA-Z]+$/, "").replace(/[^\.\w-]+/g, "-").replace(/\./g, ":")
24 }
25
26 function f(a, c) {
27 var e = "{line} {content}",
28 f = a.filename || c,
29 g = [],
30 h = (a.type || "Syntax") + "Error: " + (a.message || "There is an error in your .less file") + " in " + f + " ",
31 i = function(a, c, d) {
32 a.extract[c] !== b && g.push(e.replace(/\{line\}/, (parseInt(a.line, 10) || 0) + (c - 1)).replace(/\{class\}/, d).replace(/\{content\}/, a.extract[c]))
33 };
34 a.extract ? (i(a, 0, ""), i(a, 1, "line"), i(a, 2, ""), h += "on line " + a.line + ", column " + (a.column + 1) + ":\n" + g.join("\n")) : a.stack && (h += a.stack), d(h, z.errors)
35 }
36
37 function g(a, b, c) {
38 var f = b.href || "",
39 g = "less:" + (b.title || e(f)),
40 h = document.getElementById(g),
41 i = !1,
42 j = document.createElement("style");
43 if (j.setAttribute("type", "text/css"), b.media && j.setAttribute("media", b.media), j.id = g, j.styleSheet) try {
44 j.styleSheet.cssText = a
45 } catch (k) {
46 throw new Error("Couldn't reassign styleSheet.cssText.")
47 } else j.appendChild(document.createTextNode(a)), i = null !== h && h.childNodes.length > 0 && j.childNodes.length > 0 && h.firstChild.nodeValue === j.firstChild.nodeValue;
48 var l = document.getElementsByTagName("head")[0];
49 if (null === h || i === !1) {
50 var m = b && b.nextSibling || null;
51 m ? m.parentNode.insertBefore(j, m) : l.appendChild(j)
52 }
53 if (h && i === !1 && h.parentNode.removeChild(h), c && D) {
54 d("saving " + f + " to cache.", z.info);
55 try {
56 D.setItem(f, a), D.setItem(f + ":timestamp", c)
57 } catch (k) {
58 d("failed to save", z.errors)
59 }
60 }
61 }
62
63 function h(a) {
64 return w.postProcessor && "function" == typeof w.postProcessor && (a = w.postProcessor.call(a, a) || a), a
65 }
66
67 function i(a, c) {
68 var d, f, h = "less-error-message:" + e(c || ""),
69 i = '<li><label>{line}</label><pre class="{class}">{content}</pre></li>',
70 j = document.createElement("div"),
71 k = [],
72 l = a.filename || c,
73 m = l.match(/([^\/]+(\?.*)?)$/)[1];
74 j.id = h, j.className = "less-error-message", f = "<h3>" + (a.type || "Syntax") + "Error: " + (a.message || "There is an error in your .less file") + '</h3><p>in <a href="' + l + '">' + m + "</a> ";
75 var n = function(a, c, d) {
76 a.extract[c] !== b && k.push(i.replace(/\{line\}/, (parseInt(a.line, 10) || 0) + (c - 1)).replace(/\{class\}/, d).replace(/\{content\}/, a.extract[c]))
77 };
78 a.extract ? (n(a, 0, ""), n(a, 1, "line"), n(a, 2, ""), f += "on line " + a.line + ", column " + (a.column + 1) + ":</p><ul>" + k.join("") + "</ul>") : a.stack && (f += "<br/>" + a.stack.split("\n").slice(1).join("<br/>")), j.innerHTML = f, g([".less-error-message ul, .less-error-message li {", "list-style-type: none;", "margin-right: 15px;", "padding: 4px 0;", "margin: 0;", "}", ".less-error-message label {", "font-size: 12px;", "margin-right: 15px;", "padding: 4px 0;", "color: #cc7777;", "}", ".less-error-message pre {", "color: #dd6666;", "padding: 4px 0;", "margin: 0;", "display: inline-block;", "}", ".less-error-message pre.line {", "color: #ff0000;", "}", ".less-error-message h3 {", "font-size: 20px;", "font-weight: bold;", "padding: 15px 0 5px 0;", "margin: 0;", "}", ".less-error-message a {", "color: #10a", "}", ".less-error-message .error {", "color: red;", "font-weight: bold;", "padding-bottom: 2px;", "border-bottom: 1px dashed red;", "}"].join("\n"), {
79 title: "error-message"
80 }), j.style.cssText = ["font-family: Arial, sans-serif", "border: 1px solid #e00", "background-color: #eee", "border-radius: 5px", "-webkit-border-radius: 5px", "-moz-border-radius: 5px", "color: #e00", "padding: 15px", "margin-bottom: 15px"].join(";"), "development" == w.env && (d = setInterval(function() {
81 document.body && (document.getElementById(h) ? document.body.replaceChild(j, document.getElementById(h)) : document.body.insertBefore(j, document.body.firstChild), clearInterval(d))
82 }, 10))
83 }
84
85 function j(a, b) {
86 w.errorReporting && "html" !== w.errorReporting ? "console" === w.errorReporting ? f(a, b) : "function" == typeof w.errorReporting && w.errorReporting("add", a, b) : i(a, b)
87 }
88
89 function k(a) {
90 var b = document.getElementById("less-error-message:" + e(a));
91 b && b.parentNode.removeChild(b)
92 }
93
94 function l() {}
95
96 function m(a) {
97 w.errorReporting && "html" !== w.errorReporting ? "console" === w.errorReporting ? l(a) : "function" == typeof w.errorReporting && w.errorReporting("remove", a) : k(a)
98 }
99
100 function n(a) {
101 for (var b, c = document.getElementsByTagName("style"), d = 0; d < c.length; d++)
102 if (b = c[d], b.type.match(C)) {
103 var e = new w.tree.parseEnv(w),
104 f = b.innerHTML || "";
105 e.filename = document.location.href.replace(/#.*$/, ""), (a || w.globalVars) && (e.useFileCache = !0);
106 var g = function(a) {
107 return function(b, c) {
108 if (b) return j(b, "inline");
109 var d = c.toCSS(w);
110 a.type = "text/css", a.styleSheet ? a.styleSheet.cssText = d : a.innerHTML = d
111 }
112 }(b);
113 new w.Parser(e).parse(f, g, {
114 globalVars: w.globalVars,
115 modifyVars: a
116 })
117 }
118 }
119
120 function o(a, b) {
121 var c, d, e = /^((?:[a-z-]+:)?\/+?(?:[^\/\?#]*\/)|([\/\\]))?((?:[^\/\\\?#]*[\/\\])*)([^\/\\\?#]*)([#\?].*)?$/i,
122 f = a.match(e),
123 g = {},
124 h = [];
125 if (!f) throw new Error("Could not parse sheet href - '" + a + "'");
126 if (!f[1] || f[2]) {
127 if (d = b.match(e), !d) throw new Error("Could not parse page url - '" + b + "'");
128 f[1] = f[1] || d[1] || "", f[2] || (f[3] = d[3] + f[3])
129 }
130 if (f[3]) {
131 for (h = f[3].replace(/\\/g, "/").split("/"), c = 0; c < h.length; c++) "." === h[c] && (h.splice(c, 1), c -= 1);
132 for (c = 0; c < h.length; c++) ".." === h[c] && c > 0 && (h.splice(c - 1, 2), c -= 2)
133 }
134 return g.hostPart = f[1], g.directories = h, g.path = f[1] + h.join("/"), g.fileUrl = g.path + (f[4] || ""), g.url = g.fileUrl + (f[5] || ""), g
135 }
136
137 function p(a, b) {
138 var c, d, e, f, g = o(a),
139 h = o(b),
140 i = "";
141 if (g.hostPart !== h.hostPart) return "";
142 for (d = Math.max(h.directories.length, g.directories.length), c = 0; d > c && h.directories[c] === g.directories[c]; c++);
143 for (f = h.directories.slice(c), e = g.directories.slice(c), c = 0; c < f.length - 1; c++) i += "../";
144 for (c = 0; c < e.length - 1; c++) i += e[c] + "/";
145 return i
146 }
147
148 function q() {
149 if (a.XMLHttpRequest && ("file:" !== a.location.protocol || !a.ActiveXObject)) return new XMLHttpRequest;
150 try {
151 return new ActiveXObject("Microsoft.XMLHTTP")
152 } catch (b) {
153 return d("browser doesn't support AJAX.", z.errors), null
154 }
155 }
156
157 function r(a, b, c, e) {
158 function f(b, c, d) {
159 b.status >= 200 && b.status < 300 ? c(b.responseText, b.getResponseHeader("Last-Modified")) : "function" == typeof d && d(b.status, a)
160 }
161 var g = q(),
162 h = y ? w.fileAsync : w.async;
163 "function" == typeof g.overrideMimeType && g.overrideMimeType("text/css"), d("XHR: Getting '" + a + "'", z.debug), g.open("GET", a, h), g.setRequestHeader("Accept", b || "text/x-less, text/css; q=0.9, */*; q=0.5"), g.send(null), y && !w.fileAsync ? 0 === g.status || g.status >= 200 && g.status < 300 ? c(g.responseText) : e(g.status, a) : h ? g.onreadystatechange = function() {
164 4 == g.readyState && f(g, c, e)
165 } : f(g, c, e)
166 }
167
168 function s(b, c, d, e) {
169 c && c.currentDirectory && !/^([a-z-]+:)?\//.test(b) && (b = c.currentDirectory + b);
170 var f = o(b, a.location.href),
171 g = f.url,
172 h = {
173 currentDirectory: f.path,
174 filename: g
175 };
176 if (c ? (h.entryPath = c.entryPath, h.rootpath = c.rootpath, h.rootFilename = c.rootFilename, h.relativeUrls = c.relativeUrls) : (h.entryPath = f.path, h.rootpath = w.rootpath || f.path, h.rootFilename = g, h.relativeUrls = e.relativeUrls), h.relativeUrls && (h.rootpath = e.rootpath ? o(e.rootpath + p(f.path, h.entryPath)).path : f.path), e.useFileCache && E[g]) try {
177 var i = E[g];
178 d(null, i, g, h, {
179 lastModified: new Date
180 })
181 } catch (j) {
182 d(j, null, g)
183 } else r(g, e.mime, function(a, b) {
184 E[g] = a;
185 try {
186 d(null, a, g, h, {
187 lastModified: b
188 })
189 } catch (c) {
190 d(c, null, g)
191 }
192 }, function(a, b) {
193 d({
194 type: "File",
195 message: "'" + b + "' wasn't found (" + a + ")"
196 }, null, g)
197 })
198 }
199
200 function t(a, b, c, d, e) {
201 var f = new w.tree.parseEnv(w);
202 f.mime = a.type, (e || w.globalVars) && (f.useFileCache = !0), s(a.href, null, function(h, i, j, k, l) {
203 if (l) {
204 l.remaining = d;
205 var n = D && D.getItem(j),
206 o = D && D.getItem(j + ":timestamp");
207 if (!c && o && l.lastModified && new Date(l.lastModified).valueOf() === new Date(o).valueOf()) return g(n, a), l.local = !0, void b(null, null, i, a, l, j)
208 }
209 m(j), i ? (f.currentFileInfo = k, new w.Parser(f).parse(i, function(c, d) {
210 if (c) return b(c, null, null, a);
211 try {
212 b(c, d, i, a, l, j)
213 } catch (c) {
214 b(c, null, null, a)
215 }
216 }, {
217 modifyVars: e,
218 globalVars: w.globalVars
219 })) : b(h, null, null, a, l, j)
220 }, f, e)
221 }
222
223 function u(a, b, c) {
224 for (var d = 0; d < w.sheets.length; d++) t(w.sheets[d], a, b, w.sheets.length - (d + 1), c)
225 }
226
227 function v() {
228 "development" === w.env ? (w.optimization = 0, w.watchTimer = setInterval(function() {
229 w.watchMode && u(function(a, b, c, d, e) {
230 if (a) j(a, d.href);
231 else if (b) {
232 var f = b.toCSS(w);
233 f = h(f), g(f, d, e.lastModified)
234 }
235 })
236 }, w.poll)) : w.optimization = 3
237 }("undefined" == typeof a.less || "undefined" != typeof a.less.nodeType) && (a.less = {}), w = a.less, x = a.less.tree = {}, w.mode = "browser";
238 var w, x;
239 w === b && (w = exports, x = c("./tree"), w.mode = "node"), w.Parser = function(a) {
240 function d() {
241 D = y, G.push({
242 current: C,
243 i: y,
244 j: z
245 })
246 }
247
248 function e() {
249 var a = G.pop();
250 C = a.current, D = y = a.i, z = a.j
251 }
252
253 function f() {
254 G.pop()
255 }
256
257 function g() {
258 y > D && (C = C.slice(y - D), D = y)
259 }
260
261 function h(a, b) {
262 var c = a.charCodeAt(0 | b);
263 return 32 >= c && (32 === c || 10 === c || 9 === c)
264 }
265
266 function i(a) {
267 var b, c, d = typeof a;
268 return "string" === d ? v.charAt(y) !== a ? null : (l(1), a) : (g(), (b = a.exec(C)) ? (c = b[0].length, l(c), "string" == typeof b ? b : 1 === b.length ? b[0] : b) : null)
269 }
270
271 function j(a) {
272 y > D && (C = C.slice(y - D), D = y);
273 var b = a.exec(C);
274 return b ? (l(b[0].length), "string" == typeof b ? b : 1 === b.length ? b[0] : b) : null
275 }
276
277 function k(a) {
278 return v.charAt(y) !== a ? null : (l(1), a)
279 }
280
281 function l(a) {
282 for (var b, c = y, d = z, e = y - D, f = y + C.length - e, g = y += a, h = v; f > y && (b = h.charCodeAt(y), !(b > 32)) && (32 === b || 10 === b || 9 === b || 13 === b); y++);
283 return C = C.slice(a + y - g + e), D = y, !C.length && z < B.length - 1 ? (C = B[++z], l(0), !0) : c !== y || d !== z
284 }
285
286 function m(a, b) {
287 var c = "[object Function]" === Object.prototype.toString.call(a) ? a.call(F) : i(a);
288 return c ? c : void o(b || ("string" == typeof a ? "expected '" + a + "' got '" + v.charAt(y) + "'" : "unexpected token"))
289 }
290
291 function n(a, b) {
292 return v.charAt(y) === a ? (l(1), a) : void o(b || "expected '" + a + "' got '" + v.charAt(y) + "'")
293 }
294
295 function o(a, b) {
296 var c = new Error(a);
297 throw c.index = y, c.type = b || "Syntax", c
298 }
299
300 function p(a) {
301 return "string" == typeof a ? v.charAt(y) === a : a.test(C)
302 }
303
304 function q(a) {
305 return v.charAt(y) === a
306 }
307
308 function r(a, b) {
309 return a.filename && b.currentFileInfo.filename && a.filename !== b.currentFileInfo.filename ? E.imports.contents[a.filename] : v
310 }
311
312 function s(a, b) {
313 for (var c = a + 1, d = null, e = -1; --c >= 0 && "\n" !== b.charAt(c);) e++;
314 return "number" == typeof a && (d = (b.slice(0, a).match(/\n/g) || "").length), {
315 line: d,
316 column: e
317 }
318 }
319
320 function t(a, b, d) {
321 var e = d.currentFileInfo.filename;
322 return "browser" !== w.mode && "rhino" !== w.mode && (e = c("path").resolve(e)), {
323 lineNumber: s(a, b).line + 1,
324 fileName: e
325 }
326 }
327
328 function u(a, b) {
329 var c = r(a, b),
330 d = s(a.index, c),
331 e = d.line,
332 f = d.column,
333 g = a.call && s(a.call, c).line,
334 h = c.split("\n");
335 this.type = a.type || "Syntax", this.message = a.message, this.filename = a.filename || b.currentFileInfo.filename, this.index = a.index, this.line = "number" == typeof e ? e + 1 : null, this.callLine = g + 1, this.callExtract = h[g], this.stack = a.stack, this.column = f, this.extract = [h[e - 1], h[e], h[e + 1]]
336 }
337 var v, y, z, A, B, C, D, E, F, G = [],
338 H = a && a.filename;
339 a instanceof x.parseEnv || (a = new x.parseEnv(a));
340 var I = this.imports = {
341 paths: a.paths || [],
342 queue: [],
343 files: a.files,
344 contents: a.contents,
345 contentsIgnoredChars: a.contentsIgnoredChars,
346 mime: a.mime,
347 error: null,
348 push: function(b, c, d, e) {
349 var f = this;
350 this.queue.push(b);
351 var g = function(a, c, d) {
352 f.queue.splice(f.queue.indexOf(b), 1);
353 var g = d === H;
354 f.files[d] = c, a && !f.error && (f.error = a), e(a, c, g, d)
355 };
356 w.Parser.importer ? w.Parser.importer(b, c, g, a) : w.Parser.fileLoader(b, c, function(b, e, f, h) {
357 if (b) return void g(b);
358 var i = new x.parseEnv(a);
359 i.currentFileInfo = h, i.processImports = !1, i.contents[f] = e, (c.reference || d.reference) && (h.reference = !0), d.inline ? g(null, e, f) : new w.Parser(i).parse(e, function(a, b) {
360 g(a, b, f)
361 })
362 }, a)
363 }
364 },
365 J = j;
366 return u.prototype = new Error, u.prototype.constructor = u, this.env = a = a || {}, this.optimization = "optimization" in this.env ? this.env.optimization : 1, E = {
367 imports: I,
368 parse: function(d, e, f) {
369 var g, h, i, j, k, l = null,
370 m = "";
371 if (y = z = D = A = 0, j = f && f.globalVars ? w.Parser.serializeVars(f.globalVars) + "\n" : "", k = f && f.modifyVars ? "\n" + w.Parser.serializeVars(f.modifyVars) : "", (j || f && f.banner) && (m = (f && f.banner ? f.banner : "") + j, E.imports.contentsIgnoredChars[a.currentFileInfo.filename] = m.length), d = d.replace(/\r\n/g, "\n"), v = d = m + d.replace(/^\uFEFF/, "") + k, E.imports.contents[a.currentFileInfo.filename] = d, B = function(b) {
372 function c(b, c) {
373 l = new u({
374 index: c || i,
375 type: "Parse",
376 message: b,
377 filename: a.currentFileInfo.filename
378 }, a)
379 }
380
381 function d(a) {
382 var c = i - s;
383 512 > c && !a || !c || (r.push(b.slice(s, i + 1)), s = i + 1)
384 }
385 var e, f, g, h, i, j, k, m, n, o = b.length,
386 p = 0,
387 q = 0,
388 r = [],
389 s = 0;
390 for (i = 0; o > i; i++)
391 if (k = b.charCodeAt(i), !(k >= 97 && 122 >= k || 34 > k)) switch (k) {
392 case 40:
393 q++, f = i;
394 continue;
395 case 41:
396 if (--q < 0) return c("missing opening `(`");
397 continue;
398 case 59:
399 q || d();
400 continue;
401 case 123:
402 p++, e = i;
403 continue;
404 case 125:
405 if (--p < 0) return c("missing opening `{`");
406 p || q || d();
407 continue;
408 case 92:
409 if (o - 1 > i) {
410 i++;
411 continue
412 }
413 return c("unescaped `\\`");
414 case 34:
415 case 39:
416 case 96:
417 for (n = 0, j = i, i += 1; o > i; i++)
418 if (m = b.charCodeAt(i), !(m > 96)) {
419 if (m == k) {
420 n = 1;
421 break
422 }
423 if (92 == m) {
424 if (i == o - 1) return c("unescaped `\\`");
425 i++
426 }
427 }
428 if (n) continue;
429 return c("unmatched `" + String.fromCharCode(k) + "`", j);
430 case 47:
431 if (q || i == o - 1) continue;
432 if (m = b.charCodeAt(i + 1), 47 == m)
433 for (i += 2; o > i && (m = b.charCodeAt(i), !(13 >= m) || 10 != m && 13 != m); i++);
434 else if (42 == m) {
435 for (g = j = i, i += 2; o - 1 > i && (m = b.charCodeAt(i), 125 == m && (h = i), 42 != m || 47 != b.charCodeAt(i + 1)); i++);
436 if (i == o - 1) return c("missing closing `*/`", j);
437 i++
438 }
439 continue;
440 case 42:
441 if (o - 1 > i && 47 == b.charCodeAt(i + 1)) return c("unmatched `/*`");
442 continue
443 }
444 return 0 !== p ? g > e && h > g ? c("missing closing `}` or `*/`", e) : c("missing closing `}`", e) : 0 !== q ? c("missing closing `)`", f) : (d(!0), r)
445 }(d), l) return e(new u(l, a));
446 C = B[0];
447 try {
448 g = new x.Ruleset(null, this.parsers.primary()), g.root = !0, g.firstRoot = !0
449 } catch (n) {
450 return e(new u(n, a))
451 }
452 if (g.toCSS = function(d) {
453 return function(e, f) {
454 e = e || {};
455 var g, h, i = new x.evalEnv(e);
456 "object" != typeof f || Array.isArray(f) || (f = Object.keys(f).map(function(a) {
457 var b = f[a];
458 return b instanceof x.Value || (b instanceof x.Expression || (b = new x.Expression([b])), b = new x.Value([b])), new x.Rule("@" + a, b, !1, null, 0)
459 }), i.frames = [new x.Ruleset(null, f)]);
460 try {
461 var j, k = [],
462 l = [new x.joinSelectorVisitor, new x.processExtendsVisitor, new x.toCSSVisitor({
463 compress: Boolean(e.compress)
464 })],
465 m = this;
466 if (e.plugins)
467 for (j = 0; j < e.plugins.length; j++) e.plugins[j].isPreEvalVisitor ? k.push(e.plugins[j]) : e.plugins[j].isPreVisitor ? l.splice(0, 0, e.plugins[j]) : l.push(e.plugins[j]);
468 for (j = 0; j < k.length; j++) k[j].run(m);
469 for (g = d.call(m, i), j = 0; j < l.length; j++) l[j].run(g);
470 e.sourceMap && (g = new x.sourceMapOutput({
471 contentsIgnoredCharsMap: E.imports.contentsIgnoredChars,
472 writeSourceMap: e.writeSourceMap,
473 rootNode: g,
474 contentsMap: E.imports.contents,
475 sourceMapFilename: e.sourceMapFilename,
476 sourceMapURL: e.sourceMapURL,
477 outputFilename: e.sourceMapOutputFilename,
478 sourceMapBasepath: e.sourceMapBasepath,
479 sourceMapRootpath: e.sourceMapRootpath,
480 outputSourceFiles: e.outputSourceFiles,
481 sourceMapGenerator: e.sourceMapGenerator
482 })), h = g.toCSS({
483 compress: Boolean(e.compress),
484 dumpLineNumbers: a.dumpLineNumbers,
485 strictUnits: Boolean(e.strictUnits),
486 numPrecision: 8
487 })
488 } catch (n) {
489 throw new u(n, a)
490 }
491 if (e.cleancss && "node" === w.mode) {
492 var o = c("clean-css"),
493 p = e.cleancssOptions || {};
494 return p.keepSpecialComments === b && (p.keepSpecialComments = "*"), p.processImport = !1, p.noRebase = !0, p.noAdvanced === b && (p.noAdvanced = !0), new o(p).minify(h)
495 }
496 return e.compress ? h.replace(/(^(\s)+)|((\s)+$)/g, "") : h
497 }
498 }(g.eval), y < v.length - 1) {
499 y = A;
500 var o = s(y, v);
501 i = v.split("\n"), h = o.line + 1, l = {
502 type: "Parse",
503 message: "Unrecognised input",
504 index: y,
505 filename: a.currentFileInfo.filename,
506 line: h,
507 column: o.column,
508 extract: [i[h - 2], i[h - 1], i[h]]
509 }
510 }
511 var p = function(b) {
512 return b = l || b || E.imports.error, b ? (b instanceof u || (b = new u(b, a)), e(b)) : e(null, g)
513 };
514 return a.processImports === !1 ? p() : void new x.importVisitor(this.imports, p).run(g)
515 },
516 parsers: F = {
517 primary: function() {
518 for (var a, b = this.mixin, c = J, d = []; C;) {
519 if (a = this.extendRule() || b.definition() || this.rule() || this.ruleset() || b.call() || this.comment() || this.rulesetCall() || this.directive()) d.push(a);
520 else if (!c(/^[\s\n]+/) && !c(/^;+/)) break;
521 if (q("}")) break
522 }
523 return d
524 },
525 comment: function() {
526 var b;
527 if ("/" === v.charAt(y)) return "/" === v.charAt(y + 1) ? new x.Comment(j(/^\/\/.*/), !0, y, a.currentFileInfo) : (b = j(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/), b ? new x.Comment(b, !1, y, a.currentFileInfo) : void 0)
528 },
529 comments: function() {
530 for (var a, b = [];;) {
531 if (a = this.comment(), !a) break;
532 b.push(a)
533 }
534 return b
535 },
536 entities: {
537 quoted: function() {
538 var b, c, d = y,
539 e = y;
540 return "~" === v.charAt(d) && (d++, c = !0), '"' === v.charAt(d) || "'" === v.charAt(d) ? (c && k("~"), b = j(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/), b ? new x.Quoted(b[0], b[1] || b[2], c, e, a.currentFileInfo) : void 0) : void 0
541 },
542 keyword: function() {
543 var a;
544 if (a = j(/^%|^[_A-Za-z-][_A-Za-z0-9-]*/)) {
545 var b = x.Color.fromKeyword(a);
546 return b ? b : new x.Keyword(a)
547 }
548 },
549 call: function() {
550 var b, c, d, e, f = y;
551 if (b = /^([\w-]+|%|progid:[\w\.]+)\(/.exec(C)) {
552 if (b = b[1], c = b.toLowerCase(), "url" === c) return null;
553 if (y += b.length, "alpha" === c && (e = F.alpha(), "undefined" != typeof e)) return e;
554 if (k("("), d = this.arguments(), k(")")) return b ? new x.Call(b, d, f, a.currentFileInfo) : void 0
555 }
556 },
557 arguments: function() {
558 for (var a, b = [];;) {
559 if (a = this.assignment() || F.expression(), !a) break;
560 if (b.push(a), !k(",")) break
561 }
562 return b
563 },
564 literal: function() {
565 return this.dimension() || this.color() || this.quoted() || this.unicodeDescriptor()
566 },
567 assignment: function() {
568 var a, b;
569 return a = j(/^\w+(?=\s?=)/i), a && k("=") ? (b = F.entity(), b ? new x.Assignment(a, b) : void 0) : void 0
570 },
571 url: function() {
572 var b;
573 if ("u" === v.charAt(y) && j(/^url\(/)) return b = this.quoted() || this.variable() || j(/^(?:(?:\\[\(\)'"])|[^\(\)'"])+/) || "", n(")"), new x.URL(null != b.value || b instanceof x.Variable ? b : new x.Anonymous(b), a.currentFileInfo)
574 },
575 variable: function() {
576 var b, c = y;
577 return "@" === v.charAt(y) && (b = j(/^@@?[\w-]+/)) ? new x.Variable(b, c, a.currentFileInfo) : void 0
578 },
579 variableCurly: function() {
580 var b, c = y;
581 return "@" === v.charAt(y) && (b = j(/^@\{([\w-]+)\}/)) ? new x.Variable("@" + b[1], c, a.currentFileInfo) : void 0
582 },
583 color: function() {
584 var a;
585 return "#" === v.charAt(y) && (a = j(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/)) ? new x.Color(a[1]) : void 0
586 },
587 dimension: function() {
588 var a, b = v.charCodeAt(y);
589 if (!(b > 57 || 43 > b || 47 === b || 44 == b)) return a = j(/^([+-]?\d*\.?\d+)(%|[a-z]+)?/), a ? new x.Dimension(a[1], a[2]) : void 0
590 },
591 unicodeDescriptor: function() {
592 var a;
593 return a = j(/^U\+[0-9a-fA-F?]+(\-[0-9a-fA-F?]+)?/), a ? new x.UnicodeDescriptor(a[0]) : void 0
594 },
595 javascript: function() {
596 var c, d, e = y;
597 return "~" === v.charAt(e) && (e++, d = !0), "`" === v.charAt(e) ? (a.javascriptEnabled === b || a.javascriptEnabled || o("You are using JavaScript, which has been disabled."), d && k("~"), c = j(/^`([^`]*)`/), c ? new x.JavaScript(c[1], y, d) : void 0) : void 0
598 }
599 },
600 variable: function() {
601 var a;
602 return "@" === v.charAt(y) && (a = j(/^(@[\w-]+)\s*:/)) ? a[1] : void 0
603 },
604 rulesetCall: function() {
605 var a;
606 return "@" === v.charAt(y) && (a = j(/^(@[\w-]+)\s*\(\s*\)\s*;/)) ? new x.RulesetCall(a[1]) : void 0
607 },
608 extend: function(a) {
609 var b, c, d, e, f, g = y;
610 if (j(a ? /^&:extend\(/ : /^:extend\(/)) {
611 do {
612 for (d = null, b = null; !(d = j(/^(all)(?=\s*(\)|,))/)) && (c = this.element());) b ? b.push(c) : b = [c];
613 d = d && d[1], f = new x.Extend(new x.Selector(b), d, g), e ? e.push(f) : e = [f]
614 } while (k(","));
615 return m(/^\)/), a && m(/^;/), e
616 }
617 },
618 extendRule: function() {
619 return this.extend(!0)
620 },
621 mixin: {
622 call: function() {
623 var b, c, g, h, i, l, m = v.charAt(y),
624 o = !1,
625 p = y;
626 if ("." === m || "#" === m) {
627 for (d();;) {
628 if (b = y, h = j(/^[#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/), !h) break;
629 g = new x.Element(i, h, b, a.currentFileInfo), c ? c.push(g) : c = [g], i = k(">")
630 }
631 return c && (k("(") && (l = this.args(!0).args, n(")")), F.important() && (o = !0), F.end()) ? (f(), new x.mixin.Call(c, l, p, a.currentFileInfo, o)) : void e()
632 }
633 },
634 args: function(a) {
635 var b, c, g, h, i, l, m = E.parsers,
636 n = m.entities,
637 p = {
638 args: null,
639 variadic: !1
640 },
641 q = [],
642 r = [],
643 s = [];
644 for (d();;) {
645 if (a) l = m.detachedRuleset() || m.expression();
646 else {
647 if (m.comments(), "." === v.charAt(y) && j(/^\.{3}/)) {
648 p.variadic = !0, k(";") && !b && (b = !0), (b ? r : s).push({
649 variadic: !0
650 });
651 break
652 }
653 l = n.variable() || n.literal() || n.keyword()
654 } if (!l) break;
655 h = null, l.throwAwayComments && l.throwAwayComments(), i = l;
656 var t = null;
657 if (a ? l.value && 1 == l.value.length && (t = l.value[0]) : t = l, t && t instanceof x.Variable)
658 if (k(":")) {
659 if (q.length > 0 && (b && o("Cannot mix ; and , as delimiter types"), c = !0), i = a && m.detachedRuleset() || m.expression(), !i) {
660 if (!a) return e(), p.args = [], p;
661 o("could not understand value for named argument")
662 }
663 h = g = t.name
664 } else {
665 if (!a && j(/^\.{3}/)) {
666 p.variadic = !0, k(";") && !b && (b = !0), (b ? r : s).push({
667 name: l.name,
668 variadic: !0
669 });
670 break
671 }
672 a || (g = h = t.name, i = null)
673 }
674 i && q.push(i), s.push({
675 name: h,
676 value: i
677 }), k(",") || (k(";") || b) && (c && o("Cannot mix ; and , as delimiter types"), b = !0, q.length > 1 && (i = new x.Value(q)), r.push({
678 name: g,
679 value: i
680 }), g = null, q = [], c = !1)
681 }
682 return f(), p.args = b ? r : s, p
683 },
684 definition: function() {
685 var a, b, c, g, h = [],
686 i = !1;
687 if (!("." !== v.charAt(y) && "#" !== v.charAt(y) || p(/^[^{]*\}/)))
688 if (d(), b = j(/^([#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\s*\(/)) {
689 a = b[1];
690 var l = this.args(!1);
691 if (h = l.args, i = l.variadic, !k(")")) return A = y, void e();
692 if (F.comments(), j(/^when/) && (g = m(F.conditions, "expected condition")), c = F.block()) return f(), new x.mixin.Definition(a, h, c, g, i);
693 e()
694 } else f()
695 }
696 },
697 entity: function() {
698 var a = this.entities;
699 return a.literal() || a.variable() || a.url() || a.call() || a.keyword() || a.javascript() || this.comment()
700 },
701 end: function() {
702 return k(";") || q("}")
703 },
704 alpha: function() {
705 var a;
706 if (j(/^\(opacity=/i)) return a = j(/^\d+/) || this.entities.variable(), a ? (n(")"), new x.Alpha(a)) : void 0
707 },
708 element: function() {
709 var b, c, g, h = y;
710 return c = this.combinator(), b = j(/^(?:\d+\.\d+|\d+)%/) || j(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/) || k("*") || k("&") || this.attribute() || j(/^\([^()@]+\)/) || j(/^[\.#](?=@)/) || this.entities.variableCurly(), b || (d(), k("(") ? (g = this.selector()) && k(")") ? (b = new x.Paren(g), f()) : e() : f()), b ? new x.Element(c, b, h, a.currentFileInfo) : void 0
711 },
712 combinator: function() {
713 var a = v.charAt(y);
714 if (">" === a || "+" === a || "~" === a || "|" === a || "^" === a) {
715 for (y++, "^" === v.charAt(y) && (a = "^^", y++); h(v, y);) y++;
716 return new x.Combinator(a)
717 }
718 return new x.Combinator(h(v, y - 1) ? " " : null)
719 },
720 lessSelector: function() {
721 return this.selector(!0)
722 },
723 selector: function(b) {
724 for (var c, d, e, f, g, h, i, j = y, k = J;
725 (b && (g = this.extend()) || b && (h = k(/^when/)) || (f = this.element())) && (h ? i = m(this.conditions, "expected condition") : i ? o("CSS guard can only be used at the end of selector") : g ? d ? d.push(g) : d = [g] : (d && o("Extend can only be used at the end of selector"), e = v.charAt(y), c ? c.push(f) : c = [f], f = null), "{" !== e && "}" !== e && ";" !== e && "," !== e && ")" !== e););
726 return c ? new x.Selector(c, d, i, j, a.currentFileInfo) : void(d && o("Extend must be used to extend a selector, it cannot be used on its own"))
727 },
728 attribute: function() {
729 if (k("[")) {
730 var a, b, c, d = this.entities;
731 return (a = d.variableCurly()) || (a = m(/^(?:[_A-Za-z0-9-\*]*\|)?(?:[_A-Za-z0-9-]|\\.)+/)), c = j(/^[|~*$^]?=/), c && (b = d.quoted() || j(/^[0-9]+%/) || j(/^[\w-]+/) || d.variableCurly()), n("]"), new x.Attribute(a, c, b)
732 }
733 },
734 block: function() {
735 var a;
736 return k("{") && (a = this.primary()) && k("}") ? a : void 0
737 },
738 blockRuleset: function() {
739 var a = this.block();
740 return a && (a = new x.Ruleset(null, a)), a
741 },
742 detachedRuleset: function() {
743 var a = this.blockRuleset();
744 return a ? new x.DetachedRuleset(a) : void 0
745 },
746 ruleset: function() {
747 var b, c, g, h;
748 for (d(), a.dumpLineNumbers && (h = t(y, v, a));;) {
749 if (c = this.lessSelector(), !c) break;
750 if (b ? b.push(c) : b = [c], this.comments(), c.condition && b.length > 1 && o("Guards are only currently allowed on a single selector."), !k(",")) break;
751 c.condition && o("Guards are only currently allowed on a single selector."), this.comments()
752 }
753 if (b && (g = this.block())) {
754 f();
755 var i = new x.Ruleset(b, g, a.strictImports);
756 return a.dumpLineNumbers && (i.debugInfo = h), i
757 }
758 A = y, e()
759 },
760 rule: function(b) {
761 var c, g, h, i, j, k = y,
762 l = v.charAt(k);
763 if ("." !== l && "#" !== l && "&" !== l)
764 if (d(), c = this.variable() || this.ruleProperty()) {
765 if (j = "string" == typeof c, j && (g = this.detachedRuleset()), g || (g = b || !a.compress && !j ? this.anonymousValue() || this.value() : this.value() || this.anonymousValue(), h = this.important(), i = !j && c.pop().value), g && this.end()) return f(), new x.Rule(c, g, h, i, k, a.currentFileInfo);
766 if (A = y, e(), g && !b) return this.rule(!0)
767 } else f()
768 },
769 anonymousValue: function() {
770 var a;
771 return a = /^([^@+\/'"*`(;{}-]*);/.exec(C), a ? (y += a[0].length - 1, new x.Anonymous(a[1])) : void 0
772 },
773 "import": function() {
774 var b, c, g = y;
775 d();
776 var h = j(/^@import?\s+/),
777 i = (h ? this.importOptions() : null) || {};
778 return h && (b = this.entities.quoted() || this.entities.url()) && (c = this.mediaFeatures(), k(";")) ? (f(), c = c && new x.Value(c), new x.Import(b, c, i, g, a.currentFileInfo)) : void e()
779 },
780 importOptions: function() {
781 var a, b, c, d = {};
782 if (!k("(")) return null;
783 do
784 if (a = this.importOption()) {
785 switch (b = a, c = !0, b) {
786 case "css":
787 b = "less", c = !1;
788 break;
789 case "once":
790 b = "multiple", c = !1
791 }
792 if (d[b] = c, !k(",")) break
793 }
794 while (a);
795 return n(")"), d
796 },
797 importOption: function() {
798 var a = j(/^(less|css|multiple|once|inline|reference)/);
799 return a ? a[1] : void 0
800 },
801 mediaFeature: function() {
802 var b, c, d = this.entities,
803 e = [];
804 do
805 if (b = d.keyword() || d.variable()) e.push(b);
806 else if (k("(")) {
807 if (c = this.property(), b = this.value(), !k(")")) return null;
808 if (c && b) e.push(new x.Paren(new x.Rule(c, b, null, null, y, a.currentFileInfo, !0)));
809 else {
810 if (!b) return null;
811 e.push(new x.Paren(b))
812 }
813 } while (b);
814 return e.length > 0 ? new x.Expression(e) : void 0
815 },
816 mediaFeatures: function() {
817 var a, b = this.entities,
818 c = [];
819 do
820 if (a = this.mediaFeature()) {
821 if (c.push(a), !k(",")) break
822 } else if (a = b.variable(), a && (c.push(a), !k(","))) break; while (a);
823 return c.length > 0 ? c : null
824 },
825 media: function() {
826 var b, c, d, e;
827 return a.dumpLineNumbers && (e = t(y, v, a)), j(/^@media/) && (b = this.mediaFeatures(), c = this.block()) ? (d = new x.Media(c, b, y, a.currentFileInfo), a.dumpLineNumbers && (d.debugInfo = e), d) : void 0
828 },
829 directive: function() {
830 var b, c, g, h, i, l, m, n = y,
831 p = !0;
832 if ("@" === v.charAt(y)) {
833 if (c = this["import"]() || this.media()) return c;
834 if (d(), b = j(/^@[a-z-]+/)) {
835 switch (h = b, "-" == b.charAt(1) && b.indexOf("-", 2) > 0 && (h = "@" + b.slice(b.indexOf("-", 2) + 1)), h) {
836 case "@charset":
837 i = !0, p = !1;
838 break;
839 case "@namespace":
840 l = !0, p = !1;
841 break;
842 case "@keyframes":
843 i = !0;
844 break;
845 case "@host":
846 case "@page":
847 case "@document":
848 case "@supports":
849 m = !0
850 }
851 return i ? (c = this.entity(), c || o("expected " + b + " identifier")) : l ? (c = this.expression(), c || o("expected " + b + " expression")) : m && (c = (j(/^[^{;]+/) || "").trim(), c && (c = new x.Anonymous(c))), p && (g = this.blockRuleset()), g || !p && c && k(";") ? (f(), new x.Directive(b, c, g, n, a.currentFileInfo, a.dumpLineNumbers ? t(n, v, a) : null)) : void e()
852 }
853 }
854 },
855 value: function() {
856 var a, b = [];
857 do
858 if (a = this.expression(), a && (b.push(a), !k(","))) break;
859 while (a);
860 return b.length > 0 ? new x.Value(b) : void 0
861 },
862 important: function() {
863 return "!" === v.charAt(y) ? j(/^! *important/) : void 0
864 },
865 sub: function() {
866 var a, b;
867 return k("(") && (a = this.addition()) ? (b = new x.Expression([a]), n(")"), b.parens = !0, b) : void 0
868 },
869 multiplication: function() {
870 var a, b, c, d, e;
871 if (a = this.operand()) {
872 for (e = h(v, y - 1);;) {
873 if (p(/^\/[*\/]/)) break;
874 if (c = k("/") || k("*"), !c) break;
875 if (b = this.operand(), !b) break;
876 a.parensInOp = !0, b.parensInOp = !0, d = new x.Operation(c, [d || a, b], e), e = h(v, y - 1)
877 }
878 return d || a
879 }
880 },
881 addition: function() {
882 var a, b, c, d, e;
883 if (a = this.multiplication()) {
884 for (e = h(v, y - 1);;) {
885 if (c = j(/^[-+]\s+/) || !e && (k("+") || k("-")), !c) break;
886 if (b = this.multiplication(), !b) break;
887 a.parensInOp = !0, b.parensInOp = !0, d = new x.Operation(c, [d || a, b], e), e = h(v, y - 1)
888 }
889 return d || a
890 }
891 },
892 conditions: function() {
893 var a, b, c, d = y;
894 if (a = this.condition()) {
895 for (;;) {
896 if (!p(/^,\s*(not\s*)?\(/) || !k(",")) break;
897 if (b = this.condition(), !b) break;
898 c = new x.Condition("or", c || a, b, d)
899 }
900 return c || a
901 }
902 },
903 condition: function() {
904 var a, b, c, d, e = this.entities,
905 f = y,
906 g = !1;
907 return j(/^not/) && (g = !0), n("("), a = this.addition() || e.keyword() || e.quoted(), a ? (d = j(/^(?:>=|<=|=<|[<=>])/), d ? (b = this.addition() || e.keyword() || e.quoted(), b ? c = new x.Condition(d, a, b, f, g) : o("expected expression")) : c = new x.Condition("=", a, new x.Keyword("true"), f, g), n(")"), j(/^and/) ? new x.Condition("and", c, this.condition()) : c) : void 0
908 },
909 operand: function() {
910 var a, b = this.entities,
911 c = v.charAt(y + 1);
912 "-" !== v.charAt(y) || "@" !== c && "(" !== c || (a = k("-"));
913 var d = this.sub() || b.dimension() || b.color() || b.variable() || b.call();
914 return a && (d.parensInOp = !0, d = new x.Negative(d)), d
915 },
916 expression: function() {
917 var a, b, c = [];
918 do a = this.addition() || this.entity(), a && (c.push(a), p(/^\/[\/*]/) || (b = k("/"), b && c.push(new x.Anonymous(b)))); while (a);
919 return c.length > 0 ? new x.Expression(c) : void 0
920 },
921 property: function() {
922 var a = j(/^(\*?-?[_a-zA-Z0-9-]+)\s*:/);
923 return a ? a[1] : void 0
924 },
925 ruleProperty: function() {
926 function b(a) {
927 var b = a.exec(e);
928 return b ? (g.push(y + h), h += b[0].length, e = e.slice(b[1].length), f.push(b[1])) : void 0
929 }
930 var c, d, e = C,
931 f = [],
932 g = [],
933 h = 0;
934 for (b(/^(\*?)/); b(/^((?:[\w-]+)|(?:@\{[\w-]+\}))/););
935 if (f.length > 1 && b(/^\s*((?:\+_|\+)?)\s*:/)) {
936 for (l(h), "" === f[0] && (f.shift(), g.shift()), d = 0; d < f.length; d++) c = f[d], f[d] = "@" !== c.charAt(0) ? new x.Keyword(c) : new x.Variable("@" + c.slice(2, -1), g[d], a.currentFileInfo);
937 return f
938 }
939 }
940 }
941 }
942 }, w.Parser.serializeVars = function(a) {
943 var b = "";
944 for (var c in a)
945 if (Object.hasOwnProperty.call(a, c)) {
946 var d = a[c];
947 b += ("@" === c[0] ? "" : "@") + c + ": " + d + (";" === ("" + d).slice(-1) ? "" : ";")
948 }
949 return b
950 },
951 function(d) {
952 function e(a, b, c) {
953 if (!(c instanceof d.Dimension)) throw {
954 type: "Argument",
955 message: "argument must be a number"
956 };
957 return null == b ? b = c.unit : c = c.unify(), new d.Dimension(a(parseFloat(c.value)), b)
958 }
959
960 function f(a, b, c) {
961 var e, f, g, h, i = b.alpha,
962 j = c.alpha,
963 k = [];
964 g = j + i * (1 - j);
965 for (var l = 0; 3 > l; l++) e = b.rgb[l] / 255, f = c.rgb[l] / 255, h = a(e, f), g && (h = (j * f + i * (e - j * (e + f - h))) / g), k[l] = 255 * h;
966 return new d.Color(k, g)
967 }
968
969 function g() {
970 var a, b = d.functions;
971 for (a in l) l.hasOwnProperty(a) && (b[a] = e.bind(null, Math[a], l[a]));
972 for (a in m) m.hasOwnProperty(a) && (b[a] = f.bind(null, m[a]));
973 a = d.defaultFunc, b["default"] = a.eval.bind(a)
974 }
975
976 function h(a) {
977 return d.functions.hsla(a.h, a.s, a.l, a.a)
978 }
979
980 function i(a, b) {
981 return a instanceof d.Dimension && a.unit.is("%") ? parseFloat(a.value * b / 100) : j(a)
982 }
983
984 function j(a) {
985 if (a instanceof d.Dimension) return parseFloat(a.unit.is("%") ? a.value / 100 : a.value);
986 if ("number" == typeof a) return a;
987 throw {
988 error: "RuntimeError",
989 message: "color functions take numbers as parameters"
990 }
991 }
992
993 function k(a) {
994 return Math.min(1, Math.max(0, a))
995 }
996 d.functions = {
997 rgb: function(a, b, c) {
998 return this.rgba(a, b, c, 1)
999 },
1000 rgba: function(a, b, c, e) {
1001 var f = [a, b, c].map(function(a) {
1002 return i(a, 255)
1003 });
1004 return e = j(e), new d.Color(f, e)
1005 },
1006 hsl: function(a, b, c) {
1007 return this.hsla(a, b, c, 1)
1008 },
1009 hsla: function(a, b, c, d) {
1010 function e(a) {
1011 return a = 0 > a ? a + 1 : a > 1 ? a - 1 : a, 1 > 6 * a ? g + (f - g) * a * 6 : 1 > 2 * a ? f : 2 > 3 * a ? g + (f - g) * (2 / 3 - a) * 6 : g
1012 }
1013 a = j(a) % 360 / 360, b = k(j(b)), c = k(j(c)), d = k(j(d));
1014 var f = .5 >= c ? c * (b + 1) : c + b - c * b,
1015 g = 2 * c - f;
1016 return this.rgba(255 * e(a + 1 / 3), 255 * e(a), 255 * e(a - 1 / 3), d)
1017 },
1018 hsv: function(a, b, c) {
1019 return this.hsva(a, b, c, 1)
1020 },
1021 hsva: function(a, b, c, d) {
1022 a = j(a) % 360 / 360 * 360, b = j(b), c = j(c), d = j(d);
1023 var e, f;
1024 e = Math.floor(a / 60 % 6), f = a / 60 - e;
1025 var g = [c, c * (1 - b), c * (1 - f * b), c * (1 - (1 - f) * b)],
1026 h = [
1027 [0, 3, 1],
1028 [2, 0, 1],
1029 [1, 0, 3],
1030 [1, 2, 0],
1031 [3, 1, 0],
1032 [0, 1, 2]
1033 ];
1034 return this.rgba(255 * g[h[e][0]], 255 * g[h[e][1]], 255 * g[h[e][2]], d)
1035 },
1036 hue: function(a) {
1037 return new d.Dimension(Math.round(a.toHSL().h))
1038 },
1039 saturation: function(a) {
1040 return new d.Dimension(Math.round(100 * a.toHSL().s), "%")
1041 },
1042 lightness: function(a) {
1043 return new d.Dimension(Math.round(100 * a.toHSL().l), "%")
1044 },
1045 hsvhue: function(a) {
1046 return new d.Dimension(Math.round(a.toHSV().h))
1047 },
1048 hsvsaturation: function(a) {
1049 return new d.Dimension(Math.round(100 * a.toHSV().s), "%")
1050 },
1051 hsvvalue: function(a) {
1052 return new d.Dimension(Math.round(100 * a.toHSV().v), "%")
1053 },
1054 red: function(a) {
1055 return new d.Dimension(a.rgb[0])
1056 },
1057 green: function(a) {
1058 return new d.Dimension(a.rgb[1])
1059 },
1060 blue: function(a) {
1061 return new d.Dimension(a.rgb[2])
1062 },
1063 alpha: function(a) {
1064 return new d.Dimension(a.toHSL().a)
1065 },
1066 luma: function(a) {
1067 return new d.Dimension(Math.round(a.luma() * a.alpha * 100), "%")
1068 },
1069 luminance: function(a) {
1070 var b = .2126 * a.rgb[0] / 255 + .7152 * a.rgb[1] / 255 + .0722 * a.rgb[2] / 255;
1071 return new d.Dimension(Math.round(b * a.alpha * 100), "%")
1072 },
1073 saturate: function(a, b) {
1074 if (!a.rgb) return null;
1075 var c = a.toHSL();
1076 return c.s += b.value / 100, c.s = k(c.s), h(c)
1077 },
1078 desaturate: function(a, b) {
1079 var c = a.toHSL();
1080 return c.s -= b.value / 100, c.s = k(c.s), h(c)
1081 },
1082 lighten: function(a, b) {
1083 var c = a.toHSL();
1084 return c.l += b.value / 100, c.l = k(c.l), h(c)
1085 },
1086 darken: function(a, b) {
1087 var c = a.toHSL();
1088 return c.l -= b.value / 100, c.l = k(c.l), h(c)
1089 },
1090 fadein: function(a, b) {
1091 var c = a.toHSL();
1092 return c.a += b.value / 100, c.a = k(c.a), h(c)
1093 },
1094 fadeout: function(a, b) {
1095 var c = a.toHSL();
1096 return c.a -= b.value / 100, c.a = k(c.a), h(c)
1097 },
1098 fade: function(a, b) {
1099 var c = a.toHSL();
1100 return c.a = b.value / 100, c.a = k(c.a), h(c)
1101 },
1102 spin: function(a, b) {
1103 var c = a.toHSL(),
1104 d = (c.h + b.value) % 360;
1105 return c.h = 0 > d ? 360 + d : d, h(c)
1106 },
1107 mix: function(a, b, c) {
1108 c || (c = new d.Dimension(50));
1109 var e = c.value / 100,
1110 f = 2 * e - 1,
1111 g = a.toHSL().a - b.toHSL().a,
1112 h = ((f * g == -1 ? f : (f + g) / (1 + f * g)) + 1) / 2,
1113 i = 1 - h,
1114 j = [a.rgb[0] * h + b.rgb[0] * i, a.rgb[1] * h + b.rgb[1] * i, a.rgb[2] * h + b.rgb[2] * i],
1115 k = a.alpha * e + b.alpha * (1 - e);
1116 return new d.Color(j, k)
1117 },
1118 greyscale: function(a) {
1119 return this.desaturate(a, new d.Dimension(100))
1120 },
1121 contrast: function(a, b, c, d) {
1122 if (!a.rgb) return null;
1123 if ("undefined" == typeof c && (c = this.rgba(255, 255, 255, 1)), "undefined" == typeof b && (b = this.rgba(0, 0, 0, 1)), b.luma() > c.luma()) {
1124 var e = c;
1125 c = b, b = e
1126 }
1127 return d = "undefined" == typeof d ? .43 : j(d), a.luma() < d ? c : b
1128 },
1129 e: function(a) {
1130 return new d.Anonymous(a instanceof d.JavaScript ? a.evaluated : a)
1131 },
1132 escape: function(a) {
1133 return new d.Anonymous(encodeURI(a.value).replace(/=/g, "%3D").replace(/:/g, "%3A").replace(/#/g, "%23").replace(/;/g, "%3B").replace(/\(/g, "%28").replace(/\)/g, "%29"))
1134 },
1135 replace: function(a, b, c, e) {
1136 var f = a.value;
1137 return f = f.replace(new RegExp(b.value, e ? e.value : ""), c.value), new d.Quoted(a.quote || "", f, a.escaped)
1138 },
1139 "%": function(a) {
1140 for (var b = Array.prototype.slice.call(arguments, 1), c = a.value, e = 0; e < b.length; e++) c = c.replace(/%[sda]/i, function(a) {
1141 var c = a.match(/s/i) ? b[e].value : b[e].toCSS();
1142 return a.match(/[A-Z]$/) ? encodeURIComponent(c) : c
1143 });
1144 return c = c.replace(/%%/g, "%"), new d.Quoted(a.quote || "", c, a.escaped)
1145 },
1146 unit: function(a, b) {
1147 if (!(a instanceof d.Dimension)) throw {
1148 type: "Argument",
1149 message: "the first argument to unit must be a number" + (a instanceof d.Operation ? ". Have you forgotten parenthesis?" : "")
1150 };
1151 return b = b ? b instanceof d.Keyword ? b.value : b.toCSS() : "", new d.Dimension(a.value, b)
1152 },
1153 convert: function(a, b) {
1154 return a.convertTo(b.value)
1155 },
1156 round: function(a, b) {
1157 var c = "undefined" == typeof b ? 0 : b.value;
1158 return e(function(a) {
1159 return a.toFixed(c)
1160 }, null, a)
1161 },
1162 pi: function() {
1163 return new d.Dimension(Math.PI)
1164 },
1165 mod: function(a, b) {
1166 return new d.Dimension(a.value % b.value, a.unit)
1167 },
1168 pow: function(a, b) {
1169 if ("number" == typeof a && "number" == typeof b) a = new d.Dimension(a), b = new d.Dimension(b);
1170 else if (!(a instanceof d.Dimension && b instanceof d.Dimension)) throw {
1171 type: "Argument",
1172 message: "arguments must be numbers"
1173 };
1174 return new d.Dimension(Math.pow(a.value, b.value), a.unit)
1175 },
1176 _minmax: function(a, c) {
1177 switch (c = Array.prototype.slice.call(c), c.length) {
1178 case 0:
1179 throw {
1180 type: "Argument",
1181 message: "one or more arguments required"
1182 }
1183 }
1184 var e, f, g, h, i, j, k, l, m = [],
1185 n = {};
1186 for (e = 0; e < c.length; e++)
1187 if (g = c[e], g instanceof d.Dimension)
1188 if (h = "" === g.unit.toString() && l !== b ? new d.Dimension(g.value, l).unify() : g.unify(), j = "" === h.unit.toString() && k !== b ? k : h.unit.toString(), k = "" !== j && k === b || "" !== j && "" === m[0].unify().unit.toString() ? j : k, l = "" !== j && l === b ? g.unit.toString() : l, f = n[""] !== b && "" !== j && j === k ? n[""] : n[j], f !== b) i = "" === m[f].unit.toString() && l !== b ? new d.Dimension(m[f].value, l).unify() : m[f].unify(), (a && h.value < i.value || !a && h.value > i.value) && (m[f] = g);
1189 else {
1190 if (k !== b && j !== k) throw {
1191 type: "Argument",
1192 message: "incompatible types"
1193 };
1194 n[j] = m.length, m.push(g)
1195 } else Array.isArray(c[e].value) && Array.prototype.push.apply(c, Array.prototype.slice.call(c[e].value));
1196 return 1 == m.length ? m[0] : (c = m.map(function(a) {
1197 return a.toCSS(this.env)
1198 }).join(this.env.compress ? "," : ", "), new d.Anonymous((a ? "min" : "max") + "(" + c + ")"))
1199 },
1200 min: function() {
1201 return this._minmax(!0, arguments)
1202 },
1203 max: function() {
1204 return this._minmax(!1, arguments)
1205 },
1206 "get-unit": function(a) {
1207 return new d.Anonymous(a.unit)
1208 },
1209 argb: function(a) {
1210 return new d.Anonymous(a.toARGB())
1211 },
1212 percentage: function(a) {
1213 return new d.Dimension(100 * a.value, "%")
1214 },
1215 color: function(a) {
1216 if (a instanceof d.Quoted) {
1217 var b, c = a.value;
1218 if (b = d.Color.fromKeyword(c)) return b;
1219 if (/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/.test(c)) return new d.Color(c.slice(1));
1220 throw {
1221 type: "Argument",
1222 message: "argument must be a color keyword or 3/6 digit hex e.g. #FFF"
1223 }
1224 }
1225 throw {
1226 type: "Argument",
1227 message: "argument must be a string"
1228 }
1229 },
1230 iscolor: function(a) {
1231 return this._isa(a, d.Color)
1232 },
1233 isnumber: function(a) {
1234 return this._isa(a, d.Dimension)
1235 },
1236 isstring: function(a) {
1237 return this._isa(a, d.Quoted)
1238 },
1239 iskeyword: function(a) {
1240 return this._isa(a, d.Keyword)
1241 },
1242 isurl: function(a) {
1243 return this._isa(a, d.URL)
1244 },
1245 ispixel: function(a) {
1246 return this.isunit(a, "px")
1247 },
1248 ispercentage: function(a) {
1249 return this.isunit(a, "%")
1250 },
1251 isem: function(a) {
1252 return this.isunit(a, "em")
1253 },
1254 isunit: function(a, b) {
1255 return a instanceof d.Dimension && a.unit.is(b.value || b) ? d.True : d.False
1256 },
1257 _isa: function(a, b) {
1258 return a instanceof b ? d.True : d.False
1259 },
1260 tint: function(a, b) {
1261 return this.mix(this.rgb(255, 255, 255), a, b)
1262 },
1263 shade: function(a, b) {
1264 return this.mix(this.rgb(0, 0, 0), a, b)
1265 },
1266 extract: function(a, b) {
1267 return b = b.value - 1, Array.isArray(a.value) ? a.value[b] : Array(a)[b]
1268 },
1269 length: function(a) {
1270 var b = Array.isArray(a.value) ? a.value.length : 1;
1271 return new d.Dimension(b)
1272 },
1273 "data-uri": function(b, e) {
1274 if ("undefined" != typeof a) return new d.URL(e || b, this.currentFileInfo).eval(this.env);
1275 var f = b.value,
1276 g = e && e.value,
1277 h = c("fs"),
1278 i = c("path"),
1279 j = !1;
1280 if (arguments.length < 2 && (g = f), this.env.isPathRelative(g) && (g = this.currentFileInfo.relativeUrls ? i.join(this.currentFileInfo.currentDirectory, g) : i.join(this.currentFileInfo.entryPath, g)), arguments.length < 2) {
1281 var k;
1282 try {
1283 k = c("mime")
1284 } catch (l) {
1285 k = d._mime
1286 }
1287 f = k.lookup(g);
1288 var m = k.charsets.lookup(f);
1289 j = ["US-ASCII", "UTF-8"].indexOf(m) < 0, j && (f += ";base64")
1290 } else j = /;base64$/.test(f);
1291 var n = h.readFileSync(g),
1292 o = 32,
1293 p = parseInt(n.length / 1024, 10);
1294 if (p >= o && this.env.ieCompat !== !1) return this.env.silent || console.warn("Skipped data-uri embedding of %s because its size (%dKB) exceeds IE8-safe %dKB!", g, p, o), new d.URL(e || b, this.currentFileInfo).eval(this.env);
1295 n = j ? n.toString("base64") : encodeURIComponent(n);
1296 var q = '"data:' + f + "," + n + '"';
1297 return new d.URL(new d.Anonymous(q))
1298 },
1299 "svg-gradient": function(a) {
1300 function e() {
1301 throw {
1302 type: "Argument",
1303 message: "svg-gradient expects direction, start_color [start_position], [color position,]..., end_color [end_position]"
1304 }
1305 }
1306 arguments.length < 3 && e();
1307 var f, g, h, i, j, k, l, m = Array.prototype.slice.call(arguments, 1),
1308 n = "linear",
1309 o = 'x="0" y="0" width="1" height="1"',
1310 p = !0,
1311 q = {
1312 compress: !1
1313 },
1314 r = a.toCSS(q);
1315 switch (r) {
1316 case "to bottom":
1317 f = 'x1="0%" y1="0%" x2="0%" y2="100%"';
1318 break;
1319 case "to right":
1320 f = 'x1="0%" y1="0%" x2="100%" y2="0%"';
1321 break;
1322 case "to bottom right":
1323 f = 'x1="0%" y1="0%" x2="100%" y2="100%"';
1324 break;
1325 case "to top right":
1326 f = 'x1="0%" y1="100%" x2="100%" y2="0%"';
1327 break;
1328 case "ellipse":
1329 case "ellipse at center":
1330 n = "radial", f = 'cx="50%" cy="50%" r="75%"', o = 'x="-50" y="-50" width="101" height="101"';
1331 break;
1332 default:
1333 throw {
1334 type: "Argument",
1335 message: "svg-gradient direction must be 'to bottom', 'to right', 'to bottom right', 'to top right' or 'ellipse at center'"
1336 }
1337 }
1338 for (g = '<?xml version="1.0" ?><svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none"><' + n + 'Gradient id="gradient" gradientUnits="userSpaceOnUse" ' + f + ">", h = 0; h < m.length; h += 1) m[h].value ? (i = m[h].value[0], j = m[h].value[1]) : (i = m[h], j = b), i instanceof d.Color && ((0 === h || h + 1 === m.length) && j === b || j instanceof d.Dimension) || e(), k = j ? j.toCSS(q) : 0 === h ? "0%" : "100%", l = i.alpha, g += '<stop offset="' + k + '" stop-color="' + i.toRGB() + '"' + (1 > l ? ' stop-opacity="' + l + '"' : "") + "/>";
1339 if (g += "</" + n + "Gradient><rect " + o + ' fill="url(#gradient)" /></svg>', p) try {
1340 g = c("./encoder").encodeBase64(g)
1341 } catch (s) {
1342 p = !1
1343 }
1344 return g = "'data:image/svg+xml" + (p ? ";base64" : "") + "," + g + "'", new d.URL(new d.Anonymous(g))
1345 }
1346 }, d._mime = {
1347 _types: {
1348 ".htm": "text/html",
1349 ".html": "text/html",
1350 ".gif": "image/gif",
1351 ".jpg": "image/jpeg",
1352 ".jpeg": "image/jpeg",
1353 ".png": "image/png"
1354 },
1355 lookup: function(a) {
1356 var e = c("path").extname(a),
1357 f = d._mime._types[e];
1358 if (f === b) throw new Error('Optional dependency "mime" is required for ' + e);
1359 return f
1360 },
1361 charsets: {
1362 lookup: function(a) {
1363 return a && /^text\//.test(a) ? "UTF-8" : ""
1364 }
1365 }
1366 };
1367 var l = {
1368 ceil: null,
1369 floor: null,
1370 sqrt: null,
1371 abs: null,
1372 tan: "",
1373 sin: "",
1374 cos: "",
1375 atan: "rad",
1376 asin: "rad",
1377 acos: "rad"
1378 },
1379 m = {
1380 multiply: function(a, b) {
1381 return a * b
1382 },
1383 screen: function(a, b) {
1384 return a + b - a * b
1385 },
1386 overlay: function(a, b) {
1387 return a *= 2, 1 >= a ? m.multiply(a, b) : m.screen(a - 1, b)
1388 },
1389 softlight: function(a, b) {
1390 var c = 1,
1391 d = a;
1392 return b > .5 && (d = 1, c = a > .25 ? Math.sqrt(a) : ((16 * a - 12) * a + 4) * a), a - (1 - 2 * b) * d * (c - a)
1393 },
1394 hardlight: function(a, b) {
1395 return m.overlay(b, a)
1396 },
1397 difference: function(a, b) {
1398 return Math.abs(a - b)
1399 },
1400 exclusion: function(a, b) {
1401 return a + b - 2 * a * b
1402 },
1403 average: function(a, b) {
1404 return (a + b) / 2
1405 },
1406 negation: function(a, b) {
1407 return 1 - Math.abs(a + b - 1)
1408 }
1409 };
1410 d.defaultFunc = {
1411 eval: function() {
1412 var a = this.value_,
1413 b = this.error_;
1414 if (b) throw b;
1415 return null != a ? a ? d.True : d.False : void 0
1416 },
1417 value: function(a) {
1418 this.value_ = a
1419 },
1420 error: function(a) {
1421 this.error_ = a
1422 },
1423 reset: function() {
1424 this.value_ = this.error_ = null
1425 }
1426 }, g(), d.fround = function(a, b) {
1427 var c;
1428 return a && null != a.numPrecision ? (c = Math.pow(10, a.numPrecision), Math.round(b * c) / c) : b
1429 }, d.functionCall = function(a, b) {
1430 this.env = a, this.currentFileInfo = b
1431 }, d.functionCall.prototype = d.functions
1432 }(c("./tree")),
1433 function(a) {
1434 a.colors = {
1435 aliceblue: "#f0f8ff",
1436 antiquewhite: "#faebd7",
1437 aqua: "#00ffff",
1438 aquamarine: "#7fffd4",
1439 azure: "#f0ffff",
1440 beige: "#f5f5dc",
1441 bisque: "#ffe4c4",
1442 black: "#000000",
1443 blanchedalmond: "#ffebcd",
1444 blue: "#0000ff",
1445 blueviolet: "#8a2be2",
1446 brown: "#a52a2a",
1447 burlywood: "#deb887",
1448 cadetblue: "#5f9ea0",
1449 chartreuse: "#7fff00",
1450 chocolate: "#d2691e",
1451 coral: "#ff7f50",
1452 cornflowerblue: "#6495ed",
1453 cornsilk: "#fff8dc",
1454 crimson: "#dc143c",
1455 cyan: "#00ffff",
1456 darkblue: "#00008b",
1457 darkcyan: "#008b8b",
1458 darkgoldenrod: "#b8860b",
1459 darkgray: "#a9a9a9",
1460 darkgrey: "#a9a9a9",
1461 darkgreen: "#006400",
1462 darkkhaki: "#bdb76b",
1463 darkmagenta: "#8b008b",
1464 darkolivegreen: "#556b2f",
1465 darkorange: "#ff8c00",
1466 darkorchid: "#9932cc",
1467 darkred: "#8b0000",
1468 darksalmon: "#e9967a",
1469 darkseagreen: "#8fbc8f",
1470 darkslateblue: "#483d8b",
1471 darkslategray: "#2f4f4f",
1472 darkslategrey: "#2f4f4f",
1473 darkturquoise: "#00ced1",
1474 darkviolet: "#9400d3",
1475 deeppink: "#ff1493",
1476 deepskyblue: "#00bfff",
1477 dimgray: "#696969",
1478 dimgrey: "#696969",
1479 dodgerblue: "#1e90ff",
1480 firebrick: "#b22222",
1481 floralwhite: "#fffaf0",
1482 forestgreen: "#228b22",
1483 fuchsia: "#ff00ff",
1484 gainsboro: "#dcdcdc",
1485 ghostwhite: "#f8f8ff",
1486 gold: "#ffd700",
1487 goldenrod: "#daa520",
1488 gray: "#808080",
1489 grey: "#808080",
1490 green: "#008000",
1491 greenyellow: "#adff2f",
1492 honeydew: "#f0fff0",
1493 hotpink: "#ff69b4",
1494 indianred: "#cd5c5c",
1495 indigo: "#4b0082",
1496 ivory: "#fffff0",
1497 khaki: "#f0e68c",
1498 lavender: "#e6e6fa",
1499 lavenderblush: "#fff0f5",
1500 lawngreen: "#7cfc00",
1501 lemonchiffon: "#fffacd",
1502 lightblue: "#add8e6",
1503 lightcoral: "#f08080",
1504 lightcyan: "#e0ffff",
1505 lightgoldenrodyellow: "#fafad2",
1506 lightgray: "#d3d3d3",
1507 lightgrey: "#d3d3d3",
1508 lightgreen: "#90ee90",
1509 lightpink: "#ffb6c1",
1510 lightsalmon: "#ffa07a",
1511 lightseagreen: "#20b2aa",
1512 lightskyblue: "#87cefa",
1513 lightslategray: "#778899",
1514 lightslategrey: "#778899",
1515 lightsteelblue: "#b0c4de",
1516 lightyellow: "#ffffe0",
1517 lime: "#00ff00",
1518 limegreen: "#32cd32",
1519 linen: "#faf0e6",
1520 magenta: "#ff00ff",
1521 maroon: "#800000",
1522 mediumaquamarine: "#66cdaa",
1523 mediumblue: "#0000cd",
1524 mediumorchid: "#ba55d3",
1525 mediumpurple: "#9370d8",
1526 mediumseagreen: "#3cb371",
1527 mediumslateblue: "#7b68ee",
1528 mediumspringgreen: "#00fa9a",
1529 mediumturquoise: "#48d1cc",
1530 mediumvioletred: "#c71585",
1531 midnightblue: "#191970",
1532 mintcream: "#f5fffa",
1533 mistyrose: "#ffe4e1",
1534 moccasin: "#ffe4b5",
1535 navajowhite: "#ffdead",
1536 navy: "#000080",
1537 oldlace: "#fdf5e6",
1538 olive: "#808000",
1539 olivedrab: "#6b8e23",
1540 orange: "#ffa500",
1541 orangered: "#ff4500",
1542 orchid: "#da70d6",
1543 palegoldenrod: "#eee8aa",
1544 palegreen: "#98fb98",
1545 paleturquoise: "#afeeee",
1546 palevioletred: "#d87093",
1547 papayawhip: "#ffefd5",
1548 peachpuff: "#ffdab9",
1549 peru: "#cd853f",
1550 pink: "#ffc0cb",
1551 plum: "#dda0dd",
1552 powderblue: "#b0e0e6",
1553 purple: "#800080",
1554 red: "#ff0000",
1555 rosybrown: "#bc8f8f",
1556 royalblue: "#4169e1",
1557 saddlebrown: "#8b4513",
1558 salmon: "#fa8072",
1559 sandybrown: "#f4a460",
1560 seagreen: "#2e8b57",
1561 seashell: "#fff5ee",
1562 sienna: "#a0522d",
1563 silver: "#c0c0c0",
1564 skyblue: "#87ceeb",
1565 slateblue: "#6a5acd",
1566 slategray: "#708090",
1567 slategrey: "#708090",
1568 snow: "#fffafa",
1569 springgreen: "#00ff7f",
1570 steelblue: "#4682b4",
1571 tan: "#d2b48c",
1572 teal: "#008080",
1573 thistle: "#d8bfd8",
1574 tomato: "#ff6347",
1575 turquoise: "#40e0d0",
1576 violet: "#ee82ee",
1577 wheat: "#f5deb3",
1578 white: "#ffffff",
1579 whitesmoke: "#f5f5f5",
1580 yellow: "#ffff00",
1581 yellowgreen: "#9acd32"
1582 }
1583 }(c("./tree")),
1584 function(a) {
1585 a.debugInfo = function(b, c, d) {
1586 var e = "";
1587 if (b.dumpLineNumbers && !b.compress) switch (b.dumpLineNumbers) {
1588 case "comments":
1589 e = a.debugInfo.asComment(c);
1590 break;
1591 case "mediaquery":
1592 e = a.debugInfo.asMediaQuery(c);
1593 break;
1594 case "all":
1595 e = a.debugInfo.asComment(c) + (d || "") + a.debugInfo.asMediaQuery(c)
1596 }
1597 return e
1598 }, a.debugInfo.asComment = function(a) {
1599 return "/* line " + a.debugInfo.lineNumber + ", " + a.debugInfo.fileName + " */\n"
1600 }, a.debugInfo.asMediaQuery = function(a) {
1601 return "@media -sass-debug-info{filename{font-family:" + ("file://" + a.debugInfo.fileName).replace(/([.:\/\\])/g, function(a) {
1602 return "\\" == a && (a = "/"), "\\" + a
1603 }) + "}line{font-family:\\00003" + a.debugInfo.lineNumber + "}}\n"
1604 }, a.find = function(a, b) {
1605 for (var c, d = 0; d < a.length; d++)
1606 if (c = b.call(a, a[d])) return c;
1607 return null
1608 }, a.jsify = function(a) {
1609 return Array.isArray(a.value) && a.value.length > 1 ? "[" + a.value.map(function(a) {
1610 return a.toCSS(!1)
1611 }).join(", ") + "]" : a.toCSS(!1)
1612 }, a.toCSS = function(a) {
1613 var b = [];
1614 return this.genCSS(a, {
1615 add: function(a) {
1616 b.push(a)
1617 },
1618 isEmpty: function() {
1619 return 0 === b.length
1620 }
1621 }), b.join("")
1622 }, a.outputRuleset = function(a, b, c) {
1623 var d, e = c.length;
1624 if (a.tabLevel = (0 | a.tabLevel) + 1, a.compress) {
1625 for (b.add("{"), d = 0; e > d; d++) c[d].genCSS(a, b);
1626 return b.add("}"), void a.tabLevel--
1627 }
1628 var f = "\n" + Array(a.tabLevel).join(" "),
1629 g = f + " ";
1630 if (e) {
1631 for (b.add(" {" + g), c[0].genCSS(a, b), d = 1; e > d; d++) b.add(g), c[d].genCSS(a, b);
1632 b.add(f + "}")
1633 } else b.add(" {" + f + "}");
1634 a.tabLevel--
1635 }
1636 }(c("./tree")),
1637 function(a) {
1638 a.Alpha = function(a) {
1639 this.value = a
1640 }, a.Alpha.prototype = {
1641 type: "Alpha",
1642 accept: function(a) {
1643 this.value = a.visit(this.value)
1644 },
1645 eval: function(b) {
1646 return this.value.eval ? new a.Alpha(this.value.eval(b)) : this
1647 },
1648 genCSS: function(a, b) {
1649 b.add("alpha(opacity="), this.value.genCSS ? this.value.genCSS(a, b) : b.add(this.value), b.add(")")
1650 },
1651 toCSS: a.toCSS
1652 }
1653 }(c("../tree")),
1654 function(a) {
1655 a.Anonymous = function(a, b, c, d) {
1656 this.value = a.value || a, this.index = b, this.mapLines = d, this.currentFileInfo = c
1657 }, a.Anonymous.prototype = {
1658 type: "Anonymous",
1659 eval: function() {
1660 return new a.Anonymous(this.value, this.index, this.currentFileInfo, this.mapLines)
1661 },
1662 compare: function(a) {
1663 if (!a.toCSS) return -1;
1664 var b = this.toCSS(),
1665 c = a.toCSS();
1666 return b === c ? 0 : c > b ? -1 : 1
1667 },
1668 genCSS: function(a, b) {
1669 b.add(this.value, this.currentFileInfo, this.index, this.mapLines)
1670 },
1671 toCSS: a.toCSS
1672 }
1673 }(c("../tree")),
1674 function(a) {
1675 a.Assignment = function(a, b) {
1676 this.key = a, this.value = b
1677 }, a.Assignment.prototype = {
1678 type: "Assignment",
1679 accept: function(a) {
1680 this.value = a.visit(this.value)
1681 },
1682 eval: function(b) {
1683 return this.value.eval ? new a.Assignment(this.key, this.value.eval(b)) : this
1684 },
1685 genCSS: function(a, b) {
1686 b.add(this.key + "="), this.value.genCSS ? this.value.genCSS(a, b) : b.add(this.value)
1687 },
1688 toCSS: a.toCSS
1689 }
1690 }(c("../tree")),
1691 function(a) {
1692 a.Call = function(a, b, c, d) {
1693 this.name = a, this.args = b, this.index = c, this.currentFileInfo = d
1694 }, a.Call.prototype = {
1695 type: "Call",
1696 accept: function(a) {
1697 this.args && (this.args = a.visitArray(this.args))
1698 },
1699 eval: function(b) {
1700 var c, d, e = this.args.map(function(a) {
1701 return a.eval(b)
1702 }),
1703 f = this.name.toLowerCase();
1704 if (f in a.functions) try {
1705 if (d = new a.functionCall(b, this.currentFileInfo), c = d[f].apply(d, e), null != c) return c
1706 } catch (g) {
1707 throw {
1708 type: g.type || "Runtime",
1709 message: "error evaluating function `" + this.name + "`" + (g.message ? ": " + g.message : ""),
1710 index: this.index,
1711 filename: this.currentFileInfo.filename
1712 }
1713 }
1714 return new a.Call(this.name, e, this.index, this.currentFileInfo)
1715 },
1716 genCSS: function(a, b) {
1717 b.add(this.name + "(", this.currentFileInfo, this.index);
1718 for (var c = 0; c < this.args.length; c++) this.args[c].genCSS(a, b), c + 1 < this.args.length && b.add(", ");
1719 b.add(")")
1720 },
1721 toCSS: a.toCSS
1722 }
1723 }(c("../tree")),
1724 function(a) {
1725 function b(a) {
1726 return "#" + a.map(function(a) {
1727 return a = c(Math.round(a), 255), (16 > a ? "0" : "") + a.toString(16)
1728 }).join("")
1729 }
1730
1731 function c(a, b) {
1732 return Math.min(Math.max(a, 0), b)
1733 }
1734 a.Color = function(a, b) {
1735 this.rgb = Array.isArray(a) ? a : 6 == a.length ? a.match(/.{2}/g).map(function(a) {
1736 return parseInt(a, 16)
1737 }) : a.split("").map(function(a) {
1738 return parseInt(a + a, 16)
1739 }), this.alpha = "number" == typeof b ? b : 1
1740 };
1741 var d = "transparent";
1742 a.Color.prototype = {
1743 type: "Color",
1744 eval: function() {
1745 return this
1746 },
1747 luma: function() {
1748 var a = this.rgb[0] / 255,
1749 b = this.rgb[1] / 255,
1750 c = this.rgb[2] / 255;
1751 return a = .03928 >= a ? a / 12.92 : Math.pow((a + .055) / 1.055, 2.4), b = .03928 >= b ? b / 12.92 : Math.pow((b + .055) / 1.055, 2.4), c = .03928 >= c ? c / 12.92 : Math.pow((c + .055) / 1.055, 2.4), .2126 * a + .7152 * b + .0722 * c
1752 },
1753 genCSS: function(a, b) {
1754 b.add(this.toCSS(a))
1755 },
1756 toCSS: function(b, e) {
1757 var f = b && b.compress && !e,
1758 g = a.fround(b, this.alpha);
1759 if (1 > g) return 0 === g && this.isTransparentKeyword ? d : "rgba(" + this.rgb.map(function(a) {
1760 return c(Math.round(a), 255)
1761 }).concat(c(g, 1)).join("," + (f ? "" : " ")) + ")";
1762 var h = this.toRGB();
1763 if (f) {
1764 var i = h.split("");
1765 i[1] === i[2] && i[3] === i[4] && i[5] === i[6] && (h = "#" + i[1] + i[3] + i[5])
1766 }
1767 return h
1768 },
1769 operate: function(b, c, d) {
1770 for (var e = [], f = this.alpha * (1 - d.alpha) + d.alpha, g = 0; 3 > g; g++) e[g] = a.operate(b, c, this.rgb[g], d.rgb[g]);
1771 return new a.Color(e, f)
1772 },
1773 toRGB: function() {
1774 return b(this.rgb)
1775 },
1776 toHSL: function() {
1777 var a, b, c = this.rgb[0] / 255,
1778 d = this.rgb[1] / 255,
1779 e = this.rgb[2] / 255,
1780 f = this.alpha,
1781 g = Math.max(c, d, e),
1782 h = Math.min(c, d, e),
1783 i = (g + h) / 2,
1784 j = g - h;
1785 if (g === h) a = b = 0;
1786 else {
1787 switch (b = i > .5 ? j / (2 - g - h) : j / (g + h), g) {
1788 case c:
1789 a = (d - e) / j + (e > d ? 6 : 0);
1790 break;
1791 case d:
1792 a = (e - c) / j + 2;
1793 break;
1794 case e:
1795 a = (c - d) / j + 4
1796 }
1797 a /= 6
1798 }
1799 return {
1800 h: 360 * a,
1801 s: b,
1802 l: i,
1803 a: f
1804 }
1805 },
1806 toHSV: function() {
1807 var a, b, c = this.rgb[0] / 255,
1808 d = this.rgb[1] / 255,
1809 e = this.rgb[2] / 255,
1810 f = this.alpha,
1811 g = Math.max(c, d, e),
1812 h = Math.min(c, d, e),
1813 i = g,
1814 j = g - h;
1815 if (b = 0 === g ? 0 : j / g, g === h) a = 0;
1816 else {
1817 switch (g) {
1818 case c:
1819 a = (d - e) / j + (e > d ? 6 : 0);
1820 break;
1821 case d:
1822 a = (e - c) / j + 2;
1823 break;
1824 case e:
1825 a = (c - d) / j + 4
1826 }
1827 a /= 6
1828 }
1829 return {
1830 h: 360 * a,
1831 s: b,
1832 v: i,
1833 a: f
1834 }
1835 },
1836 toARGB: function() {
1837 return b([255 * this.alpha].concat(this.rgb))
1838 },
1839 compare: function(a) {
1840 return a.rgb ? a.rgb[0] === this.rgb[0] && a.rgb[1] === this.rgb[1] && a.rgb[2] === this.rgb[2] && a.alpha === this.alpha ? 0 : -1 : -1
1841 }
1842 }, a.Color.fromKeyword = function(b) {
1843 if (b = b.toLowerCase(), a.colors.hasOwnProperty(b)) return new a.Color(a.colors[b].slice(1));
1844 if (b === d) {
1845 var c = new a.Color([0, 0, 0], 0);
1846 return c.isTransparentKeyword = !0, c
1847 }
1848 }
1849 }(c("../tree")),
1850 function(a) {
1851 a.Comment = function(a, b, c, d) {
1852 this.value = a, this.silent = !!b, this.currentFileInfo = d
1853 }, a.Comment.prototype = {
1854 type: "Comment",
1855 genCSS: function(b, c) {
1856 this.debugInfo && c.add(a.debugInfo(b, this), this.currentFileInfo, this.index), c.add(this.value.trim())
1857 },
1858 toCSS: a.toCSS,
1859 isSilent: function(a) {
1860 var b = this.currentFileInfo && this.currentFileInfo.reference && !this.isReferenced,
1861 c = a.compress && !this.value.match(/^\/\*!/);
1862 return this.silent || b || c
1863 },
1864 eval: function() {
1865 return this
1866 },
1867 markReferenced: function() {
1868 this.isReferenced = !0
1869 }
1870 }
1871 }(c("../tree")),
1872 function(a) {
1873 a.Condition = function(a, b, c, d, e) {
1874 this.op = a.trim(), this.lvalue = b, this.rvalue = c, this.index = d, this.negate = e
1875 }, a.Condition.prototype = {
1876 type: "Condition",
1877 accept: function(a) {
1878 this.lvalue = a.visit(this.lvalue), this.rvalue = a.visit(this.rvalue)
1879 },
1880 eval: function(a) {
1881 var b, c = this.lvalue.eval(a),
1882 d = this.rvalue.eval(a),
1883 e = this.index;
1884 return b = function(a) {
1885 switch (a) {
1886 case "and":
1887 return c && d;
1888 case "or":
1889 return c || d;
1890 default:
1891 if (c.compare) b = c.compare(d);
1892 else {
1893 if (!d.compare) throw {
1894 type: "Type",
1895 message: "Unable to perform comparison",
1896 index: e
1897 };
1898 b = d.compare(c)
1899 }
1900 switch (b) {
1901 case -1:
1902 return "<" === a || "=<" === a || "<=" === a;
1903 case 0:
1904 return "=" === a || ">=" === a || "=<" === a || "<=" === a;
1905 case 1:
1906 return ">" === a || ">=" === a
1907 }
1908 }
1909 }(this.op), this.negate ? !b : b
1910 }
1911 }
1912 }(c("../tree")),
1913 function(a) {
1914 a.DetachedRuleset = function(a, b) {
1915 this.ruleset = a, this.frames = b
1916 }, a.DetachedRuleset.prototype = {
1917 type: "DetachedRuleset",
1918 accept: function(a) {
1919 this.ruleset = a.visit(this.ruleset)
1920 },
1921 eval: function(b) {
1922 var c = this.frames || b.frames.slice(0);
1923 return new a.DetachedRuleset(this.ruleset, c)
1924 },
1925 callEval: function(b) {
1926 return this.ruleset.eval(this.frames ? new a.evalEnv(b, this.frames.concat(b.frames)) : b)
1927 }
1928 }
1929 }(c("../tree")),
1930 function(a) {
1931 a.Dimension = function(c, d) {
1932 this.value = parseFloat(c), this.unit = d && d instanceof a.Unit ? d : new a.Unit(d ? [d] : b)
1933 }, a.Dimension.prototype = {
1934 type: "Dimension",
1935 accept: function(a) {
1936 this.unit = a.visit(this.unit)
1937 },
1938 eval: function() {
1939 return this
1940 },
1941 toColor: function() {
1942 return new a.Color([this.value, this.value, this.value])
1943 },
1944 genCSS: function(b, c) {
1945 if (b && b.strictUnits && !this.unit.isSingular()) throw new Error("Multiple units in dimension. Correct the units or use the unit function. Bad unit: " + this.unit.toString());
1946 var d = a.fround(b, this.value),
1947 e = String(d);
1948 if (0 !== d && 1e-6 > d && d > -1e-6 && (e = d.toFixed(20).replace(/0+$/, "")), b && b.compress) {
1949 if (0 === d && this.unit.isLength()) return void c.add(e);
1950 d > 0 && 1 > d && (e = e.substr(1))
1951 }
1952 c.add(e), this.unit.genCSS(b, c)
1953 },
1954 toCSS: a.toCSS,
1955 operate: function(b, c, d) {
1956 var e = a.operate(b, c, this.value, d.value),
1957 f = this.unit.clone();
1958 if ("+" === c || "-" === c)
1959 if (0 === f.numerator.length && 0 === f.denominator.length) f.numerator = d.unit.numerator.slice(0), f.denominator = d.unit.denominator.slice(0);
1960 else if (0 === d.unit.numerator.length && 0 === f.denominator.length);
1961 else {
1962 if (d = d.convertTo(this.unit.usedUnits()), b.strictUnits && d.unit.toString() !== f.toString()) throw new Error("Incompatible units. Change the units or use the unit function. Bad units: '" + f.toString() + "' and '" + d.unit.toString() + "'.");
1963 e = a.operate(b, c, this.value, d.value)
1964 } else "*" === c ? (f.numerator = f.numerator.concat(d.unit.numerator).sort(), f.denominator = f.denominator.concat(d.unit.denominator).sort(), f.cancel()) : "/" === c && (f.numerator = f.numerator.concat(d.unit.denominator).sort(), f.denominator = f.denominator.concat(d.unit.numerator).sort(), f.cancel());
1965 return new a.Dimension(e, f)
1966 },
1967 compare: function(b) {
1968 if (b instanceof a.Dimension) {
1969 var c, d, e, f;
1970 if (this.unit.isEmpty() || b.unit.isEmpty()) c = this, d = b;
1971 else if (c = this.unify(), d = b.unify(), 0 !== c.unit.compare(d.unit)) return -1;
1972 return e = c.value, f = d.value, f > e ? -1 : e > f ? 1 : 0
1973 }
1974 return -1
1975 },
1976 unify: function() {
1977 return this.convertTo({
1978 length: "px",
1979 duration: "s",
1980 angle: "rad"
1981 })
1982 },
1983 convertTo: function(b) {
1984 var c, d, e, f, g, h = this.value,
1985 i = this.unit.clone(),
1986 j = {};
1987 if ("string" == typeof b) {
1988 for (c in a.UnitConversions) a.UnitConversions[c].hasOwnProperty(b) && (j = {}, j[c] = b);
1989 b = j
1990 }
1991 g = function(a, b) {
1992 return e.hasOwnProperty(a) ? (b ? h /= e[a] / e[f] : h *= e[a] / e[f], f) : a
1993 };
1994 for (d in b) b.hasOwnProperty(d) && (f = b[d], e = a.UnitConversions[d], i.map(g));
1995 return i.cancel(), new a.Dimension(h, i)
1996 }
1997 }, a.UnitConversions = {
1998 length: {
1999 m: 1,
2000 cm: .01,
2001 mm: .001,
2002 "in": .0254,
2003 px: .0254 / 96,
2004 pt: .0254 / 72,
2005 pc: .0254 / 72 * 12
2006 },
2007 duration: {
2008 s: 1,
2009 ms: .001
2010 },
2011 angle: {
2012 rad: 1 / (2 * Math.PI),
2013 deg: 1 / 360,
2014 grad: .0025,
2015 turn: 1
2016 }
2017 }, a.Unit = function(a, b, c) {
2018 this.numerator = a ? a.slice(0).sort() : [], this.denominator = b ? b.slice(0).sort() : [], this.backupUnit = c
2019 }, a.Unit.prototype = {
2020 type: "Unit",
2021 clone: function() {
2022 return new a.Unit(this.numerator.slice(0), this.denominator.slice(0), this.backupUnit)
2023 },
2024 genCSS: function(a, b) {
2025 this.numerator.length >= 1 ? b.add(this.numerator[0]) : this.denominator.length >= 1 ? b.add(this.denominator[0]) : a && a.strictUnits || !this.backupUnit || b.add(this.backupUnit)
2026 },
2027 toCSS: a.toCSS,
2028 toString: function() {
2029 var a, b = this.numerator.join("*");
2030 for (a = 0; a < this.denominator.length; a++) b += "/" + this.denominator[a];
2031 return b
2032 },
2033 compare: function(a) {
2034 return this.is(a.toString()) ? 0 : -1
2035 },
2036 is: function(a) {
2037 return this.toString() === a
2038 },
2039 isLength: function() {
2040 return Boolean(this.toCSS().match(/px|em|%|in|cm|mm|pc|pt|ex/))
2041 },
2042 isEmpty: function() {
2043 return 0 === this.numerator.length && 0 === this.denominator.length
2044 },
2045 isSingular: function() {
2046 return this.numerator.length <= 1 && 0 === this.denominator.length
2047 },
2048 map: function(a) {
2049 var b;
2050 for (b = 0; b < this.numerator.length; b++) this.numerator[b] = a(this.numerator[b], !1);
2051 for (b = 0; b < this.denominator.length; b++) this.denominator[b] = a(this.denominator[b], !0)
2052 },
2053 usedUnits: function() {
2054 var b, c, d = {};
2055 c = function(a) {
2056 return b.hasOwnProperty(a) && !d[e] && (d[e] = a), a
2057 };
2058 for (var e in a.UnitConversions) a.UnitConversions.hasOwnProperty(e) && (b = a.UnitConversions[e], this.map(c));
2059 return d
2060 },
2061 cancel: function() {
2062 var a, b, c, d = {};
2063 for (b = 0; b < this.numerator.length; b++) a = this.numerator[b], c || (c = a), d[a] = (d[a] || 0) + 1;
2064 for (b = 0; b < this.denominator.length; b++) a = this.denominator[b], c || (c = a), d[a] = (d[a] || 0) - 1;
2065 this.numerator = [], this.denominator = [];
2066 for (a in d)
2067 if (d.hasOwnProperty(a)) {
2068 var e = d[a];
2069 if (e > 0)
2070 for (b = 0; e > b; b++) this.numerator.push(a);
2071 else if (0 > e)
2072 for (b = 0; - e > b; b++) this.denominator.push(a)
2073 }
2074 0 === this.numerator.length && 0 === this.denominator.length && c && (this.backupUnit = c), this.numerator.sort(), this.denominator.sort()
2075 }
2076 }
2077 }(c("../tree")),
2078 function(a) {
2079 a.Directive = function(a, b, c, d, e, f) {
2080 this.name = a, this.value = b, c && (this.rules = c, this.rules.allowImports = !0), this.index = d, this.currentFileInfo = e, this.debugInfo = f
2081 }, a.Directive.prototype = {
2082 type: "Directive",
2083 accept: function(a) {
2084 var b = this.value,
2085 c = this.rules;
2086 c && (c = a.visit(c)), b && (b = a.visit(b))
2087 },
2088 genCSS: function(b, c) {
2089 var d = this.value,
2090 e = this.rules;
2091 c.add(this.name, this.currentFileInfo, this.index), d && (c.add(" "), d.genCSS(b, c)), e ? a.outputRuleset(b, c, [e]) : c.add(";")
2092 },
2093 toCSS: a.toCSS,
2094 eval: function(b) {
2095 var c = this.value,
2096 d = this.rules;
2097 return c && (c = c.eval(b)), d && (d = d.eval(b), d.root = !0), new a.Directive(this.name, c, d, this.index, this.currentFileInfo, this.debugInfo)
2098 },
2099 variable: function(b) {
2100 return this.rules ? a.Ruleset.prototype.variable.call(this.rules, b) : void 0
2101 },
2102 find: function() {
2103 return this.rules ? a.Ruleset.prototype.find.apply(this.rules, arguments) : void 0
2104 },
2105 rulesets: function() {
2106 return this.rules ? a.Ruleset.prototype.rulesets.apply(this.rules) : void 0
2107 },
2108 markReferenced: function() {
2109 var a, b;
2110 if (this.isReferenced = !0, this.rules)
2111 for (b = this.rules.rules, a = 0; a < b.length; a++) b[a].markReferenced && b[a].markReferenced()
2112 }
2113 }
2114 }(c("../tree")),
2115 function(a) {
2116 a.Element = function(b, c, d, e) {
2117 this.combinator = b instanceof a.Combinator ? b : new a.Combinator(b), this.value = "string" == typeof c ? c.trim() : c ? c : "", this.index = d, this.currentFileInfo = e
2118 }, a.Element.prototype = {
2119 type: "Element",
2120 accept: function(a) {
2121 var b = this.value;
2122 this.combinator = a.visit(this.combinator), "object" == typeof b && (this.value = a.visit(b))
2123 },
2124 eval: function(b) {
2125 return new a.Element(this.combinator, this.value.eval ? this.value.eval(b) : this.value, this.index, this.currentFileInfo)
2126 },
2127 genCSS: function(a, b) {
2128 b.add(this.toCSS(a), this.currentFileInfo, this.index)
2129 },
2130 toCSS: function(a) {
2131 var b = this.value.toCSS ? this.value.toCSS(a) : this.value;
2132 return "" === b && "&" === this.combinator.value.charAt(0) ? "" : this.combinator.toCSS(a || {}) + b
2133 }
2134 }, a.Attribute = function(a, b, c) {
2135 this.key = a, this.op = b, this.value = c
2136 }, a.Attribute.prototype = {
2137 type: "Attribute",
2138 eval: function(b) {
2139 return new a.Attribute(this.key.eval ? this.key.eval(b) : this.key, this.op, this.value && this.value.eval ? this.value.eval(b) : this.value)
2140 },
2141 genCSS: function(a, b) {
2142 b.add(this.toCSS(a))
2143 },
2144 toCSS: function(a) {
2145 var b = this.key.toCSS ? this.key.toCSS(a) : this.key;
2146 return this.op && (b += this.op, b += this.value.toCSS ? this.value.toCSS(a) : this.value), "[" + b + "]"
2147 }
2148 }, a.Combinator = function(a) {
2149 this.value = " " === a ? " " : a ? a.trim() : ""
2150 }, a.Combinator.prototype = {
2151 type: "Combinator",
2152 _outputMap: {
2153 "": "",
2154 " ": " ",
2155 ":": " :",
2156 "+": " + ",
2157 "~": " ~ ",
2158 ">": " > ",
2159 "|": "|",
2160 "^": " ^ ",
2161 "^^": " ^^ "
2162 },
2163 _outputMapCompressed: {
2164 "": "",
2165 " ": " ",
2166 ":": " :",
2167 "+": "+",
2168 "~": "~",
2169 ">": ">",
2170 "|": "|",
2171 "^": "^",
2172 "^^": "^^"
2173 },
2174 genCSS: function(a, b) {
2175 b.add((a.compress ? this._outputMapCompressed : this._outputMap)[this.value])
2176 },
2177 toCSS: a.toCSS
2178 }
2179 }(c("../tree")),
2180 function(a) {
2181 a.Expression = function(a) {
2182 this.value = a
2183 }, a.Expression.prototype = {
2184 type: "Expression",
2185 accept: function(a) {
2186 this.value && (this.value = a.visitArray(this.value))
2187 },
2188 eval: function(b) {
2189 var c, d = this.parens && !this.parensInOp,
2190 e = !1;
2191 return d && b.inParenthesis(), this.value.length > 1 ? c = new a.Expression(this.value.map(function(a) {
2192 return a.eval(b)
2193 })) : 1 === this.value.length ? (this.value[0].parens && !this.value[0].parensInOp && (e = !0), c = this.value[0].eval(b)) : c = this, d && b.outOfParenthesis(), this.parens && this.parensInOp && !b.isMathOn() && !e && (c = new a.Paren(c)), c
2194 },
2195 genCSS: function(a, b) {
2196 for (var c = 0; c < this.value.length; c++) this.value[c].genCSS(a, b), c + 1 < this.value.length && b.add(" ")
2197 },
2198 toCSS: a.toCSS,
2199 throwAwayComments: function() {
2200 this.value = this.value.filter(function(b) {
2201 return !(b instanceof a.Comment)
2202 })
2203 }
2204 }
2205 }(c("../tree")),
2206 function(a) {
2207 a.Extend = function(b, c, d) {
2208 switch (this.selector = b, this.option = c, this.index = d, this.object_id = a.Extend.next_id++, this.parent_ids = [this.object_id], c) {
2209 case "all":
2210 this.allowBefore = !0, this.allowAfter = !0;
2211 break;
2212 default:
2213 this.allowBefore = !1, this.allowAfter = !1
2214 }
2215 }, a.Extend.next_id = 0, a.Extend.prototype = {
2216 type: "Extend",
2217 accept: function(a) {
2218 this.selector = a.visit(this.selector)
2219 },
2220 eval: function(b) {
2221 return new a.Extend(this.selector.eval(b), this.option, this.index)
2222 },
2223 clone: function() {
2224 return new a.Extend(this.selector, this.option, this.index)
2225 },
2226 findSelfSelectors: function(a) {
2227 var b, c, d = [];
2228 for (b = 0; b < a.length; b++) c = a[b].elements, b > 0 && c.length && "" === c[0].combinator.value && (c[0].combinator.value = " "), d = d.concat(a[b].elements);
2229 this.selfSelectors = [{
2230 elements: d
2231 }]
2232 }
2233 }
2234 }(c("../tree")),
2235 function(a) {
2236 a.Import = function(a, c, d, e, f) {
2237 if (this.options = d, this.index = e, this.path = a, this.features = c, this.currentFileInfo = f, this.options.less !== b || this.options.inline) this.css = !this.options.less || this.options.inline;
2238 else {
2239 var g = this.getPath();
2240 g && /css([\?;].*)?$/.test(g) && (this.css = !0)
2241 }
2242 }, a.Import.prototype = {
2243 type: "Import",
2244 accept: function(a) {
2245 this.features && (this.features = a.visit(this.features)), this.path = a.visit(this.path), !this.options.inline && this.root && (this.root = a.visit(this.root))
2246 },
2247 genCSS: function(a, b) {
2248 this.css && (b.add("@import ", this.currentFileInfo, this.index), this.path.genCSS(a, b), this.features && (b.add(" "), this.features.genCSS(a, b)), b.add(";"))
2249 },
2250 toCSS: a.toCSS,
2251 getPath: function() {
2252 if (this.path instanceof a.Quoted) {
2253 var c = this.path.value;
2254 return this.css !== b || /(\.[a-z]*$)|([\?;].*)$/.test(c) ? c : c + ".less"
2255 }
2256 return this.path instanceof a.URL ? this.path.value.value : null
2257 },
2258 evalForImport: function(b) {
2259 return new a.Import(this.path.eval(b), this.features, this.options, this.index, this.currentFileInfo)
2260 },
2261 evalPath: function(b) {
2262 var c = this.path.eval(b),
2263 d = this.currentFileInfo && this.currentFileInfo.rootpath;
2264 if (!(c instanceof a.URL)) {
2265 if (d) {
2266 var e = c.value;
2267 e && b.isPathRelative(e) && (c.value = d + e)
2268 }
2269 c.value = b.normalizePath(c.value)
2270 }
2271 return c
2272 },
2273 eval: function(b) {
2274 var c, d = this.features && this.features.eval(b);
2275 if (this.skip && ("function" == typeof this.skip && (this.skip = this.skip()), this.skip)) return [];
2276 if (this.options.inline) {
2277 var e = new a.Anonymous(this.root, 0, {
2278 filename: this.importedFilename
2279 }, !0);
2280 return this.features ? new a.Media([e], this.features.value) : [e]
2281 }
2282 if (this.css) {
2283 var f = new a.Import(this.evalPath(b), d, this.options, this.index);
2284 if (!f.css && this.error) throw this.error;
2285 return f
2286 }
2287 return c = new a.Ruleset(null, this.root.rules.slice(0)), c.evalImports(b), this.features ? new a.Media(c.rules, this.features.value) : c.rules
2288 }
2289 }
2290 }(c("../tree")),
2291 function(a) {
2292 a.JavaScript = function(a, b, c) {
2293 this.escaped = c, this.expression = a, this.index = b
2294 }, a.JavaScript.prototype = {
2295 type: "JavaScript",
2296 eval: function(b) {
2297 var c, d = this,
2298 e = {},
2299 f = this.expression.replace(/@\{([\w-]+)\}/g, function(c, e) {
2300 return a.jsify(new a.Variable("@" + e, d.index).eval(b))
2301 });
2302 try {
2303 f = new Function("return (" + f + ")")
2304 } catch (g) {
2305 throw {
2306 message: "JavaScript evaluation error: " + g.message + " from `" + f + "`",
2307 index: this.index
2308 }
2309 }
2310 var h = b.frames[0].variables();
2311 for (var i in h) h.hasOwnProperty(i) && (e[i.slice(1)] = {
2312 value: h[i].value,
2313 toJS: function() {
2314 return this.value.eval(b).toCSS()
2315 }
2316 });
2317 try {
2318 c = f.call(e)
2319 } catch (g) {
2320 throw {
2321 message: "JavaScript evaluation error: '" + g.name + ": " + g.message.replace(/["]/g, "'") + "'",
2322 index: this.index
2323 }
2324 }
2325 return "number" == typeof c ? new a.Dimension(c) : "string" == typeof c ? new a.Quoted('"' + c + '"', c, this.escaped, this.index) : new a.Anonymous(Array.isArray(c) ? c.join(", ") : c)
2326 }
2327 }
2328 }(c("../tree")),
2329 function(a) {
2330 a.Keyword = function(a) {
2331 this.value = a
2332 }, a.Keyword.prototype = {
2333 type: "Keyword",
2334 eval: function() {
2335 return this
2336 },
2337 genCSS: function(a, b) {
2338 if ("%" === this.value) throw {
2339 type: "Syntax",
2340 message: "Invalid % without number"
2341 };
2342 b.add(this.value)
2343 },
2344 toCSS: a.toCSS,
2345 compare: function(b) {
2346 return b instanceof a.Keyword ? b.value === this.value ? 0 : 1 : -1
2347 }
2348 }, a.True = new a.Keyword("true"), a.False = new a.Keyword("false")
2349 }(c("../tree")),
2350 function(a) {
2351 a.Media = function(b, c, d, e) {
2352 this.index = d, this.currentFileInfo = e;
2353 var f = this.emptySelectors();
2354 this.features = new a.Value(c), this.rules = [new a.Ruleset(f, b)], this.rules[0].allowImports = !0
2355 }, a.Media.prototype = {
2356 type: "Media",
2357 accept: function(a) {
2358 this.features && (this.features = a.visit(this.features)), this.rules && (this.rules = a.visitArray(this.rules))
2359 },
2360 genCSS: function(b, c) {
2361 c.add("@media ", this.currentFileInfo, this.index), this.features.genCSS(b, c), a.outputRuleset(b, c, this.rules)
2362 },
2363 toCSS: a.toCSS,
2364 eval: function(b) {
2365 b.mediaBlocks || (b.mediaBlocks = [], b.mediaPath = []);
2366 var c = new a.Media(null, [], this.index, this.currentFileInfo);
2367 this.debugInfo && (this.rules[0].debugInfo = this.debugInfo, c.debugInfo = this.debugInfo);
2368 var d = !1;
2369 b.strictMath || (d = !0, b.strictMath = !0);
2370 try {
2371 c.features = this.features.eval(b)
2372 } finally {
2373 d && (b.strictMath = !1)
2374 }
2375 return b.mediaPath.push(c), b.mediaBlocks.push(c), b.frames.unshift(this.rules[0]), c.rules = [this.rules[0].eval(b)], b.frames.shift(), b.mediaPath.pop(), 0 === b.mediaPath.length ? c.evalTop(b) : c.evalNested(b)
2376 },
2377 variable: function(b) {
2378 return a.Ruleset.prototype.variable.call(this.rules[0], b)
2379 },
2380 find: function() {
2381 return a.Ruleset.prototype.find.apply(this.rules[0], arguments)
2382 },
2383 rulesets: function() {
2384 return a.Ruleset.prototype.rulesets.apply(this.rules[0])
2385 },
2386 emptySelectors: function() {
2387 var b = new a.Element("", "&", this.index, this.currentFileInfo),
2388 c = [new a.Selector([b], null, null, this.index, this.currentFileInfo)];
2389 return c[0].mediaEmpty = !0, c
2390 },
2391 markReferenced: function() {
2392 var a, b = this.rules[0].rules;
2393 for (this.rules[0].markReferenced(), this.isReferenced = !0, a = 0; a < b.length; a++) b[a].markReferenced && b[a].markReferenced()
2394 },
2395 evalTop: function(b) {
2396 var c = this;
2397 if (b.mediaBlocks.length > 1) {
2398 var d = this.emptySelectors();
2399 c = new a.Ruleset(d, b.mediaBlocks), c.multiMedia = !0
2400 }
2401 return delete b.mediaBlocks, delete b.mediaPath, c
2402 },
2403 evalNested: function(b) {
2404 var c, d, e = b.mediaPath.concat([this]);
2405 for (c = 0; c < e.length; c++) d = e[c].features instanceof a.Value ? e[c].features.value : e[c].features, e[c] = Array.isArray(d) ? d : [d];
2406 return this.features = new a.Value(this.permute(e).map(function(b) {
2407 for (b = b.map(function(b) {
2408 return b.toCSS ? b : new a.Anonymous(b)
2409 }), c = b.length - 1; c > 0; c--) b.splice(c, 0, new a.Anonymous("and"));
2410 return new a.Expression(b)
2411 })), new a.Ruleset([], [])
2412 },
2413 permute: function(a) {
2414 if (0 === a.length) return [];
2415 if (1 === a.length) return a[0];
2416 for (var b = [], c = this.permute(a.slice(1)), d = 0; d < c.length; d++)
2417 for (var e = 0; e < a[0].length; e++) b.push([a[0][e]].concat(c[d]));
2418 return b
2419 },
2420 bubbleSelectors: function(b) {
2421 b && (this.rules = [new a.Ruleset(b.slice(0), [this.rules[0]])])
2422 }
2423 }
2424 }(c("../tree")),
2425 function(a) {
2426 a.mixin = {}, a.mixin.Call = function(b, c, d, e, f) {
2427 this.selector = new a.Selector(b), this.arguments = c && c.length ? c : null, this.index = d, this.currentFileInfo = e, this.important = f
2428 }, a.mixin.Call.prototype = {
2429 type: "MixinCall",
2430 accept: function(a) {
2431 this.selector && (this.selector = a.visit(this.selector)), this.arguments && (this.arguments = a.visitArray(this.arguments))
2432 },
2433 eval: function(b) {
2434 var c, d, e, f, g, h, i, j, k, l, m, n, o = [],
2435 p = !1,
2436 q = [],
2437 r = [],
2438 s = a.defaultFunc,
2439 t = 0,
2440 u = 1,
2441 v = 2;
2442 for (e = this.arguments && this.arguments.map(function(a) {
2443 return {
2444 name: a.name,
2445 value: a.value.eval(b)
2446 }
2447 }), f = 0; f < b.frames.length; f++)
2448 if ((c = b.frames[f].find(this.selector)).length > 0) {
2449 for (j = !0, g = 0; g < c.length; g++) {
2450 for (d = c[g], i = !1, h = 0; h < b.frames.length; h++)
2451 if (!(d instanceof a.mixin.Definition) && d === (b.frames[h].originalRuleset || b.frames[h])) {
2452 i = !0;
2453 break
2454 }
2455 if (!i && d.matchArgs(e, b)) {
2456 if (l = {
2457 mixin: d,
2458 group: t
2459 }, d.matchCondition) {
2460 for (h = 0; 2 > h; h++) s.value(h), r[h] = d.matchCondition(e, b);
2461 (r[0] || r[1]) && (r[0] != r[1] && (l.group = r[1] ? u : v), q.push(l))
2462 } else q.push(l);
2463 p = !0
2464 }
2465 }
2466 for (s.reset(), n = [0, 0, 0], g = 0; g < q.length; g++) n[q[g].group]++;
2467 if (n[t] > 0) m = v;
2468 else if (m = u, n[u] + n[v] > 1) throw {
2469 type: "Runtime",
2470 message: "Ambiguous use of `default()` found when matching for `" + this.format(e) + "`",
2471 index: this.index,
2472 filename: this.currentFileInfo.filename
2473 };
2474 for (g = 0; g < q.length; g++)
2475 if (l = q[g].group, l === t || l === m) try {
2476 d = q[g].mixin, d instanceof a.mixin.Definition || (d = new a.mixin.Definition("", [], d.rules, null, !1), d.originalRuleset = c[g].originalRuleset || c[g]), Array.prototype.push.apply(o, d.evalCall(b, e, this.important).rules)
2477 } catch (w) {
2478 throw {
2479 message: w.message,
2480 index: this.index,
2481 filename: this.currentFileInfo.filename,
2482 stack: w.stack
2483 }
2484 }
2485 if (p) {
2486 if (!this.currentFileInfo || !this.currentFileInfo.reference)
2487 for (f = 0; f < o.length; f++) k = o[f], k.markReferenced && k.markReferenced();
2488 return o
2489 }
2490 }
2491 throw j ? {
2492 type: "Runtime",
2493 message: "No matching definition was found for `" + this.format(e) + "`",
2494 index: this.index,
2495 filename: this.currentFileInfo.filename
2496 } : {
2497 type: "Name",
2498 message: this.selector.toCSS().trim() + " is undefined",
2499 index: this.index,
2500 filename: this.currentFileInfo.filename
2501 }
2502 },
2503 format: function(a) {
2504 return this.selector.toCSS().trim() + "(" + (a ? a.map(function(a) {
2505 var b = "";
2506 return a.name && (b += a.name + ":"), b += a.value.toCSS ? a.value.toCSS() : "???"
2507 }).join(", ") : "") + ")"
2508 }
2509 }, a.mixin.Definition = function(b, c, d, e, f, g) {
2510 this.name = b, this.selectors = [new a.Selector([new a.Element(null, b, this.index, this.currentFileInfo)])], this.params = c, this.condition = e, this.variadic = f, this.arity = c.length, this.rules = d, this._lookups = {}, this.required = c.reduce(function(a, b) {
2511 return !b.name || b.name && !b.value ? a + 1 : a
2512 }, 0), this.parent = a.Ruleset.prototype, this.frames = g
2513 }, a.mixin.Definition.prototype = {
2514 type: "MixinDefinition",
2515 accept: function(a) {
2516 this.params && this.params.length && (this.params = a.visitArray(this.params)), this.rules = a.visitArray(this.rules), this.condition && (this.condition = a.visit(this.condition))
2517 },
2518 variable: function(a) {
2519 return this.parent.variable.call(this, a)
2520 },
2521 variables: function() {
2522 return this.parent.variables.call(this)
2523 },
2524 find: function() {
2525 return this.parent.find.apply(this, arguments)
2526 },
2527 rulesets: function() {
2528 return this.parent.rulesets.apply(this)
2529 },
2530 evalParams: function(b, c, d, e) {
2531 var f, g, h, i, j, k, l, m, n = new a.Ruleset(null, null),
2532 o = this.params.slice(0),
2533 p = 0;
2534 if (c = new a.evalEnv(c, [n].concat(c.frames)), d)
2535 for (d = d.slice(0), p = d.length, h = 0; p > h; h++)
2536 if (g = d[h], k = g && g.name) {
2537 for (l = !1, i = 0; i < o.length; i++)
2538 if (!e[i] && k === o[i].name) {
2539 e[i] = g.value.eval(b), n.prependRule(new a.Rule(k, g.value.eval(b))), l = !0;
2540 break
2541 }
2542 if (l) {
2543 d.splice(h, 1), h--;
2544 continue
2545 }
2546 throw {
2547 type: "Runtime",
2548 message: "Named argument for " + this.name + " " + d[h].name + " not found"
2549 }
2550 }
2551 for (m = 0, h = 0; h < o.length; h++)
2552 if (!e[h]) {
2553 if (g = d && d[m], k = o[h].name)
2554 if (o[h].variadic) {
2555 for (f = [], i = m; p > i; i++) f.push(d[i].value.eval(b));
2556 n.prependRule(new a.Rule(k, new a.Expression(f).eval(b)))
2557 } else {
2558 if (j = g && g.value) j = j.eval(b);
2559 else {
2560 if (!o[h].value) throw {
2561 type: "Runtime",
2562 message: "wrong number of arguments for " + this.name + " (" + p + " for " + this.arity + ")"
2563 };
2564 j = o[h].value.eval(c), n.resetCache()
2565 }
2566 n.prependRule(new a.Rule(k, j)), e[h] = j
2567 }
2568 if (o[h].variadic && d)
2569 for (i = m; p > i; i++) e[i] = d[i].value.eval(b);
2570 m++
2571 }
2572 return n
2573 },
2574 eval: function(b) {
2575 return new a.mixin.Definition(this.name, this.params, this.rules, this.condition, this.variadic, this.frames || b.frames.slice(0))
2576 },
2577 evalCall: function(b, c, d) {
2578 var e, f, g = [],
2579 h = this.frames ? this.frames.concat(b.frames) : b.frames,
2580 i = this.evalParams(b, new a.evalEnv(b, h), c, g);
2581 return i.prependRule(new a.Rule("@arguments", new a.Expression(g).eval(b))), e = this.rules.slice(0), f = new a.Ruleset(null, e), f.originalRuleset = this, f = f.eval(new a.evalEnv(b, [this, i].concat(h))), d && (f = this.parent.makeImportant.apply(f)), f
2582 },
2583 matchCondition: function(b, c) {
2584 return this.condition && !this.condition.eval(new a.evalEnv(c, [this.evalParams(c, new a.evalEnv(c, this.frames.concat(c.frames)), b, [])].concat(this.frames).concat(c.frames))) ? !1 : !0
2585 },
2586 matchArgs: function(a, b) {
2587 var c, d = a && a.length || 0;
2588 if (this.variadic) {
2589 if (d < this.required - 1) return !1
2590 } else {
2591 if (d < this.required) return !1;
2592 if (d > this.params.length) return !1
2593 }
2594 c = Math.min(d, this.arity);
2595 for (var e = 0; c > e; e++)
2596 if (!this.params[e].name && !this.params[e].variadic && a[e].value.eval(b).toCSS() != this.params[e].value.eval(b).toCSS()) return !1;
2597 return !0
2598 }
2599 }
2600 }(c("../tree")),
2601 function(a) {
2602 a.Negative = function(a) {
2603 this.value = a
2604 }, a.Negative.prototype = {
2605 type: "Negative",
2606 accept: function(a) {
2607 this.value = a.visit(this.value)
2608 },
2609 genCSS: function(a, b) {
2610 b.add("-"), this.value.genCSS(a, b)
2611 },
2612 toCSS: a.toCSS,
2613 eval: function(b) {
2614 return b.isMathOn() ? new a.Operation("*", [new a.Dimension(-1), this.value]).eval(b) : new a.Negative(this.value.eval(b))
2615 }
2616 }
2617 }(c("../tree")),
2618 function(a) {
2619 a.Operation = function(a, b, c) {
2620 this.op = a.trim(), this.operands = b, this.isSpaced = c
2621 }, a.Operation.prototype = {
2622 type: "Operation",
2623 accept: function(a) {
2624 this.operands = a.visit(this.operands)
2625 },
2626 eval: function(b) {
2627 var c = this.operands[0].eval(b),
2628 d = this.operands[1].eval(b);
2629 if (b.isMathOn()) {
2630 if (c instanceof a.Dimension && d instanceof a.Color && (c = c.toColor()), d instanceof a.Dimension && c instanceof a.Color && (d = d.toColor()), !c.operate) throw {
2631 type: "Operation",
2632 message: "Operation on an invalid type"
2633 };
2634 return c.operate(b, this.op, d)
2635 }
2636 return new a.Operation(this.op, [c, d], this.isSpaced)
2637 },
2638 genCSS: function(a, b) {
2639 this.operands[0].genCSS(a, b), this.isSpaced && b.add(" "), b.add(this.op), this.isSpaced && b.add(" "), this.operands[1].genCSS(a, b)
2640 },
2641 toCSS: a.toCSS
2642 }, a.operate = function(a, b, c, d) {
2643 switch (b) {
2644 case "+":
2645 return c + d;
2646 case "-":
2647 return c - d;
2648 case "*":
2649 return c * d;
2650 case "/":
2651 return c / d
2652 }
2653 }
2654 }(c("../tree")),
2655 function(a) {
2656 a.Paren = function(a) {
2657 this.value = a
2658 }, a.Paren.prototype = {
2659 type: "Paren",
2660 accept: function(a) {
2661 this.value = a.visit(this.value)
2662 },
2663 genCSS: function(a, b) {
2664 b.add("("), this.value.genCSS(a, b), b.add(")")
2665 },
2666 toCSS: a.toCSS,
2667 eval: function(b) {
2668 return new a.Paren(this.value.eval(b))
2669 }
2670 }
2671 }(c("../tree")),
2672 function(a) {
2673 a.Quoted = function(a, b, c, d, e) {
2674 this.escaped = c, this.value = b || "", this.quote = a.charAt(0), this.index = d, this.currentFileInfo = e
2675 }, a.Quoted.prototype = {
2676 type: "Quoted",
2677 genCSS: function(a, b) {
2678 this.escaped || b.add(this.quote, this.currentFileInfo, this.index), b.add(this.value), this.escaped || b.add(this.quote)
2679 },
2680 toCSS: a.toCSS,
2681 eval: function(b) {
2682 var c = this,
2683 d = this.value.replace(/`([^`]+)`/g, function(d, e) {
2684 return new a.JavaScript(e, c.index, !0).eval(b).value
2685 }).replace(/@\{([\w-]+)\}/g, function(d, e) {
2686 var f = new a.Variable("@" + e, c.index, c.currentFileInfo).eval(b, !0);
2687 return f instanceof a.Quoted ? f.value : f.toCSS()
2688 });
2689 return new a.Quoted(this.quote + d + this.quote, d, this.escaped, this.index, this.currentFileInfo)
2690 },
2691 compare: function(a) {
2692 if (!a.toCSS) return -1;
2693 var b = this.toCSS(),
2694 c = a.toCSS();
2695 return b === c ? 0 : c > b ? -1 : 1
2696 }
2697 }
2698 }(c("../tree")),
2699 function(a) {
2700 function b(a, b) {
2701 var c, d = "",
2702 e = b.length,
2703 f = {
2704 add: function(a) {
2705 d += a
2706 }
2707 };
2708 for (c = 0; e > c; c++) b[c].eval(a).genCSS(a, f);
2709 return d
2710 }
2711 a.Rule = function(b, c, d, e, f, g, h) {
2712 this.name = b, this.value = c instanceof a.Value || c instanceof a.Ruleset ? c : new a.Value([c]), this.important = d ? " " + d.trim() : "", this.merge = e, this.index = f, this.currentFileInfo = g, this.inline = h || !1, this.variable = b.charAt && "@" === b.charAt(0)
2713 }, a.Rule.prototype = {
2714 type: "Rule",
2715 accept: function(a) {
2716 this.value = a.visit(this.value)
2717 },
2718 genCSS: function(a, b) {
2719 b.add(this.name + (a.compress ? ":" : ": "), this.currentFileInfo, this.index);
2720 try {
2721 this.value.genCSS(a, b)
2722 } catch (c) {
2723 throw c.index = this.index, c.filename = this.currentFileInfo.filename, c
2724 }
2725 b.add(this.important + (this.inline || a.lastRule && a.compress ? "" : ";"), this.currentFileInfo, this.index)
2726 },
2727 toCSS: a.toCSS,
2728 eval: function(c) {
2729 var d, e = !1,
2730 f = this.name;
2731 "string" != typeof f && (f = 1 === f.length && f[0] instanceof a.Keyword ? f[0].value : b(c, f)), "font" !== f || c.strictMath || (e = !0, c.strictMath = !0);
2732 try {
2733 if (d = this.value.eval(c), !this.variable && "DetachedRuleset" === d.type) throw {
2734 message: "Rulesets cannot be evaluated on a property.",
2735 index: this.index,
2736 filename: this.currentFileInfo.filename
2737 };
2738 return new a.Rule(f, d, this.important, this.merge, this.index, this.currentFileInfo, this.inline)
2739 } catch (g) {
2740 throw "number" != typeof g.index && (g.index = this.index, g.filename = this.currentFileInfo.filename), g
2741 } finally {
2742 e && (c.strictMath = !1)
2743 }
2744 },
2745 makeImportant: function() {
2746 return new a.Rule(this.name, this.value, "!important", this.merge, this.index, this.currentFileInfo, this.inline)
2747 }
2748 }
2749 }(c("../tree")),
2750 function(a) {
2751 a.RulesetCall = function(a) {
2752 this.variable = a
2753 }, a.RulesetCall.prototype = {
2754 type: "RulesetCall",
2755 accept: function() {},
2756 eval: function(b) {
2757 var c = new a.Variable(this.variable).eval(b);
2758 return c.callEval(b)
2759 }
2760 }
2761 }(c("../tree")),
2762 function(a) {
2763 a.Ruleset = function(a, b, c) {
2764 this.selectors = a, this.rules = b, this._lookups = {}, this.strictImports = c
2765 }, a.Ruleset.prototype = {
2766 type: "Ruleset",
2767 accept: function(a) {
2768 this.paths ? a.visitArray(this.paths, !0) : this.selectors && (this.selectors = a.visitArray(this.selectors)), this.rules && this.rules.length && (this.rules = a.visitArray(this.rules))
2769 },
2770 eval: function(b) {
2771 var c, d, e, f, g = this.selectors,
2772 h = a.defaultFunc,
2773 i = !1;
2774 if (g && (d = g.length)) {
2775 for (c = [], h.error({
2776 type: "Syntax",
2777 message: "it is currently only allowed in parametric mixin guards,"
2778 }), f = 0; d > f; f++) e = g[f].eval(b), c.push(e), e.evaldCondition && (i = !0);
2779 h.reset()
2780 } else i = !0;
2781 var j, k, l = this.rules ? this.rules.slice(0) : null,
2782 m = new a.Ruleset(c, l, this.strictImports);
2783 m.originalRuleset = this, m.root = this.root, m.firstRoot = this.firstRoot, m.allowImports = this.allowImports, this.debugInfo && (m.debugInfo = this.debugInfo), i || (l.length = 0);
2784 var n = b.frames;
2785 n.unshift(m);
2786 var o = b.selectors;
2787 o || (b.selectors = o = []), o.unshift(this.selectors), (m.root || m.allowImports || !m.strictImports) && m.evalImports(b);
2788 var p = m.rules,
2789 q = p ? p.length : 0;
2790 for (f = 0; q > f; f++)(p[f] instanceof a.mixin.Definition || p[f] instanceof a.DetachedRuleset) && (p[f] = p[f].eval(b));
2791 var r = b.mediaBlocks && b.mediaBlocks.length || 0;
2792 for (f = 0; q > f; f++) p[f] instanceof a.mixin.Call ? (l = p[f].eval(b).filter(function(b) {
2793 return b instanceof a.Rule && b.variable ? !m.variable(b.name) : !0
2794 }), p.splice.apply(p, [f, 1].concat(l)), q += l.length - 1, f += l.length - 1, m.resetCache()) : p[f] instanceof a.RulesetCall && (l = p[f].eval(b).rules.filter(function(b) {
2795 return b instanceof a.Rule && b.variable ? !1 : !0
2796 }), p.splice.apply(p, [f, 1].concat(l)), q += l.length - 1, f += l.length - 1, m.resetCache());
2797 for (f = 0; f < p.length; f++) j = p[f], j instanceof a.mixin.Definition || j instanceof a.DetachedRuleset || (p[f] = j = j.eval ? j.eval(b) : j);
2798 for (f = 0; f < p.length; f++)
2799 if (j = p[f], j instanceof a.Ruleset && j.selectors && 1 === j.selectors.length && j.selectors[0].isJustParentSelector()) {
2800 p.splice(f--, 1);
2801 for (var s = 0; s < j.rules.length; s++) k = j.rules[s], k instanceof a.Rule && k.variable || p.splice(++f, 0, k)
2802 }
2803 if (n.shift(), o.shift(), b.mediaBlocks)
2804 for (f = r; f < b.mediaBlocks.length; f++) b.mediaBlocks[f].bubbleSelectors(c);
2805 return m
2806 },
2807 evalImports: function(b) {
2808 var c, d, e = this.rules;
2809 if (e)
2810 for (c = 0; c < e.length; c++) e[c] instanceof a.Import && (d = e[c].eval(b), d && d.length ? (e.splice.apply(e, [c, 1].concat(d)), c += d.length - 1) : e.splice(c, 1, d), this.resetCache())
2811 },
2812 makeImportant: function() {
2813 return new a.Ruleset(this.selectors, this.rules.map(function(a) {
2814 return a.makeImportant ? a.makeImportant() : a
2815 }), this.strictImports)
2816 },
2817 matchArgs: function(a) {
2818 return !a || 0 === a.length
2819 },
2820 matchCondition: function(b, c) {
2821 var d = this.selectors[this.selectors.length - 1];
2822 return d.evaldCondition ? d.condition && !d.condition.eval(new a.evalEnv(c, c.frames)) ? !1 : !0 : !1
2823 },
2824 resetCache: function() {
2825 this._rulesets = null, this._variables = null, this._lookups = {}
2826 },
2827 variables: function() {
2828 return this._variables || (this._variables = this.rules ? this.rules.reduce(function(b, c) {
2829 return c instanceof a.Rule && c.variable === !0 && (b[c.name] = c), b
2830 }, {}) : {}), this._variables
2831 },
2832 variable: function(a) {
2833 return this.variables()[a]
2834 },
2835 rulesets: function() {
2836 if (!this.rules) return null;
2837 var b, c, d = a.Ruleset,
2838 e = a.mixin.Definition,
2839 f = [],
2840 g = this.rules,
2841 h = g.length;
2842 for (b = 0; h > b; b++) c = g[b], (c instanceof d || c instanceof e) && f.push(c);
2843 return f
2844 },
2845 prependRule: function(a) {
2846 var b = this.rules;
2847 b ? b.unshift(a) : this.rules = [a]
2848 },
2849 find: function(b, c) {
2850 c = c || this;
2851 var d, e = [],
2852 f = b.toCSS();
2853 return f in this._lookups ? this._lookups[f] : (this.rulesets().forEach(function(f) {
2854 if (f !== c)
2855 for (var g = 0; g < f.selectors.length; g++)
2856 if (d = b.match(f.selectors[g])) {
2857 b.elements.length > d ? Array.prototype.push.apply(e, f.find(new a.Selector(b.elements.slice(d)), c)) : e.push(f);
2858 break
2859 }
2860 }), this._lookups[f] = e, e)
2861 },
2862 genCSS: function(b, c) {
2863 var d, e, f, g, h, i, j = [],
2864 k = [];
2865 b.tabLevel = b.tabLevel || 0, this.root || b.tabLevel++;
2866 var l, m = b.compress ? "" : Array(b.tabLevel + 1).join(" "),
2867 n = b.compress ? "" : Array(b.tabLevel).join(" ");
2868 for (d = 0; d < this.rules.length; d++) h = this.rules[d], h.rules || h instanceof a.Media || h instanceof a.Directive || this.root && h instanceof a.Comment ? k.push(h) : j.push(h);
2869 if (!this.root) {
2870 g = a.debugInfo(b, this, n), g && (c.add(g), c.add(n));
2871 var o, p = this.paths,
2872 q = p.length;
2873 for (l = b.compress ? "," : ",\n" + n, d = 0; q > d; d++)
2874 if (i = p[d], o = i.length)
2875 for (d > 0 && c.add(l), b.firstSelector = !0, i[0].genCSS(b, c), b.firstSelector = !1, e = 1; o > e; e++) i[e].genCSS(b, c);
2876 c.add((b.compress ? "{" : " {\n") + m)
2877 }
2878 for (d = 0; d < j.length; d++) h = j[d], d + 1 !== j.length || this.root && 0 !== k.length && !this.firstRoot || (b.lastRule = !0), h.genCSS ? h.genCSS(b, c) : h.value && c.add(h.value.toString()), b.lastRule ? b.lastRule = !1 : c.add(b.compress ? "" : "\n" + m);
2879 if (this.root || (c.add(b.compress ? "}" : "\n" + n + "}"), b.tabLevel--), l = (b.compress ? "" : "\n") + (this.root ? m : n), f = k.length)
2880 for (j.length && l && c.add(l), k[0].genCSS(b, c), d = 1; f > d; d++) l && c.add(l), k[d].genCSS(b, c);
2881 c.isEmpty() || b.compress || !this.firstRoot || c.add("\n")
2882 },
2883 toCSS: a.toCSS,
2884 markReferenced: function() {
2885 if (this.selectors)
2886 for (var a = 0; a < this.selectors.length; a++) this.selectors[a].markReferenced()
2887 },
2888 joinSelectors: function(a, b, c) {
2889 for (var d = 0; d < c.length; d++) this.joinSelector(a, b, c[d])
2890 },
2891 joinSelector: function(b, c, d) {
2892 var e, f, g, h, i, j, k, l, m, n, o, p, q, r, s;
2893 for (e = 0; e < d.elements.length; e++) j = d.elements[e], "&" === j.value && (h = !0);
2894 if (h) {
2895 for (r = [], i = [
2896 []
2897 ], e = 0; e < d.elements.length; e++)
2898 if (j = d.elements[e], "&" !== j.value) r.push(j);
2899 else {
2900 for (s = [], r.length > 0 && this.mergeElementsOnToSelectors(r, i), f = 0; f < i.length; f++)
2901 if (k = i[f], 0 === c.length) k.length > 0 && (k[0].elements = k[0].elements.slice(0), k[0].elements.push(new a.Element(j.combinator, "", j.index, j.currentFileInfo))), s.push(k);
2902 else
2903 for (g = 0; g < c.length; g++) l = c[g], m = [], n = [], p = !0, k.length > 0 ? (m = k.slice(0), q = m.pop(), o = d.createDerived(q.elements.slice(0)), p = !1) : o = d.createDerived([]), l.length > 1 && (n = n.concat(l.slice(1))), l.length > 0 && (p = !1, o.elements.push(new a.Element(j.combinator, l[0].elements[0].value, j.index, j.currentFileInfo)), o.elements = o.elements.concat(l[0].elements.slice(1))), p || m.push(o), m = m.concat(n), s.push(m);
2904 i = s, r = []
2905 }
2906 for (r.length > 0 && this.mergeElementsOnToSelectors(r, i), e = 0; e < i.length; e++) i[e].length > 0 && b.push(i[e])
2907 } else if (c.length > 0)
2908 for (e = 0; e < c.length; e++) b.push(c[e].concat(d));
2909 else b.push([d])
2910 },
2911 mergeElementsOnToSelectors: function(b, c) {
2912 var d, e;
2913 if (0 === c.length) return void c.push([new a.Selector(b)]);
2914 for (d = 0; d < c.length; d++) e = c[d], e.length > 0 ? e[e.length - 1] = e[e.length - 1].createDerived(e[e.length - 1].elements.concat(b)) : e.push(new a.Selector(b))
2915 }
2916 }
2917 }(c("../tree")),
2918 function(a) {
2919 a.Selector = function(a, b, c, d, e, f) {
2920 this.elements = a, this.extendList = b, this.condition = c, this.currentFileInfo = e || {}, this.isReferenced = f, c || (this.evaldCondition = !0)
2921 }, a.Selector.prototype = {
2922 type: "Selector",
2923 accept: function(a) {
2924 this.elements && (this.elements = a.visitArray(this.elements)), this.extendList && (this.extendList = a.visitArray(this.extendList)), this.condition && (this.condition = a.visit(this.condition))
2925 },
2926 createDerived: function(b, c, d) {
2927 d = null != d ? d : this.evaldCondition;
2928 var e = new a.Selector(b, c || this.extendList, null, this.index, this.currentFileInfo, this.isReferenced);
2929 return e.evaldCondition = d, e.mediaEmpty = this.mediaEmpty, e
2930 },
2931 match: function(a) {
2932 var b, c, d = this.elements,
2933 e = d.length;
2934 if (a.CacheElements(), b = a._elements.length, 0 === b || b > e) return 0;
2935 for (c = 0; b > c; c++)
2936 if (d[c].value !== a._elements[c]) return 0;
2937 return b
2938 },
2939 CacheElements: function() {
2940 var a, b, c, d = "";
2941 if (!this._elements) {
2942 for (a = this.elements.length, c = 0; a > c; c++)
2943 if (b = this.elements[c], d += b.combinator.value, b.value.value) {
2944 if ("string" != typeof b.value.value) {
2945 d = "";
2946 break
2947 }
2948 d += b.value.value
2949 } else d += b.value;
2950 this._elements = d.match(/[,&#\.\w-]([\w-]|(\\.))*/g), this._elements ? "&" === this._elements[0] && this._elements.shift() : this._elements = []
2951 }
2952 },
2953 isJustParentSelector: function() {
2954 return !this.mediaEmpty && 1 === this.elements.length && "&" === this.elements[0].value && (" " === this.elements[0].combinator.value || "" === this.elements[0].combinator.value)
2955 },
2956 eval: function(a) {
2957 var b = this.condition && this.condition.eval(a),
2958 c = this.elements,
2959 d = this.extendList;
2960 return c = c && c.map(function(b) {
2961 return b.eval(a)
2962 }), d = d && d.map(function(b) {
2963 return b.eval(a)
2964 }), this.createDerived(c, d, b)
2965 },
2966 genCSS: function(a, b) {
2967 var c, d;
2968 if (a && a.firstSelector || "" !== this.elements[0].combinator.value || b.add(" ", this.currentFileInfo, this.index), !this._css)
2969 for (c = 0; c < this.elements.length; c++) d = this.elements[c], d.genCSS(a, b)
2970 },
2971 toCSS: a.toCSS,
2972 markReferenced: function() {
2973 this.isReferenced = !0
2974 },
2975 getIsReferenced: function() {
2976 return !this.currentFileInfo.reference || this.isReferenced
2977 },
2978 getIsOutput: function() {
2979 return this.evaldCondition
2980 }
2981 }
2982 }(c("../tree")),
2983 function(a) {
2984 a.UnicodeDescriptor = function(a) {
2985 this.value = a
2986 }, a.UnicodeDescriptor.prototype = {
2987 type: "UnicodeDescriptor",
2988 genCSS: function(a, b) {
2989 b.add(this.value)
2990 },
2991 toCSS: a.toCSS,
2992 eval: function() {
2993 return this
2994 }
2995 }
2996 }(c("../tree")),
2997 function(a) {
2998 a.URL = function(a, b, c) {
2999 this.value = a, this.currentFileInfo = b, this.isEvald = c
3000 }, a.URL.prototype = {
3001 type: "Url",
3002 accept: function(a) {
3003 this.value = a.visit(this.value)
3004 },
3005 genCSS: function(a, b) {
3006 b.add("url("), this.value.genCSS(a, b), b.add(")")
3007 },
3008 toCSS: a.toCSS,
3009 eval: function(b) {
3010 var c, d = this.value.eval(b);
3011 if (!this.isEvald && (c = this.currentFileInfo && this.currentFileInfo.rootpath, c && "string" == typeof d.value && b.isPathRelative(d.value) && (d.quote || (c = c.replace(/[\(\)'"\s]/g, function(a) {
3012 return "\\" + a
3013 })), d.value = c + d.value), d.value = b.normalizePath(d.value), b.urlArgs && !d.value.match(/^\s*data:/))) {
3014 var e = -1 === d.value.indexOf("?") ? "?" : "&",
3015 f = e + b.urlArgs; - 1 !== d.value.indexOf("#") ? d.value = d.value.replace("#", f + "#") : d.value += f
3016 }
3017 return new a.URL(d, this.currentFileInfo, !0)
3018 }
3019 }
3020 }(c("../tree")),
3021 function(a) {
3022 a.Value = function(a) {
3023 this.value = a
3024 }, a.Value.prototype = {
3025 type: "Value",
3026 accept: function(a) {
3027 this.value && (this.value = a.visitArray(this.value))
3028 },
3029 eval: function(b) {
3030 return 1 === this.value.length ? this.value[0].eval(b) : new a.Value(this.value.map(function(a) {
3031 return a.eval(b)
3032 }))
3033 },
3034 genCSS: function(a, b) {
3035 var c;
3036 for (c = 0; c < this.value.length; c++) this.value[c].genCSS(a, b), c + 1 < this.value.length && b.add(a && a.compress ? "," : ", ")
3037 },
3038 toCSS: a.toCSS
3039 }
3040 }(c("../tree")),
3041 function(a) {
3042 a.Variable = function(a, b, c) {
3043 this.name = a, this.index = b, this.currentFileInfo = c || {}
3044 }, a.Variable.prototype = {
3045 type: "Variable",
3046 eval: function(b) {
3047 var c, d = this.name;
3048 if (0 === d.indexOf("@@") && (d = "@" + new a.Variable(d.slice(1)).eval(b).value), this.evaluating) throw {
3049 type: "Name",
3050 message: "Recursive variable definition for " + d,
3051 filename: this.currentFileInfo.file,
3052 index: this.index
3053 };
3054 if (this.evaluating = !0, c = a.find(b.frames, function(a) {
3055 var c = a.variable(d);
3056 return c ? c.value.eval(b) : void 0
3057 })) return this.evaluating = !1, c;
3058 throw {
3059 type: "Name",
3060 message: "variable " + d + " is undefined",
3061 filename: this.currentFileInfo.filename,
3062 index: this.index
3063 }
3064 }
3065 }
3066 }(c("../tree")),
3067 function(a) {
3068 var b = ["paths", "optimization", "files", "contents", "contentsIgnoredChars", "relativeUrls", "rootpath", "strictImports", "insecure", "dumpLineNumbers", "compress", "processImports", "syncImport", "javascriptEnabled", "mime", "useFileCache", "currentFileInfo"];
3069 a.parseEnv = function(a) {
3070 if (d(a, this, b), this.contents || (this.contents = {}), this.contentsIgnoredChars || (this.contentsIgnoredChars = {}), this.files || (this.files = {}), !this.currentFileInfo) {
3071 var c = a && a.filename || "input",
3072 e = c.replace(/[^\/\\]*$/, "");
3073 a && (a.filename = null), this.currentFileInfo = {
3074 filename: c,
3075 relativeUrls: this.relativeUrls,
3076 rootpath: a && a.rootpath || "",
3077 currentDirectory: e,
3078 entryPath: e,
3079 rootFilename: c
3080 }
3081 }
3082 };
3083 var c = ["silent", "verbose", "compress", "yuicompress", "ieCompat", "strictMath", "strictUnits", "cleancss", "sourceMap", "importMultiple", "urlArgs"];
3084 a.evalEnv = function(a, b) {
3085 d(a, this, c), this.frames = b || []
3086 }, a.evalEnv.prototype.inParenthesis = function() {
3087 this.parensStack || (this.parensStack = []), this.parensStack.push(!0)
3088 }, a.evalEnv.prototype.outOfParenthesis = function() {
3089 this.parensStack.pop()
3090 }, a.evalEnv.prototype.isMathOn = function() {
3091 return this.strictMath ? this.parensStack && this.parensStack.length : !0
3092 }, a.evalEnv.prototype.isPathRelative = function(a) {
3093 return !/^(?:[a-z-]+:|\/)/.test(a)
3094 }, a.evalEnv.prototype.normalizePath = function(a) {
3095 var b, c = a.split("/").reverse();
3096 for (a = []; 0 !== c.length;) switch (b = c.pop()) {
3097 case ".":
3098 break;
3099 case "..":
3100 0 === a.length || ".." === a[a.length - 1] ? a.push(b) : a.pop();
3101 break;
3102 default:
3103 a.push(b)
3104 }
3105 return a.join("/")
3106 };
3107 var d = function(a, b, c) {
3108 if (a)
3109 for (var d = 0; d < c.length; d++) a.hasOwnProperty(c[d]) && (b[c[d]] = a[c[d]])
3110 }
3111 }(c("./tree")),
3112 function(a) {
3113 function b(a) {
3114 return a
3115 }
3116
3117 function c(a, b) {
3118 var d, e;
3119 for (d in a)
3120 if (a.hasOwnProperty(d)) switch (e = a[d], typeof e) {
3121 case "function":
3122 e.prototype && e.prototype.type && (e.prototype.typeIndex = b++);
3123 break;
3124 case "object":
3125 b = c(e, b)
3126 }
3127 return b
3128 }
3129 var d = {
3130 visitDeeper: !0
3131 },
3132 e = !1;
3133 a.visitor = function(b) {
3134 this._implementation = b, this._visitFnCache = [], e || (c(a, 1), e = !0)
3135 }, a.visitor.prototype = {
3136 visit: function(a) {
3137 if (!a) return a;
3138 var c = a.typeIndex;
3139 if (!c) return a;
3140 var e, f = this._visitFnCache,
3141 g = this._implementation,
3142 h = c << 1,
3143 i = 1 | h,
3144 j = f[h],
3145 k = f[i],
3146 l = d;
3147 if (l.visitDeeper = !0, j || (e = "visit" + a.type, j = g[e] || b, k = g[e + "Out"] || b, f[h] = j, f[i] = k), j !== b) {
3148 var m = j.call(g, a, l);
3149 g.isReplacing && (a = m)
3150 }
3151 return l.visitDeeper && a && a.accept && a.accept(this), k != b && k.call(g, a), a
3152 },
3153 visitArray: function(a, b) {
3154 if (!a) return a;
3155 var c, d = a.length;
3156 if (b || !this._implementation.isReplacing) {
3157 for (c = 0; d > c; c++) this.visit(a[c]);
3158 return a
3159 }
3160 var e = [];
3161 for (c = 0; d > c; c++) {
3162 var f = this.visit(a[c]);
3163 f.splice ? f.length && this.flatten(f, e) : e.push(f)
3164 }
3165 return e
3166 },
3167 flatten: function(a, b) {
3168 b || (b = []);
3169 var c, d, e, f, g, h;
3170 for (d = 0, c = a.length; c > d; d++)
3171 if (e = a[d], e.splice)
3172 for (g = 0, f = e.length; f > g; g++) h = e[g], h.splice ? h.length && this.flatten(h, b) : b.push(h);
3173 else b.push(e);
3174 return b
3175 }
3176 }
3177 }(c("./tree")),
3178 function(a) {
3179 a.importVisitor = function(b, c, d, e, f) {
3180 if (this._visitor = new a.visitor(this), this._importer = b, this._finish = c, this.env = d || new a.evalEnv, this.importCount = 0, this.onceFileDetectionMap = e || {}, this.recursionDetector = {}, f)
3181 for (var g in f) f.hasOwnProperty(g) && (this.recursionDetector[g] = !0)
3182 }, a.importVisitor.prototype = {
3183 isReplacing: !0,
3184 run: function(a) {
3185 var b;
3186 try {
3187 this._visitor.visit(a)
3188 } catch (c) {
3189 b = c
3190 }
3191 this.isFinished = !0, 0 === this.importCount && this._finish(b)
3192 },
3193 visitImport: function(b, c) {
3194 var d, e = this,
3195 f = b.options.inline;
3196 if (!b.css || f) {
3197 try {
3198 d = b.evalForImport(this.env)
3199 } catch (g) {
3200 g.filename || (g.index = b.index, g.filename = b.currentFileInfo.filename), b.css = !0, b.error = g
3201 }
3202 if (d && (!d.css || f)) {
3203 b = d, this.importCount++;
3204 var h = new a.evalEnv(this.env, this.env.frames.slice(0));
3205 b.options.multiple && (h.importMultiple = !0), this._importer.push(b.getPath(), b.currentFileInfo, b.options, function(c, d, g, i) {
3206 c && !c.filename && (c.index = b.index, c.filename = b.currentFileInfo.filename), h.importMultiple || (b.skip = g ? !0 : function() {
3207 return i in e.onceFileDetectionMap ? !0 : (e.onceFileDetectionMap[i] = !0, !1)
3208 });
3209 var j = function(a) {
3210 e.importCount--, 0 === e.importCount && e.isFinished && e._finish(a)
3211 };
3212 if (d) {
3213 b.root = d, b.importedFilename = i;
3214 var k = g || i in e.recursionDetector;
3215 if (!f && (h.importMultiple || !k)) return e.recursionDetector[i] = !0, void new a.importVisitor(e._importer, j, h, e.onceFileDetectionMap, e.recursionDetector).run(d)
3216 }
3217 j()
3218 })
3219 }
3220 }
3221 return c.visitDeeper = !1, b
3222 },
3223 visitRule: function(a, b) {
3224 return b.visitDeeper = !1, a
3225 },
3226 visitDirective: function(a) {
3227 return this.env.frames.unshift(a), a
3228 },
3229 visitDirectiveOut: function() {
3230 this.env.frames.shift()
3231 },
3232 visitMixinDefinition: function(a) {
3233 return this.env.frames.unshift(a), a
3234 },
3235 visitMixinDefinitionOut: function() {
3236 this.env.frames.shift()
3237 },
3238 visitRuleset: function(a) {
3239 return this.env.frames.unshift(a), a
3240 },
3241 visitRulesetOut: function() {
3242 this.env.frames.shift()
3243 },
3244 visitMedia: function(a) {
3245 return this.env.frames.unshift(a.ruleset), a
3246 },
3247 visitMediaOut: function() {
3248 this.env.frames.shift()
3249 }
3250 }
3251 }(c("./tree")),
3252 function(a) {
3253 a.joinSelectorVisitor = function() {
3254 this.contexts = [
3255 []
3256 ], this._visitor = new a.visitor(this)
3257 }, a.joinSelectorVisitor.prototype = {
3258 run: function(a) {
3259 return this._visitor.visit(a)
3260 },
3261 visitRule: function(a, b) {
3262 b.visitDeeper = !1
3263 },
3264 visitMixinDefinition: function(a, b) {
3265 b.visitDeeper = !1
3266 },
3267 visitRuleset: function(a) {
3268 var b, c = this.contexts[this.contexts.length - 1],
3269 d = [];
3270 this.contexts.push(d), a.root || (b = a.selectors, b && (b = b.filter(function(a) {
3271 return a.getIsOutput()
3272 }), a.selectors = b.length ? b : b = null, b && a.joinSelectors(d, c, b)), b || (a.rules = null), a.paths = d)
3273 },
3274 visitRulesetOut: function() {
3275 this.contexts.length = this.contexts.length - 1
3276 },
3277 visitMedia: function(a) {
3278 var b = this.contexts[this.contexts.length - 1];
3279 a.rules[0].root = 0 === b.length || b[0].multiMedia
3280 }
3281 }
3282 }(c("./tree")),
3283 function(a) {
3284 a.toCSSVisitor = function(b) {
3285 this._visitor = new a.visitor(this), this._env = b
3286 }, a.toCSSVisitor.prototype = {
3287 isReplacing: !0,
3288 run: function(a) {
3289 return this._visitor.visit(a)
3290 },
3291 visitRule: function(a) {
3292 return a.variable ? [] : a
3293 },
3294 visitMixinDefinition: function(a) {
3295 return a.frames = [], []
3296 },
3297 visitExtend: function() {
3298 return []
3299 },
3300 visitComment: function(a) {
3301 return a.isSilent(this._env) ? [] : a
3302 },
3303 visitMedia: function(a, b) {
3304 return a.accept(this._visitor), b.visitDeeper = !1, a.rules.length ? a : []
3305 },
3306 visitDirective: function(b) {
3307 if (b.currentFileInfo.reference && !b.isReferenced) return [];
3308 if ("@charset" === b.name) {
3309 if (this.charset) {
3310 if (b.debugInfo) {
3311 var c = new a.Comment("/* " + b.toCSS(this._env).replace(/\n/g, "") + " */\n");
3312 return c.debugInfo = b.debugInfo, this._visitor.visit(c)
3313 }
3314 return []
3315 }
3316 this.charset = !0
3317 }
3318 return b
3319 },
3320 checkPropertiesInRoot: function(b) {
3321 for (var c, d = 0; d < b.length; d++)
3322 if (c = b[d], c instanceof a.Rule && !c.variable) throw {
3323 message: "properties must be inside selector blocks, they cannot be in the root.",
3324 index: c.index,
3325 filename: c.currentFileInfo ? c.currentFileInfo.filename : null
3326 }
3327 },
3328 visitRuleset: function(b, c) {
3329 var d, e = [];
3330 if (b.firstRoot && this.checkPropertiesInRoot(b.rules), b.root) b.accept(this._visitor), c.visitDeeper = !1, (b.firstRoot || b.rules && b.rules.length > 0) && e.splice(0, 0, b);
3331 else {
3332 b.paths && (b.paths = b.paths.filter(function(b) {
3333 var c;
3334 for (" " === b[0].elements[0].combinator.value && (b[0].elements[0].combinator = new a.Combinator("")), c = 0; c < b.length; c++)
3335 if (b[c].getIsReferenced() && b[c].getIsOutput()) return !0;
3336 return !1
3337 }));
3338 for (var f = b.rules, g = f ? f.length : 0, h = 0; g > h;) d = f[h], d && d.rules ? (e.push(this._visitor.visit(d)), f.splice(h, 1), g--) : h++;
3339 g > 0 ? b.accept(this._visitor) : b.rules = null, c.visitDeeper = !1, f = b.rules, f && (this._mergeRules(f), f = b.rules), f && (this._removeDuplicateRules(f), f = b.rules), f && f.length > 0 && b.paths.length > 0 && e.splice(0, 0, b)
3340 }
3341 return 1 === e.length ? e[0] : e
3342 },
3343 _removeDuplicateRules: function(b) {
3344 if (b) {
3345 var c, d, e, f = {};
3346 for (e = b.length - 1; e >= 0; e--)
3347 if (d = b[e], d instanceof a.Rule)
3348 if (f[d.name]) {
3349 c = f[d.name], c instanceof a.Rule && (c = f[d.name] = [f[d.name].toCSS(this._env)]);
3350 var g = d.toCSS(this._env); - 1 !== c.indexOf(g) ? b.splice(e, 1) : c.push(g)
3351 } else f[d.name] = d
3352 }
3353 },
3354 _mergeRules: function(b) {
3355 if (b) {
3356 for (var c, d, e, f = {}, g = 0; g < b.length; g++) d = b[g], d instanceof a.Rule && d.merge && (e = [d.name, d.important ? "!" : ""].join(","), f[e] ? b.splice(g--, 1) : f[e] = [], f[e].push(d));
3357 Object.keys(f).map(function(b) {
3358 function e(b) {
3359 return new a.Expression(b.map(function(a) {
3360 return a.value
3361 }))
3362 }
3363
3364 function g(b) {
3365 return new a.Value(b.map(function(a) {
3366 return a
3367 }))
3368 }
3369 if (c = f[b], c.length > 1) {
3370 d = c[0];
3371 var h = [],
3372 i = [];
3373 c.map(function(a) {
3374 "+" === a.merge && (i.length > 0 && h.push(e(i)), i = []), i.push(a)
3375 }), h.push(e(i)), d.value = g(h)
3376 }
3377 })
3378 }
3379 }
3380 }
3381 }(c("./tree")),
3382 function(a) {
3383 a.extendFinderVisitor = function() {
3384 this._visitor = new a.visitor(this), this.contexts = [], this.allExtendsStack = [
3385 []
3386 ]
3387 }, a.extendFinderVisitor.prototype = {
3388 run: function(a) {
3389 return a = this._visitor.visit(a), a.allExtends = this.allExtendsStack[0], a
3390 },
3391 visitRule: function(a, b) {
3392 b.visitDeeper = !1
3393 },
3394 visitMixinDefinition: function(a, b) {
3395 b.visitDeeper = !1
3396 },
3397 visitRuleset: function(b) {
3398 if (!b.root) {
3399 var c, d, e, f, g = [],
3400 h = b.rules,
3401 i = h ? h.length : 0;
3402 for (c = 0; i > c; c++) b.rules[c] instanceof a.Extend && (g.push(h[c]), b.extendOnEveryPath = !0);
3403 var j = b.paths;
3404 for (c = 0; c < j.length; c++) {
3405 var k = j[c],
3406 l = k[k.length - 1],
3407 m = l.extendList;
3408 for (f = m ? m.slice(0).concat(g) : g, f && (f = f.map(function(a) {
3409 return a.clone()
3410 })), d = 0; d < f.length; d++) this.foundExtends = !0, e = f[d], e.findSelfSelectors(k), e.ruleset = b, 0 === d && (e.firstExtendOnThisSelectorPath = !0), this.allExtendsStack[this.allExtendsStack.length - 1].push(e)
3411 }
3412 this.contexts.push(b.selectors)
3413 }
3414 },
3415 visitRulesetOut: function(a) {
3416 a.root || (this.contexts.length = this.contexts.length - 1)
3417 },
3418 visitMedia: function(a) {
3419 a.allExtends = [], this.allExtendsStack.push(a.allExtends)
3420 },
3421 visitMediaOut: function() {
3422 this.allExtendsStack.length = this.allExtendsStack.length - 1
3423 },
3424 visitDirective: function(a) {
3425 a.allExtends = [], this.allExtendsStack.push(a.allExtends)
3426 },
3427 visitDirectiveOut: function() {
3428 this.allExtendsStack.length = this.allExtendsStack.length - 1
3429 }
3430 }, a.processExtendsVisitor = function() {
3431 this._visitor = new a.visitor(this)
3432 }, a.processExtendsVisitor.prototype = {
3433 run: function(b) {
3434 var c = new a.extendFinderVisitor;
3435 return c.run(b), c.foundExtends ? (b.allExtends = b.allExtends.concat(this.doExtendChaining(b.allExtends, b.allExtends)), this.allExtendsStack = [b.allExtends], this._visitor.visit(b)) : b
3436 },
3437 doExtendChaining: function(b, c, d) {
3438 var e, f, g, h, i, j, k, l, m = [],
3439 n = this;
3440 for (d = d || 0, e = 0; e < b.length; e++)
3441 for (f = 0; f < c.length; f++) j = b[e], k = c[f], j.parent_ids.indexOf(k.object_id) >= 0 || (i = [k.selfSelectors[0]], g = n.findMatch(j, i), g.length && j.selfSelectors.forEach(function(b) {
3442 h = n.extendSelector(g, i, b), l = new a.Extend(k.selector, k.option, 0), l.selfSelectors = h, h[h.length - 1].extendList = [l], m.push(l), l.ruleset = k.ruleset, l.parent_ids = l.parent_ids.concat(k.parent_ids, j.parent_ids), k.firstExtendOnThisSelectorPath && (l.firstExtendOnThisSelectorPath = !0, k.ruleset.paths.push(h))
3443 }));
3444 if (m.length) {
3445 if (this.extendChainCount++, d > 100) {
3446 var o = "{unable to calculate}",
3447 p = "{unable to calculate}";
3448 try {
3449 o = m[0].selfSelectors[0].toCSS(), p = m[0].selector.toCSS()
3450 } catch (q) {}
3451 throw {
3452 message: "extend circular reference detected. One of the circular extends is currently:" + o + ":extend(" + p + ")"
3453 }
3454 }
3455 return m.concat(n.doExtendChaining(m, c, d + 1))
3456 }
3457 return m
3458 },
3459 visitRule: function(a, b) {
3460 b.visitDeeper = !1
3461 },
3462 visitMixinDefinition: function(a, b) {
3463 b.visitDeeper = !1
3464 },
3465 visitSelector: function(a, b) {
3466 b.visitDeeper = !1
3467 },
3468 visitRuleset: function(a) {
3469 if (!a.root) {
3470 var b, c, d, e, f = this.allExtendsStack[this.allExtendsStack.length - 1],
3471 g = [],
3472 h = this;
3473 for (d = 0; d < f.length; d++)
3474 for (c = 0; c < a.paths.length; c++)
3475 if (e = a.paths[c], !a.extendOnEveryPath) {
3476 var i = e[e.length - 1].extendList;
3477 i && i.length || (b = this.findMatch(f[d], e), b.length && f[d].selfSelectors.forEach(function(a) {
3478 g.push(h.extendSelector(b, e, a))
3479 }))
3480 }
3481 a.paths = a.paths.concat(g)
3482 }
3483 },
3484 findMatch: function(a, b) {
3485 var c, d, e, f, g, h, i, j = this,
3486 k = a.selector.elements,
3487 l = [],
3488 m = [];
3489 for (c = 0; c < b.length; c++)
3490 for (d = b[c], e = 0; e < d.elements.length; e++)
3491 for (f = d.elements[e], (a.allowBefore || 0 === c && 0 === e) && l.push({
3492 pathIndex: c,
3493 index: e,
3494 matched: 0,
3495 initialCombinator: f.combinator
3496 }), h = 0; h < l.length; h++) i = l[h], g = f.combinator.value, "" === g && 0 === e && (g = " "), !j.isElementValuesEqual(k[i.matched].value, f.value) || i.matched > 0 && k[i.matched].combinator.value !== g ? i = null : i.matched++, i && (i.finished = i.matched === k.length, i.finished && !a.allowAfter && (e + 1 < d.elements.length || c + 1 < b.length) && (i = null)), i ? i.finished && (i.length = k.length, i.endPathIndex = c, i.endPathElementIndex = e + 1, l.length = 0, m.push(i)) : (l.splice(h, 1), h--);
3497 return m
3498 },
3499 isElementValuesEqual: function(b, c) {
3500 if ("string" == typeof b || "string" == typeof c) return b === c;
3501 if (b instanceof a.Attribute) return b.op !== c.op || b.key !== c.key ? !1 : b.value && c.value ? (b = b.value.value || b.value, c = c.value.value || c.value, b === c) : b.value || c.value ? !1 : !0;
3502 if (b = b.value, c = c.value, b instanceof a.Selector) {
3503 if (!(c instanceof a.Selector) || b.elements.length !== c.elements.length) return !1;
3504 for (var d = 0; d < b.elements.length; d++) {
3505 if (b.elements[d].combinator.value !== c.elements[d].combinator.value && (0 !== d || (b.elements[d].combinator.value || " ") !== (c.elements[d].combinator.value || " "))) return !1;
3506 if (!this.isElementValuesEqual(b.elements[d].value, c.elements[d].value)) return !1
3507 }
3508 return !0
3509 }
3510 return !1
3511 },
3512 extendSelector: function(b, c, d) {
3513 var e, f, g, h, i, j = 0,
3514 k = 0,
3515 l = [];
3516 for (e = 0; e < b.length; e++) h = b[e], f = c[h.pathIndex], g = new a.Element(h.initialCombinator, d.elements[0].value, d.elements[0].index, d.elements[0].currentFileInfo), h.pathIndex > j && k > 0 && (l[l.length - 1].elements = l[l.length - 1].elements.concat(c[j].elements.slice(k)), k = 0, j++), i = f.elements.slice(k, h.index).concat([g]).concat(d.elements.slice(1)), j === h.pathIndex && e > 0 ? l[l.length - 1].elements = l[l.length - 1].elements.concat(i) : (l = l.concat(c.slice(j, h.pathIndex)), l.push(new a.Selector(i))), j = h.endPathIndex, k = h.endPathElementIndex, k >= c[j].elements.length && (k = 0, j++);
3517 return j < c.length && k > 0 && (l[l.length - 1].elements = l[l.length - 1].elements.concat(c[j].elements.slice(k)), j++), l = l.concat(c.slice(j, c.length))
3518 },
3519 visitRulesetOut: function() {},
3520 visitMedia: function(a) {
3521 var b = a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length - 1]);
3522 b = b.concat(this.doExtendChaining(b, a.allExtends)), this.allExtendsStack.push(b)
3523 },
3524 visitMediaOut: function() {
3525 this.allExtendsStack.length = this.allExtendsStack.length - 1
3526 },
3527 visitDirective: function(a) {
3528 var b = a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length - 1]);
3529 b = b.concat(this.doExtendChaining(b, a.allExtends)), this.allExtendsStack.push(b)
3530 },
3531 visitDirectiveOut: function() {
3532 this.allExtendsStack.length = this.allExtendsStack.length - 1
3533 }
3534 }
3535 }(c("./tree")),
3536 function(a) {
3537 a.sourceMapOutput = function(a) {
3538 this._css = [], this._rootNode = a.rootNode, this._writeSourceMap = a.writeSourceMap, this._contentsMap = a.contentsMap, this._contentsIgnoredCharsMap = a.contentsIgnoredCharsMap, this._sourceMapFilename = a.sourceMapFilename, this._outputFilename = a.outputFilename, this._sourceMapURL = a.sourceMapURL, a.sourceMapBasepath && (this._sourceMapBasepath = a.sourceMapBasepath.replace(/\\/g, "/")), this._sourceMapRootpath = a.sourceMapRootpath, this._outputSourceFiles = a.outputSourceFiles, this._sourceMapGeneratorConstructor = a.sourceMapGenerator || c("source-map").SourceMapGenerator, this._sourceMapRootpath && "/" !== this._sourceMapRootpath.charAt(this._sourceMapRootpath.length - 1) && (this._sourceMapRootpath += "/"), this._lineNumber = 0, this._column = 0
3539 }, a.sourceMapOutput.prototype.normalizeFilename = function(a) {
3540 return a = a.replace(/\\/g, "/"), this._sourceMapBasepath && 0 === a.indexOf(this._sourceMapBasepath) && (a = a.substring(this._sourceMapBasepath.length), ("\\" === a.charAt(0) || "/" === a.charAt(0)) && (a = a.substring(1))), (this._sourceMapRootpath || "") + a
3541 }, a.sourceMapOutput.prototype.add = function(a, b, c, d) {
3542 if (a) {
3543 var e, f, g, h, i;
3544 if (b) {
3545 var j = this._contentsMap[b.filename];
3546 this._contentsIgnoredCharsMap[b.filename] && (c -= this._contentsIgnoredCharsMap[b.filename], 0 > c && (c = 0), j = j.slice(this._contentsIgnoredCharsMap[b.filename])), j = j.substring(0, c), f = j.split("\n"), h = f[f.length - 1]
3547 }
3548 if (e = a.split("\n"), g = e[e.length - 1], b)
3549 if (d)
3550 for (i = 0; i < e.length; i++) this._sourceMapGenerator.addMapping({
3551 generated: {
3552 line: this._lineNumber + i + 1,
3553 column: 0 === i ? this._column : 0
3554 },
3555 original: {
3556 line: f.length + i,
3557 column: 0 === i ? h.length : 0
3558 },
3559 source: this.normalizeFilename(b.filename)
3560 });
3561 else this._sourceMapGenerator.addMapping({
3562 generated: {
3563 line: this._lineNumber + 1,
3564 column: this._column
3565 },
3566 original: {
3567 line: f.length,
3568 column: h.length
3569 },
3570 source: this.normalizeFilename(b.filename)
3571 });
3572 1 === e.length ? this._column += g.length : (this._lineNumber += e.length - 1, this._column = g.length), this._css.push(a)
3573 }
3574 }, a.sourceMapOutput.prototype.isEmpty = function() {
3575 return 0 === this._css.length
3576 }, a.sourceMapOutput.prototype.toCSS = function(a) {
3577 if (this._sourceMapGenerator = new this._sourceMapGeneratorConstructor({
3578 file: this._outputFilename,
3579 sourceRoot: null
3580 }), this._outputSourceFiles)
3581 for (var b in this._contentsMap)
3582 if (this._contentsMap.hasOwnProperty(b)) {
3583 var c = this._contentsMap[b];
3584 this._contentsIgnoredCharsMap[b] && (c = c.slice(this._contentsIgnoredCharsMap[b])), this._sourceMapGenerator.setSourceContent(this.normalizeFilename(b), c)
3585 }
3586 if (this._rootNode.genCSS(a, this), this._css.length > 0) {
3587 var d, e = JSON.stringify(this._sourceMapGenerator.toJSON());
3588 this._sourceMapURL ? d = this._sourceMapURL : this._sourceMapFilename && (d = this.normalizeFilename(this._sourceMapFilename)), this._writeSourceMap ? this._writeSourceMap(e) : d = "data:application/json," + encodeURIComponent(e), d && this._css.push("/*# sourceMappingURL=" + d + " */")
3589 }
3590 return this._css.join("")
3591 }
3592 }(c("./tree"));
3593 var y = /^(file|chrome(-extension)?|resource|qrc|app):/.test(location.protocol);
3594 w.env = w.env || ("127.0.0.1" == location.hostname || "0.0.0.0" == location.hostname || "localhost" == location.hostname || location.port && location.port.length > 0 || y ? "development" : "production");
3595 var z = {
3596 debug: 3,
3597 info: 2,
3598 errors: 1,
3599 none: 0
3600 };
3601 if (w.logLevel = "undefined" != typeof w.logLevel ? w.logLevel : "development" === w.env ? z.debug : z.errors, w.async = w.async || !1, w.fileAsync = w.fileAsync || !1, w.poll = w.poll || (y ? 1e3 : 1500), w.functions)
3602 for (var A in w.functions) w.functions.hasOwnProperty(A) && (w.tree.functions[A] = w.functions[A]);
3603 var B = /!dumpLineNumbers:(comments|mediaquery|all)/.exec(location.hash);
3604 B && (w.dumpLineNumbers = B[1]);
3605 var C = /^text\/(x-)?less$/,
3606 D = null,
3607 E = {};
3608 if (w.watch = function() {
3609 return w.watchMode || (w.env = "development", v()), this.watchMode = !0, !0
3610 }, w.unwatch = function() {
3611 return clearInterval(w.watchTimer), this.watchMode = !1, !1
3612 }, /!watch/.test(location.hash) && w.watch(), "development" != w.env) try {
3613 D = "undefined" == typeof a.localStorage ? null : a.localStorage
3614 } catch (F) {}
3615 var G = document.getElementsByTagName("link");
3616 w.sheets = [];
3617 for (var H = 0; H < G.length; H++)("stylesheet/less" === G[H].rel || G[H].rel.match(/stylesheet/) && G[H].type.match(C)) && w.sheets.push(G[H]);
3618 w.modifyVars = function(a) {
3619 w.refresh(!1, a)
3620 }, w.refresh = function(a, b) {
3621 var c, e;
3622 c = e = new Date, u(function(a, b, f, i, k) {
3623 if (a) return j(a, i.href);
3624 if (k.local) d("loading " + i.href + " from cache.", z.info);
3625 else {
3626 d("parsed " + i.href + " successfully.", z.debug);
3627 var l = b.toCSS(w);
3628 l = h(l), g(l, i, k.lastModified)
3629 }
3630 d("css for " + i.href + " generated in " + (new Date - e) + "ms", z.info), 0 === k.remaining && d("less has finished. css generated in " + (new Date - c) + "ms", z.info), e = new Date
3631 }, a, b), n(b)
3632 }, w.refreshStyles = n, w.Parser.fileLoader = s, w.refresh("development" === w.env), "function" == typeof define && define.amd && define(function() {
3633 return w
3634 })
3635}(window); \ No newline at end of file
Powered by cgit v1.2.3 (git 2.41.0)