diff --git a/assets/index-4830ff2e.js b/assets/index-a56193be.js similarity index 96% rename from assets/index-4830ff2e.js rename to assets/index-a56193be.js index be3caae..d683f16 100644 --- a/assets/index-4830ff2e.js +++ b/assets/index-a56193be.js @@ -580,7 +580,7 @@ Topos is made to be controlled entirely with a keyboard. It is recommanded to st `+u.line+" | "+g+` `+m+" | "+t("",l.column-1," ")+t("",v,"^")}else a+=` at `+d}return a},e.buildMessage=function(i,a){var s={literal:function(g){return'"'+l(g.text)+'"'},class:function(g){var b=g.parts.map(function(v){return Array.isArray(v)?u(v[0])+"-"+u(v[1]):u(v)});return"["+(g.inverted?"^":"")+b.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(g){return g.description}};function o(g){return g.charCodeAt(0).toString(16).toUpperCase()}function l(g){return g.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(b){return"\\x0"+o(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+o(b)})}function u(g){return g.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(b){return"\\x0"+o(b)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(b){return"\\x"+o(b)})}function d(g){return s[g.type](g)}function f(g){var b=g.map(d),v,A;if(b.sort(),b.length>0){for(v=1,A=1;v",X="[",p="+",E="*",O="%",y="&",D="|",P="<<",w=">>",B=/^[' '\t\r\n]/,re=/^[0-9]/,ie=en(["'"," ","'"," ","\r",` -`],!1,!1),j=bt("(",!1),J=bt(",",!1),L=bt(")",!1),G=en([["0","9"]],!1,!1),Z=bt(".",!1),z=bt("-",!1),ce=bt("/",!1),ue=bt("\\",!1),Te=bt("<",!1),ke=bt(">",!1),Ve=bt("[",!1),Re=bt("+",!1),Ie=bt("*",!1),le=bt("%",!1),Pe=bt("&",!1),je=bt("|",!1),He=bt("<<",!1),rt=bt(">>",!1),ft=function(Y){return FM(Y.filter(ee=>ee))},Ct=function(){},Vt=function(Y,ee){return Math.floor(Math.random()*(ee-Y+1)+Y)},ht=function(Y,ee){return Math.random()*(ee-Y)+Y},Nt=function(){return parseFloat(ot())},Mt=function(){return parseInt(ot())},Gr=function(Y){return xA(Y)},Fe=function(Y,ee){return Y/ee},Mr=function(Y,ee){return Math.pow(2,Y/ee)},st=function(Y,ee,se,fe){var Se=fe?se/fe:se;return Math.pow(Se,Y/ee)},$e=function(Y,ee){return parseFloat(Y.toString()+"."+ee.toString())},Pr=function(Y){return Y.filter(ee=>ee)},nr=function(Y){return UM(Y)},hr=function(){return GM(ot())},V=0,he=0,ve=[{line:1,column:1}],Ce=0,Ke=[],Ee={},Gt;if("startRule"in a){if(!(a.startRule in l))throw new Error(`Can't start parsing from rule "`+a.startRule+'".');u=l[a.startRule]}function ot(){return i.substring(he,V)}function bt(Y,ee){return{type:"literal",text:Y,ignoreCase:ee}}function en(Y,ee,se){return{type:"class",parts:Y,inverted:ee,ignoreCase:se}}function lt(){return{type:"end"}}function Wt(Y){var ee=ve[Y],se;if(ee)return ee;for(se=Y-1;!ve[se];)se--;for(ee=ve[se],ee={line:ee.line,column:ee.column};seCe&&(Ce=V,Ke=[]),Ke.push(Y))}function H(Y,ee,se){return new e(e.buildMessage(Y,ee),Y,ee,se)}function Ot(){var Y,ee,se,fe=V*17+0,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=br(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt())))),se!==s)for(;se!==s;)ee.push(se),se=br(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt()))));else ee=s;return ee!==s&&(he=Y,ee=ft(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function nt(){var Y,ee,se=V*17+1,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,B.test(i.charAt(V))?(ee=i.charAt(V),V++):(ee=s,we(ie)),ee!==s&&(he=Y,ee=Ct()),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function Qt(){var Y,ee=V*17+2,se=Ee[ee];return se?(V=se.nextPos,se.result):(Y=Ge(),Y===s&&(Y=Dt(),Y===s&&(Y=cr(),Y===s&&(Y=ze()))),Ee[ee]={nextPos:V,result:Y},Y)}function cr(){var Y,ee,se,fe,Se,xe,Ae=V*17+3,dt=Ee[Ae];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Dt(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Dt(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=Vt(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Ae]={nextPos:V,result:Y},Y)}function ze(){var Y,ee,se,fe,Se,xe,Ae=V*17+4,dt=Ee[Ae];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Ge(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Ge(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=ht(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Ae]={nextPos:V,result:Y},Y)}function Ge(){var Y,ee,se,fe,Se,xe,Ae,dt=V*17+5,mr=Ee[dt];if(mr)return V=mr.nextPos,mr.result;if(Y=V,ee=V,se=[],re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G)),fe!==s)for(;fe!==s;)se.push(fe),re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G));else se=s;if(se!==s?(i.charCodeAt(V)===46?(fe=g,V++):(fe=s,we(Z)),fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)):(V=ee,ee=s),ee===s){for(ee=V,i.charCodeAt(V)===45?(se=b,V++):(se=s,we(z)),se===s&&(se=null),fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));if(i.charCodeAt(V)===46?(Se=g,V++):(Se=s,we(Z)),Se!==s){if(xe=[],re.test(i.charAt(V))?(Ae=i.charAt(V),V++):(Ae=s,we(G)),Ae!==s)for(;Ae!==s;)xe.push(Ae),re.test(i.charAt(V))?(Ae=i.charAt(V),V++):(Ae=s,we(G));else xe=s;xe!==s?(se=[se,fe,Se,xe],ee=se):(V=ee,ee=s)}else V=ee,ee=s;if(ee===s)if(ee=V,i.charCodeAt(V)===46?(se=g,V++):(se=s,we(Z)),se!==s){if(fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G)),Se!==s)for(;Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));else fe=s;fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)}else V=ee,ee=s}return ee!==s&&(he=Y,ee=Nt()),Y=ee,Ee[dt]={nextPos:V,result:Y},Y}function Dt(){var Y,ee,se,fe=V*17+6,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,i.charCodeAt(V)===45?V++:we(z),ee=[],re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G)),se!==s)for(;se!==s;)ee.push(se),re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G));else ee=s;return ee!==s?(he=Y,Y=Mt()):(V=Y,Y=s),Ee[fe]={nextPos:V,result:Y},Y}function br(){var Y,ee,se=V*17+7,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,ee=$n(),ee===s&&(ee=vt(),ee===s&&(ee=Ai(),ee===s&&(ee=tn()))),ee!==s&&(he=Y,ee=Gr(ee)),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function Ai(){var Y,ee,se,fe,Se=V*17+8,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===47?(se=v,V++):(se=s,we(ce)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Fe(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function vt(){var Y,ee,se,fe,Se=V*17+9,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=A,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Mr(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $n(){var Y,ee,se,fe,Se,xe,Ae,dt,mr=V*17+10,Qr=Ee[mr];return Qr?(V=Qr.nextPos,Qr.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=A,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(i.charCodeAt(V)===60?(Se=N,V++):(Se=s,we(Te)),Se!==s?(xe=Dt(),xe===s&&(xe=cr()),xe!==s?(i.charCodeAt(V)===47?V++:we(ce),Ae=Dt(),Ae===s&&(Ae=cr()),Ae===s&&(Ae=null),i.charCodeAt(V)===62?(dt=F,V++):(dt=s,we(ke)),dt!==s?(he=Y,Y=st(ee,fe,xe,Ae)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[mr]={nextPos:V,result:Y},Y)}function tn(){var Y,ee,se,fe,Se=V*17+11,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee!==s?(i.charCodeAt(V)===44?(se=f,V++):(se=s,we(J)),se!==s?(fe=Dt(),fe!==s?(he=Y,Y=$e(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function qn(){var Y,ee,se,fe=V*17+12,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=Dt(),se===s&&(se=nt()),se!==s)for(;se!==s;)ee.push(se),se=Dt(),se===s&&(se=nt());else ee=s;return ee!==s&&(he=Y,ee=Pr(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function rn(){var Y,ee,se,fe,Se=V*17+13,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===91?(ee=X,V++):(ee=s,we(Ve)),ee!==s?(se=qn(),se!==s?(i.charCodeAt(V)===62?(fe=F,V++):(fe=s,we(ke)),fe!==s?(he=Y,Y=nr(se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $t(){var Y,ee,se,fe,Se,xe,Ae,dt,mr=V*17+14,Qr=Ee[mr];if(Qr)return V=Qr.nextPos,Qr.result;if(Y=V,ee=Qt(),ee===s&&(ee=br(),ee===s&&(ee=rn(),ee===s)))for(ee=[],se=nt();se!==s;)ee.push(se),se=nt();if(ee!==s){if(se=[],fe=V,Se=We(),Se!==s){for(xe=[],Ae=nt();Ae!==s;)xe.push(Ae),Ae=nt();if(Ae=Qt(),Ae===s&&(Ae=br(),Ae===s&&(Ae=rn(),Ae===s&&(Ae=ni(),Ae===s&&(Ae=$t(),Ae===s)))))for(Ae=[],dt=nt();dt!==s;)Ae.push(dt),dt=nt();Ae!==s?(Se=[Se,xe,Ae],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;if(fe!==s)for(;fe!==s;)if(se.push(fe),fe=V,Se=We(),Se!==s){for(xe=[],Ae=nt();Ae!==s;)xe.push(Ae),Ae=nt();if(Ae=Qt(),Ae===s&&(Ae=br(),Ae===s&&(Ae=rn(),Ae===s&&(Ae=ni(),Ae===s&&(Ae=$t(),Ae===s)))))for(Ae=[],dt=nt();dt!==s;)Ae.push(dt),dt=nt();Ae!==s?(Se=[Se,xe,Ae],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;else se=s;se!==s?(he=Y,Y=hr()):(V=Y,Y=s)}else V=Y,Y=s;return Ee[mr]={nextPos:V,result:Y},Y}function We(){var Y,ee=V*17+15,se=Ee[ee];return se?(V=se.nextPos,se.result):(i.charCodeAt(V)===43?(Y=p,V++):(Y=s,we(Re)),Y===s&&(i.charCodeAt(V)===45?(Y=b,V++):(Y=s,we(z)),Y===s&&(i.charCodeAt(V)===42?(Y=E,V++):(Y=s,we(Ie)),Y===s&&(i.charCodeAt(V)===37?(Y=O,V++):(Y=s,we(le)),Y===s&&(i.charCodeAt(V)===38?(Y=y,V++):(Y=s,we(Pe)),Y===s&&(i.charCodeAt(V)===124?(Y=D,V++):(Y=s,we(je)),Y===s&&(i.substr(V,2)===P?(Y=P,V+=2):(Y=s,we(He)),Y===s&&(i.substr(V,2)===w?(Y=w,V+=2):(Y=s,we(rt))))))))),Ee[ee]={nextPos:V,result:Y},Y)}function ni(){var Y,ee,se,fe,Se=V*17+16,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=$t(),se!==s?(i.charCodeAt(V)===41?(fe=m,V++):(fe=s,we(L)),fe!==s?(ee=[ee,se,fe],Y=ee):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}if(Gt=u(),Gt!==s&&V===i.length)return Gt;throw Gt!==s&&Ve.collect("pitch"))}notes(){return this.evaluated.map(e=>e.collect("note"))}freqs(){return this.evaluated.map(e=>e.collect("freq"))}durations(){return this.evaluated.map(e=>e.collect("duration"))}retrograde(){return this.evaluated.reverse(),this}next(){this.redo>0&&this.index>=this.evaluated.length*this.redo&&(this.update(),this.index=0),this.index<0&&(this.index=0);const e=this.evaluated[this.index%this.evaluated.length];return this.index++,this.counter++,e}applyTransformations(){var e;(e=this.globalOptions)!=null&&e.retrograde&&(this.evaluated=this.evaluated.reverse())}clone(){return Rl(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=0}evaluate(){const e=this.values.map(t=>t.evaluate()).flat(1/0).filter(t=>t!==void 0);return e.forEach((t,r)=>{t._next=r0?r-1:e.length-1}),e}}const KM=n=>{let e={};return QM.forEach(t=>{if(n[t]!==void 0){const r=n[t];e[t]=r,delete n[t]}}),e};class jM{constructor(){I(this,"midiAccess",null);I(this,"midiOutputs",[]);I(this,"currentOutputIndex",0);I(this,"scheduledNotes",{});this.initializeMidiAccess()}async initializeMidiAccess(){try{this.midiAccess=await navigator.requestMIDIAccess(),this.midiOutputs=Array.from(this.midiAccess.outputs.values()),this.midiOutputs.length===0&&(console.warn("No MIDI outputs available."),this.currentOutputIndex=-1)}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndex0&&this.currentOutputIndex>=0&&this.currentOutputIndex=this.midiOutputs.length?(console.error(`Invalid MIDI output index. Index must be in the range 0-${this.midiOutputs.length-1}.`),this.currentOutputIndex):e;{const t=this.midiOutputs.findIndex(r=>r.name===e);return t!==-1?t:(console.error(`MIDI output "${e}" not found.`),this.currentOutputIndex)}}listMidiOutputs(){console.log("Available MIDI Outputs:"),this.midiOutputs.forEach((e,t)=>{console.log(`${t+1}. ${e.name}`)})}sendMidiNote(e,t,r,i,a=this.currentOutputIndex,s=void 0){typeof a=="string"&&(a=this.getMidiOutputIndex(a));const o=this.midiOutputs[a];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,r],u=[128+t,e,0];o.send(l),s&&this.sendPitchBend(s,t,a);const d=setTimeout(()=>{o.send(u),s&&this.sendPitchBend(8192,t,a),delete this.scheduledNotes[e]},(i-.02)*1e3);this.scheduledNotes[e]=d}else console.error("MIDI output not available.")}sendSysExMessage(e){const t=this.midiOutputs[this.currentOutputIndex];t?t.send(e):console.error("MIDI output not available.")}sendPitchBend(e,t,r=this.currentOutputIndex){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(t<0||t>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15."),typeof r=="string"&&(r=this.getMidiOutputIndex(r));const i=this.midiOutputs[r];if(i){const a=e&127,s=e>>7&127;i.send([224|t,a,s])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const r=this.midiOutputs[this.currentOutputIndex];r?r.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,r){const i=this.midiOutputs[this.currentOutputIndex];i?i.send([176+r,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const r=this.scheduledNotes[t];clearTimeout(r),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class JM{constructor(e,t,r){I(this,"min");I(this,"max");I(this,"wrap");I(this,"position");this.min=e,this.max=t,this.wrap=r,this.position=0}step(){const e=Math.floor(Math.random()*3)-1;this.position+=e,this.wrap?this.position>this.max?this.position=this.min:this.positionthis.max&&(this.position=this.max)}getPosition(){return this.position}toggleWrap(e){this.wrap=e}}const eP={major:[0,2,4,5,7,9,11],naturalMinor:[0,2,3,5,7,8,10],harmonicMinor:[0,2,3,5,7,8,11],melodicMinor:[0,2,3,5,7,9,11],dorian:[0,2,3,5,7,9,10],phrygian:[0,1,3,5,7,8,10],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],aeolian:[0,2,3,5,7,8,10],locrian:[0,1,3,5,6,8,10],wholeTone:[0,2,4,6,8,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10],chromatic:[0,1,2,3,4,5,6,7,8,9,10,11],blues:[0,3,5,6,7,10],diminished:[0,2,3,5,6,8,9,11],neapolitanMinor:[0,1,3,5,7,8,11],neapolitanMajor:[0,1,3,5,7,9,11],enigmatic:[0,1,4,6,8,10,11],doubleHarmonic:[0,1,4,5,7,8,11],octatonic:[0,2,3,5,6,8,9,11],bebopDominant:[0,2,4,5,7,9,10,11],bebopMajor:[0,2,4,5,7,8,9,11],bebopMinor:[0,2,3,5,7,8,9,11],bebopDorian:[0,2,3,4,5,7,9,10],harmonicMajor:[0,2,4,5,7,8,11],hungarianMinor:[0,2,3,6,7,8,11],hungarianMajor:[0,3,4,6,7,9,10],oriental:[0,1,4,5,6,9,10],romanianMinor:[0,2,3,6,7,9,10],spanishGypsy:[0,1,4,5,7,8,10],jewish:[0,1,4,5,7,8,10],hindu:[0,2,4,5,7,8,10],japanese:[0,1,5,7,8],hirajoshi:[0,2,3,7,8],kumoi:[0,2,3,7,9],inSen:[0,1,5,7,10],iwato:[0,1,5,6,10],yo:[0,2,5,7,9],minorBlues:[0,3,5,6,7,10],algerian:[0,2,3,5,6,7,8,11],augmented:[0,3,4,7,8,11],balinese:[0,1,3,7,8],byzantine:[0,1,4,5,7,8,11],chinese:[0,4,6,7,11],egyptian:[0,2,5,7,10],eightToneSpanish:[0,1,3,4,5,6,8,10],hawaiian:[0,2,3,5,7,9,10],hindustan:[0,2,4,5,7,8,10],persian:[0,1,4,5,6,8,11],eastIndianPurvi:[0,1,4,6,7,8,11],orientalA:[0,1,4,5,6,9,10]};function tP(n,e="major",t=4){const r=eP[e];if(!r)throw new Error(`Unknown scale ${e}`);let i=n%r.length;i<0&&(i+=r.length);let a=Math.floor(n/r.length);return 60+(t+a)*12+r[i]}class Wl{constructor(e){I(this,"seedValue");I(this,"randomGen",Math.random);I(this,"app");I(this,"values",{});I(this,"odds",(e,t)=>this.randomGen()this.odds(.025,e));I(this,"rarely",e=>this.odds(.1,e));I(this,"scarcely",e=>this.odds(.25,e));I(this,"sometimes",e=>this.odds(.5,e));I(this,"often",e=>this.odds(.75,e));I(this,"frequently",e=>this.odds(.9,e));I(this,"almostAlways",e=>this.odds(.985,e));I(this,"modify",e=>e(this));I(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));I(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));I(this,"apply",e=>this.modify(e));I(this,"duration",e=>(this.values.duration=e,this));this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}}let Ir=[],rP=(n,e)=>{let t,r=[],i={lc:0,l:e||0,value:n,set(a){i.value=a,i.notify()},get(){return i.lc||i.listen(()=>{})(),i.value},notify(a){t=r;let s=!Ir.length;for(let o=0;o{r===t&&(r=r.slice());let o=r.indexOf(a);~o&&(r.splice(o,2),i.lc--,i.lc||i.off())}},subscribe(a,s){let o=i.listen(a,s);return a(i.value),o},off(){}};return i},nP=(n={})=>{let e=rP(n);return e.setKey=function(t,r){typeof r>"u"?t in e.value&&(e.value={...e.value},delete e.value[t],e.notify(t)):e.value[t]!==r&&(e.value={...e.value,[t]:r},e.notify(t))},e};if(typeof DelayNode<"u"){class n extends DelayNode{constructor(t,r,i,a){super(t),r=Math.abs(r),this.delayTime.value=i;const s=t.createGain();s.gain.value=Math.min(Math.abs(a),.995),this.feedback=s.gain;const o=t.createGain();return o.gain.value=r,this.delayGain=o,this.connect(s),this.connect(o),s.connect(this),this.connect=l=>o.connect(l),this}start(t){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,t+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,t,r){return new n(this,e,t,r)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(n,e=1){const t=this.sampleRate*n,r=this.createBuffer(e,t,this.sampleRate),i=r.getChannelData(0);for(let a=0;a(e.buffer=this.impulseResponse(t),e.duration=n,e),e.setDuration(n),e});var xS={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class n extends GainNode{constructor(t,r){if(super(t),!xS[r])throw new Error("vowel: unknown vowel "+r);const{gains:i,qs:a,freqs:s}=xS[r],o=t.createGain();for(let l=0;l<5;l++){const u=t.createGain();u.gain.value=i[l];const d=t.createBiquadFilter();d.type="bandpass",d.Q.value=a[l],d.frequency.value=s[l],this.connect(d),d.connect(u),u.connect(o)}return o.gain.value=8,this.connect=l=>o.connect(l),this}}AudioContext.prototype.createVowelFilter=function(e){return new n(this,e)}}const iP=n=>{var i;if(typeof n!="string")return[];const[e,t="",r]=((i=n.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:i.slice(1))||[];return e?[e,t,r?Number(r):void 0]:[]},aP={c:0,d:2,e:4,f:5,g:7,a:9,b:11},sP={"#":1,b:-1,s:1,f:-1},Nm=(n,e=3)=>{const[t,r,i=e]=iP(n);if(!t)throw new Error('not a note: "'+n+'"');const a=aP[t.toLowerCase()],s=(r==null?void 0:r.split("").reduce((o,l)=>o+sP[l],0))||0;return(Number(i)+1)*12+a+s},oP=n=>Math.pow(2,(n-69)/12)*440,lP=(n,e,t)=>Math.min(Math.max(n,e),t),cP=n=>12*Math.log(n/440)/Math.LN2+69,uP=(n,e)=>{if(typeof n!="object")throw new Error("valueToMidi: expected object value");let{freq:t,note:r}=n;if(typeof t=="number")return cP(t);if(typeof r=="string")return Nm(r);if(typeof r=="number")return r;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},dP="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function Il(n){const e=Yr().createGain();return e.gain.value=n,e}const pP=({s:n,freq:e,t})=>{const r=Yr().createOscillator();return r.type=n||"triangle",r.frequency.value=Number(e),r.start(t),{node:r,stop:i=>r.stop(i)}},BA=(n,e,t,r,i,a)=>{const s=Yr().createGain();return s.gain.setValueAtTime(0,a),s.gain.linearRampToValueAtTime(i,a+n),s.gain.linearRampToValueAtTime(t*i,a+n+e),{node:s,stop:o=>{s.gain.setValueAtTime(t*i,o),s.gain.linearRampToValueAtTime(0,o+r)}}},Fc=(n,e,t)=>{const r=Yr().createBiquadFilter();return r.type=n,r.frequency.value=e,r.Q.value=t,r};let fP=n=>console.log(n);const Ya=(...n)=>fP(...n),Dm=nP();function UA(n,e,t={}){Dm.setKey(n,{onTrigger:e,data:t})}function LS(n){return Dm.get()[n]}let Yc;const Yr=()=>(Yc||(Yc=new AudioContext),Yc);let Io;const wm=()=>{const n=Yr();return Io||(Io=n.createGain(),Io.connect(n.destination)),Io};let Gc;function hP(){return Gc||(Gc=Yr().audioWorklet.addModule(dP),Gc)}function Qc(n,e,t){const r=new AudioWorkletNode(n,e);return Object.entries(t).forEach(([i,a])=>{r.parameters.get(i).value=a}),r}async function mP(n={}){const{disableWorklets:e=!1}=n;typeof window<"u"&&(await Yr().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await hP().catch(t=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",t)}))}async function _P(n){return new Promise(e=>{document.addEventListener("click",async function t(){await mP(n),e(),document.removeEventListener("click",t)})})}let xi={};function gP(n,e,t,r){var i;if(t=lP(t,0,.98),!xi[n]){const a=Yr().createFeedbackDelay(1,e,t);(i=a.start)==null||i.call(a,r),a.connect(wm()),xi[n]=a}return xi[n].delayTime.value!==e&&xi[n].delayTime.setValueAtTime(e,r),xi[n].feedback.value!==t&&xi[n].feedback.setValueAtTime(t,r),xi[n]}let Li={};function SP(n,e=2){if(!Li[n]){const t=Yr().createReverb(e);t.connect(wm()),Li[n]=t}return Li[n].duration!==e&&(Li[n]=Li[n].setDuration(e),Li[n].duration=e),Li[n]}function MS(n,e,t){const r=Il(t);return n.connect(r),r.connect(e),r}const OP=async(n,e,t)=>{const r=Yr();if(typeof n!="object")throw new Error(`expected hap.value to be an object, but got "${n}". Hint: append .note() or .s() to the end`,"error");let i=r.currentTime+e,{s:a="triangle",bank:s,source:o,gain:l=.8,cutoff:u,resonance:d=1,hcutoff:f,hresonance:m=1,bandf:g,bandq:b=1,coarse:v,crush:A,shape:N,pan:F,vowel:X,delay:p=0,delayfeedback:E=.5,delaytime:O=.25,orbit:y=1,room:D,size:P=2,velocity:w=1}=n;l*=w;let B=[];const re=()=>{B.forEach(Z=>Z==null?void 0:Z.disconnect())};s&&a&&(a=`${s}_${a}`);let ie;if(o)ie=o(i,n,t);else if(LS(a)){const{onTrigger:Z}=LS(a),z=await Z(i,n,re);z&&(ie=z.node,z.stop(i+t))}else throw new Error(`sound ${a} not found! Is it loaded?`);if(!ie)return;if(r.currentTime>i){Ya("[webaudio] skip hap: still loading",r.currentTime-i);return}const j=[];if(j.push(ie),j.push(Il(l)),u!==void 0&&j.push(Fc("lowpass",u,d)),f!==void 0&&j.push(Fc("highpass",f,m)),g!==void 0&&j.push(Fc("bandpass",g,b)),X!==void 0&&j.push(r.createVowelFilter(X)),v!==void 0&&j.push(Qc(r,"coarse-processor",{coarse:v})),A!==void 0&&j.push(Qc(r,"crush-processor",{crush:A})),N!==void 0&&j.push(Qc(r,"shape-processor",{shape:N})),F!==void 0){const Z=r.createStereoPanner();Z.pan.value=2*F-1,j.push(Z)}const J=Il(1);j.push(J),J.connect(wm());let L;if(p>0&&O>0&&E>0){const Z=gP(y,O,E,i);L=MS(J,Z,p)}let G;if(D>0&&P>0){const Z=SP(y,P);G=MS(J,Z,D)}j.slice(1).reduce((Z,z)=>Z.connect(z),j[0]),B=j.concat([L,G])},$c={};function EP(n,e){var t=e?1e3:1024;if(n=t);return n.toFixed(1)+" "+r[i]}const bP=async(n,e,t,r,i,a,s)=>{let o=0;i!==void 0&&t!==void 0&&Ya("[sampler] hap has note and freq. ignoring note","warning");let l=uP({freq:i,note:t},36);o=l-36;const u=Yr();let d;if(Array.isArray(a))d=a[e%a.length];else{const b=A=>Nm(A)-l,v=Object.keys(a).filter(A=>!A.startsWith("_")).reduce((A,N,F)=>!A||Math.abs(b(N)){const i=t?`sound "${t}:${r}"`:"sample";if(!$c[n]){Ya(`[sampler] load ${i}..`,"load-sample",{url:n});const a=Date.now();$c[n]=fetch(n).then(s=>s.arrayBuffer()).then(async s=>{const o=Date.now()-a,l=EP(s.byteLength);return Ya(`[sampler] load ${i}... done! loaded ${l} in ${o}ms`,"loaded-sample",{url:n}),await e.decodeAudioData(s)})}return $c[n]};function CP(n){const e=Yr(),t=e.createBuffer(n.numberOfChannels,n.length,e.sampleRate);for(let r=0;rObject.entries(n).forEach(([r,i])=>{if(typeof i=="string"&&(i=[i]),typeof i!="object")throw new Error("wrong sample map format for "+r);t=i._base||t;const a=s=>(t+s).replace("github:","https://raw.githubusercontent.com/");Array.isArray(i)?i=i.map(a):i=Object.fromEntries(Object.entries(i).map(([s,o])=>[s,(typeof o=="string"?[o]:o).map(a)])),e(r,i)});let AP={};function yP(n){const e=Object.entries(AP).find(([t])=>n.startsWith(t));if(e)return e[1]}const Nl=async(n,e=n._base||"",t={})=>{if(typeof n=="string"){const a=yP(n);if(a)return a(n);if(n.startsWith("github:")){let[o,l]=n.split("github:");l=l.endsWith("/")?l.slice(0,-1):l,n=`https://raw.githubusercontent.com/${l}/strudel.json`}if(typeof fetch!="function")return;const s=n.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(n).then(o=>o.json()).then(o=>Nl(o,e||o._base||s,t)).catch(o=>{throw console.error(o),new Error(`error loading "${n}"`)})}const{prebake:r,tag:i}=t;vP(n,(a,s)=>UA(a,(o,l,u)=>RP(o,l,u,s),{type:"sample",samples:s,baseUrl:e,prebake:r,tag:i}),e)},PS=[];async function RP(n,e,t,r,i){const{s:a,freq:s,unit:o,nudge:l=0,cut:u,loop:d,clip:f=void 0,n:m=0,note:g,speed:b=1,begin:v=0,end:A=1}=e;if(b===0)return;const N=Yr(),{attack:F=.001,decay:X=.001,sustain:p=1,release:E=.001}=e,O=n+l,y=await bP(a,m,g,b,s,r,i);if(N.currentTime>n){Ya(`[sampler] still loading sound "${a}:${m}"`,"highlight");return}if(!y){Ya(`[sampler] could not load "${a}:${m}"`,"error");return}y.playbackRate.value=Math.abs(b)*y.playbackRate.value,o==="c"&&(y.playbackRate.value=y.playbackRate.value*y.buffer.duration*1);const D=v*y.buffer.duration;y.start(O,D);const P=y.buffer.duration/y.playbackRate.value,{node:w,stop:B}=BA(F,X,p,E,1,n);y.connect(w);const re=N.createGain();w.connect(re),y.onended=function(){y.disconnect(),w.disconnect(),re.disconnect(),t()};const ie={node:re,bufferSource:y,stop:(j,J=f===void 0)=>{let L=j;J&&(L=n+(A-v)*P),y.stop(L+E),B(L)}};if(u!==void 0){const j=PS[u];j&&(j.node.gain.setValueAtTime(1,O),j.node.gain.linearRampToValueAtTime(0,O+.01)),PS[u]=ie}return ie}const IP=(n,e=1,t="sine")=>{const r=Yr(),i=r.createOscillator();i.type=t,i.frequency.value=n,i.start();const a=new GainNode(r,{gain:e});return i.connect(a),{node:a,stop:s=>i.stop(s)}},NP=(n,e,t,r="sine")=>{const i=n.frequency.value*e,a=i*t;return IP(i,a,r)};function DP(){["sine","square","triangle","sawtooth"].forEach(n=>{UA(n,(e,t,r)=>{const{attack:i=.001,decay:a=.05,sustain:s=.6,release:o=.01,fmh:l=1,fmi:u}=t;let{n:d,note:f,freq:m}=t;d=f||d||36,typeof d=="string"&&(d=Nm(d)),!m&&typeof d=="number"&&(m=oP(d));const{node:g,stop:b}=pP({t:e,s:n,freq:m});let v;if(u){const{node:X,stop:p}=NP(g,l,u);X.connect(g.frequency),v=p}const A=Il(.3),{node:N,stop:F}=BA(i,a,s,o,1,e);return g.onended=()=>{g.disconnect(),A.disconnect(),r()},{node:g.connect(A).connect(N),stop:X=>{F(X);let p=X+o;b(p),v==null||v(p)}}},{type:"synth",prebake:!0})})}class FA extends Wl{constructor(t,r){super(r);I(this,"attack",t=>(this.values.attack=t,this));I(this,"atk",this.attack);I(this,"decay",t=>(this.values.decay=t,this));I(this,"dec",this.decay);I(this,"sustain",t=>(this.values.sustain=t,this));I(this,"sus",this.sustain);I(this,"release",t=>(this.values.release=t,this));I(this,"rel",this.release);I(this,"unit",t=>(this.values.unit=t,this));I(this,"freq",t=>(this.values.freq=t,this));I(this,"fm",t=>{if(typeof t=="number")this.values.fmi=t;else{let r=t.split(":");this.values.fmi=parseFloat(r[0]),r.length>1&&(this.values.fmh=parseFloat(r[1]))}return this});I(this,"sound",t=>(this.values.s=t,this));I(this,"fmi",t=>(this.values.fmi=t,this));I(this,"fmh",t=>(this.values.fmh=t,this));I(this,"nudge",t=>(this.values.nudge=t,this));I(this,"cut",t=>(this.values.cut=t,this));I(this,"loop",t=>(this.values.loop=t,this));I(this,"clip",t=>(this.values.clip=t,this));I(this,"n",t=>(this.values.n=t,this));I(this,"note",t=>(this.values.note=t,this));I(this,"speed",t=>(this.values.speed=t,this));I(this,"begin",t=>(this.values.begin=t,this));I(this,"end",t=>(this.values.end=t,this));I(this,"gain",t=>(this.values.gain=t,this));I(this,"cutoff",t=>(this.values.cutoff=t,this));I(this,"resonance",t=>(this.values.resonance=t,this));I(this,"hcutoff",t=>(this.values.hcutoff=t,this));I(this,"hresonance",t=>(this.values.hresonance=t,this));I(this,"bandf",t=>(this.values.bandf=t,this));I(this,"bandq",t=>(this.values.bandq=t,this));I(this,"coarse",t=>(this.values.coarse=t,this));I(this,"crush",t=>(this.values.crush=t,this));I(this,"shape",t=>(this.values.shape=t,this));I(this,"pan",t=>(this.values.pan=t,this));I(this,"vowel",t=>(this.values.vowel=t,this));I(this,"delay",t=>(this.values.delay=t,this));I(this,"delayfeedback",t=>(this.values.delayfeedback=t,this));I(this,"delaytime",t=>(this.values.delaytime=t,this));I(this,"orbit",t=>(this.values.orbit=t,this));I(this,"room",t=>(this.values.room=t,this));I(this,"size",t=>(this.values.size=t,this));I(this,"velocity",t=>(this.values.velocity=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"dur",t=>(this.values.dur=t,this));I(this,"out",()=>OP(this.values,this.app.clock.pulse_duration,this.values.dur));this.app=r,typeof t=="string"?this.values={s:t,dur:.5}:this.values=t}}class YA extends Wl{constructor(t,r){super(r);I(this,"midiConnection");I(this,"note",t=>(this.values.note=t,this));I(this,"duration",t=>(this.values.duration=t,this));I(this,"sustain",t=>(this.values.sustain=t,this));I(this,"channel",t=>(this.values.channel=t,this));I(this,"port",t=>(this.values.port=this.midiConnection.getMidiOutputIndex(t),this));I(this,"add",t=>(this.values.note+=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"freq",t=>{this.values.freq=t;const r=PM(t);return r%1!==0?(this.values.note=Math.floor(r),this.values.bend=wA(r)[1]):this.values.note=r,this});I(this,"bend",t=>(this.values.bend=t,this));I(this,"random",(t=0,r=127)=>(t=Math.min(Math.max(t,0),127),r=Math.min(Math.max(r,0),127),this.values.note=Math.floor(this.randomGen()*(r-t+1))+t,this));I(this,"update",()=>{if(console.log(this.values.type),this.values.type==="Pitch"){const[t,r]=DA(this.values.key,this.values.pitch,this.values.parsedScale,this.values.octave);this.values.note=t,this.values.freq=yl(t),r&&(this.values.bend=r)}});I(this,"octave",t=>(this.values.octave=t,this.update(),this));I(this,"key",t=>(this.values.key=t,this.update(),this));I(this,"scale",t=>(NA(t)?(this.values.scaleName=t,this.values.parsedScale=js(t)):this.values.parsedScale=kA(t),this.update(),this));I(this,"out",()=>{console.log("NOTE OUT",this.values);const t=this.values.note?this.values.note:60,r=this.values.channel?this.values.channel:0,i=this.values.velocity?this.values.velocity:100,a=this.values.sustain?this.values.sustain*this.app.clock.pulse_duration*this.app.api.ppqn():this.app.clock.pulse_duration*this.app.api.ppqn(),s=this.values.bend?this.values.bend:void 0,o=this.values.port?this.midiConnection.getMidiOutputIndex(this.values.port):this.midiConnection.getCurrentMidiPortIndex();this.midiConnection.sendMidiNote(t,r,i,a,o,s)});this.app=r,typeof t=="number"?this.values.note=t:this.values=t,this.midiConnection=r.api.MidiConnection}}const ss=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,GA=new Set,Nh=typeof process=="object"&&process?process:{},QA=(n,e,t,r)=>{typeof Nh.emitWarning=="function"?Nh.emitWarning(n,e,t,r):console.error(`[${t}] ${e}: ${n}`)};let Dl=globalThis.AbortController,kS=globalThis.AbortSignal;var TT;if(typeof Dl>"u"){kS=class{constructor(){I(this,"onabort");I(this,"_onabort",[]);I(this,"reason");I(this,"aborted",!1)}addEventListener(r,i){this._onabort.push(i)}},Dl=class{constructor(){I(this,"signal",new kS);e()}abort(r){var i,a;if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(const s of this.signal._onabort)s(r);(a=(i=this.signal).onabort)==null||a.call(i,r)}}};let n=((TT=Nh.env)==null?void 0:TT.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{n&&(n=!1,QA("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}const wP=n=>!GA.has(n),ci=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),$A=n=>ci(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?Vo:null:null;class Vo extends Array{constructor(e){super(e),this.fill(0)}}var va;const Bi=class Bi{constructor(e,t){I(this,"heap");I(this,"length");if(!Q(Bi,va))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=$A(e);if(!t)return[];Qe(Bi,va,!0);const r=new Bi(e,t);return Qe(Bi,va,!1),r}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};va=new WeakMap,tt(Bi,va,!1);let Dh=Bi;var _n,Vr,gn,Sn,Aa,Kt,On,jt,xt,et,Nr,Hr,gr,sr,En,or,Hn,zn,bn,Tn,mi,Dr,Us,xh,Qi,Wn,Fs,zr,Ml,qA,$i,ya,Ys,xn,ui,Ln,di,Gs,Lh,Ra,Ho,Ia,zo,yt,Pt,Qs,Mh,qi,fs;const km=class km{constructor(e){tt(this,Us);tt(this,Ml);tt(this,xn);tt(this,Ln);tt(this,Gs);tt(this,Ra);tt(this,Ia);tt(this,yt);tt(this,Qs);tt(this,qi);tt(this,_n,void 0);tt(this,Vr,void 0);tt(this,gn,void 0);tt(this,Sn,void 0);tt(this,Aa,void 0);I(this,"ttl");I(this,"ttlResolution");I(this,"ttlAutopurge");I(this,"updateAgeOnGet");I(this,"updateAgeOnHas");I(this,"allowStale");I(this,"noDisposeOnSet");I(this,"noUpdateTTL");I(this,"maxEntrySize");I(this,"sizeCalculation");I(this,"noDeleteOnFetchRejection");I(this,"noDeleteOnStaleGet");I(this,"allowStaleOnFetchAbort");I(this,"allowStaleOnFetchRejection");I(this,"ignoreFetchAbort");tt(this,Kt,void 0);tt(this,On,void 0);tt(this,jt,void 0);tt(this,xt,void 0);tt(this,et,void 0);tt(this,Nr,void 0);tt(this,Hr,void 0);tt(this,gr,void 0);tt(this,sr,void 0);tt(this,En,void 0);tt(this,or,void 0);tt(this,Hn,void 0);tt(this,zn,void 0);tt(this,bn,void 0);tt(this,Tn,void 0);tt(this,mi,void 0);tt(this,Dr,void 0);tt(this,Qi,()=>{});tt(this,Wn,()=>{});tt(this,Fs,()=>{});tt(this,zr,()=>!1);tt(this,$i,e=>{});tt(this,ya,(e,t,r)=>{});tt(this,Ys,(e,t,r,i)=>{if(r||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:r,ttlResolution:i=1,ttlAutopurge:a,updateAgeOnGet:s,updateAgeOnHas:o,allowStale:l,dispose:u,disposeAfter:d,noDisposeOnSet:f,noUpdateTTL:m,maxSize:g=0,maxEntrySize:b=0,sizeCalculation:v,fetchMethod:A,noDeleteOnFetchRejection:N,noDeleteOnStaleGet:F,allowStaleOnFetchRejection:X,allowStaleOnFetchAbort:p,ignoreFetchAbort:E}=e;if(t!==0&&!ci(t))throw new TypeError("max option must be a nonnegative integer");const O=t?$A(t):Array;if(!O)throw new Error("invalid max value: "+t);if(Qe(this,_n,t),Qe(this,Vr,g),this.maxEntrySize=b||Q(this,Vr),this.sizeCalculation=v,this.sizeCalculation){if(!Q(this,Vr)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(A!==void 0&&typeof A!="function")throw new TypeError("fetchMethod must be a function if specified");if(Qe(this,Aa,A),Qe(this,mi,!!A),Qe(this,jt,new Map),Qe(this,xt,new Array(t).fill(void 0)),Qe(this,et,new Array(t).fill(void 0)),Qe(this,Nr,new O(t)),Qe(this,Hr,new O(t)),Qe(this,gr,0),Qe(this,sr,0),Qe(this,En,Dh.create(t)),Qe(this,Kt,0),Qe(this,On,0),typeof u=="function"&&Qe(this,gn,u),typeof d=="function"?(Qe(this,Sn,d),Qe(this,or,[])):(Qe(this,Sn,void 0),Qe(this,or,void 0)),Qe(this,Tn,!!Q(this,gn)),Qe(this,Dr,!!Q(this,Sn)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!N,this.allowStaleOnFetchRejection=!!X,this.allowStaleOnFetchAbort=!!p,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(Q(this,Vr)!==0&&!ci(Q(this,Vr)))throw new TypeError("maxSize must be a positive integer if specified");if(!ci(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Ue(this,Ml,qA).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!F,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!o,this.ttlResolution=ci(i)||i===0?i:1,this.ttlAutopurge=!!a,this.ttl=r||0,this.ttl){if(!ci(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ue(this,Us,xh).call(this)}if(Q(this,_n)===0&&this.ttl===0&&Q(this,Vr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!Q(this,_n)&&!Q(this,Vr)){const y="LRU_CACHE_UNBOUNDED";wP(y)&&(GA.add(y),QA("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",y,km))}}static unsafeExposeInternals(e){return{starts:Q(e,zn),ttls:Q(e,bn),sizes:Q(e,Hn),keyMap:Q(e,jt),keyList:Q(e,xt),valList:Q(e,et),next:Q(e,Nr),prev:Q(e,Hr),get head(){return Q(e,gr)},get tail(){return Q(e,sr)},free:Q(e,En),isBackgroundFetch:t=>{var r;return Ue(r=e,yt,Pt).call(r,t)},backgroundFetch:(t,r,i,a)=>{var s;return Ue(s=e,Ia,zo).call(s,t,r,i,a)},moveToTail:t=>{var r;return Ue(r=e,qi,fs).call(r,t)},indexes:t=>{var r;return Ue(r=e,xn,ui).call(r,t)},rindexes:t=>{var r;return Ue(r=e,Ln,di).call(r,t)},isStale:t=>{var r;return Q(r=e,zr).call(r,t)}}}get max(){return Q(this,_n)}get maxSize(){return Q(this,Vr)}get calculatedSize(){return Q(this,On)}get size(){return Q(this,Kt)}get fetchMethod(){return Q(this,Aa)}get dispose(){return Q(this,gn)}get disposeAfter(){return Q(this,Sn)}getRemainingTTL(e){return Q(this,jt).has(e)?1/0:0}*entries(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*rentries(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*keys(){for(const e of Ue(this,xn,ui).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield t)}}*rkeys(){for(const e of Ue(this,Ln,di).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield t)}}*values(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}*rvalues(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;if(a!==void 0&&e(a,Q(this,xt)[r],this))return this.get(Q(this,xt)[r],t)}}forEach(e,t=this){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}rforEach(e,t=this){for(const r of Ue(this,Ln,di).call(this)){const i=Q(this,et)[r],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}purgeStale(){let e=!1;for(const t of Ue(this,Ln,di).call(this,{allowStale:!0}))Q(this,zr).call(this,t)&&(this.delete(Q(this,xt)[t]),e=!0);return e}dump(){const e=[];for(const t of Ue(this,xn,ui).call(this,{allowStale:!0})){const r=Q(this,xt)[t],i=Q(this,et)[t],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;if(a===void 0||r===void 0)continue;const s={value:a};if(Q(this,bn)&&Q(this,zn)){s.ttl=Q(this,bn)[t];const o=ss.now()-Q(this,zn)[t];s.start=Math.floor(Date.now()-o)}Q(this,Hn)&&(s.size=Q(this,Hn)[t]),e.unshift([r,s])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const i=Date.now()-r.start;r.start=ss.now()-i}this.set(t,r.value,r)}}set(e,t,r={}){var m,g,b,v,A;if(t===void 0)return this.delete(e),this;const{ttl:i=this.ttl,start:a,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=r;let{noUpdateTTL:u=this.noUpdateTTL}=r;const d=Q(this,Ys).call(this,e,t,r.size||0,o);if(this.maxEntrySize&&d>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.delete(e),this;let f=Q(this,Kt)===0?void 0:Q(this,jt).get(e);if(f===void 0)f=Q(this,Kt)===0?Q(this,sr):Q(this,En).length!==0?Q(this,En).pop():Q(this,Kt)===Q(this,_n)?Ue(this,Ra,Ho).call(this,!1):Q(this,Kt),Q(this,xt)[f]=e,Q(this,et)[f]=t,Q(this,jt).set(e,f),Q(this,Nr)[Q(this,sr)]=f,Q(this,Hr)[f]=Q(this,sr),Qe(this,sr,f),io(this,Kt)._++,Q(this,ya).call(this,f,d,l),l&&(l.set="add"),u=!1;else{Ue(this,qi,fs).call(this,f);const N=Q(this,et)[f];if(t!==N){if(Q(this,mi)&&Ue(this,yt,Pt).call(this,N)){N.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:F}=N;F!==void 0&&!s&&(Q(this,Tn)&&((m=Q(this,gn))==null||m.call(this,F,e,"set")),Q(this,Dr)&&((g=Q(this,or))==null||g.push([F,e,"set"])))}else s||(Q(this,Tn)&&((b=Q(this,gn))==null||b.call(this,N,e,"set")),Q(this,Dr)&&((v=Q(this,or))==null||v.push([N,e,"set"])));if(Q(this,$i).call(this,f),Q(this,ya).call(this,f,d,l),Q(this,et)[f]=t,l){l.set="replace";const F=N&&Ue(this,yt,Pt).call(this,N)?N.__staleWhileFetching:N;F!==void 0&&(l.oldValue=F)}}else l&&(l.set="update")}if(i!==0&&!Q(this,bn)&&Ue(this,Us,xh).call(this),Q(this,bn)&&(u||Q(this,Fs).call(this,f,i,a),l&&Q(this,Wn).call(this,l,f)),!s&&Q(this,Dr)&&Q(this,or)){const N=Q(this,or);let F;for(;F=N==null?void 0:N.shift();)(A=Q(this,Sn))==null||A.call(this,...F)}return this}pop(){var e;try{for(;Q(this,Kt);){const t=Q(this,et)[Q(this,gr)];if(Ue(this,Ra,Ho).call(this,!0),Ue(this,yt,Pt).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(Q(this,Dr)&&Q(this,or)){const t=Q(this,or);let r;for(;r=t==null?void 0:t.shift();)(e=Q(this,Sn))==null||e.call(this,...r)}}}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:i}=t,a=Q(this,jt).get(e);if(a!==void 0){const s=Q(this,et)[a];if(Ue(this,yt,Pt).call(this,s)&&s.__staleWhileFetching===void 0)return!1;if(Q(this,zr).call(this,a))i&&(i.has="stale",Q(this,Wn).call(this,i,a));else return r&&Q(this,Qi).call(this,a),i&&(i.has="hit",Q(this,Wn).call(this,i,a)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){const{allowStale:r=this.allowStale}=t,i=Q(this,jt).get(e);if(i!==void 0&&(r||!Q(this,zr).call(this,i))){const a=Q(this,et)[i];return Ue(this,yt,Pt).call(this,a)?a.__staleWhileFetching:a}}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:l=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:d=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:b=this.allowStaleOnFetchAbort,context:v,forceRefresh:A=!1,status:N,signal:F}=t;if(!Q(this,mi))return N&&(N.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,status:N});const X={allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,ttl:s,noDisposeOnSet:o,size:l,sizeCalculation:u,noUpdateTTL:d,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:b,ignoreFetchAbort:g,status:N,signal:F};let p=Q(this,jt).get(e);if(p===void 0){N&&(N.fetch="miss");const E=Ue(this,Ia,zo).call(this,e,p,X,v);return E.__returned=E}else{const E=Q(this,et)[p];if(Ue(this,yt,Pt).call(this,E)){const w=r&&E.__staleWhileFetching!==void 0;return N&&(N.fetch="inflight",w&&(N.returnedStale=!0)),w?E.__staleWhileFetching:E.__returned=E}const O=Q(this,zr).call(this,p);if(!A&&!O)return N&&(N.fetch="hit"),Ue(this,qi,fs).call(this,p),i&&Q(this,Qi).call(this,p),N&&Q(this,Wn).call(this,N,p),E;const y=Ue(this,Ia,zo).call(this,e,p,X,v),P=y.__staleWhileFetching!==void 0&&r;return N&&(N.fetch=O?"stale":"refresh",P&&O&&(N.returnedStale=!0)),P?y.__staleWhileFetching:y.__returned=y}}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:s}=t,o=Q(this,jt).get(e);if(o!==void 0){const l=Q(this,et)[o],u=Ue(this,yt,Pt).call(this,l);return s&&Q(this,Wn).call(this,s,o),Q(this,zr).call(this,o)?(s&&(s.get="stale"),u?(s&&r&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),r?l.__staleWhileFetching:void 0):(a||this.delete(e),s&&r&&(s.returnedStale=!0),r?l:void 0)):(s&&(s.get="hit"),u?l.__staleWhileFetching:(Ue(this,qi,fs).call(this,o),i&&Q(this,Qi).call(this,o),l))}else s&&(s.get="miss")}delete(e){var r,i,a,s;let t=!1;if(Q(this,Kt)!==0){const o=Q(this,jt).get(e);if(o!==void 0)if(t=!0,Q(this,Kt)===1)this.clear();else{Q(this,$i).call(this,o);const l=Q(this,et)[o];Ue(this,yt,Pt).call(this,l)?l.__abortController.abort(new Error("deleted")):(Q(this,Tn)||Q(this,Dr))&&(Q(this,Tn)&&((r=Q(this,gn))==null||r.call(this,l,e,"delete")),Q(this,Dr)&&((i=Q(this,or))==null||i.push([l,e,"delete"]))),Q(this,jt).delete(e),Q(this,xt)[o]=void 0,Q(this,et)[o]=void 0,o===Q(this,sr)?Qe(this,sr,Q(this,Hr)[o]):o===Q(this,gr)?Qe(this,gr,Q(this,Nr)[o]):(Q(this,Nr)[Q(this,Hr)[o]]=Q(this,Nr)[o],Q(this,Hr)[Q(this,Nr)[o]]=Q(this,Hr)[o]),io(this,Kt)._--,Q(this,En).push(o)}}if(Q(this,Dr)&&((a=Q(this,or))!=null&&a.length)){const o=Q(this,or);let l;for(;l=o==null?void 0:o.shift();)(s=Q(this,Sn))==null||s.call(this,...l)}return t}clear(){var e,t,r;for(const i of Ue(this,Ln,di).call(this,{allowStale:!0})){const a=Q(this,et)[i];if(Ue(this,yt,Pt).call(this,a))a.__abortController.abort(new Error("deleted"));else{const s=Q(this,xt)[i];Q(this,Tn)&&((e=Q(this,gn))==null||e.call(this,a,s,"delete")),Q(this,Dr)&&((t=Q(this,or))==null||t.push([a,s,"delete"]))}}if(Q(this,jt).clear(),Q(this,et).fill(void 0),Q(this,xt).fill(void 0),Q(this,bn)&&Q(this,zn)&&(Q(this,bn).fill(0),Q(this,zn).fill(0)),Q(this,Hn)&&Q(this,Hn).fill(0),Qe(this,gr,0),Qe(this,sr,0),Q(this,En).length=0,Qe(this,On,0),Qe(this,Kt,0),Q(this,Dr)&&Q(this,or)){const i=Q(this,or);let a;for(;a=i==null?void 0:i.shift();)(r=Q(this,Sn))==null||r.call(this,...a)}}};_n=new WeakMap,Vr=new WeakMap,gn=new WeakMap,Sn=new WeakMap,Aa=new WeakMap,Kt=new WeakMap,On=new WeakMap,jt=new WeakMap,xt=new WeakMap,et=new WeakMap,Nr=new WeakMap,Hr=new WeakMap,gr=new WeakMap,sr=new WeakMap,En=new WeakMap,or=new WeakMap,Hn=new WeakMap,zn=new WeakMap,bn=new WeakMap,Tn=new WeakMap,mi=new WeakMap,Dr=new WeakMap,Us=new WeakSet,xh=function(){const e=new Vo(Q(this,_n)),t=new Vo(Q(this,_n));Qe(this,bn,e),Qe(this,zn,t),Qe(this,Fs,(a,s,o=ss.now())=>{if(t[a]=s!==0?o:0,e[a]=s,s!==0&&this.ttlAutopurge){const l=setTimeout(()=>{Q(this,zr).call(this,a)&&this.delete(Q(this,xt)[a])},s+1);l.unref&&l.unref()}}),Qe(this,Qi,a=>{t[a]=e[a]!==0?ss.now():0}),Qe(this,Wn,(a,s)=>{if(e[s]){const o=e[s],l=t[s];a.ttl=o,a.start=l,a.now=r||i();const u=a.now-l;a.remainingTTL=o-u}});let r=0;const i=()=>{const a=ss.now();if(this.ttlResolution>0){r=a;const s=setTimeout(()=>r=0,this.ttlResolution);s.unref&&s.unref()}return a};this.getRemainingTTL=a=>{const s=Q(this,jt).get(a);if(s===void 0)return 0;const o=e[s],l=t[s];if(o===0||l===0)return 1/0;const u=(r||i())-l;return o-u},Qe(this,zr,a=>e[a]!==0&&t[a]!==0&&(r||i())-t[a]>e[a])},Qi=new WeakMap,Wn=new WeakMap,Fs=new WeakMap,zr=new WeakMap,Ml=new WeakSet,qA=function(){const e=new Vo(Q(this,_n));Qe(this,On,0),Qe(this,Hn,e),Qe(this,$i,t=>{Qe(this,On,Q(this,On)-e[t]),e[t]=0}),Qe(this,Ys,(t,r,i,a)=>{if(Ue(this,yt,Pt).call(this,r))return 0;if(!ci(i))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(i=a(r,t),!ci(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i}),Qe(this,ya,(t,r,i)=>{if(e[t]=r,Q(this,Vr)){const a=Q(this,Vr)-e[t];for(;Q(this,On)>a;)Ue(this,Ra,Ho).call(this,!0)}Qe(this,On,Q(this,On)+e[t]),i&&(i.entrySize=r,i.totalCalculatedSize=Q(this,On))})},$i=new WeakMap,ya=new WeakMap,Ys=new WeakMap,xn=new WeakSet,ui=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,sr);!(!Ue(this,Gs,Lh).call(this,t)||((e||!Q(this,zr).call(this,t))&&(yield t),t===Q(this,gr)));)t=Q(this,Hr)[t]},Ln=new WeakSet,di=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,gr);!(!Ue(this,Gs,Lh).call(this,t)||((e||!Q(this,zr).call(this,t))&&(yield t),t===Q(this,sr)));)t=Q(this,Nr)[t]},Gs=new WeakSet,Lh=function(e){return e!==void 0&&Q(this,jt).get(Q(this,xt)[e])===e},Ra=new WeakSet,Ho=function(e){var a,s;const t=Q(this,gr),r=Q(this,xt)[t],i=Q(this,et)[t];return Q(this,mi)&&Ue(this,yt,Pt).call(this,i)?i.__abortController.abort(new Error("evicted")):(Q(this,Tn)||Q(this,Dr))&&(Q(this,Tn)&&((a=Q(this,gn))==null||a.call(this,i,r,"evict")),Q(this,Dr)&&((s=Q(this,or))==null||s.push([i,r,"evict"]))),Q(this,$i).call(this,t),e&&(Q(this,xt)[t]=void 0,Q(this,et)[t]=void 0,Q(this,En).push(t)),Q(this,Kt)===1?(Qe(this,gr,Qe(this,sr,0)),Q(this,En).length=0):Qe(this,gr,Q(this,Nr)[t]),Q(this,jt).delete(r),io(this,Kt)._--,t},Ia=new WeakSet,zo=function(e,t,r,i){const a=t===void 0?void 0:Q(this,et)[t];if(Ue(this,yt,Pt).call(this,a))return a;const s=new Dl,{signal:o}=r;o==null||o.addEventListener("abort",()=>s.abort(o.reason),{signal:s.signal});const l={signal:s.signal,options:r,context:i},u=(v,A=!1)=>{const{aborted:N}=s.signal,F=r.ignoreFetchAbort&&v!==void 0;if(r.status&&(N&&!A?(r.status.fetchAborted=!0,r.status.fetchError=s.signal.reason,F&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),N&&!F&&!A)return f(s.signal.reason);const X=g;return Q(this,et)[t]===g&&(v===void 0?X.__staleWhileFetching?Q(this,et)[t]=X.__staleWhileFetching:this.delete(e):(r.status&&(r.status.fetchUpdated=!0),this.set(e,v,l.options))),v},d=v=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=v),f(v)),f=v=>{const{aborted:A}=s.signal,N=A&&r.allowStaleOnFetchAbort,F=N||r.allowStaleOnFetchRejection,X=F||r.noDeleteOnFetchRejection,p=g;if(Q(this,et)[t]===g&&(!X||p.__staleWhileFetching===void 0?this.delete(e):N||(Q(this,et)[t]=p.__staleWhileFetching)),F)return r.status&&p.__staleWhileFetching!==void 0&&(r.status.returnedStale=!0),p.__staleWhileFetching;if(p.__returned===p)throw v},m=(v,A)=>{var F;const N=(F=Q(this,Aa))==null?void 0:F.call(this,e,a,l);N&&N instanceof Promise&&N.then(X=>v(X===void 0?void 0:X),A),s.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(v(void 0),r.allowStaleOnFetchAbort&&(v=X=>u(X,!0)))})};r.status&&(r.status.fetchDispatched=!0);const g=new Promise(m).then(u,d),b=Object.assign(g,{__abortController:s,__staleWhileFetching:a,__returned:void 0});return t===void 0?(this.set(e,b,{...l.options,status:void 0}),t=Q(this,jt).get(e)):Q(this,et)[t]=b,b},yt=new WeakSet,Pt=function(e){if(!Q(this,mi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Dl},Qs=new WeakSet,Mh=function(e,t){Q(this,Hr)[t]=e,Q(this,Nr)[e]=t},qi=new WeakSet,fs=function(e){e!==Q(this,sr)&&(e===Q(this,gr)?Qe(this,gr,Q(this,Nr)[e]):Ue(this,Qs,Mh).call(this,Q(this,Hr)[e],Q(this,Nr)[e]),Ue(this,Qs,Mh).call(this,Q(this,sr),e),Qe(this,sr,e))};let wh=km;const Pl=class Pl extends Wl{constructor(t,r){super(r);I(this,"_fallbackMethod",()=>this);I(this,"out",()=>{});this.values.duration=t}};I(Pl,"createRestProxy",(t,r)=>{const i=new Pl(t,r);return new Proxy(i,{get(a,s,o){return typeof a[s]>"u"?a._fallbackMethod:a[s]}})});let ki=Pl;class xP extends Wl{constructor(t,r,i){super(i);I(this,"input");I(this,"ziffers");I(this,"callTime",0);I(this,"played",!1);I(this,"current");I(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));I(this,"areWeThereYet",()=>this.ziffers.notStarted()||this.app.api.epulse()>this.callTime+this.current.duration*this.app.api.ppqn());I(this,"out",()=>{});this.app=i,this.input=t,this.ziffers=new ZM(t,r)}sound(t){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki)return new FA(r.asObject(),this.app).sound(t);if(r instanceof ki)return ki.createRestProxy(r.duration,this.app)}else return ki.createRestProxy(0,this.app)}note(t=void 0){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki){console.log(r.asObject());const i=new YA(r.asObject(),this.app);return t?i.note(t):i}else if(r instanceof LA)return ki.createRestProxy(r.duration,this.app)}else return ki.createRestProxy(0,this.app)}}Array.prototype.in=function(n){return this.includes(n)};async function LP(){return Promise.all([_P(),Nl("github:Bubobubobubobubo/Topos-Samples/main"),Nl("github:tidalcycles/Dirt-Samples/master").then(()=>DP())])}LP();const MP=(...n)=>n.map(e=>JSON.stringify(e)).join(",");class PP{constructor(e){I(this,"variables",{});I(this,"counters",{});I(this,"_drunk",new JM(-100,100,!1));I(this,"randomGen",Math.random);I(this,"currentSeed");I(this,"localSeeds",new Map);I(this,"patternCache",new wh({max:1e3,ttl:1e3*60*5}));I(this,"MidiConnection",new jM);I(this,"load");I(this,"_reportError",e=>{console.log(e),this.app.show_error||(this.app.error_line.innerHTML=e,this.app.error_line.classList.remove("hidden"),setInterval(()=>this.app.error_line.classList.add("hidden"),2e3))});I(this,"time",()=>this.app.audioContext.currentTime);I(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.app.clock.start()});I(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.app.clock.pause()});I(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.app.clock.stop()});I(this,"silence",this.stop);I(this,"hush",this.stop);I(this,"mouseX",()=>this.app._mouseX);I(this,"mouseY",()=>this.app._mouseY);I(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));I(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));I(this,"script",(...e)=>{e.forEach(t=>{vl(this.app,this.app.universes[this.app.selected_universe].locals[t])})});I(this,"s",this.script);I(this,"clear_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});I(this,"cs",this.clear_script);I(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]=this.app.universes[this.app.selected_universe].locals[e]});I(this,"cps",this.copy_script);I(this,"midi_outputs",()=>(console.log(this.MidiConnection.listMidiOutputs()),this.MidiConnection.midiOutputs));I(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});I(this,"note",(e=60)=>new YA(e,this.app));I(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});I(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});I(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});I(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});I(this,"control_change",({control:e=20,value:t=0,channel:r=0})=>{this.MidiConnection.sendMidiControlChange(e,t,r)});I(this,"midi_panic",()=>{this.MidiConnection.panic()});I(this,"z",(e,t={})=>{const r=MP(e,t);let i;return this.app.api.patternCache.has(r)?i=this.app.api.patternCache.get(r):(i=new xP(e,t,this.app),this.app.api.patternCache.set(r,i)),(i&&i.ziffers.index===-1||i.played)&&(i.callTime=this.epulse(),i.played=!1),i});I(this,"counter",(e,t,r)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==r&&(this.counters[e].step=r??this.counters[e].step),this.counters[e].value+=this.counters[e].step,this.counters[e].limit!==void 0&&this.counters[e].value>this.counters[e].limit&&(this.counters[e].value=0)):this.counters[e]={value:0,step:r??1,limit:t},this.counters[e].value));I(this,"$",this.counter);I(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));I(this,"drunk_max",e=>{this._drunk.max=e});I(this,"drunk_min",e=>{this._drunk.min=e});I(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});I(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));I(this,"v",this.variable);I(this,"delete_variable",e=>{delete this.variables[e]});I(this,"dv",this.delete_variable);I(this,"clear_variables",()=>{this.variables={}});I(this,"cv",this.clear_variables);I(this,"div",e=>{const t=this.epulse();return Math.floor(t/Math.floor(e*this.ppqn()))%2===0});I(this,"divbar",e=>{const t=this.bar()-1;return Math.floor(t/e)%2===0});I(this,"divseq",(...e)=>{const t=e[0],r=e.slice(1),i=this.epulse(),a=Math.floor(i/Math.floor(t*this.ppqn()));return r[a%r.length]});I(this,"pick",(...e)=>e[Math.floor(this.randomGen()*e.length)]);I(this,"seqbeat",(...e)=>e[this.ebeat()%e.length]);I(this,"mel",(e,t)=>t[e%t.length]);I(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);I(this,"seqpulse",(...e)=>e[this.app.clock.time_position.pulse%e.length]);I(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);I(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);I(this,"irand",this.randI);I(this,"rI",this.randI);I(this,"r",this.rand);I(this,"ir",this.randI);I(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=Ih(e))});I(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=Ih(e);return this.localSeeds.set(e,t),t});I(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});I(this,"quantize",(e,t)=>{if(t.length===0)return e;let r=t[0];return t.forEach(i=>{Math.abs(i-e)Math.min(Math.max(e,t),r));I(this,"cmp",this.clamp);I(this,"bpm",e=>e===void 0?this.app.clock.bpm:((e<1||e>500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e));I(this,"tempo",this.bpm);I(this,"bpb",e=>e===void 0?this.app.clock.time_signature[0]:(e<1&&console.log(`Setting bpb to ${e}`),this.app.clock.time_signature[0]=e,e));I(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));I(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});I(this,"odds",(e,t=15)=>this.randomGen()this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));I(this,"rarely",(e=15)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));I(this,"scarcely",(e=15)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));I(this,"sometimes",(e=15)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));I(this,"often",(e=15)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));I(this,"frequently",(e=15)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));I(this,"almostAlways",(e=15)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));I(this,"dice",e=>Math.floor(this.randomGen()*e)+1);I(this,"i",e=>e!==void 0?(this.app.universes[this.app.selected_universe].global.evaluations=e,this.app.universes[this.app.selected_universe]):this.app.universes[this.app.selected_universe].global.evaluations);I(this,"bar",()=>this.app.clock.time_position.bar);I(this,"tick",()=>this.app.clock.tick);I(this,"pulse",()=>this.app.clock.time_position.pulse);I(this,"beat",()=>this.app.clock.time_position.beat);I(this,"ebeat",()=>this.app.clock.beats_since_origin);I(this,"epulse",()=>this.app.clock.pulses_since_origin);I(this,"onbar",(e,...t)=>{const r=[...Array(e).keys()].map(i=>i+1);return console.log(t.some(i=>r.includes(i%e))),t.some(i=>r.includes(i%e))});I(this,"onbeat",(...e)=>{let t=[];return e.forEach(r=>{r=r%this.app.clock.time_signature[0]+1;let i=Math.floor(r),a=r-i;t.push(i===this.app.clock.time_position.beat&&this.app.clock.time_position.pulse===a*this.app.clock.ppqn)}),t.some(r=>r==!0)});I(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);I(this,"min",(...e)=>Math.min(...e));I(this,"max",(...e)=>Math.max(...e));I(this,"mean",(...e)=>e.reduce((r,i)=>r+i,0)/e.length);I(this,"limit",(e,t,r)=>Math.min(Math.max(e,t),r));I(this,"delay",(e,t)=>{setTimeout(t,e)});I(this,"delayr",(e,t,r)=>{[...Array(t).keys()].map(a=>e*a).forEach((a,s)=>{setTimeout(r,a)})});I(this,"mod",(...e)=>e.map(r=>this.epulse()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"modpulse",(...e)=>e.map(r=>this.epulse()%r===0).some(r=>r===!0));I(this,"pmod",this.modpulse);I(this,"modbar",(...e)=>e.map(r=>this.bar()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"bmod",this.modbar);I(this,"euclid",(e,t,r,i=0)=>this._euclidean_cycle(t,r,i)[e%r]);I(this,"ec",this.euclid);I(this,"bin",(e,t)=>{let i=t.toString(2).split("").map(a=>a==="1");return i[e%i.length]});I(this,"line",(e,t,r=1)=>{const i=[];if(t>e&&r>0||tMath.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+t);I(this,"usine",(e=1,t=0)=>(this.sine(e,t)+1)/2);I(this,"saw",(e=1,t=0)=>this.app.clock.ctx.currentTime*e%1*2-1+t);I(this,"usaw",(e=1,t=0)=>(this.saw(e,t)+1)/2);I(this,"triangle",(e=1,t=0)=>Math.abs(this.saw(e,t))*2-1);I(this,"utriangle",(e=1,t=0)=>(this.triangle(e,t)+1)/2);I(this,"square",(e=1,t=0,r=.5)=>{const i=1/e;return(Date.now()/1e3+t)%i/i(this.square(e,t,r)+1)/2);I(this,"noise",()=>this.randomGen()*2-1);I(this,"abs",Math.abs);I(this,"sound",e=>new FA(e,this.app));I(this,"snd",this.sound);I(this,"samples",Nl);I(this,"soundMap",Dm);I(this,"log",console.log);I(this,"scale",tP);I(this,"rate",e=>{});this.app=e}_euclidean_cycle(e,t,r=0){if(e==t)return Array.from({length:t},()=>!0);function i(o,l){const u=o.length,d=(l+1)%u;return o[l]>o[d]}if(e>=t)return[!0];const a=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let s=a.map((o,l)=>i(a,l));return r!=0&&(s=s.slice(r).concat(s.slice(0,r))),s}}var Wo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function VA(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var HA={exports:{}};(function(n){(function(){function e(p){var E={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:`Remove only spaces, ' and " from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids`,type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,describe:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,describe:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,describe:"Parses simple line breaks as
(GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex:
foo
",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(p===!1)return JSON.parse(JSON.stringify(E));var O={};for(var y in E)E.hasOwnProperty(y)&&(O[y]=E[y].defaultValue);return O}function t(){var p=e(!0),E={};for(var O in p)p.hasOwnProperty(O)&&(E[O]=!0);return E}var r={},i={},a={},s=e(!0),o="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:t()};r.helper={},r.extensions={},r.setOption=function(p,E){return s[p]=E,this},r.getOption=function(p){return s[p]},r.getOptions=function(){return s},r.resetOptions=function(){s=e(!0)},r.setFlavor=function(p){if(!l.hasOwnProperty(p))throw Error(p+" flavor was not found");r.resetOptions();var E=l[p];o=p;for(var O in E)E.hasOwnProperty(O)&&(s[O]=E[O])},r.getFlavor=function(){return o},r.getFlavorOptions=function(p){if(l.hasOwnProperty(p))return l[p]},r.getDefaultOptions=function(p){return e(p)},r.subParser=function(p,E){if(r.helper.isString(p))if(typeof E<"u")i[p]=E;else{if(i.hasOwnProperty(p))return i[p];throw Error("SubParser named "+p+" not registered!")}},r.extension=function(p,E){if(!r.helper.isString(p))throw Error("Extension 'name' must be a string");if(p=r.helper.stdExtName(p),r.helper.isUndefined(E)){if(!a.hasOwnProperty(p))throw Error("Extension named "+p+" is not registered!");return a[p]}else{typeof E=="function"&&(E=E()),r.helper.isArray(E)||(E=[E]);var O=u(E,p);if(O.valid)a[p]=E;else throw Error(O.error)}},r.getAllExtensions=function(){return a},r.removeExtension=function(p){delete a[p]},r.resetExtensions=function(){a={}};function u(p,E){var O=E?"Error in "+E+" extension->":"Error in unnamed extension",y={valid:!0,error:""};r.helper.isArray(p)||(p=[p]);for(var D=0;D"u"},r.helper.forEach=function(p,E){if(r.helper.isUndefined(p))throw new Error("obj param is required");if(r.helper.isUndefined(E))throw new Error("callback param is required");if(!r.helper.isFunction(E))throw new Error("callback param must be a function/closure");if(typeof p.forEach=="function")p.forEach(E);else if(r.helper.isArray(p))for(var O=0;O").replace(/&/g,"&")};var f=function(p,E,O,y){var D=y||"",P=D.indexOf("g")>-1,w=new RegExp(E+"|"+O,"g"+D.replace(/g/g,"")),B=new RegExp(E,D.replace(/g/g,"")),re=[],ie,j,J,L,G;do for(ie=0;J=w.exec(p);)if(B.test(J[0]))ie++||(j=w.lastIndex,L=j-J[0].length);else if(ie&&!--ie){G=J.index+J[0].length;var Z={left:{start:L,end:j},match:{start:j,end:J.index},right:{start:J.index,end:G},wholeMatch:{start:L,end:G}};if(re.push(Z),!P)return re}while(ie&&(w.lastIndex=j));return re};r.helper.matchRecursiveRegExp=function(p,E,O,y){for(var D=f(p,E,O,y),P=[],w=0;w0){var ie=[];w[0].wholeMatch.start!==0&&ie.push(p.slice(0,w[0].wholeMatch.start));for(var j=0;j=0?y+(O||0):y},r.helper.splitAtIndex=function(p,E){if(!r.helper.isString(p))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[p.substring(0,E),p.substring(E)]},r.helper.encodeEmailAddress=function(p){var E=[function(O){return"&#"+O.charCodeAt(0)+";"},function(O){return"&#x"+O.charCodeAt(0).toString(16)+";"},function(O){return O}];return p=p.replace(/./g,function(O){if(O==="@")O=E[Math.floor(Math.random()*2)](O);else{var y=Math.random();O=y>.9?E[2](O):y>.45?E[1](O):E[0](O)}return O}),p},r.helper.padEnd=function(E,O,y){return O=O>>0,y=String(y||" "),E.length>O?String(E):(O=O-E.length,O>y.length&&(y+=y.repeat(O/y.length)),String(E)+y.slice(0,O))},typeof console>"u"&&(console={warn:function(p){alert(p)},log:function(p){alert(p)},error:function(p){throw p}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:':octocat:',showdown:`S`},r.Converter=function(p){var E={},O=[],y=[],D={},P=o,w={parsed:{},raw:"",format:""};B();function B(){p=p||{};for(var L in s)s.hasOwnProperty(L)&&(E[L]=s[L]);if(typeof p=="object")for(var G in p)p.hasOwnProperty(G)&&(E[G]=p[G]);else throw Error("Converter expects the passed parameter to be an object, but "+typeof p+" was passed instead.");E.extensions&&r.helper.forEach(E.extensions,re)}function re(L,G){if(G=G||null,r.helper.isString(L))if(L=r.helper.stdExtName(L),G=L,r.extensions[L]){console.warn("DEPRECATION WARNING: "+L+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),ie(r.extensions[L],L);return}else if(!r.helper.isUndefined(a[L]))L=a[L];else throw Error('Extension "'+L+'" could not be loaded. It was either not found or is not a valid extension.');typeof L=="function"&&(L=L()),r.helper.isArray(L)||(L=[L]);var Z=u(L,G);if(!Z.valid)throw Error(Z.error);for(var z=0;z",!1),Ve=bt("[",!1),Re=bt("+",!1),Ie=bt("*",!1),le=bt("%",!1),Pe=bt("&",!1),je=bt("|",!1),He=bt("<<",!1),rt=bt(">>",!1),ft=function(Y){return FM(Y.filter(ee=>ee))},Ct=function(){},Vt=function(Y,ee){return Math.floor(Math.random()*(ee-Y+1)+Y)},ht=function(Y,ee){return Math.random()*(ee-Y)+Y},Nt=function(){return parseFloat(ot())},Mt=function(){return parseInt(ot())},Gr=function(Y){return xA(Y)},Fe=function(Y,ee){return Y/ee},Mr=function(Y,ee){return Math.pow(2,Y/ee)},st=function(Y,ee,se,fe){var Se=fe?se/fe:se;return Math.pow(Se,Y/ee)},$e=function(Y,ee){return parseFloat(Y.toString()+"."+ee.toString())},Pr=function(Y){return Y.filter(ee=>ee)},nr=function(Y){return UM(Y)},hr=function(){return GM(ot())},V=0,he=0,ve=[{line:1,column:1}],Ce=0,Ke=[],Ee={},Gt;if("startRule"in a){if(!(a.startRule in l))throw new Error(`Can't start parsing from rule "`+a.startRule+'".');u=l[a.startRule]}function ot(){return i.substring(he,V)}function bt(Y,ee){return{type:"literal",text:Y,ignoreCase:ee}}function en(Y,ee,se){return{type:"class",parts:Y,inverted:ee,ignoreCase:se}}function lt(){return{type:"end"}}function Wt(Y){var ee=ve[Y],se;if(ee)return ee;for(se=Y-1;!ve[se];)se--;for(ee=ve[se],ee={line:ee.line,column:ee.column};seCe&&(Ce=V,Ke=[]),Ke.push(Y))}function H(Y,ee,se){return new e(e.buildMessage(Y,ee),Y,ee,se)}function Ot(){var Y,ee,se,fe=V*17+0,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=br(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt())))),se!==s)for(;se!==s;)ee.push(se),se=br(),se===s&&(se=Qt(),se===s&&(se=rn(),se===s&&(se=$t(),se===s&&(se=nt()))));else ee=s;return ee!==s&&(he=Y,ee=ft(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function nt(){var Y,ee,se=V*17+1,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,B.test(i.charAt(V))?(ee=i.charAt(V),V++):(ee=s,we(ie)),ee!==s&&(he=Y,ee=Ct()),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function Qt(){var Y,ee=V*17+2,se=Ee[ee];return se?(V=se.nextPos,se.result):(Y=Ge(),Y===s&&(Y=Dt(),Y===s&&(Y=cr(),Y===s&&(Y=ze()))),Ee[ee]={nextPos:V,result:Y},Y)}function cr(){var Y,ee,se,fe,Se,xe,Ae=V*17+3,dt=Ee[Ae];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Dt(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Dt(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=Vt(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Ae]={nextPos:V,result:Y},Y)}function ze(){var Y,ee,se,fe,Se,xe,Ae=V*17+4,dt=Ee[Ae];return dt?(V=dt.nextPos,dt.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=Ge(),se!==s?(i.charCodeAt(V)===44?(fe=f,V++):(fe=s,we(J)),fe!==s?(Se=Ge(),Se!==s?(i.charCodeAt(V)===41?(xe=m,V++):(xe=s,we(L)),xe!==s?(he=Y,Y=ht(se,Se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Ae]={nextPos:V,result:Y},Y)}function Ge(){var Y,ee,se,fe,Se,xe,Ae,dt=V*17+5,mr=Ee[dt];if(mr)return V=mr.nextPos,mr.result;if(Y=V,ee=V,se=[],re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G)),fe!==s)for(;fe!==s;)se.push(fe),re.test(i.charAt(V))?(fe=i.charAt(V),V++):(fe=s,we(G));else se=s;if(se!==s?(i.charCodeAt(V)===46?(fe=g,V++):(fe=s,we(Z)),fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)):(V=ee,ee=s),ee===s){for(ee=V,i.charCodeAt(V)===45?(se=b,V++):(se=s,we(z)),se===s&&(se=null),fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));if(i.charCodeAt(V)===46?(Se=g,V++):(Se=s,we(Z)),Se!==s){if(xe=[],re.test(i.charAt(V))?(Ae=i.charAt(V),V++):(Ae=s,we(G)),Ae!==s)for(;Ae!==s;)xe.push(Ae),re.test(i.charAt(V))?(Ae=i.charAt(V),V++):(Ae=s,we(G));else xe=s;xe!==s?(se=[se,fe,Se,xe],ee=se):(V=ee,ee=s)}else V=ee,ee=s;if(ee===s)if(ee=V,i.charCodeAt(V)===46?(se=g,V++):(se=s,we(Z)),se!==s){if(fe=[],re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G)),Se!==s)for(;Se!==s;)fe.push(Se),re.test(i.charAt(V))?(Se=i.charAt(V),V++):(Se=s,we(G));else fe=s;fe!==s?(se=[se,fe],ee=se):(V=ee,ee=s)}else V=ee,ee=s}return ee!==s&&(he=Y,ee=Nt()),Y=ee,Ee[dt]={nextPos:V,result:Y},Y}function Dt(){var Y,ee,se,fe=V*17+6,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,i.charCodeAt(V)===45?V++:we(z),ee=[],re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G)),se!==s)for(;se!==s;)ee.push(se),re.test(i.charAt(V))?(se=i.charAt(V),V++):(se=s,we(G));else ee=s;return ee!==s?(he=Y,Y=Mt()):(V=Y,Y=s),Ee[fe]={nextPos:V,result:Y},Y}function br(){var Y,ee,se=V*17+7,fe=Ee[se];return fe?(V=fe.nextPos,fe.result):(Y=V,ee=$n(),ee===s&&(ee=vt(),ee===s&&(ee=Ai(),ee===s&&(ee=tn()))),ee!==s&&(he=Y,ee=Gr(ee)),Y=ee,Ee[se]={nextPos:V,result:Y},Y)}function Ai(){var Y,ee,se,fe,Se=V*17+8,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===47?(se=v,V++):(se=s,we(ce)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Fe(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function vt(){var Y,ee,se,fe,Se=V*17+9,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=A,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(he=Y,Y=Mr(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $n(){var Y,ee,se,fe,Se,xe,Ae,dt,mr=V*17+10,Qr=Ee[mr];return Qr?(V=Qr.nextPos,Qr.result):(Y=V,ee=Dt(),ee===s&&(ee=cr()),ee!==s?(i.charCodeAt(V)===92?(se=A,V++):(se=s,we(ue)),se!==s?(fe=Dt(),fe===s&&(fe=cr()),fe!==s?(i.charCodeAt(V)===60?(Se=N,V++):(Se=s,we(Te)),Se!==s?(xe=Dt(),xe===s&&(xe=cr()),xe!==s?(i.charCodeAt(V)===47?V++:we(ce),Ae=Dt(),Ae===s&&(Ae=cr()),Ae===s&&(Ae=null),i.charCodeAt(V)===62?(dt=F,V++):(dt=s,we(ke)),dt!==s?(he=Y,Y=st(ee,fe,xe,Ae)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[mr]={nextPos:V,result:Y},Y)}function tn(){var Y,ee,se,fe,Se=V*17+11,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,ee=Dt(),ee!==s?(i.charCodeAt(V)===44?(se=f,V++):(se=s,we(J)),se!==s?(fe=Dt(),fe!==s?(he=Y,Y=$e(ee,fe)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function qn(){var Y,ee,se,fe=V*17+12,Se=Ee[fe];if(Se)return V=Se.nextPos,Se.result;if(Y=V,ee=[],se=Dt(),se===s&&(se=nt()),se!==s)for(;se!==s;)ee.push(se),se=Dt(),se===s&&(se=nt());else ee=s;return ee!==s&&(he=Y,ee=Pr(ee)),Y=ee,Ee[fe]={nextPos:V,result:Y},Y}function rn(){var Y,ee,se,fe,Se=V*17+13,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===91?(ee=X,V++):(ee=s,we(Ve)),ee!==s?(se=qn(),se!==s?(i.charCodeAt(V)===62?(fe=F,V++):(fe=s,we(ke)),fe!==s?(he=Y,Y=nr(se)):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}function $t(){var Y,ee,se,fe,Se,xe,Ae,dt,mr=V*17+14,Qr=Ee[mr];if(Qr)return V=Qr.nextPos,Qr.result;if(Y=V,ee=Qt(),ee===s&&(ee=br(),ee===s&&(ee=rn(),ee===s)))for(ee=[],se=nt();se!==s;)ee.push(se),se=nt();if(ee!==s){if(se=[],fe=V,Se=We(),Se!==s){for(xe=[],Ae=nt();Ae!==s;)xe.push(Ae),Ae=nt();if(Ae=Qt(),Ae===s&&(Ae=br(),Ae===s&&(Ae=rn(),Ae===s&&(Ae=ni(),Ae===s&&(Ae=$t(),Ae===s)))))for(Ae=[],dt=nt();dt!==s;)Ae.push(dt),dt=nt();Ae!==s?(Se=[Se,xe,Ae],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;if(fe!==s)for(;fe!==s;)if(se.push(fe),fe=V,Se=We(),Se!==s){for(xe=[],Ae=nt();Ae!==s;)xe.push(Ae),Ae=nt();if(Ae=Qt(),Ae===s&&(Ae=br(),Ae===s&&(Ae=rn(),Ae===s&&(Ae=ni(),Ae===s&&(Ae=$t(),Ae===s)))))for(Ae=[],dt=nt();dt!==s;)Ae.push(dt),dt=nt();Ae!==s?(Se=[Se,xe,Ae],fe=Se):(V=fe,fe=s)}else V=fe,fe=s;else se=s;se!==s?(he=Y,Y=hr()):(V=Y,Y=s)}else V=Y,Y=s;return Ee[mr]={nextPos:V,result:Y},Y}function We(){var Y,ee=V*17+15,se=Ee[ee];return se?(V=se.nextPos,se.result):(i.charCodeAt(V)===43?(Y=p,V++):(Y=s,we(Re)),Y===s&&(i.charCodeAt(V)===45?(Y=b,V++):(Y=s,we(z)),Y===s&&(i.charCodeAt(V)===42?(Y=E,V++):(Y=s,we(Ie)),Y===s&&(i.charCodeAt(V)===37?(Y=O,V++):(Y=s,we(le)),Y===s&&(i.charCodeAt(V)===38?(Y=y,V++):(Y=s,we(Pe)),Y===s&&(i.charCodeAt(V)===124?(Y=D,V++):(Y=s,we(je)),Y===s&&(i.substr(V,2)===P?(Y=P,V+=2):(Y=s,we(He)),Y===s&&(i.substr(V,2)===w?(Y=w,V+=2):(Y=s,we(rt))))))))),Ee[ee]={nextPos:V,result:Y},Y)}function ni(){var Y,ee,se,fe,Se=V*17+16,xe=Ee[Se];return xe?(V=xe.nextPos,xe.result):(Y=V,i.charCodeAt(V)===40?(ee=d,V++):(ee=s,we(j)),ee!==s?(se=$t(),se!==s?(i.charCodeAt(V)===41?(fe=m,V++):(fe=s,we(L)),fe!==s?(ee=[ee,se,fe],Y=ee):(V=Y,Y=s)):(V=Y,Y=s)):(V=Y,Y=s),Ee[Se]={nextPos:V,result:Y},Y)}if(Gt=u(),Gt!==s&&V===i.length)return Gt;throw Gt!==s&&Ve.collect("pitch"))}notes(){return this.evaluated.map(e=>e.collect("note"))}freqs(){return this.evaluated.map(e=>e.collect("freq"))}durations(){return this.evaluated.map(e=>e.collect("duration"))}retrograde(){return this.evaluated.reverse(),this}next(){this.redo>0&&this.index>=this.evaluated.length*this.redo&&(this.update(),this.index=0),this.index<0&&(this.index=0);const e=this.evaluated[this.index%this.evaluated.length];return this.index++,this.counter++,e}applyTransformations(){var e;(e=this.globalOptions)!=null&&e.retrograde&&(this.evaluated=this.evaluated.reverse())}clone(){return Rl(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=0}evaluate(){const e=this.values.map(t=>t.evaluate()).flat(1/0).filter(t=>t!==void 0);return e.forEach((t,r)=>{t._next=r0?r-1:e.length-1}),e}}const KM=n=>{let e={};return QM.forEach(t=>{if(n[t]!==void 0){const r=n[t];e[t]=r,delete n[t]}}),e};class jM{constructor(){I(this,"midiAccess",null);I(this,"midiOutputs",[]);I(this,"currentOutputIndex",0);I(this,"scheduledNotes",{});this.initializeMidiAccess()}async initializeMidiAccess(){try{this.midiAccess=await navigator.requestMIDIAccess(),this.midiOutputs=Array.from(this.midiAccess.outputs.values()),this.midiOutputs.length===0&&(console.warn("No MIDI outputs available."),this.currentOutputIndex=-1)}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndex0&&this.currentOutputIndex>=0&&this.currentOutputIndex=this.midiOutputs.length?(console.error(`Invalid MIDI output index. Index must be in the range 0-${this.midiOutputs.length-1}.`),this.currentOutputIndex):e;{const t=this.midiOutputs.findIndex(r=>r.name===e);return t!==-1?t:(console.error(`MIDI output "${e}" not found.`),this.currentOutputIndex)}}listMidiOutputs(){console.log("Available MIDI Outputs:"),this.midiOutputs.forEach((e,t)=>{console.log(`${t+1}. ${e.name}`)})}sendMidiNote(e,t,r,i,a=this.currentOutputIndex,s=void 0){typeof a=="string"&&(a=this.getMidiOutputIndex(a));const o=this.midiOutputs[a];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,r],u=[128+t,e,0];o.send(l),s&&this.sendPitchBend(s,t,a);const d=setTimeout(()=>{o.send(u),s&&this.sendPitchBend(8192,t,a),delete this.scheduledNotes[e]},(i-.02)*1e3);this.scheduledNotes[e]=d}else console.error("MIDI output not available.")}sendSysExMessage(e){const t=this.midiOutputs[this.currentOutputIndex];t?t.send(e):console.error("MIDI output not available.")}sendPitchBend(e,t,r=this.currentOutputIndex){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(t<0||t>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15."),typeof r=="string"&&(r=this.getMidiOutputIndex(r));const i=this.midiOutputs[r];if(i){const a=e&127,s=e>>7&127;i.send([224|t,a,s])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const r=this.midiOutputs[this.currentOutputIndex];r?r.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,r){const i=this.midiOutputs[this.currentOutputIndex];i?i.send([176+r,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const r=this.scheduledNotes[t];clearTimeout(r),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class JM{constructor(e,t,r){I(this,"min");I(this,"max");I(this,"wrap");I(this,"position");this.min=e,this.max=t,this.wrap=r,this.position=0}step(){const e=Math.floor(Math.random()*3)-1;this.position+=e,this.wrap?this.position>this.max?this.position=this.min:this.positionthis.max&&(this.position=this.max)}getPosition(){return this.position}toggleWrap(e){this.wrap=e}}const eP={major:[0,2,4,5,7,9,11],naturalMinor:[0,2,3,5,7,8,10],harmonicMinor:[0,2,3,5,7,8,11],melodicMinor:[0,2,3,5,7,9,11],dorian:[0,2,3,5,7,9,10],phrygian:[0,1,3,5,7,8,10],lydian:[0,2,4,6,7,9,11],mixolydian:[0,2,4,5,7,9,10],aeolian:[0,2,3,5,7,8,10],locrian:[0,1,3,5,6,8,10],wholeTone:[0,2,4,6,8,10],majorPentatonic:[0,2,4,7,9],minorPentatonic:[0,3,5,7,10],chromatic:[0,1,2,3,4,5,6,7,8,9,10,11],blues:[0,3,5,6,7,10],diminished:[0,2,3,5,6,8,9,11],neapolitanMinor:[0,1,3,5,7,8,11],neapolitanMajor:[0,1,3,5,7,9,11],enigmatic:[0,1,4,6,8,10,11],doubleHarmonic:[0,1,4,5,7,8,11],octatonic:[0,2,3,5,6,8,9,11],bebopDominant:[0,2,4,5,7,9,10,11],bebopMajor:[0,2,4,5,7,8,9,11],bebopMinor:[0,2,3,5,7,8,9,11],bebopDorian:[0,2,3,4,5,7,9,10],harmonicMajor:[0,2,4,5,7,8,11],hungarianMinor:[0,2,3,6,7,8,11],hungarianMajor:[0,3,4,6,7,9,10],oriental:[0,1,4,5,6,9,10],romanianMinor:[0,2,3,6,7,9,10],spanishGypsy:[0,1,4,5,7,8,10],jewish:[0,1,4,5,7,8,10],hindu:[0,2,4,5,7,8,10],japanese:[0,1,5,7,8],hirajoshi:[0,2,3,7,8],kumoi:[0,2,3,7,9],inSen:[0,1,5,7,10],iwato:[0,1,5,6,10],yo:[0,2,5,7,9],minorBlues:[0,3,5,6,7,10],algerian:[0,2,3,5,6,7,8,11],augmented:[0,3,4,7,8,11],balinese:[0,1,3,7,8],byzantine:[0,1,4,5,7,8,11],chinese:[0,4,6,7,11],egyptian:[0,2,5,7,10],eightToneSpanish:[0,1,3,4,5,6,8,10],hawaiian:[0,2,3,5,7,9,10],hindustan:[0,2,4,5,7,8,10],persian:[0,1,4,5,6,8,11],eastIndianPurvi:[0,1,4,6,7,8,11],orientalA:[0,1,4,5,6,9,10]};function tP(n,e="major",t=4){const r=eP[e];if(!r)throw new Error(`Unknown scale ${e}`);let i=n%r.length;i<0&&(i+=r.length);let a=Math.floor(n/r.length);return 60+(t+a)*12+r[i]}class Wl{constructor(e){I(this,"seedValue");I(this,"randomGen",Math.random);I(this,"app");I(this,"values",{});I(this,"odds",(e,t)=>this.randomGen()this.odds(.025,e));I(this,"rarely",e=>this.odds(.1,e));I(this,"scarcely",e=>this.odds(.25,e));I(this,"sometimes",e=>this.odds(.5,e));I(this,"often",e=>this.odds(.75,e));I(this,"frequently",e=>this.odds(.9,e));I(this,"almostAlways",e=>this.odds(.985,e));I(this,"modify",e=>e(this));I(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));I(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));I(this,"apply",e=>this.modify(e));I(this,"duration",e=>(this.values.duration=e,this));this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}}let Ir=[],rP=(n,e)=>{let t,r=[],i={lc:0,l:e||0,value:n,set(a){i.value=a,i.notify()},get(){return i.lc||i.listen(()=>{})(),i.value},notify(a){t=r;let s=!Ir.length;for(let o=0;o{r===t&&(r=r.slice());let o=r.indexOf(a);~o&&(r.splice(o,2),i.lc--,i.lc||i.off())}},subscribe(a,s){let o=i.listen(a,s);return a(i.value),o},off(){}};return i},nP=(n={})=>{let e=rP(n);return e.setKey=function(t,r){typeof r>"u"?t in e.value&&(e.value={...e.value},delete e.value[t],e.notify(t)):e.value[t]!==r&&(e.value={...e.value,[t]:r},e.notify(t))},e};if(typeof DelayNode<"u"){class n extends DelayNode{constructor(t,r,i,a){super(t),r=Math.abs(r),this.delayTime.value=i;const s=t.createGain();s.gain.value=Math.min(Math.abs(a),.995),this.feedback=s.gain;const o=t.createGain();return o.gain.value=r,this.delayGain=o,this.connect(s),this.connect(o),s.connect(this),this.connect=l=>o.connect(l),this}start(t){this.delayGain.gain.setValueAtTime(this.delayGain.gain.value,t+this.delayTime.value)}}AudioContext.prototype.createFeedbackDelay=function(e,t,r){return new n(this,e,t,r)}}typeof AudioContext<"u"&&(AudioContext.prototype.impulseResponse=function(n,e=1){const t=this.sampleRate*n,r=this.createBuffer(e,t,this.sampleRate),i=r.getChannelData(0);for(let a=0;a(e.buffer=this.impulseResponse(t),e.duration=n,e),e.setDuration(n),e});var xS={a:{freqs:[660,1120,2750,3e3,3350],gains:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],gains:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],gains:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],gains:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],gains:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};if(typeof GainNode<"u"){class n extends GainNode{constructor(t,r){if(super(t),!xS[r])throw new Error("vowel: unknown vowel "+r);const{gains:i,qs:a,freqs:s}=xS[r],o=t.createGain();for(let l=0;l<5;l++){const u=t.createGain();u.gain.value=i[l];const d=t.createBiquadFilter();d.type="bandpass",d.Q.value=a[l],d.frequency.value=s[l],this.connect(d),d.connect(u),u.connect(o)}return o.gain.value=8,this.connect=l=>o.connect(l),this}}AudioContext.prototype.createVowelFilter=function(e){return new n(this,e)}}const iP=n=>{var i;if(typeof n!="string")return[];const[e,t="",r]=((i=n.match(/^([a-gA-G])([#bsf]*)([0-9]*)$/))==null?void 0:i.slice(1))||[];return e?[e,t,r?Number(r):void 0]:[]},aP={c:0,d:2,e:4,f:5,g:7,a:9,b:11},sP={"#":1,b:-1,s:1,f:-1},Nm=(n,e=3)=>{const[t,r,i=e]=iP(n);if(!t)throw new Error('not a note: "'+n+'"');const a=aP[t.toLowerCase()],s=(r==null?void 0:r.split("").reduce((o,l)=>o+sP[l],0))||0;return(Number(i)+1)*12+a+s},oP=n=>Math.pow(2,(n-69)/12)*440,lP=(n,e,t)=>Math.min(Math.max(n,e),t),cP=n=>12*Math.log(n/440)/Math.LN2+69,uP=(n,e)=>{if(typeof n!="object")throw new Error("valueToMidi: expected object value");let{freq:t,note:r}=n;if(typeof t=="number")return cP(t);if(typeof r=="string")return Nm(r);if(typeof r=="number")return r;if(!e)throw new Error("valueToMidi: expected freq or note to be set");return e},dP="data:application/javascript;base64,Ly8gTElDRU5TRSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGt0cjAvV2ViRGlydC9ibG9iL21haW4vTElDRU5TRQovLyBhbGwgdGhlIGNyZWRpdCBnb2VzIHRvIGRrdHIwJ3Mgd2ViZGlydDogaHR0cHM6Ly9naXRodWIuY29tL2RrdHIwL1dlYkRpcnQvYmxvYi81Y2UzZDY5ODM2MmM1NGQ2ZTFiNjhhY2M0N2ViMjk1NWFjNjJjNzkzL2Rpc3QvQXVkaW9Xb3JrbGV0cy5qcwovLyA8MwoKY2xhc3MgQ29hcnNlUHJvY2Vzc29yIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICBzdGF0aWMgZ2V0IHBhcmFtZXRlckRlc2NyaXB0b3JzKCkgewogICAgcmV0dXJuIFt7IG5hbWU6ICdjb2Fyc2UnLCBkZWZhdWx0VmFsdWU6IDEgfV07CiAgfQoKICBjb25zdHJ1Y3RvcigpIHsKICAgIHN1cGVyKCk7CiAgICB0aGlzLm5vdFN0YXJ0ZWQgPSB0cnVlOwogIH0KCiAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzWzBdOwogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXTsKICAgIGNvbnN0IGNvYXJzZSA9IHBhcmFtZXRlcnMuY29hcnNlOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBvdXRwdXRbMF1bMF0gPSBpbnB1dFswXVswXTsKICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgIGZvciAobGV0IG8gPSAwOyBvIDwgb3V0cHV0Lmxlbmd0aDsgbysrKSB7CiAgICAgICAgICBvdXRwdXRbb11bbl0gPSBuICUgY29hcnNlID09IDAgPyBpbnB1dFswXVtuXSA6IG91dHB1dFtvXVtuIC0gMV07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ2NvYXJzZS1wcm9jZXNzb3InLCBDb2Fyc2VQcm9jZXNzb3IpOwoKY2xhc3MgQ3J1c2hQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ2NydXNoJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBjcnVzaCA9IHBhcmFtZXRlcnMuY3J1c2g7CiAgICBjb25zdCBibG9ja1NpemUgPSAxMjg7CiAgICBjb25zdCBoYXNJbnB1dCA9ICEoaW5wdXRbMF0gPT09IHVuZGVmaW5lZCk7CiAgICBpZiAoaGFzSW5wdXQpIHsKICAgICAgdGhpcy5ub3RTdGFydGVkID0gZmFsc2U7CiAgICAgIGlmIChjcnVzaC5sZW5ndGggPT09IDEpIHsKICAgICAgICBjb25zdCB4ID0gTWF0aC5wb3coMiwgY3J1c2hbMF0gLSAxKTsKICAgICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoaW5wdXRbMF1bbl0gKiB4KSAvIHg7CiAgICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgICBvdXRwdXRbb11bbl0gPSB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZm9yIChsZXQgbiA9IDA7IG4gPCBibG9ja1NpemU7IG4rKykgewogICAgICAgICAgbGV0IHggPSBNYXRoLnBvdygyLCBjcnVzaFtuXSAtIDEpOwogICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKGlucHV0WzBdW25dICogeCkgLyB4OwogICAgICAgICAgZm9yIChsZXQgbyA9IDA7IG8gPCBvdXRwdXQubGVuZ3RoOyBvKyspIHsKICAgICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQpyZWdpc3RlclByb2Nlc3NvcignY3J1c2gtcHJvY2Vzc29yJywgQ3J1c2hQcm9jZXNzb3IpOwoKY2xhc3MgU2hhcGVQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICByZXR1cm4gW3sgbmFtZTogJ3NoYXBlJywgZGVmYXVsdFZhbHVlOiAwIH1dOwogIH0KCiAgY29uc3RydWN0b3IoKSB7CiAgICBzdXBlcigpOwogICAgdGhpcy5ub3RTdGFydGVkID0gdHJ1ZTsKICB9CgogIHByb2Nlc3MoaW5wdXRzLCBvdXRwdXRzLCBwYXJhbWV0ZXJzKSB7CiAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHNbMF07CiAgICBjb25zdCBzaGFwZTAgPSBwYXJhbWV0ZXJzLnNoYXBlWzBdOwogICAgY29uc3Qgc2hhcGUxID0gc2hhcGUwIDwgMSA/IHNoYXBlMCA6IDEuMCAtIDRlLTEwOwogICAgY29uc3Qgc2hhcGUgPSAoMi4wICogc2hhcGUxKSAvICgxLjAgLSBzaGFwZTEpOwogICAgY29uc3QgYmxvY2tTaXplID0gMTI4OwogICAgY29uc3QgaGFzSW5wdXQgPSAhKGlucHV0WzBdID09PSB1bmRlZmluZWQpOwogICAgaWYgKGhhc0lucHV0KSB7CiAgICAgIHRoaXMubm90U3RhcnRlZCA9IGZhbHNlOwogICAgICBmb3IgKGxldCBuID0gMDsgbiA8IGJsb2NrU2l6ZTsgbisrKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSAoKDEgKyBzaGFwZSkgKiBpbnB1dFswXVtuXSkgLyAoMSArIHNoYXBlICogTWF0aC5hYnMoaW5wdXRbMF1bbl0pKTsKICAgICAgICBmb3IgKGxldCBvID0gMDsgbyA8IG91dHB1dC5sZW5ndGg7IG8rKykgewogICAgICAgICAgb3V0cHV0W29dW25dID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gdGhpcy5ub3RTdGFydGVkIHx8IGhhc0lucHV0OwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoJ3NoYXBlLXByb2Nlc3NvcicsIFNoYXBlUHJvY2Vzc29yKTsK";function Il(n){const e=Yr().createGain();return e.gain.value=n,e}const pP=({s:n,freq:e,t})=>{const r=Yr().createOscillator();return r.type=n||"triangle",r.frequency.value=Number(e),r.start(t),{node:r,stop:i=>r.stop(i)}},BA=(n,e,t,r,i,a)=>{const s=Yr().createGain();return s.gain.setValueAtTime(0,a),s.gain.linearRampToValueAtTime(i,a+n),s.gain.linearRampToValueAtTime(t*i,a+n+e),{node:s,stop:o=>{s.gain.setValueAtTime(t*i,o),s.gain.linearRampToValueAtTime(0,o+r)}}},Fc=(n,e,t)=>{const r=Yr().createBiquadFilter();return r.type=n,r.frequency.value=e,r.Q.value=t,r};let fP=n=>console.log(n);const Ya=(...n)=>fP(...n),Dm=nP();function UA(n,e,t={}){Dm.setKey(n,{onTrigger:e,data:t})}function LS(n){return Dm.get()[n]}let Yc;const Yr=()=>(Yc||(Yc=new AudioContext),Yc);let Io;const wm=()=>{const n=Yr();return Io||(Io=n.createGain(),Io.connect(n.destination)),Io};let Gc;function hP(){return Gc||(Gc=Yr().audioWorklet.addModule(dP),Gc)}function Qc(n,e,t){const r=new AudioWorkletNode(n,e);return Object.entries(t).forEach(([i,a])=>{r.parameters.get(i).value=a}),r}async function mP(n={}){const{disableWorklets:e=!1}=n;typeof window<"u"&&(await Yr().resume(),e?console.log("disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!"):await hP().catch(t=>{console.warn("could not load AudioWorklet effects coarse, crush and shape",t)}))}async function _P(n){return new Promise(e=>{document.addEventListener("click",async function t(){await mP(n),e(),document.removeEventListener("click",t)})})}let xi={};function gP(n,e,t,r){var i;if(t=lP(t,0,.98),!xi[n]){const a=Yr().createFeedbackDelay(1,e,t);(i=a.start)==null||i.call(a,r),a.connect(wm()),xi[n]=a}return xi[n].delayTime.value!==e&&xi[n].delayTime.setValueAtTime(e,r),xi[n].feedback.value!==t&&xi[n].feedback.setValueAtTime(t,r),xi[n]}let Li={};function SP(n,e=2){if(!Li[n]){const t=Yr().createReverb(e);t.connect(wm()),Li[n]=t}return Li[n].duration!==e&&(Li[n]=Li[n].setDuration(e),Li[n].duration=e),Li[n]}function MS(n,e,t){const r=Il(t);return n.connect(r),r.connect(e),r}const OP=async(n,e,t)=>{const r=Yr();if(typeof n!="object")throw new Error(`expected hap.value to be an object, but got "${n}". Hint: append .note() or .s() to the end`,"error");let i=r.currentTime+e,{s:a="triangle",bank:s,source:o,gain:l=.8,cutoff:u,resonance:d=1,hcutoff:f,hresonance:m=1,bandf:g,bandq:b=1,coarse:v,crush:A,shape:N,pan:F,vowel:X,delay:p=0,delayfeedback:E=.5,delaytime:O=.25,orbit:y=1,room:D,size:P=2,velocity:w=1}=n;l*=w;let B=[];const re=()=>{B.forEach(Z=>Z==null?void 0:Z.disconnect())};s&&a&&(a=`${s}_${a}`);let ie;if(o)ie=o(i,n,t);else if(LS(a)){const{onTrigger:Z}=LS(a),z=await Z(i,n,re);z&&(ie=z.node,z.stop(i+t))}else throw new Error(`sound ${a} not found! Is it loaded?`);if(!ie)return;if(r.currentTime>i){Ya("[webaudio] skip hap: still loading",r.currentTime-i);return}const j=[];if(j.push(ie),j.push(Il(l)),u!==void 0&&j.push(Fc("lowpass",u,d)),f!==void 0&&j.push(Fc("highpass",f,m)),g!==void 0&&j.push(Fc("bandpass",g,b)),X!==void 0&&j.push(r.createVowelFilter(X)),v!==void 0&&j.push(Qc(r,"coarse-processor",{coarse:v})),A!==void 0&&j.push(Qc(r,"crush-processor",{crush:A})),N!==void 0&&j.push(Qc(r,"shape-processor",{shape:N})),F!==void 0){const Z=r.createStereoPanner();Z.pan.value=2*F-1,j.push(Z)}const J=Il(1);j.push(J),J.connect(wm());let L;if(p>0&&O>0&&E>0){const Z=gP(y,O,E,i);L=MS(J,Z,p)}let G;if(D>0&&P>0){const Z=SP(y,P);G=MS(J,Z,D)}j.slice(1).reduce((Z,z)=>Z.connect(z),j[0]),B=j.concat([L,G])},$c={};function EP(n,e){var t=e?1e3:1024;if(n=t);return n.toFixed(1)+" "+r[i]}const bP=async(n,e,t,r,i,a,s)=>{let o=0;i!==void 0&&t!==void 0&&Ya("[sampler] hap has note and freq. ignoring note","warning");let l=uP({freq:i,note:t},36);o=l-36;const u=Yr();let d;if(Array.isArray(a))d=a[e%a.length];else{const b=A=>Nm(A)-l,v=Object.keys(a).filter(A=>!A.startsWith("_")).reduce((A,N,F)=>!A||Math.abs(b(N)){const i=t?`sound "${t}:${r}"`:"sample";if(!$c[n]){Ya(`[sampler] load ${i}..`,"load-sample",{url:n});const a=Date.now();$c[n]=fetch(n).then(s=>s.arrayBuffer()).then(async s=>{const o=Date.now()-a,l=EP(s.byteLength);return Ya(`[sampler] load ${i}... done! loaded ${l} in ${o}ms`,"loaded-sample",{url:n}),await e.decodeAudioData(s)})}return $c[n]};function CP(n){const e=Yr(),t=e.createBuffer(n.numberOfChannels,n.length,e.sampleRate);for(let r=0;rObject.entries(n).forEach(([r,i])=>{if(typeof i=="string"&&(i=[i]),typeof i!="object")throw new Error("wrong sample map format for "+r);t=i._base||t;const a=s=>(t+s).replace("github:","https://raw.githubusercontent.com/");Array.isArray(i)?i=i.map(a):i=Object.fromEntries(Object.entries(i).map(([s,o])=>[s,(typeof o=="string"?[o]:o).map(a)])),e(r,i)});let AP={};function yP(n){const e=Object.entries(AP).find(([t])=>n.startsWith(t));if(e)return e[1]}const Nl=async(n,e=n._base||"",t={})=>{if(typeof n=="string"){const a=yP(n);if(a)return a(n);if(n.startsWith("github:")){let[o,l]=n.split("github:");l=l.endsWith("/")?l.slice(0,-1):l,n=`https://raw.githubusercontent.com/${l}/strudel.json`}if(typeof fetch!="function")return;const s=n.split("/").slice(0,-1).join("/");return typeof fetch>"u"?void 0:fetch(n).then(o=>o.json()).then(o=>Nl(o,e||o._base||s,t)).catch(o=>{throw console.error(o),new Error(`error loading "${n}"`)})}const{prebake:r,tag:i}=t;vP(n,(a,s)=>UA(a,(o,l,u)=>RP(o,l,u,s),{type:"sample",samples:s,baseUrl:e,prebake:r,tag:i}),e)},PS=[];async function RP(n,e,t,r,i){const{s:a,freq:s,unit:o,nudge:l=0,cut:u,loop:d,clip:f=void 0,n:m=0,note:g,speed:b=1,begin:v=0,end:A=1}=e;if(b===0)return;const N=Yr(),{attack:F=.001,decay:X=.001,sustain:p=1,release:E=.001}=e,O=n+l,y=await bP(a,m,g,b,s,r,i);if(N.currentTime>n){Ya(`[sampler] still loading sound "${a}:${m}"`,"highlight");return}if(!y){Ya(`[sampler] could not load "${a}:${m}"`,"error");return}y.playbackRate.value=Math.abs(b)*y.playbackRate.value,o==="c"&&(y.playbackRate.value=y.playbackRate.value*y.buffer.duration*1);const D=v*y.buffer.duration;y.start(O,D);const P=y.buffer.duration/y.playbackRate.value,{node:w,stop:B}=BA(F,X,p,E,1,n);y.connect(w);const re=N.createGain();w.connect(re),y.onended=function(){y.disconnect(),w.disconnect(),re.disconnect(),t()};const ie={node:re,bufferSource:y,stop:(j,J=f===void 0)=>{let L=j;J&&(L=n+(A-v)*P),y.stop(L+E),B(L)}};if(u!==void 0){const j=PS[u];j&&(j.node.gain.setValueAtTime(1,O),j.node.gain.linearRampToValueAtTime(0,O+.01)),PS[u]=ie}return ie}const IP=(n,e=1,t="sine")=>{const r=Yr(),i=r.createOscillator();i.type=t,i.frequency.value=n,i.start();const a=new GainNode(r,{gain:e});return i.connect(a),{node:a,stop:s=>i.stop(s)}},NP=(n,e,t,r="sine")=>{const i=n.frequency.value*e,a=i*t;return IP(i,a,r)};function DP(){["sine","square","triangle","sawtooth"].forEach(n=>{UA(n,(e,t,r)=>{const{attack:i=.001,decay:a=.05,sustain:s=.6,release:o=.01,fmh:l=1,fmi:u}=t;let{n:d,note:f,freq:m}=t;d=f||d||36,typeof d=="string"&&(d=Nm(d)),!m&&typeof d=="number"&&(m=oP(d));const{node:g,stop:b}=pP({t:e,s:n,freq:m});let v;if(u){const{node:X,stop:p}=NP(g,l,u);X.connect(g.frequency),v=p}const A=Il(.3),{node:N,stop:F}=BA(i,a,s,o,1,e);return g.onended=()=>{g.disconnect(),A.disconnect(),r()},{node:g.connect(A).connect(N),stop:X=>{F(X);let p=X+o;b(p),v==null||v(p)}}},{type:"synth",prebake:!0})})}class FA extends Wl{constructor(t,r){super(r);I(this,"attack",t=>(this.values.attack=t,this));I(this,"atk",this.attack);I(this,"decay",t=>(this.values.decay=t,this));I(this,"dec",this.decay);I(this,"sustain",t=>(this.values.sustain=t,this));I(this,"sus",this.sustain);I(this,"release",t=>(this.values.release=t,this));I(this,"rel",this.release);I(this,"unit",t=>(this.values.unit=t,this));I(this,"freq",t=>(this.values.freq=t,this));I(this,"fm",t=>{if(typeof t=="number")this.values.fmi=t;else{let r=t.split(":");this.values.fmi=parseFloat(r[0]),r.length>1&&(this.values.fmh=parseFloat(r[1]))}return this});I(this,"sound",t=>(this.values.s=t,this));I(this,"fmi",t=>(this.values.fmi=t,this));I(this,"fmh",t=>(this.values.fmh=t,this));I(this,"nudge",t=>(this.values.nudge=t,this));I(this,"cut",t=>(this.values.cut=t,this));I(this,"loop",t=>(this.values.loop=t,this));I(this,"clip",t=>(this.values.clip=t,this));I(this,"n",t=>(this.values.n=t,this));I(this,"note",t=>(this.values.note=t,this));I(this,"speed",t=>(this.values.speed=t,this));I(this,"begin",t=>(this.values.begin=t,this));I(this,"end",t=>(this.values.end=t,this));I(this,"gain",t=>(this.values.gain=t,this));I(this,"cutoff",t=>(this.values.cutoff=t,this));I(this,"resonance",t=>(this.values.resonance=t,this));I(this,"hcutoff",t=>(this.values.hcutoff=t,this));I(this,"hresonance",t=>(this.values.hresonance=t,this));I(this,"bandf",t=>(this.values.bandf=t,this));I(this,"bandq",t=>(this.values.bandq=t,this));I(this,"coarse",t=>(this.values.coarse=t,this));I(this,"crush",t=>(this.values.crush=t,this));I(this,"shape",t=>(this.values.shape=t,this));I(this,"pan",t=>(this.values.pan=t,this));I(this,"vowel",t=>(this.values.vowel=t,this));I(this,"delay",t=>(this.values.delay=t,this));I(this,"delayfeedback",t=>(this.values.delayfeedback=t,this));I(this,"delaytime",t=>(this.values.delaytime=t,this));I(this,"orbit",t=>(this.values.orbit=t,this));I(this,"room",t=>(this.values.room=t,this));I(this,"size",t=>(this.values.size=t,this));I(this,"velocity",t=>(this.values.velocity=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"dur",t=>(this.values.dur=t,this));I(this,"out",()=>OP(this.values,this.app.clock.pulse_duration,this.values.dur));this.app=r,typeof t=="string"?this.values={s:t,dur:.5}:this.values=t}}class YA extends Wl{constructor(t,r){super(r);I(this,"midiConnection");I(this,"note",t=>(this.values.note=t,this));I(this,"duration",t=>(this.values.duration=t,this));I(this,"sustain",t=>(this.values.sustain=t,this));I(this,"channel",t=>(this.values.channel=t,this));I(this,"port",t=>(this.values.port=this.midiConnection.getMidiOutputIndex(t),this));I(this,"add",t=>(this.values.note+=t,this));I(this,"modify",t=>{const r=t(this);return r instanceof Object?r:(t(this.values),this)});I(this,"freq",t=>{this.values.freq=t;const r=PM(t);return r%1!==0?(this.values.note=Math.floor(r),this.values.bend=wA(r)[1]):this.values.note=r,this});I(this,"bend",t=>(this.values.bend=t,this));I(this,"random",(t=0,r=127)=>(t=Math.min(Math.max(t,0),127),r=Math.min(Math.max(r,0),127),this.values.note=Math.floor(this.randomGen()*(r-t+1))+t,this));I(this,"update",()=>{if(this.values.type==="Pitch"||this.values.type==="_Pitch"){const[t,r]=DA(this.values.key,this.values.pitch,this.values.parsedScale,this.values.octave);this.values.note=t,this.values.freq=yl(t),r&&(this.values.bend=r)}});I(this,"octave",t=>(this.values.octave=t,this.update(),this));I(this,"key",t=>(this.values.key=t,this.update(),this));I(this,"scale",t=>(NA(t)?(this.values.scaleName=t,this.values.parsedScale=js(t)):this.values.parsedScale=kA(t),this.update(),this));I(this,"out",()=>{const t=this.values.note?this.values.note:60,r=this.values.channel?this.values.channel:0,i=this.values.velocity?this.values.velocity:100,a=this.values.sustain?this.values.sustain*this.app.clock.pulse_duration*this.app.api.ppqn():this.app.clock.pulse_duration*this.app.api.ppqn(),s=this.values.bend?this.values.bend:void 0,o=this.values.port?this.midiConnection.getMidiOutputIndex(this.values.port):this.midiConnection.getCurrentMidiPortIndex();this.midiConnection.sendMidiNote(t,r,i,a,o,s)});this.app=r,typeof t=="number"?this.values.note=t:this.values=t,this.midiConnection=r.api.MidiConnection}}const ss=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,GA=new Set,Nh=typeof process=="object"&&process?process:{},QA=(n,e,t,r)=>{typeof Nh.emitWarning=="function"?Nh.emitWarning(n,e,t,r):console.error(`[${t}] ${e}: ${n}`)};let Dl=globalThis.AbortController,kS=globalThis.AbortSignal;var TT;if(typeof Dl>"u"){kS=class{constructor(){I(this,"onabort");I(this,"_onabort",[]);I(this,"reason");I(this,"aborted",!1)}addEventListener(r,i){this._onabort.push(i)}},Dl=class{constructor(){I(this,"signal",new kS);e()}abort(r){var i,a;if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(const s of this.signal._onabort)s(r);(a=(i=this.signal).onabort)==null||a.call(i,r)}}};let n=((TT=Nh.env)==null?void 0:TT.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{n&&(n=!1,QA("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}const wP=n=>!GA.has(n),ci=n=>n&&n===Math.floor(n)&&n>0&&isFinite(n),$A=n=>ci(n)?n<=Math.pow(2,8)?Uint8Array:n<=Math.pow(2,16)?Uint16Array:n<=Math.pow(2,32)?Uint32Array:n<=Number.MAX_SAFE_INTEGER?Vo:null:null;class Vo extends Array{constructor(e){super(e),this.fill(0)}}var va;const Bi=class Bi{constructor(e,t){I(this,"heap");I(this,"length");if(!Q(Bi,va))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=$A(e);if(!t)return[];Qe(Bi,va,!0);const r=new Bi(e,t);return Qe(Bi,va,!1),r}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};va=new WeakMap,tt(Bi,va,!1);let Dh=Bi;var _n,Vr,gn,Sn,Aa,Kt,On,jt,xt,et,Nr,Hr,gr,sr,En,or,Hn,zn,bn,Tn,mi,Dr,Us,xh,Qi,Wn,Fs,zr,Ml,qA,$i,ya,Ys,xn,ui,Ln,di,Gs,Lh,Ra,Ho,Ia,zo,yt,Pt,Qs,Mh,qi,fs;const km=class km{constructor(e){tt(this,Us);tt(this,Ml);tt(this,xn);tt(this,Ln);tt(this,Gs);tt(this,Ra);tt(this,Ia);tt(this,yt);tt(this,Qs);tt(this,qi);tt(this,_n,void 0);tt(this,Vr,void 0);tt(this,gn,void 0);tt(this,Sn,void 0);tt(this,Aa,void 0);I(this,"ttl");I(this,"ttlResolution");I(this,"ttlAutopurge");I(this,"updateAgeOnGet");I(this,"updateAgeOnHas");I(this,"allowStale");I(this,"noDisposeOnSet");I(this,"noUpdateTTL");I(this,"maxEntrySize");I(this,"sizeCalculation");I(this,"noDeleteOnFetchRejection");I(this,"noDeleteOnStaleGet");I(this,"allowStaleOnFetchAbort");I(this,"allowStaleOnFetchRejection");I(this,"ignoreFetchAbort");tt(this,Kt,void 0);tt(this,On,void 0);tt(this,jt,void 0);tt(this,xt,void 0);tt(this,et,void 0);tt(this,Nr,void 0);tt(this,Hr,void 0);tt(this,gr,void 0);tt(this,sr,void 0);tt(this,En,void 0);tt(this,or,void 0);tt(this,Hn,void 0);tt(this,zn,void 0);tt(this,bn,void 0);tt(this,Tn,void 0);tt(this,mi,void 0);tt(this,Dr,void 0);tt(this,Qi,()=>{});tt(this,Wn,()=>{});tt(this,Fs,()=>{});tt(this,zr,()=>!1);tt(this,$i,e=>{});tt(this,ya,(e,t,r)=>{});tt(this,Ys,(e,t,r,i)=>{if(r||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:r,ttlResolution:i=1,ttlAutopurge:a,updateAgeOnGet:s,updateAgeOnHas:o,allowStale:l,dispose:u,disposeAfter:d,noDisposeOnSet:f,noUpdateTTL:m,maxSize:g=0,maxEntrySize:b=0,sizeCalculation:v,fetchMethod:A,noDeleteOnFetchRejection:N,noDeleteOnStaleGet:F,allowStaleOnFetchRejection:X,allowStaleOnFetchAbort:p,ignoreFetchAbort:E}=e;if(t!==0&&!ci(t))throw new TypeError("max option must be a nonnegative integer");const O=t?$A(t):Array;if(!O)throw new Error("invalid max value: "+t);if(Qe(this,_n,t),Qe(this,Vr,g),this.maxEntrySize=b||Q(this,Vr),this.sizeCalculation=v,this.sizeCalculation){if(!Q(this,Vr)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(A!==void 0&&typeof A!="function")throw new TypeError("fetchMethod must be a function if specified");if(Qe(this,Aa,A),Qe(this,mi,!!A),Qe(this,jt,new Map),Qe(this,xt,new Array(t).fill(void 0)),Qe(this,et,new Array(t).fill(void 0)),Qe(this,Nr,new O(t)),Qe(this,Hr,new O(t)),Qe(this,gr,0),Qe(this,sr,0),Qe(this,En,Dh.create(t)),Qe(this,Kt,0),Qe(this,On,0),typeof u=="function"&&Qe(this,gn,u),typeof d=="function"?(Qe(this,Sn,d),Qe(this,or,[])):(Qe(this,Sn,void 0),Qe(this,or,void 0)),Qe(this,Tn,!!Q(this,gn)),Qe(this,Dr,!!Q(this,Sn)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!m,this.noDeleteOnFetchRejection=!!N,this.allowStaleOnFetchRejection=!!X,this.allowStaleOnFetchAbort=!!p,this.ignoreFetchAbort=!!E,this.maxEntrySize!==0){if(Q(this,Vr)!==0&&!ci(Q(this,Vr)))throw new TypeError("maxSize must be a positive integer if specified");if(!ci(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Ue(this,Ml,qA).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!F,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!o,this.ttlResolution=ci(i)||i===0?i:1,this.ttlAutopurge=!!a,this.ttl=r||0,this.ttl){if(!ci(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ue(this,Us,xh).call(this)}if(Q(this,_n)===0&&this.ttl===0&&Q(this,Vr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!Q(this,_n)&&!Q(this,Vr)){const y="LRU_CACHE_UNBOUNDED";wP(y)&&(GA.add(y),QA("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",y,km))}}static unsafeExposeInternals(e){return{starts:Q(e,zn),ttls:Q(e,bn),sizes:Q(e,Hn),keyMap:Q(e,jt),keyList:Q(e,xt),valList:Q(e,et),next:Q(e,Nr),prev:Q(e,Hr),get head(){return Q(e,gr)},get tail(){return Q(e,sr)},free:Q(e,En),isBackgroundFetch:t=>{var r;return Ue(r=e,yt,Pt).call(r,t)},backgroundFetch:(t,r,i,a)=>{var s;return Ue(s=e,Ia,zo).call(s,t,r,i,a)},moveToTail:t=>{var r;return Ue(r=e,qi,fs).call(r,t)},indexes:t=>{var r;return Ue(r=e,xn,ui).call(r,t)},rindexes:t=>{var r;return Ue(r=e,Ln,di).call(r,t)},isStale:t=>{var r;return Q(r=e,zr).call(r,t)}}}get max(){return Q(this,_n)}get maxSize(){return Q(this,Vr)}get calculatedSize(){return Q(this,On)}get size(){return Q(this,Kt)}get fetchMethod(){return Q(this,Aa)}get dispose(){return Q(this,gn)}get disposeAfter(){return Q(this,Sn)}getRemainingTTL(e){return Q(this,jt).has(e)?1/0:0}*entries(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*rentries(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&Q(this,xt)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield[Q(this,xt)[e],Q(this,et)[e]])}*keys(){for(const e of Ue(this,xn,ui).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield t)}}*rkeys(){for(const e of Ue(this,Ln,di).call(this)){const t=Q(this,xt)[e];t!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield t)}}*values(){for(const e of Ue(this,xn,ui).call(this))Q(this,et)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}*rvalues(){for(const e of Ue(this,Ln,di).call(this))Q(this,et)[e]!==void 0&&!Ue(this,yt,Pt).call(this,Q(this,et)[e])&&(yield Q(this,et)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;if(a!==void 0&&e(a,Q(this,xt)[r],this))return this.get(Q(this,xt)[r],t)}}forEach(e,t=this){for(const r of Ue(this,xn,ui).call(this)){const i=Q(this,et)[r],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}rforEach(e,t=this){for(const r of Ue(this,Ln,di).call(this)){const i=Q(this,et)[r],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;a!==void 0&&e.call(t,a,Q(this,xt)[r],this)}}purgeStale(){let e=!1;for(const t of Ue(this,Ln,di).call(this,{allowStale:!0}))Q(this,zr).call(this,t)&&(this.delete(Q(this,xt)[t]),e=!0);return e}dump(){const e=[];for(const t of Ue(this,xn,ui).call(this,{allowStale:!0})){const r=Q(this,xt)[t],i=Q(this,et)[t],a=Ue(this,yt,Pt).call(this,i)?i.__staleWhileFetching:i;if(a===void 0||r===void 0)continue;const s={value:a};if(Q(this,bn)&&Q(this,zn)){s.ttl=Q(this,bn)[t];const o=ss.now()-Q(this,zn)[t];s.start=Math.floor(Date.now()-o)}Q(this,Hn)&&(s.size=Q(this,Hn)[t]),e.unshift([r,s])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const i=Date.now()-r.start;r.start=ss.now()-i}this.set(t,r.value,r)}}set(e,t,r={}){var m,g,b,v,A;if(t===void 0)return this.delete(e),this;const{ttl:i=this.ttl,start:a,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=r;let{noUpdateTTL:u=this.noUpdateTTL}=r;const d=Q(this,Ys).call(this,e,t,r.size||0,o);if(this.maxEntrySize&&d>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.delete(e),this;let f=Q(this,Kt)===0?void 0:Q(this,jt).get(e);if(f===void 0)f=Q(this,Kt)===0?Q(this,sr):Q(this,En).length!==0?Q(this,En).pop():Q(this,Kt)===Q(this,_n)?Ue(this,Ra,Ho).call(this,!1):Q(this,Kt),Q(this,xt)[f]=e,Q(this,et)[f]=t,Q(this,jt).set(e,f),Q(this,Nr)[Q(this,sr)]=f,Q(this,Hr)[f]=Q(this,sr),Qe(this,sr,f),io(this,Kt)._++,Q(this,ya).call(this,f,d,l),l&&(l.set="add"),u=!1;else{Ue(this,qi,fs).call(this,f);const N=Q(this,et)[f];if(t!==N){if(Q(this,mi)&&Ue(this,yt,Pt).call(this,N)){N.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:F}=N;F!==void 0&&!s&&(Q(this,Tn)&&((m=Q(this,gn))==null||m.call(this,F,e,"set")),Q(this,Dr)&&((g=Q(this,or))==null||g.push([F,e,"set"])))}else s||(Q(this,Tn)&&((b=Q(this,gn))==null||b.call(this,N,e,"set")),Q(this,Dr)&&((v=Q(this,or))==null||v.push([N,e,"set"])));if(Q(this,$i).call(this,f),Q(this,ya).call(this,f,d,l),Q(this,et)[f]=t,l){l.set="replace";const F=N&&Ue(this,yt,Pt).call(this,N)?N.__staleWhileFetching:N;F!==void 0&&(l.oldValue=F)}}else l&&(l.set="update")}if(i!==0&&!Q(this,bn)&&Ue(this,Us,xh).call(this),Q(this,bn)&&(u||Q(this,Fs).call(this,f,i,a),l&&Q(this,Wn).call(this,l,f)),!s&&Q(this,Dr)&&Q(this,or)){const N=Q(this,or);let F;for(;F=N==null?void 0:N.shift();)(A=Q(this,Sn))==null||A.call(this,...F)}return this}pop(){var e;try{for(;Q(this,Kt);){const t=Q(this,et)[Q(this,gr)];if(Ue(this,Ra,Ho).call(this,!0),Ue(this,yt,Pt).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(Q(this,Dr)&&Q(this,or)){const t=Q(this,or);let r;for(;r=t==null?void 0:t.shift();)(e=Q(this,Sn))==null||e.call(this,...r)}}}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:i}=t,a=Q(this,jt).get(e);if(a!==void 0){const s=Q(this,et)[a];if(Ue(this,yt,Pt).call(this,s)&&s.__staleWhileFetching===void 0)return!1;if(Q(this,zr).call(this,a))i&&(i.has="stale",Q(this,Wn).call(this,i,a));else return r&&Q(this,Qi).call(this,a),i&&(i.has="hit",Q(this,Wn).call(this,i,a)),!0}else i&&(i.has="miss");return!1}peek(e,t={}){const{allowStale:r=this.allowStale}=t,i=Q(this,jt).get(e);if(i!==void 0&&(r||!Q(this,zr).call(this,i))){const a=Q(this,et)[i];return Ue(this,yt,Pt).call(this,a)?a.__staleWhileFetching:a}}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:l=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:d=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:m=this.allowStaleOnFetchRejection,ignoreFetchAbort:g=this.ignoreFetchAbort,allowStaleOnFetchAbort:b=this.allowStaleOnFetchAbort,context:v,forceRefresh:A=!1,status:N,signal:F}=t;if(!Q(this,mi))return N&&(N.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,status:N});const X={allowStale:r,updateAgeOnGet:i,noDeleteOnStaleGet:a,ttl:s,noDisposeOnSet:o,size:l,sizeCalculation:u,noUpdateTTL:d,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:m,allowStaleOnFetchAbort:b,ignoreFetchAbort:g,status:N,signal:F};let p=Q(this,jt).get(e);if(p===void 0){N&&(N.fetch="miss");const E=Ue(this,Ia,zo).call(this,e,p,X,v);return E.__returned=E}else{const E=Q(this,et)[p];if(Ue(this,yt,Pt).call(this,E)){const w=r&&E.__staleWhileFetching!==void 0;return N&&(N.fetch="inflight",w&&(N.returnedStale=!0)),w?E.__staleWhileFetching:E.__returned=E}const O=Q(this,zr).call(this,p);if(!A&&!O)return N&&(N.fetch="hit"),Ue(this,qi,fs).call(this,p),i&&Q(this,Qi).call(this,p),N&&Q(this,Wn).call(this,N,p),E;const y=Ue(this,Ia,zo).call(this,e,p,X,v),P=y.__staleWhileFetching!==void 0&&r;return N&&(N.fetch=O?"stale":"refresh",P&&O&&(N.returnedStale=!0)),P?y.__staleWhileFetching:y.__returned=y}}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:a=this.noDeleteOnStaleGet,status:s}=t,o=Q(this,jt).get(e);if(o!==void 0){const l=Q(this,et)[o],u=Ue(this,yt,Pt).call(this,l);return s&&Q(this,Wn).call(this,s,o),Q(this,zr).call(this,o)?(s&&(s.get="stale"),u?(s&&r&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),r?l.__staleWhileFetching:void 0):(a||this.delete(e),s&&r&&(s.returnedStale=!0),r?l:void 0)):(s&&(s.get="hit"),u?l.__staleWhileFetching:(Ue(this,qi,fs).call(this,o),i&&Q(this,Qi).call(this,o),l))}else s&&(s.get="miss")}delete(e){var r,i,a,s;let t=!1;if(Q(this,Kt)!==0){const o=Q(this,jt).get(e);if(o!==void 0)if(t=!0,Q(this,Kt)===1)this.clear();else{Q(this,$i).call(this,o);const l=Q(this,et)[o];Ue(this,yt,Pt).call(this,l)?l.__abortController.abort(new Error("deleted")):(Q(this,Tn)||Q(this,Dr))&&(Q(this,Tn)&&((r=Q(this,gn))==null||r.call(this,l,e,"delete")),Q(this,Dr)&&((i=Q(this,or))==null||i.push([l,e,"delete"]))),Q(this,jt).delete(e),Q(this,xt)[o]=void 0,Q(this,et)[o]=void 0,o===Q(this,sr)?Qe(this,sr,Q(this,Hr)[o]):o===Q(this,gr)?Qe(this,gr,Q(this,Nr)[o]):(Q(this,Nr)[Q(this,Hr)[o]]=Q(this,Nr)[o],Q(this,Hr)[Q(this,Nr)[o]]=Q(this,Hr)[o]),io(this,Kt)._--,Q(this,En).push(o)}}if(Q(this,Dr)&&((a=Q(this,or))!=null&&a.length)){const o=Q(this,or);let l;for(;l=o==null?void 0:o.shift();)(s=Q(this,Sn))==null||s.call(this,...l)}return t}clear(){var e,t,r;for(const i of Ue(this,Ln,di).call(this,{allowStale:!0})){const a=Q(this,et)[i];if(Ue(this,yt,Pt).call(this,a))a.__abortController.abort(new Error("deleted"));else{const s=Q(this,xt)[i];Q(this,Tn)&&((e=Q(this,gn))==null||e.call(this,a,s,"delete")),Q(this,Dr)&&((t=Q(this,or))==null||t.push([a,s,"delete"]))}}if(Q(this,jt).clear(),Q(this,et).fill(void 0),Q(this,xt).fill(void 0),Q(this,bn)&&Q(this,zn)&&(Q(this,bn).fill(0),Q(this,zn).fill(0)),Q(this,Hn)&&Q(this,Hn).fill(0),Qe(this,gr,0),Qe(this,sr,0),Q(this,En).length=0,Qe(this,On,0),Qe(this,Kt,0),Q(this,Dr)&&Q(this,or)){const i=Q(this,or);let a;for(;a=i==null?void 0:i.shift();)(r=Q(this,Sn))==null||r.call(this,...a)}}};_n=new WeakMap,Vr=new WeakMap,gn=new WeakMap,Sn=new WeakMap,Aa=new WeakMap,Kt=new WeakMap,On=new WeakMap,jt=new WeakMap,xt=new WeakMap,et=new WeakMap,Nr=new WeakMap,Hr=new WeakMap,gr=new WeakMap,sr=new WeakMap,En=new WeakMap,or=new WeakMap,Hn=new WeakMap,zn=new WeakMap,bn=new WeakMap,Tn=new WeakMap,mi=new WeakMap,Dr=new WeakMap,Us=new WeakSet,xh=function(){const e=new Vo(Q(this,_n)),t=new Vo(Q(this,_n));Qe(this,bn,e),Qe(this,zn,t),Qe(this,Fs,(a,s,o=ss.now())=>{if(t[a]=s!==0?o:0,e[a]=s,s!==0&&this.ttlAutopurge){const l=setTimeout(()=>{Q(this,zr).call(this,a)&&this.delete(Q(this,xt)[a])},s+1);l.unref&&l.unref()}}),Qe(this,Qi,a=>{t[a]=e[a]!==0?ss.now():0}),Qe(this,Wn,(a,s)=>{if(e[s]){const o=e[s],l=t[s];a.ttl=o,a.start=l,a.now=r||i();const u=a.now-l;a.remainingTTL=o-u}});let r=0;const i=()=>{const a=ss.now();if(this.ttlResolution>0){r=a;const s=setTimeout(()=>r=0,this.ttlResolution);s.unref&&s.unref()}return a};this.getRemainingTTL=a=>{const s=Q(this,jt).get(a);if(s===void 0)return 0;const o=e[s],l=t[s];if(o===0||l===0)return 1/0;const u=(r||i())-l;return o-u},Qe(this,zr,a=>e[a]!==0&&t[a]!==0&&(r||i())-t[a]>e[a])},Qi=new WeakMap,Wn=new WeakMap,Fs=new WeakMap,zr=new WeakMap,Ml=new WeakSet,qA=function(){const e=new Vo(Q(this,_n));Qe(this,On,0),Qe(this,Hn,e),Qe(this,$i,t=>{Qe(this,On,Q(this,On)-e[t]),e[t]=0}),Qe(this,Ys,(t,r,i,a)=>{if(Ue(this,yt,Pt).call(this,r))return 0;if(!ci(i))if(a){if(typeof a!="function")throw new TypeError("sizeCalculation must be a function");if(i=a(r,t),!ci(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i}),Qe(this,ya,(t,r,i)=>{if(e[t]=r,Q(this,Vr)){const a=Q(this,Vr)-e[t];for(;Q(this,On)>a;)Ue(this,Ra,Ho).call(this,!0)}Qe(this,On,Q(this,On)+e[t]),i&&(i.entrySize=r,i.totalCalculatedSize=Q(this,On))})},$i=new WeakMap,ya=new WeakMap,Ys=new WeakMap,xn=new WeakSet,ui=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,sr);!(!Ue(this,Gs,Lh).call(this,t)||((e||!Q(this,zr).call(this,t))&&(yield t),t===Q(this,gr)));)t=Q(this,Hr)[t]},Ln=new WeakSet,di=function*({allowStale:e=this.allowStale}={}){if(Q(this,Kt))for(let t=Q(this,gr);!(!Ue(this,Gs,Lh).call(this,t)||((e||!Q(this,zr).call(this,t))&&(yield t),t===Q(this,sr)));)t=Q(this,Nr)[t]},Gs=new WeakSet,Lh=function(e){return e!==void 0&&Q(this,jt).get(Q(this,xt)[e])===e},Ra=new WeakSet,Ho=function(e){var a,s;const t=Q(this,gr),r=Q(this,xt)[t],i=Q(this,et)[t];return Q(this,mi)&&Ue(this,yt,Pt).call(this,i)?i.__abortController.abort(new Error("evicted")):(Q(this,Tn)||Q(this,Dr))&&(Q(this,Tn)&&((a=Q(this,gn))==null||a.call(this,i,r,"evict")),Q(this,Dr)&&((s=Q(this,or))==null||s.push([i,r,"evict"]))),Q(this,$i).call(this,t),e&&(Q(this,xt)[t]=void 0,Q(this,et)[t]=void 0,Q(this,En).push(t)),Q(this,Kt)===1?(Qe(this,gr,Qe(this,sr,0)),Q(this,En).length=0):Qe(this,gr,Q(this,Nr)[t]),Q(this,jt).delete(r),io(this,Kt)._--,t},Ia=new WeakSet,zo=function(e,t,r,i){const a=t===void 0?void 0:Q(this,et)[t];if(Ue(this,yt,Pt).call(this,a))return a;const s=new Dl,{signal:o}=r;o==null||o.addEventListener("abort",()=>s.abort(o.reason),{signal:s.signal});const l={signal:s.signal,options:r,context:i},u=(v,A=!1)=>{const{aborted:N}=s.signal,F=r.ignoreFetchAbort&&v!==void 0;if(r.status&&(N&&!A?(r.status.fetchAborted=!0,r.status.fetchError=s.signal.reason,F&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),N&&!F&&!A)return f(s.signal.reason);const X=g;return Q(this,et)[t]===g&&(v===void 0?X.__staleWhileFetching?Q(this,et)[t]=X.__staleWhileFetching:this.delete(e):(r.status&&(r.status.fetchUpdated=!0),this.set(e,v,l.options))),v},d=v=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=v),f(v)),f=v=>{const{aborted:A}=s.signal,N=A&&r.allowStaleOnFetchAbort,F=N||r.allowStaleOnFetchRejection,X=F||r.noDeleteOnFetchRejection,p=g;if(Q(this,et)[t]===g&&(!X||p.__staleWhileFetching===void 0?this.delete(e):N||(Q(this,et)[t]=p.__staleWhileFetching)),F)return r.status&&p.__staleWhileFetching!==void 0&&(r.status.returnedStale=!0),p.__staleWhileFetching;if(p.__returned===p)throw v},m=(v,A)=>{var F;const N=(F=Q(this,Aa))==null?void 0:F.call(this,e,a,l);N&&N instanceof Promise&&N.then(X=>v(X===void 0?void 0:X),A),s.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(v(void 0),r.allowStaleOnFetchAbort&&(v=X=>u(X,!0)))})};r.status&&(r.status.fetchDispatched=!0);const g=new Promise(m).then(u,d),b=Object.assign(g,{__abortController:s,__staleWhileFetching:a,__returned:void 0});return t===void 0?(this.set(e,b,{...l.options,status:void 0}),t=Q(this,jt).get(e)):Q(this,et)[t]=b,b},yt=new WeakSet,Pt=function(e){if(!Q(this,mi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Dl},Qs=new WeakSet,Mh=function(e,t){Q(this,Hr)[t]=e,Q(this,Nr)[e]=t},qi=new WeakSet,fs=function(e){e!==Q(this,sr)&&(e===Q(this,gr)?Qe(this,gr,Q(this,Nr)[e]):Ue(this,Qs,Mh).call(this,Q(this,Hr)[e],Q(this,Nr)[e]),Ue(this,Qs,Mh).call(this,Q(this,sr),e),Qe(this,sr,e))};let wh=km;const Pl=class Pl extends Wl{constructor(t,r){super(r);I(this,"_fallbackMethod",()=>this);I(this,"out",()=>{});this.values.duration=t}};I(Pl,"createRestProxy",(t,r)=>{const i=new Pl(t,r);return new Proxy(i,{get(a,s,o){return typeof a[s]>"u"?a._fallbackMethod:a[s]}})});let ki=Pl;class xP extends Wl{constructor(t,r,i){super(i);I(this,"input");I(this,"ziffers");I(this,"callTime",0);I(this,"played",!1);I(this,"current");I(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));I(this,"areWeThereYet",()=>this.ziffers.notStarted()||this.app.api.epulse()>this.callTime+this.current.duration*this.app.api.ppqn());I(this,"out",()=>{});this.app=i,this.input=t,this.ziffers=new ZM(t,r)}sound(t){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki)return new FA(r.asObject(),this.app).sound(t);if(r instanceof ki)return ki.createRestProxy(r.duration,this.app)}else return ki.createRestProxy(0,this.app)}note(t=void 0){if(this.areWeThereYet()){const r=this.next();if(r instanceof Ki){const i=new YA(r.asObject(),this.app);return t?i.note(t):i}else if(r instanceof LA)return ki.createRestProxy(r.duration,this.app)}else return ki.createRestProxy(0,this.app)}}Array.prototype.in=function(n){return this.includes(n)};async function LP(){return Promise.all([_P(),Nl("github:Bubobubobubobubo/Topos-Samples/main"),Nl("github:tidalcycles/Dirt-Samples/master").then(()=>DP())])}LP();const MP=(...n)=>n.map(e=>JSON.stringify(e)).join(",");class PP{constructor(e){I(this,"variables",{});I(this,"counters",{});I(this,"_drunk",new JM(-100,100,!1));I(this,"randomGen",Math.random);I(this,"currentSeed");I(this,"localSeeds",new Map);I(this,"patternCache",new wh({max:1e3,ttl:1e3*60*5}));I(this,"MidiConnection",new jM);I(this,"load");I(this,"_reportError",e=>{console.log(e),this.app.show_error||(this.app.error_line.innerHTML=e,this.app.error_line.classList.remove("hidden"),setInterval(()=>this.app.error_line.classList.add("hidden"),2e3))});I(this,"time",()=>this.app.audioContext.currentTime);I(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.app.clock.start()});I(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.app.clock.pause()});I(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.app.clock.stop()});I(this,"silence",this.stop);I(this,"hush",this.stop);I(this,"mouseX",()=>this.app._mouseX);I(this,"mouseY",()=>this.app._mouseY);I(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));I(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));I(this,"script",(...e)=>{e.forEach(t=>{vl(this.app,this.app.universes[this.app.selected_universe].locals[t])})});I(this,"s",this.script);I(this,"clear_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});I(this,"cs",this.clear_script);I(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]=this.app.universes[this.app.selected_universe].locals[e]});I(this,"cps",this.copy_script);I(this,"midi_outputs",()=>(console.log(this.MidiConnection.listMidiOutputs()),this.MidiConnection.midiOutputs));I(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});I(this,"note",(e=60)=>new YA(e,this.app));I(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});I(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});I(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});I(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});I(this,"control_change",({control:e=20,value:t=0,channel:r=0})=>{this.MidiConnection.sendMidiControlChange(e,t,r)});I(this,"midi_panic",()=>{this.MidiConnection.panic()});I(this,"z",(e,t={})=>{const r=MP(e,t);let i;return this.app.api.patternCache.has(r)?i=this.app.api.patternCache.get(r):(i=new xP(e,t,this.app),this.app.api.patternCache.set(r,i)),(i&&i.ziffers.index===-1||i.played)&&(i.callTime=this.epulse(),i.played=!1),i});I(this,"counter",(e,t,r)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==r&&(this.counters[e].step=r??this.counters[e].step),this.counters[e].value+=this.counters[e].step,this.counters[e].limit!==void 0&&this.counters[e].value>this.counters[e].limit&&(this.counters[e].value=0)):this.counters[e]={value:0,step:r??1,limit:t},this.counters[e].value));I(this,"$",this.counter);I(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));I(this,"drunk_max",e=>{this._drunk.max=e});I(this,"drunk_min",e=>{this._drunk.min=e});I(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});I(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));I(this,"v",this.variable);I(this,"delete_variable",e=>{delete this.variables[e]});I(this,"dv",this.delete_variable);I(this,"clear_variables",()=>{this.variables={}});I(this,"cv",this.clear_variables);I(this,"div",e=>{const t=this.epulse();return Math.floor(t/Math.floor(e*this.ppqn()))%2===0});I(this,"divbar",e=>{const t=this.bar()-1;return Math.floor(t/e)%2===0});I(this,"divseq",(...e)=>{const t=e[0],r=e.slice(1),i=this.epulse(),a=Math.floor(i/Math.floor(t*this.ppqn()));return r[a%r.length]});I(this,"pick",(...e)=>e[Math.floor(this.randomGen()*e.length)]);I(this,"seqbeat",(...e)=>e[this.ebeat()%e.length]);I(this,"mel",(e,t)=>t[e%t.length]);I(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);I(this,"seqpulse",(...e)=>e[this.app.clock.time_position.pulse%e.length]);I(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);I(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);I(this,"irand",this.randI);I(this,"rI",this.randI);I(this,"r",this.rand);I(this,"ir",this.randI);I(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=Ih(e))});I(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=Ih(e);return this.localSeeds.set(e,t),t});I(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});I(this,"quantize",(e,t)=>{if(t.length===0)return e;let r=t[0];return t.forEach(i=>{Math.abs(i-e)Math.min(Math.max(e,t),r));I(this,"cmp",this.clamp);I(this,"bpm",e=>e===void 0?this.app.clock.bpm:((e<1||e>500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e));I(this,"tempo",this.bpm);I(this,"bpb",e=>e===void 0?this.app.clock.time_signature[0]:(e<1&&console.log(`Setting bpb to ${e}`),this.app.clock.time_signature[0]=e,e));I(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));I(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});I(this,"odds",(e,t=15)=>this.randomGen()this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));I(this,"rarely",(e=15)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));I(this,"scarcely",(e=15)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));I(this,"sometimes",(e=15)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));I(this,"often",(e=15)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));I(this,"frequently",(e=15)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));I(this,"almostAlways",(e=15)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));I(this,"dice",e=>Math.floor(this.randomGen()*e)+1);I(this,"i",e=>e!==void 0?(this.app.universes[this.app.selected_universe].global.evaluations=e,this.app.universes[this.app.selected_universe]):this.app.universes[this.app.selected_universe].global.evaluations);I(this,"bar",()=>this.app.clock.time_position.bar);I(this,"tick",()=>this.app.clock.tick);I(this,"pulse",()=>this.app.clock.time_position.pulse);I(this,"beat",()=>this.app.clock.time_position.beat);I(this,"ebeat",()=>this.app.clock.beats_since_origin);I(this,"epulse",()=>this.app.clock.pulses_since_origin);I(this,"onbar",(e,...t)=>{const r=[...Array(e).keys()].map(i=>i+1);return console.log(t.some(i=>r.includes(i%e))),t.some(i=>r.includes(i%e))});I(this,"onbeat",(...e)=>{let t=[];return e.forEach(r=>{r=r%this.app.clock.time_signature[0]+1;let i=Math.floor(r),a=r-i;t.push(i===this.app.clock.time_position.beat&&this.app.clock.time_position.pulse===a*this.app.clock.ppqn)}),t.some(r=>r==!0)});I(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);I(this,"min",(...e)=>Math.min(...e));I(this,"max",(...e)=>Math.max(...e));I(this,"mean",(...e)=>e.reduce((r,i)=>r+i,0)/e.length);I(this,"limit",(e,t,r)=>Math.min(Math.max(e,t),r));I(this,"delay",(e,t)=>{setTimeout(t,e)});I(this,"delayr",(e,t,r)=>{[...Array(t).keys()].map(a=>e*a).forEach((a,s)=>{setTimeout(r,a)})});I(this,"mod",(...e)=>e.map(r=>this.epulse()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"modpulse",(...e)=>e.map(r=>this.epulse()%r===0).some(r=>r===!0));I(this,"pmod",this.modpulse);I(this,"modbar",(...e)=>e.map(r=>this.bar()%Math.floor(r*this.ppqn())===0).some(r=>r===!0));I(this,"bmod",this.modbar);I(this,"euclid",(e,t,r,i=0)=>this._euclidean_cycle(t,r,i)[e%r]);I(this,"ec",this.euclid);I(this,"bin",(e,t)=>{let i=t.toString(2).split("").map(a=>a==="1");return i[e%i.length]});I(this,"line",(e,t,r=1)=>{const i=[];if(t>e&&r>0||tMath.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+t);I(this,"usine",(e=1,t=0)=>(this.sine(e,t)+1)/2);I(this,"saw",(e=1,t=0)=>this.app.clock.ctx.currentTime*e%1*2-1+t);I(this,"usaw",(e=1,t=0)=>(this.saw(e,t)+1)/2);I(this,"triangle",(e=1,t=0)=>Math.abs(this.saw(e,t))*2-1);I(this,"utriangle",(e=1,t=0)=>(this.triangle(e,t)+1)/2);I(this,"square",(e=1,t=0,r=.5)=>{const i=1/e;return(Date.now()/1e3+t)%i/i(this.square(e,t,r)+1)/2);I(this,"noise",()=>this.randomGen()*2-1);I(this,"abs",Math.abs);I(this,"sound",e=>new FA(e,this.app));I(this,"snd",this.sound);I(this,"samples",Nl);I(this,"soundMap",Dm);I(this,"log",console.log);I(this,"scale",tP);I(this,"rate",e=>{});this.app=e}_euclidean_cycle(e,t,r=0){if(e==t)return Array.from({length:t},()=>!0);function i(o,l){const u=o.length,d=(l+1)%u;return o[l]>o[d]}if(e>=t)return[!0];const a=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let s=a.map((o,l)=>i(a,l));return r!=0&&(s=s.slice(r).concat(s.slice(0,r))),s}}var Wo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function VA(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var HA={exports:{}};(function(n){(function(){function e(p){var E={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:`Remove only spaces, ' and " from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids`,type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,describe:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,describe:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,describe:"Parses simple line breaks as
(GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,describe:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,describe:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",describe:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,describe:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,describe:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,describe:"Support for HTML Tag escaping. ex:
foo
",type:"boolean"},emoji:{defaultValue:!1,describe:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,describe:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``",type:"boolean"},ellipsis:{defaultValue:!0,describe:"Replaces three dots with the ellipsis unicode character",type:"boolean"},completeHTMLDocument:{defaultValue:!1,describe:"Outputs a complete html document, including ``, `` and `` tags",type:"boolean"},metadata:{defaultValue:!1,describe:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,describe:"Split adjacent blockquote blocks",type:"boolean"}};if(p===!1)return JSON.parse(JSON.stringify(E));var O={};for(var y in E)E.hasOwnProperty(y)&&(O[y]=E[y].defaultValue);return O}function t(){var p=e(!0),E={};for(var O in p)p.hasOwnProperty(O)&&(E[O]=!0);return E}var r={},i={},a={},s=e(!0),o="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:t()};r.helper={},r.extensions={},r.setOption=function(p,E){return s[p]=E,this},r.getOption=function(p){return s[p]},r.getOptions=function(){return s},r.resetOptions=function(){s=e(!0)},r.setFlavor=function(p){if(!l.hasOwnProperty(p))throw Error(p+" flavor was not found");r.resetOptions();var E=l[p];o=p;for(var O in E)E.hasOwnProperty(O)&&(s[O]=E[O])},r.getFlavor=function(){return o},r.getFlavorOptions=function(p){if(l.hasOwnProperty(p))return l[p]},r.getDefaultOptions=function(p){return e(p)},r.subParser=function(p,E){if(r.helper.isString(p))if(typeof E<"u")i[p]=E;else{if(i.hasOwnProperty(p))return i[p];throw Error("SubParser named "+p+" not registered!")}},r.extension=function(p,E){if(!r.helper.isString(p))throw Error("Extension 'name' must be a string");if(p=r.helper.stdExtName(p),r.helper.isUndefined(E)){if(!a.hasOwnProperty(p))throw Error("Extension named "+p+" is not registered!");return a[p]}else{typeof E=="function"&&(E=E()),r.helper.isArray(E)||(E=[E]);var O=u(E,p);if(O.valid)a[p]=E;else throw Error(O.error)}},r.getAllExtensions=function(){return a},r.removeExtension=function(p){delete a[p]},r.resetExtensions=function(){a={}};function u(p,E){var O=E?"Error in "+E+" extension->":"Error in unnamed extension",y={valid:!0,error:""};r.helper.isArray(p)||(p=[p]);for(var D=0;D"u"},r.helper.forEach=function(p,E){if(r.helper.isUndefined(p))throw new Error("obj param is required");if(r.helper.isUndefined(E))throw new Error("callback param is required");if(!r.helper.isFunction(E))throw new Error("callback param must be a function/closure");if(typeof p.forEach=="function")p.forEach(E);else if(r.helper.isArray(p))for(var O=0;O").replace(/&/g,"&")};var f=function(p,E,O,y){var D=y||"",P=D.indexOf("g")>-1,w=new RegExp(E+"|"+O,"g"+D.replace(/g/g,"")),B=new RegExp(E,D.replace(/g/g,"")),re=[],ie,j,J,L,G;do for(ie=0;J=w.exec(p);)if(B.test(J[0]))ie++||(j=w.lastIndex,L=j-J[0].length);else if(ie&&!--ie){G=J.index+J[0].length;var Z={left:{start:L,end:j},match:{start:j,end:J.index},right:{start:J.index,end:G},wholeMatch:{start:L,end:G}};if(re.push(Z),!P)return re}while(ie&&(w.lastIndex=j));return re};r.helper.matchRecursiveRegExp=function(p,E,O,y){for(var D=f(p,E,O,y),P=[],w=0;w0){var ie=[];w[0].wholeMatch.start!==0&&ie.push(p.slice(0,w[0].wholeMatch.start));for(var j=0;j=0?y+(O||0):y},r.helper.splitAtIndex=function(p,E){if(!r.helper.isString(p))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[p.substring(0,E),p.substring(E)]},r.helper.encodeEmailAddress=function(p){var E=[function(O){return"&#"+O.charCodeAt(0)+";"},function(O){return"&#x"+O.charCodeAt(0).toString(16)+";"},function(O){return O}];return p=p.replace(/./g,function(O){if(O==="@")O=E[Math.floor(Math.random()*2)](O);else{var y=Math.random();O=y>.9?E[2](O):y>.45?E[1](O):E[0](O)}return O}),p},r.helper.padEnd=function(E,O,y){return O=O>>0,y=String(y||" "),E.length>O?String(E):(O=O-E.length,O>y.length&&(y+=y.repeat(O/y.length)),String(E)+y.slice(0,O))},typeof console>"u"&&(console={warn:function(p){alert(p)},log:function(p){alert(p)},error:function(p){throw p}}),r.helper.regexes={asteriskDashAndColon:/([*_:~])/g},r.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️‍♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴‍♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱‍♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇‍♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷‍♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯‍♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁‍🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️‍♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍‍♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️‍♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂‍♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇‍♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨‍🎨",man_astronaut:"👨‍🚀",man_cartwheeling:"🤸‍♂️",man_cook:"👨‍🍳",man_dancing:"🕺",man_facepalming:"🤦‍♂️",man_factory_worker:"👨‍🏭",man_farmer:"👨‍🌾",man_firefighter:"👨‍🚒",man_health_worker:"👨‍⚕️",man_in_tuxedo:"🤵",man_judge:"👨‍⚖️",man_juggling:"🤹‍♂️",man_mechanic:"👨‍🔧",man_office_worker:"👨‍💼",man_pilot:"👨‍✈️",man_playing_handball:"🤾‍♂️",man_playing_water_polo:"🤽‍♂️",man_scientist:"👨‍🔬",man_shrugging:"🤷‍♂️",man_singer:"👨‍🎤",man_student:"👨‍🎓",man_teacher:"👨‍🏫",man_technologist:"👨‍💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆‍♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼‍♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵‍♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅‍♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆‍♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮‍♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎‍♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️‍🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋‍♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣‍♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃‍♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄‍♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊‍♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁‍♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶‍♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️‍♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩‍🎨",woman_astronaut:"👩‍🚀",woman_cartwheeling:"🤸‍♀️",woman_cook:"👩‍🍳",woman_facepalming:"🤦‍♀️",woman_factory_worker:"👩‍🏭",woman_farmer:"👩‍🌾",woman_firefighter:"👩‍🚒",woman_health_worker:"👩‍⚕️",woman_judge:"👩‍⚖️",woman_juggling:"🤹‍♀️",woman_mechanic:"👩‍🔧",woman_office_worker:"👩‍💼",woman_pilot:"👩‍✈️",woman_playing_handball:"🤾‍♀️",woman_playing_water_polo:"🤽‍♀️",woman_scientist:"👩‍🔬",woman_shrugging:"🤷‍♀️",woman_singer:"👩‍🎤",woman_student:"👩‍🎓",woman_teacher:"👩‍🏫",woman_technologist:"👩‍💻",woman_with_turban:"👳‍♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼‍♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:':octocat:',showdown:`S`},r.Converter=function(p){var E={},O=[],y=[],D={},P=o,w={parsed:{},raw:"",format:""};B();function B(){p=p||{};for(var L in s)s.hasOwnProperty(L)&&(E[L]=s[L]);if(typeof p=="object")for(var G in p)p.hasOwnProperty(G)&&(E[G]=p[G]);else throw Error("Converter expects the passed parameter to be an object, but "+typeof p+" was passed instead.");E.extensions&&r.helper.forEach(E.extensions,re)}function re(L,G){if(G=G||null,r.helper.isString(L))if(L=r.helper.stdExtName(L),G=L,r.extensions[L]){console.warn("DEPRECATION WARNING: "+L+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),ie(r.extensions[L],L);return}else if(!r.helper.isUndefined(a[L]))L=a[L];else throw Error('Extension "'+L+'" could not be loaded. It was either not found or is not a valid extension.');typeof L=="function"&&(L=L()),r.helper.isArray(L)||(L=[L]);var Z=u(L,G);if(!Z.valid)throw Error(Z.error);for(var z=0;z Topos - +