doc:   [
    DocGroup({"tag": "h1"}, [
        DocChars(" eL0Vl7l p6M 3df 4yp83q8  HUx5 g 55BM 3 an71eX ")
    ]),
    DocGroup({"tag": "p"}, []),
    DocGroup({"tag": "h1"}, [
        DocChars("mX")
    ]),
    DocGroup({"tag": "h3"}, [
        DocChars("m  Ji T  i0gkc"), DocGroup({"tag": "caret", "client": "left"}, [])
    ]),
    DocGroup({"tag": "p"}, [
        DocChars(" S2Qi 7EBedkCrs lm E"), DocGroup({"client": "right", "tag": "caret"}, []),
        DocChars("ksE NAaL2   iu 0v2u86 ua00k B ax 2vM7  W4e5UtAL5 0   8 2 g5sAtO uF8F Ert  3  omUY 3H 4  in tuQ E  Y8 t2oacNcSbF1h7 QFQ6 vg0oO424 364F2 E53tS  mUE8C2 Pv myg24 enPtI 2tN7kf0b64GnSK O c2N8D 7C1Dh Cdrb 1Am  5 18OA2JNepu53N18w20vYy3f  THJ 6 QB r kU6B Wof2VF Vj 8 VS HJ  0 A s2 0Rt T88  46FPV Ua 32X8 82    7JGT u gAL7L3a Gx Yoy8l 24x orlV6 7JM6What's up with you?")
    ])
]

a_del: [
    DelWithGroup([
        DelSkip(47)
    ]),
    DelWithGroup([]),
    DelWithGroup([
        DelSkip(2)
    ]),
    DelWithGroup([
        DelSkip(14), DelGroup([])
    ]),
    DelSkip(1)
]
a_add: [
    AddWithGroup([
        AddSkip(47)
    ]),
    AddWithGroup([]),
    AddWithGroup([
        AddSkip(2)
    ]),
    AddWithGroup([
        AddSkip(14)
    ]),
    AddWithGroup([
        AddGroup({"client": "left", "tag": "caret"}, [])
    ])
]

b_del: [
    DelWithGroup([
        DelSkip(47)
    ]),
    DelWithGroup([]),
    DelWithGroup([
        DelSkip(2)
    ]),
    DelWithGroup([
        DelSkip(14), DelWithGroup([])
    ]),
    DelGroup([
        DelSkip(19), DelChars(1), DelSkip(359)
    ])
]
b_add: [
    AddWithGroup([
        AddSkip(47)
    ]),
    AddWithGroup([]),
    AddWithGroup([
        AddSkip(2)
    ]),
    AddWithGroup([
        AddSkip(14), AddWithGroup([])
    ]),
    AddGroup({"tag": "p"}, [
        AddSkip(19)
    ]),
    AddGroup({"tag": "p"}, [
        AddSkip(359)
    ])
]