@k-l-lambda/lilylet 0.1.76 → 0.1.79

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.
@@ -72,12 +72,12 @@
72
72
  }
73
73
  */
74
74
  Object.defineProperty(globalThis, "__abcGrammar__", { value: (function(){
75
- var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,13],$V1=[1,8],$V2=[1,9],$V3=[1,10],$V4=[1,11],$V5=[1,12],$V6=[5,17,27,29,30,32,34],$V7=[2,128],$V8=[1,22],$V9=[1,23],$Va=[1,24],$Vb=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vc=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,64,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vd=[2,68],$Ve=[1,40],$Vf=[1,41],$Vg=[1,42],$Vh=[1,43],$Vi=[1,52],$Vj=[1,58],$Vk=[1,57],$Vl=[1,55],$Vm=[1,56],$Vn=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vo=[16,22,24,25,26,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vp=[1,84],$Vq=[1,83],$Vr=[1,81],$Vs=[1,91],$Vt=[1,97],$Vu=[1,113],$Vv=[1,79],$Vw=[1,121],$Vx=[1,86],$Vy=[1,78],$Vz=[1,122],$VA=[1,80],$VB=[1,95],$VC=[1,96],$VD=[1,98],$VE=[1,99],$VF=[1,100],$VG=[1,101],$VH=[1,87],$VI=[1,88],$VJ=[1,102],$VK=[1,103],$VL=[1,85],$VM=[1,94],$VN=[1,104],$VO=[1,109],$VP=[1,108],$VQ=[1,112],$VR=[1,115],$VS=[1,116],$VT=[1,117],$VU=[1,118],$VV=[5,13,15,16,17,24,25,26,27,29,30,32,34,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VW=[1,132],$VX=[1,133],$VY=[1,134],$VZ=[1,135],$V_=[1,136],$V$=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V01=[1,143],$V11=[1,139],$V21=[1,140],$V31=[1,141],$V41=[1,142],$V51=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V61=[1,145],$V71=[1,146],$V81=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V91=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Va1=[1,153],$Vb1=[1,152],$Vc1=[1,161],$Vd1=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Ve1=[2,96],$Vf1=[25,49,72],$Vg1=[2,229],$Vh1=[1,169],$Vi1=[1,168],$Vj1=[1,187],$Vk1=[1,190],$Vl1=[1,183],$Vm1=[1,184],$Vn1=[1,182],$Vo1=[1,185],$Vp1=[1,192],$Vq1=[1,189],$Vr1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vs1=[2,157],$Vt1=[1,203],$Vu1=[1,204],$Vv1=[1,221],$Vw1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vx1=[1,231],$Vy1=[1,239],$Vz1=[1,240],$VA1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$VB1=[1,243],$VC1=[1,250],$VD1=[13,14,15,16,22,23,24,25,26],$VE1=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,58,59,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VF1=[1,262],$VG1=[14,16,25,40,49,72,87,100,132,136,137,138,139],$VH1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VI1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VJ1=[2,267],$VK1=[1,285],$VL1=[15,16,24,25,34,40,49,61,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,132,136,137,138,139],$VM1=[1,299],$VN1=[16,24,40,101],$VO1=[16,67,101],$VP1=[61,66,101],$VQ1=[101,119,120],$VR1=[16,24],$VS1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VT1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$VU1=[1,311],$VV1=[1,326],$VW1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139];
75
+ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,13],$V1=[1,8],$V2=[1,9],$V3=[1,10],$V4=[1,11],$V5=[1,12],$V6=[5,17,27,29,30,32,34],$V7=[2,130],$V8=[1,22],$V9=[1,23],$Va=[1,24],$Vb=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vc=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,64,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vd=[2,68],$Ve=[1,40],$Vf=[1,41],$Vg=[1,42],$Vh=[1,43],$Vi=[1,52],$Vj=[1,58],$Vk=[1,57],$Vl=[1,55],$Vm=[1,56],$Vn=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vo=[16,22,24,25,26,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vp=[1,84],$Vq=[1,83],$Vr=[1,81],$Vs=[1,91],$Vt=[1,97],$Vu=[1,113],$Vv=[1,79],$Vw=[1,121],$Vx=[1,86],$Vy=[1,78],$Vz=[1,122],$VA=[1,80],$VB=[1,95],$VC=[1,96],$VD=[1,98],$VE=[1,99],$VF=[1,100],$VG=[1,101],$VH=[1,87],$VI=[1,88],$VJ=[1,102],$VK=[1,103],$VL=[1,85],$VM=[1,94],$VN=[1,104],$VO=[1,109],$VP=[1,108],$VQ=[1,112],$VR=[1,115],$VS=[1,116],$VT=[1,117],$VU=[1,118],$VV=[5,13,15,16,17,24,25,26,27,29,30,32,34,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VW=[1,132],$VX=[1,133],$VY=[1,134],$VZ=[1,135],$V_=[1,136],$V$=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V01=[1,143],$V11=[1,139],$V21=[1,140],$V31=[1,141],$V41=[1,142],$V51=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V61=[1,145],$V71=[1,146],$V81=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V91=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Va1=[1,153],$Vb1=[1,152],$Vc1=[1,161],$Vd1=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Ve1=[2,96],$Vf1=[25,49,72],$Vg1=[2,232],$Vh1=[1,169],$Vi1=[1,168],$Vj1=[1,187],$Vk1=[1,190],$Vl1=[1,183],$Vm1=[1,184],$Vn1=[1,182],$Vo1=[1,185],$Vp1=[1,192],$Vq1=[1,189],$Vr1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vs1=[2,160],$Vt1=[1,203],$Vu1=[1,204],$Vv1=[1,221],$Vw1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$Vx1=[1,231],$Vy1=[1,239],$Vz1=[1,240],$VA1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$VB1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VC1=[1,244],$VD1=[1,243],$VE1=[1,251],$VF1=[13,14,15,16,22,23,24,25,26],$VG1=[5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,58,59,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VH1=[1,263],$VI1=[14,16,25,40,49,72,87,100,132,136,137,138,139],$VJ1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,40,44,49,61,62,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VK1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VL1=[2,270],$VM1=[1,287],$VN1=[15,16,24,25,34,40,49,61,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,132,136,137,138,139],$VO1=[1,301],$VP1=[16,24,40,101],$VQ1=[16,67,101],$VR1=[61,66,101],$VS1=[101,119,120],$VT1=[16,24],$VU1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$VV1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$VW1=[1,314],$VX1=[1,313],$VY1=[1,330],$VZ1=[5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139];
76
76
  var parser = {trace: function trace () { },
77
77
  yy: {},
78
78
  symbols_: {"error":2,"start_symbol":3,"tunes":4,"EOF":5,"tune":6,"header":7,"body":8,"head_lines":9,"head_line":10,"comment":11,"staff_layout_statement":12,"LAYOUT_END":13,"]":14,"}":15,")":16,"COMMENT":17,"SCORE":18,"staff_layout":19,"staff_layout_items":20,"staff_layout_item":21,"|":22,"NN":23,"(":24,"[":25,"{":26,"T:":27,"string_content":28,"C:":29,"K:":30,"key_signature":31,"V:":32,"header_value":33,"H":34,":":35,"string":36,"number":37,"frac":38,"numeric_tempo":39,"=":40,"upper_phonet":41,"voice_exp":42,"staff_shift":43,"NAME":44,"clef":45,"STAFF":46,"plus_minus_number":47,"key_root":48,"A":49,"sharp_or_flat":50,"key_mode":51,"TREBLE":52,"BASS":53,"TENOR":54,"ALTO":55,"SHARP":56,"FLAT":57,"MAJ":58,"MIN":59,"+":60,"-":61,"STR_START":62,"STR_END":63,"STR_CONTENT":64,"patches":65,"/":66,"N":67,"assigns":68,"assign":69,"assign_value":70,"lower_phonet":71,"a":72,"patch":73,"bar":74,"tailless_patch":75,"&":76,"music":77,"volta_rest":78,",":79,"expressive_mark":80,"text":81,"event":82,"grace_events":83,"control":84,"broken_rhythm":85,"triplet":86,"^":87,"articulation_letter":88,"P":89,"T":90,"J":91,"L":92,"M":93,"R":94,"O":95,"S":96,"u":97,"v":98,"articulation":99,".":100,"!":101,"articulation_content":102,"directive_text":103,"~":104,"scope_articulation":105,"parenthese":106,"DYNAMIC":107,"fingering_numbers":108,"tremolo":109,"dc":110,"al":111,"octave_shift":112,"8va":113,"8vb":114,"15ma":115,"15mb":116,"D.C.":117,"D.S.":118,"alcoda":119,"alfine":120,"<":121,">":122,"pitch_or_chord":123,"pitch":124,"chord":125,"accidentals":126,"pitches":127,"quotes":128,"sub_quotes":129,"sup_quotes":130,"'":131,"_":132,"acc_pitch":133,"rest_phonet":134,"phonet":135,"z":136,"Z":137,"x":138,"y":139,"duration":140,"events":141,"grace_music":142,"slashes":143,"broken_right":144,"broken_left":145,"$accept":0,"$end":1},
79
79
  terminals_: {2:"error",5:"EOF",13:"LAYOUT_END",14:"]",15:"}",16:")",17:"COMMENT",18:"SCORE",22:"|",23:"NN",24:"(",25:"[",26:"{",27:"T:",29:"C:",30:"K:",32:"V:",34:"H",35:":",40:"=",44:"NAME",46:"STAFF",49:"A",52:"TREBLE",53:"BASS",54:"TENOR",55:"ALTO",56:"SHARP",57:"FLAT",58:"MAJ",59:"MIN",60:"+",61:"-",62:"STR_START",63:"STR_END",64:"STR_CONTENT",66:"/",67:"N",72:"a",76:"&",79:",",87:"^",89:"P",90:"T",91:"J",92:"L",93:"M",94:"R",95:"O",96:"S",97:"u",98:"v",100:".",101:"!",104:"~",107:"DYNAMIC",113:"8va",114:"8vb",115:"15ma",116:"15mb",117:"D.C.",118:"D.S.",119:"alcoda",120:"alfine",121:"<",122:">",131:"'",132:"_",136:"z",137:"Z",138:"x",139:"y"},
80
- productions_: [0,[3,2],[4,1],[4,2],[6,2],[7,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[11,1],[12,3],[19,1],[20,1],[20,2],[20,2],[21,1],[21,3],[21,3],[21,3],[21,3],[21,3],[10,2],[10,2],[10,2],[10,2],[10,3],[33,1],[33,1],[33,1],[33,1],[33,4],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[43,2],[43,2],[31,1],[31,1],[31,1],[48,1],[48,2],[48,2],[48,3],[45,1],[45,1],[45,1],[45,1],[45,2],[45,2],[45,2],[45,2],[50,1],[50,1],[51,1],[51,1],[51,1],[47,2],[47,2],[36,3],[28,0],[28,2],[8,1],[38,3],[37,1],[37,2],[39,3],[42,1],[42,2],[42,2],[42,3],[42,3],[42,4],[42,1],[42,2],[42,3],[42,2],[42,3],[42,3],[42,4],[68,1],[68,2],[69,3],[70,1],[70,1],[70,1],[70,1],[70,1],[41,1],[71,1],[65,1],[65,2],[65,2],[65,2],[65,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,3],[73,2],[75,1],[74,1],[74,2],[74,2],[74,2],[74,3],[74,4],[74,2],[74,2],[74,3],[74,3],[74,2],[74,3],[74,3],[74,4],[74,1],[78,2],[78,3],[77,0],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,3],[77,3],[77,3],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[84,5],[84,4],[84,4],[84,5],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[99,3],[99,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[102,1],[102,2],[102,3],[102,1],[102,1],[102,1],[102,1],[102,3],[102,2],[102,1],[102,2],[108,1],[108,2],[109,1],[109,2],[103,1],[103,2],[103,2],[103,2],[112,1],[112,1],[112,1],[112,1],[110,1],[110,1],[111,1],[111,1],[105,1],[105,1],[105,1],[106,1],[106,1],[81,1],[123,1],[123,1],[123,2],[125,3],[125,3],[125,2],[127,1],[127,2],[127,2],[127,3],[127,2],[127,3],[127,4],[127,3],[127,2],[128,1],[128,1],[129,1],[129,2],[130,1],[130,2],[126,1],[126,1],[126,1],[126,2],[126,2],[126,2],[126,2],[126,2],[124,1],[124,2],[124,1],[133,1],[133,2],[133,2],[133,3],[135,1],[135,1],[134,1],[134,1],[134,1],[134,1],[82,1],[82,2],[141,1],[141,2],[83,3],[83,4],[142,1],[142,2],[142,2],[142,2],[142,2],[142,2],[140,3],[140,2],[140,1],[140,1],[140,2],[143,1],[143,2],[85,1],[85,1],[144,1],[144,2],[145,1],[145,2],[86,6],[86,4],[86,2]],
80
+ productions_: [0,[3,2],[4,1],[4,2],[6,2],[7,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,2],[11,1],[12,3],[19,1],[20,1],[20,2],[20,2],[21,1],[21,3],[21,3],[21,3],[21,3],[21,3],[10,2],[10,2],[10,2],[10,2],[10,3],[33,1],[33,1],[33,1],[33,1],[33,4],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[43,2],[43,2],[31,1],[31,1],[31,1],[48,1],[48,2],[48,2],[48,3],[45,1],[45,1],[45,1],[45,1],[45,2],[45,2],[45,2],[45,2],[50,1],[50,1],[51,1],[51,1],[51,1],[47,2],[47,2],[36,3],[28,0],[28,2],[8,1],[38,3],[37,1],[37,2],[39,3],[42,1],[42,2],[42,2],[42,3],[42,3],[42,4],[42,1],[42,2],[42,3],[42,2],[42,3],[42,3],[42,4],[68,1],[68,2],[69,3],[70,1],[70,1],[70,1],[70,1],[70,1],[41,1],[71,1],[65,1],[65,2],[65,2],[65,2],[65,1],[65,2],[65,2],[65,2],[65,2],[65,2],[65,3],[73,2],[75,1],[74,1],[74,2],[74,2],[74,2],[74,3],[74,4],[74,2],[74,2],[74,3],[74,3],[74,2],[74,3],[74,3],[74,4],[74,1],[78,2],[78,2],[78,3],[78,3],[77,0],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,2],[77,3],[77,3],[77,3],[77,4],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[84,5],[84,4],[84,4],[84,5],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[99,3],[99,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[102,1],[102,2],[102,3],[102,1],[102,1],[102,1],[102,1],[102,3],[102,2],[102,1],[102,2],[108,1],[108,2],[109,1],[109,2],[103,1],[103,2],[103,2],[103,2],[112,1],[112,1],[112,1],[112,1],[110,1],[110,1],[111,1],[111,1],[105,1],[105,1],[105,1],[106,1],[106,1],[81,1],[123,1],[123,1],[123,2],[125,3],[125,3],[125,2],[127,1],[127,2],[127,2],[127,3],[127,2],[127,3],[127,4],[127,3],[127,2],[128,1],[128,1],[129,1],[129,2],[130,1],[130,2],[126,1],[126,1],[126,1],[126,2],[126,2],[126,2],[126,2],[126,2],[124,1],[124,2],[124,1],[133,1],[133,2],[133,2],[133,3],[135,1],[135,1],[134,1],[134,1],[134,1],[134,1],[82,1],[82,2],[141,1],[141,2],[83,3],[83,4],[142,1],[142,2],[142,2],[142,2],[142,2],[142,2],[140,3],[140,2],[140,1],[140,1],[140,2],[143,1],[143,2],[85,1],[85,1],[144,1],[144,2],[145,1],[145,2],[86,6],[86,4],[86,2]],
81
81
  performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
82
82
  /* this == yyval */
83
83
 
@@ -86,16 +86,16 @@ switch (yystate) {
86
86
  case 1:
87
87
  return $$[$0-1];
88
88
  break;
89
- case 2: case 6: case 7: case 18: case 98: case 99: case 102: case 214: case 216: case 218: case 221: case 252: case 256:
89
+ case 2: case 6: case 7: case 18: case 98: case 99: case 102: case 217: case 219: case 221: case 224: case 255: case 259:
90
90
  this.$ = [$$[$0]];
91
91
  break;
92
- case 3: case 8: case 9: case 10: case 19: case 100: case 103: case 215: case 253: case 258: case 259: case 260:
92
+ case 3: case 8: case 9: case 10: case 19: case 100: case 103: case 218: case 256: case 261: case 262: case 263:
93
93
  this.$ = [...$$[$0-1], $$[$0]];
94
94
  break;
95
95
  case 4:
96
96
  this.$ = tune($$[$0-1], $$[$0]);
97
97
  break;
98
- case 11: case 12: case 13: case 14: case 16: case 67: case 101: case 104: case 105: case 106: case 107: case 136: case 137: case 163: case 164: case 222:
98
+ case 11: case 12: case 13: case 14: case 16: case 67: case 101: case 104: case 105: case 106: case 107: case 138: case 139: case 166: case 167: case 225:
99
99
  this.$ = $$[$0-1];
100
100
  break;
101
101
  case 15:
@@ -140,7 +140,7 @@ break;
140
140
  case 43: case 44:
141
141
  this.$ = staffShift($$[$0]);
142
142
  break;
143
- case 45: case 47: case 88: case 210:
143
+ case 45: case 47: case 88: case 213:
144
144
  this.$ = $$[$0];
145
145
  break;
146
146
  case 46:
@@ -245,7 +245,7 @@ break;
245
245
  case 90:
246
246
  this.$ = assign($$[$0-2], $$[$0]);
247
247
  break;
248
- case 108: case 138: case 139: case 140:
248
+ case 108: case 140: case 141:
249
249
  this.$ = $$[$0-2];
250
250
  break;
251
251
  case 109:
@@ -282,222 +282,228 @@ case 122:
282
282
  this.$ = '|' + $$[$0-1] + $$[$0];
283
283
  break;
284
284
  case 123:
285
- this.$ = ':|' + $$[$0-1];
285
+ this.$ = ':|' + $$[$0];
286
286
  break;
287
287
  case 124:
288
- this.$ = ':|' + $$[$0-2] + $$[$0-1];
288
+ this.$ = ':|' + $$[$0-1] + $$[$0];
289
289
  break;
290
290
  case 125:
291
291
  this.$ = '&';
292
292
  break;
293
- case 126:
293
+ case 126: case 127:
294
294
  this.$ = ',' + $$[$0];
295
295
  break;
296
- case 127:
296
+ case 128: case 129:
297
297
  this.$ = $$[$0-2] + ',' + $$[$0];
298
298
  break;
299
- case 129: case 130: case 131: case 132: case 133: case 135:
299
+ case 131: case 132: case 133: case 134: case 135: case 137:
300
300
  this.$ = $$[$0-1] ? [...$$[$0-1], $$[$0]] : [$$[$0]];
301
301
  break;
302
- case 134:
302
+ case 136:
303
303
  Object.assign($$[$0-1].at(-1), $$[$0]); this.$ = $$[$0-1];
304
304
  break;
305
- case 152: case 155:
305
+ case 142:
306
+ this.$ = $$[$0-2] ? [...$$[$0-2], {volta: String($$[$0])}] : [{volta: String($$[$0])}];
307
+ break;
308
+ case 143:
309
+ this.$ = $$[$0-3] ? [...$$[$0-3], {volta: String($$[$0-1]) + $$[$0]}] : [{volta: String($$[$0-1]) + $$[$0]}];
310
+ break;
311
+ case 155: case 158:
306
312
  this.$ = ({control: header($$[$0-3], $$[$0-1])});
307
313
  break;
308
- case 153:
314
+ case 156:
309
315
  this.$ = ({control: header("K", $$[$0-1])});
310
316
  break;
311
- case 154:
317
+ case 157:
312
318
  this.$ = ({control: header("V", $$[$0-1])});
313
319
  break;
314
- case 157: case 158: case 159: case 160:
320
+ case 160: case 161: case 162: case 163:
315
321
  this.$ = ({express: $$[$0]});
316
322
  break;
317
- case 161:
323
+ case 164:
318
324
  this.$ = ({express: "coda"});
319
325
  break;
320
- case 162:
326
+ case 165:
321
327
  this.$ = ({express: "segno"});
322
328
  break;
323
- case 165:
329
+ case 168:
324
330
  this.$ = articulation("prall");
325
331
  break;
326
- case 166:
332
+ case 169:
327
333
  this.$ = articulation("trill");
328
334
  break;
329
- case 167:
335
+ case 170:
330
336
  this.$ = articulation("fermata");
331
337
  break;
332
- case 168:
338
+ case 171:
333
339
  this.$ = articulation("slide");
334
340
  break;
335
- case 169:
341
+ case 172:
336
342
  this.$ = articulation("accent");
337
343
  break;
338
- case 170: case 174:
344
+ case 173: case 177:
339
345
  this.$ = articulation("mordent");
340
346
  break;
341
- case 171:
347
+ case 174:
342
348
  this.$ = articulation("roll");
343
349
  break;
344
- case 172:
350
+ case 175:
345
351
  this.$ = articulation("upbow");
346
352
  break;
347
- case 173:
353
+ case 176:
348
354
  this.$ = articulation("downbow");
349
355
  break;
350
- case 175: case 178: case 179: case 180:
356
+ case 178: case 181: case 182: case 183:
351
357
  this.$ = articulation($$[$0]);
352
358
  break;
353
- case 176:
359
+ case 179:
354
360
  this.$ = articulation($$[$0-1], $$[$0]);
355
361
  break;
356
- case 177:
362
+ case 180:
357
363
  this.$ = articulation($$[$0-2] + '=' + String($$[$0]));
358
364
  break;
359
- case 181: case 183:
365
+ case 184: case 186:
360
366
  this.$ = ({fingering: Number($$[$0])});
361
367
  break;
362
- case 182:
368
+ case 185:
363
369
  this.$ = ({fingering: Number($$[$0-1])});
364
370
  break;
365
- case 184:
371
+ case 187:
366
372
  this.$ = ({tremolo: $$[$0]});
367
373
  break;
368
- case 185:
374
+ case 188:
369
375
  this.$ = ({tremolo: $$[$0-1]}) // unknown meaning of '-'?;
370
376
  break;
371
- case 186:
377
+ case 189:
372
378
  this.$ = String($$[$0]);
373
379
  break;
374
- case 187:
380
+ case 190:
375
381
  this.$ = $$[$0-1] + $$[$0];
376
382
  break;
377
- case 188: case 195: case 227: case 229: case 267: case 271:
383
+ case 191: case 198: case 230: case 232: case 270: case 274:
378
384
  this.$ = 1;
379
385
  break;
380
- case 189: case 228: case 268: case 272:
386
+ case 192: case 231: case 271: case 275:
381
387
  this.$ = $$[$0-1] + 1;
382
388
  break;
383
- case 190:
389
+ case 193:
384
390
  this.$ = ({directive: $$[$0]});
385
391
  break;
386
- case 191:
392
+ case 194:
387
393
  this.$ = ({directive: `${$$[$0-1]} ${$$[$0]}`});
388
394
  break;
389
- case 192:
395
+ case 195:
390
396
  this.$ = octaveShift($$[$0-1]);
391
397
  break;
392
- case 193:
398
+ case 196:
393
399
  this.$ = octaveShift(0);
394
400
  break;
395
- case 194: case 225: case 230: case 273:
401
+ case 197: case 228: case 233: case 276:
396
402
  this.$ = -1;
397
403
  break;
398
- case 196: case 233:
404
+ case 199: case 236:
399
405
  this.$ = -2;
400
406
  break;
401
- case 197: case 232:
407
+ case 200: case 235:
402
408
  this.$ = 2;
403
409
  break;
404
- case 200:
410
+ case 203:
405
411
  this.$ = "al coda";
406
412
  break;
407
- case 201:
413
+ case 204:
408
414
  this.$ = "al fine";
409
415
  break;
410
- case 207:
416
+ case 210:
411
417
  this.$ = ({text: $$[$0]});
412
418
  break;
413
- case 208:
419
+ case 211:
414
420
  this.$ = chord([$$[$0]]);
415
421
  break;
416
- case 211:
422
+ case 214:
417
423
  this.$ = chord($$[$0-1]);
418
424
  break;
419
- case 212: case 213:
425
+ case 215: case 216:
420
426
  this.$ = chord([]);
421
427
  break;
422
- case 217: case 219:
428
+ case 220: case 222:
423
429
  this.$ = [...$$[$0-2], $$[$0]];
424
430
  break;
425
- case 220:
431
+ case 223:
426
432
  this.$ = [...$$[$0-3], $$[$0]];
427
433
  break;
428
- case 226: case 274:
434
+ case 229: case 277:
429
435
  this.$ = $$[$0-1] - 1;
430
436
  break;
431
- case 231: case 234:
437
+ case 234: case 237:
432
438
  this.$ = 0;
433
439
  break;
434
- case 235:
440
+ case 238:
435
441
  this.$ = 0.5;
436
442
  break;
437
- case 236:
443
+ case 239:
438
444
  this.$ = -0.5;
439
445
  break;
440
- case 238:
446
+ case 241:
441
447
  $$[$0-1].tie = true; this.$ = $$[$0-1];
442
448
  break;
443
- case 239: case 240:
449
+ case 242: case 243:
444
450
  this.$ = pitch(null, $$[$0], 0);
445
451
  break;
446
- case 241:
452
+ case 244:
447
453
  this.$ = pitch(null, $$[$0-1], $$[$0]);
448
454
  break;
449
- case 242:
455
+ case 245:
450
456
  this.$ = pitch($$[$0-1], $$[$0], 0);
451
457
  break;
452
- case 243:
458
+ case 246:
453
459
  this.$ = pitch($$[$0-2], $$[$0-1], $$[$0]);
454
460
  break;
455
- case 250:
461
+ case 253:
456
462
  this.$ = ({event: event($$[$0])});
457
463
  break;
458
- case 251:
464
+ case 254:
459
465
  this.$ = ({event: event($$[$0-1], $$[$0])});
460
466
  break;
461
- case 254:
467
+ case 257:
462
468
  this.$ = grace($$[$0-1]);
463
469
  break;
464
- case 255:
470
+ case 258:
465
471
  this.$ = grace($$[$0-1], true);
466
472
  break;
467
- case 257: case 261:
473
+ case 260: case 264:
468
474
  this.$ = [$$[$0-1], $$[$0]];
469
475
  break;
470
- case 262:
476
+ case 265:
471
477
  this.$ = frac(Number($$[$0-2]), Number($$[$0]));
472
478
  break;
473
- case 263:
479
+ case 266:
474
480
  this.$ = frac(1, Number($$[$0]));
475
481
  break;
476
- case 264:
482
+ case 267:
477
483
  this.$ = frac(Number($$[$0]));
478
484
  break;
479
- case 265:
485
+ case 268:
480
486
  this.$ = frac(1, Math.pow(2, $$[$0]));
481
487
  break;
482
- case 266:
488
+ case 269:
483
489
  this.$ = frac(Number($$[$0-1]), Math.pow(2, $$[$0]));
484
490
  break;
485
- case 269: case 270:
491
+ case 272: case 273:
486
492
  this.$ = ({broken: $$[$0]});
487
493
  break;
488
- case 275:
494
+ case 278:
489
495
  this.$ = ({triplet: $$[$0-4], multiplier: $$[$0-2], n: $$[$0]});
490
496
  break;
491
- case 276:
497
+ case 279:
492
498
  this.$ = ({triplet: $$[$0-2], multiplier: $$[$0]});
493
499
  break;
494
- case 277:
500
+ case 280:
495
501
  this.$ = ({triplet: $$[$0]});
496
502
  break;
497
503
  }
498
504
  },
499
- table: [{3:1,4:2,6:3,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},{1:[3]},{5:[1,14],6:15,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},o($V6,[2,2]),o([5,13,14,15,16,17,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{8:16,65:17,73:18,74:19,75:20,77:21,22:$V8,35:$V9,76:$Va}),o([5,22,24,25,26,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,5],{10:25,11:26,12:27,13:[1,28],14:[1,29],15:[1,30],16:[1,31],17:$V0,18:[1,32],27:$V1,29:$V2,30:$V3,32:$V4,34:$V5}),o($Vb,[2,6]),o($Vb,[2,7]),o($Vc,$Vd,{28:33}),o($Vc,$Vd,{28:34}),{31:35,44:[1,37],45:38,48:36,49:[1,39],52:$Ve,53:$Vf,54:$Vg,55:$Vh},{31:53,33:44,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,59]},o($Vb,[2,15]),{1:[2,1]},o($V6,[2,3]),o($V6,[2,4]),o([16,22,24,25,26,35,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{77:21,73:60,11:61,75:62,10:65,5:[2,70],13:[1,66],14:[1,63],15:[1,64],17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5,76:[1,67]}),o($Vn,[2,98]),o($Vo,$V7,{73:68,77:69}),o($Vn,[2,102]),o([5,13,14,15,17,27,29,30,32],[2,110],{74:70,80:71,81:72,82:73,83:74,84:75,85:76,86:77,99:82,36:89,123:90,144:92,145:93,124:105,125:106,126:107,133:110,134:111,135:114,41:119,71:120,16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,40:$Vu,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,72:$Vz,76:$Va,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,132:$VQ,136:$VR,137:$VS,138:$VT,139:$VU}),o($VV,[2,111],{14:[1,125],22:[1,124],35:[1,123],67:[1,126]}),{22:[1,127],35:[1,128]},o($Vn,[2,125]),o($Vb,[2,8]),o($Vb,[2,9]),o($Vb,[2,10]),o($Vb,[2,11]),o($Vb,[2,12]),o($Vb,[2,13]),o($Vb,[2,14]),{19:129,20:130,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,27],{64:$V_}),o($Vb,[2,28],{64:$V_}),o($Vb,[2,29]),o($Vb,[2,45]),o($Vb,[2,46]),o($Vb,[2,47]),o($V$,[2,48],{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),o($V51,[2,52],{47:144,60:$V61,61:$V71}),o($V51,[2,53],{47:147,60:$V61,61:$V71}),o($V51,[2,54],{47:148,60:$V61,61:$V71}),o($V51,[2,55],{47:149,60:$V61,61:$V71}),o($Vb,[2,30]),o($V81,[2,32],{38:150,37:151,67:$Vm}),o($V91,[2,33],{68:154,69:156,44:[1,155],66:$Va1,67:$Vb1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,34],{40:[1,157]}),o($Vb,[2,35]),o($V81,[2,37],{37:158,67:$Vm}),o($Vb,[2,38]),o($Vb,[2,39]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,40],{69:156,68:159,47:160,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,41]),o($Vb,[2,42]),o([63,64],$Vd,{28:162}),o($Vd1,[2,72]),o($V$,$Ve1,{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),{47:163,60:$V61,61:$V71},{31:53,33:164,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vn,[2,100]),o($Vn,[2,101]),o($Vn,[2,103]),o($Vn,[2,104]),o($Vn,[2,105]),o($Vn,[2,106]),o($Vn,[2,107]),o($Vo,$V7,{77:69,73:165}),o($Vn,[2,99]),{16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,36:89,40:$Vu,41:119,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,71:120,72:$Vz,74:70,76:$Va,80:71,81:72,82:73,83:74,84:75,85:76,86:77,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,144:92,145:93},o($Vn,[2,109]),o($Vn,[2,129]),o($Vn,[2,130]),o($Vn,[2,131]),o($Vn,[2,132]),o($Vn,[2,133]),o($Vn,[2,134]),o($Vn,[2,135]),o($Vn,[2,136]),o($Vn,[2,137]),o($Vf1,$Vg1,{88:167,34:[1,172],44:[1,166],66:$Vh1,87:$Vi1,89:[1,170],90:[1,171],91:[1,173],92:[1,174],93:[1,175],94:[1,176],95:[1,177],96:[1,178],97:[1,179],98:[1,180]}),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,67:[1,181],71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,156]),o($Vr1,$Vs1,{37:193,67:$Vm}),o($Vn,[2,158]),o($Vn,[2,159]),o($Vn,[2,160]),o($Vn,[2,161]),o($Vn,[2,162]),o($Vn,[2,207]),o($Vr1,[2,250],{140:194,37:195,143:197,66:[1,196],67:$Vm}),{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,66:[1,199],71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:198},o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,132,136,137,138,139],[2,269],{122:[1,205]}),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,122,132,136,137,138,139],[2,270],{121:[1,206]}),{24:[1,214],44:[1,220],66:[1,222],67:$Vv1,72:[1,211],87:[1,212],102:207,103:208,105:209,107:[1,210],108:213,109:215,110:216,112:217,113:[1,225],114:[1,226],115:[1,227],116:[1,228],117:[1,223],118:[1,224],121:[1,218],122:[1,219]},o($Vn,[2,165]),o($Vn,[2,166]),o($Vn,[2,167]),o($Vn,[2,168]),o($Vn,[2,169]),o($Vn,[2,170]),o($Vn,[2,171]),o($Vn,[2,172]),o($Vn,[2,173]),o($Vn,[2,174]),o($Vw1,[2,208]),o($Vw1,[2,209]),{25:$Vx1,41:119,49:$Vw,71:120,72:$Vz,125:229,135:230},o($Vn,[2,271]),o($Vn,[2,273]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,237],{61:[1,232]}),o($Vw1,[2,239]),o($Vf1,[2,230],{66:[1,234],132:[1,233]}),o($Vf1,[2,231],{40:[1,235]}),o($Vw1,[2,240],{128:236,129:237,130:238,79:$Vy1,131:$Vz1}),o($Vw1,[2,246]),o($Vw1,[2,247]),o($Vw1,[2,248]),o($Vw1,[2,249]),o($VA1,[2,244]),o($VA1,[2,245]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$Ve1),o($VA1,[2,97]),o($Vn,[2,112]),o($Vn,[2,117]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,118],{35:[1,241]}),o($Vn,[2,121],{78:242,79:$VB1}),o($VV,[2,113],{14:[1,246],22:[1,245],35:[1,244],67:[1,247]}),o($Vn,[2,114]),{13:[1,248]},{13:[2,17],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},o($VD1,[2,18]),o($VD1,[2,21]),{20:251,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:252,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:253,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,63,64,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,69]),o($V$,[2,49],{51:254,44:$V01,58:$V31,59:$V41}),o($Vb,[2,50]),o($VE1,[2,60]),o($VE1,[2,61]),o($Vb,[2,62]),o($Vb,[2,63]),o($Vb,[2,64]),o($Vb,[2,56]),{37:255,67:$Vm},{37:256,67:$Vm},o($Vb,[2,57]),o($Vb,[2,58]),o($Vb,[2,59]),{40:[1,257]},{66:$Va1,67:$Vb1},o($Vd1,[2,73]),{37:258,67:$Vm},o($V$,[2,76],{69:259,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,77],{69:156,68:260,47:261,40:$VF1,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,88]),{37:263,67:$Vm},o($V91,[2,84],{69:156,68:264,44:[1,265],67:$Vb1}),o($V$,[2,82],{69:259,44:$Vc1}),o($V$,[2,44],{69:156,68:266,44:$Vc1}),{40:$VF1},{63:[1,267],64:$V_},o($Vb,[2,43]),o($Vb,[2,31]),o($Vn,[2,108]),o($Vn,[2,138]),o($Vn,[2,139]),o($Vf1,[2,232]),o($Vf1,[2,235]),o($Vn,[2,141]),o($Vn,[2,142]),o($Vn,[2,143]),o($Vn,[2,144]),o($Vn,[2,145]),o($Vn,[2,146]),o($Vn,[2,147]),o($Vn,[2,148]),o($Vn,[2,149]),o($Vn,[2,150]),o($Vn,[2,151]),o($Vn,[2,140]),{35:[1,268]},{31:53,33:269,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{31:53,33:270,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,271]},{14:[1,272],16:[1,276],25:[1,275],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:[1,274],124:273,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o([5,13,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,213],{14:[1,277]}),o($VG1,[2,214]),{25:[1,279],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:278,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:280,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{41:119,49:$Vw,71:120,72:$Vz,135:230},o($Vf1,$Vg1,{66:$Vh1,87:$Vi1}),o($VH1,[2,277],{35:[1,281],67:$Vb1}),o($Vn,[2,251]),o($Vr1,[2,264],{143:283,66:[1,282],67:$Vb1}),o($VI1,$VJ1,{37:284,67:$Vm}),o($Vn,[2,265],{66:$VK1}),{15:[1,286],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:288,82:287,84:289,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:290},o($VL1,[2,256]),{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:291,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:292,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VL1,$Vs1),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,272]),o($Vn,[2,274]),{101:[1,293]},{101:[1,294]},{16:[1,298],24:[1,297],40:[1,296],101:[2,175],106:295},{101:[2,178]},{101:[2,179]},{101:[2,180]},{67:$VM1,101:[2,181]},{67:$Vv1,108:300},{61:[1,301],66:[1,302],101:[2,184]},{101:[2,190],111:303,119:[1,304],120:[1,305]},{16:[1,307],24:[1,306]},o($VN1,[2,202]),o($VN1,[2,203]),o($VN1,[2,204]),o($VO1,[2,186]),o($VP1,[2,188]),o($VQ1,[2,198]),o($VQ1,[2,199]),o($VR1,[2,194]),o($VR1,[2,195]),o($VR1,[2,196]),o($VR1,[2,197]),o($Vw1,[2,210]),o($Vw1,[2,242],{129:237,130:238,128:308,79:$Vy1,131:$Vz1}),{16:$Vj1,25:$Vk1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vw1,[2,238]),o($Vf1,[2,233]),o($Vf1,[2,236]),o($Vf1,[2,234]),o($Vw1,[2,241]),o($Vw1,[2,223],{79:[1,309]}),o($Vw1,[2,224],{131:[1,310]}),o($VS1,[2,225]),o($VT1,[2,227]),o($Vn,[2,119]),o($Vn,[2,122],{79:$VU1}),{67:[1,312]},o($Vn,[2,115]),{35:[1,313]},o($Vn,[2,120]),o($Vn,[2,123],{78:314,79:$VB1}),o($Vb,[2,16]),o($VD1,[2,19]),o($VD1,[2,20]),{16:[1,315],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,316],15:[1,317],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,319],15:[1,318],21:249,22:$VC1,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,51]),o($V81,[2,65],{67:$Vb1}),o($V81,[2,66],{67:$Vb1}),{37:320,67:$Vm},o($V81,[2,71],{67:$Vb1}),o($Vb,[2,89]),o($V$,[2,78],{69:259,44:$Vc1}),o($V$,[2,79],{69:156,68:321,44:$Vc1}),{36:323,37:324,41:327,44:$VV1,47:325,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:322},o($V81,[2,74],{67:$Vb1}),o($V$,[2,85],{69:259,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,86],{69:156,68:328,40:$VF1,44:$Vc1}),o($V$,[2,83],{69:259,44:$Vc1}),o($Vb,[2,67]),{31:53,33:329,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{14:[1,330]},{14:[1,331]},{31:53,33:332,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vw1,[2,211]),o($VG1,[2,215]),{25:[1,334],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:333,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:335,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VG1,[2,222]),o($Vw1,[2,212]),o($VG1,[2,216]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:336,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VG1,[2,218]),{37:337,67:$Vm},o($VI1,$VJ1,{37:338,67:$Vm}),o($Vn,[2,266],{66:$VK1}),o($Vr1,[2,263],{67:$Vb1}),o($Vw1,[2,268]),o($Vn,[2,254]),o($VL1,[2,258]),o($VL1,[2,259]),o($VL1,[2,260]),{15:[1,339],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:288,82:287,84:289,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VL1,[2,257]),o($VL1,[2,261]),o($Vn,[2,163]),o($Vn,[2,164]),{101:[2,176]},{36:323,37:324,41:327,44:$VV1,47:325,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:340},{101:[2,205]},{101:[2,206]},o($VO1,[2,187]),{16:[1,341],67:$VM1,101:[2,183]},{101:[2,185]},o($VP1,[2,189]),{101:[2,191]},{101:[2,200]},{101:[2,201]},{101:[2,192]},{101:[2,193]},o($Vw1,[2,243]),o($VS1,[2,226]),o($VT1,[2,228]),{67:[1,342]},o($VW1,[2,126]),o($Vn,[2,116]),o($Vn,[2,124],{79:$VU1}),o($VD1,[2,22]),o($VD1,[2,23]),o($VD1,[2,25]),o($VD1,[2,24]),o($VD1,[2,26]),o($V81,[2,36],{67:$Vb1}),o($V$,[2,80],{69:259,44:$Vc1}),o($Vb,[2,90]),o($Vb,[2,91]),o($V81,[2,92],{67:$Vb1}),o($Vb,[2,93]),o($Vb,[2,94]),o($Vb,[2,95]),o($V$,[2,87],{69:259,44:$Vc1}),{14:[1,343]},o($Vn,[2,153]),o($Vn,[2,154]),{14:[1,344]},o($VG1,[2,217]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:345,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VG1,[2,219]),o($VG1,[2,221]),o($VH1,[2,276],{35:[1,346],67:$Vb1}),o($Vr1,[2,262],{67:$Vb1}),o($Vn,[2,255]),{101:[2,177]},{101:[2,182]},o($VW1,[2,127]),o($Vn,[2,152]),o($Vn,[2,155]),o($VG1,[2,220]),{37:347,67:$Vm},o($Vr1,[2,275],{67:$Vb1})],
500
- defaultActions: {14:[2,1],210:[2,178],211:[2,179],212:[2,180],295:[2,176],297:[2,205],298:[2,206],301:[2,185],303:[2,191],304:[2,200],305:[2,201],306:[2,192],307:[2,193],340:[2,177],341:[2,182]},
505
+ table: [{3:1,4:2,6:3,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},{1:[3]},{5:[1,14],6:15,7:4,9:5,10:6,11:7,17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5},o($V6,[2,2]),o([5,13,14,15,16,17,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{8:16,65:17,73:18,74:19,75:20,77:21,22:$V8,35:$V9,76:$Va}),o([5,22,24,25,26,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,5],{10:25,11:26,12:27,13:[1,28],14:[1,29],15:[1,30],16:[1,31],17:$V0,18:[1,32],27:$V1,29:$V2,30:$V3,32:$V4,34:$V5}),o($Vb,[2,6]),o($Vb,[2,7]),o($Vc,$Vd,{28:33}),o($Vc,$Vd,{28:34}),{31:35,44:[1,37],45:38,48:36,49:[1,39],52:$Ve,53:$Vf,54:$Vg,55:$Vh},{31:53,33:44,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,59]},o($Vb,[2,15]),{1:[2,1]},o($V6,[2,3]),o($V6,[2,4]),o([16,22,24,25,26,35,40,44,49,61,62,67,72,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],$V7,{77:21,73:60,11:61,75:62,10:65,5:[2,70],13:[1,66],14:[1,63],15:[1,64],17:$V0,27:$V1,29:$V2,30:$V3,32:$V4,34:$V5,76:[1,67]}),o($Vn,[2,98]),o($Vo,$V7,{73:68,77:69}),o($Vn,[2,102]),o([5,13,14,15,17,27,29,30,32],[2,110],{74:70,80:71,81:72,82:73,83:74,84:75,85:76,86:77,99:82,36:89,123:90,144:92,145:93,124:105,125:106,126:107,133:110,134:111,135:114,41:119,71:120,16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,40:$Vu,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,72:$Vz,76:$Va,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,132:$VQ,136:$VR,137:$VS,138:$VT,139:$VU}),o($VV,[2,111],{14:[1,125],22:[1,124],35:[1,123],67:[1,126]}),{22:[1,127],35:[1,128]},o($Vn,[2,125]),o($Vb,[2,8]),o($Vb,[2,9]),o($Vb,[2,10]),o($Vb,[2,11]),o($Vb,[2,12]),o($Vb,[2,13]),o($Vb,[2,14]),{19:129,20:130,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,27],{64:$V_}),o($Vb,[2,28],{64:$V_}),o($Vb,[2,29]),o($Vb,[2,45]),o($Vb,[2,46]),o($Vb,[2,47]),o($V$,[2,48],{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),o($V51,[2,52],{47:144,60:$V61,61:$V71}),o($V51,[2,53],{47:147,60:$V61,61:$V71}),o($V51,[2,54],{47:148,60:$V61,61:$V71}),o($V51,[2,55],{47:149,60:$V61,61:$V71}),o($Vb,[2,30]),o($V81,[2,32],{38:150,37:151,67:$Vm}),o($V91,[2,33],{68:154,69:156,44:[1,155],66:$Va1,67:$Vb1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,34],{40:[1,157]}),o($Vb,[2,35]),o($V81,[2,37],{37:158,67:$Vm}),o($Vb,[2,38]),o($Vb,[2,39]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,40],{69:156,68:159,47:160,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,41]),o($Vb,[2,42]),o([63,64],$Vd,{28:162}),o($Vd1,[2,72]),o($V$,$Ve1,{50:137,51:138,44:$V01,56:$V11,57:$V21,58:$V31,59:$V41}),{47:163,60:$V61,61:$V71},{31:53,33:164,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vn,[2,100]),o($Vn,[2,101]),o($Vn,[2,103]),o($Vn,[2,104]),o($Vn,[2,105]),o($Vn,[2,106]),o($Vn,[2,107]),o($Vo,$V7,{77:69,73:165}),o($Vn,[2,99]),{16:$Vp,22:$V8,24:$Vq,25:$Vr,26:$Vs,34:$Vt,35:$V9,36:89,40:$Vu,41:119,44:$Vv,49:$Vw,61:$Vx,62:$Vl,67:$Vy,71:120,72:$Vz,74:70,76:$Va,80:71,81:72,82:73,83:74,84:75,85:76,86:77,87:$VA,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,121:$VO,122:$VP,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,144:92,145:93},o($Vn,[2,109]),o($Vn,[2,131]),o($Vn,[2,132]),o($Vn,[2,133]),o($Vn,[2,134]),o($Vn,[2,135]),o($Vn,[2,136]),o($Vn,[2,137]),o($Vn,[2,138]),o($Vn,[2,139]),o($Vf1,$Vg1,{88:167,34:[1,172],44:[1,166],66:$Vh1,87:$Vi1,89:[1,170],90:[1,171],91:[1,173],92:[1,174],93:[1,175],94:[1,176],95:[1,177],96:[1,178],97:[1,179],98:[1,180]}),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,67:[1,181],71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,159]),o($Vr1,$Vs1,{37:193,67:$Vm}),o($Vn,[2,161]),o($Vn,[2,162]),o($Vn,[2,163]),o($Vn,[2,164]),o($Vn,[2,165]),o($Vn,[2,210]),o($Vr1,[2,253],{140:194,37:195,143:197,66:[1,196],67:$Vm}),{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,66:[1,199],71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:198},o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,132,136,137,138,139],[2,272],{122:[1,205]}),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,122,132,136,137,138,139],[2,273],{121:[1,206]}),{24:[1,214],44:[1,220],66:[1,222],67:$Vv1,72:[1,211],87:[1,212],102:207,103:208,105:209,107:[1,210],108:213,109:215,110:216,112:217,113:[1,225],114:[1,226],115:[1,227],116:[1,228],117:[1,223],118:[1,224],121:[1,218],122:[1,219]},o($Vn,[2,168]),o($Vn,[2,169]),o($Vn,[2,170]),o($Vn,[2,171]),o($Vn,[2,172]),o($Vn,[2,173]),o($Vn,[2,174]),o($Vn,[2,175]),o($Vn,[2,176]),o($Vn,[2,177]),o($Vw1,[2,211]),o($Vw1,[2,212]),{25:$Vx1,41:119,49:$Vw,71:120,72:$Vz,125:229,135:230},o($Vn,[2,274]),o($Vn,[2,276]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,240],{61:[1,232]}),o($Vw1,[2,242]),o($Vf1,[2,233],{66:[1,234],132:[1,233]}),o($Vf1,[2,234],{40:[1,235]}),o($Vw1,[2,243],{128:236,129:237,130:238,79:$Vy1,131:$Vz1}),o($Vw1,[2,249]),o($Vw1,[2,250]),o($Vw1,[2,251]),o($Vw1,[2,252]),o($VA1,[2,247]),o($VA1,[2,248]),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,79,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,131,132,136,137,138,139],$Ve1),o($VA1,[2,97]),o($Vn,[2,112]),o($Vn,[2,117]),o([5,13,14,15,16,17,22,24,25,26,27,29,30,32,34,40,44,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,118],{35:[1,241]}),o($VB1,[2,121],{78:242,61:$VC1,79:$VD1}),o($VV,[2,113],{14:[1,247],22:[1,246],35:[1,245],67:[1,248]}),o($Vn,[2,114]),{13:[1,249]},{13:[2,17],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},o($VF1,[2,18]),o($VF1,[2,21]),{20:252,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:253,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},{20:254,21:131,23:$VW,24:$VX,25:$VY,26:$VZ},o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,63,64,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,69]),o($V$,[2,49],{51:255,44:$V01,58:$V31,59:$V41}),o($Vb,[2,50]),o($VG1,[2,60]),o($VG1,[2,61]),o($Vb,[2,62]),o($Vb,[2,63]),o($Vb,[2,64]),o($Vb,[2,56]),{37:256,67:$Vm},{37:257,67:$Vm},o($Vb,[2,57]),o($Vb,[2,58]),o($Vb,[2,59]),{40:[1,258]},{66:$Va1,67:$Vb1},o($Vd1,[2,73]),{37:259,67:$Vm},o($V$,[2,76],{69:260,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,77],{69:156,68:261,47:262,40:$VH1,44:$Vc1,60:$V61,61:$V71}),o($Vb,[2,88]),{37:264,67:$Vm},o($V91,[2,84],{69:156,68:265,44:[1,266],67:$Vb1}),o($V$,[2,82],{69:260,44:$Vc1}),o($V$,[2,44],{69:156,68:267,44:$Vc1}),{40:$VH1},{63:[1,268],64:$V_},o($Vb,[2,43]),o($Vb,[2,31]),o($Vn,[2,108]),o($Vn,[2,140]),o($Vn,[2,141]),o($Vf1,[2,235]),o($Vf1,[2,238]),o($Vn,[2,144]),o($Vn,[2,145]),o($Vn,[2,146]),o($Vn,[2,147]),o($Vn,[2,148]),o($Vn,[2,149]),o($Vn,[2,150]),o($Vn,[2,151]),o($Vn,[2,152]),o($Vn,[2,153]),o($Vn,[2,154]),o($VB1,[2,142],{78:269,61:$VC1,79:$VD1}),{35:[1,270]},{31:53,33:271,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{31:53,33:272,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{35:[1,273]},{14:[1,274],16:[1,278],25:[1,277],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:[1,276],124:275,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o([5,13,15,16,17,22,24,25,26,27,29,30,32,34,35,40,44,49,61,62,66,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,216],{14:[1,279]}),o($VI1,[2,217]),{25:[1,281],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:280,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:282,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{41:119,49:$Vw,71:120,72:$Vz,135:230},o($Vf1,$Vg1,{66:$Vh1,87:$Vi1}),o($VJ1,[2,280],{35:[1,283],67:$Vb1}),o($Vn,[2,254]),o($Vr1,[2,267],{143:285,66:[1,284],67:$Vb1}),o($VK1,$VL1,{37:286,67:$Vm}),o($Vn,[2,268],{66:$VM1}),{15:[1,288],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:290,82:289,84:291,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:201,82:200,84:202,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU,142:292},o($VN1,[2,259]),{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:293,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{25:$Vx1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,82:294,87:$Vp1,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VN1,$Vs1),{16:$Vj1,25:$Vk1,30:$Vl1,32:$Vm1,34:$Vn1,40:$Vu,41:119,44:$Vo1,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vn,[2,275]),o($Vn,[2,277]),{101:[1,295]},{101:[1,296]},{16:[1,300],24:[1,299],40:[1,298],101:[2,178],106:297},{101:[2,181]},{101:[2,182]},{101:[2,183]},{67:$VO1,101:[2,184]},{67:$Vv1,108:302},{61:[1,303],66:[1,304],101:[2,187]},{101:[2,193],111:305,119:[1,306],120:[1,307]},{16:[1,309],24:[1,308]},o($VP1,[2,205]),o($VP1,[2,206]),o($VP1,[2,207]),o($VQ1,[2,189]),o($VR1,[2,191]),o($VS1,[2,201]),o($VS1,[2,202]),o($VT1,[2,197]),o($VT1,[2,198]),o($VT1,[2,199]),o($VT1,[2,200]),o($Vw1,[2,213]),o($Vw1,[2,245],{129:237,130:238,128:310,79:$Vy1,131:$Vz1}),{16:$Vj1,25:$Vk1,40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,100:$Vq1,124:188,126:191,127:186,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($Vw1,[2,241]),o($Vf1,[2,236]),o($Vf1,[2,239]),o($Vf1,[2,237]),o($Vw1,[2,244]),o($Vw1,[2,226],{79:[1,311]}),o($Vw1,[2,227],{131:[1,312]}),o($VU1,[2,228]),o($VV1,[2,230]),o($Vn,[2,119]),o($VB1,[2,122],{61:$VW1,79:$VX1}),{67:[1,315]},{67:[1,316]},o($Vn,[2,115]),{35:[1,317]},o($Vn,[2,120]),o($VB1,[2,123],{78:318,61:$VC1,79:$VD1}),o($Vb,[2,16]),o($VF1,[2,19]),o($VF1,[2,20]),{16:[1,319],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,320],15:[1,321],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},{14:[1,323],15:[1,322],21:250,22:$VE1,23:$VW,24:$VX,25:$VY,26:$VZ},o($Vb,[2,51]),o($V81,[2,65],{67:$Vb1}),o($V81,[2,66],{67:$Vb1}),{37:324,67:$Vm},o($V81,[2,71],{67:$Vb1}),o($Vb,[2,89]),o($V$,[2,78],{69:260,44:$Vc1}),o($V$,[2,79],{69:156,68:325,44:$Vc1}),{36:327,37:328,41:331,44:$VY1,47:329,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:326},o($V81,[2,74],{67:$Vb1}),o($V$,[2,85],{69:260,44:$Vc1}),o([5,13,14,15,16,17,18,22,24,25,26,27,29,30,32,34,35,49,61,62,67,72,76,87,89,90,91,92,93,94,95,96,97,98,100,101,104,121,122,132,136,137,138,139],[2,86],{69:156,68:332,40:$VH1,44:$Vc1}),o($V$,[2,83],{69:260,44:$Vc1}),o($Vb,[2,67]),o($VB1,[2,143],{61:$VW1,79:$VX1}),{31:53,33:333,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},{14:[1,334]},{14:[1,335]},{31:53,33:336,36:45,37:46,38:47,39:48,41:49,42:50,43:51,44:$Vi,45:54,46:$Vj,48:36,49:$Vk,52:$Ve,53:$Vf,54:$Vg,55:$Vh,62:$Vl,67:$Vm},o($Vw1,[2,214]),o($VI1,[2,218]),{25:[1,338],40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:337,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:339,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VI1,[2,225]),o($Vw1,[2,215]),o($VI1,[2,219]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:340,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VI1,[2,221]),{37:341,67:$Vm},o($VK1,$VL1,{37:342,67:$Vm}),o($Vn,[2,269],{66:$VM1}),o($Vr1,[2,266],{67:$Vb1}),o($Vw1,[2,271]),o($Vn,[2,257]),o($VN1,[2,261]),o($VN1,[2,262]),o($VN1,[2,263]),{15:[1,343],16:$Vp,24:$Vt1,25:$Vu1,34:$Vt,40:$Vu,41:119,49:$Vw,61:$Vx,71:120,72:$Vz,80:290,82:289,84:291,87:$Vp1,89:$VB,90:$VC,91:$VD,92:$VE,93:$VF,94:$VG,95:$VH,96:$VI,97:$VJ,98:$VK,99:82,100:$VL,101:$VM,104:$VN,123:90,124:105,125:106,126:107,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VN1,[2,260]),o($VN1,[2,264]),o($Vn,[2,166]),o($Vn,[2,167]),{101:[2,179]},{36:327,37:328,41:331,44:$VY1,47:329,49:$Vw,60:$V61,61:$V71,62:$Vl,67:$Vm,70:344},{101:[2,208]},{101:[2,209]},o($VQ1,[2,190]),{16:[1,345],67:$VO1,101:[2,186]},{101:[2,188]},o($VR1,[2,192]),{101:[2,194]},{101:[2,203]},{101:[2,204]},{101:[2,195]},{101:[2,196]},o($Vw1,[2,246]),o($VU1,[2,229]),o($VV1,[2,231]),{67:[1,346]},{67:[1,347]},o($VZ1,[2,126]),o($VZ1,[2,127]),o($Vn,[2,116]),o($VB1,[2,124],{61:$VW1,79:$VX1}),o($VF1,[2,22]),o($VF1,[2,23]),o($VF1,[2,25]),o($VF1,[2,24]),o($VF1,[2,26]),o($V81,[2,36],{67:$Vb1}),o($V$,[2,80],{69:260,44:$Vc1}),o($Vb,[2,90]),o($Vb,[2,91]),o($V81,[2,92],{67:$Vb1}),o($Vb,[2,93]),o($Vb,[2,94]),o($Vb,[2,95]),o($V$,[2,87],{69:260,44:$Vc1}),{14:[1,348]},o($Vn,[2,156]),o($Vn,[2,157]),{14:[1,349]},o($VI1,[2,220]),{40:$Vu,41:119,49:$Vw,71:120,72:$Vz,87:$Vp1,124:350,126:191,132:$VQ,133:110,134:111,135:114,136:$VR,137:$VS,138:$VT,139:$VU},o($VI1,[2,222]),o($VI1,[2,224]),o($VJ1,[2,279],{35:[1,351],67:$Vb1}),o($Vr1,[2,265],{67:$Vb1}),o($Vn,[2,258]),{101:[2,180]},{101:[2,185]},o($VZ1,[2,128]),o($VZ1,[2,129]),o($Vn,[2,155]),o($Vn,[2,158]),o($VI1,[2,223]),{37:352,67:$Vm},o($Vr1,[2,278],{67:$Vb1})],
506
+ defaultActions: {14:[2,1],210:[2,181],211:[2,182],212:[2,183],297:[2,179],299:[2,208],300:[2,209],303:[2,188],305:[2,194],306:[2,203],307:[2,204],308:[2,195],309:[2,196],344:[2,180],345:[2,185]},
501
507
  parseError: function parseError (str, hash) {
502
508
  if (hash.recoverable) {
503
509
  this.trace(str);
@@ -6,6 +6,7 @@
6
6
  import parse from "../abc/parser.js";
7
7
  import { Phonet, Accidental, ArticulationType, OrnamentType, DynamicType, HairpinType, PedalType, NavigationMarkType, Placement, } from "./types.js";
8
8
  import { parseStaffLayout, StaffGroupType } from "./staffLayout.js";
9
+ import { buildMeasureLayout, applyNavText } from "./measureLayoutFromXml.js";
9
10
  // ============ Constants ============
10
11
  // NotaGen catalog tags appear as leading single-% comments in ABC files,
11
12
  // in the order: period, composer, instrumentation. They are mapped to
@@ -406,6 +407,112 @@ const convertBarline = (bar) => {
406
407
  return "|";
407
408
  }
408
409
  };
410
+ // First integer of a volta spec ("2" from "2", "1" from "1,2", "1" from "1,3,5").
411
+ const firstVoltaNum = (spec) => {
412
+ const m = spec.match(/\d+/);
413
+ return m ? parseInt(m[0], 10) : 1;
414
+ };
415
+ // Pull a trailing volta digit list out of a bar string: ":|1,2" → "1,2", "|2" → "2",
416
+ // "|" / ":|" / "|]" → undefined. (The repeat glyph is stripped; only the volta remains.)
417
+ const trailVoltaOf = (bar) => {
418
+ const m = bar.match(/(\d+(?:,\d+)*)$/);
419
+ return m ? m[1] : undefined;
420
+ };
421
+ /**
422
+ * Build a MeasureRepeatInfo[] from the per-measure ABC bar tokens, mirroring how
423
+ * abc2xml maps ABC bars to MusicXML <repeat>/<ending> (so this converges with the
424
+ * MusicXML→lilylet path through the shared buildMeasureLayout). One entry per lilylet
425
+ * measure (indices are 1:1 — the decoder never merges bars).
426
+ *
427
+ * ABC convention (matches abc2xml): a repeat-START "|:" / volta-START "[1" attaches to
428
+ * the bar PRECEDING the measure it opens, i.e. the trailing bar of measure N opens the
429
+ * repeat/volta of measure N+1. A repeat-END ":|" closes ON measure N. "::"/":|:" both
430
+ * ends (on N) and starts (on N+1). The 3×-repeat forms ("|::"/"::|") are treated as a
431
+ * plain 2× backward+forward pair, exactly as abc2xml emits them.
432
+ */
433
+ const collectAbcRepeatInfo = (bars) => {
434
+ const n = bars.length;
435
+ const infos = [];
436
+ for (let i = 0; i < n; i++)
437
+ infos.push({ index: i + 1 });
438
+ // Track the currently-open volta so we can close it (endingStop) when the next
439
+ // volta opens or a repeat ends — abc2xml back-patches the stop onto the prior
440
+ // measure's right barline; here we set endingStop on the measure before the new one.
441
+ let openEndingStart = -1; // measure index (1-based) where the current volta began
442
+ const closeOpenEnding = (lastIndex) => {
443
+ if (openEndingStart >= 1 && lastIndex >= openEndingStart) {
444
+ infos[lastIndex - 1].endingStop = infos[openEndingStart - 1].endingStart;
445
+ }
446
+ openEndingStart = -1;
447
+ };
448
+ // ABC marks the "to coda" jump origin and the coda landing with the SAME !coda!
449
+ // glyph: the first occurrence is the To-Coda jump, the second is the Coda section.
450
+ // (applyNavText can't tell them apart from a lone "coda" word, so disambiguate here.)
451
+ let codaSeen = 0;
452
+ for (let i = 0; i < n; i++) {
453
+ const idx = i + 1; // 1-based measure index
454
+ const info = infos[i];
455
+ const { trailBar, leadVolta, navTexts } = bars[i];
456
+ // Navigation directives / glyphs (D.C./D.S./al Fine/al Coda, Fine, Coda, Segno)
457
+ // → MeasureRepeatInfo flags via the shared recognizer, so ABC and MusicXML derive
458
+ // the same jumps. The first !coda! is the To-Coda origin, the second the landing.
459
+ for (const raw of navTexts || []) {
460
+ if (/\bcoda\b/i.test(raw) && !/\b(to|al)\s*coda\b/i.test(raw)) {
461
+ // bare "Coda" glyph: 1st = tocoda origin, 2nd = coda landing
462
+ if (codaSeen === 0)
463
+ info.tocoda = true;
464
+ else
465
+ info.coda = true;
466
+ codaSeen++;
467
+ }
468
+ else {
469
+ applyNavText(info, raw);
470
+ }
471
+ }
472
+ // A bracket-volta term ("[1") at the START of this measure opens an ending here.
473
+ if (leadVolta !== undefined) {
474
+ if (openEndingStart >= 1 && openEndingStart !== idx)
475
+ closeOpenEnding(idx - 1);
476
+ info.endingStart = firstVoltaNum(leadVolta);
477
+ openEndingStart = idx;
478
+ }
479
+ if (!trailBar)
480
+ continue;
481
+ // Repeat END on this measure: any bar beginning with ":|" or "::".
482
+ // Consistency note: like abc2xml, we do NOT honor the ABC 3×-repeat forms
483
+ // ("|::"/"::|") as a times count — abc2xml emits them as a plain backward+forward
484
+ // repeat pair (2×), and matching that keeps the ABC and MusicXML paths identical.
485
+ const isEndStart = trailBar === ":|:" || trailBar === ":||:" || trailBar === "::";
486
+ const isEnd = trailBar.startsWith(":|") || trailBar.startsWith("::");
487
+ if (isEnd) {
488
+ info.repeatEnd = true;
489
+ closeOpenEnding(idx);
490
+ }
491
+ // Repeat START opened by this trailing bar attaches to the NEXT measure
492
+ // ("|:" forward, ":|:"/"::"/":||:" end-and-start).
493
+ const startsNext = trailBar.includes("|:") || isEndStart;
494
+ if (startsNext && idx < n) {
495
+ infos[idx].repeatStart = true;
496
+ }
497
+ // A trailing volta digit ("|2", ":|1,2") opens an ending on the NEXT measure.
498
+ const tv = trailVoltaOf(trailBar);
499
+ if (tv !== undefined && idx < n) {
500
+ if (openEndingStart >= 1)
501
+ closeOpenEnding(idx);
502
+ infos[idx].endingStart = firstVoltaNum(tv);
503
+ openEndingStart = idx + 1;
504
+ }
505
+ else if ((trailBar === "||" || trailBar === "|]" || trailBar === ":|]") && openEndingStart >= 1 && openEndingStart <= idx) {
506
+ // A section bar ("||", final "|]") closes an open ending here — matching
507
+ // abc2xml, which stops the volta at the next structural bar (so a trailing
508
+ // final ending like ":|2 …||" is a single section, not run to piece end).
509
+ closeOpenEnding(idx);
510
+ }
511
+ }
512
+ // Close a still-open final volta at the last measure.
513
+ closeOpenEnding(n);
514
+ return infos;
515
+ };
409
516
  // All voice numbers under a node, flattened.
410
517
  const collectScoreVoices = (node) => {
411
518
  if (typeof node === "string") {
@@ -1230,6 +1337,10 @@ const decodeTune = (tune, options = {}) => {
1230
1337
  const voiceKeyAlterations = new Map();
1231
1338
  // Process each ABC measure into Lilylet Measure
1232
1339
  const lilyletMeasures = [];
1340
+ // Per-measure repeat markup (trailing bar + leading bracket-volta), gathered for the
1341
+ // reference voice so we can derive metadata.measureLayout after the loop. ABC repeat
1342
+ // markup is voice-global by convention, so one voice suffices.
1343
+ const barInfos = [];
1233
1344
  for (let mi = 0; mi < measures.length; mi++) {
1234
1345
  const abcMeasure = measures[mi];
1235
1346
  // Group patches by voice number
@@ -1241,6 +1352,52 @@ const decodeTune = (tune, options = {}) => {
1241
1352
  }
1242
1353
  voicePatches.get(voiceNum).push(patch);
1243
1354
  }
1355
+ // Capture this measure's repeat markup from the reference voice (the lowest
1356
+ // voice number present). trailBar = its raw trailing bar; leadVolta = a "[N"
1357
+ // bracket-volta term at the start of its music. Navigation directives/glyphs
1358
+ // (!D.C.!/!D.S.!/!fine!/!coda!/!segno!) are gathered from ALL voices, since an
1359
+ // engraver may place them on any single staff of a grand-staff system.
1360
+ {
1361
+ const refVoice = Math.min(...Array.from(voicePatches.keys()));
1362
+ const refPatches = voicePatches.get(refVoice) || [];
1363
+ let trailBar = null;
1364
+ let leadVolta;
1365
+ for (const p of refPatches) {
1366
+ if (p.bar)
1367
+ trailBar = p.bar; // last non-null trailing bar wins
1368
+ if (leadVolta === undefined) {
1369
+ const vt = (p.terms || []).find((t) => t.volta !== undefined);
1370
+ if (vt)
1371
+ leadVolta = vt.volta;
1372
+ }
1373
+ }
1374
+ const navTexts = [];
1375
+ for (const patches of voicePatches.values()) {
1376
+ for (const p of patches) {
1377
+ for (const t of (p.terms || [])) {
1378
+ // !D.C.!/!D.S.! (incl. "al fine"/"al coda") → directive text.
1379
+ if (typeof t.directive === "string")
1380
+ navTexts.push(t.directive);
1381
+ // !fine!/!coda!/!segno! decorations parse to an articulation name.
1382
+ else if (t.articulation === "fine" || t.articulation === "coda" || t.articulation === "segno") {
1383
+ navTexts.push(t.articulation);
1384
+ }
1385
+ // A quoted text annotation that is EXACTLY a navigation word
1386
+ // ("Fine", "D.C. al Fine", "Coda", …) is treated as navigation, as
1387
+ // abc2xml does. Strip the placement prefix (^/_/</>/@) and trailing
1388
+ // punctuation; require a pure nav phrase so ordinary text/lyrics are
1389
+ // not misread.
1390
+ else if (typeof t.text === "string") {
1391
+ const body = t.text.replace(/^[\^_<>@]/, "").trim().replace(/[.\s]+$/, "");
1392
+ if (/^(d\.?\s*[cs]\.?(\s+al\s+(fine|coda))?|fine|coda|segno|to\s*coda)$/i.test(body)) {
1393
+ navTexts.push(body);
1394
+ }
1395
+ }
1396
+ }
1397
+ }
1398
+ }
1399
+ barInfos.push({ trailBar, leadVolta, navTexts: navTexts.length ? navTexts : undefined });
1400
+ }
1244
1401
  // Process each voice
1245
1402
  const partVoicesMap = new Map(); // partIndex → (staffNum → voices)
1246
1403
  for (const [voiceNum, patches] of voicePatches) {
@@ -1346,6 +1503,16 @@ const decodeTune = (tune, options = {}) => {
1346
1503
  });
1347
1504
  }
1348
1505
  }
1506
+ // Derive a performance-order measure layout from the ABC repeat/volta markup,
1507
+ // converging with the MusicXML path via the shared buildMeasureLayout. Emitted as
1508
+ // metadata.measureLayout → serialized [measures "..."] → MEI <expansion>.
1509
+ try {
1510
+ const repeatInfos = collectAbcRepeatInfo(barInfos);
1511
+ const layout = buildMeasureLayout(repeatInfos, repeatInfos.length);
1512
+ if (layout)
1513
+ metadata.measureLayout = layout;
1514
+ }
1515
+ catch { /* repeat derivation is best-effort; never block decode */ }
1349
1516
  const doc = {
1350
1517
  measures: lilyletMeasures,
1351
1518
  };