[pango/pango2: 163/195] Regenerate layout tests




commit 9d86954c10ae0761d0123ece77d1d307f64ac296
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Jun 4 18:44:42 2022 -0400

    Regenerate layout tests

 tests/layouts/aaa.layout           |   62 +-
 tests/layouts/arabic-format.layout |   24 +-
 tests/layouts/bratwurst.layout     |   31 +-
 tests/layouts/bratwurst2.layout    |   14 +-
 tests/layouts/bratwurst3.layout    |   50 +-
 tests/layouts/bratwurst4.layout    |   26 +-
 tests/layouts/effigy.layout        |   26 +-
 tests/layouts/kebab.layout         |   26 +-
 tests/layouts/letterspacing.layout |   14 +-
 tests/layouts/no-space.layout      |   38 +-
 tests/layouts/tab-assert.layout    |   34 +-
 tests/layouts/tab-crash.layout     | 2023 ++++++++++++++++++++++++++++++------
 tests/layouts/tabs-nowrap.layout   |   46 +-
 tests/layouts/tabs.layout          |  312 +-----
 tests/layouts/valid-1.layout       |   43 +-
 tests/layouts/valid-10.layout      |  149 +--
 tests/layouts/valid-11.layout      |   69 +-
 tests/layouts/valid-12.layout      |  205 +---
 tests/layouts/valid-13.layout      |  205 +---
 tests/layouts/valid-14.layout      |  223 ++--
 tests/layouts/valid-15.layout      |   45 +-
 tests/layouts/valid-16.layout      |   45 +-
 tests/layouts/valid-17.layout      |   88 +-
 tests/layouts/valid-18.layout      |   57 +-
 tests/layouts/valid-19.layout      |  205 ++--
 tests/layouts/valid-2.layout       |   65 +-
 tests/layouts/valid-20.layout      |   42 +-
 tests/layouts/valid-21.layout      |   33 +-
 tests/layouts/valid-22.layout      |  110 +-
 tests/layouts/valid-3.layout       |   42 +-
 tests/layouts/valid-4.layout       |   77 +-
 tests/layouts/valid-5.layout       |   92 +-
 tests/layouts/valid-6.layout       |   76 +-
 tests/layouts/valid-7.layout       |   56 +-
 tests/layouts/valid-8.layout       |  136 +--
 tests/layouts/valid-9.layout       |  170 +--
 tests/layouts/vertical.layout      |   70 +-
 37 files changed, 2478 insertions(+), 2551 deletions(-)
