Changeset 213163 in webkit
- Timestamp:
- Feb 28, 2017 12:40:14 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 13 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r213156 r213163 1 2017-02-28 Myles C. Maxfield <mmaxfield@apple.com> 2 3 [macOS] Migrate off of CTFontCreateForCSS 4 https://bugs.webkit.org/show_bug.cgi?id=168678 5 6 Reviewed by David Hyatt. 7 8 Updating test results. 9 10 Note that there is a slight regression here with Helvetica Neue. In 11 particular, this family includes a Bold font with a weight of 700, 12 and a Condensed Black font with a weight of 900. Because we don't 13 currently have any notion of font-stretch, our model can only 14 distinguish between these fonts due to their differing weights, not 15 their widths. This means that requests for weights 800 or 900 will 16 match the Condensed Black font in accordance with the font matching 17 algorithm. This gives visually surprising results because weights 18 100-700 match regular-width fonts. 19 20 However, this regression is intentional and temporary - my next task 21 is to properly implement font-stretch, which will educate our model 22 on the difference between these two fonts. This will fix the regression 23 and allow the tests below to be reset to their original expected 24 results. 25 26 * platform/mac-elcapitan/fast/text/font-weights-expected.png: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.png. 27 * platform/mac-elcapitan/fast/text/font-weights-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.txt. 28 * platform/mac-elcapitan/fast/text/font-weights-zh-expected.png: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.png. 29 * platform/mac-elcapitan/fast/text/font-weights-zh-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt. 30 * platform/mac/fast/text/font-weights-expected.png: 31 * platform/mac/fast/text/font-weights-expected.txt: 32 * platform/mac/fast/text/font-weights-zh-expected.png: 33 * platform/mac/fast/text/font-weights-zh-expected.txt: 34 1 35 2017-02-28 Ryan Haddad <ryanhaddad@apple.com> 2 36 -
trunk/LayoutTests/platform/mac/fast/text/font-weights-expected.txt
r187126 r213163 1 layer at (0,0) size 785x67 521 layer at (0,0) size 785x6763 2 2 RenderView at (0,0) size 785x600 3 layer at (0,0) size 785x67 524 RenderBlock {HTML} at (0,0) size 785x67 525 RenderBody {BODY} at (8,8) size 769x67 363 layer at (0,0) size 785x6763 4 RenderBlock {HTML} at (0,0) size 785x6763 5 RenderBody {BODY} at (8,8) size 769x6747 6 6 RenderBlock (anonymous) at (0,0) size 769x144 7 7 RenderText {#text} at (0,0) size 769x72 … … 37 37 RenderText {#text} at (0,0) size 355x19 38 38 text run at (0,0) width 355: "Font: Helvetica Neue Weight: 700 Style: normal" 39 RenderBlock {DIV} at (0,273) size 769x 1940 RenderText {#text} at (0,0) size 3 55x1941 text run at (0,0) width 3 55: "Font: Helvetica Neue Weight: 800 Style: normal"42 RenderBlock {DIV} at (0,29 2) size 769x1943 RenderText {#text} at (0,0) size 3 55x1944 text run at (0,0) width 3 55: "Font: Helvetica Neue Weight: 900 Style: normal"45 RenderBlock {DIV} at (0,31 1) size 769x1839 RenderBlock {DIV} at (0,273) size 769x20 40 RenderText {#text} at (0,0) size 309x20 41 text run at (0,0) width 309: "Font: Helvetica Neue Weight: 800 Style: normal" 42 RenderBlock {DIV} at (0,293) size 769x20 43 RenderText {#text} at (0,0) size 309x20 44 text run at (0,0) width 309: "Font: Helvetica Neue Weight: 900 Style: normal" 45 RenderBlock {DIV} at (0,313) size 769x18 46 46 RenderText {#text} at (0,0) size 362x18 47 47 text run at (0,0) width 362: "Font: HelveticaNeue-UltraLight Weight: 100 Style: normal" 48 RenderBlock {DIV} at (0,3 29) size 769x1848 RenderBlock {DIV} at (0,331) size 769x18 49 49 RenderText {#text} at (0,0) size 362x18 50 50 text run at (0,0) width 362: "Font: HelveticaNeue-UltraLight Weight: 200 Style: normal" 51 RenderBlock {DIV} at (0,34 7) size 769x1851 RenderBlock {DIV} at (0,349) size 769x18 52 52 RenderText {#text} at (0,0) size 362x18 53 53 text run at (0,0) width 362: "Font: HelveticaNeue-UltraLight Weight: 300 Style: normal" 54 RenderBlock {DIV} at (0,36 5) size 769x1854 RenderBlock {DIV} at (0,367) size 769x18 55 55 RenderText {#text} at (0,0) size 362x18 56 56 text run at (0,0) width 362: "Font: HelveticaNeue-UltraLight Weight: 400 Style: normal" 57 RenderBlock {DIV} at (0,38 3) size 769x1857 RenderBlock {DIV} at (0,385) size 769x18 58 58 RenderText {#text} at (0,0) size 362x18 59 59 text run at (0,0) width 362: "Font: HelveticaNeue-UltraLight Weight: 500 Style: normal" 60 RenderBlock {DIV} at (0,40 1) size 769x1960 RenderBlock {DIV} at (0,403) size 769x19 61 61 RenderText {#text} at (0,0) size 433x19 62 62 text run at (0,0) width 433: "Font: HelveticaNeue-UltraLight Weight: 600 Style: normal" 63 RenderBlock {DIV} at (0,42 0) size 769x1963 RenderBlock {DIV} at (0,422) size 769x19 64 64 RenderText {#text} at (0,0) size 433x19 65 65 text run at (0,0) width 433: "Font: HelveticaNeue-UltraLight Weight: 700 Style: normal" 66 RenderBlock {DIV} at (0,4 39) size 769x1967 RenderText {#text} at (0,0) size 433x1968 text run at (0,0) width 433: "Font: HelveticaNeue-UltraLight Weight: 800 Style: normal"69 RenderBlock {DIV} at (0,4 58) size 769x1970 RenderText {#text} at (0,0) size 433x1971 text run at (0,0) width 433: "Font: HelveticaNeue-UltraLight Weight: 900 Style: normal"72 RenderBlock {DIV} at (0,4 77) size 769x1866 RenderBlock {DIV} at (0,441) size 769x20 67 RenderText {#text} at (0,0) size 376x20 68 text run at (0,0) width 376: "Font: HelveticaNeue-UltraLight Weight: 800 Style: normal" 69 RenderBlock {DIV} at (0,461) size 769x20 70 RenderText {#text} at (0,0) size 376x20 71 text run at (0,0) width 376: "Font: HelveticaNeue-UltraLight Weight: 900 Style: normal" 72 RenderBlock {DIV} at (0,481) size 769x18 73 73 RenderText {#text} at (0,0) size 361x18 74 74 text run at (0,0) width 361: "Font: HelveticaNeue-Light Weight: 100 Style: normal" 75 RenderBlock {DIV} at (0,49 5) size 769x1875 RenderBlock {DIV} at (0,499) size 769x18 76 76 RenderText {#text} at (0,0) size 361x18 77 77 text run at (0,0) width 361: "Font: HelveticaNeue-Light Weight: 200 Style: normal" 78 RenderBlock {DIV} at (0,51 3) size 769x1878 RenderBlock {DIV} at (0,517) size 769x18 79 79 RenderText {#text} at (0,0) size 361x18 80 80 text run at (0,0) width 361: "Font: HelveticaNeue-Light Weight: 300 Style: normal" 81 RenderBlock {DIV} at (0,53 1) size 769x1881 RenderBlock {DIV} at (0,535) size 769x18 82 82 RenderText {#text} at (0,0) size 361x18 83 83 text run at (0,0) width 361: "Font: HelveticaNeue-Light Weight: 400 Style: normal" 84 RenderBlock {DIV} at (0,5 49) size 769x1884 RenderBlock {DIV} at (0,553) size 769x18 85 85 RenderText {#text} at (0,0) size 361x18 86 86 text run at (0,0) width 361: "Font: HelveticaNeue-Light Weight: 500 Style: normal" 87 RenderBlock {DIV} at (0,5 67) size 769x1987 RenderBlock {DIV} at (0,571) size 769x19 88 88 RenderText {#text} at (0,0) size 396x19 89 89 text run at (0,0) width 396: "Font: HelveticaNeue-Light Weight: 600 Style: normal" 90 RenderBlock {DIV} at (0,5 86) size 769x1990 RenderBlock {DIV} at (0,590) size 769x19 91 91 RenderText {#text} at (0,0) size 396x19 92 92 text run at (0,0) width 396: "Font: HelveticaNeue-Light Weight: 700 Style: normal" 93 RenderBlock {DIV} at (0,60 5) size 769x1994 RenderText {#text} at (0,0) size 3 96x1995 text run at (0,0) width 3 96: "Font: HelveticaNeue-Light Weight: 800 Style: normal"96 RenderBlock {DIV} at (0,62 4) size 769x1997 RenderText {#text} at (0,0) size 3 96x1998 text run at (0,0) width 3 96: "Font: HelveticaNeue-Light Weight: 900 Style: normal"99 RenderBlock {DIV} at (0,64 3) size 769x1893 RenderBlock {DIV} at (0,609) size 769x20 94 RenderText {#text} at (0,0) size 344x20 95 text run at (0,0) width 344: "Font: HelveticaNeue-Light Weight: 800 Style: normal" 96 RenderBlock {DIV} at (0,629) size 769x20 97 RenderText {#text} at (0,0) size 344x20 98 text run at (0,0) width 344: "Font: HelveticaNeue-Light Weight: 900 Style: normal" 99 RenderBlock {DIV} at (0,649) size 769x18 100 100 RenderText {#text} at (0,0) size 333x18 101 101 text run at (0,0) width 333: "Font: HelveticaNeue Weight: 100 Style: normal" 102 RenderBlock {DIV} at (0,66 1) size 769x18102 RenderBlock {DIV} at (0,667) size 769x18 103 103 RenderText {#text} at (0,0) size 333x18 104 104 text run at (0,0) width 333: "Font: HelveticaNeue Weight: 200 Style: normal" 105 RenderBlock {DIV} at (0,6 79) size 769x18105 RenderBlock {DIV} at (0,685) size 769x18 106 106 RenderText {#text} at (0,0) size 333x18 107 107 text run at (0,0) width 333: "Font: HelveticaNeue Weight: 300 Style: normal" 108 RenderBlock {DIV} at (0, 697) size 769x18108 RenderBlock {DIV} at (0,703) size 769x18 109 109 RenderText {#text} at (0,0) size 333x18 110 110 text run at (0,0) width 333: "Font: HelveticaNeue Weight: 400 Style: normal" 111 RenderBlock {DIV} at (0,7 15) size 769x18111 RenderBlock {DIV} at (0,721) size 769x18 112 112 RenderText {#text} at (0,0) size 333x18 113 113 text run at (0,0) width 333: "Font: HelveticaNeue Weight: 500 Style: normal" 114 RenderBlock {DIV} at (0,73 3) size 769x19114 RenderBlock {DIV} at (0,739) size 769x19 115 115 RenderText {#text} at (0,0) size 351x19 116 116 text run at (0,0) width 351: "Font: HelveticaNeue Weight: 600 Style: normal" 117 RenderBlock {DIV} at (0,75 2) size 769x19117 RenderBlock {DIV} at (0,758) size 769x19 118 118 RenderText {#text} at (0,0) size 351x19 119 119 text run at (0,0) width 351: "Font: HelveticaNeue Weight: 700 Style: normal" 120 RenderBlock {DIV} at (0,77 1) size 769x19121 RenderText {#text} at (0,0) size 3 51x19122 text run at (0,0) width 3 51: "Font: HelveticaNeue Weight: 800 Style: normal"123 RenderBlock {DIV} at (0,79 0) size 769x19124 RenderText {#text} at (0,0) size 3 51x19125 text run at (0,0) width 3 51: "Font: HelveticaNeue Weight: 900 Style: normal"126 RenderBlock {DIV} at (0,8 09) size 769x19120 RenderBlock {DIV} at (0,777) size 769x20 121 RenderText {#text} at (0,0) size 305x20 122 text run at (0,0) width 305: "Font: HelveticaNeue Weight: 800 Style: normal" 123 RenderBlock {DIV} at (0,797) size 769x20 124 RenderText {#text} at (0,0) size 305x20 125 text run at (0,0) width 305: "Font: HelveticaNeue Weight: 900 Style: normal" 126 RenderBlock {DIV} at (0,817) size 769x19 127 127 RenderText {#text} at (0,0) size 409x19 128 128 text run at (0,0) width 409: "Font: HelveticaNeue-Medium Weight: 100 Style: normal" 129 RenderBlock {DIV} at (0,8 28) size 769x19129 RenderBlock {DIV} at (0,836) size 769x19 130 130 RenderText {#text} at (0,0) size 409x19 131 131 text run at (0,0) width 409: "Font: HelveticaNeue-Medium Weight: 200 Style: normal" 132 RenderBlock {DIV} at (0,8 47) size 769x19132 RenderBlock {DIV} at (0,855) size 769x19 133 133 RenderText {#text} at (0,0) size 409x19 134 134 text run at (0,0) width 409: "Font: HelveticaNeue-Medium Weight: 300 Style: normal" 135 RenderBlock {DIV} at (0,8 66) size 769x19135 RenderBlock {DIV} at (0,874) size 769x19 136 136 RenderText {#text} at (0,0) size 409x19 137 137 text run at (0,0) width 409: "Font: HelveticaNeue-Medium Weight: 400 Style: normal" 138 RenderBlock {DIV} at (0,8 85) size 769x19138 RenderBlock {DIV} at (0,893) size 769x19 139 139 RenderText {#text} at (0,0) size 409x19 140 140 text run at (0,0) width 409: "Font: HelveticaNeue-Medium Weight: 500 Style: normal" 141 RenderBlock {DIV} at (0,9 04) size 769x19141 RenderBlock {DIV} at (0,912) size 769x19 142 142 RenderText {#text} at (0,0) size 419x19 143 143 text run at (0,0) width 419: "Font: HelveticaNeue-Medium Weight: 600 Style: normal" 144 RenderBlock {DIV} at (0,9 23) size 769x19144 RenderBlock {DIV} at (0,931) size 769x19 145 145 RenderText {#text} at (0,0) size 419x19 146 146 text run at (0,0) width 419: "Font: HelveticaNeue-Medium Weight: 700 Style: normal" 147 RenderBlock {DIV} at (0,9 42) size 769x19148 RenderText {#text} at (0,0) size 419x19149 text run at (0,0) width 419: "Font: HelveticaNeue-Medium Weight: 800 Style: normal"150 RenderBlock {DIV} at (0,9 61) size 769x19151 RenderText {#text} at (0,0) size 419x19152 text run at (0,0) width 419: "Font: HelveticaNeue-Medium Weight: 900 Style: normal"153 RenderBlock {DIV} at (0,9 80) size 769x19147 RenderBlock {DIV} at (0,950) size 769x20 148 RenderText {#text} at (0,0) size 364x20 149 text run at (0,0) width 364: "Font: HelveticaNeue-Medium Weight: 800 Style: normal" 150 RenderBlock {DIV} at (0,970) size 769x20 151 RenderText {#text} at (0,0) size 364x20 152 text run at (0,0) width 364: "Font: HelveticaNeue-Medium Weight: 900 Style: normal" 153 RenderBlock {DIV} at (0,990) size 769x19 154 154 RenderText {#text} at (0,0) size 392x19 155 155 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 100 Style: normal" 156 RenderBlock {DIV} at (0, 999) size 769x19156 RenderBlock {DIV} at (0,1009) size 769x19 157 157 RenderText {#text} at (0,0) size 392x19 158 158 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 200 Style: normal" 159 RenderBlock {DIV} at (0,10 18) size 769x19159 RenderBlock {DIV} at (0,1028) size 769x19 160 160 RenderText {#text} at (0,0) size 392x19 161 161 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 300 Style: normal" 162 RenderBlock {DIV} at (0,10 37) size 769x19162 RenderBlock {DIV} at (0,1047) size 769x19 163 163 RenderText {#text} at (0,0) size 392x19 164 164 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 400 Style: normal" 165 RenderBlock {DIV} at (0,10 56) size 769x19165 RenderBlock {DIV} at (0,1066) size 769x19 166 166 RenderText {#text} at (0,0) size 392x19 167 167 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 500 Style: normal" 168 RenderBlock {DIV} at (0,10 75) size 769x19168 RenderBlock {DIV} at (0,1085) size 769x19 169 169 RenderText {#text} at (0,0) size 392x19 170 170 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 600 Style: normal" 171 RenderBlock {DIV} at (0,1 094) size 769x19171 RenderBlock {DIV} at (0,1104) size 769x19 172 172 RenderText {#text} at (0,0) size 392x19 173 173 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 700 Style: normal" 174 RenderBlock {DIV} at (0,11 13) size 769x19174 RenderBlock {DIV} at (0,1123) size 769x19 175 175 RenderText {#text} at (0,0) size 392x19 176 176 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 800 Style: normal" 177 RenderBlock {DIV} at (0,11 32) size 769x19177 RenderBlock {DIV} at (0,1142) size 769x19 178 178 RenderText {#text} at (0,0) size 392x19 179 179 text run at (0,0) width 392: "Font: HelveticaNeue-Bold Weight: 900 Style: normal" 180 RenderBlock {DIV} at (0,11 51) size 769x18180 RenderBlock {DIV} at (0,1161) size 769x18 181 181 RenderText {#text} at (0,0) size 388x18 182 182 text run at (0,0) width 388: "Font: HelveticaNeue-UltraLightItalic Weight: 100 Style: normal" 183 RenderBlock {DIV} at (0,11 69) size 769x18183 RenderBlock {DIV} at (0,1179) size 769x18 184 184 RenderText {#text} at (0,0) size 388x18 185 185 text run at (0,0) width 388: "Font: HelveticaNeue-UltraLightItalic Weight: 200 Style: normal" 186 RenderBlock {DIV} at (0,11 87) size 769x18186 RenderBlock {DIV} at (0,1197) size 769x18 187 187 RenderText {#text} at (0,0) size 388x18 188 188 text run at (0,0) width 388: "Font: HelveticaNeue-UltraLightItalic Weight: 300 Style: normal" 189 RenderBlock {DIV} at (0,12 05) size 769x18189 RenderBlock {DIV} at (0,1215) size 769x18 190 190 RenderText {#text} at (0,0) size 388x18 191 191 text run at (0,0) width 388: "Font: HelveticaNeue-UltraLightItalic Weight: 400 Style: normal" 192 RenderBlock {DIV} at (0,12 23) size 769x18192 RenderBlock {DIV} at (0,1233) size 769x18 193 193 RenderText {#text} at (0,0) size 388x18 194 194 text run at (0,0) width 388: "Font: HelveticaNeue-UltraLightItalic Weight: 500 Style: normal" 195 RenderBlock {DIV} at (0,12 41) size 769x19196 RenderText {#text} at (0,0) size 47 2x19197 text run at (0,0) width 47 2: "Font: HelveticaNeue-UltraLightItalic Weight: 600 Style: normal"198 RenderBlock {DIV} at (0,12 60) size 769x19199 RenderText {#text} at (0,0) size 47 2x19200 text run at (0,0) width 47 2: "Font: HelveticaNeue-UltraLightItalic Weight: 700 Style: normal"201 RenderBlock {DIV} at (0,12 79) size 769x19202 RenderText {#text} at (0,0) size 4 72x19203 text run at (0,0) width 4 72: "Font: HelveticaNeue-UltraLightItalic Weight: 800 Style: normal"204 RenderBlock {DIV} at (0,1 298) size 769x19205 RenderText {#text} at (0,0) size 4 72x19206 text run at (0,0) width 4 72: "Font: HelveticaNeue-UltraLightItalic Weight: 900 Style: normal"207 RenderBlock {DIV} at (0,13 17) size 769x18195 RenderBlock {DIV} at (0,1251) size 769x19 196 RenderText {#text} at (0,0) size 470x19 197 text run at (0,0) width 470: "Font: HelveticaNeue-UltraLightItalic Weight: 600 Style: normal" 198 RenderBlock {DIV} at (0,1270) size 769x19 199 RenderText {#text} at (0,0) size 470x19 200 text run at (0,0) width 470: "Font: HelveticaNeue-UltraLightItalic Weight: 700 Style: normal" 201 RenderBlock {DIV} at (0,1289) size 769x20 202 RenderText {#text} at (0,0) size 409x20 203 text run at (0,0) width 409: "Font: HelveticaNeue-UltraLightItalic Weight: 800 Style: normal" 204 RenderBlock {DIV} at (0,1309) size 769x20 205 RenderText {#text} at (0,0) size 409x20 206 text run at (0,0) width 409: "Font: HelveticaNeue-UltraLightItalic Weight: 900 Style: normal" 207 RenderBlock {DIV} at (0,1329) size 769x18 208 208 RenderText {#text} at (0,0) size 391x18 209 209 text run at (0,0) width 391: "Font: HelveticaNeue-LightItalic Weight: 100 Style: normal" 210 RenderBlock {DIV} at (0,13 35) size 769x18210 RenderBlock {DIV} at (0,1347) size 769x18 211 211 RenderText {#text} at (0,0) size 391x18 212 212 text run at (0,0) width 391: "Font: HelveticaNeue-LightItalic Weight: 200 Style: normal" 213 RenderBlock {DIV} at (0,13 53) size 769x18213 RenderBlock {DIV} at (0,1365) size 769x18 214 214 RenderText {#text} at (0,0) size 391x18 215 215 text run at (0,0) width 391: "Font: HelveticaNeue-LightItalic Weight: 300 Style: normal" 216 RenderBlock {DIV} at (0,13 71) size 769x18216 RenderBlock {DIV} at (0,1383) size 769x18 217 217 RenderText {#text} at (0,0) size 391x18 218 218 text run at (0,0) width 391: "Font: HelveticaNeue-LightItalic Weight: 400 Style: normal" 219 RenderBlock {DIV} at (0,1 389) size 769x18219 RenderBlock {DIV} at (0,1401) size 769x18 220 220 RenderText {#text} at (0,0) size 391x18 221 221 text run at (0,0) width 391: "Font: HelveticaNeue-LightItalic Weight: 500 Style: normal" 222 RenderBlock {DIV} at (0,14 07) size 769x19223 RenderText {#text} at (0,0) size 43 5x19224 text run at (0,0) width 43 5: "Font: HelveticaNeue-LightItalic Weight: 600 Style: normal"225 RenderBlock {DIV} at (0,14 26) size 769x19226 RenderText {#text} at (0,0) size 43 5x19227 text run at (0,0) width 43 5: "Font: HelveticaNeue-LightItalic Weight: 700 Style: normal"228 RenderBlock {DIV} at (0,14 45) size 769x19229 RenderText {#text} at (0,0) size 435x19230 text run at (0,0) width 435: "Font: HelveticaNeue-LightItalic Weight: 800 Style: normal"231 RenderBlock {DIV} at (0,14 64) size 769x19232 RenderText {#text} at (0,0) size 435x19233 text run at (0,0) width 435: "Font: HelveticaNeue-LightItalic Weight: 900 Style: normal"234 RenderBlock {DIV} at (0,14 83) size 769x18222 RenderBlock {DIV} at (0,1419) size 769x19 223 RenderText {#text} at (0,0) size 433x19 224 text run at (0,0) width 433: "Font: HelveticaNeue-LightItalic Weight: 600 Style: normal" 225 RenderBlock {DIV} at (0,1438) size 769x19 226 RenderText {#text} at (0,0) size 433x19 227 text run at (0,0) width 433: "Font: HelveticaNeue-LightItalic Weight: 700 Style: normal" 228 RenderBlock {DIV} at (0,1457) size 769x20 229 RenderText {#text} at (0,0) size 377x20 230 text run at (0,0) width 377: "Font: HelveticaNeue-LightItalic Weight: 800 Style: normal" 231 RenderBlock {DIV} at (0,1477) size 769x20 232 RenderText {#text} at (0,0) size 377x20 233 text run at (0,0) width 377: "Font: HelveticaNeue-LightItalic Weight: 900 Style: normal" 234 RenderBlock {DIV} at (0,1497) size 769x18 235 235 RenderText {#text} at (0,0) size 371x18 236 236 text run at (0,0) width 371: "Font: HelveticaNeue-Italic Weight: 100 Style: normal" 237 RenderBlock {DIV} at (0,15 01) size 769x18237 RenderBlock {DIV} at (0,1515) size 769x18 238 238 RenderText {#text} at (0,0) size 371x18 239 239 text run at (0,0) width 371: "Font: HelveticaNeue-Italic Weight: 200 Style: normal" 240 RenderBlock {DIV} at (0,15 19) size 769x18240 RenderBlock {DIV} at (0,1533) size 769x18 241 241 RenderText {#text} at (0,0) size 371x18 242 242 text run at (0,0) width 371: "Font: HelveticaNeue-Italic Weight: 300 Style: normal" 243 RenderBlock {DIV} at (0,15 37) size 769x18243 RenderBlock {DIV} at (0,1551) size 769x18 244 244 RenderText {#text} at (0,0) size 371x18 245 245 text run at (0,0) width 371: "Font: HelveticaNeue-Italic Weight: 400 Style: normal" 246 RenderBlock {DIV} at (0,15 55) size 769x18246 RenderBlock {DIV} at (0,1569) size 769x18 247 247 RenderText {#text} at (0,0) size 371x18 248 248 text run at (0,0) width 371: "Font: HelveticaNeue-Italic Weight: 500 Style: normal" 249 RenderBlock {DIV} at (0,15 73) size 769x19250 RenderText {#text} at (0,0) size 39 6x19251 text run at (0,0) width 39 6: "Font: HelveticaNeue-Italic Weight: 600 Style: normal"252 RenderBlock {DIV} at (0,1 592) size 769x19253 RenderText {#text} at (0,0) size 39 6x19254 text run at (0,0) width 39 6: "Font: HelveticaNeue-Italic Weight: 700 Style: normal"255 RenderBlock {DIV} at (0,16 11) size 769x19256 RenderText {#text} at (0,0) size 3 96x19257 text run at (0,0) width 3 96: "Font: HelveticaNeue-Italic Weight: 800 Style: normal"258 RenderBlock {DIV} at (0,16 30) size 769x19259 RenderText {#text} at (0,0) size 3 96x19260 text run at (0,0) width 3 96: "Font: HelveticaNeue-Italic Weight: 900 Style: normal"261 RenderBlock {DIV} at (0,16 49) size 769x19249 RenderBlock {DIV} at (0,1587) size 769x19 250 RenderText {#text} at (0,0) size 394x19 251 text run at (0,0) width 394: "Font: HelveticaNeue-Italic Weight: 600 Style: normal" 252 RenderBlock {DIV} at (0,1606) size 769x19 253 RenderText {#text} at (0,0) size 394x19 254 text run at (0,0) width 394: "Font: HelveticaNeue-Italic Weight: 700 Style: normal" 255 RenderBlock {DIV} at (0,1625) size 769x20 256 RenderText {#text} at (0,0) size 344x20 257 text run at (0,0) width 344: "Font: HelveticaNeue-Italic Weight: 800 Style: normal" 258 RenderBlock {DIV} at (0,1645) size 769x20 259 RenderText {#text} at (0,0) size 344x20 260 text run at (0,0) width 344: "Font: HelveticaNeue-Italic Weight: 900 Style: normal" 261 RenderBlock {DIV} at (0,1665) size 769x19 262 262 RenderText {#text} at (0,0) size 431x19 263 263 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 100 Style: normal" 264 RenderBlock {DIV} at (0,16 68) size 769x19264 RenderBlock {DIV} at (0,1684) size 769x19 265 265 RenderText {#text} at (0,0) size 431x19 266 266 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 200 Style: normal" 267 RenderBlock {DIV} at (0,1 687) size 769x19267 RenderBlock {DIV} at (0,1703) size 769x19 268 268 RenderText {#text} at (0,0) size 431x19 269 269 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 300 Style: normal" 270 RenderBlock {DIV} at (0,17 06) size 769x19270 RenderBlock {DIV} at (0,1722) size 769x19 271 271 RenderText {#text} at (0,0) size 431x19 272 272 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 400 Style: normal" 273 RenderBlock {DIV} at (0,17 25) size 769x19273 RenderBlock {DIV} at (0,1741) size 769x19 274 274 RenderText {#text} at (0,0) size 431x19 275 275 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 500 Style: normal" 276 RenderBlock {DIV} at (0,17 44) size 769x19276 RenderBlock {DIV} at (0,1760) size 769x19 277 277 RenderText {#text} at (0,0) size 431x19 278 278 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 600 Style: normal" 279 RenderBlock {DIV} at (0,17 63) size 769x19279 RenderBlock {DIV} at (0,1779) size 769x19 280 280 RenderText {#text} at (0,0) size 431x19 281 281 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 700 Style: normal" 282 RenderBlock {DIV} at (0,17 82) size 769x19282 RenderBlock {DIV} at (0,1798) size 769x19 283 283 RenderText {#text} at (0,0) size 431x19 284 284 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 800 Style: normal" 285 RenderBlock {DIV} at (0,18 01) size 769x19285 RenderBlock {DIV} at (0,1817) size 769x19 286 286 RenderText {#text} at (0,0) size 431x19 287 287 text run at (0,0) width 431: "Font: HelveticaNeue-BoldItalic Weight: 900 Style: normal" 288 RenderBlock {DIV} at (0,18 20) size 769x18288 RenderBlock {DIV} at (0,1836) size 769x18 289 289 RenderText {#text} at (0,0) size 287x18 290 290 text run at (0,0) width 287: "Font: Helvetica Neue Weight: 100 Style: italic" 291 RenderBlock {DIV} at (0,18 38) size 769x18291 RenderBlock {DIV} at (0,1854) size 769x18 292 292 RenderText {#text} at (0,0) size 299x18 293 293 text run at (0,0) width 299: "Font: Helvetica Neue Weight: 200 Style: italic" 294 RenderBlock {DIV} at (0,18 56) size 769x18294 RenderBlock {DIV} at (0,1872) size 769x18 295 295 RenderText {#text} at (0,0) size 308x18 296 296 text run at (0,0) width 308: "Font: Helvetica Neue Weight: 300 Style: italic" 297 RenderBlock {DIV} at (0,18 74) size 769x18297 RenderBlock {DIV} at (0,1890) size 769x18 298 298 RenderText {#text} at (0,0) size 320x18 299 299 text run at (0,0) width 320: "Font: Helvetica Neue Weight: 400 Style: italic" 300 RenderBlock {DIV} at (0,1 892) size 769x19300 RenderBlock {DIV} at (0,1908) size 769x19 301 301 RenderText {#text} at (0,0) size 329x19 302 302 text run at (0,0) width 329: "Font: Helvetica Neue Weight: 500 Style: italic" 303 RenderBlock {DIV} at (0,19 11) size 769x19303 RenderBlock {DIV} at (0,1927) size 769x19 304 304 RenderText {#text} at (0,0) size 340x19 305 305 text run at (0,0) width 340: "Font: Helvetica Neue Weight: 600 Style: italic" 306 RenderBlock {DIV} at (0,19 30) size 769x19306 RenderBlock {DIV} at (0,1946) size 769x19 307 307 RenderText {#text} at (0,0) size 340x19 308 308 text run at (0,0) width 340: "Font: Helvetica Neue Weight: 700 Style: italic" 309 RenderBlock {DIV} at (0,19 49) size 769x19309 RenderBlock {DIV} at (0,1965) size 769x19 310 310 RenderText {#text} at (0,0) size 340x19 311 311 text run at (0,0) width 340: "Font: Helvetica Neue Weight: 800 Style: italic" 312 RenderBlock {DIV} at (0,19 68) size 769x19312 RenderBlock {DIV} at (0,1984) size 769x19 313 313 RenderText {#text} at (0,0) size 340x19 314 314 text run at (0,0) width 340: "Font: Helvetica Neue Weight: 900 Style: italic" 315 RenderBlock {DIV} at (0, 1987) size 769x18315 RenderBlock {DIV} at (0,2003) size 769x18 316 316 RenderText {#text} at (0,0) size 345x18 317 317 text run at (0,0) width 345: "Font: HelveticaNeue-UltraLight Weight: 100 Style: italic" 318 RenderBlock {DIV} at (0,20 05) size 769x18319 RenderText {#text} at (0,0) size 3 45x18320 text run at (0,0) width 3 45: "Font: HelveticaNeue-UltraLight Weight: 200 Style: italic"321 RenderBlock {DIV} at (0,20 23) size 769x18322 RenderText {#text} at (0,0) size 3 45x18323 text run at (0,0) width 3 45: "Font: HelveticaNeue-UltraLight Weight: 300 Style: italic"324 RenderBlock {DIV} at (0,20 41) size 769x18325 RenderText {#text} at (0,0) size 3 45x18326 text run at (0,0) width 3 45: "Font: HelveticaNeue-UltraLight Weight: 400 Style: italic"327 RenderBlock {DIV} at (0,20 59) size 769x18328 RenderText {#text} at (0,0) size 345x18329 text run at (0,0) width 345: "Font: HelveticaNeue-UltraLight Weight: 500 Style: italic"330 RenderBlock {DIV} at (0,20 77) size 769x19318 RenderBlock {DIV} at (0,2021) size 769x18 319 RenderText {#text} at (0,0) size 361x18 320 text run at (0,0) width 361: "Font: HelveticaNeue-UltraLight Weight: 200 Style: italic" 321 RenderBlock {DIV} at (0,2039) size 769x18 322 RenderText {#text} at (0,0) size 376x18 323 text run at (0,0) width 376: "Font: HelveticaNeue-UltraLight Weight: 300 Style: italic" 324 RenderBlock {DIV} at (0,2057) size 769x18 325 RenderText {#text} at (0,0) size 391x18 326 text run at (0,0) width 391: "Font: HelveticaNeue-UltraLight Weight: 400 Style: italic" 327 RenderBlock {DIV} at (0,2075) size 769x19 328 RenderText {#text} at (0,0) size 404x19 329 text run at (0,0) width 404: "Font: HelveticaNeue-UltraLight Weight: 500 Style: italic" 330 RenderBlock {DIV} at (0,2094) size 769x19 331 331 RenderText {#text} at (0,0) size 418x19 332 332 text run at (0,0) width 418: "Font: HelveticaNeue-UltraLight Weight: 600 Style: italic" 333 RenderBlock {DIV} at (0,2 096) size 769x19333 RenderBlock {DIV} at (0,2113) size 769x19 334 334 RenderText {#text} at (0,0) size 418x19 335 335 text run at (0,0) width 418: "Font: HelveticaNeue-UltraLight Weight: 700 Style: italic" 336 RenderBlock {DIV} at (0,21 15) size 769x19336 RenderBlock {DIV} at (0,2132) size 769x19 337 337 RenderText {#text} at (0,0) size 418x19 338 338 text run at (0,0) width 418: "Font: HelveticaNeue-UltraLight Weight: 800 Style: italic" 339 RenderBlock {DIV} at (0,21 34) size 769x19339 RenderBlock {DIV} at (0,2151) size 769x19 340 340 RenderText {#text} at (0,0) size 418x19 341 341 text run at (0,0) width 418: "Font: HelveticaNeue-UltraLight Weight: 900 Style: italic" 342 RenderBlock {DIV} at (0,21 53) size 769x18343 RenderText {#text} at (0,0) size 3 44x18344 text run at (0,0) width 3 44: "Font: HelveticaNeue-Light Weight: 100 Style: italic"345 RenderBlock {DIV} at (0,21 71) size 769x18346 RenderText {#text} at (0,0) size 3 44x18347 text run at (0,0) width 3 44: "Font: HelveticaNeue-Light Weight: 200 Style: italic"348 RenderBlock {DIV} at (0,2 189) size 769x18342 RenderBlock {DIV} at (0,2170) size 769x18 343 RenderText {#text} at (0,0) size 317x18 344 text run at (0,0) width 317: "Font: HelveticaNeue-Light Weight: 100 Style: italic" 345 RenderBlock {DIV} at (0,2188) size 769x18 346 RenderText {#text} at (0,0) size 331x18 347 text run at (0,0) width 331: "Font: HelveticaNeue-Light Weight: 200 Style: italic" 348 RenderBlock {DIV} at (0,2206) size 769x18 349 349 RenderText {#text} at (0,0) size 344x18 350 350 text run at (0,0) width 344: "Font: HelveticaNeue-Light Weight: 300 Style: italic" 351 RenderBlock {DIV} at (0,22 07) size 769x18352 RenderText {#text} at (0,0) size 3 44x18353 text run at (0,0) width 3 44: "Font: HelveticaNeue-Light Weight: 400 Style: italic"354 RenderBlock {DIV} at (0,22 25) size 769x18355 RenderText {#text} at (0,0) size 3 44x18356 text run at (0,0) width 3 44: "Font: HelveticaNeue-Light Weight: 500 Style: italic"357 RenderBlock {DIV} at (0,22 43) size 769x19351 RenderBlock {DIV} at (0,2224) size 769x18 352 RenderText {#text} at (0,0) size 357x18 353 text run at (0,0) width 357: "Font: HelveticaNeue-Light Weight: 400 Style: italic" 354 RenderBlock {DIV} at (0,2242) size 769x19 355 RenderText {#text} at (0,0) size 368x19 356 text run at (0,0) width 368: "Font: HelveticaNeue-Light Weight: 500 Style: italic" 357 RenderBlock {DIV} at (0,2261) size 769x19 358 358 RenderText {#text} at (0,0) size 381x19 359 359 text run at (0,0) width 381: "Font: HelveticaNeue-Light Weight: 600 Style: italic" 360 RenderBlock {DIV} at (0,22 62) size 769x19360 RenderBlock {DIV} at (0,2280) size 769x19 361 361 RenderText {#text} at (0,0) size 381x19 362 362 text run at (0,0) width 381: "Font: HelveticaNeue-Light Weight: 700 Style: italic" 363 RenderBlock {DIV} at (0,22 81) size 769x19363 RenderBlock {DIV} at (0,2299) size 769x19 364 364 RenderText {#text} at (0,0) size 381x19 365 365 text run at (0,0) width 381: "Font: HelveticaNeue-Light Weight: 800 Style: italic" 366 RenderBlock {DIV} at (0,23 00) size 769x19366 RenderBlock {DIV} at (0,2318) size 769x19 367 367 RenderText {#text} at (0,0) size 381x19 368 368 text run at (0,0) width 381: "Font: HelveticaNeue-Light Weight: 900 Style: italic" 369 RenderBlock {DIV} at (0,2319) size 769x18370 RenderText {#text} at (0,0) size 315x18371 text run at (0,0) width 315: "Font: HelveticaNeue Weight: 100 Style: italic"372 369 RenderBlock {DIV} at (0,2337) size 769x18 373 RenderText {#text} at (0,0) size 315x18374 text run at (0,0) width 315: "Font: HelveticaNeue Weight: 200 Style: italic"370 RenderText {#text} at (0,0) size 282x18 371 text run at (0,0) width 282: "Font: HelveticaNeue Weight: 100 Style: italic" 375 372 RenderBlock {DIV} at (0,2355) size 769x18 376 RenderText {#text} at (0,0) size 315x18377 text run at (0,0) width 315: "Font: HelveticaNeue Weight: 300 Style: italic"373 RenderText {#text} at (0,0) size 294x18 374 text run at (0,0) width 294: "Font: HelveticaNeue Weight: 200 Style: italic" 378 375 RenderBlock {DIV} at (0,2373) size 769x18 376 RenderText {#text} at (0,0) size 304x18 377 text run at (0,0) width 304: "Font: HelveticaNeue Weight: 300 Style: italic" 378 RenderBlock {DIV} at (0,2391) size 769x18 379 379 RenderText {#text} at (0,0) size 315x18 380 380 text run at (0,0) width 315: "Font: HelveticaNeue Weight: 400 Style: italic" 381 RenderBlock {DIV} at (0,2391) size 769x18382 RenderText {#text} at (0,0) size 315x18383 text run at (0,0) width 315: "Font: HelveticaNeue Weight: 500 Style: italic"384 381 RenderBlock {DIV} at (0,2409) size 769x19 382 RenderText {#text} at (0,0) size 325x19 383 text run at (0,0) width 325: "Font: HelveticaNeue Weight: 500 Style: italic" 384 RenderBlock {DIV} at (0,2428) size 769x19 385 385 RenderText {#text} at (0,0) size 336x19 386 386 text run at (0,0) width 336: "Font: HelveticaNeue Weight: 600 Style: italic" 387 RenderBlock {DIV} at (0,24 28) size 769x19387 RenderBlock {DIV} at (0,2447) size 769x19 388 388 RenderText {#text} at (0,0) size 336x19 389 389 text run at (0,0) width 336: "Font: HelveticaNeue Weight: 700 Style: italic" 390 RenderBlock {DIV} at (0,24 47) size 769x19390 RenderBlock {DIV} at (0,2466) size 769x19 391 391 RenderText {#text} at (0,0) size 336x19 392 392 text run at (0,0) width 336: "Font: HelveticaNeue Weight: 800 Style: italic" 393 RenderBlock {DIV} at (0,24 66) size 769x19393 RenderBlock {DIV} at (0,2485) size 769x19 394 394 RenderText {#text} at (0,0) size 336x19 395 395 text run at (0,0) width 336: "Font: HelveticaNeue Weight: 900 Style: italic" 396 RenderBlock {DIV} at (0,2 485) size 769x19397 RenderText {#text} at (0,0) size 3 91x19398 text run at (0,0) width 3 91: "Font: HelveticaNeue-Medium Weight: 100 Style: italic"399 RenderBlock {DIV} at (0,25 04) size 769x19400 RenderText {#text} at (0,0) size 3 91x19401 text run at (0,0) width 3 91: "Font: HelveticaNeue-Medium Weight: 200 Style: italic"402 RenderBlock {DIV} at (0,25 23) size 769x19403 RenderText {#text} at (0,0) size 3 91x19404 text run at (0,0) width 3 91: "Font: HelveticaNeue-Medium Weight: 300 Style: italic"405 RenderBlock {DIV} at (0,25 42) size 769x19406 RenderText {#text} at (0,0) size 3 91x19407 text run at (0,0) width 3 91: "Font: HelveticaNeue-Medium Weight: 400 Style: italic"408 RenderBlock {DIV} at (0,25 61) size 769x19396 RenderBlock {DIV} at (0,2504) size 769x18 397 RenderText {#text} at (0,0) size 339x18 398 text run at (0,0) width 339: "Font: HelveticaNeue-Medium Weight: 100 Style: italic" 399 RenderBlock {DIV} at (0,2522) size 769x18 400 RenderText {#text} at (0,0) size 354x18 401 text run at (0,0) width 354: "Font: HelveticaNeue-Medium Weight: 200 Style: italic" 402 RenderBlock {DIV} at (0,2540) size 769x18 403 RenderText {#text} at (0,0) size 366x18 404 text run at (0,0) width 366: "Font: HelveticaNeue-Medium Weight: 300 Style: italic" 405 RenderBlock {DIV} at (0,2558) size 769x18 406 RenderText {#text} at (0,0) size 379x18 407 text run at (0,0) width 379: "Font: HelveticaNeue-Medium Weight: 400 Style: italic" 408 RenderBlock {DIV} at (0,2576) size 769x19 409 409 RenderText {#text} at (0,0) size 391x19 410 410 text run at (0,0) width 391: "Font: HelveticaNeue-Medium Weight: 500 Style: italic" 411 RenderBlock {DIV} at (0,25 80) size 769x19411 RenderBlock {DIV} at (0,2595) size 769x19 412 412 RenderText {#text} at (0,0) size 404x19 413 413 text run at (0,0) width 404: "Font: HelveticaNeue-Medium Weight: 600 Style: italic" 414 RenderBlock {DIV} at (0,2 599) size 769x19414 RenderBlock {DIV} at (0,2614) size 769x19 415 415 RenderText {#text} at (0,0) size 404x19 416 416 text run at (0,0) width 404: "Font: HelveticaNeue-Medium Weight: 700 Style: italic" 417 RenderBlock {DIV} at (0,26 18) size 769x19417 RenderBlock {DIV} at (0,2633) size 769x19 418 418 RenderText {#text} at (0,0) size 404x19 419 419 text run at (0,0) width 404: "Font: HelveticaNeue-Medium Weight: 800 Style: italic" 420 RenderBlock {DIV} at (0,26 37) size 769x19420 RenderBlock {DIV} at (0,2652) size 769x19 421 421 RenderText {#text} at (0,0) size 404x19 422 422 text run at (0,0) width 404: "Font: HelveticaNeue-Medium Weight: 900 Style: italic" 423 RenderBlock {DIV} at (0,26 56) size 769x19424 RenderText {#text} at (0,0) size 3 77x19425 text run at (0,0) width 3 77: "Font: HelveticaNeue-Bold Weight: 100 Style: italic"426 RenderBlock {DIV} at (0,26 75) size 769x19427 RenderText {#text} at (0,0) size 3 77x19428 text run at (0,0) width 3 77: "Font: HelveticaNeue-Bold Weight: 200 Style: italic"429 RenderBlock {DIV} at (0,2 694) size 769x19430 RenderText {#text} at (0,0) size 3 77x19431 text run at (0,0) width 3 77: "Font: HelveticaNeue-Bold Weight: 300 Style: italic"432 RenderBlock {DIV} at (0,27 13) size 769x19433 RenderText {#text} at (0,0) size 3 77x19434 text run at (0,0) width 3 77: "Font: HelveticaNeue-Bold Weight: 400 Style: italic"435 RenderBlock {DIV} at (0,27 32) size 769x19436 RenderText {#text} at (0,0) size 3 77x19437 text run at (0,0) width 3 77: "Font: HelveticaNeue-Bold Weight: 500 Style: italic"438 RenderBlock {DIV} at (0,27 51) size 769x19423 RenderBlock {DIV} at (0,2671) size 769x18 424 RenderText {#text} at (0,0) size 316x18 425 text run at (0,0) width 316: "Font: HelveticaNeue-Bold Weight: 100 Style: italic" 426 RenderBlock {DIV} at (0,2689) size 769x18 427 RenderText {#text} at (0,0) size 330x18 428 text run at (0,0) width 330: "Font: HelveticaNeue-Bold Weight: 200 Style: italic" 429 RenderBlock {DIV} at (0,2707) size 769x18 430 RenderText {#text} at (0,0) size 342x18 431 text run at (0,0) width 342: "Font: HelveticaNeue-Bold Weight: 300 Style: italic" 432 RenderBlock {DIV} at (0,2725) size 769x18 433 RenderText {#text} at (0,0) size 355x18 434 text run at (0,0) width 355: "Font: HelveticaNeue-Bold Weight: 400 Style: italic" 435 RenderBlock {DIV} at (0,2743) size 769x19 436 RenderText {#text} at (0,0) size 365x19 437 text run at (0,0) width 365: "Font: HelveticaNeue-Bold Weight: 500 Style: italic" 438 RenderBlock {DIV} at (0,2762) size 769x19 439 439 RenderText {#text} at (0,0) size 377x19 440 440 text run at (0,0) width 377: "Font: HelveticaNeue-Bold Weight: 600 Style: italic" 441 RenderBlock {DIV} at (0,27 70) size 769x19441 RenderBlock {DIV} at (0,2781) size 769x19 442 442 RenderText {#text} at (0,0) size 377x19 443 443 text run at (0,0) width 377: "Font: HelveticaNeue-Bold Weight: 700 Style: italic" 444 RenderBlock {DIV} at (0,2 789) size 769x19444 RenderBlock {DIV} at (0,2800) size 769x19 445 445 RenderText {#text} at (0,0) size 377x19 446 446 text run at (0,0) width 377: "Font: HelveticaNeue-Bold Weight: 800 Style: italic" 447 RenderBlock {DIV} at (0,28 08) size 769x19447 RenderBlock {DIV} at (0,2819) size 769x19 448 448 RenderText {#text} at (0,0) size 377x19 449 449 text run at (0,0) width 377: "Font: HelveticaNeue-Bold Weight: 900 Style: italic" 450 RenderBlock {DIV} at (0,28 27) size 769x18450 RenderBlock {DIV} at (0,2838) size 769x18 451 451 RenderText {#text} at (0,0) size 372x18 452 452 text run at (0,0) width 372: "Font: HelveticaNeue-UltraLightItalic Weight: 100 Style: italic" 453 RenderBlock {DIV} at (0,28 45) size 769x18453 RenderBlock {DIV} at (0,2856) size 769x18 454 454 RenderText {#text} at (0,0) size 372x18 455 455 text run at (0,0) width 372: "Font: HelveticaNeue-UltraLightItalic Weight: 200 Style: italic" 456 RenderBlock {DIV} at (0,28 63) size 769x18456 RenderBlock {DIV} at (0,2874) size 769x18 457 457 RenderText {#text} at (0,0) size 372x18 458 458 text run at (0,0) width 372: "Font: HelveticaNeue-UltraLightItalic Weight: 300 Style: italic" 459 RenderBlock {DIV} at (0,28 81) size 769x18459 RenderBlock {DIV} at (0,2892) size 769x18 460 460 RenderText {#text} at (0,0) size 372x18 461 461 text run at (0,0) width 372: "Font: HelveticaNeue-UltraLightItalic Weight: 400 Style: italic" 462 RenderBlock {DIV} at (0,2 899) size 769x18462 RenderBlock {DIV} at (0,2910) size 769x18 463 463 RenderText {#text} at (0,0) size 372x18 464 464 text run at (0,0) width 372: "Font: HelveticaNeue-UltraLightItalic Weight: 500 Style: italic" 465 RenderBlock {DIV} at (0,29 17) size 769x19465 RenderBlock {DIV} at (0,2928) size 769x19 466 466 RenderText {#text} at (0,0) size 455x19 467 467 text run at (0,0) width 455: "Font: HelveticaNeue-UltraLightItalic Weight: 600 Style: italic" 468 RenderBlock {DIV} at (0,29 36) size 769x19468 RenderBlock {DIV} at (0,2947) size 769x19 469 469 RenderText {#text} at (0,0) size 455x19 470 470 text run at (0,0) width 455: "Font: HelveticaNeue-UltraLightItalic Weight: 700 Style: italic" 471 RenderBlock {DIV} at (0,29 55) size 769x19471 RenderBlock {DIV} at (0,2966) size 769x19 472 472 RenderText {#text} at (0,0) size 455x19 473 473 text run at (0,0) width 455: "Font: HelveticaNeue-UltraLightItalic Weight: 800 Style: italic" 474 RenderBlock {DIV} at (0,29 74) size 769x19474 RenderBlock {DIV} at (0,2985) size 769x19 475 475 RenderText {#text} at (0,0) size 455x19 476 476 text run at (0,0) width 455: "Font: HelveticaNeue-UltraLightItalic Weight: 900 Style: italic" 477 RenderBlock {DIV} at (0, 2993) size 769x18477 RenderBlock {DIV} at (0,3004) size 769x18 478 478 RenderText {#text} at (0,0) size 375x18 479 479 text run at (0,0) width 375: "Font: HelveticaNeue-LightItalic Weight: 100 Style: italic" 480 RenderBlock {DIV} at (0,30 11) size 769x18480 RenderBlock {DIV} at (0,3022) size 769x18 481 481 RenderText {#text} at (0,0) size 375x18 482 482 text run at (0,0) width 375: "Font: HelveticaNeue-LightItalic Weight: 200 Style: italic" 483 RenderBlock {DIV} at (0,30 29) size 769x18483 RenderBlock {DIV} at (0,3040) size 769x18 484 484 RenderText {#text} at (0,0) size 375x18 485 485 text run at (0,0) width 375: "Font: HelveticaNeue-LightItalic Weight: 300 Style: italic" 486 RenderBlock {DIV} at (0,30 47) size 769x18486 RenderBlock {DIV} at (0,3058) size 769x18 487 487 RenderText {#text} at (0,0) size 375x18 488 488 text run at (0,0) width 375: "Font: HelveticaNeue-LightItalic Weight: 400 Style: italic" 489 RenderBlock {DIV} at (0,30 65) size 769x18489 RenderBlock {DIV} at (0,3076) size 769x18 490 490 RenderText {#text} at (0,0) size 375x18 491 491 text run at (0,0) width 375: "Font: HelveticaNeue-LightItalic Weight: 500 Style: italic" 492 RenderBlock {DIV} at (0,30 83) size 769x19492 RenderBlock {DIV} at (0,3094) size 769x19 493 493 RenderText {#text} at (0,0) size 418x19 494 494 text run at (0,0) width 418: "Font: HelveticaNeue-LightItalic Weight: 600 Style: italic" 495 RenderBlock {DIV} at (0,31 02) size 769x19495 RenderBlock {DIV} at (0,3113) size 769x19 496 496 RenderText {#text} at (0,0) size 418x19 497 497 text run at (0,0) width 418: "Font: HelveticaNeue-LightItalic Weight: 700 Style: italic" 498 RenderBlock {DIV} at (0,31 21) size 769x19498 RenderBlock {DIV} at (0,3132) size 769x19 499 499 RenderText {#text} at (0,0) size 418x19 500 500 text run at (0,0) width 418: "Font: HelveticaNeue-LightItalic Weight: 800 Style: italic" 501 RenderBlock {DIV} at (0,31 40) size 769x19501 RenderBlock {DIV} at (0,3151) size 769x19 502 502 RenderText {#text} at (0,0) size 418x19 503 503 text run at (0,0) width 418: "Font: HelveticaNeue-LightItalic Weight: 900 Style: italic" 504 RenderBlock {DIV} at (0,31 59) size 769x18504 RenderBlock {DIV} at (0,3170) size 769x18 505 505 RenderText {#text} at (0,0) size 355x18 506 506 text run at (0,0) width 355: "Font: HelveticaNeue-Italic Weight: 100 Style: italic" 507 RenderBlock {DIV} at (0,31 77) size 769x18507 RenderBlock {DIV} at (0,3188) size 769x18 508 508 RenderText {#text} at (0,0) size 355x18 509 509 text run at (0,0) width 355: "Font: HelveticaNeue-Italic Weight: 200 Style: italic" 510 RenderBlock {DIV} at (0,3 195) size 769x18510 RenderBlock {DIV} at (0,3206) size 769x18 511 511 RenderText {#text} at (0,0) size 355x18 512 512 text run at (0,0) width 355: "Font: HelveticaNeue-Italic Weight: 300 Style: italic" 513 RenderBlock {DIV} at (0,32 13) size 769x18513 RenderBlock {DIV} at (0,3224) size 769x18 514 514 RenderText {#text} at (0,0) size 355x18 515 515 text run at (0,0) width 355: "Font: HelveticaNeue-Italic Weight: 400 Style: italic" 516 RenderBlock {DIV} at (0,32 31) size 769x18516 RenderBlock {DIV} at (0,3242) size 769x18 517 517 RenderText {#text} at (0,0) size 355x18 518 518 text run at (0,0) width 355: "Font: HelveticaNeue-Italic Weight: 500 Style: italic" 519 RenderBlock {DIV} at (0,32 49) size 769x19519 RenderBlock {DIV} at (0,3260) size 769x19 520 520 RenderText {#text} at (0,0) size 379x19 521 521 text run at (0,0) width 379: "Font: HelveticaNeue-Italic Weight: 600 Style: italic" 522 RenderBlock {DIV} at (0,32 68) size 769x19522 RenderBlock {DIV} at (0,3279) size 769x19 523 523 RenderText {#text} at (0,0) size 379x19 524 524 text run at (0,0) width 379: "Font: HelveticaNeue-Italic Weight: 700 Style: italic" 525 RenderBlock {DIV} at (0,32 87) size 769x19525 RenderBlock {DIV} at (0,3298) size 769x19 526 526 RenderText {#text} at (0,0) size 379x19 527 527 text run at (0,0) width 379: "Font: HelveticaNeue-Italic Weight: 800 Style: italic" 528 RenderBlock {DIV} at (0,33 06) size 769x19528 RenderBlock {DIV} at (0,3317) size 769x19 529 529 RenderText {#text} at (0,0) size 379x19 530 530 text run at (0,0) width 379: "Font: HelveticaNeue-Italic Weight: 900 Style: italic" 531 RenderBlock {DIV} at (0,33 25) size 769x19531 RenderBlock {DIV} at (0,3336) size 769x19 532 532 RenderText {#text} at (0,0) size 414x19 533 533 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 100 Style: italic" 534 RenderBlock {DIV} at (0,33 44) size 769x19534 RenderBlock {DIV} at (0,3355) size 769x19 535 535 RenderText {#text} at (0,0) size 414x19 536 536 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 200 Style: italic" 537 RenderBlock {DIV} at (0,33 63) size 769x19537 RenderBlock {DIV} at (0,3374) size 769x19 538 538 RenderText {#text} at (0,0) size 414x19 539 539 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 300 Style: italic" 540 RenderBlock {DIV} at (0,33 82) size 769x19540 RenderBlock {DIV} at (0,3393) size 769x19 541 541 RenderText {#text} at (0,0) size 414x19 542 542 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 400 Style: italic" 543 RenderBlock {DIV} at (0,34 01) size 769x19543 RenderBlock {DIV} at (0,3412) size 769x19 544 544 RenderText {#text} at (0,0) size 414x19 545 545 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 500 Style: italic" 546 RenderBlock {DIV} at (0,34 20) size 769x19546 RenderBlock {DIV} at (0,3431) size 769x19 547 547 RenderText {#text} at (0,0) size 414x19 548 548 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 600 Style: italic" 549 RenderBlock {DIV} at (0,34 39) size 769x19549 RenderBlock {DIV} at (0,3450) size 769x19 550 550 RenderText {#text} at (0,0) size 414x19 551 551 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 700 Style: italic" 552 RenderBlock {DIV} at (0,34 58) size 769x19552 RenderBlock {DIV} at (0,3469) size 769x19 553 553 RenderText {#text} at (0,0) size 414x19 554 554 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 800 Style: italic" 555 RenderBlock {DIV} at (0,34 77) size 769x19555 RenderBlock {DIV} at (0,3488) size 769x19 556 556 RenderText {#text} at (0,0) size 414x19 557 557 text run at (0,0) width 414: "Font: HelveticaNeue-BoldItalic Weight: 900 Style: italic" 558 RenderBlock {DIV} at (0,3 496) size 769x18558 RenderBlock {DIV} at (0,3507) size 769x18 559 559 RenderText {#text} at (0,0) size 254x18 560 560 text run at (0,0) width 254: "Font: Avenir Weight: 100 Style: normal" 561 RenderBlock {DIV} at (0,35 14) size 769x18561 RenderBlock {DIV} at (0,3525) size 769x18 562 562 RenderText {#text} at (0,0) size 254x18 563 563 text run at (0,0) width 254: "Font: Avenir Weight: 200 Style: normal" 564 RenderBlock {DIV} at (0,35 32) size 769x18564 RenderBlock {DIV} at (0,3543) size 769x18 565 565 RenderText {#text} at (0,0) size 254x18 566 566 text run at (0,0) width 254: "Font: Avenir Weight: 300 Style: normal" 567 RenderBlock {DIV} at (0,35 50) size 769x18567 RenderBlock {DIV} at (0,3561) size 769x18 568 568 RenderText {#text} at (0,0) size 254x18 569 569 text run at (0,0) width 254: "Font: Avenir Weight: 400 Style: normal" 570 RenderBlock {DIV} at (0,35 68) size 769x18570 RenderBlock {DIV} at (0,3579) size 769x18 571 571 RenderText {#text} at (0,0) size 254x18 572 572 text run at (0,0) width 254: "Font: Avenir Weight: 500 Style: normal" 573 RenderBlock {DIV} at (0,35 86) size 769x18573 RenderBlock {DIV} at (0,3597) size 769x18 574 574 RenderText {#text} at (0,0) size 271x18 575 575 text run at (0,0) width 271: "Font: Avenir Weight: 600 Style: normal" 576 RenderBlock {DIV} at (0,36 04) size 769x18576 RenderBlock {DIV} at (0,3615) size 769x18 577 577 RenderText {#text} at (0,0) size 271x18 578 578 text run at (0,0) width 271: "Font: Avenir Weight: 700 Style: normal" 579 RenderBlock {DIV} at (0,36 22) size 769x18579 RenderBlock {DIV} at (0,3633) size 769x18 580 580 RenderText {#text} at (0,0) size 271x18 581 581 text run at (0,0) width 271: "Font: Avenir Weight: 800 Style: normal" 582 RenderBlock {DIV} at (0,36 40) size 769x18582 RenderBlock {DIV} at (0,3651) size 769x18 583 583 RenderText {#text} at (0,0) size 271x18 584 584 text run at (0,0) width 271: "Font: Avenir Weight: 900 Style: normal" 585 RenderBlock {DIV} at (0,36 58) size 769x18585 RenderBlock {DIV} at (0,3669) size 769x18 586 586 RenderText {#text} at (0,0) size 294x18 587 587 text run at (0,0) width 294: "Font: Avenir-Light Weight: 100 Style: normal" 588 RenderBlock {DIV} at (0,36 76) size 769x18588 RenderBlock {DIV} at (0,3687) size 769x18 589 589 RenderText {#text} at (0,0) size 294x18 590 590 text run at (0,0) width 294: "Font: Avenir-Light Weight: 200 Style: normal" 591 RenderBlock {DIV} at (0,3 694) size 769x18591 RenderBlock {DIV} at (0,3705) size 769x18 592 592 RenderText {#text} at (0,0) size 294x18 593 593 text run at (0,0) width 294: "Font: Avenir-Light Weight: 300 Style: normal" 594 RenderBlock {DIV} at (0,37 12) size 769x18594 RenderBlock {DIV} at (0,3723) size 769x18 595 595 RenderText {#text} at (0,0) size 294x18 596 596 text run at (0,0) width 294: "Font: Avenir-Light Weight: 400 Style: normal" 597 RenderBlock {DIV} at (0,37 30) size 769x18597 RenderBlock {DIV} at (0,3741) size 769x18 598 598 RenderText {#text} at (0,0) size 294x18 599 599 text run at (0,0) width 294: "Font: Avenir-Light Weight: 500 Style: normal" 600 RenderBlock {DIV} at (0,37 48) size 769x18600 RenderBlock {DIV} at (0,3759) size 769x18 601 601 RenderText {#text} at (0,0) size 313x18 602 602 text run at (0,0) width 313: "Font: Avenir-Light Weight: 600 Style: normal" 603 RenderBlock {DIV} at (0,37 66) size 769x18603 RenderBlock {DIV} at (0,3777) size 769x18 604 604 RenderText {#text} at (0,0) size 313x18 605 605 text run at (0,0) width 313: "Font: Avenir-Light Weight: 700 Style: normal" 606 RenderBlock {DIV} at (0,37 84) size 769x18606 RenderBlock {DIV} at (0,3795) size 769x18 607 607 RenderText {#text} at (0,0) size 313x18 608 608 text run at (0,0) width 313: "Font: Avenir-Light Weight: 800 Style: normal" 609 RenderBlock {DIV} at (0,38 02) size 769x18609 RenderBlock {DIV} at (0,3813) size 769x18 610 610 RenderText {#text} at (0,0) size 313x18 611 611 text run at (0,0) width 313: "Font: Avenir-Light Weight: 900 Style: normal" 612 RenderBlock {DIV} at (0,38 20) size 769x18612 RenderBlock {DIV} at (0,3831) size 769x18 613 613 RenderText {#text} at (0,0) size 294x18 614 614 text run at (0,0) width 294: "Font: Avenir-Book Weight: 100 Style: normal" 615 RenderBlock {DIV} at (0,38 38) size 769x18615 RenderBlock {DIV} at (0,3849) size 769x18 616 616 RenderText {#text} at (0,0) size 294x18 617 617 text run at (0,0) width 294: "Font: Avenir-Book Weight: 200 Style: normal" 618 RenderBlock {DIV} at (0,38 56) size 769x18618 RenderBlock {DIV} at (0,3867) size 769x18 619 619 RenderText {#text} at (0,0) size 294x18 620 620 text run at (0,0) width 294: "Font: Avenir-Book Weight: 300 Style: normal" 621 RenderBlock {DIV} at (0,38 74) size 769x18621 RenderBlock {DIV} at (0,3885) size 769x18 622 622 RenderText {#text} at (0,0) size 294x18 623 623 text run at (0,0) width 294: "Font: Avenir-Book Weight: 400 Style: normal" 624 RenderBlock {DIV} at (0,3 892) size 769x18624 RenderBlock {DIV} at (0,3903) size 769x18 625 625 RenderText {#text} at (0,0) size 294x18 626 626 text run at (0,0) width 294: "Font: Avenir-Book Weight: 500 Style: normal" 627 RenderBlock {DIV} at (0,39 10) size 769x18627 RenderBlock {DIV} at (0,3921) size 769x18 628 628 RenderText {#text} at (0,0) size 311x18 629 629 text run at (0,0) width 311: "Font: Avenir-Book Weight: 600 Style: normal" 630 RenderBlock {DIV} at (0,39 28) size 769x18630 RenderBlock {DIV} at (0,3939) size 769x18 631 631 RenderText {#text} at (0,0) size 311x18 632 632 text run at (0,0) width 311: "Font: Avenir-Book Weight: 700 Style: normal" 633 RenderBlock {DIV} at (0,39 46) size 769x18633 RenderBlock {DIV} at (0,3957) size 769x18 634 634 RenderText {#text} at (0,0) size 311x18 635 635 text run at (0,0) width 311: "Font: Avenir-Book Weight: 800 Style: normal" 636 RenderBlock {DIV} at (0,39 64) size 769x18636 RenderBlock {DIV} at (0,3975) size 769x18 637 637 RenderText {#text} at (0,0) size 311x18 638 638 text run at (0,0) width 311: "Font: Avenir-Book Weight: 900 Style: normal" 639 RenderBlock {DIV} at (0,39 82) size 769x18639 RenderBlock {DIV} at (0,3993) size 769x18 640 640 RenderText {#text} at (0,0) size 314x18 641 641 text run at (0,0) width 314: "Font: Avenir-Medium Weight: 100 Style: normal" 642 RenderBlock {DIV} at (0,40 00) size 769x18642 RenderBlock {DIV} at (0,4011) size 769x18 643 643 RenderText {#text} at (0,0) size 314x18 644 644 text run at (0,0) width 314: "Font: Avenir-Medium Weight: 200 Style: normal" 645 RenderBlock {DIV} at (0,40 18) size 769x18645 RenderBlock {DIV} at (0,4029) size 769x18 646 646 RenderText {#text} at (0,0) size 314x18 647 647 text run at (0,0) width 314: "Font: Avenir-Medium Weight: 300 Style: normal" 648 RenderBlock {DIV} at (0,40 36) size 769x18648 RenderBlock {DIV} at (0,4047) size 769x18 649 649 RenderText {#text} at (0,0) size 314x18 650 650 text run at (0,0) width 314: "Font: Avenir-Medium Weight: 400 Style: normal" 651 RenderBlock {DIV} at (0,40 54) size 769x18651 RenderBlock {DIV} at (0,4065) size 769x18 652 652 RenderText {#text} at (0,0) size 314x18 653 653 text run at (0,0) width 314: "Font: Avenir-Medium Weight: 500 Style: normal" 654 RenderBlock {DIV} at (0,40 72) size 769x18654 RenderBlock {DIV} at (0,4083) size 769x18 655 655 RenderText {#text} at (0,0) size 333x18 656 656 text run at (0,0) width 333: "Font: Avenir-Medium Weight: 600 Style: normal" 657 RenderBlock {DIV} at (0,4 090) size 769x18657 RenderBlock {DIV} at (0,4101) size 769x18 658 658 RenderText {#text} at (0,0) size 333x18 659 659 text run at (0,0) width 333: "Font: Avenir-Medium Weight: 700 Style: normal" 660 RenderBlock {DIV} at (0,41 08) size 769x18660 RenderBlock {DIV} at (0,4119) size 769x18 661 661 RenderText {#text} at (0,0) size 333x18 662 662 text run at (0,0) width 333: "Font: Avenir-Medium Weight: 800 Style: normal" 663 RenderBlock {DIV} at (0,41 26) size 769x18663 RenderBlock {DIV} at (0,4137) size 769x18 664 664 RenderText {#text} at (0,0) size 333x18 665 665 text run at (0,0) width 333: "Font: Avenir-Medium Weight: 900 Style: normal" 666 RenderBlock {DIV} at (0,41 44) size 769x18666 RenderBlock {DIV} at (0,4155) size 769x18 667 667 RenderText {#text} at (0,0) size 297x18 668 668 text run at (0,0) width 297: "Font: Avenir-Black Weight: 100 Style: normal" 669 RenderBlock {DIV} at (0,41 62) size 769x18669 RenderBlock {DIV} at (0,4173) size 769x18 670 670 RenderText {#text} at (0,0) size 297x18 671 671 text run at (0,0) width 297: "Font: Avenir-Black Weight: 200 Style: normal" 672 RenderBlock {DIV} at (0,41 80) size 769x18672 RenderBlock {DIV} at (0,4191) size 769x18 673 673 RenderText {#text} at (0,0) size 297x18 674 674 text run at (0,0) width 297: "Font: Avenir-Black Weight: 300 Style: normal" 675 RenderBlock {DIV} at (0,4 198) size 769x18675 RenderBlock {DIV} at (0,4209) size 769x18 676 676 RenderText {#text} at (0,0) size 297x18 677 677 text run at (0,0) width 297: "Font: Avenir-Black Weight: 400 Style: normal" 678 RenderBlock {DIV} at (0,42 16) size 769x18678 RenderBlock {DIV} at (0,4227) size 769x18 679 679 RenderText {#text} at (0,0) size 297x18 680 680 text run at (0,0) width 297: "Font: Avenir-Black Weight: 500 Style: normal" 681 RenderBlock {DIV} at (0,42 34) size 769x18681 RenderBlock {DIV} at (0,4245) size 769x18 682 682 RenderText {#text} at (0,0) size 315x18 683 683 text run at (0,0) width 315: "Font: Avenir-Black Weight: 600 Style: normal" 684 RenderBlock {DIV} at (0,42 52) size 769x18684 RenderBlock {DIV} at (0,4263) size 769x18 685 685 RenderText {#text} at (0,0) size 315x18 686 686 text run at (0,0) width 315: "Font: Avenir-Black Weight: 700 Style: normal" 687 RenderBlock {DIV} at (0,42 70) size 769x18687 RenderBlock {DIV} at (0,4281) size 769x18 688 688 RenderText {#text} at (0,0) size 315x18 689 689 text run at (0,0) width 315: "Font: Avenir-Black Weight: 800 Style: normal" 690 RenderBlock {DIV} at (0,42 88) size 769x18690 RenderBlock {DIV} at (0,4299) size 769x18 691 691 RenderText {#text} at (0,0) size 315x18 692 692 text run at (0,0) width 315: "Font: Avenir-Black Weight: 900 Style: normal" 693 RenderBlock {DIV} at (0,43 06) size 769x18693 RenderBlock {DIV} at (0,4317) size 769x18 694 694 RenderText {#text} at (0,0) size 301x18 695 695 text run at (0,0) width 301: "Font: Avenir-Heavy Weight: 100 Style: normal" 696 RenderBlock {DIV} at (0,43 24) size 769x18696 RenderBlock {DIV} at (0,4335) size 769x18 697 697 RenderText {#text} at (0,0) size 301x18 698 698 text run at (0,0) width 301: "Font: Avenir-Heavy Weight: 200 Style: normal" 699 RenderBlock {DIV} at (0,43 42) size 769x18699 RenderBlock {DIV} at (0,4353) size 769x18 700 700 RenderText {#text} at (0,0) size 301x18 701 701 text run at (0,0) width 301: "Font: Avenir-Heavy Weight: 300 Style: normal" 702 RenderBlock {DIV} at (0,43 60) size 769x18702 RenderBlock {DIV} at (0,4371) size 769x18 703 703 RenderText {#text} at (0,0) size 301x18 704 704 text run at (0,0) width 301: "Font: Avenir-Heavy Weight: 400 Style: normal" 705 RenderBlock {DIV} at (0,43 78) size 769x18705 RenderBlock {DIV} at (0,4389) size 769x18 706 706 RenderText {#text} at (0,0) size 301x18 707 707 text run at (0,0) width 301: "Font: Avenir-Heavy Weight: 500 Style: normal" 708 RenderBlock {DIV} at (0,4 396) size 769x18708 RenderBlock {DIV} at (0,4407) size 769x18 709 709 RenderText {#text} at (0,0) size 319x18 710 710 text run at (0,0) width 319: "Font: Avenir-Heavy Weight: 600 Style: normal" 711 RenderBlock {DIV} at (0,44 14) size 769x18711 RenderBlock {DIV} at (0,4425) size 769x18 712 712 RenderText {#text} at (0,0) size 319x18 713 713 text run at (0,0) width 319: "Font: Avenir-Heavy Weight: 700 Style: normal" 714 RenderBlock {DIV} at (0,44 32) size 769x18714 RenderBlock {DIV} at (0,4443) size 769x18 715 715 RenderText {#text} at (0,0) size 319x18 716 716 text run at (0,0) width 319: "Font: Avenir-Heavy Weight: 800 Style: normal" 717 RenderBlock {DIV} at (0,44 50) size 769x18717 RenderBlock {DIV} at (0,4461) size 769x18 718 718 RenderText {#text} at (0,0) size 319x18 719 719 text run at (0,0) width 319: "Font: Avenir-Heavy Weight: 900 Style: normal" 720 RenderBlock {DIV} at (0,44 68) size 769x18720 RenderBlock {DIV} at (0,4479) size 769x18 721 721 RenderText {#text} at (0,0) size 346x18 722 722 text run at (0,0) width 346: "Font: Avenir-LightOblique Weight: 100 Style: normal" 723 RenderBlock {DIV} at (0,44 86) size 769x18723 RenderBlock {DIV} at (0,4497) size 769x18 724 724 RenderText {#text} at (0,0) size 346x18 725 725 text run at (0,0) width 346: "Font: Avenir-LightOblique Weight: 200 Style: normal" 726 RenderBlock {DIV} at (0,45 04) size 769x18726 RenderBlock {DIV} at (0,4515) size 769x18 727 727 RenderText {#text} at (0,0) size 346x18 728 728 text run at (0,0) width 346: "Font: Avenir-LightOblique Weight: 300 Style: normal" 729 RenderBlock {DIV} at (0,45 22) size 769x18729 RenderBlock {DIV} at (0,4533) size 769x18 730 730 RenderText {#text} at (0,0) size 346x18 731 731 text run at (0,0) width 346: "Font: Avenir-LightOblique Weight: 400 Style: normal" 732 RenderBlock {DIV} at (0,45 40) size 769x18732 RenderBlock {DIV} at (0,4551) size 769x18 733 733 RenderText {#text} at (0,0) size 346x18 734 734 text run at (0,0) width 346: "Font: Avenir-LightOblique Weight: 500 Style: normal" 735 RenderBlock {DIV} at (0,45 58) size 769x18735 RenderBlock {DIV} at (0,4569) size 769x18 736 736 RenderText {#text} at (0,0) size 368x18 737 737 text run at (0,0) width 368: "Font: Avenir-LightOblique Weight: 600 Style: normal" 738 RenderBlock {DIV} at (0,45 76) size 769x18738 RenderBlock {DIV} at (0,4587) size 769x18 739 739 RenderText {#text} at (0,0) size 368x18 740 740 text run at (0,0) width 368: "Font: Avenir-LightOblique Weight: 700 Style: normal" 741 RenderBlock {DIV} at (0,4 594) size 769x18741 RenderBlock {DIV} at (0,4605) size 769x18 742 742 RenderText {#text} at (0,0) size 368x18 743 743 text run at (0,0) width 368: "Font: Avenir-LightOblique Weight: 800 Style: normal" 744 RenderBlock {DIV} at (0,46 12) size 769x18744 RenderBlock {DIV} at (0,4623) size 769x18 745 745 RenderText {#text} at (0,0) size 368x18 746 746 text run at (0,0) width 368: "Font: Avenir-LightOblique Weight: 900 Style: normal" 747 RenderBlock {DIV} at (0,46 30) size 769x18747 RenderBlock {DIV} at (0,4641) size 769x18 748 748 RenderText {#text} at (0,0) size 346x18 749 749 text run at (0,0) width 346: "Font: Avenir-BookOblique Weight: 100 Style: normal" 750 RenderBlock {DIV} at (0,46 48) size 769x18750 RenderBlock {DIV} at (0,4659) size 769x18 751 751 RenderText {#text} at (0,0) size 346x18 752 752 text run at (0,0) width 346: "Font: Avenir-BookOblique Weight: 200 Style: normal" 753 RenderBlock {DIV} at (0,46 66) size 769x18753 RenderBlock {DIV} at (0,4677) size 769x18 754 754 RenderText {#text} at (0,0) size 346x18 755 755 text run at (0,0) width 346: "Font: Avenir-BookOblique Weight: 300 Style: normal" 756 RenderBlock {DIV} at (0,46 84) size 769x18756 RenderBlock {DIV} at (0,4695) size 769x18 757 757 RenderText {#text} at (0,0) size 346x18 758 758 text run at (0,0) width 346: "Font: Avenir-BookOblique Weight: 400 Style: normal" 759 RenderBlock {DIV} at (0,47 02) size 769x18759 RenderBlock {DIV} at (0,4713) size 769x18 760 760 RenderText {#text} at (0,0) size 346x18 761 761 text run at (0,0) width 346: "Font: Avenir-BookOblique Weight: 500 Style: normal" 762 RenderBlock {DIV} at (0,47 20) size 769x18762 RenderBlock {DIV} at (0,4731) size 769x18 763 763 RenderText {#text} at (0,0) size 366x18 764 764 text run at (0,0) width 366: "Font: Avenir-BookOblique Weight: 600 Style: normal" 765 RenderBlock {DIV} at (0,47 38) size 769x18765 RenderBlock {DIV} at (0,4749) size 769x18 766 766 RenderText {#text} at (0,0) size 366x18 767 767 text run at (0,0) width 366: "Font: Avenir-BookOblique Weight: 700 Style: normal" 768 RenderBlock {DIV} at (0,47 56) size 769x18768 RenderBlock {DIV} at (0,4767) size 769x18 769 769 RenderText {#text} at (0,0) size 366x18 770 770 text run at (0,0) width 366: "Font: Avenir-BookOblique Weight: 800 Style: normal" 771 RenderBlock {DIV} at (0,47 74) size 769x18771 RenderBlock {DIV} at (0,4785) size 769x18 772 772 RenderText {#text} at (0,0) size 366x18 773 773 text run at (0,0) width 366: "Font: Avenir-BookOblique Weight: 900 Style: normal" 774 RenderBlock {DIV} at (0,4 792) size 769x18774 RenderBlock {DIV} at (0,4803) size 769x18 775 775 RenderText {#text} at (0,0) size 365x18 776 776 text run at (0,0) width 365: "Font: Avenir-MediumOblique Weight: 100 Style: normal" 777 RenderBlock {DIV} at (0,48 10) size 769x18777 RenderBlock {DIV} at (0,4821) size 769x18 778 778 RenderText {#text} at (0,0) size 365x18 779 779 text run at (0,0) width 365: "Font: Avenir-MediumOblique Weight: 200 Style: normal" 780 RenderBlock {DIV} at (0,48 28) size 769x18780 RenderBlock {DIV} at (0,4839) size 769x18 781 781 RenderText {#text} at (0,0) size 365x18 782 782 text run at (0,0) width 365: "Font: Avenir-MediumOblique Weight: 300 Style: normal" 783 RenderBlock {DIV} at (0,48 46) size 769x18783 RenderBlock {DIV} at (0,4857) size 769x18 784 784 RenderText {#text} at (0,0) size 365x18 785 785 text run at (0,0) width 365: "Font: Avenir-MediumOblique Weight: 400 Style: normal" 786 RenderBlock {DIV} at (0,48 64) size 769x18786 RenderBlock {DIV} at (0,4875) size 769x18 787 787 RenderText {#text} at (0,0) size 365x18 788 788 text run at (0,0) width 365: "Font: Avenir-MediumOblique Weight: 500 Style: normal" 789 RenderBlock {DIV} at (0,48 82) size 769x18789 RenderBlock {DIV} at (0,4893) size 769x18 790 790 RenderText {#text} at (0,0) size 388x18 791 791 text run at (0,0) width 388: "Font: Avenir-MediumOblique Weight: 600 Style: normal" 792 RenderBlock {DIV} at (0,49 00) size 769x18792 RenderBlock {DIV} at (0,4911) size 769x18 793 793 RenderText {#text} at (0,0) size 388x18 794 794 text run at (0,0) width 388: "Font: Avenir-MediumOblique Weight: 700 Style: normal" 795 RenderBlock {DIV} at (0,49 18) size 769x18795 RenderBlock {DIV} at (0,4929) size 769x18 796 796 RenderText {#text} at (0,0) size 388x18 797 797 text run at (0,0) width 388: "Font: Avenir-MediumOblique Weight: 800 Style: normal" 798 RenderBlock {DIV} at (0,49 36) size 769x18798 RenderBlock {DIV} at (0,4947) size 769x18 799 799 RenderText {#text} at (0,0) size 388x18 800 800 text run at (0,0) width 388: "Font: Avenir-MediumOblique Weight: 900 Style: normal" 801 RenderBlock {DIV} at (0,49 54) size 769x18801 RenderBlock {DIV} at (0,4965) size 769x18 802 802 RenderText {#text} at (0,0) size 348x18 803 803 text run at (0,0) width 348: "Font: Avenir-BlackOblique Weight: 100 Style: normal" 804 RenderBlock {DIV} at (0,49 72) size 769x18804 RenderBlock {DIV} at (0,4983) size 769x18 805 805 RenderText {#text} at (0,0) size 348x18 806 806 text run at (0,0) width 348: "Font: Avenir-BlackOblique Weight: 200 Style: normal" 807 RenderBlock {DIV} at (0, 4990) size 769x18807 RenderBlock {DIV} at (0,5001) size 769x18 808 808 RenderText {#text} at (0,0) size 348x18 809 809 text run at (0,0) width 348: "Font: Avenir-BlackOblique Weight: 300 Style: normal" 810 RenderBlock {DIV} at (0,50 08) size 769x18810 RenderBlock {DIV} at (0,5019) size 769x18 811 811 RenderText {#text} at (0,0) size 348x18 812 812 text run at (0,0) width 348: "Font: Avenir-BlackOblique Weight: 400 Style: normal" 813 RenderBlock {DIV} at (0,50 26) size 769x18813 RenderBlock {DIV} at (0,5037) size 769x18 814 814 RenderText {#text} at (0,0) size 348x18 815 815 text run at (0,0) width 348: "Font: Avenir-BlackOblique Weight: 500 Style: normal" 816 RenderBlock {DIV} at (0,50 44) size 769x18816 RenderBlock {DIV} at (0,5055) size 769x18 817 817 RenderText {#text} at (0,0) size 370x18 818 818 text run at (0,0) width 370: "Font: Avenir-BlackOblique Weight: 600 Style: normal" 819 RenderBlock {DIV} at (0,50 62) size 769x18819 RenderBlock {DIV} at (0,5073) size 769x18 820 820 RenderText {#text} at (0,0) size 370x18 821 821 text run at (0,0) width 370: "Font: Avenir-BlackOblique Weight: 700 Style: normal" 822 RenderBlock {DIV} at (0,50 80) size 769x18822 RenderBlock {DIV} at (0,5091) size 769x18 823 823 RenderText {#text} at (0,0) size 370x18 824 824 text run at (0,0) width 370: "Font: Avenir-BlackOblique Weight: 800 Style: normal" 825 RenderBlock {DIV} at (0,5 098) size 769x18825 RenderBlock {DIV} at (0,5109) size 769x18 826 826 RenderText {#text} at (0,0) size 370x18 827 827 text run at (0,0) width 370: "Font: Avenir-BlackOblique Weight: 900 Style: normal" 828 RenderBlock {DIV} at (0,51 16) size 769x18828 RenderBlock {DIV} at (0,5127) size 769x18 829 829 RenderText {#text} at (0,0) size 240x18 830 830 text run at (0,0) width 240: "Font: Avenir Weight: 100 Style: italic" 831 RenderBlock {DIV} at (0,51 34) size 769x18831 RenderBlock {DIV} at (0,5145) size 769x18 832 832 RenderText {#text} at (0,0) size 240x18 833 833 text run at (0,0) width 240: "Font: Avenir Weight: 200 Style: italic" 834 RenderBlock {DIV} at (0,51 52) size 769x18834 RenderBlock {DIV} at (0,5163) size 769x18 835 835 RenderText {#text} at (0,0) size 240x18 836 836 text run at (0,0) width 240: "Font: Avenir Weight: 300 Style: italic" 837 RenderBlock {DIV} at (0,51 70) size 769x18837 RenderBlock {DIV} at (0,5181) size 769x18 838 838 RenderText {#text} at (0,0) size 240x18 839 839 text run at (0,0) width 240: "Font: Avenir Weight: 400 Style: italic" 840 RenderBlock {DIV} at (0,51 88) size 769x18840 RenderBlock {DIV} at (0,5199) size 769x18 841 841 RenderText {#text} at (0,0) size 240x18 842 842 text run at (0,0) width 240: "Font: Avenir Weight: 500 Style: italic" 843 RenderBlock {DIV} at (0,52 06) size 769x18843 RenderBlock {DIV} at (0,5217) size 769x18 844 844 RenderText {#text} at (0,0) size 247x18 845 845 text run at (0,0) width 247: "Font: Avenir Weight: 600 Style: italic" 846 RenderBlock {DIV} at (0,52 24) size 769x18846 RenderBlock {DIV} at (0,5235) size 769x18 847 847 RenderText {#text} at (0,0) size 247x18 848 848 text run at (0,0) width 247: "Font: Avenir Weight: 700 Style: italic" 849 RenderBlock {DIV} at (0,52 42) size 769x18849 RenderBlock {DIV} at (0,5253) size 769x18 850 850 RenderText {#text} at (0,0) size 247x18 851 851 text run at (0,0) width 247: "Font: Avenir Weight: 800 Style: italic" 852 RenderBlock {DIV} at (0,52 60) size 769x18852 RenderBlock {DIV} at (0,5271) size 769x18 853 853 RenderText {#text} at (0,0) size 247x18 854 854 text run at (0,0) width 247: "Font: Avenir Weight: 900 Style: italic" 855 RenderBlock {DIV} at (0,52 78) size 769x18855 RenderBlock {DIV} at (0,5289) size 769x18 856 856 RenderText {#text} at (0,0) size 279x18 857 857 text run at (0,0) width 279: "Font: Avenir-Light Weight: 100 Style: italic" 858 RenderBlock {DIV} at (0,5 296) size 769x18858 RenderBlock {DIV} at (0,5307) size 769x18 859 859 RenderText {#text} at (0,0) size 279x18 860 860 text run at (0,0) width 279: "Font: Avenir-Light Weight: 200 Style: italic" 861 RenderBlock {DIV} at (0,53 14) size 769x18861 RenderBlock {DIV} at (0,5325) size 769x18 862 862 RenderText {#text} at (0,0) size 279x18 863 863 text run at (0,0) width 279: "Font: Avenir-Light Weight: 300 Style: italic" 864 RenderBlock {DIV} at (0,53 32) size 769x18864 RenderBlock {DIV} at (0,5343) size 769x18 865 865 RenderText {#text} at (0,0) size 279x18 866 866 text run at (0,0) width 279: "Font: Avenir-Light Weight: 400 Style: italic" 867 RenderBlock {DIV} at (0,53 50) size 769x18867 RenderBlock {DIV} at (0,5361) size 769x18 868 868 RenderText {#text} at (0,0) size 279x18 869 869 text run at (0,0) width 279: "Font: Avenir-Light Weight: 500 Style: italic" 870 RenderBlock {DIV} at (0,53 68) size 769x18870 RenderBlock {DIV} at (0,5379) size 769x18 871 871 RenderText {#text} at (0,0) size 287x18 872 872 text run at (0,0) width 287: "Font: Avenir-Light Weight: 600 Style: italic" 873 RenderBlock {DIV} at (0,53 86) size 769x18873 RenderBlock {DIV} at (0,5397) size 769x18 874 874 RenderText {#text} at (0,0) size 287x18 875 875 text run at (0,0) width 287: "Font: Avenir-Light Weight: 700 Style: italic" 876 RenderBlock {DIV} at (0,54 04) size 769x18876 RenderBlock {DIV} at (0,5415) size 769x18 877 877 RenderText {#text} at (0,0) size 287x18 878 878 text run at (0,0) width 287: "Font: Avenir-Light Weight: 800 Style: italic" 879 RenderBlock {DIV} at (0,54 22) size 769x18879 RenderBlock {DIV} at (0,5433) size 769x18 880 880 RenderText {#text} at (0,0) size 287x18 881 881 text run at (0,0) width 287: "Font: Avenir-Light Weight: 900 Style: italic" 882 RenderBlock {DIV} at (0,54 40) size 769x18882 RenderBlock {DIV} at (0,5451) size 769x18 883 883 RenderText {#text} at (0,0) size 278x18 884 884 text run at (0,0) width 278: "Font: Avenir-Book Weight: 100 Style: italic" 885 RenderBlock {DIV} at (0,54 58) size 769x18885 RenderBlock {DIV} at (0,5469) size 769x18 886 886 RenderText {#text} at (0,0) size 278x18 887 887 text run at (0,0) width 278: "Font: Avenir-Book Weight: 200 Style: italic" 888 RenderBlock {DIV} at (0,54 76) size 769x18888 RenderBlock {DIV} at (0,5487) size 769x18 889 889 RenderText {#text} at (0,0) size 278x18 890 890 text run at (0,0) width 278: "Font: Avenir-Book Weight: 300 Style: italic" 891 RenderBlock {DIV} at (0,5 494) size 769x18891 RenderBlock {DIV} at (0,5505) size 769x18 892 892 RenderText {#text} at (0,0) size 278x18 893 893 text run at (0,0) width 278: "Font: Avenir-Book Weight: 400 Style: italic" 894 RenderBlock {DIV} at (0,55 12) size 769x18894 RenderBlock {DIV} at (0,5523) size 769x18 895 895 RenderText {#text} at (0,0) size 278x18 896 896 text run at (0,0) width 278: "Font: Avenir-Book Weight: 500 Style: italic" 897 RenderBlock {DIV} at (0,55 30) size 769x18897 RenderBlock {DIV} at (0,5541) size 769x18 898 898 RenderText {#text} at (0,0) size 287x18 899 899 text run at (0,0) width 287: "Font: Avenir-Book Weight: 600 Style: italic" 900 RenderBlock {DIV} at (0,55 48) size 769x18900 RenderBlock {DIV} at (0,5559) size 769x18 901 901 RenderText {#text} at (0,0) size 287x18 902 902 text run at (0,0) width 287: "Font: Avenir-Book Weight: 700 Style: italic" 903 RenderBlock {DIV} at (0,55 66) size 769x18903 RenderBlock {DIV} at (0,5577) size 769x18 904 904 RenderText {#text} at (0,0) size 287x18 905 905 text run at (0,0) width 287: "Font: Avenir-Book Weight: 800 Style: italic" 906 RenderBlock {DIV} at (0,55 84) size 769x18906 RenderBlock {DIV} at (0,5595) size 769x18 907 907 RenderText {#text} at (0,0) size 287x18 908 908 text run at (0,0) width 287: "Font: Avenir-Book Weight: 900 Style: italic" 909 RenderBlock {DIV} at (0,56 02) size 769x18909 RenderBlock {DIV} at (0,5613) size 769x18 910 910 RenderText {#text} at (0,0) size 298x18 911 911 text run at (0,0) width 298: "Font: Avenir-Medium Weight: 100 Style: italic" 912 RenderBlock {DIV} at (0,56 20) size 769x18912 RenderBlock {DIV} at (0,5631) size 769x18 913 913 RenderText {#text} at (0,0) size 298x18 914 914 text run at (0,0) width 298: "Font: Avenir-Medium Weight: 200 Style: italic" 915 RenderBlock {DIV} at (0,56 38) size 769x18915 RenderBlock {DIV} at (0,5649) size 769x18 916 916 RenderText {#text} at (0,0) size 298x18 917 917 text run at (0,0) width 298: "Font: Avenir-Medium Weight: 300 Style: italic" 918 RenderBlock {DIV} at (0,56 56) size 769x18918 RenderBlock {DIV} at (0,5667) size 769x18 919 919 RenderText {#text} at (0,0) size 298x18 920 920 text run at (0,0) width 298: "Font: Avenir-Medium Weight: 400 Style: italic" 921 RenderBlock {DIV} at (0,56 74) size 769x18921 RenderBlock {DIV} at (0,5685) size 769x18 922 922 RenderText {#text} at (0,0) size 298x18 923 923 text run at (0,0) width 298: "Font: Avenir-Medium Weight: 500 Style: italic" 924 RenderBlock {DIV} at (0,5 692) size 769x18924 RenderBlock {DIV} at (0,5703) size 769x18 925 925 RenderText {#text} at (0,0) size 307x18 926 926 text run at (0,0) width 307: "Font: Avenir-Medium Weight: 600 Style: italic" 927 RenderBlock {DIV} at (0,57 10) size 769x18927 RenderBlock {DIV} at (0,5721) size 769x18 928 928 RenderText {#text} at (0,0) size 307x18 929 929 text run at (0,0) width 307: "Font: Avenir-Medium Weight: 700 Style: italic" 930 RenderBlock {DIV} at (0,57 28) size 769x18930 RenderBlock {DIV} at (0,5739) size 769x18 931 931 RenderText {#text} at (0,0) size 307x18 932 932 text run at (0,0) width 307: "Font: Avenir-Medium Weight: 800 Style: italic" 933 RenderBlock {DIV} at (0,57 46) size 769x18933 RenderBlock {DIV} at (0,5757) size 769x18 934 934 RenderText {#text} at (0,0) size 307x18 935 935 text run at (0,0) width 307: "Font: Avenir-Medium Weight: 900 Style: italic" 936 RenderBlock {DIV} at (0,57 64) size 769x18936 RenderBlock {DIV} at (0,5775) size 769x18 937 937 RenderText {#text} at (0,0) size 282x18 938 938 text run at (0,0) width 282: "Font: Avenir-Black Weight: 100 Style: italic" 939 RenderBlock {DIV} at (0,57 82) size 769x18939 RenderBlock {DIV} at (0,5793) size 769x18 940 940 RenderText {#text} at (0,0) size 282x18 941 941 text run at (0,0) width 282: "Font: Avenir-Black Weight: 200 Style: italic" 942 RenderBlock {DIV} at (0,58 00) size 769x18942 RenderBlock {DIV} at (0,5811) size 769x18 943 943 RenderText {#text} at (0,0) size 282x18 944 944 text run at (0,0) width 282: "Font: Avenir-Black Weight: 300 Style: italic" 945 RenderBlock {DIV} at (0,58 18) size 769x18945 RenderBlock {DIV} at (0,5829) size 769x18 946 946 RenderText {#text} at (0,0) size 282x18 947 947 text run at (0,0) width 282: "Font: Avenir-Black Weight: 400 Style: italic" 948 RenderBlock {DIV} at (0,58 36) size 769x18948 RenderBlock {DIV} at (0,5847) size 769x18 949 949 RenderText {#text} at (0,0) size 282x18 950 950 text run at (0,0) width 282: "Font: Avenir-Black Weight: 500 Style: italic" 951 RenderBlock {DIV} at (0,58 54) size 769x18951 RenderBlock {DIV} at (0,5865) size 769x18 952 952 RenderText {#text} at (0,0) size 290x18 953 953 text run at (0,0) width 290: "Font: Avenir-Black Weight: 600 Style: italic" 954 RenderBlock {DIV} at (0,58 72) size 769x18954 RenderBlock {DIV} at (0,5883) size 769x18 955 955 RenderText {#text} at (0,0) size 290x18 956 956 text run at (0,0) width 290: "Font: Avenir-Black Weight: 700 Style: italic" 957 RenderBlock {DIV} at (0,5 890) size 769x18957 RenderBlock {DIV} at (0,5901) size 769x18 958 958 RenderText {#text} at (0,0) size 290x18 959 959 text run at (0,0) width 290: "Font: Avenir-Black Weight: 800 Style: italic" 960 RenderBlock {DIV} at (0,59 08) size 769x18960 RenderBlock {DIV} at (0,5919) size 769x18 961 961 RenderText {#text} at (0,0) size 290x18 962 962 text run at (0,0) width 290: "Font: Avenir-Black Weight: 900 Style: italic" 963 RenderBlock {DIV} at (0,59 26) size 769x18963 RenderBlock {DIV} at (0,5937) size 769x18 964 964 RenderText {#text} at (0,0) size 286x18 965 965 text run at (0,0) width 286: "Font: Avenir-Heavy Weight: 100 Style: italic" 966 RenderBlock {DIV} at (0,59 44) size 769x18966 RenderBlock {DIV} at (0,5955) size 769x18 967 967 RenderText {#text} at (0,0) size 286x18 968 968 text run at (0,0) width 286: "Font: Avenir-Heavy Weight: 200 Style: italic" 969 RenderBlock {DIV} at (0,59 62) size 769x18969 RenderBlock {DIV} at (0,5973) size 769x18 970 970 RenderText {#text} at (0,0) size 286x18 971 971 text run at (0,0) width 286: "Font: Avenir-Heavy Weight: 300 Style: italic" 972 RenderBlock {DIV} at (0,59 80) size 769x18972 RenderBlock {DIV} at (0,5991) size 769x18 973 973 RenderText {#text} at (0,0) size 286x18 974 974 text run at (0,0) width 286: "Font: Avenir-Heavy Weight: 400 Style: italic" 975 RenderBlock {DIV} at (0, 5998) size 769x18975 RenderBlock {DIV} at (0,6009) size 769x18 976 976 RenderText {#text} at (0,0) size 286x18 977 977 text run at (0,0) width 286: "Font: Avenir-Heavy Weight: 500 Style: italic" 978 RenderBlock {DIV} at (0,60 16) size 769x18978 RenderBlock {DIV} at (0,6027) size 769x18 979 979 RenderText {#text} at (0,0) size 294x18 980 980 text run at (0,0) width 294: "Font: Avenir-Heavy Weight: 600 Style: italic" 981 RenderBlock {DIV} at (0,60 34) size 769x18981 RenderBlock {DIV} at (0,6045) size 769x18 982 982 RenderText {#text} at (0,0) size 294x18 983 983 text run at (0,0) width 294: "Font: Avenir-Heavy Weight: 700 Style: italic" 984 RenderBlock {DIV} at (0,60 52) size 769x18984 RenderBlock {DIV} at (0,6063) size 769x18 985 985 RenderText {#text} at (0,0) size 294x18 986 986 text run at (0,0) width 294: "Font: Avenir-Heavy Weight: 800 Style: italic" 987 RenderBlock {DIV} at (0,60 70) size 769x18987 RenderBlock {DIV} at (0,6081) size 769x18 988 988 RenderText {#text} at (0,0) size 294x18 989 989 text run at (0,0) width 294: "Font: Avenir-Heavy Weight: 900 Style: italic" 990 RenderBlock {DIV} at (0,60 88) size 769x18990 RenderBlock {DIV} at (0,6099) size 769x18 991 991 RenderText {#text} at (0,0) size 331x18 992 992 text run at (0,0) width 331: "Font: Avenir-LightOblique Weight: 100 Style: italic" 993 RenderBlock {DIV} at (0,61 06) size 769x18993 RenderBlock {DIV} at (0,6117) size 769x18 994 994 RenderText {#text} at (0,0) size 331x18 995 995 text run at (0,0) width 331: "Font: Avenir-LightOblique Weight: 200 Style: italic" 996 RenderBlock {DIV} at (0,61 24) size 769x18996 RenderBlock {DIV} at (0,6135) size 769x18 997 997 RenderText {#text} at (0,0) size 331x18 998 998 text run at (0,0) width 331: "Font: Avenir-LightOblique Weight: 300 Style: italic" 999 RenderBlock {DIV} at (0,61 42) size 769x18999 RenderBlock {DIV} at (0,6153) size 769x18 1000 1000 RenderText {#text} at (0,0) size 331x18 1001 1001 text run at (0,0) width 331: "Font: Avenir-LightOblique Weight: 400 Style: italic" 1002 RenderBlock {DIV} at (0,61 60) size 769x181002 RenderBlock {DIV} at (0,6171) size 769x18 1003 1003 RenderText {#text} at (0,0) size 331x18 1004 1004 text run at (0,0) width 331: "Font: Avenir-LightOblique Weight: 500 Style: italic" 1005 RenderBlock {DIV} at (0,61 78) size 769x181005 RenderBlock {DIV} at (0,6189) size 769x18 1006 1006 RenderText {#text} at (0,0) size 340x18 1007 1007 text run at (0,0) width 340: "Font: Avenir-LightOblique Weight: 600 Style: italic" 1008 RenderBlock {DIV} at (0,6 196) size 769x181008 RenderBlock {DIV} at (0,6207) size 769x18 1009 1009 RenderText {#text} at (0,0) size 340x18 1010 1010 text run at (0,0) width 340: "Font: Avenir-LightOblique Weight: 700 Style: italic" 1011 RenderBlock {DIV} at (0,62 14) size 769x181011 RenderBlock {DIV} at (0,6225) size 769x18 1012 1012 RenderText {#text} at (0,0) size 340x18 1013 1013 text run at (0,0) width 340: "Font: Avenir-LightOblique Weight: 800 Style: italic" 1014 RenderBlock {DIV} at (0,62 32) size 769x181014 RenderBlock {DIV} at (0,6243) size 769x18 1015 1015 RenderText {#text} at (0,0) size 340x18 1016 1016 text run at (0,0) width 340: "Font: Avenir-LightOblique Weight: 900 Style: italic" 1017 RenderBlock {DIV} at (0,62 50) size 769x181017 RenderBlock {DIV} at (0,6261) size 769x18 1018 1018 RenderText {#text} at (0,0) size 330x18 1019 1019 text run at (0,0) width 330: "Font: Avenir-BookOblique Weight: 100 Style: italic" 1020 RenderBlock {DIV} at (0,62 68) size 769x181020 RenderBlock {DIV} at (0,6279) size 769x18 1021 1021 RenderText {#text} at (0,0) size 330x18 1022 1022 text run at (0,0) width 330: "Font: Avenir-BookOblique Weight: 200 Style: italic" 1023 RenderBlock {DIV} at (0,62 86) size 769x181023 RenderBlock {DIV} at (0,6297) size 769x18 1024 1024 RenderText {#text} at (0,0) size 330x18 1025 1025 text run at (0,0) width 330: "Font: Avenir-BookOblique Weight: 300 Style: italic" 1026 RenderBlock {DIV} at (0,63 04) size 769x181026 RenderBlock {DIV} at (0,6315) size 769x18 1027 1027 RenderText {#text} at (0,0) size 330x18 1028 1028 text run at (0,0) width 330: "Font: Avenir-BookOblique Weight: 400 Style: italic" 1029 RenderBlock {DIV} at (0,63 22) size 769x181029 RenderBlock {DIV} at (0,6333) size 769x18 1030 1030 RenderText {#text} at (0,0) size 330x18 1031 1031 text run at (0,0) width 330: "Font: Avenir-BookOblique Weight: 500 Style: italic" 1032 RenderBlock {DIV} at (0,63 40) size 769x181032 RenderBlock {DIV} at (0,6351) size 769x18 1033 1033 RenderText {#text} at (0,0) size 339x18 1034 1034 text run at (0,0) width 339: "Font: Avenir-BookOblique Weight: 600 Style: italic" 1035 RenderBlock {DIV} at (0,63 58) size 769x181035 RenderBlock {DIV} at (0,6369) size 769x18 1036 1036 RenderText {#text} at (0,0) size 339x18 1037 1037 text run at (0,0) width 339: "Font: Avenir-BookOblique Weight: 700 Style: italic" 1038 RenderBlock {DIV} at (0,63 76) size 769x181038 RenderBlock {DIV} at (0,6387) size 769x18 1039 1039 RenderText {#text} at (0,0) size 339x18 1040 1040 text run at (0,0) width 339: "Font: Avenir-BookOblique Weight: 800 Style: italic" 1041 RenderBlock {DIV} at (0,6 394) size 769x181041 RenderBlock {DIV} at (0,6405) size 769x18 1042 1042 RenderText {#text} at (0,0) size 339x18 1043 1043 text run at (0,0) width 339: "Font: Avenir-BookOblique Weight: 900 Style: italic" 1044 RenderBlock {DIV} at (0,64 12) size 769x181044 RenderBlock {DIV} at (0,6423) size 769x18 1045 1045 RenderText {#text} at (0,0) size 349x18 1046 1046 text run at (0,0) width 349: "Font: Avenir-MediumOblique Weight: 100 Style: italic" 1047 RenderBlock {DIV} at (0,64 30) size 769x181047 RenderBlock {DIV} at (0,6441) size 769x18 1048 1048 RenderText {#text} at (0,0) size 349x18 1049 1049 text run at (0,0) width 349: "Font: Avenir-MediumOblique Weight: 200 Style: italic" 1050 RenderBlock {DIV} at (0,64 48) size 769x181050 RenderBlock {DIV} at (0,6459) size 769x18 1051 1051 RenderText {#text} at (0,0) size 349x18 1052 1052 text run at (0,0) width 349: "Font: Avenir-MediumOblique Weight: 300 Style: italic" 1053 RenderBlock {DIV} at (0,64 66) size 769x181053 RenderBlock {DIV} at (0,6477) size 769x18 1054 1054 RenderText {#text} at (0,0) size 349x18 1055 1055 text run at (0,0) width 349: "Font: Avenir-MediumOblique Weight: 400 Style: italic" 1056 RenderBlock {DIV} at (0,64 84) size 769x181056 RenderBlock {DIV} at (0,6495) size 769x18 1057 1057 RenderText {#text} at (0,0) size 349x18 1058 1058 text run at (0,0) width 349: "Font: Avenir-MediumOblique Weight: 500 Style: italic" 1059 RenderBlock {DIV} at (0,65 02) size 769x181059 RenderBlock {DIV} at (0,6513) size 769x18 1060 1060 RenderText {#text} at (0,0) size 359x18 1061 1061 text run at (0,0) width 359: "Font: Avenir-MediumOblique Weight: 600 Style: italic" 1062 RenderBlock {DIV} at (0,65 20) size 769x181062 RenderBlock {DIV} at (0,6531) size 769x18 1063 1063 RenderText {#text} at (0,0) size 359x18 1064 1064 text run at (0,0) width 359: "Font: Avenir-MediumOblique Weight: 700 Style: italic" 1065 RenderBlock {DIV} at (0,65 38) size 769x181065 RenderBlock {DIV} at (0,6549) size 769x18 1066 1066 RenderText {#text} at (0,0) size 359x18 1067 1067 text run at (0,0) width 359: "Font: Avenir-MediumOblique Weight: 800 Style: italic" 1068 RenderBlock {DIV} at (0,65 56) size 769x181068 RenderBlock {DIV} at (0,6567) size 769x18 1069 1069 RenderText {#text} at (0,0) size 359x18 1070 1070 text run at (0,0) width 359: "Font: Avenir-MediumOblique Weight: 900 Style: italic" 1071 RenderBlock {DIV} at (0,65 74) size 769x181071 RenderBlock {DIV} at (0,6585) size 769x18 1072 1072 RenderText {#text} at (0,0) size 333x18 1073 1073 text run at (0,0) width 333: "Font: Avenir-BlackOblique Weight: 100 Style: italic" 1074 RenderBlock {DIV} at (0,6 592) size 769x181074 RenderBlock {DIV} at (0,6603) size 769x18 1075 1075 RenderText {#text} at (0,0) size 333x18 1076 1076 text run at (0,0) width 333: "Font: Avenir-BlackOblique Weight: 200 Style: italic" 1077 RenderBlock {DIV} at (0,66 10) size 769x181077 RenderBlock {DIV} at (0,6621) size 769x18 1078 1078 RenderText {#text} at (0,0) size 333x18 1079 1079 text run at (0,0) width 333: "Font: Avenir-BlackOblique Weight: 300 Style: italic" 1080 RenderBlock {DIV} at (0,66 28) size 769x181080 RenderBlock {DIV} at (0,6639) size 769x18 1081 1081 RenderText {#text} at (0,0) size 333x18 1082 1082 text run at (0,0) width 333: "Font: Avenir-BlackOblique Weight: 400 Style: italic" 1083 RenderBlock {DIV} at (0,66 46) size 769x181083 RenderBlock {DIV} at (0,6657) size 769x18 1084 1084 RenderText {#text} at (0,0) size 333x18 1085 1085 text run at (0,0) width 333: "Font: Avenir-BlackOblique Weight: 500 Style: italic" 1086 RenderBlock {DIV} at (0,66 64) size 769x181086 RenderBlock {DIV} at (0,6675) size 769x18 1087 1087 RenderText {#text} at (0,0) size 343x18 1088 1088 text run at (0,0) width 343: "Font: Avenir-BlackOblique Weight: 600 Style: italic" 1089 RenderBlock {DIV} at (0,66 82) size 769x181089 RenderBlock {DIV} at (0,6693) size 769x18 1090 1090 RenderText {#text} at (0,0) size 343x18 1091 1091 text run at (0,0) width 343: "Font: Avenir-BlackOblique Weight: 700 Style: italic" 1092 RenderBlock {DIV} at (0,67 00) size 769x181092 RenderBlock {DIV} at (0,6711) size 769x18 1093 1093 RenderText {#text} at (0,0) size 343x18 1094 1094 text run at (0,0) width 343: "Font: Avenir-BlackOblique Weight: 800 Style: italic" 1095 RenderBlock {DIV} at (0,67 18) size 769x181095 RenderBlock {DIV} at (0,6729) size 769x18 1096 1096 RenderText {#text} at (0,0) size 343x18 1097 1097 text run at (0,0) width 343: "Font: Avenir-BlackOblique Weight: 900 Style: italic" -
trunk/LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt
r187443 r213163 68 68 text run at (0,0) width 267: "Font: Heiti SC Weight: 900 Style: normal" 69 69 RenderBlock {DIV} at (0,434) size 769x16 70 RenderText {#text} at (0,0) size 1 53x1671 text run at (0,0) width 1 53: "\x{679C}\x{57CE}\x{7684}\x{7F8E}\x{8B7D}\x{3002}\x{4E2D}\x{56FD}\x{53E4}"70 RenderText {#text} at (0,0) size 144x16 71 text run at (0,0) width 144: "\x{679C}\x{57CE}\x{7684}\x{7F8E}\x{8B7D}\x{3002}\x{4E2D}\x{56FD}\x{53E4}" 72 72 RenderBlock {DIV} at (0,450) size 769x18 73 73 RenderText {#text} at (0,0) size 321x18 … … 122 122 text run at (0,0) width 321: "Font: STHeitiSC-Light Weight: 900 Style: normal" 123 123 RenderBlock {DIV} at (0,740) size 769x16 124 RenderText {#text} at (0,0) size 1 53x16125 text run at (0,0) width 1 53: "\x{679C}\x{57CE}\x{7684}\x{7F8E}\x{8B7D}\x{3002}\x{4E2D}\x{56FD}\x{53E4}"124 RenderText {#text} at (0,0) size 144x16 125 text run at (0,0) width 144: "\x{679C}\x{57CE}\x{7684}\x{7F8E}\x{8B7D}\x{3002}\x{4E2D}\x{56FD}\x{53E4}" 126 126 RenderBlock {DIV} at (0,756) size 769x18 127 127 RenderText {#text} at (0,0) size 341x18 -
trunk/Source/WebCore/ChangeLog
r213161 r213163 1 2017-02-28 Myles C. Maxfield <mmaxfield@apple.com> 2 3 [macOS] Migrate off of CTFontCreateForCSS 4 https://bugs.webkit.org/show_bug.cgi?id=168678 5 6 Reviewed by David Hyatt. 7 8 This patch implements the Font Matching Algorithm detailed in 9 https://drafts.csswg.org/css-fonts-4/#font-matching-algorithm 10 Previously, this was implemented inside Core Text (via 11 CTFontCreateForCSS()), but that implementation does not understand 12 variation fonts. Therefore it should move to WebKit (along with 13 the general fact that CSS algorithms should be implemented in a 14 CSS engine, not the platform's text engine). 15 16 This implementation is not completely divorced from the platform, 17 however - Core Text exposes font weights on a [-1, 1] range, but 18 CSS operates on a [1, 999] range. In order to provide the mapping 19 to CSS weights, Core Text infrastructure is necessary. Therefore, 20 this new implementation of the matching algorithm is only used 21 on certain operating systems. 22 23 The new implementation of the algorithm is not bug-compatible with 24 the existing implementation; this patch does represent a behavior 25 change. However, I have reviewed the differences manually and 26 believe this algorithm to be a progression over the previous one 27 (except for one case with Helvetica Neue - see 28 LayoutTests/ChangeLog for more information about that). 29 30 This patch also represents a 27% performance progression on our 31 standard page load test (just measuring the performance of the font 32 matching algorithm, and nothing else). (Because font matching is 33 only a small part of the entire test, the overall progression is 34 much smaller.) 35 36 Tests: FontCacheTest.FontLookupFromFamilyName 37 FontCacheTest.FontLookupFromPostScriptName 38 39 * platform/graphics/FontCache.h: 40 (WebCore::FontCache::createFontPlatformDataForTesting): Allow for 41 unit testing. 42 * platform/graphics/cocoa/FontCacheCoreText.cpp: 43 (WebCore::isSystemFont): Inlined. 44 (WebCore::FontDatabase::singleton): Cache results of Core Text 45 lookups. 46 (WebCore::FontDatabase::Range::Range): Because of variation fonts, 47 fonts' weights, widths, and slopes need to be represented as a range 48 instead of an individual value. 49 (WebCore::FontDatabase::Range::isValid): 50 (WebCore::FontDatabase::Range::expand): 51 (WebCore::FontDatabase::Range::includes): 52 (WebCore::FontDatabase::InstalledFont::InstalledFont): Represents a 53 Font Descriptor as well as some lookup information about it. 54 (WebCore::FontDatabase::InstalledFontCollection::InstalledFontCollection): 55 A collection of installed fonts. 56 (WebCore::FontDatabase::InstalledFontCollection::insertInstalledFont): 57 Cache minima and maxima. 58 (WebCore::FontDatabase::InstalledFontCollection::isEmpty): 59 (WebCore::FontDatabase::InstalledFontCollection::size): 60 (WebCore::FontDatabase::lookupFamilyName): Get all the fonts in 61 the family. 62 (WebCore::FontDatabase::lookupPostScriptName): Get the font with 63 the given PostScript name. 64 (WebCore::FontDatabase::clear): 65 (WebCore::FontDatabase::FontDatabase): Cache. 66 (WebCore::iterateActiveFontsWithReturn): The Font Matching Algorithm 67 works by starting with every font in the family, and the eliminating 68 items from the set iteratively. Instead of actually removing items 69 from a vector or linked list, we instead want to treat the collection 70 as immutable and keep a parallel side-table of which items have been 71 eliminated (in order to reduce copies and allocations). This makes 72 sense because most families only have a handful of fonts in them. 73 This function consults with the side-table to iterate only over the 74 fonts which have not been eliminated. 75 (WebCore::iterateActiveFonts): Ditto. 76 (WebCore::findClosestStretch): 77 (WebCore::filterStretch): Eliminate fonts based on their stretch 78 value. 79 (WebCore::findClosestStyle): 80 (WebCore::filterStyle): Eliminate fonts based on their style value. 81 (WebCore::findClosestWeight): 82 (WebCore::filterWeight): Eliminate fonts based on their weight value. 83 (WebCore::computeTargetWeight): 84 (WebCore::findClosestFont): If we have a set of fonts in a family, 85 select the font in the set which best matches the criteria. 86 (WebCore::platformFontLookupWithFamily): While findClosestFont() 87 function satisfies the spec's notion of the font matching algorithm, 88 WebKit actually claims to be able to look up fonts by their PostScript 89 name. Therefore, this function has a higher-level of logic to rectify 90 the confusion that results when the PostScript name doesn't agree with 91 the other CSS properties (like if you say "Helvetica-Bold" but also say 92 font-weight: 100). 93 * platform/spi/cocoa/CoreTextSPI.h: Add signature for system CSS 94 font weight support. 95 1 96 2017-02-24 Matt Rajca <mrajca@apple.com> 2 97 -
trunk/Source/WebCore/platform/graphics/FontCache.h
r212513 r213163 31 31 32 32 #include "FontDescription.h" 33 #include "FontPlatformData.h" 33 34 #include "Timer.h" 34 35 #include <array> … … 226 227 #endif 227 228 229 std::unique_ptr<FontPlatformData> createFontPlatformDataForTesting(const FontDescription&, const AtomicString& family); 230 228 231 private: 229 232 FontCache(); … … 239 242 FontPlatformData* getCustomFallbackFont(const UInt32, const FontDescription&); 240 243 #endif 241 std::unique_ptr<FontPlatformData> createFontPlatformData(const FontDescription&, const AtomicString& family, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings);244 WEBCORE_EXPORT std::unique_ptr<FontPlatformData> createFontPlatformData(const FontDescription&, const AtomicString& family, const FontFeatureSettings* fontFaceFeatures, const FontVariantSettings* fontFaceVariantSettings); 242 245 243 246 static const AtomicString& alternateFamilyName(const AtomicString&); … … 251 254 friend class Font; 252 255 }; 256 257 inline std::unique_ptr<FontPlatformData> FontCache::createFontPlatformDataForTesting(const FontDescription& fontDescription, const AtomicString& family) 258 { 259 return createFontPlatformData(fontDescription, family, nullptr, nullptr); 260 } 253 261 254 262 #if PLATFORM(COCOA) … … 274 282 uint16_t toCoreTextFontWeight(FontWeight); 275 283 bool isFontWeightBold(FontWeight); 276 void platformInvalidateFontCache();277 284 SynthesisPair computeNecessarySynthesis(CTFontRef, const FontDescription&, bool isPlatformFont = false); 278 285 RetainPtr<CTFontRef> platformFontWithFamilySpecialCase(const AtomicString& family, FontWeight, CTFontSymbolicTraits, float size); -
trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
r212876 r213163 35 35 #include <wtf/MainThread.h> 36 36 #include <wtf/NeverDestroyed.h> 37 38 #define SHOULD_USE_CORE_TEXT_FONT_LOOKUP ((PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101200) || PLATFORM(IOS)) 37 39 38 40 namespace WebCore { … … 693 695 } 694 696 695 static void invalidateFontCache() 696 { 697 if (!isMainThread()) { 698 callOnMainThread([] { 699 invalidateFontCache(); 700 }); 701 return; 702 } 703 704 FontCache::singleton().invalidate(); 705 706 platformInvalidateFontCache(); 707 } 697 static void invalidateFontCache(); 708 698 709 699 static void fontCacheRegisteredFontsChangedNotificationCallback(CFNotificationCenterRef, void* observer, CFStringRef name, const void *, CFDictionaryRef) … … 792 782 } 793 783 794 static bool isSystemFont(const AtomicString& family) 795 { 796 return family.length() >= 1 && family[0] == '.'; 797 } 784 static inline bool isSystemFont(const AtomicString& family) 785 { 786 // AtomicString's operator[] handles out-of-bounds by returning 0. 787 return family[0] == '.'; 788 } 789 790 #if !SHOULD_USE_CORE_TEXT_FONT_LOOKUP 791 792 constexpr float italicThreshold = 20; 793 constexpr float weightThreshold = 500; 794 795 class FontDatabase { 796 public: 797 static FontDatabase& singleton() 798 { 799 static NeverDestroyed<FontDatabase> database; 800 return database; 801 } 802 803 FontDatabase(const FontDatabase&) = delete; 804 FontDatabase& operator=(const FontDatabase&) = delete; 805 806 // [Inclusive, Inclusive] 807 struct Range { 808 Range() 809 { 810 ASSERT(!isValid()); 811 } 812 813 Range(float minimum, float maximum) 814 : minimum(minimum) 815 , maximum(maximum) 816 { 817 ASSERT(isValid()); 818 } 819 820 bool isValid() const 821 { 822 return minimum <= maximum; 823 } 824 825 void expand(const Range& other) 826 { 827 ASSERT(other.isValid()); 828 if (!isValid()) 829 *this = other; 830 else { 831 minimum = std::min(minimum, other.minimum); 832 maximum = std::max(maximum, other.maximum); 833 } 834 ASSERT(isValid()); 835 } 836 837 bool includes(float target) const 838 { 839 return target >= minimum && target <= maximum; 840 } 841 842 float minimum { 1 }; 843 float maximum { 0 }; 844 }; 845 846 struct InstalledFont { 847 InstalledFont() = default; 848 849 InstalledFont(CTFontDescriptorRef fontDescriptor) 850 : fontDescriptor(fontDescriptor) 851 { 852 if (!fontDescriptor) 853 return; 854 855 auto traits = adoptCF(static_cast<CFDictionaryRef>(CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontTraitsAttribute))); 856 float width = 0; 857 float slant = 0; 858 float weight = 0; 859 if (traits) { 860 auto widthNumber = static_cast<CFNumberRef>(CFDictionaryGetValue(traits.get(), kCTFontWidthTrait)); 861 if (widthNumber) { 862 // FIXME: Normalize this from Core Text's [-1, 1] range to CSS's [50%, 200%] range. 863 auto success = CFNumberGetValue(widthNumber, kCFNumberFloatType, &width); 864 ASSERT_UNUSED(success, success); 865 } 866 867 auto symbolicTraitsNumber = static_cast<CFNumberRef>(CFDictionaryGetValue(traits.get(), kCTFontSymbolicTrait)); 868 if (symbolicTraitsNumber) { 869 int32_t symbolicTraits; 870 auto success = CFNumberGetValue(symbolicTraitsNumber, kCFNumberSInt32Type, &symbolicTraits); 871 ASSERT_UNUSED(success, success); 872 slant = symbolicTraits & kCTFontTraitItalic ? italicThreshold : 0; 873 } 874 } 875 876 auto weightNumber = adoptCF(static_cast<CFNumberRef>(CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontCSSWeightAttribute))); 877 if (weightNumber) { 878 auto success = CFNumberGetValue(weightNumber.get(), kCFNumberFloatType, &weight); 879 ASSERT_UNUSED(success, success); 880 } 881 882 stretch = Range(width, width); 883 style = Range(slant, slant); 884 this->weight = Range(weight, weight); 885 } 886 887 RetainPtr<CTFontDescriptorRef> fontDescriptor; 888 Range stretch; 889 Range style; 890 Range weight; 891 }; 892 893 struct InstalledFontFamily { 894 InstalledFontFamily() = default; 895 896 explicit InstalledFontFamily(Vector<InstalledFont>&& installedFonts) 897 : installedFonts(WTFMove(installedFonts)) 898 { 899 for (auto& font : this->installedFonts) 900 expand(font); 901 } 902 903 void expand(const InstalledFont& installedFont) 904 { 905 stretchBounds.expand(installedFont.stretch); 906 styleBounds.expand(installedFont.style); 907 weightBounds.expand(installedFont.weight); 908 } 909 910 bool isEmpty() const 911 { 912 return installedFonts.isEmpty(); 913 } 914 915 size_t size() const 916 { 917 return installedFonts.size(); 918 } 919 920 Vector<InstalledFont> installedFonts; 921 Range stretchBounds; 922 Range styleBounds; 923 Range weightBounds; 924 }; 925 926 const InstalledFontFamily& lookUpFamilyName(const String& familyName) 927 { 928 auto folded = familyName.foldCase(); 929 return m_familyNameToFontDescriptors.ensure(folded, [&] { 930 auto familyNameString = folded.createCFString(); 931 CFTypeRef keys[] = { kCTFontFamilyNameAttribute }; 932 CFTypeRef values[] = { familyNameString.get() }; 933 auto attributes = adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(keys), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)); 934 auto fontDescriptorToMatch = adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get())); 935 if (auto matches = adoptCF(CTFontDescriptorCreateMatchingFontDescriptors(fontDescriptorToMatch.get(), nullptr))) { 936 auto count = CFArrayGetCount(matches.get()); 937 Vector<InstalledFont> result; 938 result.reserveInitialCapacity(count); 939 for (CFIndex i = 0; i < count; ++i) { 940 InstalledFont installedFont(static_cast<CTFontDescriptorRef>(CFArrayGetValueAtIndex(matches.get(), i))); 941 result.uncheckedAppend(WTFMove(installedFont)); 942 } 943 return InstalledFontFamily(WTFMove(result)); 944 } 945 return InstalledFontFamily(); 946 }).iterator->value; 947 } 948 949 const InstalledFont& lookupPostScriptName(const AtomicString& postScriptName) 950 { 951 auto folded = postScriptName.string().foldCase(); 952 return m_postScriptNameToFontDescriptors.ensure(folded, [&] { 953 auto postScriptNameString = folded.createCFString(); 954 CFTypeRef keys[] = { kCTFontNameAttribute }; 955 CFTypeRef values[] = { postScriptNameString.get() }; 956 auto attributes = adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(keys), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)); 957 auto fontDescriptorToMatch = adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get())); 958 auto match = adoptCF(static_cast<CTFontDescriptorRef>(CTFontDescriptorCreateMatchingFontDescriptor(fontDescriptorToMatch.get(), nullptr))); 959 return InstalledFont(match.get()); 960 }).iterator->value; 961 } 962 963 void clear() 964 { 965 m_familyNameToFontDescriptors.clear(); 966 m_postScriptNameToFontDescriptors.clear(); 967 } 968 969 private: 970 friend class NeverDestroyed<FontDatabase>; 971 972 FontDatabase() = default; 973 974 HashMap<String, InstalledFontFamily> m_familyNameToFontDescriptors; 975 HashMap<String, InstalledFont> m_postScriptNameToFontDescriptors; 976 }; 977 978 template <typename T> 979 using IterateActiveFontsWithReturnCallback = std::function<std::optional<T>(const FontDatabase::InstalledFont&, size_t)>; 980 981 template <typename T> 982 inline std::optional<T> iterateActiveFontsWithReturn(const FontDatabase::InstalledFontFamily& installedFonts, const Vector<bool>& filter, IterateActiveFontsWithReturnCallback<T> callback) 983 { 984 ASSERT(installedFonts.size() == filter.size()); 985 for (size_t i = 0; i < installedFonts.size(); ++i) { 986 if (!filter[i]) 987 continue; 988 if (auto result = callback(installedFonts.installedFonts[i], i)) 989 return result; 990 } 991 return std::nullopt; 992 } 993 994 template <typename T> 995 inline void iterateActiveFonts(const FontDatabase::InstalledFontFamily& installedFonts, const Vector<bool>& filter, T callback) 996 { 997 iterateActiveFontsWithReturn<int>(installedFonts, filter, [&](const FontDatabase::InstalledFont& font, size_t i) -> std::optional<int> { 998 callback(font, i); 999 return std::nullopt; 1000 }); 1001 } 1002 1003 static inline std::optional<float> findClosestStretch(float, const FontDatabase::InstalledFontFamily&, const Vector<bool>&) 1004 { 1005 // FIXME: Implement this. 1006 return 0; 1007 } 1008 1009 static inline void filterStretch(float, const FontDatabase::InstalledFontFamily&, Vector<bool>&) 1010 { 1011 // FIXME: Implement this. 1012 } 1013 1014 static inline std::optional<float> findClosestStyle(float targetStyle, const FontDatabase::InstalledFontFamily& installedFonts, const Vector<bool>& filter) 1015 { 1016 std::function<float(const FontDatabase::InstalledFont&)> computeScore; 1017 1018 if (targetStyle >= italicThreshold) { 1019 float threshold = std::max(targetStyle, installedFonts.styleBounds.maximum); 1020 computeScore = [&, threshold](const FontDatabase::InstalledFont& font) -> float { 1021 ASSERT(font.style.isValid()); 1022 if (font.style.includes(targetStyle)) 1023 return 0; 1024 ASSERT(font.style.minimum > targetStyle || font.style.maximum < targetStyle); 1025 if (font.style.minimum > targetStyle) 1026 return font.style.minimum - targetStyle; 1027 ASSERT(targetStyle > font.style.maximum); 1028 return threshold - font.style.maximum; 1029 }; 1030 } else if (targetStyle >= 0) { 1031 float threshold = std::max(targetStyle, installedFonts.styleBounds.maximum); 1032 computeScore = [&, threshold](const FontDatabase::InstalledFont& font) -> float { 1033 ASSERT(font.style.isValid()); 1034 if (font.style.includes(targetStyle)) 1035 return 0; 1036 ASSERT(font.style.minimum > targetStyle || font.style.maximum < targetStyle); 1037 if (font.style.maximum >= 0 && font.style.maximum < targetStyle) 1038 return targetStyle - font.style.maximum; 1039 if (font.style.minimum > targetStyle) 1040 return font.style.minimum; 1041 ASSERT(font.style.maximum < 0); 1042 return threshold - font.style.maximum; 1043 }; 1044 } else if (targetStyle > -italicThreshold) { 1045 float threshold = std::min(targetStyle, installedFonts.styleBounds.minimum); 1046 computeScore = [&, threshold](const FontDatabase::InstalledFont& font) -> float { 1047 ASSERT(font.style.isValid()); 1048 if (font.style.includes(targetStyle)) 1049 return 0; 1050 ASSERT(font.style.minimum > targetStyle || font.style.maximum < targetStyle); 1051 if (font.style.minimum > targetStyle && font.style.minimum <= 0) 1052 return font.style.minimum - targetStyle; 1053 if (font.style.maximum < targetStyle) 1054 return -font.style.maximum; 1055 ASSERT(font.style.minimum > 0); 1056 return font.style.minimum - threshold; 1057 }; 1058 } else { 1059 ASSERT(targetStyle <= -italicThreshold); 1060 float threshold = std::min(targetStyle, installedFonts.styleBounds.minimum); 1061 computeScore = [&, threshold](const FontDatabase::InstalledFont& font) -> float { 1062 ASSERT(font.style.isValid()); 1063 if (font.style.includes(targetStyle)) 1064 return 0; 1065 ASSERT(font.style.minimum > targetStyle || font.style.maximum < targetStyle); 1066 if (font.style.maximum < targetStyle) 1067 return targetStyle - font.style.maximum; 1068 ASSERT(font.style.minimum > targetStyle); 1069 return font.style.minimum - threshold; 1070 }; 1071 } 1072 1073 size_t closestIndex = 0; 1074 std::optional<float> minimumScore; 1075 iterateActiveFonts(installedFonts, filter, [&](auto& installedFont, size_t i) { 1076 auto score = computeScore(installedFont); 1077 if (!minimumScore || score < minimumScore.value()) { 1078 minimumScore = score; 1079 closestIndex = i; 1080 } 1081 }); 1082 1083 if (!minimumScore) 1084 return { }; 1085 auto& winner = installedFonts.installedFonts[closestIndex]; 1086 if (winner.style.includes(targetStyle)) 1087 return targetStyle; 1088 if (winner.style.minimum > targetStyle) 1089 return winner.style.minimum; 1090 ASSERT(winner.style.maximum < targetStyle); 1091 return winner.style.maximum; 1092 } 1093 1094 static inline void filterStyle(float target, const FontDatabase::InstalledFontFamily& installedFonts, Vector<bool>& filter) 1095 { 1096 iterateActiveFonts(installedFonts, filter, [&](auto& installedFont, size_t i) { 1097 if (!installedFont.style.includes(target)) 1098 filter[i] = false; 1099 }); 1100 } 1101 1102 static inline std::optional<float> findClosestWeight(float targetWeight, const FontDatabase::InstalledFontFamily& installedFonts, const Vector<bool>& filter) 1103 { 1104 { 1105 IterateActiveFontsWithReturnCallback<float> searchFor400 = [&](const FontDatabase::InstalledFont& font, size_t) -> std::optional<float> { 1106 if (font.weight.includes(400)) 1107 return 400; 1108 return { }; 1109 }; 1110 IterateActiveFontsWithReturnCallback<float> searchFor500 = [&](const FontDatabase::InstalledFont& font, size_t) -> std::optional<float> { 1111 if (font.weight.includes(500)) 1112 return 500; 1113 return { }; 1114 }; 1115 if (targetWeight == 400) { 1116 if (auto result = iterateActiveFontsWithReturn(installedFonts, filter, searchFor400)) 1117 return result.value(); 1118 if (auto result = iterateActiveFontsWithReturn(installedFonts, filter, searchFor500)) 1119 return result.value(); 1120 } else if (targetWeight == 500) { 1121 if (auto result = iterateActiveFontsWithReturn(installedFonts, filter, searchFor500)) 1122 return result.value(); 1123 if (auto result = iterateActiveFontsWithReturn(installedFonts, filter, searchFor400)) 1124 return result.value(); 1125 } 1126 } 1127 1128 std::function<float(const FontDatabase::InstalledFont&)> computeScore; 1129 if (targetWeight <= weightThreshold) { 1130 float threshold = std::min(targetWeight, installedFonts.weightBounds.minimum); 1131 computeScore = [&, threshold](const FontDatabase::InstalledFont& font) -> float { 1132 if (font.weight.includes(targetWeight)) 1133 return 0; 1134 ASSERT(font.weight.minimum > targetWeight || font.weight.maximum < targetWeight); 1135 if (font.weight.maximum < targetWeight) 1136 return targetWeight - font.weight.maximum; 1137 ASSERT(font.weight.minimum > targetWeight); 1138 return font.weight.minimum - threshold; 1139 }; 1140 } else { 1141 ASSERT(targetWeight > weightThreshold); 1142 float threshold = std::max(targetWeight, installedFonts.weightBounds.maximum); 1143 computeScore = [&, threshold](const FontDatabase::InstalledFont& font) -> float { 1144 if (font.weight.includes(targetWeight)) 1145 return 0; 1146 ASSERT(font.weight.minimum > targetWeight || font.weight.maximum < targetWeight); 1147 if (font.weight.minimum > targetWeight) 1148 return font.weight.minimum - targetWeight; 1149 ASSERT(font.weight.maximum < targetWeight); 1150 return threshold - font.weight.maximum; 1151 }; 1152 } 1153 1154 size_t closestIndex = 0; 1155 std::optional<float> minimumScore; 1156 iterateActiveFonts(installedFonts, filter, [&](auto& installedFont, size_t i) { 1157 auto score = computeScore(installedFont); 1158 if (!minimumScore || score < minimumScore.value()) { 1159 minimumScore = score; 1160 closestIndex = i; 1161 } 1162 }); 1163 1164 if (!minimumScore) 1165 return { }; 1166 auto& winner = installedFonts.installedFonts[closestIndex]; 1167 if (winner.weight.includes(targetWeight)) 1168 return targetWeight; 1169 if (winner.weight.minimum > targetWeight) 1170 return winner.weight.minimum; 1171 ASSERT(winner.weight.maximum < targetWeight); 1172 return winner.weight.maximum; 1173 } 1174 1175 static inline void filterWeight(float target, const FontDatabase::InstalledFontFamily& installedFonts, Vector<bool>& filter) 1176 { 1177 iterateActiveFonts(installedFonts, filter, [&](auto& installedFont, size_t i) { 1178 if (!installedFont.weight.includes(target)) 1179 filter[i] = false; 1180 }); 1181 } 1182 1183 static inline float computeTargetWeight(FontWeight weight) 1184 { 1185 switch (weight) { 1186 case FontWeight100: 1187 return 100; 1188 case FontWeight200: 1189 return 200; 1190 case FontWeight300: 1191 return 300; 1192 case FontWeight400: 1193 return 400; 1194 case FontWeight500: 1195 return 500; 1196 case FontWeight600: 1197 return 600; 1198 case FontWeight700: 1199 return 700; 1200 case FontWeight800: 1201 return 800; 1202 case FontWeight900: 1203 return 900; 1204 default: 1205 ASSERT_NOT_REACHED(); 1206 return 400; 1207 } 1208 } 1209 1210 static const FontDatabase::InstalledFont* findClosestFont(const FontDatabase::InstalledFontFamily& familyFonts, CTFontSymbolicTraits requestedTraits, FontWeight weight) 1211 { 1212 ASSERT(!familyFonts.isEmpty()); 1213 1214 // Parallel to familyFonts. 1215 Vector<bool> filter(familyFonts.size(), true); 1216 1217 float targetStretch = 0; 1218 if (auto closestStretch = findClosestStretch(targetStretch, familyFonts, filter)) 1219 filterStretch(closestStretch.value(), familyFonts, filter); 1220 else 1221 return nullptr; 1222 1223 float targetStyle = requestedTraits & kCTFontTraitItalic ? italicThreshold : 0; 1224 if (auto closestStyle = findClosestStyle(targetStyle, familyFonts, filter)) 1225 filterStyle(closestStyle.value(), familyFonts, filter); 1226 else 1227 return nullptr; 1228 1229 float targetWeight = computeTargetWeight(weight); 1230 if (auto closestWeight = findClosestWeight(targetWeight, familyFonts, filter)) 1231 filterWeight(closestWeight.value(), familyFonts, filter); 1232 else 1233 return nullptr; 1234 1235 auto findFont = [&](const FontDatabase::InstalledFont& font, size_t) -> std::optional<std::reference_wrapper<const FontDatabase::InstalledFont>> { 1236 return std::reference_wrapper<const FontDatabase::InstalledFont>(font); 1237 }; 1238 if (const auto& result = iterateActiveFontsWithReturn<std::reference_wrapper<const FontDatabase::InstalledFont>>(familyFonts, filter, findFont)) 1239 return &result.value().get(); 1240 return nullptr; 1241 } 1242 1243 #endif // !SHOULD_USE_CORE_TEXT_FONT_LOOKUP 798 1244 799 1245 static RetainPtr<CTFontRef> platformFontLookupWithFamily(const AtomicString& family, CTFontSymbolicTraits requestedTraits, FontWeight weight, float size) … … 803 1249 return nullptr; 804 1250 1251 1252 #if SHOULD_USE_CORE_TEXT_FONT_LOOKUP 805 1253 return adoptCF(CTFontCreateForCSS(family.string().createCFString().get(), toCoreTextFontWeight(weight), requestedTraits, size)); 1254 #else 1255 const auto& familyFonts = FontDatabase::singleton().lookUpFamilyName(family.string()); 1256 if (familyFonts.isEmpty()) { 1257 const auto& postScriptFont = FontDatabase::singleton().lookupPostScriptName(family); 1258 if (!postScriptFont.fontDescriptor) 1259 return nullptr; 1260 if (((requestedTraits & kCTFontTraitItalic) && postScriptFont.style.maximum < italicThreshold) || (weight >= FontWeight600 && postScriptFont.weight.maximum < 600)) { 1261 auto postScriptFamilyName = adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(postScriptFont.fontDescriptor.get(), kCTFontFamilyNameAttribute))); 1262 if (!postScriptFamilyName) 1263 return nullptr; 1264 const auto& familyFonts = FontDatabase::singleton().lookUpFamilyName(String(postScriptFamilyName.get())); 1265 if (familyFonts.isEmpty()) 1266 return nullptr; 1267 if (const auto* installedFont = findClosestFont(familyFonts, requestedTraits, weight)) { 1268 if (!installedFont->fontDescriptor) 1269 return nullptr; 1270 return adoptCF(CTFontCreateWithFontDescriptor(installedFont->fontDescriptor.get(), size, nullptr)); 1271 } 1272 return nullptr; 1273 } 1274 return adoptCF(CTFontCreateWithFontDescriptor(postScriptFont.fontDescriptor.get(), size, nullptr)); 1275 } 1276 1277 if (const auto* installedFont = findClosestFont(familyFonts, requestedTraits, weight)) 1278 return adoptCF(CTFontCreateWithFontDescriptor(installedFont->fontDescriptor.get(), size, nullptr)); 1279 1280 return nullptr; 1281 #endif 1282 } 1283 1284 static void invalidateFontCache() 1285 { 1286 if (!isMainThread()) { 1287 callOnMainThread([] { 1288 invalidateFontCache(); 1289 }); 1290 return; 1291 } 1292 1293 #if !SHOULD_USE_CORE_TEXT_FONT_LOOKUP 1294 FontDatabase::singleton().clear(); 1295 #endif 1296 1297 FontCache::singleton().invalidate(); 806 1298 } 807 1299 -
trunk/Source/WebCore/platform/graphics/ios/FontCacheIOS.mm
r212985 r213163 40 40 41 41 namespace WebCore { 42 43 void platformInvalidateFontCache()44 {45 }46 42 47 43 bool requiresCustomFallbackFont(UChar32 character) -
trunk/Source/WebCore/platform/graphics/mac/FontCacheMac.mm
r212985 r213163 108 108 } 109 109 110 void platformInvalidateFontCache()111 {112 }113 114 110 Ref<Font> FontCache::lastResortFallbackFont(const FontDescription& fontDescription) 115 111 { -
trunk/Source/WebCore/platform/spi/cocoa/CoreTextSPI.h
r206466 r213163 85 85 CTFontDescriptorRef CTFontDescriptorCreateWithAttributesAndOptions(CFDictionaryRef attributes, CTFontDescriptorOptions); 86 86 87 extern const CFStringRef kCTFontCSSWeightAttribute; 87 88 extern const CFStringRef kCTFontDescriptorTextStyleAttribute; 88 89 extern const CFStringRef kCTFontUIFontDesignTrait; -
trunk/Tools/ChangeLog
r213162 r213163 1 2017-02-28 Myles C. Maxfield <mmaxfield@apple.com> 2 3 [macOS] Migrate off of CTFontCreateForCSS 4 https://bugs.webkit.org/show_bug.cgi?id=168678 5 6 Reviewed by David Hyatt. 7 8 Exhaustively test the font matching algorithm on Sierra. 9 10 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 11 * TestWebKitAPI/Tests/WebCore/FontCache.cpp: Added. 12 (TestWebKitAPI::FontCacheTest::SetUp): 13 (TestWebKitAPI::createPlatformFont): 14 (TestWebKitAPI::compareFonts): 15 (TestWebKitAPI::TEST_F): 16 1 17 2017-02-28 Basuke Suzuki <Basuke.Suzuki@am.sony.com> 2 18 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r213012 r213163 48 48 1C2B81871C8925A000A5529F /* Ahem.ttf in Copy Resources */ = {isa = PBXBuildFile; fileRef = 1C2B81851C89252300A5529F /* Ahem.ttf */; }; 49 49 1C9EB8411E380DA1005C6442 /* ComplexTextController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C9EB8401E380DA1005C6442 /* ComplexTextController.cpp */; }; 50 1CAD1F861E5CE7DA00AF2C2C /* FontCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CAD1F851E5CE7DA00AF2C2C /* FontCache.cpp */; }; 50 51 1F83571B1D3FFB2300E3967B /* WKBackForwardList.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F83571A1D3FFB0E00E3967B /* WKBackForwardList.mm */; }; 51 52 26DF5A6315A2A27E003689C2 /* CancelLoadFromResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 26DF5A6115A2A22B003689C2 /* CancelLoadFromResourceLoadDelegate.html */; }; … … 864 865 1C2B81851C89252300A5529F /* Ahem.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Ahem.ttf; sourceTree = "<group>"; }; 865 866 1C9EB8401E380DA1005C6442 /* ComplexTextController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComplexTextController.cpp; sourceTree = "<group>"; }; 867 1CAD1F851E5CE7DA00AF2C2C /* FontCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontCache.cpp; sourceTree = "<group>"; }; 866 868 1CB9BC371A67482300FE5678 /* WeakPtr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeakPtr.cpp; sourceTree = "<group>"; }; 867 869 1CF0D3781BBF2F3D00B4EF54 /* WKRetainPtr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRetainPtr.cpp; sourceTree = "<group>"; }; … … 1686 1688 9C64DC311D76198A004B598E /* YouTubePluginReplacement.cpp */, 1687 1689 1C9EB8401E380DA1005C6442 /* ComplexTextController.cpp */, 1690 1CAD1F851E5CE7DA00AF2C2C /* FontCache.cpp */, 1688 1691 ); 1689 1692 path = WebCore; … … 2844 2847 51714EB81CF8CA17004723C4 /* WebProcessKillIDBCleanup.mm in Sources */, 2845 2848 536770341CC8022800D425B1 /* WebScriptObjectDescription.mm in Sources */, 2849 1CAD1F861E5CE7DA00AF2C2C /* FontCache.cpp in Sources */, 2846 2850 7CCE7ED41A411A7E00447C4C /* WebViewCanPasteURL.mm in Sources */, 2847 2851 CD78E11D1DB7EA660014A2DE /* FullscreenDelegate.mm in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.