@k-l-lambda/lilylet-markdown 0.1.67 → 0.1.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/lib/index.cjs +566 -280
  2. package/lib/index.js +566 -280
  3. package/package.json +4 -4
package/lib/index.cjs CHANGED
@@ -44,14 +44,14 @@ var localGrammar = function() {
44
44
  var o = function(k, v, o2, l) {
45
45
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
46
46
  return o2;
47
- }, $V0 = [5, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V1 = [2, 42], $V2 = [1, 9], $V3 = [1, 10], $V4 = [1, 11], $V5 = [1, 12], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 15], $V9 = [1, 16], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 29], $Vf = [1, 32], $Vg = [1, 33], $Vh = [5, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $Vi = [5, 26], $Vj = [5, 26, 32], $Vk = [1, 47], $Vl = [5, 26, 32, 35], $Vm = [1, 81], $Vn = [1, 82], $Vo = [1, 83], $Vp = [1, 84], $Vq = [1, 85], $Vr = [1, 86], $Vs = [1, 89], $Vt = [1, 90], $Vu = [1, 65], $Vv = [1, 66], $Vw = [1, 91], $Vx = [1, 92], $Vy = [1, 93], $Vz = [1, 101], $VA = [1, 102], $VB = [1, 94], $VC = [1, 95], $VD = [1, 96], $VE = [1, 97], $VF = [1, 98], $VG = [1, 99], $VH = [1, 100], $VI = [1, 77], $VJ = [1, 78], $VK = [1, 79], $VL = [1, 80], $VM = [1, 103], $VN = [1, 104], $VO = [1, 105], $VP = [1, 106], $VQ = [1, 107], $VR = [1, 108], $VS = [1, 109], $VT = [1, 110], $VU = [1, 111], $VV = [1, 112], $VW = [1, 113], $VX = [1, 114], $VY = [1, 88], $VZ = [5, 9, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V_ = [2, 29], $V$ = [5, 9, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V01 = [5, 9, 26, 32, 35, 166], $V11 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $V21 = [2, 123], $V31 = [1, 139], $V41 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 67, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $V51 = [5, 9, 26, 32, 35, 49, 50, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 166], $V61 = [1, 222], $V71 = [1, 228], $V81 = [1, 203], $V91 = [1, 204], $Va1 = [1, 201], $Vb1 = [1, 225], $Vc1 = [1, 202], $Vd1 = [1, 200], $Ve1 = [1, 224], $Vf1 = [1, 194], $Vg1 = [1, 195], $Vh1 = [1, 196], $Vi1 = [1, 197], $Vj1 = [1, 198], $Vk1 = [1, 199], $Vl1 = [1, 205], $Vm1 = [1, 206], $Vn1 = [1, 207], $Vo1 = [1, 208], $Vp1 = [1, 209], $Vq1 = [1, 210], $Vr1 = [1, 211], $Vs1 = [1, 212], $Vt1 = [1, 213], $Vu1 = [1, 214], $Vv1 = [1, 215], $Vw1 = [1, 216], $Vx1 = [1, 217], $Vy1 = [1, 218], $Vz1 = [1, 219], $VA1 = [1, 220], $VB1 = [1, 221], $VC1 = [1, 223], $VD1 = [1, 226], $VE1 = [1, 227], $VF1 = [1, 229], $VG1 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 67, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $VH1 = [9, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152], $VI1 = [104, 169, 170, 171, 172], $VJ1 = [61, 62], $VK1 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 64, 65, 66, 67, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $VL1 = [59, 62, 67, 104];
47
+ }, $V0 = [5, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V1 = [2, 44], $V2 = [1, 9], $V3 = [1, 10], $V4 = [1, 11], $V5 = [1, 12], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 15], $V9 = [1, 16], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 29], $Vf = [1, 32], $Vg = [1, 33], $Vh = [5, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $Vi = [5, 26], $Vj = [5, 26, 33], $Vk = [1, 47], $Vl = [5, 26, 33, 36], $Vm = [1, 83], $Vn = [1, 84], $Vo = [1, 85], $Vp = [1, 86], $Vq = [1, 87], $Vr = [1, 88], $Vs = [1, 94], $Vt = [1, 95], $Vu = [1, 66], $Vv = [1, 67], $Vw = [1, 108], $Vx = [1, 109], $Vy = [1, 110], $Vz = [1, 111], $VA = [1, 96], $VB = [1, 97], $VC = [1, 98], $VD = [1, 106], $VE = [1, 107], $VF = [1, 99], $VG = [1, 100], $VH = [1, 101], $VI = [1, 102], $VJ = [1, 103], $VK = [1, 104], $VL = [1, 105], $VM = [1, 79], $VN = [1, 80], $VO = [1, 81], $VP = [1, 82], $VQ = [1, 112], $VR = [1, 113], $VS = [1, 114], $VT = [1, 115], $VU = [1, 116], $VV = [1, 117], $VW = [1, 118], $VX = [1, 119], $VY = [1, 120], $VZ = [1, 121], $V_ = [1, 122], $V$ = [1, 123], $V01 = [1, 124], $V11 = [1, 90], $V21 = [1, 91], $V31 = [1, 92], $V41 = [1, 93], $V51 = [5, 9, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V61 = [2, 29], $V71 = [5, 9, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V81 = [5, 9, 26, 33, 36, 173, 175, 177, 178], $V91 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $Va1 = [2, 130], $Vb1 = [1, 150], $Vc1 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 68, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $Vd1 = [5, 9, 26, 33, 36, 50, 51, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 173, 175, 177, 178], $Ve1 = [1, 236], $Vf1 = [1, 242], $Vg1 = [1, 217], $Vh1 = [1, 218], $Vi1 = [1, 215], $Vj1 = [1, 239], $Vk1 = [1, 216], $Vl1 = [1, 214], $Vm1 = [1, 238], $Vn1 = [1, 208], $Vo1 = [1, 209], $Vp1 = [1, 210], $Vq1 = [1, 211], $Vr1 = [1, 212], $Vs1 = [1, 213], $Vt1 = [1, 219], $Vu1 = [1, 220], $Vv1 = [1, 221], $Vw1 = [1, 222], $Vx1 = [1, 223], $Vy1 = [1, 224], $Vz1 = [1, 225], $VA1 = [1, 226], $VB1 = [1, 227], $VC1 = [1, 228], $VD1 = [1, 229], $VE1 = [1, 230], $VF1 = [1, 231], $VG1 = [1, 232], $VH1 = [1, 233], $VI1 = [1, 234], $VJ1 = [1, 235], $VK1 = [1, 237], $VL1 = [1, 240], $VM1 = [1, 241], $VN1 = [1, 243], $VO1 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 68, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $VP1 = [9, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159], $VQ1 = [110, 196, 197, 198, 199], $VR1 = [110, 180, 184], $VS1 = [2, 210], $VT1 = [62, 63], $VU1 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 65, 66, 67, 68, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $VV1 = [1, 295], $VW1 = [1, 296], $VX1 = [1, 310], $VY1 = [1, 311], $VZ1 = [1, 313], $V_1 = [1, 314], $V$1 = [1, 315], $V02 = [2, 214], $V12 = [1, 317], $V22 = [60, 63, 68, 110], $V32 = [182, 185, 190, 192, 193, 194], $V42 = [182, 185, 190], $V52 = [2, 223], $V62 = [110, 180, 184, 187];
48
48
  var parser = {
49
49
  trace: function trace() {
50
50
  },
51
51
  yy: {},
52
- symbols_: { "error": 2, "document": 3, "content": 4, "EOF": 5, "headers": 6, "measures": 7, "newlines": 8, "NEWLINE": 9, "header": 10, "HEADER_TITLE": 11, "STRING": 12, "]": 13, "HEADER_SUBTITLE": 14, "HEADER_COMPOSER": 15, "HEADER_ARRANGER": 16, "HEADER_LYRICIST": 17, "HEADER_OPUS": 18, "HEADER_INSTRUMENT": 19, "HEADER_INSTRUMENT_STAFF": 20, "HEADER_GENRE": 21, "HEADER_STAVES": 22, "HEADER_MEASURES": 23, "HEADER_AUTOBEAM": 24, "measure_content": 25, "|": 26, "parts": 27, "addlyrics_opt": 28, "addlyrics_blocks": 29, "addlyrics_block": 30, "part_voices": 31, "PART_SEP": 32, "part_start": 33, "voice_block": 34, "VOICE_SEP": 35, "voice_events": 36, "event": 37, "note_event": 38, "rest_event": 39, "context_event": 40, "grace_event": 41, "tuplet_event": 42, "tremolo_event": 43, "pitch_reset_event": 44, "barline_event": 45, "harmony_event": 46, "markup_event": 47, "dynamic_event": 48, "CMD_BAR": 49, "CMD_CHORDS": 50, "CMD_MARKUP": 51, "^": 52, "_": 53, "dynamic_mark": 54, "chord": 55, "duration": 56, "post_events": 57, "pitch": 58, "<": 59, "pitches": 60, ">": 61, "PITCH": 62, "octave": 63, "!": 64, "OCT_UP": 65, "OCT_DOWN": 66, "NUMBER": 67, "dots": 68, ".": 69, "REST_CHAR": 70, "SPACE_CHAR": 71, "clef_cmd": 72, "key_cmd": 73, "time_cmd": 74, "partial_cmd": 75, "tempo_cmd": 76, "staff_cmd": 77, "ottava_cmd": 78, "stem_cmd": 79, "numeric_time_sig_cmd": 80, "default_time_sig_cmd": 81, "CMD_CLEF": 82, "CMD_KEY": 83, "pitch_name": 84, "mode": 85, "MODE_MAJOR": 86, "MODE_MINOR": 87, "CMD_TIME": 88, "/": 89, "CMD_NUMERIC_TIME_SIG": 90, "CMD_DEFAULT_TIME_SIG": 91, "CMD_PARTIAL": 92, "CMD_TEMPO": 93, "=": 94, "CMD_STAFF": 95, "CMD_OTTAVA": 96, "#": 97, "-": 98, "CMD_STEMUP": 99, "CMD_STEMDOWN": 100, "CMD_STEMNEUTRAL": 101, "CMD_GRACE": 102, "{": 103, "}": 104, "CMD_TIMES": 105, "CMD_TUPLET": 106, "tremolo_pitches": 107, "CMD_REPEAT": 108, "TREMOLO": 109, "post_event": 110, "articulation_mark": 111, "ornament_mark": 112, "hairpin_mark": 113, "pedal_mark": 114, "tie_mark": 115, "slur_mark": 116, "beam_mark": 117, "tremolo_mark": 118, "direction_mark": 119, "rest_mark": 120, "fingering_mark": 121, "fingering_number": 122, "navigation_mark": 123, "markup_mark": 124, "glissando_mark": 125, "CMD_REST": 126, "ART_STACCATO": 127, "ART_STACCATISSIMO": 128, "ART_TENUTO": 129, "ART_MARCATO": 130, "ART_ACCENT": 131, "ART_PORTATO": 132, "ORN_TRILL": 133, "ORN_TURN": 134, "ORN_MORDENT": 135, "ORN_PRALL": 136, "ORN_FERMATA": 137, "ORN_SHORTFERMATA": 138, "ORN_ARPEGGIO": 139, "ORN_BREATHE": 140, "DYN_PPP": 141, "DYN_PP": 142, "DYN_P": 143, "DYN_MP": 144, "DYN_MF": 145, "DYN_F": 146, "DYN_FF": 147, "DYN_FFF": 148, "DYN_SFZ": 149, "DYN_RFZ": 150, "DYN_SF": 151, "DYN_FP": 152, "CMD_CRESC_BEGIN": 153, "CMD_DIM_BEGIN": 154, "CMD_DYNAMICS_END": 155, "CMD_SUSTAINON": 156, "CMD_SUSTAINOFF": 157, "~": 158, "(": 159, ")": 160, "[": 161, ":": 162, "CMD_CODA": 163, "CMD_SEGNO": 164, "CMD_GLISSANDO": 165, "CMD_ADDLYRICS": 166, "lyric_sequence": 167, "lyric_item": 168, "LYRIC_WORD": 169, "LYRIC_HYPHEN": 170, "LYRIC_SKIP": 171, "LYRIC_EXTENDER": 172, "$accept": 0, "$end": 1 },
53
- terminals_: { 2: "error", 5: "EOF", 9: "NEWLINE", 11: "HEADER_TITLE", 12: "STRING", 13: "]", 14: "HEADER_SUBTITLE", 15: "HEADER_COMPOSER", 16: "HEADER_ARRANGER", 17: "HEADER_LYRICIST", 18: "HEADER_OPUS", 19: "HEADER_INSTRUMENT", 20: "HEADER_INSTRUMENT_STAFF", 21: "HEADER_GENRE", 22: "HEADER_STAVES", 23: "HEADER_MEASURES", 24: "HEADER_AUTOBEAM", 26: "|", 32: "PART_SEP", 35: "VOICE_SEP", 49: "CMD_BAR", 50: "CMD_CHORDS", 51: "CMD_MARKUP", 52: "^", 53: "_", 59: "<", 61: ">", 62: "PITCH", 64: "!", 65: "OCT_UP", 66: "OCT_DOWN", 67: "NUMBER", 69: ".", 70: "REST_CHAR", 71: "SPACE_CHAR", 82: "CMD_CLEF", 83: "CMD_KEY", 86: "MODE_MAJOR", 87: "MODE_MINOR", 88: "CMD_TIME", 89: "/", 90: "CMD_NUMERIC_TIME_SIG", 91: "CMD_DEFAULT_TIME_SIG", 92: "CMD_PARTIAL", 93: "CMD_TEMPO", 94: "=", 95: "CMD_STAFF", 96: "CMD_OTTAVA", 97: "#", 98: "-", 99: "CMD_STEMUP", 100: "CMD_STEMDOWN", 101: "CMD_STEMNEUTRAL", 102: "CMD_GRACE", 103: "{", 104: "}", 105: "CMD_TIMES", 106: "CMD_TUPLET", 108: "CMD_REPEAT", 109: "TREMOLO", 126: "CMD_REST", 127: "ART_STACCATO", 128: "ART_STACCATISSIMO", 129: "ART_TENUTO", 130: "ART_MARCATO", 131: "ART_ACCENT", 132: "ART_PORTATO", 133: "ORN_TRILL", 134: "ORN_TURN", 135: "ORN_MORDENT", 136: "ORN_PRALL", 137: "ORN_FERMATA", 138: "ORN_SHORTFERMATA", 139: "ORN_ARPEGGIO", 140: "ORN_BREATHE", 141: "DYN_PPP", 142: "DYN_PP", 143: "DYN_P", 144: "DYN_MP", 145: "DYN_MF", 146: "DYN_F", 147: "DYN_FF", 148: "DYN_FFF", 149: "DYN_SFZ", 150: "DYN_RFZ", 151: "DYN_SF", 152: "DYN_FP", 153: "CMD_CRESC_BEGIN", 154: "CMD_DIM_BEGIN", 155: "CMD_DYNAMICS_END", 156: "CMD_SUSTAINON", 157: "CMD_SUSTAINOFF", 158: "~", 159: "(", 160: ")", 161: "[", 162: ":", 163: "CMD_CODA", 164: "CMD_SEGNO", 165: "CMD_GLISSANDO", 166: "CMD_ADDLYRICS", 169: "LYRIC_WORD", 170: "LYRIC_HYPHEN", 171: "LYRIC_SKIP", 172: "LYRIC_EXTENDER" },
54
- productions_: [0, [3, 2], [4, 2], [4, 3], [4, 3], [4, 4], [4, 2], [4, 1], [8, 1], [8, 2], [6, 1], [6, 2], [6, 2], [6, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 4], [10, 3], [10, 3], [10, 3], [10, 3], [7, 1], [7, 3], [7, 2], [25, 1], [28, 0], [28, 1], [29, 1], [29, 2], [29, 2], [27, 1], [27, 4], [33, 0], [31, 1], [31, 3], [34, 2], [36, 0], [36, 2], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [45, 2], [46, 2], [47, 2], [47, 3], [47, 3], [48, 1], [44, 1], [38, 3], [38, 3], [38, 2], [38, 2], [55, 3], [60, 1], [60, 2], [58, 3], [58, 2], [58, 2], [58, 1], [63, 1], [63, 1], [63, 2], [63, 2], [56, 2], [68, 0], [68, 2], [39, 3], [39, 3], [39, 2], [39, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [72, 2], [73, 3], [84, 1], [85, 1], [85, 1], [74, 4], [80, 1], [81, 1], [75, 2], [76, 5], [76, 2], [76, 4], [77, 2], [78, 3], [78, 4], [78, 1], [79, 1], [79, 1], [79, 1], [41, 4], [41, 2], [41, 2], [42, 7], [42, 7], [107, 1], [107, 1], [43, 9], [43, 8], [43, 7], [57, 0], [57, 2], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [120, 1], [111, 1], [111, 1], [111, 1], [111, 1], [111, 1], [111, 1], [111, 2], [111, 2], [111, 2], [111, 2], [111, 2], [111, 2], [111, 1], [111, 1], [111, 1], [111, 1], [111, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [113, 1], [113, 1], [113, 1], [114, 1], [114, 1], [115, 1], [116, 1], [116, 1], [117, 1], [117, 1], [118, 2], [119, 2], [119, 2], [121, 2], [122, 1], [123, 1], [123, 1], [124, 2], [125, 1], [30, 4], [167, 0], [167, 2], [168, 1], [168, 1], [168, 1], [168, 1]],
52
+ symbols_: { "error": 2, "document": 3, "content": 4, "EOF": 5, "headers": 6, "measures": 7, "newlines": 8, "NEWLINE": 9, "header": 10, "HEADER_TITLE": 11, "STRING": 12, "]": 13, "HEADER_SUBTITLE": 14, "HEADER_COMPOSER": 15, "HEADER_ARRANGER": 16, "HEADER_LYRICIST": 17, "HEADER_OPUS": 18, "HEADER_INSTRUMENT": 19, "HEADER_INSTRUMENT_STAFF": 20, "HEADER_GENRE": 21, "HEADER_STAVES": 22, "HEADER_MEASURES": 23, "HEADER_AUTOBEAM": 24, "measure_content": 25, "|": 26, "parts": 27, "annotations_opt": 28, "annotations": 29, "addlyrics_block": 30, "figures_block": 31, "part_voices": 32, "PART_SEP": 33, "part_start": 34, "voice_block": 35, "VOICE_SEP": 36, "voice_events": 37, "event": 38, "note_event": 39, "rest_event": 40, "context_event": 41, "grace_event": 42, "tuplet_event": 43, "tremolo_event": 44, "pitch_reset_event": 45, "barline_event": 46, "harmony_event": 47, "markup_event": 48, "dynamic_event": 49, "CMD_BAR": 50, "CMD_CHORDS": 51, "CMD_MARKUP": 52, "^": 53, "_": 54, "dynamic_mark": 55, "chord": 56, "duration": 57, "post_events": 58, "pitch": 59, "<": 60, "pitches": 61, ">": 62, "PITCH": 63, "octave": 64, "!": 65, "OCT_UP": 66, "OCT_DOWN": 67, "NUMBER": 68, "dots": 69, ".": 70, "REST_CHAR": 71, "SPACE_CHAR": 72, "clef_cmd": 73, "key_cmd": 74, "time_cmd": 75, "partial_cmd": 76, "tempo_cmd": 77, "staff_cmd": 78, "ottava_cmd": 79, "stem_cmd": 80, "numeric_time_sig_cmd": 81, "default_time_sig_cmd": 82, "omit_cmd": 83, "CMD_OMIT_TIME_SIG": 84, "CMD_UNDO_OMIT_TIME_SIG": 85, "CMD_OMIT_BAR_LINE": 86, "CMD_UNDO_OMIT_BAR_LINE": 87, "CMD_CLEF": 88, "CMD_KEY": 89, "pitch_name": 90, "mode": 91, "MODE_MAJOR": 92, "MODE_MINOR": 93, "CMD_TIME": 94, "/": 95, "CMD_NUMERIC_TIME_SIG": 96, "CMD_DEFAULT_TIME_SIG": 97, "CMD_PARTIAL": 98, "CMD_TEMPO": 99, "=": 100, "CMD_STAFF": 101, "CMD_OTTAVA": 102, "#": 103, "-": 104, "CMD_STEMUP": 105, "CMD_STEMDOWN": 106, "CMD_STEMNEUTRAL": 107, "CMD_GRACE": 108, "{": 109, "}": 110, "CMD_TIMES": 111, "CMD_TUPLET": 112, "tremolo_pitches": 113, "CMD_REPEAT": 114, "TREMOLO": 115, "post_event": 116, "articulation_mark": 117, "ornament_mark": 118, "hairpin_mark": 119, "pedal_mark": 120, "tie_mark": 121, "slur_mark": 122, "beam_mark": 123, "tremolo_mark": 124, "direction_mark": 125, "rest_mark": 126, "fingering_mark": 127, "fingering_number": 128, "navigation_mark": 129, "markup_mark": 130, "glissando_mark": 131, "CMD_REST": 132, "ART_STACCATO": 133, "ART_STACCATISSIMO": 134, "ART_TENUTO": 135, "ART_MARCATO": 136, "ART_ACCENT": 137, "ART_PORTATO": 138, "ORN_TRILL": 139, "ORN_TURN": 140, "ORN_MORDENT": 141, "ORN_PRALL": 142, "ORN_FERMATA": 143, "ORN_SHORTFERMATA": 144, "ORN_ARPEGGIO": 145, "ORN_BREATHE": 146, "DYN_PPP": 147, "DYN_PP": 148, "DYN_P": 149, "DYN_MP": 150, "DYN_MF": 151, "DYN_F": 152, "DYN_FF": 153, "DYN_FFF": 154, "DYN_SFZ": 155, "DYN_RFZ": 156, "DYN_SF": 157, "DYN_OTHER": 158, "DYN_FP": 159, "CMD_CRESC_BEGIN": 160, "CMD_DIM_BEGIN": 161, "CMD_DYNAMICS_END": 162, "CMD_SUSTAINON": 163, "CMD_SUSTAINOFF": 164, "~": 165, "(": 166, ")": 167, "[": 168, ":": 169, "CMD_CODA": 170, "CMD_SEGNO": 171, "CMD_GLISSANDO": 172, "CMD_ADDLYRICS": 173, "lyric_sequence": 174, "CMD_FIGURES": 175, "figure_sequence": 176, "CMD_FIGURES_BELOW": 177, "CMD_FIGURES_ABOVE": 178, "figure_item": 179, "FIG_OPEN": 180, "figure_lines": 181, "FIG_CLOSE": 182, "figure_duration_opt": 183, "FIG_SKIP": 184, "FIG_NUMBER": 185, "figure_dots": 186, "FIG_DOT": 187, "figure_line": 188, "figure_accidental_opt": 189, "FIG_BLANK": 190, "figure_accidental": 191, "FIG_SHARP": 192, "FIG_FLAT": 193, "FIG_NATURAL": 194, "lyric_item": 195, "LYRIC_WORD": 196, "LYRIC_HYPHEN": 197, "LYRIC_SKIP": 198, "LYRIC_EXTENDER": 199, "$accept": 0, "$end": 1 },
53
+ terminals_: { 2: "error", 5: "EOF", 9: "NEWLINE", 11: "HEADER_TITLE", 12: "STRING", 13: "]", 14: "HEADER_SUBTITLE", 15: "HEADER_COMPOSER", 16: "HEADER_ARRANGER", 17: "HEADER_LYRICIST", 18: "HEADER_OPUS", 19: "HEADER_INSTRUMENT", 20: "HEADER_INSTRUMENT_STAFF", 21: "HEADER_GENRE", 22: "HEADER_STAVES", 23: "HEADER_MEASURES", 24: "HEADER_AUTOBEAM", 26: "|", 33: "PART_SEP", 36: "VOICE_SEP", 50: "CMD_BAR", 51: "CMD_CHORDS", 52: "CMD_MARKUP", 53: "^", 54: "_", 60: "<", 62: ">", 63: "PITCH", 65: "!", 66: "OCT_UP", 67: "OCT_DOWN", 68: "NUMBER", 70: ".", 71: "REST_CHAR", 72: "SPACE_CHAR", 84: "CMD_OMIT_TIME_SIG", 85: "CMD_UNDO_OMIT_TIME_SIG", 86: "CMD_OMIT_BAR_LINE", 87: "CMD_UNDO_OMIT_BAR_LINE", 88: "CMD_CLEF", 89: "CMD_KEY", 92: "MODE_MAJOR", 93: "MODE_MINOR", 94: "CMD_TIME", 95: "/", 96: "CMD_NUMERIC_TIME_SIG", 97: "CMD_DEFAULT_TIME_SIG", 98: "CMD_PARTIAL", 99: "CMD_TEMPO", 100: "=", 101: "CMD_STAFF", 102: "CMD_OTTAVA", 103: "#", 104: "-", 105: "CMD_STEMUP", 106: "CMD_STEMDOWN", 107: "CMD_STEMNEUTRAL", 108: "CMD_GRACE", 109: "{", 110: "}", 111: "CMD_TIMES", 112: "CMD_TUPLET", 114: "CMD_REPEAT", 115: "TREMOLO", 132: "CMD_REST", 133: "ART_STACCATO", 134: "ART_STACCATISSIMO", 135: "ART_TENUTO", 136: "ART_MARCATO", 137: "ART_ACCENT", 138: "ART_PORTATO", 139: "ORN_TRILL", 140: "ORN_TURN", 141: "ORN_MORDENT", 142: "ORN_PRALL", 143: "ORN_FERMATA", 144: "ORN_SHORTFERMATA", 145: "ORN_ARPEGGIO", 146: "ORN_BREATHE", 147: "DYN_PPP", 148: "DYN_PP", 149: "DYN_P", 150: "DYN_MP", 151: "DYN_MF", 152: "DYN_F", 153: "DYN_FF", 154: "DYN_FFF", 155: "DYN_SFZ", 156: "DYN_RFZ", 157: "DYN_SF", 158: "DYN_OTHER", 159: "DYN_FP", 160: "CMD_CRESC_BEGIN", 161: "CMD_DIM_BEGIN", 162: "CMD_DYNAMICS_END", 163: "CMD_SUSTAINON", 164: "CMD_SUSTAINOFF", 165: "~", 166: "(", 167: ")", 168: "[", 169: ":", 170: "CMD_CODA", 171: "CMD_SEGNO", 172: "CMD_GLISSANDO", 173: "CMD_ADDLYRICS", 175: "CMD_FIGURES", 177: "CMD_FIGURES_BELOW", 178: "CMD_FIGURES_ABOVE", 180: "FIG_OPEN", 182: "FIG_CLOSE", 184: "FIG_SKIP", 185: "FIG_NUMBER", 187: "FIG_DOT", 190: "FIG_BLANK", 192: "FIG_SHARP", 193: "FIG_FLAT", 194: "FIG_NATURAL", 196: "LYRIC_WORD", 197: "LYRIC_HYPHEN", 198: "LYRIC_SKIP", 199: "LYRIC_EXTENDER" },
54
+ productions_: [0, [3, 2], [4, 2], [4, 3], [4, 3], [4, 4], [4, 2], [4, 1], [8, 1], [8, 2], [6, 1], [6, 2], [6, 2], [6, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 4], [10, 3], [10, 3], [10, 3], [10, 3], [7, 1], [7, 3], [7, 2], [25, 1], [28, 0], [28, 1], [29, 1], [29, 1], [29, 2], [29, 2], [29, 2], [27, 1], [27, 4], [34, 0], [32, 1], [32, 3], [35, 2], [37, 0], [37, 2], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [46, 2], [47, 2], [48, 2], [48, 3], [48, 3], [49, 1], [45, 1], [39, 3], [39, 3], [39, 2], [39, 2], [56, 3], [61, 1], [61, 2], [59, 3], [59, 2], [59, 2], [59, 1], [64, 1], [64, 1], [64, 2], [64, 2], [57, 2], [69, 0], [69, 2], [40, 3], [40, 3], [40, 2], [40, 2], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [83, 1], [83, 1], [83, 1], [83, 1], [73, 2], [74, 3], [90, 1], [91, 1], [91, 1], [75, 4], [81, 1], [82, 1], [76, 2], [77, 5], [77, 2], [77, 4], [78, 2], [79, 3], [79, 4], [79, 1], [80, 1], [80, 1], [80, 1], [42, 4], [42, 2], [42, 2], [43, 7], [43, 7], [113, 1], [113, 1], [44, 9], [44, 8], [44, 7], [58, 0], [58, 2], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [126, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 2], [117, 2], [117, 2], [117, 2], [117, 2], [117, 2], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [119, 1], [119, 1], [119, 1], [120, 1], [120, 1], [121, 1], [122, 1], [122, 1], [123, 1], [123, 1], [124, 2], [125, 2], [125, 2], [127, 2], [128, 1], [129, 1], [129, 1], [130, 2], [131, 1], [30, 4], [31, 4], [31, 4], [31, 4], [176, 0], [176, 2], [179, 4], [179, 2], [183, 0], [183, 2], [186, 0], [186, 2], [181, 1], [181, 2], [188, 2], [188, 2], [188, 1], [189, 0], [189, 1], [191, 1], [191, 1], [191, 1], [174, 0], [174, 2], [195, 1], [195, 1], [195, 1], [195, 1]],
55
55
  performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
56
56
  var $0 = $$.length - 1;
57
57
  switch (yystate) {
@@ -71,15 +71,15 @@ var localGrammar = function() {
71
71
  this.$ = { metadata: void 0, measures: $$[$0] };
72
72
  break;
73
73
  case 10:
74
- case 102:
75
- case 119:
74
+ case 109:
75
+ case 126:
76
76
  this.$ = $$[$0];
77
77
  break;
78
78
  case 11:
79
79
  this.$ = mergeHeaders($$[$0 - 1], $$[$0]);
80
80
  break;
81
81
  case 12:
82
- case 66:
82
+ case 68:
83
83
  this.$ = $$[$0 - 1];
84
84
  break;
85
85
  case 13:
@@ -131,7 +131,7 @@ var localGrammar = function() {
131
131
  this.$ = $$[$0] ? $$[$0 - 2].concat([$$[$0]]) : $$[$0 - 2];
132
132
  break;
133
133
  case 29:
134
- case 35:
134
+ case 37:
135
135
  this.$ = $$[$0 - 1];
136
136
  break;
137
137
  case 30:
@@ -163,171 +163,203 @@ var localGrammar = function() {
163
163
  this.$ = measure($$[$0], currentKey, currentTimeSig, partialDur ? true : void 0);
164
164
  break;
165
165
  case 31:
166
- this.$ = void 0;
166
+ this.$ = { lyrics: [], figures: [] };
167
167
  break;
168
168
  case 32:
169
+ case 224:
169
170
  this.$ = $$[$0];
170
171
  break;
171
172
  case 33:
172
- case 67:
173
- case 118:
174
- this.$ = [$$[$0]];
173
+ this.$ = { lyrics: [$$[$0]], figures: [] };
175
174
  break;
176
175
  case 34:
177
- case 68:
178
- case 124:
179
- case 200:
180
- this.$ = $$[$0 - 1].concat([$$[$0]]);
176
+ this.$ = { lyrics: [], figures: [$$[$0]] };
181
177
  break;
182
- case 36:
183
- this.$ = [part($$[$0])];
178
+ case 35:
179
+ this.$ = { lyrics: $$[$0 - 1].lyrics.concat([$$[$0]]), figures: $$[$0 - 1].figures };
184
180
  break;
185
- case 37:
186
- this.$ = $$[$0 - 3].concat([part($$[$0])]);
181
+ case 36:
182
+ this.$ = { lyrics: $$[$0 - 1].lyrics, figures: $$[$0 - 1].figures.concat([$$[$0]]) };
187
183
  break;
188
184
  case 38:
189
- currentStaff = 1;
190
- currentOttava = 0;
185
+ this.$ = [part($$[$0])];
191
186
  break;
192
187
  case 39:
193
- this.$ = [voice(currentStaff, $$[$0].events, $$[$0].lyrics)];
188
+ this.$ = $$[$0 - 3].concat([part($$[$0])]);
194
189
  break;
195
190
  case 40:
196
- this.$ = $$[$0 - 2].concat([voice(currentStaff, $$[$0].events, $$[$0].lyrics)]);
191
+ currentStaff = 1;
192
+ currentOttava = 0;
197
193
  break;
198
194
  case 41:
199
- this.$ = { events: $$[$0 - 1], lyrics: $$[$0] };
195
+ this.$ = [voice(currentStaff, $$[$0].events, $$[$0].lyrics, $$[$0].figures)];
200
196
  break;
201
197
  case 42:
202
- case 123:
203
- case 199:
204
- this.$ = [];
198
+ this.$ = $$[$0 - 2].concat([voice(currentStaff, $$[$0].events, $$[$0].lyrics, $$[$0].figures)]);
205
199
  break;
206
200
  case 43:
201
+ this.$ = { events: $$[$0 - 1], lyrics: $$[$0].lyrics, figures: $$[$0].figures };
202
+ break;
203
+ case 44:
204
+ case 130:
205
+ case 210:
206
+ case 228:
207
+ this.$ = [];
208
+ break;
209
+ case 45:
207
210
  this.$ = $$[$0] === null ? $$[$0 - 1] : $$[$0 - 1].concat(Array.isArray($$[$0]) ? $$[$0] : [$$[$0]]);
208
211
  break;
209
- case 55:
212
+ case 57:
210
213
  this.$ = barlineEvent($$[$0].slice(1, -1));
211
214
  break;
212
- case 56:
215
+ case 58:
213
216
  this.$ = harmonyEvent($$[$0].slice(1, -1));
214
217
  break;
215
- case 57:
218
+ case 59:
216
219
  this.$ = markupEvent(unq($$[$0]));
217
220
  break;
218
- case 58:
221
+ case 60:
219
222
  this.$ = markupEvent(unq($$[$0]), "above");
220
223
  break;
221
- case 59:
224
+ case 61:
222
225
  this.$ = markupEvent(unq($$[$0]), "below");
223
226
  break;
224
- case 60:
227
+ case 62:
225
228
  this.$ = dynamicEvent($$[$0].type);
226
229
  break;
227
- case 61:
230
+ case 63:
228
231
  this.$ = { type: "pitchReset" };
229
232
  break;
230
- case 62:
231
- case 63:
233
+ case 64:
234
+ case 65:
232
235
  currentDuration = $$[$0 - 1];
233
236
  this.$ = noteEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
234
237
  break;
235
- case 64:
236
- case 65:
238
+ case 66:
239
+ case 67:
237
240
  this.$ = noteEvent($$[$0 - 1], currentDuration, $$[$0]);
238
241
  break;
239
242
  case 69:
240
- this.$ = { ...parsePitch($$[$0 - 2], $$[$0 - 1]), courtesy: true };
243
+ case 125:
244
+ case 218:
245
+ this.$ = [$$[$0]];
241
246
  break;
242
247
  case 70:
243
- this.$ = { ...parsePitch($$[$0 - 1], 0), courtesy: true };
248
+ case 131:
249
+ case 211:
250
+ case 219:
251
+ case 229:
252
+ this.$ = $$[$0 - 1].concat([$$[$0]]);
244
253
  break;
245
254
  case 71:
246
- this.$ = parsePitch($$[$0 - 1], $$[$0]);
255
+ this.$ = { ...parsePitch($$[$0 - 2], $$[$0 - 1]), courtesy: true };
247
256
  break;
248
257
  case 72:
249
- this.$ = parsePitch($$[$0], 0);
258
+ this.$ = { ...parsePitch($$[$0 - 1], 0), courtesy: true };
250
259
  break;
251
260
  case 73:
252
- this.$ = 1;
261
+ this.$ = parsePitch($$[$0 - 1], $$[$0]);
253
262
  break;
254
263
  case 74:
255
- this.$ = -1;
264
+ this.$ = parsePitch($$[$0], 0);
256
265
  break;
257
266
  case 75:
258
- this.$ = $$[$0 - 1] + 1;
267
+ this.$ = 1;
259
268
  break;
260
269
  case 76:
261
- this.$ = $$[$0 - 1] - 1;
270
+ this.$ = -1;
262
271
  break;
263
272
  case 77:
264
- this.$ = duration(Number($$[$0 - 1]), $$[$0]);
273
+ this.$ = $$[$0 - 1] + 1;
265
274
  break;
266
275
  case 78:
267
- this.$ = 0;
276
+ this.$ = $$[$0 - 1] - 1;
268
277
  break;
269
278
  case 79:
270
- this.$ = $$[$0 - 1] + 1;
279
+ this.$ = duration(Number($$[$0 - 1]), $$[$0]);
271
280
  break;
272
281
  case 80:
282
+ case 216:
283
+ this.$ = 0;
284
+ break;
285
+ case 81:
286
+ case 217:
287
+ this.$ = $$[$0 - 1] + 1;
288
+ break;
289
+ case 82:
273
290
  currentDuration = $$[$0 - 1];
274
291
  this.$ = restEvent($$[$0 - 1], { fullMeasure: $$[$0 - 2] === "R" });
275
292
  break;
276
- case 81:
293
+ case 83:
277
294
  currentDuration = $$[$0 - 1];
278
295
  this.$ = restEvent($$[$0 - 1], { invisible: true });
279
296
  break;
280
- case 82:
297
+ case 84:
281
298
  this.$ = restEvent(currentDuration, { fullMeasure: $$[$0 - 1] === "R" });
282
299
  break;
283
- case 83:
300
+ case 85:
284
301
  this.$ = restEvent(currentDuration, { invisible: true });
285
302
  break;
286
- case 84:
303
+ case 86:
287
304
  this.$ = contextChange({ clef: $$[$0] });
288
305
  break;
289
- case 85:
306
+ case 87:
290
307
  this.$ = contextChange({ key: $$[$0] });
291
308
  break;
292
- case 86:
309
+ case 88:
293
310
  this.$ = contextChange({ time: $$[$0] });
294
311
  break;
295
- case 87:
312
+ case 89:
296
313
  this.$ = contextChange({ partial: $$[$0] });
297
314
  break;
298
- case 88:
315
+ case 90:
299
316
  this.$ = contextChange({ tempo: $$[$0] });
300
317
  break;
301
- case 89:
318
+ case 91:
302
319
  this.$ = contextChange({ staff: $$[$0] });
303
320
  break;
304
- case 90:
321
+ case 92:
305
322
  this.$ = contextChange({ ottava: $$[$0] });
306
323
  break;
307
- case 91:
324
+ case 93:
308
325
  this.$ = contextChange({ stemDirection: $$[$0] });
309
326
  break;
310
- case 92:
311
- case 93:
327
+ case 94:
328
+ case 95:
312
329
  this.$ = null;
313
330
  break;
314
- case 94:
331
+ case 96:
332
+ this.$ = contextChange({ omit: $$[$0] });
333
+ break;
334
+ case 97:
335
+ this.$ = { timeSignature: true };
336
+ break;
337
+ case 98:
338
+ this.$ = { timeSignature: false };
339
+ break;
340
+ case 99:
341
+ this.$ = { barLine: true };
342
+ break;
343
+ case 100:
344
+ this.$ = { barLine: false };
345
+ break;
346
+ case 101:
315
347
  this.$ = $$[$0].slice(1, -1);
316
348
  break;
317
- case 95:
349
+ case 102:
318
350
  currentKey = keySignature($$[$0 - 1].phonet, $$[$0 - 1].accidental, $$[$0]);
319
351
  this.$ = currentKey;
320
352
  break;
321
- case 96:
353
+ case 103:
322
354
  this.$ = parsePitchName($$[$0]);
323
355
  break;
324
- case 97:
356
+ case 104:
325
357
  this.$ = "major";
326
358
  break;
327
- case 98:
359
+ case 105:
328
360
  this.$ = "minor";
329
361
  break;
330
- case 99:
362
+ case 106:
331
363
  const num = Number($$[$0 - 2]);
332
364
  const den = Number($$[$0]);
333
365
  const timeSig = fraction(num, den);
@@ -341,237 +373,280 @@ var localGrammar = function() {
341
373
  currentTimeSig = timeSig;
342
374
  this.$ = currentTimeSig;
343
375
  break;
344
- case 100:
376
+ case 107:
345
377
  numericTimeSignature = true;
346
378
  this.$ = null;
347
379
  break;
348
- case 101:
380
+ case 108:
349
381
  numericTimeSignature = false;
350
382
  this.$ = null;
351
383
  break;
352
- case 103:
384
+ case 110:
353
385
  this.$ = { text: unq($$[$0 - 3]), beat: $$[$0 - 2], bpm: Number($$[$0]) };
354
386
  break;
355
- case 104:
387
+ case 111:
356
388
  this.$ = { text: unq($$[$0]) };
357
389
  break;
358
- case 105:
390
+ case 112:
359
391
  this.$ = { beat: $$[$0 - 2], bpm: Number($$[$0]) };
360
392
  break;
361
- case 106:
393
+ case 113:
362
394
  currentStaff = Number($$[$0].slice(1, -1));
363
395
  this.$ = currentStaff;
364
396
  break;
365
- case 107:
397
+ case 114:
366
398
  currentOttava = Number($$[$0]);
367
399
  this.$ = currentOttava;
368
400
  break;
369
- case 108:
401
+ case 115:
370
402
  currentOttava = -Number($$[$0]);
371
403
  this.$ = currentOttava;
372
404
  break;
373
- case 109:
405
+ case 116:
374
406
  currentOttava = 0;
375
407
  this.$ = 0;
376
408
  break;
377
- case 110:
409
+ case 117:
378
410
  this.$ = "up";
379
411
  break;
380
- case 111:
412
+ case 118:
381
413
  this.$ = "down";
382
414
  break;
383
- case 112:
415
+ case 119:
384
416
  this.$ = "auto";
385
417
  break;
386
- case 113:
418
+ case 120:
387
419
  this.$ = $$[$0 - 1].map((e) => e.type === "note" || e.type === "rest" ? { ...e, grace: true } : e);
388
420
  break;
389
- case 114:
390
- case 115:
421
+ case 121:
422
+ case 122:
391
423
  this.$ = { ...$$[$0], grace: true };
392
424
  break;
393
- case 116:
425
+ case 123:
394
426
  this.$ = timesEvent(fraction(Number($$[$0 - 5]), Number($$[$0 - 3])), $$[$0 - 1].filter((e) => e.type === "note" || e.type === "rest" || e.type === "context"));
395
427
  break;
396
- case 117:
428
+ case 124:
397
429
  this.$ = tupletEvent(fraction(Number($$[$0 - 3]), Number($$[$0 - 5])), $$[$0 - 1].filter((e) => e.type === "note" || e.type === "rest" || e.type === "context"));
398
430
  break;
399
- case 120:
431
+ case 127:
400
432
  currentDuration = $$[$0 - 3];
401
433
  this.$ = tremoloEvent($$[$0 - 4], $$[$0 - 2], Number($$[$0 - 6]), $$[$0 - 3].division);
402
434
  break;
403
- case 121:
435
+ case 128:
404
436
  currentDuration = $$[$0 - 2];
405
437
  this.$ = tremoloEvent($$[$0 - 3], $$[$0 - 1], Number($$[$0 - 5]), $$[$0 - 2].division);
406
438
  break;
407
- case 122:
439
+ case 129:
408
440
  this.$ = tremoloEvent($$[$0 - 2], $$[$0 - 1], Number($$[$0 - 4]), currentDuration.division);
409
441
  break;
410
- case 141:
442
+ case 148:
411
443
  this.$ = { pitchedRest: true };
412
444
  break;
413
- case 142:
414
- case 148:
445
+ case 149:
415
446
  case 155:
447
+ case 162:
416
448
  this.$ = articulation("staccato");
417
449
  break;
418
- case 143:
419
- case 152:
450
+ case 150:
451
+ case 159:
420
452
  this.$ = articulation("staccatissimo");
421
453
  break;
422
- case 144:
423
- case 153:
424
- case 156:
454
+ case 151:
455
+ case 160:
456
+ case 163:
425
457
  this.$ = articulation("tenuto");
426
458
  break;
427
- case 145:
428
- case 150:
459
+ case 152:
429
460
  case 157:
461
+ case 164:
430
462
  this.$ = articulation("marcato");
431
463
  break;
432
- case 146:
433
- case 151:
434
- case 154:
464
+ case 153:
465
+ case 158:
466
+ case 161:
435
467
  this.$ = articulation("accent");
436
468
  break;
437
- case 147:
438
- case 149:
439
- case 158:
469
+ case 154:
470
+ case 156:
471
+ case 165:
440
472
  this.$ = articulation("portato");
441
473
  break;
442
- case 159:
474
+ case 166:
443
475
  this.$ = ornament("trill");
444
476
  break;
445
- case 160:
477
+ case 167:
446
478
  this.$ = ornament("turn");
447
479
  break;
448
- case 161:
480
+ case 168:
449
481
  this.$ = ornament("mordent");
450
482
  break;
451
- case 162:
483
+ case 169:
452
484
  this.$ = ornament("prall");
453
485
  break;
454
- case 163:
486
+ case 170:
455
487
  this.$ = ornament("fermata");
456
488
  break;
457
- case 164:
489
+ case 171:
458
490
  this.$ = ornament("shortFermata");
459
491
  break;
460
- case 165:
492
+ case 172:
461
493
  this.$ = ornament("arpeggio");
462
494
  break;
463
- case 166:
495
+ case 173:
464
496
  this.$ = ornament("breath");
465
497
  break;
466
- case 167:
498
+ case 174:
467
499
  this.$ = dynamic("ppp");
468
500
  break;
469
- case 168:
501
+ case 175:
470
502
  this.$ = dynamic("pp");
471
503
  break;
472
- case 169:
504
+ case 176:
473
505
  this.$ = dynamic("p");
474
506
  break;
475
- case 170:
507
+ case 177:
476
508
  this.$ = dynamic("mp");
477
509
  break;
478
- case 171:
510
+ case 178:
479
511
  this.$ = dynamic("mf");
480
512
  break;
481
- case 172:
513
+ case 179:
482
514
  this.$ = dynamic("f");
483
515
  break;
484
- case 173:
516
+ case 180:
485
517
  this.$ = dynamic("ff");
486
518
  break;
487
- case 174:
519
+ case 181:
488
520
  this.$ = dynamic("fff");
489
521
  break;
490
- case 175:
491
- case 177:
522
+ case 182:
492
523
  this.$ = dynamic("sfz");
493
524
  break;
494
- case 176:
525
+ case 183:
495
526
  this.$ = dynamic("rfz");
496
527
  break;
497
- case 178:
528
+ case 184:
529
+ this.$ = dynamic("sf");
530
+ break;
531
+ case 185:
532
+ this.$ = dynamic($$[$0].slice(1).toLowerCase());
533
+ break;
534
+ case 186:
498
535
  this.$ = dynamic("fp");
499
536
  break;
500
- case 179:
537
+ case 187:
501
538
  this.$ = hairpin("crescendoStart");
502
539
  break;
503
- case 180:
540
+ case 188:
504
541
  this.$ = hairpin("diminuendoStart");
505
542
  break;
506
- case 181:
543
+ case 189:
507
544
  this.$ = hairpin("crescendoEnd");
508
545
  break;
509
- case 182:
546
+ case 190:
510
547
  this.$ = pedal("sustainOn");
511
548
  break;
512
- case 183:
549
+ case 191:
513
550
  this.$ = pedal("sustainOff");
514
551
  break;
515
- case 184:
552
+ case 192:
516
553
  this.$ = tie(true);
517
554
  break;
518
- case 185:
555
+ case 193:
519
556
  this.$ = slur(true);
520
557
  break;
521
- case 186:
558
+ case 194:
522
559
  this.$ = slur(false);
523
560
  break;
524
- case 187:
561
+ case 195:
525
562
  this.$ = beam(true);
526
563
  break;
527
- case 188:
564
+ case 196:
528
565
  this.$ = beam(false);
529
566
  break;
530
- case 189:
567
+ case 197:
531
568
  this.$ = { tremolo: Number($$[$0]) };
532
569
  break;
533
- case 190:
570
+ case 198:
534
571
  this.$ = { ...$$[$0], placement: "above" };
535
572
  break;
536
- case 191:
573
+ case 199:
537
574
  this.$ = { ...$$[$0], placement: "below" };
538
575
  break;
539
- case 192:
540
- case 193:
576
+ case 200:
577
+ case 201:
541
578
  const n = Number($$[$0]);
542
579
  if (n >= 1 && n <= 5) this.$ = fingering(n);
543
580
  else this.$ = null;
544
581
  break;
545
- case 194:
582
+ case 202:
546
583
  this.$ = navigation("coda");
547
584
  break;
548
- case 195:
585
+ case 203:
549
586
  this.$ = navigation("segno");
550
587
  break;
551
- case 196:
588
+ case 204:
552
589
  this.$ = markupMark(unq($$[$0]));
553
590
  break;
554
- case 197:
591
+ case 205:
555
592
  this.$ = glissando();
556
593
  break;
557
- case 198:
594
+ case 206:
558
595
  this.$ = addlyricsLane($$[$0 - 1]);
559
596
  break;
560
- case 201:
597
+ case 207:
598
+ case 208:
599
+ this.$ = figuresLane("below", $$[$0 - 1]);
600
+ break;
601
+ case 209:
602
+ this.$ = figuresLane("above", $$[$0 - 1]);
603
+ break;
604
+ case 212:
605
+ this.$ = { lines: $$[$0 - 2], duration: $$[$0] };
606
+ break;
607
+ case 213:
608
+ this.$ = { duration: $$[$0] };
609
+ break;
610
+ case 214:
611
+ case 223:
612
+ this.$ = void 0;
613
+ break;
614
+ case 215:
615
+ this.$ = { division: Number($$[$0 - 1]), dots: $$[$0] };
616
+ break;
617
+ case 220:
618
+ this.$ = $$[$0] ? { number: Number($$[$0 - 1]), accidental: $$[$0] } : { number: Number($$[$0 - 1]) };
619
+ break;
620
+ case 221:
621
+ this.$ = $$[$0] ? { accidental: $$[$0] } : {};
622
+ break;
623
+ case 222:
624
+ this.$ = { accidental: $$[$0] };
625
+ break;
626
+ case 225:
627
+ this.$ = "sharp";
628
+ break;
629
+ case 226:
630
+ this.$ = "flat";
631
+ break;
632
+ case 227:
633
+ this.$ = "natural";
634
+ break;
635
+ case 230:
561
636
  this.$ = { text: $$[$0].charAt(0) === '"' ? unq($$[$0]) : $$[$0] };
562
637
  break;
563
- case 202:
638
+ case 231:
564
639
  this.$ = { hyphen: true };
565
640
  break;
566
- case 203:
641
+ case 232:
567
642
  this.$ = { skip: true };
568
643
  break;
569
- case 204:
644
+ case 233:
570
645
  this.$ = { extend: true };
571
646
  break;
572
647
  }
573
648
  },
574
- table: [o($V0, $V1, { 3: 1, 4: 2, 6: 3, 8: 4, 7: 5, 10: 6, 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 9: [1, 7], 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 1: [3] }, { 5: [1, 25] }, o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 7: 26, 8: 27, 10: 28, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 10: 6, 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 6: 30, 7: 31, 9: $Vf, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 7], 26: $Vg }, o($Vh, [2, 10]), o($Vh, [2, 8]), o($Vi, [2, 27]), { 12: [1, 34] }, { 12: [1, 35] }, { 12: [1, 36] }, { 12: [1, 37] }, { 12: [1, 38] }, { 12: [1, 39] }, { 12: [1, 40] }, { 12: [1, 41] }, { 12: [1, 42] }, { 12: [1, 43] }, { 12: [1, 44] }, { 12: [1, 45] }, o($Vi, [2, 30], { 32: [1, 46] }), o($Vj, [2, 36], { 35: $Vk }), o($Vl, [2, 39]), o($Vl, [2, 31], { 28: 48, 37: 49, 29: 50, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 30: 62, 55: 63, 58: 64, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 54: 87, 9: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 166: $VY }), { 1: [2, 1] }, { 5: [2, 2], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 7: 115, 9: $Vf }), o($Vh, [2, 11]), o($VZ, [2, 12], { 10: 116, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 10: 28, 7: 117, 8: 118, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 6], 26: $Vg }, o($Vh, [2, 9]), o([9, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V1, { 27: 21, 31: 22, 34: 23, 36: 24, 25: 119, 5: $V_, 26: $V_ }), { 13: [1, 120] }, { 13: [1, 121] }, { 13: [1, 122] }, { 13: [1, 123] }, { 13: [1, 124] }, { 13: [1, 125] }, { 13: [1, 126] }, { 12: [1, 128], 13: [1, 127] }, { 13: [1, 129] }, { 13: [1, 130] }, { 13: [1, 131] }, { 13: [1, 132] }, o($VZ, [2, 38], { 33: 133 }), o($VZ, $V1, { 36: 24, 34: 134 }), o($Vl, [2, 41]), o($V$, [2, 43]), o($Vl, [2, 32], { 30: 135, 9: [1, 136], 166: $VY }), o($V$, [2, 44]), o($V$, [2, 45]), o($V$, [2, 46]), o($V$, [2, 47]), o($V$, [2, 48]), o($V$, [2, 49]), o($V$, [2, 50]), o($V$, [2, 51]), o($V$, [2, 52]), o($V$, [2, 53]), o($V$, [2, 54]), o($V01, [2, 33]), o($V11, $V21, { 56: 137, 57: 138, 67: $V31 }), o($V11, $V21, { 56: 140, 57: 141, 67: $V31 }), o($V11, $V21, { 56: 142, 57: 143, 67: $V31 }), o($V11, $V21, { 56: 144, 57: 145, 67: $V31 }), o($V$, [2, 84]), o($V$, [2, 85]), o($V$, [2, 86]), o($V$, [2, 87]), o($V$, [2, 88]), o($V$, [2, 89]), o($V$, [2, 90]), o($V$, [2, 91]), o($V$, [2, 92]), o($V$, [2, 93]), { 38: 147, 39: 148, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 103: [1, 146] }, { 67: [1, 149] }, { 67: [1, 150] }, { 109: [1, 151] }, o($V$, [2, 61]), { 12: [1, 152] }, { 12: [1, 153] }, { 12: [1, 154] }, { 51: [1, 155] }, { 51: [1, 156] }, o($V$, [2, 60]), { 103: [1, 157] }, { 58: 159, 60: 158, 62: $Vt }, o($V41, [2, 72], { 63: 160, 64: [1, 161], 65: [1, 162], 66: [1, 163] }), { 12: [1, 164] }, { 62: [1, 166], 84: 165 }, { 67: [1, 167] }, { 56: 168, 67: $V31 }, { 12: [1, 169], 56: 170, 67: $V31 }, { 12: [1, 171] }, o($V$, [2, 109], { 97: [1, 172] }), o($V$, [2, 110]), o($V$, [2, 111]), o($V$, [2, 112]), o($V$, [2, 100]), o($V$, [2, 101]), o($V41, [2, 167]), o($V41, [2, 168]), o($V41, [2, 169]), o($V41, [2, 170]), o($V41, [2, 171]), o($V41, [2, 172]), o($V41, [2, 173]), o($V41, [2, 174]), o($V41, [2, 175]), o($V41, [2, 176]), o($V41, [2, 177]), o($V41, [2, 178]), { 5: [2, 3], 26: $Vg }, o($Vh, [2, 13]), { 5: [2, 4], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 7: 173, 9: $Vf }), o($Vi, [2, 28]), o($Vh, [2, 14]), o($Vh, [2, 15]), o($Vh, [2, 16]), o($Vh, [2, 17]), o($Vh, [2, 18]), o($Vh, [2, 19]), o($Vh, [2, 20]), o($Vh, [2, 21]), { 13: [1, 174] }, o($Vh, [2, 23]), o($Vh, [2, 24]), o($Vh, [2, 25]), o($Vh, [2, 26]), o($VZ, $V1, { 34: 23, 36: 24, 31: 175 }), o($Vl, [2, 40]), o($V01, [2, 34]), o($V01, [2, 35]), o($V41, $V21, { 57: 176 }), o($V51, [2, 64], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($VG1, [2, 78], { 68: 230 }), o($V41, $V21, { 57: 231 }), o($V51, [2, 65], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, $V21, { 57: 232 }), o($V51, [2, 82], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, $V21, { 57: 233 }), o($V51, [2, 83], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($VH1, $V1, { 36: 234 }), o($V$, [2, 114]), o($V$, [2, 115]), { 89: [1, 235] }, { 89: [1, 236] }, { 67: [1, 237] }, o($V$, [2, 55]), o($V$, [2, 56]), o($V$, [2, 57]), { 12: [1, 238] }, { 12: [1, 239] }, o($VI1, [2, 199], { 167: 240 }), { 58: 242, 61: [1, 241], 62: $Vt }, o($VJ1, [2, 67]), o($V41, [2, 71], { 64: [1, 243], 65: [1, 244], 66: [1, 245] }), o($V41, [2, 70]), o($VK1, [2, 73]), o($VK1, [2, 74]), o($V$, [2, 94]), { 85: 246, 86: [1, 247], 87: [1, 248] }, o([86, 87], [2, 96]), { 89: [1, 249] }, o($V$, [2, 102]), o($V$, [2, 104], { 56: 250, 67: $V31 }), { 94: [1, 251] }, o($V$, [2, 106]), { 67: [1, 252], 98: [1, 253] }, { 5: [2, 5], 26: $Vg }, o($Vh, [2, 22]), o($Vj, [2, 37], { 35: $Vk }), o($V51, [2, 62], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, [2, 124]), o($V41, [2, 125]), o($V41, [2, 126]), o($V41, [2, 127]), o($V41, [2, 128]), o($V41, [2, 129]), o($V41, [2, 130]), o($V41, [2, 131]), o($V41, [2, 132]), o($V41, [2, 133]), o($V41, [2, 134]), o($V41, [2, 135]), o($V41, [2, 136]), o($V41, [2, 137]), o($V41, [2, 138]), o($V41, [2, 139]), o($V41, [2, 140]), o($V41, [2, 142]), o($V41, [2, 143]), o($V41, [2, 144]), o($V41, [2, 145]), o($V41, [2, 146]), o($V41, [2, 147]), o([5, 9, 13, 26, 32, 35, 49, 50, 51, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], [2, 156], { 52: [1, 256], 53: [1, 255], 61: [1, 257], 64: [1, 258], 67: [1, 260], 69: [1, 254], 98: [1, 259] }), o($V41, [2, 154]), o($V41, [2, 155]), o($V51, [2, 157], { 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 110: 261, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V51, [2, 158], { 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 110: 262, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, [2, 159]), o($V41, [2, 160]), o($V41, [2, 161]), o($V41, [2, 162]), o($V41, [2, 163]), o($V41, [2, 164]), o($V41, [2, 165]), o($V41, [2, 166]), o($V41, [2, 179]), o($V41, [2, 180]), o($V41, [2, 181]), o($V41, [2, 182]), o($V41, [2, 183]), o($V41, [2, 184]), o($V41, [2, 185]), o($V41, [2, 186]), o($V41, [2, 187]), o($V41, [2, 188]), { 67: [1, 263] }, o($V41, [2, 141]), o($V41, [2, 193]), o($V41, [2, 194]), o($V41, [2, 195]), { 12: [1, 264] }, o($V41, [2, 197]), o([5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 67, 70, 71, 82, 83, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], [2, 77], { 69: [1, 265] }), o($V51, [2, 63], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V51, [2, 80], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V51, [2, 81], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), { 9: $Vm, 37: 49, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: 87, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 104: [1, 266], 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX }, { 67: [1, 267] }, { 67: [1, 268] }, { 103: [1, 269] }, o($V$, [2, 58]), o($V$, [2, 59]), { 104: [1, 270], 168: 271, 169: [1, 272], 170: [1, 273], 171: [1, 274], 172: [1, 275] }, o($V41, [2, 66]), o($VJ1, [2, 68]), o($V41, [2, 69]), o($VK1, [2, 75]), o($VK1, [2, 76]), o($V$, [2, 95]), o($V$, [2, 97]), o($V$, [2, 98]), { 67: [1, 276] }, { 94: [1, 277] }, { 67: [1, 278] }, o($V$, [2, 107]), { 67: [1, 279] }, o($V41, [2, 148]), o($V41, [2, 149]), o($V41, [2, 150]), o($V41, [2, 151]), o($V41, [2, 152]), o($V41, [2, 153]), o($V41, [2, 192]), o($V41, [2, 190]), o($V41, [2, 191]), o($V41, [2, 189]), o($V41, [2, 196]), o($VG1, [2, 79]), o($V$, [2, 113]), { 103: [1, 280] }, { 103: [1, 281] }, { 55: 284, 58: 283, 59: $Vs, 62: $Vt, 107: 282 }, o($V01, [2, 198]), o($VI1, [2, 200]), o($VI1, [2, 201]), o($VI1, [2, 202]), o($VI1, [2, 203]), o($VI1, [2, 204]), o($V$, [2, 99]), { 67: [1, 285] }, o($V$, [2, 105]), o($V$, [2, 108]), o($VH1, $V1, { 36: 286 }), o($VH1, $V1, { 36: 287 }), { 55: 284, 56: 288, 58: 283, 59: $Vs, 62: $Vt, 67: $V31, 107: 289 }, o($VL1, [2, 118]), o($VL1, [2, 119]), o($V$, [2, 103]), { 9: $Vm, 37: 49, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: 87, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 104: [1, 290], 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX }, { 9: $Vm, 37: 49, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: 87, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 104: [1, 291], 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX }, { 55: 284, 58: 283, 59: $Vs, 62: $Vt, 107: 292 }, { 104: [1, 293] }, o($V$, [2, 116]), o($V$, [2, 117]), { 56: 294, 67: $V31, 104: [1, 295] }, o($V$, [2, 122]), { 104: [1, 296] }, o($V$, [2, 121]), o($V$, [2, 120])],
649
+ table: [o($V0, $V1, { 3: 1, 4: 2, 6: 3, 8: 4, 7: 5, 10: 6, 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 9: [1, 7], 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 1: [3] }, { 5: [1, 25] }, o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 7: 26, 8: 27, 10: 28, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 10: 6, 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 6: 30, 7: 31, 9: $Vf, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 7], 26: $Vg }, o($Vh, [2, 10]), o($Vh, [2, 8]), o($Vi, [2, 27]), { 12: [1, 34] }, { 12: [1, 35] }, { 12: [1, 36] }, { 12: [1, 37] }, { 12: [1, 38] }, { 12: [1, 39] }, { 12: [1, 40] }, { 12: [1, 41] }, { 12: [1, 42] }, { 12: [1, 43] }, { 12: [1, 44] }, { 12: [1, 45] }, o($Vi, [2, 30], { 33: [1, 46] }), o($Vj, [2, 38], { 36: $Vk }), o($Vl, [2, 41]), o($Vl, [2, 31], { 28: 48, 38: 49, 29: 50, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 30: 62, 31: 63, 56: 64, 59: 65, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 55: 89, 9: $Vm, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 173: $V11, 175: $V21, 177: $V31, 178: $V41 }), { 1: [2, 1] }, { 5: [2, 2], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 7: 125, 9: $Vf }), o($Vh, [2, 11]), o($V51, [2, 12], { 10: 126, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 10: 28, 7: 127, 8: 128, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 6], 26: $Vg }, o($Vh, [2, 9]), o([9, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V1, { 27: 21, 32: 22, 35: 23, 37: 24, 25: 129, 5: $V61, 26: $V61 }), { 13: [1, 130] }, { 13: [1, 131] }, { 13: [1, 132] }, { 13: [1, 133] }, { 13: [1, 134] }, { 13: [1, 135] }, { 13: [1, 136] }, { 12: [1, 138], 13: [1, 137] }, { 13: [1, 139] }, { 13: [1, 140] }, { 13: [1, 141] }, { 13: [1, 142] }, o($V51, [2, 40], { 34: 143 }), o($V51, $V1, { 37: 24, 35: 144 }), o($Vl, [2, 43]), o($V71, [2, 45]), o($Vl, [2, 32], { 30: 145, 31: 146, 9: [1, 147], 173: $V11, 175: $V21, 177: $V31, 178: $V41 }), o($V71, [2, 46]), o($V71, [2, 47]), o($V71, [2, 48]), o($V71, [2, 49]), o($V71, [2, 50]), o($V71, [2, 51]), o($V71, [2, 52]), o($V71, [2, 53]), o($V71, [2, 54]), o($V71, [2, 55]), o($V71, [2, 56]), o($V81, [2, 33]), o($V81, [2, 34]), o($V91, $Va1, { 57: 148, 58: 149, 68: $Vb1 }), o($V91, $Va1, { 57: 151, 58: 152, 68: $Vb1 }), o($V91, $Va1, { 57: 153, 58: 154, 68: $Vb1 }), o($V91, $Va1, { 57: 155, 58: 156, 68: $Vb1 }), o($V71, [2, 86]), o($V71, [2, 87]), o($V71, [2, 88]), o($V71, [2, 89]), o($V71, [2, 90]), o($V71, [2, 91]), o($V71, [2, 92]), o($V71, [2, 93]), o($V71, [2, 94]), o($V71, [2, 95]), o($V71, [2, 96]), { 39: 158, 40: 159, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 109: [1, 157] }, { 68: [1, 160] }, { 68: [1, 161] }, { 115: [1, 162] }, o($V71, [2, 63]), { 12: [1, 163] }, { 12: [1, 164] }, { 12: [1, 165] }, { 52: [1, 166] }, { 52: [1, 167] }, o($V71, [2, 62]), { 109: [1, 168] }, { 109: [1, 169] }, { 109: [1, 170] }, { 109: [1, 171] }, { 59: 173, 61: 172, 63: $Vt }, o($Vc1, [2, 74], { 64: 174, 65: [1, 175], 66: [1, 176], 67: [1, 177] }), { 12: [1, 178] }, { 63: [1, 180], 90: 179 }, { 68: [1, 181] }, { 57: 182, 68: $Vb1 }, { 12: [1, 183], 57: 184, 68: $Vb1 }, { 12: [1, 185] }, o($V71, [2, 116], { 103: [1, 186] }), o($V71, [2, 117]), o($V71, [2, 118]), o($V71, [2, 119]), o($V71, [2, 107]), o($V71, [2, 108]), o($V71, [2, 97]), o($V71, [2, 98]), o($V71, [2, 99]), o($V71, [2, 100]), o($Vc1, [2, 174]), o($Vc1, [2, 175]), o($Vc1, [2, 176]), o($Vc1, [2, 177]), o($Vc1, [2, 178]), o($Vc1, [2, 179]), o($Vc1, [2, 180]), o($Vc1, [2, 181]), o($Vc1, [2, 182]), o($Vc1, [2, 183]), o($Vc1, [2, 184]), o($Vc1, [2, 185]), o($Vc1, [2, 186]), { 5: [2, 3], 26: $Vg }, o($Vh, [2, 13]), { 5: [2, 4], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 7: 187, 9: $Vf }), o($Vi, [2, 28]), o($Vh, [2, 14]), o($Vh, [2, 15]), o($Vh, [2, 16]), o($Vh, [2, 17]), o($Vh, [2, 18]), o($Vh, [2, 19]), o($Vh, [2, 20]), o($Vh, [2, 21]), { 13: [1, 188] }, o($Vh, [2, 23]), o($Vh, [2, 24]), o($Vh, [2, 25]), o($Vh, [2, 26]), o($V51, $V1, { 35: 23, 37: 24, 32: 189 }), o($Vl, [2, 42]), o($V81, [2, 35]), o($V81, [2, 36]), o($V81, [2, 37]), o($Vc1, $Va1, { 58: 190 }), o($Vd1, [2, 66], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($VO1, [2, 80], { 69: 244 }), o($Vc1, $Va1, { 58: 245 }), o($Vd1, [2, 67], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, $Va1, { 58: 246 }), o($Vd1, [2, 84], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, $Va1, { 58: 247 }), o($Vd1, [2, 85], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($VP1, $V1, { 37: 248 }), o($V71, [2, 121]), o($V71, [2, 122]), { 95: [1, 249] }, { 95: [1, 250] }, { 68: [1, 251] }, o($V71, [2, 57]), o($V71, [2, 58]), o($V71, [2, 59]), { 12: [1, 252] }, { 12: [1, 253] }, o($VQ1, [2, 228], { 174: 254 }), o($VR1, $VS1, { 176: 255 }), o($VR1, $VS1, { 176: 256 }), o($VR1, $VS1, { 176: 257 }), { 59: 259, 62: [1, 258], 63: $Vt }, o($VT1, [2, 69]), o($Vc1, [2, 73], { 65: [1, 260], 66: [1, 261], 67: [1, 262] }), o($Vc1, [2, 72]), o($VU1, [2, 75]), o($VU1, [2, 76]), o($V71, [2, 101]), { 91: 263, 92: [1, 264], 93: [1, 265] }, o([92, 93], [2, 103]), { 95: [1, 266] }, o($V71, [2, 109]), o($V71, [2, 111], { 57: 267, 68: $Vb1 }), { 100: [1, 268] }, o($V71, [2, 113]), { 68: [1, 269], 104: [1, 270] }, { 5: [2, 5], 26: $Vg }, o($Vh, [2, 22]), o($Vj, [2, 39], { 36: $Vk }), o($Vd1, [2, 64], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, [2, 131]), o($Vc1, [2, 132]), o($Vc1, [2, 133]), o($Vc1, [2, 134]), o($Vc1, [2, 135]), o($Vc1, [2, 136]), o($Vc1, [2, 137]), o($Vc1, [2, 138]), o($Vc1, [2, 139]), o($Vc1, [2, 140]), o($Vc1, [2, 141]), o($Vc1, [2, 142]), o($Vc1, [2, 143]), o($Vc1, [2, 144]), o($Vc1, [2, 145]), o($Vc1, [2, 146]), o($Vc1, [2, 147]), o($Vc1, [2, 149]), o($Vc1, [2, 150]), o($Vc1, [2, 151]), o($Vc1, [2, 152]), o($Vc1, [2, 153]), o($Vc1, [2, 154]), o([5, 9, 13, 26, 33, 36, 50, 51, 52, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], [2, 163], { 53: [1, 273], 54: [1, 272], 62: [1, 274], 65: [1, 275], 68: [1, 277], 70: [1, 271], 104: [1, 276] }), o($Vc1, [2, 161]), o($Vc1, [2, 162]), o($Vd1, [2, 164], { 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 116: 278, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vd1, [2, 165], { 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 116: 279, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, [2, 166]), o($Vc1, [2, 167]), o($Vc1, [2, 168]), o($Vc1, [2, 169]), o($Vc1, [2, 170]), o($Vc1, [2, 171]), o($Vc1, [2, 172]), o($Vc1, [2, 173]), o($Vc1, [2, 187]), o($Vc1, [2, 188]), o($Vc1, [2, 189]), o($Vc1, [2, 190]), o($Vc1, [2, 191]), o($Vc1, [2, 192]), o($Vc1, [2, 193]), o($Vc1, [2, 194]), o($Vc1, [2, 195]), o($Vc1, [2, 196]), { 68: [1, 280] }, o($Vc1, [2, 148]), o($Vc1, [2, 201]), o($Vc1, [2, 202]), o($Vc1, [2, 203]), { 12: [1, 281] }, o($Vc1, [2, 205]), o([5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 68, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], [2, 79], { 70: [1, 282] }), o($Vd1, [2, 65], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vd1, [2, 82], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vd1, [2, 83], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), { 9: $Vm, 38: 49, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 55: 89, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 110: [1, 283], 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01 }, { 68: [1, 284] }, { 68: [1, 285] }, { 109: [1, 286] }, o($V71, [2, 60]), o($V71, [2, 61]), { 110: [1, 287], 195: 288, 196: [1, 289], 197: [1, 290], 198: [1, 291], 199: [1, 292] }, { 110: [1, 293], 179: 294, 180: $VV1, 184: $VW1 }, { 110: [1, 297], 179: 294, 180: $VV1, 184: $VW1 }, { 110: [1, 298], 179: 294, 180: $VV1, 184: $VW1 }, o($Vc1, [2, 68]), o($VT1, [2, 70]), o($Vc1, [2, 71]), o($VU1, [2, 77]), o($VU1, [2, 78]), o($V71, [2, 102]), o($V71, [2, 104]), o($V71, [2, 105]), { 68: [1, 299] }, { 100: [1, 300] }, { 68: [1, 301] }, o($V71, [2, 114]), { 68: [1, 302] }, o($Vc1, [2, 155]), o($Vc1, [2, 156]), o($Vc1, [2, 157]), o($Vc1, [2, 158]), o($Vc1, [2, 159]), o($Vc1, [2, 160]), o($Vc1, [2, 200]), o($Vc1, [2, 198]), o($Vc1, [2, 199]), o($Vc1, [2, 197]), o($Vc1, [2, 204]), o($VO1, [2, 81]), o($V71, [2, 120]), { 109: [1, 303] }, { 109: [1, 304] }, { 56: 307, 59: 306, 60: $Vs, 63: $Vt, 113: 305 }, o($V81, [2, 206]), o($VQ1, [2, 229]), o($VQ1, [2, 230]), o($VQ1, [2, 231]), o($VQ1, [2, 232]), o($VQ1, [2, 233]), o($V81, [2, 207]), o($VR1, [2, 211]), { 181: 308, 185: $VX1, 188: 309, 190: $VY1, 191: 312, 192: $VZ1, 193: $V_1, 194: $V$1 }, o($VR1, $V02, { 183: 316, 185: $V12 }), o($V81, [2, 208]), o($V81, [2, 209]), o($V71, [2, 106]), { 68: [1, 318] }, o($V71, [2, 112]), o($V71, [2, 115]), o($VP1, $V1, { 37: 319 }), o($VP1, $V1, { 37: 320 }), { 56: 307, 57: 321, 59: 306, 60: $Vs, 63: $Vt, 68: $Vb1, 113: 322 }, o($V22, [2, 125]), o($V22, [2, 126]), { 182: [1, 323], 185: $VX1, 188: 324, 190: $VY1, 191: 312, 192: $VZ1, 193: $V_1, 194: $V$1 }, o($V32, [2, 218]), o($V42, $V52, { 189: 325, 191: 326, 192: $VZ1, 193: $V_1, 194: $V$1 }), o($V42, $V52, { 191: 326, 189: 327, 192: $VZ1, 193: $V_1, 194: $V$1 }), o($V32, [2, 222]), o($V32, [2, 225]), o($V32, [2, 226]), o($V32, [2, 227]), o($VR1, [2, 213]), o($V62, [2, 216], { 186: 328 }), o($V71, [2, 110]), { 9: $Vm, 38: 49, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 55: 89, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 110: [1, 329], 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01 }, { 9: $Vm, 38: 49, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 55: 89, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 110: [1, 330], 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01 }, { 56: 307, 59: 306, 60: $Vs, 63: $Vt, 113: 331 }, { 110: [1, 332] }, o($VR1, $V02, { 183: 333, 185: $V12 }), o($V32, [2, 219]), o($V32, [2, 220]), o($V32, [2, 224]), o($V32, [2, 221]), o($VR1, [2, 215], { 187: [1, 334] }), o($V71, [2, 123]), o($V71, [2, 124]), { 57: 335, 68: $Vb1, 110: [1, 336] }, o($V71, [2, 129]), o($VR1, [2, 212]), o($V62, [2, 217]), { 110: [1, 337] }, o($V71, [2, 128]), o($V71, [2, 127])],
575
650
  defaultActions: { 25: [2, 1] },
576
651
  parseError: function parseError(str, hash) {
577
652
  if (hash.recoverable) {
@@ -776,7 +851,31 @@ var localGrammar = function() {
776
851
  accidental: accidental || void 0,
777
852
  mode
778
853
  });
779
- const voice = (staff, events, lyrics) => {
854
+ const figuresLane = (placement, items) => {
855
+ let dur = { division: 4, dots: 0 };
856
+ const groups = items.map((it) => {
857
+ if (it.duration) dur = it.duration;
858
+ return it.lines ? { duration: dur, lines: it.lines } : { duration: dur };
859
+ });
860
+ return { placement, groups };
861
+ };
862
+ const clipFigures = (lane, events) => {
863
+ const voiceTicks = voiceEventTicks(events);
864
+ if (!(voiceTicks > 0)) return lane;
865
+ let at = 0;
866
+ const kept = [];
867
+ for (const g of lane.groups) {
868
+ if (at < voiceTicks) kept.push(g);
869
+ at += durationTicks(g.duration);
870
+ }
871
+ if (at > voiceTicks) {
872
+ const msg = `\\figures: ${at} ticks of figures but the voice has ${voiceTicks} ticks; ${lane.groups.length - kept.length} group(s) dropped`;
873
+ console.warn("[lilylet] " + msg);
874
+ parseWarnings.push({ type: "figures-overflow", message: msg, declared: at, actual: voiceTicks });
875
+ }
876
+ return { ...lane, groups: kept };
877
+ };
878
+ const voice = (staff, events, lyrics, figures) => {
780
879
  let leadingStaff = null;
781
880
  for (const e of events) {
782
881
  if (!e) continue;
@@ -791,10 +890,12 @@ var localGrammar = function() {
791
890
  break;
792
891
  }
793
892
  const lanes = lyrics && lyrics.length ? lyrics.map((lane, i) => ({ verse: i + 1, ...lane })) : void 0;
893
+ const figureLanes = figures && figures.length ? figures.map((lane) => clipFigures(lane, events)) : void 0;
794
894
  return {
795
895
  staff: leadingStaff != null ? leadingStaff : 1,
796
896
  events,
797
- lyrics: lanes
897
+ lyrics: lanes,
898
+ ...figureLanes ? { figures: figureLanes } : {}
798
899
  };
799
900
  };
800
901
  const part = (voices, name) => ({
@@ -1256,137 +1357,140 @@ var localGrammar = function() {
1256
1357
  return 12;
1257
1358
  break;
1258
1359
  case 17:
1259
- return 82;
1360
+ return 88;
1260
1361
  break;
1261
1362
  case 18:
1262
- return 83;
1363
+ return 89;
1263
1364
  break;
1264
1365
  case 19:
1265
- return 88;
1366
+ return 94;
1266
1367
  break;
1267
1368
  case 20:
1268
- return 92;
1369
+ return 98;
1269
1370
  break;
1270
1371
  case 21:
1271
- return 90;
1372
+ return 96;
1272
1373
  break;
1273
1374
  case 22:
1274
- return 91;
1375
+ return 85;
1275
1376
  break;
1276
1377
  case 23:
1277
- return 93;
1378
+ return 87;
1278
1379
  break;
1279
1380
  case 24:
1280
- return 95;
1381
+ return 84;
1281
1382
  break;
1282
1383
  case 25:
1283
- return 102;
1384
+ return 86;
1284
1385
  break;
1285
1386
  case 26:
1286
- return 105;
1387
+ return 97;
1287
1388
  break;
1288
1389
  case 27:
1289
- return 106;
1390
+ return 99;
1290
1391
  break;
1291
1392
  case 28:
1292
- return 108;
1393
+ return 101;
1293
1394
  break;
1294
1395
  case 29:
1295
- return 96;
1396
+ return 108;
1296
1397
  break;
1297
1398
  case 30:
1298
- return 99;
1399
+ return 111;
1299
1400
  break;
1300
1401
  case 31:
1301
- return 100;
1402
+ return 112;
1302
1403
  break;
1303
1404
  case 32:
1304
- return 101;
1405
+ return 114;
1305
1406
  break;
1306
1407
  case 33:
1307
- return 86;
1408
+ return 102;
1308
1409
  break;
1309
1410
  case 34:
1310
- return 87;
1411
+ return 105;
1311
1412
  break;
1312
1413
  case 35:
1313
- return 156;
1414
+ return 106;
1314
1415
  break;
1315
1416
  case 36:
1316
- return 157;
1417
+ return 107;
1317
1418
  break;
1318
1419
  case 37:
1319
- return 49;
1420
+ return 92;
1320
1421
  break;
1321
1422
  case 38:
1322
- return 163;
1423
+ return 93;
1323
1424
  break;
1324
1425
  case 39:
1325
- return 164;
1426
+ return 163;
1326
1427
  break;
1327
1428
  case 40:
1328
- return 50;
1429
+ return 164;
1329
1430
  break;
1330
1431
  case 41:
1331
- return 51;
1432
+ return 50;
1332
1433
  break;
1333
1434
  case 42:
1334
- this.pushState("lyric");
1335
- return 166;
1435
+ return 170;
1336
1436
  break;
1337
1437
  case 43:
1338
- return 153;
1438
+ return 171;
1339
1439
  break;
1340
1440
  case 44:
1341
- return 154;
1441
+ return 51;
1342
1442
  break;
1343
1443
  case 45:
1344
- return 155;
1444
+ return 52;
1345
1445
  break;
1346
1446
  case 46:
1347
- return 127;
1447
+ this.pushState("lyric");
1448
+ return 173;
1348
1449
  break;
1349
1450
  case 47:
1350
- return 128;
1451
+ this.pushState("figures");
1452
+ return 178;
1351
1453
  break;
1352
1454
  case 48:
1353
- return 129;
1455
+ this.pushState("figures");
1456
+ return 177;
1354
1457
  break;
1355
1458
  case 49:
1356
- return 130;
1459
+ this.pushState("figures");
1460
+ return 175;
1357
1461
  break;
1358
1462
  case 50:
1359
- return 131;
1463
+ return 160;
1360
1464
  break;
1361
1465
  case 51:
1362
- return 132;
1466
+ return 161;
1363
1467
  break;
1364
1468
  case 52:
1365
- return 133;
1469
+ return 162;
1366
1470
  break;
1367
1471
  case 53:
1368
- return 134;
1472
+ return 133;
1369
1473
  break;
1370
1474
  case 54:
1371
- return 135;
1475
+ return 134;
1372
1476
  break;
1373
1477
  case 55:
1374
- return 136;
1478
+ return 135;
1375
1479
  break;
1376
1480
  case 56:
1377
- return 137;
1481
+ return 136;
1378
1482
  break;
1379
1483
  case 57:
1380
- return 138;
1484
+ return 137;
1381
1485
  break;
1382
1486
  case 58:
1383
- return 139;
1487
+ return 138;
1384
1488
  break;
1385
1489
  case 59:
1386
- return 140;
1490
+ return 139;
1387
1491
  break;
1388
1492
  case 60:
1389
- return 165;
1493
+ return 140;
1390
1494
  break;
1391
1495
  case 61:
1392
1496
  return 141;
@@ -1395,157 +1499,221 @@ var localGrammar = function() {
1395
1499
  return 142;
1396
1500
  break;
1397
1501
  case 63:
1398
- return 144;
1502
+ return 143;
1399
1503
  break;
1400
1504
  case 64:
1401
- return 145;
1505
+ return 144;
1402
1506
  break;
1403
1507
  case 65:
1404
- return 148;
1508
+ return 145;
1405
1509
  break;
1406
1510
  case 66:
1407
- return 147;
1511
+ return 146;
1408
1512
  break;
1409
1513
  case 67:
1410
- return 149;
1514
+ return 172;
1411
1515
  break;
1412
1516
  case 68:
1413
- return 150;
1517
+ return 158;
1414
1518
  break;
1415
1519
  case 69:
1416
- return 151;
1520
+ return 147;
1417
1521
  break;
1418
1522
  case 70:
1419
- return 152;
1523
+ return 148;
1420
1524
  break;
1421
1525
  case 71:
1422
- return 143;
1526
+ return 150;
1423
1527
  break;
1424
1528
  case 72:
1425
- return 146;
1529
+ return 151;
1426
1530
  break;
1427
1531
  case 73:
1428
- return 126;
1532
+ return 154;
1429
1533
  break;
1430
1534
  case 74:
1431
- return 32;
1535
+ return 153;
1432
1536
  break;
1433
1537
  case 75:
1434
- return 35;
1538
+ return 155;
1435
1539
  break;
1436
1540
  case 76:
1437
- return 109;
1541
+ return 156;
1438
1542
  break;
1439
1543
  case 77:
1440
- return 62;
1544
+ return 157;
1441
1545
  break;
1442
1546
  case 78:
1443
- return 65;
1547
+ return 159;
1444
1548
  break;
1445
1549
  case 79:
1446
- return 66;
1550
+ return 149;
1447
1551
  break;
1448
1552
  case 80:
1449
- return 67;
1553
+ return 152;
1450
1554
  break;
1451
1555
  case 81:
1452
- return 89;
1556
+ return 132;
1453
1557
  break;
1454
1558
  case 82:
1455
- return 97;
1559
+ return 33;
1456
1560
  break;
1457
1561
  case 83:
1458
- return 103;
1562
+ return 36;
1459
1563
  break;
1460
1564
  case 84:
1461
- return 104;
1565
+ return 115;
1462
1566
  break;
1463
1567
  case 85:
1464
- return 59;
1568
+ return 63;
1465
1569
  break;
1466
1570
  case 86:
1467
- return 61;
1571
+ return 66;
1468
1572
  break;
1469
1573
  case 87:
1470
- return 26;
1574
+ return 67;
1471
1575
  break;
1472
1576
  case 88:
1473
- return 161;
1577
+ return 68;
1474
1578
  break;
1475
1579
  case 89:
1476
- return 13;
1580
+ return 95;
1477
1581
  break;
1478
1582
  case 90:
1479
- return 159;
1583
+ return 103;
1480
1584
  break;
1481
1585
  case 91:
1482
- return 160;
1586
+ return 109;
1483
1587
  break;
1484
1588
  case 92:
1485
- return 158;
1589
+ return 110;
1486
1590
  break;
1487
1591
  case 93:
1488
- return 69;
1592
+ return 60;
1489
1593
  break;
1490
1594
  case 94:
1491
- return 98;
1595
+ return 62;
1492
1596
  break;
1493
1597
  case 95:
1494
- return 53;
1598
+ return 26;
1495
1599
  break;
1496
1600
  case 96:
1497
- return 52;
1601
+ return 168;
1498
1602
  break;
1499
1603
  case 97:
1500
- return 64;
1604
+ return 13;
1501
1605
  break;
1502
1606
  case 98:
1503
- return 162;
1607
+ return 166;
1504
1608
  break;
1505
1609
  case 99:
1506
- return 94;
1610
+ return 167;
1507
1611
  break;
1508
1612
  case 100:
1509
- return 70;
1613
+ return 165;
1510
1614
  break;
1511
1615
  case 101:
1512
- return 71;
1616
+ return 70;
1513
1617
  break;
1514
1618
  case 102:
1515
- return 5;
1619
+ return 104;
1516
1620
  break;
1517
1621
  case 103:
1622
+ return 54;
1518
1623
  break;
1519
1624
  case 104:
1520
- return 103;
1625
+ return 53;
1521
1626
  break;
1522
1627
  case 105:
1523
- this.popState();
1524
- return 104;
1628
+ return 65;
1525
1629
  break;
1526
1630
  case 106:
1631
+ return 169;
1527
1632
  break;
1528
1633
  case 107:
1634
+ return 100;
1529
1635
  break;
1530
1636
  case 108:
1531
- return 170;
1637
+ return 71;
1532
1638
  break;
1533
1639
  case 109:
1534
- return 172;
1640
+ return 72;
1535
1641
  break;
1536
1642
  case 110:
1537
- return 171;
1643
+ return 5;
1538
1644
  break;
1539
1645
  case 111:
1540
- return 169;
1541
1646
  break;
1542
1647
  case 112:
1543
- return 169;
1648
+ return 109;
1649
+ break;
1650
+ case 113:
1651
+ this.popState();
1652
+ return 110;
1653
+ break;
1654
+ case 114:
1655
+ break;
1656
+ case 115:
1657
+ break;
1658
+ case 116:
1659
+ return 197;
1660
+ break;
1661
+ case 117:
1662
+ return 199;
1663
+ break;
1664
+ case 118:
1665
+ return 198;
1666
+ break;
1667
+ case 119:
1668
+ return 196;
1669
+ break;
1670
+ case 120:
1671
+ return 196;
1672
+ break;
1673
+ case 121:
1674
+ return 109;
1675
+ break;
1676
+ case 122:
1677
+ this.popState();
1678
+ return 110;
1679
+ break;
1680
+ case 123:
1681
+ break;
1682
+ case 124:
1683
+ break;
1684
+ case 125:
1685
+ break;
1686
+ case 126:
1687
+ return 180;
1688
+ break;
1689
+ case 127:
1690
+ return 182;
1691
+ break;
1692
+ case 128:
1693
+ return 185;
1694
+ break;
1695
+ case 129:
1696
+ return 190;
1697
+ break;
1698
+ case 130:
1699
+ return 192;
1700
+ break;
1701
+ case 131:
1702
+ return 193;
1703
+ break;
1704
+ case 132:
1705
+ return 194;
1706
+ break;
1707
+ case 133:
1708
+ return 187;
1709
+ break;
1710
+ case 134:
1711
+ return 184;
1544
1712
  break;
1545
1713
  }
1546
1714
  },
1547
- rules: [/^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:%.*)/, /^(?:\[title\b)/, /^(?:\[subtitle\b)/, /^(?:\[composer\b)/, /^(?:\[arranger\b)/, /^(?:\[lyricist\b)/, /^(?:\[opus\b)/, /^(?:\[instrument-[A-Za-z0-9_]+(?:-[A-Za-z0-9_]+)*)/, /^(?:\[instrument\b)/, /^(?:\[genre\b)/, /^(?:\[staves\b)/, /^(?:\[measures\b)/, /^(?:\[auto-beam\b)/, /^(?:\])/, /^(?:"([^\"\\]|\\.)*")/, /^(?:\\clef\b)/, /^(?:\\key\b)/, /^(?:\\time\b)/, /^(?:\\partial\b)/, /^(?:\\numericTimeSignature\b)/, /^(?:\\defaultTimeSignature\b)/, /^(?:\\tempo\b)/, /^(?:\\staff\b)/, /^(?:\\grace\b)/, /^(?:\\times\b)/, /^(?:\\tuplet\b)/, /^(?:\\repeat\b)/, /^(?:\\ottava\b)/, /^(?:\\stemUp\b)/, /^(?:\\stemDown\b)/, /^(?:\\stemNeutral\b)/, /^(?:\\major\b)/, /^(?:\\minor\b)/, /^(?:\\sustainOn\b)/, /^(?:\\sustainOff\b)/, /^(?:\\bar\b)/, /^(?:\\coda\b)/, /^(?:\\segno\b)/, /^(?:\\chords\b)/, /^(?:\\markup\b)/, /^(?:\\addlyrics\b)/, /^(?:\\<)/, /^(?:\\>)/, /^(?:\\!)/, /^(?:\\staccato\b)/, /^(?:\\staccatissimo\b)/, /^(?:\\tenuto\b)/, /^(?:\\marcato\b)/, /^(?:\\accent\b)/, /^(?:\\portato\b)/, /^(?:\\trill\b)/, /^(?:\\turn\b)/, /^(?:\\mordent\b)/, /^(?:\\prall\b)/, /^(?:\\fermata\b)/, /^(?:\\shortfermata\b)/, /^(?:\\arpeggio\b)/, /^(?:\\breathe\b)/, /^(?:\\glissando\b)/, /^(?:\\ppp\b)/, /^(?:\\pp\b)/, /^(?:\\mp\b)/, /^(?:\\mf\b)/, /^(?:\\fff\b)/, /^(?:\\ff\b)/, /^(?:\\sfz\b)/, /^(?:\\rfz\b)/, /^(?:\\sf\b)/, /^(?:\\fp\b)/, /^(?:\\p\b)/, /^(?:\\f)/, /^(?:\\rest\b)/, /^(?:\\\\\\)/, /^(?:\\\\)/, /^(?:tremolo\b)/, /^(?:[a-g](ss|ff|s|f)?)/, /^(?:')/, /^(?:,)/, /^(?:[0-9]+)/, /^(?:\/)/, /^(?:#)/, /^(?:\{)/, /^(?:\})/, /^(?:<)/, /^(?:>)/, /^(?:\|)/, /^(?:\[)/, /^(?:\])/, /^(?:\()/, /^(?:\))/, /^(?:~)/, /^(?:\.)/, /^(?:-)/, /^(?:[_])/, /^(?:\^)/, /^(?:!)/, /^(?::)/, /^(?:=)/, /^(?:[rR])/, /^(?:[sS])/, /^(?:$)/, /^(?:.)/, /^(?:\{)/, /^(?:\})/, /^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:--)/, /^(?:__\b)/, /^(?:_\b)/, /^(?:"([^\"\\]|\\.)*")/, /^(?:[^ \t\r\n{}\"\\]+)/],
1548
- conditions: { "lyric": { "rules": [104, 105, 106, 107, 108, 109, 110, 111, 112], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "inclusive": true } }
1715
+ rules: [/^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:%.*)/, /^(?:\[title\b)/, /^(?:\[subtitle\b)/, /^(?:\[composer\b)/, /^(?:\[arranger\b)/, /^(?:\[lyricist\b)/, /^(?:\[opus\b)/, /^(?:\[instrument-[A-Za-z0-9_]+(?:-[A-Za-z0-9_]+)*)/, /^(?:\[instrument\b)/, /^(?:\[genre\b)/, /^(?:\[staves\b)/, /^(?:\[measures\b)/, /^(?:\[auto-beam\b)/, /^(?:\])/, /^(?:"([^\"\\]|\\.)*")/, /^(?:\\clef\b)/, /^(?:\\key\b)/, /^(?:\\time\b)/, /^(?:\\partial\b)/, /^(?:\\numericTimeSignature\b)/, /^(?:\\undo[ \t]+\\omit[ \t]+(?:Score|Staff)\.TimeSignature\b)/, /^(?:\\undo[ \t]+\\omit[ \t]+(?:Score|Staff)\.BarLine\b)/, /^(?:\\omit[ \t]+(?:Score|Staff)\.TimeSignature\b)/, /^(?:\\omit[ \t]+(?:Score|Staff)\.BarLine\b)/, /^(?:\\defaultTimeSignature\b)/, /^(?:\\tempo\b)/, /^(?:\\staff\b)/, /^(?:\\grace\b)/, /^(?:\\times\b)/, /^(?:\\tuplet\b)/, /^(?:\\repeat\b)/, /^(?:\\ottava\b)/, /^(?:\\stemUp\b)/, /^(?:\\stemDown\b)/, /^(?:\\stemNeutral\b)/, /^(?:\\major\b)/, /^(?:\\minor\b)/, /^(?:\\sustainOn\b)/, /^(?:\\sustainOff\b)/, /^(?:\\bar\b)/, /^(?:\\coda\b)/, /^(?:\\segno\b)/, /^(?:\\chords\b)/, /^(?:\\markup\b)/, /^(?:\\addlyrics\b)/, /^(?:\^\\figures\b)/, /^(?:_\\figures\b)/, /^(?:\\figures\b)/, /^(?:\\<)/, /^(?:\\>)/, /^(?:\\!)/, /^(?:\\staccato\b)/, /^(?:\\staccatissimo\b)/, /^(?:\\tenuto\b)/, /^(?:\\marcato\b)/, /^(?:\\accent\b)/, /^(?:\\portato\b)/, /^(?:\\trill\b)/, /^(?:\\turn\b)/, /^(?:\\mordent\b)/, /^(?:\\prall\b)/, /^(?:\\fermata\b)/, /^(?:\\shortfermata\b)/, /^(?:\\arpeggio\b)/, /^(?:\\breathe\b)/, /^(?:\\glissando\b)/, /^(?:\\(?:fffff|ppppp|ffff|pppp|sffz|sfpp|sfzp|mfp|sff|sfp|spp|fz|pf|rf|sf|sp|n)(?![a-zA-Z]))/, /^(?:\\ppp\b)/, /^(?:\\pp\b)/, /^(?:\\mp\b)/, /^(?:\\mf\b)/, /^(?:\\fff\b)/, /^(?:\\ff\b)/, /^(?:\\sfz\b)/, /^(?:\\rfz\b)/, /^(?:\\sf\b)/, /^(?:\\fp\b)/, /^(?:\\p\b)/, /^(?:\\f)/, /^(?:\\rest\b)/, /^(?:\\\\\\)/, /^(?:\\\\)/, /^(?:tremolo\b)/, /^(?:[a-g](ss|ff|s|f)?)/, /^(?:')/, /^(?:,)/, /^(?:[0-9]+)/, /^(?:\/)/, /^(?:#)/, /^(?:\{)/, /^(?:\})/, /^(?:<)/, /^(?:>)/, /^(?:\|)/, /^(?:\[)/, /^(?:\])/, /^(?:\()/, /^(?:\))/, /^(?:~)/, /^(?:\.)/, /^(?:-)/, /^(?:[_])/, /^(?:\^)/, /^(?:!)/, /^(?::)/, /^(?:=)/, /^(?:[rR])/, /^(?:[sS])/, /^(?:$)/, /^(?:.)/, /^(?:\{)/, /^(?:\})/, /^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:--)/, /^(?:__\b)/, /^(?:_\b)/, /^(?:"([^\"\\]|\\.)*")/, /^(?:[^ \t\r\n{}\"\\]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:%.*)/, /^(?:<)/, /^(?:>)/, /^(?:[0-9]+)/, /^(?:_\b)/, /^(?:\+)/, /^(?:-)/, /^(?:!)/, /^(?:\.)/, /^(?:[sS])/],
1716
+ conditions: { "figures": { "rules": [121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "inclusive": false }, "lyric": { "rules": [112, 113, 114, 115, 116, 117, 118, 119, 120], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111], "inclusive": true } }
1549
1717
  };
1550
1718
  return lexer2;
1551
1719
  }();
@@ -1696,6 +1864,7 @@ var Clef;
1696
1864
  Clef2["treble"] = "treble";
1697
1865
  Clef2["bass"] = "bass";
1698
1866
  Clef2["alto"] = "alto";
1867
+ Clef2["tenor"] = "tenor";
1699
1868
  })(Clef || (Clef = {}));
1700
1869
  var StemDirection;
1701
1870
  (function(StemDirection2) {
@@ -1736,7 +1905,25 @@ var DynamicType;
1736
1905
  DynamicType2["sfz"] = "sfz";
1737
1906
  DynamicType2["rfz"] = "rfz";
1738
1907
  DynamicType2["fp"] = "fp";
1908
+ DynamicType2["pppp"] = "pppp";
1909
+ DynamicType2["ppppp"] = "ppppp";
1910
+ DynamicType2["ffff"] = "ffff";
1911
+ DynamicType2["fffff"] = "fffff";
1912
+ DynamicType2["sf"] = "sf";
1913
+ DynamicType2["sff"] = "sff";
1914
+ DynamicType2["sfp"] = "sfp";
1915
+ DynamicType2["sfpp"] = "sfpp";
1916
+ DynamicType2["sffz"] = "sffz";
1917
+ DynamicType2["sfzp"] = "sfzp";
1918
+ DynamicType2["sp"] = "sp";
1919
+ DynamicType2["spp"] = "spp";
1920
+ DynamicType2["fz"] = "fz";
1921
+ DynamicType2["rf"] = "rf";
1922
+ DynamicType2["mfp"] = "mfp";
1923
+ DynamicType2["pf"] = "pf";
1924
+ DynamicType2["n"] = "n";
1739
1925
  })(DynamicType || (DynamicType = {}));
1926
+ var DYNAMIC_NAMES = Object.values(DynamicType);
1740
1927
  var HairpinType;
1741
1928
  (function(HairpinType2) {
1742
1929
  HairpinType2["crescendoStart"] = "crescendoStart";
@@ -2719,23 +2906,41 @@ var CLEF_SHAPES = {
2719
2906
  treble: { shape: "G", line: 2 },
2720
2907
  bass: { shape: "F", line: 4 },
2721
2908
  alto: { shape: "C", line: 3 },
2909
+ tenor: { shape: "C", line: 4 },
2722
2910
  // Also support uppercase letter clef names
2723
2911
  G: { shape: "G", line: 2 },
2724
2912
  F: { shape: "F", line: 4 },
2725
2913
  C: { shape: "C", line: 3 }
2726
2914
  };
2915
+ var CLEF_DIS = { 1: "8", 2: "15", 3: "22" };
2916
+ var warnedClefs = /* @__PURE__ */ new Set();
2727
2917
  var resolveClef = (clefStr) => {
2728
- const clefInfo = CLEF_SHAPES[clefBaseName(clefStr)] || CLEF_SHAPES.treble;
2918
+ const base = clefBaseName(clefStr);
2919
+ if (!CLEF_SHAPES[base] && !warnedClefs.has(base)) {
2920
+ warnedClefs.add(base);
2921
+ console.warn(`[lilylet] unknown clef "${base}", encoded as treble`);
2922
+ }
2923
+ const clefInfo = CLEF_SHAPES[base] || CLEF_SHAPES.treble;
2729
2924
  const trans = clefSuffixTransposition(clefStr);
2925
+ if (trans && trans.semi % 12 === 0 && trans.diat === 7 * (trans.semi / 12)) {
2926
+ const octaves = trans.semi / 12;
2927
+ const dis = CLEF_DIS[Math.abs(octaves)];
2928
+ if (dis)
2929
+ return { shape: clefInfo.shape, line: clefInfo.line, dis: { dis, place: octaves > 0 ? "above" : "below", octaves } };
2930
+ }
2730
2931
  return {
2731
2932
  shape: clefInfo.shape,
2732
2933
  line: clefInfo.line,
2733
2934
  ...trans ? { trans } : {}
2734
2935
  };
2735
2936
  };
2937
+ var clefOctaveShift = (clefStr) => clefStr ? resolveClef(clefStr).dis?.octaves ?? 0 : 0;
2736
2938
  var clefElementAttrs = (clefStr) => {
2737
2939
  const c = resolveClef(clefStr);
2738
- return `shape="${c.shape}" line="${c.line}"`;
2940
+ let attrs = `shape="${c.shape}" line="${c.line}"`;
2941
+ if (c.dis)
2942
+ attrs += ` dis="${c.dis.dis}" dis.place="${c.dis.place}"`;
2943
+ return attrs;
2739
2944
  };
2740
2945
  var clefTransOf = (clefStr) => {
2741
2946
  const c = resolveClef(clefStr);
@@ -2744,6 +2949,8 @@ var clefTransOf = (clefStr) => {
2744
2949
  var staffDefClefAttrs = (clefStr) => {
2745
2950
  const c = resolveClef(clefStr);
2746
2951
  let attrs = `clef.shape="${c.shape}" clef.line="${c.line}"`;
2952
+ if (c.dis)
2953
+ attrs += ` clef.dis="${c.dis.dis}" clef.dis.place="${c.dis.place}"`;
2747
2954
  if (c.trans)
2748
2955
  attrs += ` trans.diat="${c.trans.diat}" trans.semi="${c.trans.semi}"`;
2749
2956
  return attrs;
@@ -2789,7 +2996,9 @@ var DYNAMIC_MAP = {
2789
2996
  fff: "fff",
2790
2997
  sfz: "sfz",
2791
2998
  rfz: "rfz",
2792
- fp: "fp"
2999
+ fp: "fp",
3000
+ // <dynam> text is the name itself; Verovio draws it from SMuFL dynamic glyphs.
3001
+ ...Object.fromEntries(DYNAMIC_NAMES.map((d) => [d, d]))
2793
3002
  };
2794
3003
  var idCounter = 0;
2795
3004
  var sessionPrefix = "";
@@ -2815,8 +3024,8 @@ var getKeyAccidentals = (fifths) => {
2815
3024
  }
2816
3025
  return result;
2817
3026
  };
2818
- var encodePitch = (pitch, keyFifths = 0, ottavaShift = 0, measureAccidentals) => {
2819
- const soundingOct = 4 + pitch.octave;
3027
+ var encodePitch = (pitch, keyFifths = 0, ottavaShift = 0, measureAccidentals, clefOctave = 0) => {
3028
+ const soundingOct = 4 + pitch.octave + clefOctave;
2820
3029
  const oct = soundingOct - ottavaShift;
2821
3030
  const octGes = ottavaShift !== 0 ? soundingOct : void 0;
2822
3031
  const keyAccidentals = getKeyAccidentals(keyFifths);
@@ -2869,12 +3078,10 @@ var tremoloToStemMod = (division) => {
2869
3078
  };
2870
3079
  var lyricWordPosition = (syllables, index) => {
2871
3080
  const syllable = syllables[index];
2872
- if (!syllable?.text)
2873
- return "u";
2874
3081
  const previous = index > 0 ? syllables[index - 1] : void 0;
2875
3082
  if (previous?.text && previous.hyphen)
2876
- return syllable.hyphen ? "m" : "t";
2877
- return syllable.hyphen ? "i" : "u";
3083
+ return syllable?.hyphen ? "m" : "t";
3084
+ return syllable?.hyphen ? "i" : "s";
2878
3085
  };
2879
3086
  var lyricSyllableXml = (lane, index, indent) => {
2880
3087
  const syllable = lane.syllables[index];
@@ -3095,7 +3302,7 @@ var extractMarkOptions = (marks) => {
3095
3302
  }
3096
3303
  return result;
3097
3304
  };
3098
- var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFifths = 0, ottavaShift = 0, measureAccidentals, lyricXml = "") => {
3305
+ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFifths = 0, ottavaShift = 0, measureAccidentals, lyricXml = "", clefOctave = 0) => {
3099
3306
  const dur = DURATIONS[event.duration.division] || "4";
3100
3307
  const dots = event.duration.dots || 0;
3101
3308
  const markOptions = extractMarkOptions(event.marks);
@@ -3123,7 +3330,7 @@ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFift
3123
3330
  tremolo: markOptions.tremolo
3124
3331
  };
3125
3332
  if (event.pitches.length === 1) {
3126
- const pitch = encodePitch(event.pitches[0], keyFifths, ottavaShift, measureAccidentals);
3333
+ const pitch = encodePitch(event.pitches[0], keyFifths, ottavaShift, measureAccidentals, clefOctave);
3127
3334
  const noteId = generateId("note");
3128
3335
  return {
3129
3336
  xml: buildNoteElement(pitch, dur, dots, indent, false, { ...noteOptions, lyricXml }, noteId),
@@ -3170,7 +3377,7 @@ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFift
3170
3377
  let result = `${indent}<chord ${chordAttrs}>
3171
3378
  `;
3172
3379
  for (const p of event.pitches) {
3173
- const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals);
3380
+ const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals, clefOctave);
3174
3381
  result += buildNoteElement(pitch, dur, dots, indent + " ", true);
3175
3382
  }
3176
3383
  if (noteOptions.artics.length > 0) {
@@ -3218,7 +3425,7 @@ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFift
3218
3425
  glissando: markOptions.glissando
3219
3426
  };
3220
3427
  };
3221
- var restEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals, crossStaff) => {
3428
+ var restEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals, crossStaff, clefOctave = 0) => {
3222
3429
  const dur = DURATIONS[event.duration.division] || "4";
3223
3430
  const restId = generateId("rest");
3224
3431
  let attrs = `xml:id="${restId}" dur="${dur}"`;
@@ -3234,7 +3441,7 @@ var restEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAcci
3234
3441
  }
3235
3442
  }
3236
3443
  if (event.pitch) {
3237
- const pitch = encodePitch(event.pitch, keyFifths, ottavaShift);
3444
+ const pitch = encodePitch(event.pitch, keyFifths, ottavaShift, void 0, clefOctave);
3238
3445
  attrs += ` ploc="${pitch.pname}" oloc="${pitch.oct}"`;
3239
3446
  }
3240
3447
  if (event.invisible) {
@@ -3299,7 +3506,7 @@ var tupletEventToMEI = (event, indent, layerStaff, keyFifths = 0, currentStaff,
3299
3506
  const noteIndent = beamOpen ? baseIndent + " " : baseIndent;
3300
3507
  const effectiveNoteEvent = effectiveStaff && layerStaff && effectiveStaff !== layerStaff ? { ...noteEvent, staff: effectiveStaff } : noteEvent;
3301
3508
  const lyricXml = lyricCursors.length ? lyricXmlForEvent(lyricCursors, noteIndent + " ") : "";
3302
- const result = noteEventToMEI(effectiveNoteEvent, noteIndent, layerStaff, false, void 0, keyFifths, ottavaShift, measureAccidentals, lyricXml);
3509
+ const result = noteEventToMEI(effectiveNoteEvent, noteIndent, layerStaff, false, void 0, keyFifths, ottavaShift, measureAccidentals, lyricXml, clefOctaveShift(activeClef));
3303
3510
  xml += result.xml;
3304
3511
  if (!firstNoteId)
3305
3512
  firstNoteId = result.elementId;
@@ -3335,7 +3542,7 @@ var tupletEventToMEI = (event, indent, layerStaff, keyFifths = 0, currentStaff,
3335
3542
  }
3336
3543
  } else if (e.type === "rest") {
3337
3544
  const restIndent = beamOpen ? baseIndent + " " : baseIndent;
3338
- const restResult = restEventToMEI(e, restIndent, keyFifths, ottavaShift, measureAccidentals);
3545
+ const restResult = restEventToMEI(e, restIndent, keyFifths, ottavaShift, measureAccidentals, void 0, clefOctaveShift(activeClef));
3339
3546
  xml += restResult.xml;
3340
3547
  lastNoteId = restResult.elementId;
3341
3548
  if (restResult.fermata)
@@ -3363,14 +3570,14 @@ var tupletEventToMEI = (event, indent, layerStaff, keyFifths = 0, currentStaff,
3363
3570
  `;
3364
3571
  return { xml, firstNoteId, lastNoteId, slurStarts, slurEnds, dynamics, fermatas, trills, mordents, turns, arpeggios, pedals, fingerings, markups, endingClef };
3365
3572
  };
3366
- var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals) => {
3573
+ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals, clefOctave = 0) => {
3367
3574
  const ftremId = generateId("fTrem");
3368
3575
  const beams = Math.max(1, Math.log2(event.division / 8) + 1);
3369
3576
  const noteDur = Math.round(event.division / event.count) || 4;
3370
3577
  let result = `${indent}<fTrem xml:id="${ftremId}" beams="${beams}">
3371
3578
  `;
3372
3579
  if (event.pitchA.length === 1) {
3373
- const pitch = encodePitch(event.pitchA[0], keyFifths, ottavaShift, measureAccidentals);
3580
+ const pitch = encodePitch(event.pitchA[0], keyFifths, ottavaShift, measureAccidentals, clefOctave);
3374
3581
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}" dur="${noteDur}"`;
3375
3582
  if (pitch.accid)
3376
3583
  attrs += ` accid="${pitch.accid}"`;
@@ -3384,7 +3591,7 @@ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureA
3384
3591
  result += `${indent} <chord xml:id="${generateId("chord")}" dur="${noteDur}">
3385
3592
  `;
3386
3593
  for (const p of event.pitchA) {
3387
- const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals);
3594
+ const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals, clefOctave);
3388
3595
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}"`;
3389
3596
  if (pitch.accid)
3390
3597
  attrs += ` accid="${pitch.accid}"`;
@@ -3399,7 +3606,7 @@ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureA
3399
3606
  `;
3400
3607
  }
3401
3608
  if (event.pitchB.length === 1) {
3402
- const pitch = encodePitch(event.pitchB[0], keyFifths, ottavaShift, measureAccidentals);
3609
+ const pitch = encodePitch(event.pitchB[0], keyFifths, ottavaShift, measureAccidentals, clefOctave);
3403
3610
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}" dur="${noteDur}"`;
3404
3611
  if (pitch.accid)
3405
3612
  attrs += ` accid="${pitch.accid}"`;
@@ -3413,7 +3620,7 @@ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureA
3413
3620
  result += `${indent} <chord xml:id="${generateId("chord")}" dur="${noteDur}">
3414
3621
  `;
3415
3622
  for (const p of event.pitchB) {
3416
- const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals);
3623
+ const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals, clefOctave);
3417
3624
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}"`;
3418
3625
  if (pitch.accid)
3419
3626
  attrs += ` accid="${pitch.accid}"`;
@@ -3576,7 +3783,7 @@ var encodeLayer = (voice, layerN, indent, initialTiePitches = [], keyFifths = 0,
3576
3783
  applyPendingOttavaShift();
3577
3784
  const effectiveNoteEvent = currentStaff !== voice.staff ? { ...noteEvent, staff: currentStaff } : noteEvent;
3578
3785
  const eventLyricXml = isGraceNote ? "" : lyricXmlForEvent(lyricCursors, currentIndent + " ");
3579
- const result = noteEventToMEI(effectiveNoteEvent, currentIndent, voice.staff, tieEnd, currentStemDirection, keyFifths, currentOttavaShift, measureAccidentals, eventLyricXml);
3786
+ const result = noteEventToMEI(effectiveNoteEvent, currentIndent, voice.staff, tieEnd, currentStemDirection, keyFifths, currentOttavaShift, measureAccidentals, eventLyricXml, clefOctaveShift(currentClef));
3580
3787
  xml += result.xml;
3581
3788
  lastNoteId = result.elementId;
3582
3789
  extendOttavaEnd(result.elementId);
@@ -3675,7 +3882,7 @@ var encodeLayer = (voice, layerN, indent, initialTiePitches = [], keyFifths = 0,
3675
3882
  case "rest": {
3676
3883
  const restCrossStaff = currentStaff !== (voice.staff || 1) ? currentStaff : void 0;
3677
3884
  applyPendingOttavaShift();
3678
- const restResult = restEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals, restCrossStaff);
3885
+ const restResult = restEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals, restCrossStaff, clefOctaveShift(currentClef));
3679
3886
  xml += restResult.xml;
3680
3887
  lastNoteId = restResult.elementId;
3681
3888
  extendOttavaEnd(restResult.elementId);
@@ -3728,7 +3935,7 @@ var encodeLayer = (voice, layerN, indent, initialTiePitches = [], keyFifths = 0,
3728
3935
  break;
3729
3936
  }
3730
3937
  case "tremolo":
3731
- xml += tremoloEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals);
3938
+ xml += tremoloEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals, clefOctaveShift(currentClef));
3732
3939
  break;
3733
3940
  case "context": {
3734
3941
  const ctx = event;
@@ -4047,6 +4254,7 @@ var measureStartClef = (measure, globalStaff, partInfos, carriedClef) => {
4047
4254
  return active;
4048
4255
  };
4049
4256
  var BARLINE_TO_MEI = {
4257
+ "": "invis",
4050
4258
  "|": "single",
4051
4259
  "||": "dbl",
4052
4260
  "|.": "end",
@@ -4055,7 +4263,7 @@ var BARLINE_TO_MEI = {
4055
4263
  ":..:|": "rptboth",
4056
4264
  ":..:": "rptboth"
4057
4265
  };
4058
- var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState, hairpinState, ottavaState, keyFifths = 0, partInfos = [], clefState = {}, octaveEndReplacements = {}, measureIds, glissState = {}) => {
4266
+ var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState, hairpinState, ottavaState, keyFifths = 0, partInfos = [], clefState = {}, octaveEndReplacements = {}, measureIds, glissState = {}, barHidden = false, meterUnit = 4) => {
4059
4267
  const measureId = generateId("measure");
4060
4268
  if (measureIds)
4061
4269
  measureIds.push(measureId);
@@ -4232,13 +4440,16 @@ var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState
4232
4440
  staffContent += `${indent} <harm xml:id="${generateId("harm")}" startid="#${harm.startid}">${escapeXml(harm.text)}</harm>
4233
4441
  `;
4234
4442
  }
4443
+ staffContent += encodeFigureLanes(measure, partInfos, meterUnit, indent + " ");
4235
4444
  for (const mkup of allMarkups) {
4236
4445
  const placeAttr = mkup.placement ? ` place="${mkup.placement}"` : "";
4237
4446
  staffContent += `${indent} <dir xml:id="${generateId("dir")}" startid="#${mkup.startid}"${placeAttr}>${escapeXml(mkup.content)}</dir>
4238
4447
  `;
4239
4448
  }
4240
4449
  let barlineAttr = "";
4241
- if (allBarlines.length > 0) {
4450
+ if (barHidden) {
4451
+ barlineAttr = ' right="invis"';
4452
+ } else if (allBarlines.length > 0) {
4242
4453
  const lastBarline = allBarlines[allBarlines.length - 1];
4243
4454
  const meiBarline = BARLINE_TO_MEI[lastBarline.style];
4244
4455
  if (meiBarline && meiBarline !== "single") {
@@ -4252,6 +4463,32 @@ var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState
4252
4463
  `;
4253
4464
  return xml;
4254
4465
  };
4466
+ var FIGURE_ACCIDENTAL_TEXT = { sharp: "\u266F", flat: "\u266D", natural: "\u266E" };
4467
+ var encodeFigureLanes = (measure, partInfos, meterUnit, indent) => {
4468
+ let xml = "";
4469
+ for (let pi = 0; pi < measure.parts.length; pi++) {
4470
+ const partOffset = partInfos[pi]?.staffOffset || 0;
4471
+ for (const voice of measure.parts[pi].voices) {
4472
+ if (!voice.figures)
4473
+ continue;
4474
+ const staffN = partOffset + (voice.staff || 1);
4475
+ for (const lane of voice.figures) {
4476
+ let at = 0;
4477
+ for (const g of lane.groups) {
4478
+ const len = 1 / g.duration.division * (2 - 2 ** -(g.duration.dots || 0));
4479
+ if (g.lines) {
4480
+ const tstamp = +(1 + at * meterUnit).toFixed(4);
4481
+ const lines = g.lines.map((l) => `<f>${l.accidental ? FIGURE_ACCIDENTAL_TEXT[l.accidental] : ""}${l.number !== void 0 ? l.number : ""}</f>`).join("");
4482
+ xml += `${indent}<harm xml:id="${generateId("harm")}" staff="${staffN}" tstamp="${tstamp}" place="${lane.placement}"><fb>${lines}</fb></harm>
4483
+ `;
4484
+ }
4485
+ at += len;
4486
+ }
4487
+ }
4488
+ }
4489
+ }
4490
+ return xml;
4491
+ };
4255
4492
  var analyzePartStructure = (doc) => {
4256
4493
  let maxParts = 0;
4257
4494
  for (const measure of doc.measures) {
@@ -4356,11 +4593,12 @@ var staffDefWithLabel = (attrs, instr, indent, channels) => {
4356
4593
  `;
4357
4594
  return xml;
4358
4595
  };
4359
- var encodeScoreDef = (keySig, timeNum, timeDen, partInfos, indent, meterSymbol, stavesCode, instruments = {}) => {
4596
+ var encodeScoreDef = (keySig, timeNum, timeDen, partInfos, indent, meterSymbol, stavesCode, instruments = {}, meterHidden = false) => {
4360
4597
  const scoreDefId = generateId("scoredef");
4361
4598
  const channels = newChannelAllocator();
4362
4599
  const meterSymAttr = meterSymbol ? ` meter.sym="${meterSymbol}"` : "";
4363
- let xml = `${indent}<scoreDef xml:id="${scoreDefId}" key.sig="${keySig}"${meterSymAttr} meter.count="${timeNum}" meter.unit="${timeDen}">
4600
+ const meterVisAttr = meterHidden ? ' meter.visible="false"' : "";
4601
+ let xml = `${indent}<scoreDef xml:id="${scoreDefId}" key.sig="${keySig}"${meterSymAttr} meter.count="${timeNum}" meter.unit="${timeDen}"${meterVisAttr}>
4364
4602
  `;
4365
4603
  const flatStaves = [];
4366
4604
  for (const info of partInfos) {
@@ -4625,6 +4863,52 @@ var applyAutoBeamToVoice = (events, beamGroups) => {
4625
4863
  last.marks.push({ markType: "beam", start: false });
4626
4864
  }
4627
4865
  };
4866
+ var computeOmitStates = (measures) => {
4867
+ const MUSICAL = /* @__PURE__ */ new Set(["note", "rest", "tuplet", "times", "tremolo"]);
4868
+ const apply = (state2, omit) => {
4869
+ if (!omit)
4870
+ return;
4871
+ if (omit.timeSignature !== void 0)
4872
+ state2.timeSignature = omit.timeSignature;
4873
+ if (omit.barLine !== void 0)
4874
+ state2.barLine = omit.barLine;
4875
+ };
4876
+ const split = (measure) => {
4877
+ const lead = [];
4878
+ const rest = [];
4879
+ for (const part of measure.parts) {
4880
+ for (const voice of part.voices) {
4881
+ let started = false;
4882
+ const walk = (events) => {
4883
+ for (const e of events) {
4884
+ if (!e)
4885
+ continue;
4886
+ if (e.type === "context" && e.omit)
4887
+ (started ? rest : lead).push(e.omit);
4888
+ else if (e.type === "tuplet" || e.type === "times")
4889
+ walk(e.events);
4890
+ if (MUSICAL.has(e.type))
4891
+ started = true;
4892
+ }
4893
+ };
4894
+ walk(voice.events);
4895
+ }
4896
+ }
4897
+ return { lead, rest };
4898
+ };
4899
+ const parts = measures.map(split);
4900
+ const state = { timeSignature: false, barLine: false };
4901
+ const meterHidden = [];
4902
+ const atStart = [];
4903
+ for (let i = 0; i < measures.length; i++) {
4904
+ parts[i].lead.forEach((o) => apply(state, o));
4905
+ atStart.push({ ...state });
4906
+ meterHidden.push(state.timeSignature);
4907
+ parts[i].rest.forEach((o) => apply(state, o));
4908
+ }
4909
+ const barHidden = measures.map((_, i) => i + 1 < measures.length ? atStart[i + 1].barLine : state.barLine);
4910
+ return { meterHidden, barHidden };
4911
+ };
4628
4912
  var encode = (doc, options = {}) => {
4629
4913
  const indent = options.indent || " ";
4630
4914
  resetIdCounter();
@@ -4706,7 +4990,8 @@ var encode = (doc, options = {}) => {
4706
4990
  `;
4707
4991
  mei += `${indent}${indent}${indent}${indent}<score xml:id="${generateId("score")}">
4708
4992
  `;
4709
- mei += encodeScoreDef(keySig, currentTimeNum, currentTimeDen, partInfos, `${indent}${indent}${indent}${indent}${indent}`, currentMeterSymbol, doc.metadata?.staves, doc.metadata?.instruments);
4993
+ const omitStates = computeOmitStates(doc.measures);
4994
+ mei += encodeScoreDef(keySig, currentTimeNum, currentTimeDen, partInfos, `${indent}${indent}${indent}${indent}${indent}`, currentMeterSymbol, doc.metadata?.staves, doc.metadata?.instruments, omitStates.meterHidden[0]);
4710
4995
  mei += `${indent}${indent}${indent}${indent}${indent}<section xml:id="${generateId("section")}">
4711
4996
  `;
4712
4997
  const expansionInsertPos = mei.length;
@@ -4796,7 +5081,8 @@ var encode = (doc, options = {}) => {
4796
5081
  currentTimeDen = newTimeDen;
4797
5082
  currentMeterSymbol = newMeterSymbol;
4798
5083
  const meterSymAttr = currentMeterSymbol ? ` meter.sym="${currentMeterSymbol}"` : "";
4799
- mei += `${indent}${indent}${indent}${indent}${indent}${indent}<scoreDef xml:id="${generateId("scoredef")}"${meterSymAttr} meter.count="${currentTimeNum}" meter.unit="${currentTimeDen}" />
5084
+ const meterVisAttr = omitStates.meterHidden[mi] ? ' meter.visible="false"' : "";
5085
+ mei += `${indent}${indent}${indent}${indent}${indent}${indent}<scoreDef xml:id="${generateId("scoredef")}"${meterSymAttr} meter.count="${currentTimeNum}" meter.unit="${currentTimeDen}"${meterVisAttr} />
4800
5086
  `;
4801
5087
  }
4802
5088
  }
@@ -4814,8 +5100,8 @@ var encode = (doc, options = {}) => {
4814
5100
  }
4815
5101
  if (key !== transState[si]) {
4816
5102
  transState[si] = key;
4817
- const c = resolveClef(startClef);
4818
- changed.push(`${indent}${indent}${indent}${indent}${indent}${indent}${indent}${indent}<staffDef xml:id="${generateId("staffdef")}" n="${si}" lines="5" clef.shape="${c.shape}" clef.line="${c.line}" trans.diat="${t.diat}" trans.semi="${t.semi}" />`);
5103
+ const clefAttrs = staffDefClefAttrs(startClef).replace(/ trans\.diat="[^"]*" trans\.semi="[^"]*"/, "");
5104
+ changed.push(`${indent}${indent}${indent}${indent}${indent}${indent}${indent}${indent}<staffDef xml:id="${generateId("staffdef")}" n="${si}" lines="5" ${clefAttrs} trans.diat="${t.diat}" trans.semi="${t.semi}" />`);
4819
5105
  }
4820
5106
  }
4821
5107
  if (changed.length > 0) {
@@ -4837,7 +5123,7 @@ var encode = (doc, options = {}) => {
4837
5123
  if (openTag)
4838
5124
  mei += openTag;
4839
5125
  const measureIndent = segDecomp ? `${mIndent}${indent}` : mIndent;
4840
- mei += encodeMeasure(measure, mIndex, measureIndent, totalStaves, tieState, slurState, hairpinState, ottavaState, currentKey, partInfos, clefState, octaveEndReplacements, measureIds, glissState);
5126
+ mei += encodeMeasure(measure, mIndex, measureIndent, totalStaves, tieState, slurState, hairpinState, ottavaState, currentKey, partInfos, clefState, octaveEndReplacements, measureIds, glissState, omitStates.barHidden[mi], currentTimeDen);
4841
5127
  const closeTag = segCloseAt.get(mIndex);
4842
5128
  if (closeTag)
4843
5129
  mei += closeTag;