less-rails-bootstrap 2.3.3 → 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. data/.gitignore +1 -0
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +7 -11
  4. data/lib/less/rails/bootstrap/version.rb +1 -1
  5. data/scripts/update_bootstrap.sh +37 -8
  6. data/test/cases/usage_css_spec.rb +15 -12
  7. data/test/cases/usage_js_spec.rb +4 -4
  8. data/test/dummy_app/app/assets/stylesheets/fonts.css.less +2 -0
  9. data/test/dummy_app/app/assets/stylesheets/framework.css.less +4 -2
  10. data/test/dummy_app/app/assets/stylesheets/individual.css.less +2 -2
  11. data/test/spec_helper.rb +1 -2
  12. data/vendor/assets/javascripts/twitter/bootstrap.js +0 -1
  13. data/vendor/assets/javascripts/twitter/bootstrap/affix.js +58 -49
  14. data/vendor/assets/javascripts/twitter/bootstrap/alert.js +36 -37
  15. data/vendor/assets/javascripts/twitter/bootstrap/button.js +41 -39
  16. data/vendor/assets/javascripts/twitter/bootstrap/carousel.js +131 -125
  17. data/vendor/assets/javascripts/twitter/bootstrap/collapse.js +108 -96
  18. data/vendor/assets/javascripts/twitter/bootstrap/dropdown.js +72 -87
  19. data/vendor/assets/javascripts/twitter/bootstrap/modal.js +149 -155
  20. data/vendor/assets/javascripts/twitter/bootstrap/popover.js +60 -59
  21. data/vendor/assets/javascripts/twitter/bootstrap/scrollspy.js +103 -107
  22. data/vendor/assets/javascripts/twitter/bootstrap/tab.js +73 -82
  23. data/vendor/assets/javascripts/twitter/bootstrap/tooltip.js +258 -255
  24. data/vendor/assets/javascripts/twitter/bootstrap/transition.js +34 -38
  25. data/vendor/frameworks/twitter/bootstrap/accordion.less +9 -12
  26. data/vendor/frameworks/twitter/bootstrap/alerts.less +43 -53
  27. data/vendor/frameworks/twitter/bootstrap/bootstrap.less +21 -21
  28. data/vendor/frameworks/twitter/bootstrap/breadcrumbs.less +7 -8
  29. data/vendor/frameworks/twitter/bootstrap/button-groups.less +93 -151
  30. data/vendor/frameworks/twitter/bootstrap/buttons.less +93 -164
  31. data/vendor/frameworks/twitter/bootstrap/carousel.less +110 -63
  32. data/vendor/frameworks/twitter/bootstrap/close.less +18 -17
  33. data/vendor/frameworks/twitter/bootstrap/code.less +14 -20
  34. data/vendor/frameworks/twitter/bootstrap/component-animations.less +10 -3
  35. data/vendor/frameworks/twitter/bootstrap/dropdowns.less +66 -143
  36. data/vendor/frameworks/twitter/bootstrap/forms.less +281 -548
  37. data/vendor/frameworks/twitter/bootstrap/grid.less +194 -11
  38. data/vendor/frameworks/twitter/bootstrap/media.less +8 -7
  39. data/vendor/frameworks/twitter/bootstrap/mixins.less +290 -446
  40. data/vendor/frameworks/twitter/bootstrap/modals.less +92 -51
  41. data/vendor/frameworks/twitter/bootstrap/navbar.less +285 -402
  42. data/vendor/frameworks/twitter/bootstrap/navs.less +176 -348
  43. data/vendor/frameworks/twitter/bootstrap/pager.less +45 -33
  44. data/vendor/frameworks/twitter/bootstrap/pagination.less +89 -104
  45. data/vendor/frameworks/twitter/bootstrap/popovers.less +53 -51
  46. data/vendor/frameworks/twitter/bootstrap/progress-bars.less +28 -45
  47. data/vendor/frameworks/twitter/bootstrap/responsive-utilities.less +92 -32
  48. data/vendor/frameworks/twitter/bootstrap/scaffolding.less +60 -18
  49. data/vendor/frameworks/twitter/bootstrap/tables.less +131 -164
  50. data/vendor/frameworks/twitter/bootstrap/thumbnails.less +20 -31
  51. data/vendor/frameworks/twitter/bootstrap/tooltip.less +45 -20
  52. data/vendor/frameworks/twitter/bootstrap/type.less +84 -99
  53. data/vendor/frameworks/twitter/bootstrap/utilities.less +17 -5
  54. data/vendor/frameworks/twitter/bootstrap/variables.less +446 -179
  55. data/vendor/frameworks/twitter/bootstrap/wells.less +5 -5
  56. metadata +41 -44
  57. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  58. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  59. data/vendor/assets/javascripts/twitter/bootstrap/typeahead.js +0 -335
  60. data/vendor/assets/stylesheets/twitter/bootstrap-responsive.css.less +0 -1
  61. data/vendor/assets/stylesheets/twitter/bootstrap.css.less +0 -1
  62. data/vendor/frameworks/twitter/bootstrap.less +0 -1
  63. data/vendor/frameworks/twitter/bootstrap/hero-unit.less +0 -25
  64. data/vendor/frameworks/twitter/bootstrap/labels-badges.less +0 -84
  65. data/vendor/frameworks/twitter/bootstrap/layouts.less +0 -16
  66. data/vendor/frameworks/twitter/bootstrap/reset.less +0 -216
  67. data/vendor/frameworks/twitter/bootstrap/responsive-1200px-min.less +0 -28
  68. data/vendor/frameworks/twitter/bootstrap/responsive-767px-max.less +0 -193
  69. data/vendor/frameworks/twitter/bootstrap/responsive-768px-979px.less +0 -19
  70. data/vendor/frameworks/twitter/bootstrap/responsive-navbar.less +0 -189
  71. data/vendor/frameworks/twitter/bootstrap/responsive.less +0 -48
  72. data/vendor/frameworks/twitter/bootstrap/sprites.less +0 -197
