| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <style> | 4 <style> |
| 5 #alignItemsBaseline { | 5 #alignItemsBaseline { |
| 6 align-items: baseline; | 6 align-items: baseline; |
| 7 } | 7 } |
| 8 | 8 |
| 9 #alignItemsLastBaseline { |
| 10 align-items: last-baseline; |
| 11 } |
| 12 |
| 9 #alignItemsStretch { | 13 #alignItemsStretch { |
| 10 align-items: stretch; | 14 align-items: stretch; |
| 11 } | 15 } |
| 12 | 16 |
| 13 #alignItemsStart { | 17 #alignItemsStart { |
| 14 align-items: start; | 18 align-items: start; |
| 15 } | 19 } |
| 16 | 20 |
| 17 #alignItemsEnd { | 21 #alignItemsEnd { |
| 18 align-items: end; | 22 align-items: end; |
| 19 } | 23 } |
| 20 | 24 |
| 21 #alignItemsCenter { | 25 #alignItemsCenter { |
| 22 align-items: center; | 26 align-items: center; |
| 23 } | 27 } |
| 24 | 28 |
| 25 #alignItemsItemsStart { | 29 #alignItemsSelfStart { |
| 26 align-items: self-start; | 30 align-items: self-start; |
| 27 } | 31 } |
| 28 | 32 |
| 29 #alignItemsItemsEnd { | 33 #alignItemsSelfEnd { |
| 30 align-items: self-end; | 34 align-items: self-end; |
| 31 } | 35 } |
| 32 | 36 |
| 33 #alignItemsLeft { | 37 #alignItemsLeft { |
| 34 align-items: left; | 38 align-items: left; |
| 35 } | 39 } |
| 36 | 40 |
| 37 #alignItemsRight { | 41 #alignItemsRight { |
| 38 align-items: right; | 42 align-items: right; |
| 39 } | 43 } |
| 40 | 44 |
| 45 #alignItemsFlexStart { |
| 46 align-items: flex-start; |
| 47 } |
| 48 |
| 49 #alignItemsFlexEnd { |
| 50 align-items: flex-end; |
| 51 } |
| 52 |
| 41 #alignItemsEndTrue { | 53 #alignItemsEndTrue { |
| 42 align-items: end true; | 54 align-items: end true; |
| 43 } | 55 } |
| 44 | 56 |
| 45 #alignItemsCenterTrue { | 57 #alignItemsCenterTrue { |
| 46 align-items: center true; | 58 align-items: center true; |
| 47 } | 59 } |
| 48 | 60 |
| 49 #alignItemsItemsEndSafe { | 61 #alignItemsSelfEndSafe { |
| 50 align-items: self-end safe; | 62 align-items: self-end safe; |
| 51 } | 63 } |
| 52 | 64 |
| 53 #alignItemsItemsStartSafe { | 65 #alignItemsSelfStartSafe { |
| 54 align-items: self-start safe; | 66 align-items: self-start safe; |
| 55 } | 67 } |
| 56 | 68 |
| 57 #alignItemsRightSafe { | 69 #alignItemsRightSafe { |
| 58 align-items: right safe; | 70 align-items: right safe; |
| 59 } | 71 } |
| 60 | 72 |
| 61 #alignItemsLeftTrue { | 73 #alignItemsLeftTrue { |
| 62 align-items: left true; | 74 align-items: left true; |
| 63 } | 75 } |
| 76 |
| 77 #alignItemsFlexStartTrue { |
| 78 align-items: flex-start true; |
| 79 } |
| 80 |
| 81 #alignItemsFlexEndSafe { |
| 82 align-items: flex-end safe; |
| 83 } |
| 84 |
| 64 </style> | 85 </style> |
| 65 <script src="../../resources/js-test.js"></script> | 86 <script src="../../resources/js-test.js"></script> |
| 66 </head> | 87 </head> |
| 67 <body> | 88 <body> |
| 68 <div id="alignItemsBaseline"></div> | 89 <div id="alignItemsBaseline"></div> |
| 90 <div id="alignItemsLastBaseline"></div> |
| 69 <div id="alignItemsStretch"></div> | 91 <div id="alignItemsStretch"></div> |
| 70 <div id="alignItemsStart"></div> | 92 <div id="alignItemsStart"></div> |
| 71 <div id="alignItemsEnd"></div> | 93 <div id="alignItemsEnd"></div> |
| 72 <div id="alignItemsCenter"></div> | 94 <div id="alignItemsCenter"></div> |
| 73 <div id="alignItemsItemsStart"></div> | 95 <div id="alignItemsSelfStart"></div> |
| 74 <div id="alignItemsItemsEnd"></div> | 96 <div id="alignItemsSelfEnd"></div> |
| 75 <div id="alignItemsLeft"></div> | 97 <div id="alignItemsLeft"></div> |
| 76 <div id="alignItemsRight"></div> | 98 <div id="alignItemsRight"></div> |
| 99 <div id="alignItemsFlexStart"></div> |
| 100 <div id="alignItemsFlexEnd"></div> |
| 77 | 101 |
| 78 <div id="alignItemsEndTrue"></div> | 102 <div id="alignItemsEndTrue"></div> |
| 79 <div id="alignItemsCenterTrue"></div> | 103 <div id="alignItemsCenterTrue"></div> |
| 80 <div id="alignItemsItemsEndSafe"></div> | 104 <div id="alignItemsSelfEndSafe"></div> |
| 81 <div id="alignItemsItemsStartSafe"></div> | 105 <div id="alignItemsSelfStartSafe"></div> |
| 82 <div id="alignItemsRightSafe"></div> | 106 <div id="alignItemsRightSafe"></div> |
| 83 <div id="alignItemsLeftTrue"></div> | 107 <div id="alignItemsLeftTrue"></div> |
| 108 <div id="alignItemsFlexStartTrue"></div> |
| 109 <div id="alignItemsFlexEndSafe"></div> |
| 110 <script src="resources/alignment-parsing-utils.js"></script> |
| 84 <script> | 111 <script> |
| 85 description('Test that setting and getting align-items works as expected'); | 112 description('Test that setting and getting align-items works as expected'); |
| 86 | 113 |
| 87 debug("Test getting align-items set through CSS"); | 114 debug("Test getting align-items set through CSS"); |
| 88 var alignItemsBaseline = document.getElementById("alignItemsBaseline"); | 115 var alignItemsBaseline = document.getElementById("alignItemsBaseline"); |
| 89 shouldBe("getComputedStyle(alignItemsBaseline, '').getPropertyValue('align-items
')", "'baseline'"); | 116 shouldBe("getComputedStyle(alignItemsBaseline, '').getPropertyValue('align-items
')", "'baseline'"); |
| 90 | 117 |
| 118 var alignItemsLastBaseline = document.getElementById("alignItemsLastBaseline"); |
| 119 shouldBe("getComputedStyle(alignItemsLastBaseline, '').getPropertyValue('align-i
tems')", "'last-baseline'"); |
| 120 |
| 91 var alignItemsStretch = document.getElementById("alignItemsStretch"); | 121 var alignItemsStretch = document.getElementById("alignItemsStretch"); |
| 92 shouldBe("getComputedStyle(alignItemsStretch, '').getPropertyValue('align-items'
)", "'stretch'"); | 122 shouldBe("getComputedStyle(alignItemsStretch, '').getPropertyValue('align-items'
)", "'stretch'"); |
| 93 | 123 |
| 94 var alignItemsStart = document.getElementById("alignItemsStart"); | 124 var alignItemsStart = document.getElementById("alignItemsStart"); |
| 95 shouldBe("getComputedStyle(alignItemsStart, '').getPropertyValue('align-items')"
, "'start'"); | 125 shouldBe("getComputedStyle(alignItemsStart, '').getPropertyValue('align-items')"
, "'start'"); |
| 96 | 126 |
| 97 var alignItemsEnd = document.getElementById("alignItemsEnd"); | 127 var alignItemsEnd = document.getElementById("alignItemsEnd"); |
| 98 shouldBe("getComputedStyle(alignItemsEnd, '').getPropertyValue('align-items')",
"'end'"); | 128 shouldBe("getComputedStyle(alignItemsEnd, '').getPropertyValue('align-items')",
"'end'"); |
| 99 | 129 |
| 100 var alignItemsCenter = document.getElementById("alignItemsCenter"); | 130 var alignItemsCenter = document.getElementById("alignItemsCenter"); |
| 101 shouldBe("getComputedStyle(alignItemsCenter, '').getPropertyValue('align-items')
", "'center'"); | 131 shouldBe("getComputedStyle(alignItemsCenter, '').getPropertyValue('align-items')
", "'center'"); |
| 102 | 132 |
| 103 var alignItemsItemsEnd = document.getElementById("alignItemsItemsEnd"); | 133 var alignItemsSelfEnd = document.getElementById("alignItemsSelfEnd"); |
| 104 shouldBe("getComputedStyle(alignItemsItemsEnd, '').getPropertyValue('align-items
')", "'self-end'"); | 134 shouldBe("getComputedStyle(alignItemsSelfEnd, '').getPropertyValue('align-items'
)", "'self-end'"); |
| 105 | 135 |
| 106 var alignItemsItemsStart = document.getElementById("alignItemsItemsStart"); | 136 var alignItemsSelfStart = document.getElementById("alignItemsSelfStart"); |
| 107 shouldBe("getComputedStyle(alignItemsItemsStart, '').getPropertyValue('align-ite
ms')", "'self-start'"); | 137 shouldBe("getComputedStyle(alignItemsSelfStart, '').getPropertyValue('align-item
s')", "'self-start'"); |
| 108 | 138 |
| 109 var alignItemsLeft = document.getElementById("alignItemsLeft"); | 139 var alignItemsLeft = document.getElementById("alignItemsLeft"); |
| 110 shouldBe("getComputedStyle(alignItemsLeft, '').getPropertyValue('align-items')",
"'left'"); | 140 shouldBe("getComputedStyle(alignItemsLeft, '').getPropertyValue('align-items')",
"'left'"); |
| 111 | 141 |
| 112 var alignItemsRight = document.getElementById("alignItemsRight"); | 142 var alignItemsRight = document.getElementById("alignItemsRight"); |
| 113 shouldBe("getComputedStyle(alignItemsRight, '').getPropertyValue('align-items')"
, "'right'"); | 143 shouldBe("getComputedStyle(alignItemsRight, '').getPropertyValue('align-items')"
, "'right'"); |
| 114 | 144 |
| 145 var alignItemsFlexStart = document.getElementById("alignItemsFlexStart"); |
| 146 shouldBe("getComputedStyle(alignItemsFlexStart, '').getPropertyValue('align-item
s')", "'flex-start'"); |
| 147 |
| 148 var alignItemsFlexEnd = document.getElementById("alignItemsFlexEnd"); |
| 149 shouldBe("getComputedStyle(alignItemsFlexEnd, '').getPropertyValue('align-items'
)", "'flex-end'"); |
| 150 |
| 115 var alignItemsEndTrue = document.getElementById("alignItemsEndTrue"); | 151 var alignItemsEndTrue = document.getElementById("alignItemsEndTrue"); |
| 116 shouldBe("getComputedStyle(alignItemsEndTrue, '').getPropertyValue('align-items'
)", "'end true'"); | 152 shouldBe("getComputedStyle(alignItemsEndTrue, '').getPropertyValue('align-items'
)", "'end true'"); |
| 117 | 153 |
| 118 var alignItemsCenterTrue = document.getElementById("alignItemsCenterTrue"); | 154 var alignItemsCenterTrue = document.getElementById("alignItemsCenterTrue"); |
| 119 shouldBe("getComputedStyle(alignItemsCenterTrue, '').getPropertyValue('align-ite
ms')", "'center true'"); | 155 shouldBe("getComputedStyle(alignItemsCenterTrue, '').getPropertyValue('align-ite
ms')", "'center true'"); |
| 120 | 156 |
| 121 var alignItemsItemsEndSafe = document.getElementById("alignItemsItemsEndSafe"); | 157 var alignItemsSelfEndSafe = document.getElementById("alignItemsSelfEndSafe"); |
| 122 shouldBe("getComputedStyle(alignItemsItemsEndSafe, '').getPropertyValue('align-i
tems')", "'self-end safe'"); | 158 shouldBe("getComputedStyle(alignItemsSelfEndSafe, '').getPropertyValue('align-it
ems')", "'self-end safe'"); |
| 123 | 159 |
| 124 var alignItemsItemsStartSafe = document.getElementById("alignItemsItemsStartSafe
"); | 160 var alignItemsSelfStartSafe = document.getElementById("alignItemsSelfStartSafe")
; |
| 125 shouldBe("getComputedStyle(alignItemsItemsStartSafe, '').getPropertyValue('align
-items')", "'self-start safe'"); | 161 shouldBe("getComputedStyle(alignItemsSelfStartSafe, '').getPropertyValue('align-
items')", "'self-start safe'"); |
| 126 | 162 |
| 127 var alignItemsRightSafe = document.getElementById("alignItemsRightSafe"); | 163 var alignItemsRightSafe = document.getElementById("alignItemsRightSafe"); |
| 128 shouldBe("getComputedStyle(alignItemsRightSafe, '').getPropertyValue('align-item
s')", "'right safe'"); | 164 shouldBe("getComputedStyle(alignItemsRightSafe, '').getPropertyValue('align-item
s')", "'right safe'"); |
| 129 | 165 |
| 130 var alignItemsLeftTrue = document.getElementById("alignItemsLeftTrue"); | 166 var alignItemsLeftTrue = document.getElementById("alignItemsLeftTrue"); |
| 131 shouldBe("getComputedStyle(alignItemsLeftTrue, '').getPropertyValue('align-items
')", "'left true'"); | 167 shouldBe("getComputedStyle(alignItemsLeftTrue, '').getPropertyValue('align-items
')", "'left true'"); |
| 132 | 168 |
| 169 var alignItemsFlexStartTrue = document.getElementById("alignItemsFlexStartTrue")
; |
| 170 shouldBe("getComputedStyle(alignItemsFlexStartTrue, '').getPropertyValue('align-
items')", "'flex-start true'"); |
| 171 |
| 172 var alignItemsFlexEndSafe = document.getElementById("alignItemsFlexEndSafe"); |
| 173 shouldBe("getComputedStyle(alignItemsFlexEndSafe, '').getPropertyValue('align-it
ems')", "'flex-end safe'"); |
| 174 |
| 133 debug(""); | 175 debug(""); |
| 134 debug("Test initial value of align-items through JS"); | 176 debug("Test initial value of align-items through JS"); |
| 135 element = document.createElement("div"); | 177 element = document.createElement("div"); |
| 136 document.body.appendChild(element); | 178 document.body.appendChild(element); |
| 137 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 179 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'star
t'"); |
| 138 | 180 |
| 139 debug(""); | 181 debug(""); |
| 140 debug("Test getting and setting align-items through JS"); | 182 debug("Test getting and setting align-items through JS"); |
| 141 element = document.createElement("div"); | 183 element = document.createElement("div"); |
| 142 document.body.appendChild(element); | 184 document.body.appendChild(element); |
| 143 element.style.alignItems = "center"; | 185 element.style.alignItems = "center"; |
| 144 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'cent
er'"); | 186 checkValues(element, "alignItems", "align-items", "center", "center"); |
| 145 | 187 |
| 188 element.style.alignItems = "true start"; |
| 189 checkValues(element, "alignItems", "align-items", "start true", "start true"); |
| 190 |
| 191 element.style.alignItems = "flex-end safe"; |
| 192 checkValues(element, "alignItems", "align-items", "flex-end safe", "flex-end sa
fe"); |
| 193 |
| 194 element.style.alignItems = "right"; |
| 195 checkValues(element, "alignItems", "align-items", "right", "right"); |
| 196 |
| 197 element.style.alignItems = "center"; |
| 198 checkValues(element, "alignItems", "align-items", "center", "center"); |
| 199 |
| 200 element.style.alignItems = "self-start"; |
| 201 checkValues(element, "alignItems", "align-items", "self-start", "self-start"); |
| 202 |
| 203 element.style.alignItems = "auto"; |
| 204 checkValues(element, "alignItems", "align-items", "auto", "start"); |
| 205 |
| 206 element.style.display = "flex"; |
| 207 element.style.alignItems = "auto"; |
| 208 checkValues(element, "alignItems", "align-items", "auto", "stretch"); |
| 209 |
| 210 element.style.display = "grid"; |
| 211 element.style.alignItems = "auto"; |
| 212 checkValues(element, "alignItems", "align-items", "auto", "stretch"); |
| 213 |
| 214 element.style.alignItems = "self-end"; |
| 215 checkValues(element, "alignItems", "align-items", "self-end", "self-end"); |
| 216 |
| 217 debug(""); |
| 218 debug("Test bad combinations of align-items"); |
| 146 element = document.createElement("div"); | 219 element = document.createElement("div"); |
| 147 document.body.appendChild(element); | 220 document.body.appendChild(element); |
| 148 element.style.alignItems = "true start"; | |
| 149 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'star
t true'"); | |
| 150 | 221 |
| 151 element.style.alignItems = "auto"; | 222 checkBadValues(element, "alignItems", "align-items", "true auto"); |
| 152 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'auto
'"); | 223 checkBadValues(element, "alignItems", "align-items", "auto safe"); |
| 153 | 224 checkBadValues(element, "alignItems", "align-items", "auto left"); |
| 154 debug(""); | 225 checkBadValues(element, "alignItems", "align-items", "baseline safe"); |
| 155 debug("Test bad combinaisons of align-items"); | 226 checkBadValues(element, "alignItems", "align-items", "baseline center"); |
| 156 element = document.createElement("div"); | 227 checkBadValues(element, "alignItems", "align-items", "stretch true"); |
| 157 document.body.appendChild(element); | 228 checkBadValues(element, "alignItems", "align-items", "stretch right"); |
| 158 element.style.alignItems = "true auto"; | 229 checkBadValues(element, "alignItems", "align-items", "true true"); |
| 159 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 230 checkBadValues(element, "alignItems", "align-items", "true safe"); |
| 160 | 231 checkBadValues(element, "alignItems", "align-items", "center start"); |
| 161 element.style.alignItems = "auto safe"; | 232 checkBadValues(element, "alignItems", "align-items", "stretch true"); |
| 162 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 233 checkBadValues(element, "alignItems", "align-items", "safe stretch"); |
| 163 | 234 checkBadValues(element, "alignItems", "align-items", "baseline safe"); |
| 164 element.style.alignItems = "auto left"; | 235 checkBadValues(element, "alignItems", "align-items", "true baseline"); |
| 165 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 236 checkBadValues(element, "alignItems", "align-items", "true safe left"); |
| 166 | 237 checkBadValues(element, "alignItems", "align-items", "true left safe"); |
| 167 element.style.alignItems = "baseline safe"; | 238 checkBadValues(element, "alignItems", "align-items", "left safe true safe"); |
| 168 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 239 checkBadValues(element, "alignItems", "align-items", "legacy start"); |
| 169 | 240 checkBadValues(element, "alignItems", "align-items", "legacy end"); |
| 170 element.style.alignItems = "baseline center"; | 241 checkBadValues(element, "alignItems", "align-items", "legacy right true"); |
| 171 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 242 checkBadValues(element, "alignItems", "align-items", "legacy auto"); |
| 172 | 243 checkBadValues(element, "alignItems", "align-items", "legacy stretch"); |
| 173 element.style.alignItems = "stretch true"; | 244 checkBadValues(element, "alignItems", "align-items", "legacy"); |
| 174 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 245 checkBadValues(element, "alignItems", "align-items", "legacy left right"); |
| 175 | |
| 176 element.style.alignItems = "stretch right"; | |
| 177 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 178 | |
| 179 element.style.alignItems = "true true"; | |
| 180 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 181 | |
| 182 element.style.alignItems = "true safe"; | |
| 183 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 184 | |
| 185 element.style.alignItems = "center start"; | |
| 186 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 187 | |
| 188 element.style.alignItems = "stretch true"; | |
| 189 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 190 | |
| 191 element.style.alignItems = "safe stretch"; | |
| 192 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 193 | |
| 194 element.style.alignItems = "baseline safe"; | |
| 195 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 196 | |
| 197 element.style.alignItems = "true baseline"; | |
| 198 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 199 | |
| 200 element.style.alignItems = "true safe"; | |
| 201 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 202 | |
| 203 element.style.alignItems = "true safe left"; | |
| 204 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 205 | |
| 206 element.style.alignItems = "true left safe"; | |
| 207 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 208 | |
| 209 element.style.alignItems = "left safe true safe"; | |
| 210 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | |
| 211 | 246 |
| 212 debug(""); | 247 debug(""); |
| 213 debug("Test the value 'initial'"); | 248 debug("Test the value 'initial'"); |
| 214 element.style.alignItems = "center"; | 249 checkInitialValues(element, "alignItems", "align-items", "", "center"); |
| 215 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'cent
er'"); | 250 |
| 216 element.style.alignItems = "initial"; | 251 debug(""); |
| 217 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'stre
tch'"); | 252 debug("Test the value 'initial' for grid containers"); |
| 253 checkInitialValues(element, "alignItems", "align-items", "grid", "left safe"); |
| 254 |
| 255 debug(""); |
| 256 debug("Test the value 'initial' for flex containers"); |
| 257 checkInitialValues(element, "alignItems", "align-items", "flex", "right true"); |
| 218 | 258 |
| 219 debug(""); | 259 debug(""); |
| 220 debug("Test the value 'inherit'"); | 260 debug("Test the value 'inherit'"); |
| 221 parentElement = document.createElement("div"); | 261 checkInheritValues(element, "alignItems", "align-items", "end"); |
| 222 document.body.appendChild(parentElement); | 262 checkInheritValues(element, "alignItems", "align-items", "left safe"); |
| 223 parentElement.style.alignItems = "end"; | 263 checkInheritValues(element, "alignItems", "align-items", "center true"); |
| 224 shouldBe("getComputedStyle(parentElement, '').getPropertyValue('align-items')",
"'end'"); | |
| 225 | 264 |
| 226 element = document.createElement("div"); | |
| 227 parentElement.appendChild(element); | |
| 228 element.style.alignItems = "inherit"; | |
| 229 shouldBe("getComputedStyle(element, '').getPropertyValue('align-items')", "'end'
"); | |
| 230 </script> | 265 </script> |
| 231 </body> | 266 </body> |
| 232 </html> | 267 </html> |
| OLD | NEW |