---
diff --git a/tests/layouts/aaa.layout b/tests/layouts/aaa.layout
index 3f2843bb..f00f06c1 100644
--- a/tests/layouts/aaa.layout
+++ b/tests/layouts/aaa.layout
@@ -68,12 +68,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 53248,
-    "height" : 261120,
+    "height" : 254290,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -98,15 +98,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -132,7 +124,7 @@
       {
         "position" : [
           0,
-          93184
+          91412
         ],
         "line" : {
           "start-index" : 1,
@@ -157,15 +149,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -191,7 +175,7 @@
       {
         "position" : [
           0,
-          145408
+          142270
         ],
         "line" : {
           "start-index" : 2,
@@ -216,15 +200,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -250,7 +226,7 @@
       {
         "position" : [
           0,
-          197632
+          193128
         ],
         "line" : {
           "start-index" : 3,
@@ -275,15 +251,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -304,7 +272,7 @@
       {
         "position" : [
           0,
-          249856
+          243986
         ],
         "line" : {
           "start-index" : 4,
@@ -329,15 +297,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/arabic-format.layout b/tests/layouts/arabic-format.layout
index 00481f9a..2b4146ae 100644
--- a/tests/layouts/arabic-format.layout
+++ b/tests/layouts/arabic-format.layout
@@ -40,14 +40,14 @@
     "wrapped" : false,
     "ellipsized" : false,
     "hypenated" : false,
-    "unknown-glyphs" : 0,
-    "width" : 56320,
-    "height" : 77824,
+    "unknown-glyphs" : 1,
+    "width" : 31744,
+    "height" : 38319,
     "lines" : [
       {
         "position" : [
           0,
-          49152
+          34770
         ],
         "line" : {
           "start-index" : 0,
@@ -71,16 +71,8 @@
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Amiri 32",
-                "checksum" : "d5e6374130d6df09e66f80f0bbcb7262112584ebadb861f0a412a21cc742a5dd",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "DejaVu Sans 32",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -88,8 +80,8 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1,
-                  "width" : 56320,
+                  "glyph" : 268437213,
+                  "width" : 31744,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
diff --git a/tests/layouts/bratwurst.layout b/tests/layouts/bratwurst.layout
index 0ae60d6f..e14f6a85 100644
--- a/tests/layouts/bratwurst.layout
+++ b/tests/layouts/bratwurst.layout
@@ -93,13 +93,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 200704,
-    "height" : 53248,
+    "width" : 196608,
+    "height" : 52428,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -127,15 +127,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -177,15 +169,12 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell Bold 32",
+                "description" : "Cantarell Bold Italic 32",
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 8374
-                },
                 "matrix" : [
                   1,
-                  -0,
-                  -0,
+                  0.20000000000000001,
+                  0,
                   1,
                   0,
                   0
@@ -198,7 +187,7 @@
               "glyphs" : [
                 {
                   "glyph" : 467,
-                  "width" : 35840,
+                  "width" : 33792,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
@@ -210,7 +199,7 @@
                 },
                 {
                   "glyph" : 409,
-                  "width" : 17408,
+                  "width" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 },
@@ -222,7 +211,7 @@
                 },
                 {
                   "glyph" : 430,
-                  "width" : 16384,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 4
                 }
diff --git a/tests/layouts/bratwurst2.layout b/tests/layouts/bratwurst2.layout
index 23e14bd9..a5aab845 100644
--- a/tests/layouts/bratwurst2.layout
+++ b/tests/layouts/bratwurst2.layout
@@ -87,12 +87,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 200704,
-    "height" : 53248,
+    "height" : 52428,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -120,15 +120,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/bratwurst3.layout b/tests/layouts/bratwurst3.layout
index c4a173cb..2334bcc6 100644
--- a/tests/layouts/bratwurst3.layout
+++ b/tests/layouts/bratwurst3.layout
@@ -88,12 +88,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 78848,
-    "height" : 212992,
+    "height" : 209712,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -121,15 +121,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -161,7 +153,7 @@
       {
         "position" : [
           0,
-          96256
+          95375
         ],
         "line" : {
           "start-index" : 2,
@@ -189,15 +181,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -229,7 +213,7 @@
       {
         "position" : [
           0,
-          149504
+          147803
         ],
         "line" : {
           "start-index" : 4,
@@ -257,15 +241,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -297,7 +273,7 @@
       {
         "position" : [
           0,
-          202752
+          200231
         ],
         "line" : {
           "start-index" : 6,
@@ -325,15 +301,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/bratwurst4.layout b/tests/layouts/bratwurst4.layout
index 69f44999..46d99f32 100644
--- a/tests/layouts/bratwurst4.layout
+++ b/tests/layouts/bratwurst4.layout
@@ -93,12 +93,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 114688,
-    "height" : 106496,
+    "height" : 104856,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -126,15 +126,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -184,7 +176,7 @@
       {
         "position" : [
           0,
-          96256
+          95375
         ],
         "line" : {
           "start-index" : 6,
@@ -212,15 +204,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/effigy.layout b/tests/layouts/effigy.layout
index fb069965..953fe279 100644
--- a/tests/layouts/effigy.layout
+++ b/tests/layouts/effigy.layout
@@ -74,12 +74,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 71680,
-    "height" : 104448,
+    "height" : 101716,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -104,15 +104,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans 32",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -144,7 +136,7 @@
       {
         "position" : [
           0,
-          93184
+          91412
         ],
         "line" : {
           "start-index" : 3,
@@ -169,15 +161,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans 32",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/kebab.layout b/tests/layouts/kebab.layout
index 787895df..4a04835d 100644
--- a/tests/layouts/kebab.layout
+++ b/tests/layouts/kebab.layout
@@ -102,12 +102,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 126976,
-    "height" : 106496,
+    "height" : 104856,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -135,15 +135,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -194,7 +186,7 @@
       {
         "position" : [
           0,
-          96256
+          95375
         ],
         "line" : {
           "start-index" : 7,
@@ -222,15 +214,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 8374
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/letterspacing.layout b/tests/layouts/letterspacing.layout
index c4cdb5b1..86071325 100644
--- a/tests/layouts/letterspacing.layout
+++ b/tests/layouts/letterspacing.layout
@@ -64,12 +64,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 63488,
-    "height" : 52224,
+    "height" : 50858,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -94,15 +94,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans 32",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/no-space.layout b/tests/layouts/no-space.layout
index e3657ae2..eb5ce823 100644
--- a/tests/layouts/no-space.layout
+++ b/tests/layouts/no-space.layout
@@ -69,14 +69,14 @@
     "wrapped" : false,
     "ellipsized" : false,
     "hypenated" : false,
-    "unknown-glyphs" : 4,
+    "unknown-glyphs" : 1,
     "width" : 89088,
-    "height" : 45056,
+    "height" : 50858,
     "lines" : [
       {
         "position" : [
           0,
-          38912
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -100,16 +100,8 @@
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Font Awesome 5 Free Solid Heavy 32",
-                "checksum" : "8fe6cd51391fa6f8c2008609ddd489bb81a6d7674f3a1c8b7fa07efd026a6397",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "DejaVu Sans 32",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -117,32 +109,32 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
-                  "glyph" : 1,
-                  "width" : 44032,
+                  "glyph" : 268497627,
+                  "width" : 31744,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 },
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 5
                 },
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 6
                 }
diff --git a/tests/layouts/tab-assert.layout b/tests/layouts/tab-assert.layout
index 53131713..c0dfa160 100644
--- a/tests/layouts/tab-assert.layout
+++ b/tests/layouts/tab-assert.layout
@@ -64,12 +64,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 56320,
-    "height" : 19456,
+    "height" : 19072,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          15208
         ],
         "line" : {
           "start-index" : 0,
@@ -94,15 +94,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans 12",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -127,15 +119,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans 12",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -160,15 +144,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans 12",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/tab-crash.layout b/tests/layouts/tab-crash.layout
index f25abb6d..bb426141 100644
--- a/tests/layouts/tab-crash.layout
+++ b/tests/layouts/tab-crash.layout
@@ -583,12 +583,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 552960,
-    "height" : 58368,
+    "height" : 57216,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          15208
         ],
         "line" : {
           "start-index" : 0,
@@ -605,23 +605,15 @@
           "runs" : [
             {
               "offset" : 0,
-              "length" : 55,
-              "text" : "id=3 UNION ALL SELECT NULL, NULL, CONCAT(0x7373737373, ",
+              "length" : 1,
+              "text" : "i",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -633,330 +625,1166 @@
                   "width" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
-                },
+                }
+              ]
+            },
+            {
+              "offset" : 1,
+              "length" : 1,
+              "text" : "d",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 71,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 1
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 2,
+              "length" : 1,
+              "text" : "=",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 32,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 3,
+              "length" : 2,
+              "text" : "3 ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 3
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 5,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 5
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 7,
+              "length" : 1,
+              "text" : "I",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 44,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 7
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 1,
+              "text" : "O",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 50,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 8
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 9,
+              "length" : 2,
+              "text" : "N ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 9
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 10
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 11,
+              "length" : 1,
+              "text" : "A",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 36,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 11
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 12,
+              "length" : 3,
+              "text" : "LL ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 12
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 13
+                  "log-cluster" : 1
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 14
-                },
+                  "log-cluster" : 2
+                }
+              ]
+            },
+            {
+              "offset" : 15,
+              "length" : 1,
+              "text" : "S",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 54,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 15
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 16,
+              "length" : 1,
+              "text" : "E",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 40,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 16
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 17,
+              "length" : 1,
+              "text" : "L",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 17
-                },
-                {
-                  "glyph" : 40,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 18
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 18,
+              "length" : 1,
+              "text" : "E",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 40,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 19,
+              "length" : 1,
+              "text" : "C",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 38,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 19
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 20,
+              "length" : 2,
+              "text" : "T ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 55,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 20
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 21
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 22,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 22
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 23,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 23
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 24,
+              "length" : 2,
+              "text" : "LL",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 24
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 25
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 26,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 15,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 26
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 27
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 28,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 28
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 29,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 29
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 30,
+              "length" : 2,
+              "text" : "LL",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 30
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 31
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 32,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 15,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 32
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 33
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 34,
+              "length" : 1,
+              "text" : "C",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 38,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 34
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 35,
+              "length" : 1,
+              "text" : "O",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 50,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 35
-                },
-                {
-                  "glyph" : 49,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 36
-                },
-                {
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 36,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 49,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 37,
+              "length" : 1,
+              "text" : "C",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
                   "glyph" : 38,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 37
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 38,
+              "length" : 1,
+              "text" : "A",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 36,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 38
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 39,
+              "length" : 1,
+              "text" : "T",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 55,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 39
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 40,
+              "length" : 1,
+              "text" : "(",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 11,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 40
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 41,
+              "length" : 1,
+              "text" : "0",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 19,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 41
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 42,
+              "length" : 1,
+              "text" : "x",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 91,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 42
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 43,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 43
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 44,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 44
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 45,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 45
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 46,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 46
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 47,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 47
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 48,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 48
-                },
-                {
-                  "glyph" : 26,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 49
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 49,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 50,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 50
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 51,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 51
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 52,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 52
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 53,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 15,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 53
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 268435455,
                   "width" : 0,
                   "is-cluster-start" : true,
-                  "log-cluster" : 54
+                  "log-cluster" : 1
                 }
               ]
             }
@@ -966,7 +1794,7 @@
       {
         "position" : [
           0,
-          34816
+          34280
         ],
         "line" : {
           "start-index" : 55,
@@ -982,179 +1810,589 @@
           "direction" : "ltr",
           "runs" : [
             {
-              "offset" : 55,
-              "length" : 25,
-              "text" : "0x73323173656374657374), ",
+              "offset" : 55,
+              "length" : 1,
+              "text" : "0",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 19,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 56,
+              "length" : 1,
+              "text" : "x",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 91,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 57,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 58,
+              "length" : 2,
+              "text" : "33",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                },
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 60,
+              "length" : 1,
+              "text" : "2",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 21,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 61,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 62,
+              "length" : 1,
+              "text" : "1",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 20,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 63,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 64,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 65,
+              "length" : 1,
+              "text" : "6",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 25,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 66,
+              "length" : 1,
+              "text" : "5",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
-                {
-                  "glyph" : 19,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 0
-                },
-                {
-                  "glyph" : 91,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 1
-                },
-                {
-                  "glyph" : 26,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 3
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
-                {
-                  "glyph" : 21,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 5
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
-                {
-                  "glyph" : 20,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 7
-                },
-                {
-                  "glyph" : 26,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 8
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 9
-                },
-                {
-                  "glyph" : 25,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 10
-                },
                 {
                   "glyph" : 24,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 11
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 67,
+              "length" : 1,
+              "text" : "6",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 25,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 12
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 68,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 13
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 69,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 14
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 70,
+              "length" : 1,
+              "text" : "4",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 23,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 15
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 71,
+              "length" : 1,
+              "text" : "6",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 25,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 16
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 72,
+              "length" : 1,
+              "text" : "5",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 24,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 17
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 73,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 18
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 74,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 19
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 75,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 20
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 76,
+              "length" : 1,
+              "text" : "4",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 23,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 21
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 77,
+              "length" : 1,
+              "text" : ")",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 12,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 22
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 78,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 15,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 23
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 268435455,
                   "width" : 0,
                   "is-cluster-start" : true,
-                  "log-cluster" : 24
+                  "log-cluster" : 1
                 }
               ]
             }
@@ -1164,7 +2402,7 @@
       {
         "position" : [
           0,
-          54272
+          53352
         ],
         "line" : {
           "start-index" : 80,
@@ -1181,23 +2419,15 @@
           "runs" : [
             {
               "offset" : 80,
-              "length" : 6,
-              "text" : "NULL--",
+              "length" : 1,
+              "text" : "N",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1209,36 +2439,93 @@
                   "width" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
-                },
+                }
+              ]
+            },
+            {
+              "offset" : 81,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 1
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 82,
+              "length" : 2,
+              "text" : "LL",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 3
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 84,
+              "length" : 2,
+              "text" : "--",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 16,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 16,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 5
+                  "log-cluster" : 1
                 }
               ]
             },
@@ -1252,15 +2539,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1285,15 +2564,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1318,15 +2589,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1351,15 +2614,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1376,23 +2631,15 @@
             },
             {
               "offset" : 90,
-              "length" : 10,
-              "text" : "-->(MYSQL)",
+              "length" : 2,
+              "text" : "--",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans Mono 12",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1410,54 +2657,206 @@
                   "width" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
-                },
+                }
+              ]
+            },
+            {
+              "offset" : 92,
+              "length" : 1,
+              "text" : ">",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 33,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 93,
+              "length" : 1,
+              "text" : "(",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 11,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 3
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 94,
+              "length" : 1,
+              "text" : "M",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 48,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 95,
+              "length" : 1,
+              "text" : "Y",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 60,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 5
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 96,
+              "length" : 1,
+              "text" : "S",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 54,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 97,
+              "length" : 1,
+              "text" : "Q",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 52,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 7
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 98,
+              "length" : 1,
+              "text" : "L",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 8
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 99,
+              "length" : 1,
+              "text" : ")",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 12,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 9
+                  "log-cluster" : 0
                 }
               ]
             }
diff --git a/tests/layouts/tabs-nowrap.layout b/tests/layouts/tabs-nowrap.layout
index 42940405..c450fc93 100644
--- a/tests/layouts/tabs-nowrap.layout
+++ b/tests/layouts/tabs-nowrap.layout
@@ -125,12 +125,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 239616,
-    "height" : 104448,
+    "height" : 101716,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -155,15 +155,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -206,15 +198,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -245,15 +229,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -280,7 +256,7 @@
       {
         "position" : [
           0,
-          93184
+          91412
         ],
         "line" : {
           "start-index" : 6,
@@ -305,15 +281,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans Mono 32",
-                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/tabs.layout b/tests/layouts/tabs.layout
index a3257fe8..9a9dd748 100644
--- a/tests/layouts/tabs.layout
+++ b/tests/layouts/tabs.layout
@@ -504,12 +504,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 460800,
-    "height" : 73728,
+    "height" : 68811,
     "lines" : [
       {
         "position" : [
           0,
-          19456
+          18789
         ],
         "line" : {
           "start-index" : 0,
@@ -537,15 +537,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -573,15 +565,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -621,15 +605,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -657,15 +633,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -717,15 +685,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -753,15 +713,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -795,15 +747,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -831,15 +775,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -885,15 +821,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -902,7 +830,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268435455,
-                  "width" : 39424,
+                  "width" : 44544,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -921,15 +849,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -956,7 +876,7 @@
       {
         "position" : [
           0,
-          44032
+          41726
         ],
         "line" : {
           "start-index" : 22,
@@ -984,15 +904,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1020,15 +932,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1074,15 +978,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1110,15 +1006,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1170,15 +1058,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1206,15 +1086,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1254,15 +1126,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1290,15 +1154,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1338,15 +1194,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1355,7 +1203,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268435455,
-                  "width" : 33792,
+                  "width" : 38912,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -1374,15 +1222,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1415,7 +1255,7 @@
       {
         "position" : [
           0,
-          68608
+          64663
         ],
         "line" : {
           "start-index" : 46,
@@ -1443,15 +1283,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1479,15 +1311,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1539,15 +1363,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1575,15 +1391,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1623,15 +1431,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1659,15 +1459,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1713,15 +1505,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1749,15 +1533,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1791,15 +1567,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1827,15 +1595,7 @@
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
                 "variations" : {
                   "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                }
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-1.layout b/tests/layouts/valid-1.layout
index b02e7ff5..84375cb2 100644
--- a/tests/layouts/valid-1.layout
+++ b/tests/layouts/valid-1.layout
@@ -336,12 +336,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 225280,
-    "height" : 19456,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -366,18 +366,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -528,18 +517,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -638,18 +616,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-10.layout b/tests/layouts/valid-10.layout
index 5ae43b67..32041025 100644
--- a/tests/layouts/valid-10.layout
+++ b/tests/layouts/valid-10.layout
@@ -157,12 +157,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 102400,
-    "height" : 19456,
+    "height" : 18305,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -187,18 +187,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -244,24 +233,16 @@
               ]
             },
             {
-              "offset" : 6,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 12,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
               "script" : "Hebr",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -272,20 +253,77 @@
                   "glyph" : 1332,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 10,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 4096,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 8192,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 10240,
@@ -303,19 +341,8 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -323,8 +350,8 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1109,
-                  "width" : 3072,
+                  "glyph" : 3,
+                  "width" : 5120,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -340,18 +367,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -376,18 +392,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
@@ -403,7 +408,7 @@
               "glyphs" : [
                 {
                   "glyph" : 1062,
-                  "width" : 19456,
+                  "width" : 17408,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
diff --git a/tests/layouts/valid-11.layout b/tests/layouts/valid-11.layout
index a425f56e..095d87be 100644
--- a/tests/layouts/valid-11.layout
+++ b/tests/layouts/valid-11.layout
@@ -168,12 +168,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 109568,
-    "height" : 20480,
+    "height" : 19046,
     "lines" : [
       {
         "position" : [
           0,
-          16384
+          15787
         ],
         "line" : {
           "start-index" : 0,
@@ -198,18 +198,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -276,18 +265,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -312,18 +290,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -374,18 +341,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -410,18 +366,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-12.layout b/tests/layouts/valid-12.layout
index a04f390f..2c6d257a 100644
--- a/tests/layouts/valid-12.layout
+++ b/tests/layouts/valid-12.layout
@@ -184,13 +184,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 1,
-    "width" : 179200,
-    "height" : 38912,
+    "width" : 173056,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -215,18 +215,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -251,18 +240,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -287,18 +265,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -323,18 +290,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -359,18 +315,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -395,18 +340,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -431,18 +365,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -467,18 +390,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -487,7 +399,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268443688,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -499,7 +411,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 10,
@@ -524,18 +436,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -560,18 +461,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -596,18 +486,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -632,18 +511,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -668,18 +536,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -704,18 +561,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -740,18 +586,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-13.layout b/tests/layouts/valid-13.layout
index efa65088..e19df41a 100644
--- a/tests/layouts/valid-13.layout
+++ b/tests/layouts/valid-13.layout
@@ -184,13 +184,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 1,
-    "width" : 179200,
-    "height" : 38912,
+    "width" : 173056,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -215,18 +215,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -251,18 +240,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -287,18 +265,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -323,18 +290,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -359,18 +315,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -395,18 +340,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -431,18 +365,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -467,18 +390,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -487,7 +399,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268443688,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -499,7 +411,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 10,
@@ -524,18 +436,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -560,18 +461,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -596,18 +486,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -632,18 +511,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -668,18 +536,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -704,18 +561,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -740,18 +586,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-14.layout b/tests/layouts/valid-14.layout
index 57ba35f7..1b36f9d5 100644
--- a/tests/layouts/valid-14.layout
+++ b/tests/layouts/valid-14.layout
@@ -175,16 +175,16 @@
   ],
   "output" : {
     "wrapped" : false,
-    "ellipsized" : true,
+    "ellipsized" : false,
     "hypenated" : false,
-    "unknown-glyphs" : 1,
-    "width" : 161792,
-    "height" : 21047,
+    "unknown-glyphs" : 2,
+    "width" : 159744,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           0,
-          16951
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -192,7 +192,7 @@
           "start-offset" : 0,
           "n-chars" : 22,
           "wrapped" : false,
-          "ellipsized" : true,
+          "ellipsized" : false,
           "hyphenated" : false,
           "justified" : false,
           "paragraph-start" : true,
@@ -201,87 +201,38 @@
           "runs" : [
             {
               "offset" : 0,
-              "length" : 6,
-              "text" : "你好",
+              "length" : 7,
+              "text" : "你好 ",
               "bidi-level" : 0,
               "gravity" : "south",
-              "language" : "en-us",
-              "script" : "Zyyy",
+              "language" : "xx",
+              "script" : "Hani",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
-              "flags" : 2,
-              "extra-attributes" : [
-                {
-                  "end" : 2147483647,
-                  "type" : "fallback",
-                  "value" : true
-                }
-              ],
+              "flags" : 0,
               "y-offset" : 0,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1058,
-                  "width" : 4096,
+                  "glyph" : 268455776,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
-                  "glyph" : 1058,
-                  "width" : 4096,
-                  "log-cluster" : 0
+                  "glyph" : 268458365,
+                  "width" : 11264,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 3
                 },
                 {
-                  "glyph" : 1058,
-                  "width" : 17408,
-                  "log-cluster" : 0
-                }
-              ]
-            },
-            {
-              "offset" : 6,
-              "length" : 1,
-              "text" : " ",
-              "bidi-level" : 0,
-              "gravity" : "south",
-              "language" : "xx",
-              "script" : "Hani",
-              "font" : {
-                "description" : "Droid Sans Japanese 11",
-                "checksum" : "9e7449c453527829c963330ba36f4de3b20911e185a1df08a97082bb69e795d7",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
-              },
-              "flags" : 0,
-              "y-offset" : 567,
-              "start-x-offset" : 0,
-              "end-x-offset" : 0,
-              "glyphs" : [
-                {
-                  "glyph" : 268435488,
-                  "width" : 4096,
+                  "glyph" : 1109,
+                  "width" : 3072,
                   "is-cluster-start" : true,
-                  "log-cluster" : 0
+                  "log-cluster" : 6
                 }
               ]
             },
@@ -295,18 +246,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -352,24 +292,16 @@
               ]
             },
             {
-              "offset" : 13,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 19,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
               "script" : "Hebr",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 337,
@@ -380,20 +312,77 @@
                   "glyph" : 1332,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 17,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 337,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 4096,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 15,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 337,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 8192,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 13,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 337,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 10240,
@@ -411,28 +400,17 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
-              "y-offset" : 0,
+              "y-offset" : 337,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1109,
-                  "width" : 3072,
+                  "glyph" : 3,
+                  "width" : 5120,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -448,18 +426,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-15.layout b/tests/layouts/valid-15.layout
index 09237954..ed062795 100644
--- a/tests/layouts/valid-15.layout
+++ b/tests/layouts/valid-15.layout
@@ -632,12 +632,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 153600,
-    "height" : 38912,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -662,18 +662,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -838,7 +827,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 25,
@@ -863,18 +852,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1013,18 +991,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-16.layout b/tests/layouts/valid-16.layout
index a5225aa5..eb5f4bf9 100644
--- a/tests/layouts/valid-16.layout
+++ b/tests/layouts/valid-16.layout
@@ -633,12 +633,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 153600,
-    "height" : 38912,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -663,18 +663,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -839,7 +828,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 25,
@@ -864,18 +853,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1014,18 +992,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-17.layout b/tests/layouts/valid-17.layout
index f1a71776..4984b3bb 100644
--- a/tests/layouts/valid-17.layout
+++ b/tests/layouts/valid-17.layout
@@ -134,12 +134,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 93184,
-    "height" : 38912,
+    "height" : 36327,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -164,18 +164,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -218,15 +207,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -251,18 +232,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -299,15 +269,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -332,18 +294,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -380,15 +331,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -409,7 +352,7 @@
       {
         "position" : [
           0,
-          34816
+          33068
         ],
         "line" : {
           "start-index" : 19,
@@ -434,18 +377,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-18.layout b/tests/layouts/valid-18.layout
index a9bc47a7..d8a85f8a 100644
--- a/tests/layouts/valid-18.layout
+++ b/tests/layouts/valid-18.layout
@@ -322,13 +322,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 5,
-    "width" : 302080,
-    "height" : 38912,
+    "width" : 271360,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -353,18 +353,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -486,18 +475,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -513,7 +491,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268443688,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -525,7 +503,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 19,
@@ -550,18 +528,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -619,7 +586,7 @@
                 },
                 {
                   "glyph" : 268435629,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 7
                 },
@@ -637,7 +604,7 @@
                 },
                 {
                   "glyph" : 268435629,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 11
                 },
@@ -709,7 +676,7 @@
                 },
                 {
                   "glyph" : 268500735,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 24
                 },
@@ -739,7 +706,7 @@
                 },
                 {
                   "glyph" : 268443660,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 31
                 },
diff --git a/tests/layouts/valid-19.layout b/tests/layouts/valid-19.layout
index adf599d7..c4ca72af 100644
--- a/tests/layouts/valid-19.layout
+++ b/tests/layouts/valid-19.layout
@@ -159,13 +159,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 166912,
-    "height" : 19456,
+    "width" : 203776,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -190,15 +190,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -234,16 +226,8 @@
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -275,18 +259,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -303,23 +276,41 @@
             },
             {
               "offset" : 16,
-              "length" : 8,
-              "text" : "🇩🇪",
+              "length" : 4,
+              "text" : "🇩",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Zyyy",
+              "font" : {
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 8,
+                  "width" : 18432,
+                  "is-cluster-start" : true,
+                  "is-color" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 20,
+              "length" : 4,
+              "text" : "🇪",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -327,7 +318,7 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 22,
+                  "glyph" : 9,
                   "width" : 18432,
                   "is-cluster-start" : true,
                   "is-color" : true,
@@ -345,18 +336,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -380,16 +360,8 @@
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -415,18 +387,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -443,23 +404,41 @@
             },
             {
               "offset" : 29,
-              "length" : 7,
-              "text" : "✋🏾",
+              "length" : 3,
+              "text" : "✋",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Zyyy",
+              "font" : {
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 7,
+                  "width" : 18432,
+                  "is-cluster-start" : true,
+                  "is-color" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 32,
+              "length" : 4,
+              "text" : "🏾",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -467,7 +446,7 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 21,
+                  "glyph" : 11,
                   "width" : 18432,
                   "is-cluster-start" : true,
                   "is-color" : true,
@@ -485,18 +464,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -544,16 +512,8 @@
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -591,18 +551,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-2.layout b/tests/layouts/valid-2.layout
index 27d180cf..70edab66 100644
--- a/tests/layouts/valid-2.layout
+++ b/tests/layouts/valid-2.layout
@@ -240,12 +240,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 200704,
-    "height" : 19456,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -270,18 +270,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -353,15 +342,12 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 11",
+                "description" : "Cantarell Italic 11",
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
                 "matrix" : [
                   1,
-                  -0,
-                  -0,
+                  0.20000000000000001,
+                  0,
                   1,
                   0,
                   0
@@ -408,18 +394,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -480,18 +455,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -548,18 +512,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-20.layout b/tests/layouts/valid-20.layout
index 6b666f36..52823340 100644
--- a/tests/layouts/valid-20.layout
+++ b/tests/layouts/valid-20.layout
@@ -89,12 +89,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 76800,
-    "height" : 25600,
+    "height" : 23774,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -119,18 +119,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell Rotated-Left 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -152,24 +141,24 @@
                 {
                   "glyph" : 244,
                   "width" : 18432,
-                  "x-offset" : 14764,
-                  "y-offset" : 3845,
+                  "x-offset" : 14336,
+                  "y-offset" : 4096,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
                   "glyph" : 272,
                   "width" : 18432,
-                  "x-offset" : 14764,
-                  "y-offset" : 4280,
+                  "x-offset" : 14336,
+                  "y-offset" : 4096,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
                   "glyph" : 273,
                   "width" : 18432,
-                  "x-offset" : 14764,
-                  "y-offset" : 3507,
+                  "x-offset" : 14336,
+                  "y-offset" : 3072,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 }
@@ -185,18 +174,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-21.layout b/tests/layouts/valid-21.layout
index 9b15c803..eea3751a 100644
--- a/tests/layouts/valid-21.layout
+++ b/tests/layouts/valid-21.layout
@@ -61,13 +61,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 1,
-    "width" : 45056,
-    "height" : 19456,
+    "width" : 36864,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -91,16 +91,8 @@
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -138,18 +130,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -170,7 +151,7 @@
                 },
                 {
                   "glyph" : 268443661,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 }
diff --git a/tests/layouts/valid-22.layout b/tests/layouts/valid-22.layout
index aad23396..85b7b5ba 100644
--- a/tests/layouts/valid-22.layout
+++ b/tests/layouts/valid-22.layout
@@ -184,12 +184,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 49152,
-    "height" : 22658,
+    "height" : 21100,
     "lines" : [
       {
         "position" : [
           0,
-          16312
+          15708
         ],
         "line" : {
           "start-index" : 0,
@@ -214,18 +214,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -249,15 +238,12 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 7.1484375",
+                "description" : "Cantarell Italic 7.1494140625",
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
                 "matrix" : [
                   1,
-                  -0,
-                  -0,
+                  0.20000000000000001,
+                  0,
                   1,
                   0,
                   0
@@ -300,18 +286,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -353,19 +328,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 7.1484375",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "Cantarell 7.1494140625",
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -403,19 +367,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 4.646484375",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "Cantarell 4.6474609375",
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -466,18 +419,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 3.0205078125",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -539,19 +481,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 1.962890625",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "Cantarell 1.9638671875",
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -626,18 +557,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 1.2763671875",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-3.layout b/tests/layouts/valid-3.layout
index 5eceb6cb..089b981c 100644
--- a/tests/layouts/valid-3.layout
+++ b/tests/layouts/valid-3.layout
@@ -71,12 +71,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 56320,
-    "height" : 19456,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -101,18 +101,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -148,16 +137,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -189,18 +170,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-4.layout b/tests/layouts/valid-4.layout
index 3e7370d2..f3ee1261 100644
--- a/tests/layouts/valid-4.layout
+++ b/tests/layouts/valid-4.layout
@@ -876,12 +876,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 197632,
-    "height" : 97280,
+    "height" : 90110,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -906,18 +906,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -1117,7 +1106,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 32,
@@ -1142,18 +1131,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1354,7 +1332,7 @@
       {
         "position" : [
           0,
-          54272
+          50807
         ],
         "line" : {
           "start-index" : 63,
@@ -1379,18 +1357,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -1584,7 +1551,7 @@
       {
         "position" : [
           0,
-          73728
+          68829
         ],
         "line" : {
           "start-index" : 96,
@@ -1609,18 +1576,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1827,7 +1783,7 @@
       {
         "position" : [
           0,
-          93184
+          86851
         ],
         "line" : {
           "start-index" : 129,
@@ -1852,18 +1808,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-5.layout b/tests/layouts/valid-5.layout
index ce6aeb89..744caeaa 100644
--- a/tests/layouts/valid-5.layout
+++ b/tests/layouts/valid-5.layout
@@ -776,12 +776,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 194560,
-    "height" : 116736,
+    "height" : 108132,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -806,18 +806,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -966,7 +955,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 21,
@@ -991,18 +980,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -1163,7 +1141,7 @@
       {
         "position" : [
           0,
-          54272
+          50807
         ],
         "line" : {
           "start-index" : 44,
@@ -1188,18 +1166,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -1402,7 +1369,7 @@
       {
         "position" : [
           0,
-          73728
+          68829
         ],
         "line" : {
           "start-index" : 74,
@@ -1427,18 +1394,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -1557,7 +1513,7 @@
       {
         "position" : [
           0,
-          93184
+          86851
         ],
         "line" : {
           "start-index" : 91,
@@ -1582,18 +1538,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1758,7 +1703,7 @@
       {
         "position" : [
           0,
-          112640
+          104873
         ],
         "line" : {
           "start-index" : 117,
@@ -1783,18 +1728,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-6.layout b/tests/layouts/valid-6.layout
index cc65655a..68b41f17 100644
--- a/tests/layouts/valid-6.layout
+++ b/tests/layouts/valid-6.layout
@@ -162,13 +162,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 142336,
-    "height" : 19456,
+    "width" : 160768,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -193,18 +193,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -221,23 +210,41 @@
             },
             {
               "offset" : 1,
-              "length" : 7,
-              "text" : "0️⃣",
+              "length" : 4,
+              "text" : "0️",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 3,
+                  "width" : 18432,
+                  "is-cluster-start" : true,
+                  "is-color" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 5,
+              "length" : 3,
+              "text" : "⃣",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "description" : "Noto Color Emoji Bold 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -245,7 +252,7 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 19,
+                  "glyph" : 5,
                   "width" : 18432,
                   "is-cluster-start" : true,
                   "is-color" : true,
@@ -263,18 +270,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-7.layout b/tests/layouts/valid-7.layout
index 63034932..d340f6f5 100644
--- a/tests/layouts/valid-7.layout
+++ b/tests/layouts/valid-7.layout
@@ -337,12 +337,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 153600,
-    "height" : 19456,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           51200,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -367,18 +367,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -469,18 +458,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
@@ -512,18 +490,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -574,18 +541,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-8.layout b/tests/layouts/valid-8.layout
index 4842ab0f..f5a62622 100644
--- a/tests/layouts/valid-8.layout
+++ b/tests/layouts/valid-8.layout
@@ -156,13 +156,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 132096,
-    "height" : 19456,
+    "width" : 134144,
+    "height" : 18305,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -187,18 +187,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -244,24 +233,16 @@
               ]
             },
             {
-              "offset" : 6,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 12,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
               "script" : "Hebr",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -272,20 +253,77 @@
                   "glyph" : 1332,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 10,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 4096,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 8192,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 10240,
@@ -303,19 +341,8 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -323,8 +350,8 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1109,
-                  "width" : 3072,
+                  "glyph" : 3,
+                  "width" : 5120,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -340,18 +367,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-9.layout b/tests/layouts/valid-9.layout
index 233dc31f..bca89f44 100644
--- a/tests/layouts/valid-9.layout
+++ b/tests/layouts/valid-9.layout
@@ -163,12 +163,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 71392,
-    "height" : 77824,
+    "height" : 71548,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -193,18 +193,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -267,7 +256,7 @@
       {
         "position" : [
           0,
-          34816
+          31962
         ],
         "line" : {
           "start-index" : 6,
@@ -283,24 +272,16 @@
           "direction" : "ltr",
           "runs" : [
             {
-              "offset" : 6,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 12,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
               "script" : "Hebr",
               "font" : {
                 "description" : "DejaVu Sans 11",
-                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -318,22 +299,100 @@
                   "glyph" : 1332,
                   "width" : 14684,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 10,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "extra-attributes" : [
+                {
+                  "end" : 30,
+                  "type" : "letter-spacing",
+                  "value" : 8888
+                }
+              ],
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 12984,
                   "x-offset" : 4444,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "extra-attributes" : [
+                {
+                  "end" : 30,
+                  "type" : "letter-spacing",
+                  "value" : 8888
+                }
+              ],
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 17080,
                   "x-offset" : 4444,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "extra-attributes" : [
+                {
+                  "end" : 30,
+                  "type" : "letter-spacing",
+                  "value" : 8888
+                }
+              ],
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 19128,
@@ -352,19 +411,8 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -393,7 +441,7 @@
       {
         "position" : [
           0,
-          54272
+          50267
         ],
         "line" : {
           "start-index" : 15,
@@ -418,18 +466,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -485,7 +522,7 @@
       {
         "position" : [
           0,
-          73728
+          68289
         ],
         "line" : {
           "start-index" : 24,
@@ -510,18 +547,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                },
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/vertical.layout b/tests/layouts/vertical.layout
index 14c84249..e6f604a8 100644
--- a/tests/layouts/vertical.layout
+++ b/tests/layouts/vertical.layout
@@ -93,12 +93,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 294912,
-    "height" : 49152,
+    "height" : 47448,
     "lines" : [
       {
         "position" : [
           0,
-          24576
+          23724
         ],
         "line" : {
           "start-index" : 0,
@@ -122,16 +122,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Noto Sans CJK JP Rotated-Left 24",
-                "checksum" : "3b50ae56f1fb5637c82d785945531f718f40b78a26bea3d137e58808bd774399",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "Noto Sans CJK JP Bold Rotated-Left 24",
+                "checksum" : "3b50ae56f1fb5637c82d785945531f718f40b78a26bea3d137e58808bd774399"
               },
               "flags" : 1,
               "y-offset" : 0,
@@ -141,24 +133,24 @@
                 {
                   "glyph" : 1,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 9945,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
                   "glyph" : 2,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10764,
+                  "x-offset" : 28672,
+                  "y-offset" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
                   "glyph" : 3,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10453,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 }
@@ -173,16 +165,8 @@
               "language" : "xx",
               "script" : "Hani",
               "font" : {
-                "description" : "Noto Sans CJK JP Rotated-Left 24",
-                "checksum" : "3b50ae56f1fb5637c82d785945531f718f40b78a26bea3d137e58808bd774399",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "Noto Sans CJK JP Bold Rotated-Left 24",
+                "checksum" : "3b50ae56f1fb5637c82d785945531f718f40b78a26bea3d137e58808bd774399"
               },
               "flags" : 1,
               "y-offset" : 0,
@@ -192,7 +176,7 @@
                 {
                   "glyph" : 4,
                   "width" : 32768,
-                  "x-offset" : 28836,
+                  "x-offset" : 28672,
                   "y-offset" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
@@ -200,7 +184,7 @@
                 {
                   "glyph" : 5,
                   "width" : 32768,
-                  "x-offset" : 28836,
+                  "x-offset" : 28672,
                   "y-offset" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 3
@@ -208,7 +192,7 @@
                 {
                   "glyph" : 7,
                   "width" : 32768,
-                  "x-offset" : 28836,
+                  "x-offset" : 28672,
                   "y-offset" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 6
@@ -224,16 +208,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Noto Sans CJK JP Rotated-Left 24",
-                "checksum" : "3b50ae56f1fb5637c82d785945531f718f40b78a26bea3d137e58808bd774399",
-                "matrix" : [
-                  1,
-                  -0,
-                  -0,
-                  1,
-                  0,
-                  0
-                ]
+                "description" : "Noto Sans CJK JP Bold Rotated-Left 24",
+                "checksum" : "3b50ae56f1fb5637c82d785945531f718f40b78a26bea3d137e58808bd774399"
               },
               "flags" : 1,
               "y-offset" : 0,
@@ -243,24 +219,24 @@
                 {
                   "glyph" : 1,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 9945,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
                   "glyph" : 2,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10764,
+                  "x-offset" : 28672,
+                  "y-offset" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
                   "glyph" : 3,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10453,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]