@@ -3,51 +3,40 @@
3
3
  // --------------------------------------------------
4
4
 
5
5
 
6
- // Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files
6
+ // Base classes
7
+ // For thumbnail block-level composite components and simple image styles
7
8
 
8
- // Make wrapper ul behave like the grid
9
- .thumbnails {
10
- margin-left: -@gridGutterWidth;
11
- list-style: none;
12
- .clearfix();
13
- }
14
- // Fluid rows have no left margin
15
- .row-fluid .thumbnails {
16
- margin-left: 0;
17
- }
18
-
19
- // Float li to make thumbnails appear in a row
20
- .thumbnails > li {
21
- float: left; // Explicity set the float since we don't require .span* classes
22
- margin-bottom: @baseLineHeight;
23
- margin-left: @gridGutterWidth;
9
+ // The actual thumbnailed element
10
+ // Can be `a`, `div`, or `img`
11
+ .thumbnail,
12
+ .img-thumbnail {
13
+ padding: 4px;
14
+ line-height: @line-height-base;
15
+ background-color: @thumbnail-bg;
16
+ border: 1px solid @thumbnail-border;
17
+ border-radius: @thumbnail-border-radius;
18
+ .transition(all .2s ease-in-out);
24
19
  }
25
-
26
- // The actual thumbnail (can be `a` or `div`)
27
20
  .thumbnail {
28
21
  display: block;
29
- padding: 4px;
30
- line-height: @baseLineHeight;
31
- border: 1px solid #ddd;
32
- .border-radius(@baseBorderRadius);
33
- .box-shadow(0 1px 3px rgba(0,0,0,.055));
34
- .transition(all .2s ease-in-out);
35
22
  }
36
- // Add a hover/focus state for linked versions only
23
+ .thumbnail > img,
24
+ .img-thumbnail {
25
+ .img-responsive();
26
+ }
27
+
28
+ // Add a hover state for linked versions only
37
29
  a.thumbnail:hover,
38
30
  a.thumbnail:focus {
39
- border-color: @linkColor;
40
- .box-shadow(0 1px 4px rgba(0,105,214,.25));
31
+ border-color: @link-color;
41
32
  }
42
33
 
43
34
  // Images and captions
44
35
  .thumbnail > img {
45
- display: block;
46
- max-width: 100%;
47
36
  margin-left: auto;
48
37
  margin-right: auto;
49
38
  }
50
39
  .thumbnail .caption {
51
40
  padding: 9px;
52
- color: @gray;
41
+ color: @thumbnail-caption-color;
53
42
  }
@@ -6,13 +6,14 @@
6
6
  // Base class
7
7
  .tooltip {
8
8
  position: absolute;
9
- z-index: @zindexTooltip;
9
+ z-index: @zindex-tooltip;
10
10
  display: block;
11
11
  visibility: visible;
12
- font-size: 11px;
12
+ font-size: @font-size-small;
13
13
  line-height: 1.4;
14
14
  .opacity(0);
15
- &.in { .opacity(80); }
15
+
16
+ &.in { .opacity(1); }
16
17
  &.top { margin-top: -3px; padding: 5px 0; }
17
18
  &.right { margin-left: 3px; padding: 0 5px; }
18
19
  &.bottom { margin-top: 3px; padding: 5px 0; }
@@ -21,13 +22,13 @@
21
22
 
22
23
  // Wrapper for the tooltip content
23
24
  .tooltip-inner {
24
- max-width: 200px;
25
- padding: 8px;
26
- color: @tooltipColor;
25
+ max-width: @tooltip-max-width;
26
+ padding: 3px 8px;
27
+ color: @tooltip-color;
27
28
  text-align: center;
28
29
  text-decoration: none;
29
- background-color: @tooltipBackground;
30
- .border-radius(@baseBorderRadius);
30
+ background-color: @tooltip-bg;
31
+ border-radius: @border-radius-base;
31
32
  }
32
33
 
33
34
  // Arrows
@@ -42,29 +43,53 @@
42
43
  &.top .tooltip-arrow {
43
44
  bottom: 0;
44
45
  left: 50%;
45
- margin-left: -@tooltipArrowWidth;
46
- border-width: @tooltipArrowWidth @tooltipArrowWidth 0;
47
- border-top-color: @tooltipArrowColor;
46
+ margin-left: -@tooltip-arrow-width;
47
+ border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
48
+ border-top-color: @tooltip-arrow-color;
49
+ }
50
+ &.top-left .tooltip-arrow {
51
+ bottom: 0;
52
+ left: 5px;
53
+ border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
54
+ border-top-color: @tooltip-arrow-color;
55
+ }
56
+ &.top-right .tooltip-arrow {
57
+ bottom: 0;
58
+ right: 5px;
59
+ border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
60
+ border-top-color: @tooltip-arrow-color;
48
61
  }
49
62
  &.right .tooltip-arrow {
50
63
  top: 50%;
51
64
  left: 0;
52
- margin-top: -@tooltipArrowWidth;
53
- border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0;
54
- border-right-color: @tooltipArrowColor;
65
+ margin-top: -@tooltip-arrow-width;
66
+ border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
67
+ border-right-color: @tooltip-arrow-color;
55
68
  }
56
69
  &.left .tooltip-arrow {
57
70
  top: 50%;
58
71
  right: 0;
59
- margin-top: -@tooltipArrowWidth;
60
- border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth;
61
- border-left-color: @tooltipArrowColor;
72
+ margin-top: -@tooltip-arrow-width;
73
+ border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
74
+ border-left-color: @tooltip-arrow-color;
62
75
  }
63
76
  &.bottom .tooltip-arrow {
64
77
  top: 0;
65
78
  left: 50%;
66
- margin-left: -@tooltipArrowWidth;
67
- border-width: 0 @tooltipArrowWidth @tooltipArrowWidth;
68
- border-bottom-color: @tooltipArrowColor;
79
+ margin-left: -@tooltip-arrow-width;
80
+ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
81
+ border-bottom-color: @tooltip-arrow-color;
82
+ }
83
+ &.bottom-left .tooltip-arrow {
84
+ top: 0;
85
+ left: 5px;
86
+ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
87
+ border-bottom-color: @tooltip-arrow-color;
88
+ }
89
+ &.bottom-right .tooltip-arrow {
90
+ top: 0;
91
+ right: 5px;
92
+ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
93
+ border-bottom-color: @tooltip-arrow-color;
69
94
  }
70
95
  }
@@ -7,13 +7,17 @@
7
7
  // -------------------------
8
8
 
9
9
  p {
10
- margin: 0 0 @baseLineHeight / 2;
10
+ margin: 0 0 (@line-height-computed / 2);
11
11
  }
12
12
  .lead {
13
- margin-bottom: @baseLineHeight;
14
- font-size: @baseFontSize * 1.5;
13
+ margin-bottom: @line-height-computed;
14
+ font-size: (@font-size-base * 1.15);
15
15
  font-weight: 200;
16
- line-height: @baseLineHeight * 1.5;
16
+ line-height: 1.4;
17
+
18
+ @media (min-width: 768px) {
19
+ font-size: (@font-size-base * 1.5);
20
+ }
17
21
  }
18
22
 
19
23
 
@@ -23,31 +27,18 @@ p {
23
27
  // Ex: 14px base font * 85% = about 12px
24
28
  small { font-size: 85%; }
25
29
 
26
- strong { font-weight: bold; }
27
- em { font-style: italic; }
30
+ // Undo browser default styling
28
31
  cite { font-style: normal; }
29
32
 
30
- // Utility classes
31
- .muted { color: @grayLight; }
32
- a.muted:hover,
33
- a.muted:focus { color: darken(@grayLight, 10%); }
34
-
35
- .text-warning { color: @warningText; }
36
- a.text-warning:hover,
37
- a.text-warning:focus { color: darken(@warningText, 10%); }
38
-
39
- .text-error { color: @errorText; }
40
- a.text-error:hover,
41
- a.text-error:focus { color: darken(@errorText, 10%); }
42
-
43
- .text-info { color: @infoText; }
44
- a.text-info:hover,
45
- a.text-info:focus { color: darken(@infoText, 10%); }
46
-
47
- .text-success { color: @successText; }
48
- a.text-success:hover,
49
- a.text-success:focus { color: darken(@successText, 10%); }
33
+ // Contextual emphasis
34
+ .text-muted { color: @text-muted; }
35
+ .text-primary { color: @brand-primary; }
36
+ .text-warning { color: @state-warning-text; }
37
+ .text-danger { color: @state-danger-text; }
38
+ .text-success { color: @state-success-text; }
39
+ .text-info { color: @state-info-text; }
50
40
 
41
+ // Alignment
51
42
  .text-left { text-align: left; }
52
43
  .text-right { text-align: right; }
53
44
  .text-center { text-align: center; }
@@ -56,44 +47,51 @@ a.text-success:focus { color: darken(@successText, 10%); }
56
47
  // Headings
57
48
  // -------------------------
58
49
 
59
- h1, h2, h3, h4, h5, h6 {
60
- margin: (@baseLineHeight / 2) 0;
61
- font-family: @headingsFontFamily;
62
- font-weight: @headingsFontWeight;
63
- line-height: @baseLineHeight;
64
- color: @headingsColor;
65
- text-rendering: optimizelegibility; // Fix the character spacing for headings
50
+ h1, h2, h3, h4, h5, h6,
51
+ .h1, .h2, .h3, .h4, .h5, .h6 {
52
+ font-family: @headings-font-family;
53
+ font-weight: @headings-font-weight;
54
+ line-height: @headings-line-height;
66
55
  small {
67
56
  font-weight: normal;
68
57
  line-height: 1;
69
- color: @grayLight;
58
+ color: @headings-small-color;
70
59
  }
71
60
  }
72
61
 
73
62
  h1,
74
63
  h2,
75
- h3 { line-height: @baseLineHeight * 2; }
64
+ h3 {
65
+ margin-top: @line-height-computed;
66
+ margin-bottom: (@line-height-computed / 2);
67
+ }
68
+ h4,
69
+ h5,
70
+ h6 {
71
+ margin-top: (@line-height-computed / 2);
72
+ margin-bottom: (@line-height-computed / 2);
73
+ }
76
74
 
77
- h1 { font-size: @baseFontSize * 2.75; } // ~38px
78
- h2 { font-size: @baseFontSize * 2.25; } // ~32px
79
- h3 { font-size: @baseFontSize * 1.75; } // ~24px
80
- h4 { font-size: @baseFontSize * 1.25; } // ~18px
81
- h5 { font-size: @baseFontSize; }
82
- h6 { font-size: @baseFontSize * 0.85; } // ~12px
75
+ h1, .h1 { font-size: ceil(@font-size-base * 2.70); } // ~38px
76
+ h2, .h2 { font-size: ceil(@font-size-base * 2.25); } // ~32px
77
+ h3, .h3 { font-size: ceil(@font-size-base * 1.70); } // ~24px
78
+ h4, .h4 { font-size: ceil(@font-size-base * 1.25); } // ~18px
79
+ h5, .h5 { font-size: @font-size-base; }
80
+ h6, .h6 { font-size: ceil(@font-size-base * 0.85); } // ~12px
83
81
 
84
- h1 small { font-size: @baseFontSize * 1.75; } // ~24px
85
- h2 small { font-size: @baseFontSize * 1.25; } // ~18px
86
- h3 small { font-size: @baseFontSize; }
87
- h4 small { font-size: @baseFontSize; }
82
+ h1 small, .h1 small { font-size: ceil(@font-size-base * 1.70); } // ~24px
83
+ h2 small, .h2 small { font-size: ceil(@font-size-base * 1.25); } // ~18px
84
+ h3 small, .h3 small,
85
+ h4 small, .h4 small { font-size: @font-size-base; }
88
86
 
89
87
 
90
88
  // Page header
91
89
  // -------------------------
92
90
 
93
91
  .page-header {
94
- padding-bottom: (@baseLineHeight / 2) - 1;
95
- margin: @baseLineHeight 0 (@baseLineHeight * 1.5);
96
- border-bottom: 1px solid @grayLighter;
92
+ padding-bottom: ((@line-height-computed / 2) - 1);
93
+ margin: (@line-height-computed * 2) 0 @line-height-computed;
94
+ border-bottom: 1px solid @page-header-border-color;
97
95
  }
98
96
 
99
97
 
@@ -102,35 +100,28 @@ h4 small { font-size: @baseFontSize; }
102
100
  // --------------------------------------------------
103
101
 
104
102
  // Unordered and Ordered lists
105
- ul, ol {
106
- padding: 0;
107
- margin: 0 0 @baseLineHeight / 2 25px;
108
- }
109
- ul ul,
110
- ul ol,
111
- ol ol,
112
- ol ul {
113
- margin-bottom: 0;
114
- }
115
- li {
116
- line-height: @baseLineHeight;
103
+ ul,
104
+ ol {
105
+ margin-top: 0;
106
+ margin-bottom: (@line-height-computed / 2);
107
+ ul,
108
+ ol{
109
+ margin-bottom: 0;
110
+ }
117
111
  }
118
112
 
119
- // Remove default list styles
120
- ul.unstyled,
121
- ol.unstyled {
122
- margin-left: 0;
123
- list-style: none;
124
- }
113
+ // List options
125
114
 
126
- // Single-line list items
127
- ul.inline,
128
- ol.inline {
129
- margin-left: 0;
115
+ // Unstyled keeps list items block level, just removes default browser padding and list-style
116
+ .list-unstyled {
117
+ padding-left: 0;
130
118
  list-style: none;
119
+ }
120
+ // Inline turns list items into inline-block
121
+ .list-inline {
122
+ .list-unstyled();
131
123
  > li {
132
124
  display: inline-block;
133
- .ie7-inline-block();
134
125
  padding-left: 5px;
135
126
  padding-right: 5px;
136
127
  }
@@ -138,50 +129,42 @@ ol.inline {
138
129
 
139
130
  // Description Lists
140
131
  dl {
141
- margin-bottom: @baseLineHeight;
132
+ margin-bottom: @line-height-computed;
142
133
  }
143
134
  dt,
144
135
  dd {
145
- line-height: @baseLineHeight;
136
+ line-height: @line-height-base;
146
137
  }
147
138
  dt {
148
139
  font-weight: bold;
149
140
  }
150
141
  dd {
151
- margin-left: @baseLineHeight / 2;
142
+ margin-left: 0; // Undo browser default
152
143
  }
153
144
  // Horizontal layout (like forms)
154
145
  .dl-horizontal {
155
- .clearfix(); // Ensure dl clears floats if empty dd elements present
156
146
  dt {
157
147
  float: left;
158
- width: @horizontalComponentOffset - 20;
148
+ width: (@component-offset-horizontal - 20);
159
149
  clear: left;
160
150
  text-align: right;
161
151
  .text-overflow();
162
152
  }
163
153
  dd {
164
- margin-left: @horizontalComponentOffset;
154
+ .clearfix(); // Clear the floated `dt` if an empty `dd` is present
155
+ margin-left: @component-offset-horizontal;
165
156
  }
166
157
  }
167
158
 
168
159
  // MISC
169
160
  // ----
170
161
 
171
- // Horizontal rules
172
- hr {
173
- margin: @baseLineHeight 0;
174
- border: 0;
175
- border-top: 1px solid @hrBorder;
176
- border-bottom: 1px solid @white;
177
- }
178
-
179
162
  // Abbreviations and acronyms
180
163
  abbr[title],
181
- // Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257
164
+ // Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
182
165
  abbr[data-original-title] {
183
166
  cursor: help;
184
- border-bottom: 1px dotted @grayLight;
167
+ border-bottom: 1px dotted @abbr-border-color;
185
168
  }
186
169
  abbr.initialism {
187
170
  font-size: 90%;
@@ -190,21 +173,23 @@ abbr.initialism {
190
173
 
191
174
  // Blockquotes
192
175
  blockquote {
193
- padding: 0 0 0 15px;
194
- margin: 0 0 @baseLineHeight;
195
- border-left: 5px solid @grayLighter;
176
+ padding: (@line-height-computed / 2) @line-height-computed;
177
+ margin: 0 0 @line-height-computed;
178
+ border-left: 5px solid @blockquote-border-color;
196
179
  p {
197
- margin-bottom: 0;
198
- font-size: @baseFontSize * 1.25;
180
+ font-size: (@font-size-base * 1.25);
199
181
  font-weight: 300;
200
182
  line-height: 1.25;
201
183
  }
184
+ p:last-child {
185
+ margin-bottom: 0;
186
+ }
202
187
  small {
203
188
  display: block;
204
- line-height: @baseLineHeight;
205
- color: @grayLight;
189
+ line-height: @line-height-base;
190
+ color: @blockquote-small-color;
206
191
  &:before {
207
- content: '\2014 \00A0';
192
+ content: '\2014 \00A0';// EM DASH, NBSP
208
193
  }
209
194
  }
210
195
 
@@ -213,7 +198,7 @@ blockquote {
213
198
  float: right;
214
199
  padding-right: 15px;
215
200
  padding-left: 0;
216
- border-right: 5px solid @grayLighter;
201
+ border-right: 5px solid @blockquote-border-color;
217
202
  border-left: 0;
218
203
  p,
219
204
  small {
@@ -224,7 +209,7 @@ blockquote {
224
209
  content: '';
225
210
  }
226
211
  &:after {
227
- content: '\00A0 \2014';
212
+ content: '\00A0 \2014';// NBSP, EM DASH
228
213
  }
229
214
  }
230
215
  }
@@ -241,7 +226,7 @@ blockquote:after {
241
226
  // Addresses
242
227
  address {
243
228
  display: block;
244
- margin-bottom: @baseLineHeight;
229
+ margin-bottom: @line-height-computed;
245
230
  font-style: normal;
246
- line-height: @baseLineHeight;
231
+ line-height: @line-height-base;
247
232
  }