diff --git a/packages/react/examples/nano-repl/.gitignore b/packages/react/examples/nano-repl/.gitignore index d5554a64..a547bf36 100644 --- a/packages/react/examples/nano-repl/.gitignore +++ b/packages/react/examples/nano-repl/.gitignore @@ -8,7 +8,7 @@ pnpm-debug.log* lerna-debug.log* node_modules -!dist +dist dist-ssr *.local diff --git a/packages/react/examples/nano-repl/dist/assets/index.0dabc914.js b/packages/react/examples/nano-repl/dist/assets/index.0dabc914.js deleted file mode 100644 index d95eacda..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.0dabc914.js +++ /dev/null @@ -1 +0,0 @@ -import{e as D,j as R,l as E,q as O}from"./index.ec9f9930.js";var T={exports:{}};(function(b,N){(function(m,g){b.exports=g()})(self,()=>(()=>{var m={d:(e,t)=>{for(var s in t)m.o(t,s)&&!m.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},g={};function h(e,t){if(this.msg=e,this.ac=t.ac,this.sampleBank=t.sampleBank,this.outputNode=t.destination,this.cutGroups=t.cutGroups,this.eventCounter=t.eventCounter,this.audioOutputs=t.audioOutputs,this.workletsAvailable=t.workletsAvailable,typeof e.buffer=="object")this.bufferContainer=e.buffer;else{if(this.sampleBank==null)return void console.log("WebDirt: there is no sample bank, cancelling event");if(typeof this.sampleBank!="object")return void console.log("WebDirt: buffer not provided by calling application + no WebDirt sample bank");if(this.msg.n=parseInt(this.msg.n),isNaN(this.msg.n)&&(this.msg.n=0),!this.sampleBank.sampleNameExists(this.msg.s))return void console.log("WebDirt: no sample named "+this.msg.s+" exists in sample map");if(!this.sampleBank.getBufferMightSucceed(this.msg.s,this.msg.n))return}if(this.when=this.msg.when,isNaN(this.when))console.log("WebDirt: 'when' is null or not a number");else if(this.nudge=parseFloat(this.msg.nudge),isNaN(this.nudge)||(this.when=this.when+this.nudge),isNaN(parseFloat(this.msg.speed))&&(this.msg.speed=1),this.msg.speed!=0)if(isNaN(parseFloat(this.msg.note))&&(this.msg.note=0),this.msg.speed=this.msg.speed*Math.pow(2,this.msg.note/12),this.msg.begin=w(this.msg.begin,0),this.msg.end=w(this.msg.end,1),this.msg.end!=this.msg.begin){if(this.msg.begin>this.msg.end&&(this.msg.speed=-1*this.msg.speed),this.msg.speed<0&&(this.msg.begin=1-this.msg.begin,this.msg.end=1-this.msg.end),this.msg.begin>this.msg.end){let W=this.msg.begin;this.msg.begin=this.msg.end,this.msg.end=W}var s;if(this.source=s=this.ac.createBufferSource(),this.source.onended=this.disconnectHandler(),this.disconnectOnEnd(this.source),this.source.playbackRate.value=Math.abs(this.msg.speed),this.prepareBuffer(),this.buffer!=null)this.source.buffer=this.buffer,this.start();else{var a=this,n=1e3*(this.msg.when-this.ac.currentTime-.2);n<=0&&(n=1e3*(this.msg.when-this.ac.currentTime-.2)),n>0&&setTimeout(function(){a.prepareBuffer(),a.buffer!=null?(a.source.buffer=a.buffer,a.start()):(console.log("WebDirt: unable to access sample "+e.s+":"+e.n+" on second attempt"),a.stopAll())},n)}this.cut(this.msg.cut,this.msg.s),s=this.shape(s,this.msg.shape),s=this.lowPassFilter(s,this.msg.cutoff,this.msg.resonance),s=this.highPassFilter(s,this.msg.hcutoff,this.msg.hresonance),s=this.bandPassFilter(s,this.msg.bandf,this.msg.bandq),s=this.vowel(s,this.msg.vowel),s=this.delay(s,this.msg.delay,this.msg.delaytime,this.msg.delayfeedback),s=this.loop(s,this.msg.loop,this.msg.begin,this.msg.end,this.msg.speed),s=this.crush(s,this.msg.crush),s=this.coarse(s,this.msg.coarse),this.unit(this.msg.unit,this.msg.speed);var i=parseFloat(this.msg.gain);isNaN(i)&&(i=1),i>2&&(i=2),i<0&&(i=0);var o=parseFloat(this.msg.overgain);isNaN(o)||(i+=o),i=Math.pow(i,4);var r,c,l,u=parseFloat(e.pan);if(isNaN(u)&&(u=.5),this.audioOutputs==2)(u>1||u<0)&&(u-=Math.floor(u)),r=u,c=0,l=1;else{var A=(u-=Math.floor(u))*this.audioOutputs;(l=(c=Math.floor(A))+1)>=this.audioOutputs&&(l=0),r=A-Math.floor(A)}var v=this.ac.createGain();this.disconnectOnEnd(v);var S=this.ac.createGain();this.disconnectOnEnd(S),v.gain.value=Math.cos(r*Math.PI/2)*i,S.gain.value=Math.sin(r*Math.PI/2)*i,s.connect(v),s.connect(S),this.gain1=v,this.gain2=S;var k=this.ac.createChannelMerger(this.audioOutputs);this.disconnectOnEnd(k),v.connect(k,0,c),S.connect(k,0,l),k.connect(this.outputNode)}else this.stopAll()}function w(e,t){let s=parseFloat(e);return isNaN(s)?t:s>1?1:s<0?0:s}m.r(g),m.d(g,{WebDirt:()=>f}),h.prototype.prepareBuffer=function(){typeof this.bufferContainer=="object"?typeof this.bufferContainer.buffer=="object"&&(this.msg.speed>=0?this.buffer=this.bufferContainer.buffer:(typeof this.bufferContainer.reverseBuffer=="object"||(this.bufferContainer.reverseBuffer=this.reverseBuffer(this.ac,this.bufferContainer.buffer)),this.buffer=this.bufferContainer.reverseBuffer)):(this.msg.speed>=0?this.buffer=this.sampleBank.getBuffer(this.msg.s,this.msg.n):this.buffer=this.sampleBank.getReverseBuffer(this.msg.s,this.msg.n),this.buffer=this.accel(this.buffer,this.msg.accelerate,this.msg.speed))},h.prototype.disconnectOnEnd=function(e){this.source.disconnectQueue==null&&(this.source.disconnectQueue=new Array),this.source.disconnectQueue.unshift(e)},h.prototype.start=function(){let e=Math.abs(this.msg.speed),t=(this.msg.end-this.msg.begin)*this.source.buffer.duration/e,s=this.msg.begin*this.source.buffer.duration;this.source.start(this.when,s,t)},h.prototype.stopAll=function(){if(this.source!=null&&this.source.disconnectQueue!=null){for(var e=0;e1&&this.workletsAvailable){var s=new AudioWorkletNode(this.ac,"coarse-processor");return s.parameters.get("coarse").value=t,e.connect(s),this.disconnectOnEnd(s),s}return e},h.prototype.crush=function(e,t){if(t=parseInt(t),isNaN(t)&&(t=null),t!=null&&t>0&&this.workletsAvailable){var s=new AudioWorkletNode(this.ac,"crush-processor");return s.parameters.get("crush").value=t,e.connect(s),this.disconnectOnEnd(s),s}return e},h.prototype.cut=function(e,t){if(e=parseInt(e),!isNaN(e)&&e!=0){for(var s={cutGroup:e,node:this,sampleName:t},a=0;a2e4&&(t=2e4),isNaN(parseFloat(s))&&(s=0),s<0&&(s=0),s>1&&(s=1),s=1/(s=1-.999*(s*=s));var a=this.ac.createBiquadFilter();return this.disconnectOnEnd(a),a.type="highpass",a.frequency.value=t,a.Q.value=s,e.connect(a),a},h.prototype.lowPassFilter=function(e,t,s){if(isNaN(parseFloat(t))&&isNaN(parseFloat(s)))return e;isNaN(parseFloat(t))&&(t=440),t<20&&(t=20),t>2e4&&(t=2e4),isNaN(parseFloat(s))&&(s=0),s<0&&(s=0),s>1&&(s=1),s=1/(s=1-.999*(s*=s));var a=this.ac.createBiquadFilter();return this.disconnectOnEnd(a),a.type="lowpass",a.frequency.value=t,a.Q.value=s,e.connect(a),a},h.prototype.bandPassFilter=function(e,t,s){if(isNaN(parseFloat(t))&&isNaN(parseFloat(s)))return e;isNaN(parseFloat(t))&&(t=440),t<20&&(t=20),t>2e4&&(t=2e4),isNaN(parseFloat(s))&&(s=10),s<1&&(s=1),s>100&&(s=100);var a=this.ac.createBiquadFilter();return this.disconnectOnEnd(a),a.type="bandpass",a.frequency.value=t,a.Q.value=s,a.gain.value=s,e.connect(a),a},h.prototype.loop=function(e,t){if(isNaN(parseInt(t))||t==0)return e;try{var s=this.source.buffer.duration-this.msg.begin*this.source.buffer.duration-(1-this.msg.end)*this.source.buffer.duration;return this.source.loop=!0,this.source.loopStart=this.msg.begin*this.source.buffer.duration,this.source.loopEnd=this.msg.end*this.source.buffer.duration,this.source.stop(this.when+s*t/this.source.playbackRate.value),e}catch{return console.log("WebDirt Warning: buffer data not yet available to calculate loop time - no looping applied"),e}},h.prototype.accelerate=function(e,t){if(t=Math.abs(t),isNaN(parseFloat(e))&&(e=0),e!=0){e=parseFloat(e),this.source.playbackRate.setValueAtTime(t,this.when);var s=Math.abs((this.source.buffer.length*e/this.ac.sampleRate+t)/t),a=t+this.source.buffer.length*e/this.ac.sampleRate;if(a<0)this.source.buffer=this.negativeAccelerateBuffer(this.source.buffer,e,t),this.source.playbackRate.linearRampToValueAtTime(0,this.when+s),this.source.playbackRate.linearRampToValueAtTime(1,this.when+this.source.buffer.duration);else try{this.source.playbackRate.linearRampToValueAtTime(a,this.when+this.source.buffer.duration)}catch{console.log("WebDirt: Warning, buffer data not loaded, could not apply acclerate effect")}}},h.prototype.negativeAccelerateBuffer=function(e,t,s){var a=e.length,n=new Float32Array(a),i=this.ac.createBuffer(e.numberOfChannels,e.length,this.ac.sampleRate),o=new Float32Array(a),r=Math.abs(s/(s-t))*a;r=a*Math.abs((this.source.buffer.length*t/this.ac.sampleRate+s)/s)/this.source.buffer.duration,r=Math.trunc(r);for(var c=0;c=1&&(t=.999),t>0&&this.workletsAvailable){var s=new AudioWorkletNode(this.ac,"shape-processor");return s.parameters.get("shape").value=t,e.connect(s),this.disconnectOnEnd(s),s}return e},h.prototype.stop=function(e){this.gain1.gain.setValueAtTime(this.gain1.gain.value,e),this.gain1.gain.linearRampToValueAtTime(0,e+.02),this.gain2.gain.setValueAtTime(this.gain1.gain.value,e),this.gain2.gain.linearRampToValueAtTime(0,e+.02)},h.prototype.unit=function(e,t){e=="c"&&(this.source.playbackRate.value=this.source.playbackRate.value*this.source.buffer.duration)},h.prototype.vowel=function(e,t){if(typeof t!="string")return e;if((t=t.toLowerCase())=="a"||t=="e"||t=="i"||t=="o"||t=="u"){var s,a,n,i=this.ac.createGain();switch(this.disconnectOnEnd(i),t){case"a":s=p.a.freqs,a=p.a.qs,n=p.a.amps;break;case"e":s=p.e.freqs,a=p.e.qs,n=p.e.amps;break;case"i":s=p.i.freqs,a=p.i.qs,n=p.i.amps;break;case"o":s=p.o.freqs,a=p.o.qs,n=p.o.amps;break;case"u":s=p.u.freqs,a=p.u.qs,n=p.u.amps}for(var o=0;o<5;o++){var r=this.ac.createGain();this.disconnectOnEnd(r),r.gain.value=n[o];var c=this.ac.createBiquadFilter();this.disconnectOnEnd(c),c.type="bandpass",c.Q.value=a[o]/8,c.frequency.value=s[o],e.connect(c),c.connect(r),r.connect(i)}return i.gain.value=8,i}return e},h.prototype.reverseBuffer=function(e,t){for(var s=t.length,a=new Float32Array(s),n=e.createBuffer(t.numberOfChannels,t.length,e.sampleRate),i=new Float32Array(s),o=0;o{console.log("WebDirt: audio worklets added"),this.workletsAvailable=!0}).catch(t=>{console.log("WebDirt: error loading AudioWorklets.js: "+t),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1}):(console.log("WebDirt: browser does not support audio worklets"),console.log("(WebDirt should still work but shape, coarse, and crush will have no effect)"),this.workletsAvailable=!1),this.tempo={time:this.ac.currentTime,beats:0,bpm:30},this.clockDiff=Date.now()/1e3-this.ac.currentTime,this.sampleBank!=null&&(this.sampleBank.ac=this.ac),this.silentNote=this.ac.createOscillator(),this.silentNote.type="sine",this.silentNote.frequency.value=440,this.silentGain=this.ac.createGain(),this.silentGain.gain.value=0,this.silentNote.connect(this.silentGain),this.silentGain.connect(this.ac.destination),this.silentNote.start();var e=this;setTimeout(function(){e.silentGain.disconnect(e.ac.destination),e.silentNote.disconnect(e.silentGain),e.silentNote.stop(),e.silentGain=null,e.silentNote=null},500)}console.log("WebDirt: initializeWebAudio finished.")},f.prototype.playSample=function(e,t){if(t==null&&(t=this.latency),e.whenPosix!=null&&(e.when=e.whenPosix-(new Date().getTime()/1e3-this.ac.currentTime)),e.when==null&&(e.when=this.ac.currentTime),e.when=e.when+t,typeof e.maxLateness!="number"&&(e.maxLateness=this.maxLateness),this.ac.currentTime-e.when>e.maxLateness)return void console.log("WebDirt warning: dropping msg late by "+(this.ac.currentTime-e.when)+" seconds");let s=new h(e,this);return this.eventCounter++,s},f.prototype.playScore=function(e,t,s){this.initializeWebAudio(),t==null&&(t=this.latency);for(var a=this.ac.currentTime,n=0,i=0;in&&(n=o.when),o.when=o.when+a,o.s!=null&&(o.sample_name=o.s),o.n!=null&&(o.sample_n=o.n),this.playSample(o,t)}setTimeout(function(){typeof s=="function"&&s()},1e3*(n+t))},f.prototype.playScoreWhenReady=function(e,t,s,a){this.initializeWebAudio(),t==null&&(t=this.latency);for(var n=e.length,i=0;i{const N=async(m,g,h)=>{if(!y)throw new Error("WebDirt not initialized!");const w=m-h,{s:p,n:d=0,...f}=g.value||{};p||console.warn('Pattern.webdirt: no "s" was set!');const e=O();if(!(e!=null&&e[p])){y.playSample({s:p,n:d,...f},w);return}if(!(e!=null&&e[p]))console.warn(`Pattern.webdirt: sample "${p}" not found in loaded samples`,e);else{const t=e[p],s=t[d%t.length],a=R(s);if(!a)console.log(`Pattern.webdirt: load ${p}:${d} from ${s}`),E(s,y.ac);else{const n={buffer:{buffer:a},...f};y.playSample(n,w)}}};return b.setContext({...b.context,onTrigger:N})})};export{F as loadWebDirt}; diff --git a/packages/react/examples/nano-repl/dist/assets/index.5b4bbb94.js b/packages/react/examples/nano-repl/dist/assets/index.5b4bbb94.js deleted file mode 100644 index dea97fdc..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.5b4bbb94.js +++ /dev/null @@ -1 +0,0 @@ -import{P as o,m as p}from"./index.ec9f9930.js";function m(i){if(!/^[1-9]+[0-9]*edo$/.test(i))throw new Error('not an edo scale: "'+i+'"');const[n,e]=i.match(/^([1-9]+[0-9]*)edo$/);return Array.from({length:e},(r,s)=>Math.pow(2,s/e))}const d={"12ji":[1/1,16/15,9/8,6/5,5/4,4/3,45/32,3/2,8/5,5/3,16/9,15/8]};function f(i,n){return n.map(e=>e*i)}const l=220;function h(i,n){if(typeof i=="string")if(/^[1-9]+[0-9]*edo$/.test(i))i=m(i);else if(d[i])i=d[i];else throw new Error('unknown scale name: "'+i+'"');return i=f(l,i),n?i.filter((e,r)=>n.includes(r)):i}function u(i,n,e=0){const r=p(e+n,i.length),s=Math.floor(n/i.length);return i[r]*Math.pow(2,s)}o.prototype._xen=function(i,n){return this._asNumber()._withHap(e=>{const r=h(i);n=n||r.length;const s=u(r,e.value);return e.withValue(()=>s).setContext({...e.context,type:"frequency"})})};o.prototype.tuning=function(i){return this._asNumber()._withHap(n=>{const e=u(i,n.value);return n.withValue(()=>e).setContext({...n.context,type:"frequency"})})};o.prototype.define("xen",(i,n)=>n.xen(i),{composable:!0,patternified:!0});function t(){this.scale=[],this.mode={output:"frequency",input:"step"},this.etmajor=[261.62558,293.664764,329.627563,349.228241,391.995422,440,493.883301,523.25116],this.tonic=440}t.prototype.tonicize=function(i){this.tonic=i};t.prototype.note=function(i,n){var e;return this.mode.output=="frequency"?e=this.frequency(i,n):this.mode.output=="ratio"?e=this.ratio(i,n):this.mode.output=="MIDI"?e=this.MIDI(i,n):e=this.frequency(i,n),e};t.prototype.frequency=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);for(var r=i%this.scale.length;r<0;)r+=this.scale.length;var s=this.tonic*this.scale[r];return s=s*Math.pow(2,e),s=Math.floor(s*1e11)/1e11,s};t.prototype.ratio=function(i,n){(this.mode.input=="midi"||this.mode.input=="MIDI")&&(this.stepIn+=60);var e=Math.floor(i/this.scale.length);n&&(e+=n);var r=i%this.scale.length,s=Math.pow(2,e)*this.scale[r];return s=Math.floor(s*1e11)/1e11,s};t.prototype.MIDI=function(i,n){var e=this.frequency(i,n),r=69+12*Math.log(e/440)/Math.log(2);return r=Math.floor(r*1e9)/1e9,r};t.prototype.loadScale=function(i){var n=a[i].frequencies;this.scale=[];for(var e=0;e[1, 1, -1]->[0, 1, -1]->[0, 0, -1]->[0, 0, 0]->[0, -1, 0],[0, -1, 1]->[0, -2, 1]->[-1, -2, 1]"},breedt1:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,326.6631048533,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Graham Breed's 1/4 P temperament, TL 10-06-99"},breedt2:{frequencies:[261.6255653006,276.37000081643,293.53214922797,310.91625060765,328.43856194079,349.78078158391,368.4933346061,392.4383479509,414.55500101742,439.10654054756,466.37437567834,492.65784266492,523.2511306012],description:"Graham Breed's 1/5 P temperament, TL 10-06-99"},breedt3:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,350.01785633742,368.74309237173,392.4383479509,414.83597850347,438.51190905657,466.69047534984,491.65745674141,523.2511306012],description:"Graham Breed's other 1/4 P temperament, TL 10-06-99"},brown:{frequencies:[261.6255653006,272.52663052146,275.62199471997,275.93321340298,279.38237857051,287.10624449997,290.69507255622,291.02331101095,294.32876096318,306.24666079997,306.59245933664,310.07474405997,310.42486507835,322.99452506247,327.03195662575,331.11985608357,344.52749339997,344.91651675372,348.83408706747,349.22797321314,363.36884069528,367.49599295996,367.91095120397,372.50983809402,382.80832599996,387.59343007496,388.03108134794,392.4383479509,408.78994578219,413.43299207996,413.89982010446,430.65936674996,436.04260883433,436.53496651643,441.49314144476,459.36999119996,459.88868900496,465.11211608996,465.63729761752,484.4917875937,489.99465727995,490.54793493862,496.67978412536,516.79124009995,517.37477513058,523.2511306012],description:"Tuning of Colin Brown's Voice Harmonium, Glasgow. Helmholtz/Ellis p. 470-473"},bruder:{frequencies:[261.6255653006,276.38325105256,293.66476791741,310.22971009486,327.53979283172,349.02656754477,368.60786575306,391.65594491223,414.34624765043,439.23819834286,465.62553897253,491.60634075178,523.2511306012],description:"Ignaz Bruder organ temperament (1829) according to P. Vier"},burma3:{frequencies:[261.6255653006,287.71029735626,317.68827763215,350.39147881787,389.32370520689,429.81331927092,476.14308821464,523.2511306012],description:"Burmese scale, von Hornbostel"},"burt-forks":{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Warren Burt 19-tone Forks. Interval 5(3): pp. 13+23 Winter 1986-87"},burt1:{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,415.52295665389,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"W. Burt's 13diatsub #1"},burt10:{frequencies:[261.6255653006,265.11390617127,268.69652652494,272.3773008609,276.16031892841,355.06326719367,368.21375857121,382.37582620857,386.08821287079,389.87339142835,393.73352401674,397.67085925691,523.2511306012],description:"W. Burt's 19enhsub #10"},burt11:{frequencies:[261.6255653006,344.24416486921,347.6866065179,351.12904816659,354.57148981529,358.01393146398,371.78369805875,385.55346465352,495.71159741166,502.59648070905,509.48136400643,516.36624730382,523.2511306012],description:"W. Burt's 19enhharm #11"},burt12:{frequencies:[261.6255653006,302.93486508491,316.70463167967,330.47439827444,344.24416486921,358.01393146398,371.78369805875,385.55346465352,440.63253103259,468.17206422213,495.71159741166,509.48136400643,523.2511306012],description:"W. Burt's 19diatharm #12"},burt13:{frequencies:[261.6255653006,273.51763645063,286.54228580542,293.53112204458,300.86940009569,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,523.2511306012],description:"W. Burt's 23diatsub #13"},burt14:{frequencies:[261.6255653006,264.50057151269,267.43946675172,270.4444045804,273.51763645063,334.29933343966,353.96400011258,376.08675011961,382.05638107389,388.21858076863,394.58281979763,401.15920012759,523.2511306012],description:"W. Burt's 23enhsub #14"},burt15:{frequencies:[261.6255653006,341.25073734861,346.93824963775,352.6257619269,358.31327421604,364.00078650518,386.75083566176,409.50088481833,500.50108144463,506.18859373377,511.87610602291,517.56361831206,523.2511306012],description:"W. Burt's 23enhharm #15"},burt16:{frequencies:[261.6255653006,295.75063903546,307.12566361375,318.50068819203,341.25073734861,364.00078650518,386.75083566176,409.50088481833,455.00098313148,466.37600770977,477.75103228805,500.50108144463,523.2511306012],description:"W. Burt's 23diatharm #16"},burt17:{frequencies:[261.6255653006,262.27760655527,262.77528702311,280.51080915002,281.04308772525,281.33584094163,286.12102533302,286.66394947976,306.91182648178,308.56189006502,309.14739649778,336.61297098002,337.2517052703,337.60300912996,338.42271813583,339.41807907152,363.01398831179,369.18841978454,370.27426807802,396.01525997649,398.14437427744,399.31538714296,403.93556517602,406.10726176299,434.33931739357,434.79175418253,435.61678597414,437.95881170519,475.21831197179,476.86837555503,477.77324913293,478.27092960078,479.17846457156,521.20718087229,521.75010501903,522.74014316897,523.2511306012],description:`W. Burt's "2 out of 3,5,11,17,31 dekany" CPS with 1/1=3/1. 1/1 vol. 10(1) '98`},burt18:{frequencies:[261.6255653006,268.26840191956,269.80136421624,270.50397193556,275.42222597075,281.04308772525,286.15296204753,295.09524211152,300.46061014991,306.59245933664,309.14739649778,314.76825825228,321.92208230347,324.60476632267,337.2517052703,343.38355445704,344.27778246344,354.11429053382,357.69120255941,367.91095120397,370.97687579734,375.57576268738,393.46032281536,404.70204632437,413.13333895612,421.56463158788,429.2294430713,432.80635509689,449.66894036041,463.72109474667,472.15238737843,490.54793493862,491.82540351919,500.76768358318,505.87755790546,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 1,3,5,7,11 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt19:{frequencies:[261.6255653006,268.26840191956,286.15296204753,294.32876096318,300.46061014991,306.59245933664,321.92208230347,327.03195662575,343.38355445704,357.69120255941,367.91095120397,375.57576268738,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:`W. Burt's "2 out of 2,3,4,5,7 dekany" CPS with 1/1=1/1. 1/1 vol. 10(1) '98`},burt2:{frequencies:[261.6255653006,264.16561933264,266.75547834571,269.39662169567,272.09058791262,340.11323489078,344.41846571218,348.83408706747,353.36439988652,358.01393146398,412.25846653428,485.87604984397,523.2511306012],description:"W. Burt's 13enhsub #2"},burt20:{frequencies:[261.6255653006,269.10058145205,279.06726965397,279.38237857051,294.32876096318,298.00787047521,330.74639366397,335.25885428462,367.91095120397,376.74081403286,412.06026534844,418.60090448096,523.2511306012],description:'Warren Burt tuning for "Commas" (1993) 1/1=263. XH 16'},burt3:{frequencies:[261.6255653006,281.75060878526,332.06321749692,382.37582620857,387.40708707973,392.4383479509,397.46960882207,402.50086969323,503.12608711654,508.1573479877,513.18860885887,518.21986973003,523.2511306012],description:"W. Burt's 13enhharm #3"},burt4:{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,342.12573923925,362.25078272391,382.37582620857,402.50086969323,442.75095666255,462.87600014722,483.00104363188,503.12608711654,523.2511306012],description:"W. Burt's 13diatharm #4, see his post 3/30/94 in Tuning Digest #57"},burt5:{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,277.97716313189,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"W. Burt's 17diatsub #5"},burt6:{frequencies:[261.6255653006,265.53042448419,269.55361273395,273.7005913914,277.97716313189,370.63621750918,386.75083566176,404.33041910093,408.97789518255,413.73345210327,418.60090448096,423.58424858192,523.2511306012],description:"W. Burt's 17enhsub #6"},burt7:{frequencies:[261.6255653006,323.18452184192,327.03195662575,330.87939140958,334.72682619341,338.57426097725,353.96400011258,369.35373924791,492.47165233054,500.16652189821,507.86139146587,515.55626103354,523.2511306012],description:"W. Burt's 17enhharm #7"},burt8:{frequencies:[261.6255653006,277.01530443593,292.40504357126,307.79478270659,323.18452184192,338.57426097725,353.96400011258,369.35373924791,400.13321751856,430.91269578922,461.69217405988,492.47165233054,523.2511306012],description:"W. Burt's 17diatharm #8"},burt9:{frequencies:[261.6255653006,268.69652652494,276.16031892841,292.40504357126,310.68035879446,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"W. Burt's 19diatsub #9"},burt_fibo:{frequencies:[261.6255653006,277.97716313189,294.32876096318,311.70233365892,327.03195662575,343.38355445704,363.82305174615,385.28452389971,392.4383479509,425.14154361347,449.66894036041,476.24028683625,523.2511306012],description:'Warren Burt, 3/2+5/3+8/5+etc. "Recurrent Sequences", 2002'},burt_fibo23:{frequencies:[261.6255653006,267.05480676802,277.97716313189,282.81557538079,294.32876096318,299.5065008038,311.70233365892,327.03195662575,330.09788121912,343.38355445704,349.5792770728,363.82305174615,370.21039464899,385.28452389971,392.4383479509,408.02346463385,425.14154361347,432.10374737758,449.66894036041,457.60521391719,476.24028683625,484.61169812829,504.34459560877,523.2511306012],description:'Warren Burt, 23-tone Fibonacci scale. "Recurrent Sequences", 2002'},burt_primes:{frequencies:[261.6255653006,267.75741448733,273.88926367407,277.97716313189,280.0211128608,284.10901231862,290.24086150535,298.416660421,302.50455987882,304.54850960773,308.63640906555,310.68035879446,320.90010743902,322.94405716793,327.03195662575,333.16380581248,335.20775554139,339.29565499922,341.33960472813,351.55935337268,353.60330310159,359.73515228832,363.82305174615,365.86700147506,369.95490093288,376.08675011961,384.26254903526,390.39439822199,392.4383479509,394.48229767981,396.52624740872,402.65809659545,406.74599605328,412.87784524001,421.05364415565,425.14154361347,431.27339280021,433.31734252912,437.40524198694,445.58104090258,455.80078954714,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,519.16323114338,523.2511306012],description:'Warren Burt, primes until 251. "Some Numbers", Dec. 2002'},bushmen:{frequencies:[261.6255653006,347.0163224393,394.26624244126,453.9405988926,523.2511306012],description:"Observed scale of South-African bushmen, almost (4 notes) equal pentatonic"},dan_semantic:{frequencies:[261.6255653006,272.52663052146,275.62199471997,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,397.34382730029,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:'The Semantic Scale, from Alain Dani\xEF\xBF\xBDlou: "S\xEF\xBF\xBDmantique Musicale" (1967)'},danielou5_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.62199471997,279.06726965397,282.55561052465,285.76488412567,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division in 5-limit, symmetrized"},danielou_53:{frequencies:[261.6255653006,264.89588486686,267.43946675172,272.52663052146,275.62199471997,279.06726965397,282.55561052465,287.78812183066,290.69507255622,294.32876096318,297.67175429757,301.87565226992,306.59245933664,310.07474405997,313.95067836072,318.93402246168,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,479.64686971777,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"Dani\xEF\xBF\xBDlou's Harmonic Division of the Octave, see p. 153"},darreg:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"This set of 19 ratios in 5-limit JI is for his megalyra family"},darreg_ennea:{frequencies:[261.6255653006,269.29177952703,277.18263097687,293.66476791741,349.22823143301,391.99543598175,403.48177901006,415.30469757995,440,523.2511306012],description:"Ivor Darreg's Mixed Enneatonic, a mixture of chromatic and enharmonic"},darreg_genus:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,523.2511306012],description:"Ivor Darreg's Mixed JI Genus (Archytas Enh, Ptolemy Soft Chrom, Didymos Chrom"},darreg_genus2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,348.83408706747,392.4383479509,406.97310157871,418.60090448096,441.49314144476,523.2511306012],description:"Darreg's Mixed JI Genus 2 (Archytas Enharmonic and Chromatic Genera)"},david11:{frequencies:[261.6255653006,269.80136421624,274.70684356563,285.40970760065,294.32876096318,305.22982618403,314.76825825228,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,374.60024122586,392.4383479509,406.97310157871,419.69101100305,428.11456140098,441.49314144476,457.84473927605,479.64686971777,490.54793493862,499.46698830115,523.2511306012],description:"11-limit system from Gary David, 1967"},david7:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,488.36772189445,523.2511306012],description:"Gary David's Constant Structure, 1967. A mode of Fokker's 7-limit scale"},ddimlim1:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"First 27/25&2048/1875 scale"},de_caus:{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"De Caus (a mode of Ellis's duodene) (1615)"},degung1:{frequencies:[261.6255653006,286.1303811777,319.28416942365,390.63652710512,420.90734643474,523.2511306012],description:"Gamelan Degung, Kabupaten Sukabumi. 1/1=363 Hz"},degung2:{frequencies:[261.6255653006,276.67939184371,325.99375993805,390.36201910543,415.27879033283,523.2511306012],description:"Gamelan Degung, Kabupaten Bandung. 1/1=252 Hz"},degung3:{frequencies:[261.6255653006,282.83850205216,320.55017368416,393.28023705203,426.95140008307,523.2511306012],description:"Gamelan Degung, Kabupaten Sumedang. 1/1=388.5 Hz"},degung4:{frequencies:[261.6255653006,284.6485709981,319.18312009646,379.88037698982,415.46137490477,523.2511306012],description:"Gamelan Degung, Kasepuhan Cheribon. 1/1=250 Hz"},degung5:{frequencies:[261.6255653006,284.24274449773,317.86283634652,388.77066331187,430.33748813761,523.2511306012],description:"Gamelan Degung, Kanoman Cheribon. 1/1=428 Hz"},degung6:{frequencies:[261.6255653006,273.29426590363,298.47415715355,379.54129348313,409.02013274169,523.2511306012],description:"Gamelan Degung, Kacherbonan Cheribon. 1/1=426 Hz"},dekany:{frequencies:[261.6255653006,299.7792935736,305.22982618403,327.03195662575,359.73515228832,381.53728273004,419.69101100305,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"2)5 Dekany 1.3.5.7.11 (1.3 tonic)"},dekany2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,348.83408706747,358.80077526939,398.6675280771,418.60090448096,448.50096908674,465.11211608996,523.2511306012],description:"3)5 Dekany 1.3.5.7.9 (1.3.5.7.9 tonic)"},dekany3:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"2)5 Dekany 1.3.5.7.9 and 3)5 Dekany 1 1/3 1/5 1/7 1/9"},dekany4:{frequencies:[261.6255653006,270.96933548991,288.48890459486,310.68035879446,321.77608589426,355.06326719367,425.14154361347,440.3251701711,474.19633710734,485.87604984397,523.2511306012],description:"2)5 Dekany 1.7.13.19.29 (1.7 tonic)"},dekany_union:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,381.53728273004,392.4383479509,412.06026534844,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Union of 2)5 and 3)5 [ 1 3 5 7 9] dekanies"},dent:{frequencies:[261.6255653006,276.73939277812,293.41671964988,311.13637945111,328.33487278761,349.18153137729,368.9858570375,391.91718148616,414.84850593482,438.82216331296,465.92281947955,491.98114271667,523.2511306012],description:"Tom Dent, well temperament with A=421 Hz. Integer Hz beat rates from A"},dent2:{frequencies:[261.6255653006,276.57667301797,293.18838124587,310.79781949647,328.55897053596,349.10502918563,369.05532299592,391.67735584266,414.54302837239,438.92977277749,465.83490899549,492.45596147139,523.2511306012],description:"Tom Dent, well-temperament, 2/32 and 5/32 comma. TL 3 & 5-9-2005"},dent3:{frequencies:[261.6255653006,276.38325105256,293.15632631094,310.94732162256,328.48713220126,349.22823143301,368.7143392539,391.76907592069,414.58565256441,438.73106346722,466.16376151809,492.17459484008,523.2511306012],description:'Tom Dent, Bach harpsichord "sine wave" temperament, TL 10-10-2005'},deporcy:{frequencies:[261.6255653006,272.52663052146,286.15296204753,299.00064605783,313.95067836072,327.03195662575,348.83408706747,358.80077526939,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,478.40103369253,502.32108537715,523.2511306012],description:"A 15-note chord-based detempering of 7-limit porcupine"},diab19_612:{frequencies:[261.6255653006,267.01398215014,280.33982809972,299.03492334906,305.19382000629,313.95883772326,320.42510414137,327.02455105776,348.83292260574,366.24210002542,373.7851897098,392.43965797471,418.61038382265,427.23204601759,436.03127668087,448.5538823653,457.79225819026,488.32116993744,512.69177642068,523.2511306012],description:"diab19a in 612-tET"},diab19_72:{frequencies:[261.6255653006,266.71173418545,279.86396690685,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,349.22823143301,366.44956000397,373.57357677338,391.99543598175,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,489.15147723638,513.27277840175,523.2511306012],description:"diab19a in 72-tET"},diablack:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,331.11985608357,372.08969287196,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Unique 256/245&2048/2025 Fokker block"},diachrome1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"First 25/24&2048/2025 scale"},diacycle13:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,360.86284869048,373.75080757229,387.59343007496,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"Diacycle on 20/13, 13/10; there are also nodes at 3/2, 4/3; 13/9, 18/13"},diaddim1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,334.88072358477,344.91651675372,357.20610515709,367.91095120397,392.4383479509,418.60090448096,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 2048/2025&2048/1875 scale"},dialim1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,353.19451315581,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"First 27/25&2048/2025 scale"},diamisty:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,436.53496651643,470.39487098876,496.11959049595,523.2511306012],description:"Diamisty scale 2048/2025 and 67108864/66430125"},diamond11a:{frequencies:[261.6255653006,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,523.2511306012],description:"11-limit Diamond with added 16/15 & 15/8, Zoomoozophone tuning: 1/1 = 392 Hz"},diamond11ak:{frequencies:[261.6255653006,279.72330032405,285.63317938628,287.78812183066,290.69507255622,293.86839138568,299.07491977616,305.39295512204,314.19649759716,319.76457981184,326.52043447049,333.41680553884,335.93301933283,349.10721912206,359.17247822875,366.75848641051,373.2589099097,381.14243472333,392.13131479202,407.50942884268,410.58480125643,419.25667855894,428.11456140098,435.70146034294,448.26139746089,457.73103588952,465.84075338014,470.92601754108,475.68284600109,479.27160679251,489.39746055879,523.2511306012],description:"microtempered version of diamond11a, Dave Keenan TL 11-1-2000, 225/224&385/384"},diamond11at:{frequencies:[261.6255653006,279.83704120119,285.33574350137,287.98268367985,290.84948650387,293.82121114493,299.2738827313,305.22380787491,314.19079532693,320.23980272009,326.48518221507,332.71524733285,336.02719554531,349.1122100506,359.53680125564,366.52331521885,373.4984028396,380.75621844446,392.12570885984,407.39521875769,411.45055399509,419.30194782174,427.47925671618,435.70936791853,448.50981249085,457.42672761267,465.91555560021,470.67599975252,475.36147343465,479.7712027167,489.19854301666,523.2511306012],description:"microtempered version of diamond11a, OdC"},diamond11map:{frequencies:[195.99771799087,228.66400432268,261.33029065449,293.99657698631,326.66286331812,359.32914964993,391.99543598174,457.32800864536,522.66058130899,587.99315397261,653.32572663623,718.65829929986,213.81569235368,249.45164107929,285.0875898049,320.72353853051,356.35948725613,391.99543598174,427.63138470735,498.90328215858,570.1751796098,641.44707706103,712.71897451225,783.99087196348,235.19726158904,274.39680518722,313.59634878539,352.79589238357,391.99543598174,431.19497957991,470.39452317809,548.79361037444,627.19269757078,705.59178476713,783.99087196348,862.38995915983,261.33029065449,304.88533909691,348.44038753932,391.99543598174,435.55048442416,479.10553286657,522.66058130899,609.77067819382,696.88077507865,783.99087196348,871.10096884831,958.21106573314,293.99657698631,342.99600648402,391.99543598174,440.99486547946,489.99429497718,538.99372447489,587.99315397261,685.99201296804,783.99087196348,881.98973095892,979.98858995435,1077.98744894978,335.99608798435,391.99543598174,447.99478397913,503.99413197652,559.99347997391,615.99282797131,671.9921759687,783.99087196348,895.98956795826,1007.98826395305,1119.98695994783,1231.98565594261,783.99087196348],description:"11-limit diamond on a 'centreless' map"},diamond15:{frequencies:[261.6255653006,269.80136421624,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,310.07474405997,313.95067836072,318.85615771011,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,343.38355445704,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,367.91095120397,372.08969287196,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,398.6675280771,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,429.33426100611,436.04260883433,441.49314144476,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,507.3950357345,523.2511306012],description:"15-limit Diamond + 2nd ratios. See Novaro, 1927, Sistema Natural..."},diamond17:{frequencies:[261.6255653006,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,523.2511306012],description:"17-limit Diamond"},diamond17a:{frequencies:[261.6255653006,277.01530443593,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,494.18162334558,523.2511306012],description:"17-limit, +9 Diamond"},diamond19:{frequencies:[261.6255653006,275.39533189537,277.97716313189,281.75060878526,283.42769574232,285.40970760065,287.78812183066,292.40504357126,299.00064605783,302.93486508491,305.22982618403,307.79478270659,309.19384990071,310.68035879446,313.95067836072,317.68818643644,322.00069575458,327.03195662575,330.47439827444,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,355.06326719367,358.01393146398,359.73515228832,366.27579142084,369.35373924791,370.63621750918,373.75080757229,380.54627680087,382.37582620857,385.55346465352,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,414.24047839262,418.60090448096,425.14154361347,430.91269578922,436.04260883433,440.63253103259,442.75095666255,444.76346101102,448.50096908674,451.89870370104,457.84473927605,468.17206422213,475.68284600109,479.64686971777,483.00104363188,485.87604984397,492.47165233054,497.08857407114,523.2511306012],description:"19-limit Diamond"},diamond7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"7-limit Diamond, also double-tie circular mirroring of 4:5:6:7"},diamond9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"9-limit Diamond"},diamond_chess:{frequencies:[261.6255653006,299.00064605783,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,457.84473927605,523.2511306012],description:"9-limit chessboard pattern diamond. OdC"},diamond_chess11:{frequencies:[261.6255653006,287.78812183066,299.00064605783,313.95067836072,319.76457981184,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,428.11456140098,436.04260883433,457.84473927605,475.68284600109,523.2511306012],description:"11-limit chessboard pattern diamond. OdC"},diamond_dup:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Two 7-limit diamonds 3/2 apart"},diamond_mod:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"13-tone Octave Modular Diamond, based on Archytas's Enharmonic"},diamond_tetr:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,523.2511306012],description:"Tetrachord Modular Diamond based on Archytas's Enharmonic"},diaphonic_10:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"10-tone Diaphonic Cycle"},diaphonic_12:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Diaphonic Cycle, conjunctive form on 3/2 and 4/3"},diaphonic_12a:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,323.18452184192,343.38355445704,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,488.36772189445,523.2511306012],description:"2nd 12-tone Diaphonic Cycle, conjunctive form on 10/7 and 7/5"},diaphonic_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"D5-tone Diaphonic Cycle"},diaphonic_7:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"7-tone Diaphonic Cycle, disjunctive form on 4/3 and 3/2"},diaschismic:{frequencies:[261.6255653006,266.61097723855,278.05603152599,283.35453458855,295.51835494038,301.14961170579,314.07733767684,320.06224556188,333.80185153667,340.16262034629,354.76509561975,369.99442271164,377.04485988831,393.23061088369,400.72382577504,417.92606548687,425.88986517773,444.17243057662,452.63636847719,472.06710558841,481.06259110609,501.71360968203,523.2511306012],description:"diaschismic temperament, g=105.446531, p=600, 5-limit"},diat13:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012],description:"This genus is from K.S's diatonic Hypodorian harmonia"},diat15:{frequencies:[261.6255653006,301.87565226992,327.03195662575,356.76213450082,373.75080757229,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Tonos-15 Diatonic and its own trite synemmenon Bb"},diat15_inv:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,366.27579142084,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"Inverted Tonos-15 Harmonia, a harmonic series from 15 from 30."},diat17:{frequencies:[261.6255653006,296.50897400735,342.12573923925,370.63621750918,386.75083566176,404.33041910093,444.76346101102,494.18162334558,523.2511306012],description:"Tonos-17 Diatonic and its own trite synemmenon Bb"},diat19:{frequencies:[261.6255653006,276.16031892841,310.68035879446,355.06326719367,368.21375857121,382.37582620857,414.24047839262,451.89870370104,523.2511306012],description:"Tonos-19 Diatonic and its own trite synemmenon Bb"},diat21:{frequencies:[261.6255653006,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Tonos-21 Diatonic and its own trite synemmenon Bb"},diat21_inv:{frequencies:[261.6255653006,299.00064605783,323.91736656265,348.83408706747,373.75080757229,398.6675280771,448.50096908674,473.41768959156,523.2511306012],description:"Inverted Tonos-21 Harmonia, a harmonic series from 21 from 42."},diat23:{frequencies:[261.6255653006,286.54228580542,300.86940009569,334.29933343966,353.96400011258,376.08675011961,429.81342870813,462.87600014722,523.2511306012],description:"Tonos-23 Diatonic and its own trite synemmenon Bb"},diat25:{frequencies:[261.6255653006,297.30177875068,327.03195662575,363.36884069528,384.74347838324,408.78994578219,467.18850946536,503.12608711654,523.2511306012],description:"Tonos-25 Diatonic and its own trite synemmenon Bb"},diat27:{frequencies:[261.6255653006,294.32876096318,336.37572681506,353.19451315581,371.78369805875,392.4383479509,441.49314144476,504.56359022259,523.2511306012],description:"Tonos-27 Diatonic and its own trite synemmenon Bb"},diat27_inv:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,377.90359432309,387.59343007496,406.97310157871,465.11211608996,523.2511306012],description:"Inverted Tonos-27 Harmonia, a harmonic series from 27 from 54"},diat29:{frequencies:[261.6255653006,291.81313052759,316.13089140489,344.87006335079,361.29244731988,379.35706968587,421.50785520652,474.19633710734,523.2511306012],description:"Tonos-29 Diatonic and its own trite synemmenon Bb"},diat31:{frequencies:[261.6255653006,289.65687586852,311.93817401225,337.93302184661,352.6257619269,368.65420565085,405.51962621593,450.57736246214,523.2511306012],description:"Tonos-31 Diatonic. The disjunctive and conjunctive diatonic forms are the same"},diat33:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,375.37581108347,392.4383479509,431.68218274599,479.64686971777,523.2511306012],description:"Tonos-33 Diatonic. The conjunctive form is 23 (Bb instead of B) 20 18 33/2"},diat_chrom:{frequencies:[261.6255653006,280.31310567921,301.87565226992,348.83408706747,392.4383479509,420.46965851882,452.81347840488,523.2511306012],description:"Diatonic- Chromatic, on the border between the chromatic and diatonic genera"},diat_dies2:{frequencies:[261.6255653006,266.71168334607,311.12698372208,349.22823143301,391.99543598175,399.61600264311,466.16376151809,523.2511306012],description:"Dorian Diatonic, 2 part Diesis"},diat_dies5:{frequencies:[261.6255653006,274.52693220706,311.12698372208,349.22823143301,391.99543598175,411.32564531909,466.16376151809,523.2511306012],description:"Dorian Diatonic, 5 part Diesis"},diat_enh:{frequencies:[261.6255653006,269.29177952703,311.12698372208,349.22823143301,391.99543598175,403.48177901006,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode"},diat_enh2:{frequencies:[261.6255653006,269.29177952703,302.26980244078,349.22823143301,391.99543598175,403.48177901006,452.89298412314,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode 3 + 12 + 15 parts"},diat_enh3:{frequencies:[261.6255653006,302.26980244078,311.12698372208,349.22823143301,391.99543598175,452.89298412314,466.16376151809,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 3 + 12 parts"},diat_enh4:{frequencies:[261.6255653006,302.26980244078,339.28638158975,349.22823143301,391.99543598175,452.89298412314,508.3551866238,523.2511306012],description:"Diat. + Enharm. Diesis, Dorian Mode, 15 + 12 + 3 parts"},diat_enh5:{frequencies:[261.6255653006,293.66476791741,339.28638158975,349.22823143301,391.99543598175,440,508.3551866238,523.2511306012],description:"Dorian Mode, 12 + 15 + 3 parts"},diat_enh6:{frequencies:[261.6255653006,293.66476791741,302.26980244078,349.22823143301,391.99543598175,440,452.89298412314,523.2511306012],description:"Dorian Mode, 12 + 3 + 15 parts"},diat_eq:{frequencies:[261.6255653006,288.06466200271,317.1754314895,349.22823143301,391.99543598175,431.60932167676,475.22619361214,523.2511306012],description:"Equal Diatonic, Islamic form, similar to 11/10 x 11/10 x 400/363"},diat_eq2:{frequencies:[261.6255653006,287.78812183066,317.12189733406,348.83408706747,392.4383479509,431.68218274599,475.68284600109,523.2511306012],description:"Equal Diatonic, 11/10 x 400/363 x 11/10"},diat_gold:{frequencies:[261.6255653006,292.38332274669,326.75708630452,349.99258496952,391.13935185123,437.1232727958,488.51296691354,523.2511306012],description:"Diatonic scale with ratio between whole and half tone the Golden Section"},diat_hemchrom:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"Diat. + Hem. Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_smal:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:'"Smallest number" diatonic scale'},diat_sofchrom:{frequencies:[261.6255653006,271.8968348557,311.12698372208,349.22823143301,391.99543598175,407.38495184466,466.16376151809,523.2511306012],description:"Diat. + Soft Chrom. Diesis, Another genus of Aristoxenos, Dorian Mode"},diat_soft:{frequencies:[261.6255653006,274.52693220706,302.26980244078,349.22823143301,391.99543598175,411.32564531909,452.89298412314,523.2511306012],description:"Soft Diatonic genus 5 + 10 + 15 parts"},diat_soft2:{frequencies:[261.6255653006,281.2143451833,302.26980244078,349.22823143301,391.99543598175,421.34544350737,452.89298412314,523.2511306012],description:"Soft Diatonic genus with equally divided Pyknon; Dorian Mode"},diat_soft3:{frequencies:[261.6255653006,281.2143451833,324.90175210669,349.22823143301,391.99543598175,421.34544350737,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},diat_soft4:{frequencies:[261.6255653006,302.26980244078,324.90175210669,349.22823143301,391.99543598175,452.89298412314,486.80259447109,523.2511306012],description:"New Soft Diatonic genus with equally divided Pyknon; Dorian Mode; 1:1 pyknon"},dicot:{frequencies:[261.6255653006,270.35822989652,294.32876096318,320.42456924675,331.11985608357,360.47764004221,392.4383479509,405.53734464206,441.49314144476,480.63685362987,523.2511306012],description:"Dicot temperament, g=350.9775, 5-limit"},didy_chrom:{frequencies:[261.6255653006,279.06726965397,290.69507255622,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Didymus Chromatic"},didy_chrom1:{frequencies:[261.6255653006,279.06726965397,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Permuted Didymus Chromatic"},didy_chrom2:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,470.92601754108,490.54793493862,523.2511306012],description:"Didymos's Chromatic, 6/5 x 25/24 x 16/15"},didy_chrom3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,392.4383479509,408.78994578219,436.04260883433,523.2511306012],description:"Didymos's Chromatic, 25/24 x 16/15 x 6/5"},didy_diat:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,418.60090448096,465.11211608996,523.2511306012],description:"Didymus Diatonic"},didy_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Inverse Didymus Diatonic, variant of Ptolemy with 2 identical triads"},didy_enh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Dorian mode of Didymos's Enharmonic"},didy_enh2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,348.83408706747,392.4383479509,413.43299207996,418.60090448096,523.2511306012],description:"Permuted Didymus Enharmonic"},"diesic-m":{frequencies:[261.6255653006,289.62525622617,320.62153003931,354.93508703008,392.92094947462,434.97213484265,481.52372211906,523.2511306012],description:"Minimal Diesic temperament, g=176.021, 5-limit"},"diesic-t":{frequencies:[261.6255653006,272.92239980638,281.87304203955,294.04415210774,303.68749398125,316.80053726141,327.19018747082,337.92057205022,352.51178108166,364.07260143821,379.79303732838,392.24856169057,409.18561859271,422.60509148244,436.46466102477,455.31094249407,470.24311865111,490.54793493862,506.63572944675,523.2511306012],description:"Tiny Diesic temperament, g=443.017, 5-limit"},diff31_72:{frequencies:[261.6255653006,269.29177952703,274.52698453615,279.86396690685,285.30470202322,293.66476791741,299.37379946195,305.19382000629,314.13668154225,320.24370022528,326.46944327063,336.03572815422,342.56848033562,352.60650301302,356.01745236555,366.44956000397,373.57357677338,384.52011812375,388.23978476841,399.61607881612,407.38487419079,419.32216217931,427.47405410759,435.78442404634,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,508.3551866238,523.2511306012],description:"Diff31, 11/9, 4/3, 7/5, 3/2, 7/4, 9/5 difference diamond, tempered to 72-et"},dimteta:{frequencies:[261.6255653006,282.55561052465,307.12566361375,336.37572681506,406.97310157871,439.53094970501,477.75103228805,523.2511306012],description:"A heptatonic form on the 9/7"},dimtetb:{frequencies:[261.6255653006,294.32876096318,336.37572681506,406.97310157871,457.84473927605,523.2511306012],description:"A pentatonic form on the 9/7"},div_fifth1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #1, From Schlesinger, see Chapter 8, p. 160"},div_fifth2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #2, From Schlesinger, see Chapter 8, p. 160"},div_fifth3:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,523.2511306012],description:"Divided Fifth #3, From Schlesinger, see Chapter 8, p. 160"},div_fifth4:{frequencies:[261.6255653006,274.70684356563,305.22982618403,343.38355445704,392.4383479509,523.2511306012],description:"Divided Fifth #4, From Schlesinger, see Chapter 8, p. 160"},div_fifth5:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,523.2511306012],description:"Divided Fifth #5, From Schlesinger, see Chapter 8, p. 160"},dkring1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,320.49131749323,327.03195662575,366.27579142084,392.4383479509,439.53094970501,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 4:5:6:7"},dkring2:{frequencies:[261.6255653006,274.70684356563,305.22982618403,329.64821227876,336.37572681506,353.19451315581,366.27579142084,392.4383479509,406.97310157871,427.32175665765,436.04260883433,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 3:5:7:9"},dkring3:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,348.83408706747,384.42940207435,392.4383479509,398.6675280771,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"Double-tie circular mirroring of 6:7:8:9"},dkring4:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,327.03195662575,336.37572681506,367.91095120397,373.75080757229,378.42269266694,420.46965851882,467.18850946536,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 7:8:9:10"},dodeceny:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Degenerate eikosany 3)6 from 1.3.5.9.15.45 tonic 1.3.15"},dorian_chrom:{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,315.92521092903,322.00069575458,348.83408706747,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,620.14948811994,631.85042185805,644.00139150917,697.66817413493,761.09255360175,797.33505615421,816.78225264578,837.20180896192,930.22423217991,1046.5022612024],description:"Dorian Chromatic Tonos"},dorian_chrom2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the chromatic genus"},dorian_chrominv:{frequencies:[261.6255653006,273.00058987889,285.40970760065,332.97799220076,380.54627680087,404.33041910093,428.11456140098,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Dorian inverted"},dorian_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,669.76144716954,697.66817413493,728.00157301037,761.09255360175,837.20180896192,881.26506206518,930.22423217991,984.94330466108,1046.5022612024],description:"Dorian Diatonic Tonos"},dorian_diat2:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,442.75095666255,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Harmonia, a subharmonic series through 13 from 22"},dorian_diat2inv:{frequencies:[261.6255653006,285.40970760065,309.19384990071,332.97799220076,356.76213450082,380.54627680087,428.11456140098,475.68284600109,523.2511306012],description:"Inverted Schlesinger's Dorian Harmonia, a harmonic series from 11 from 22"},dorian_diatcon:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,411.12588832951,479.64686971777,523.2511306012],description:"A Dorian Diatonic with its own trite synemmenon replacing paramese"},dorian_diatred11:{frequencies:[261.6255653006,287.78812183066,316.56693401373,348.83408706747,392.4383479509,431.68218274599,474.85040102059,523.2511306012],description:"Dorian mode of a diatonic genus with reduplicated 11/10"},dorian_enh:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,310.07474405997,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012,558.13453930795,598.00129211566,608.8740428814,614.4600432748,620.14948811994,697.66817413493,761.09255360175,778.79238042969,787.95464372887,797.33505615421,930.22423217991,1046.5022612024],description:"Dorian Enharmonic Tonos"},dorian_enh2:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,426.35277308246,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the enharmonic genus"},dorian_enhinv:{frequencies:[261.6255653006,267.19206668997,273.00058987889,332.97799220076,380.54627680087,392.4383479509,404.33041910093,523.2511306012],description:"A harmonic form of Schlesinger's Dorian enharmonic inverted"},dorian_pent:{frequencies:[261.6255653006,271.49822814213,287.78812183066,359.73515228832,411.12588832951,423.21782622156,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the pentachromatic genus"},dorian_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the Dorian Tonos, a non-rep. 16 tone gamut"},dorian_schl:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"Schlesinger's Dorian Piano Tuning (Sub 22)"},dorian_tri1:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,411.12588832951,421.15334902048,431.68218274599,523.2511306012],description:"Schlesinger's Dorian Harmonia in the first trichromatic genus"},dorian_tri2:{frequencies:[261.6255653006,269.80136421624,287.78812183066,359.73515228832,411.12588832951,421.15334902048,442.75095666255,523.2511306012],description:"Schlesinger's Dorian Harmonia in the second trichromatic genus"},douwes:{frequencies:[261.6255653006,273.00058987889,292.50063201309,313.39353429974,327.01933943691,350.37786403433,365.61168556196,391.72680409,408.75840577964,436.81779569448,468.01906681552,488.36772189445,523.2511306012],description:"Claas Douwes recommendation of 24/23 and 15/14 steps for clavichord (1699)"},dow_high:{frequencies:[261.6255653006,277.01530443593,278.50463402967,294.32876096318,308.34441624714,313.31771328338,327.34193952303,331.11985608357,346.88746827803,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707],description:"Highest octave of Dowlands lute tuning, strings 5,6. 1/1=G (1610)"},dow_lmh:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012,548.16785110602,557.00926805934,581.94122581871,588.65752192635,616.68883249427,620.14948811994,626.63542656676,656.62886977405,662.23971216714,693.77493655606,697.66817413493,736.51936392681,742.67902407912,784.8766959018,822.25177665903,831.04591330779,835.51390208901,882.98628288953,925.03324874141,939.95313985014,982.02581856908,993.35956825072,1040.66240483408,1046.5022612024,1108.06121774372,1114.01853611868,1177.3150438527,1233.37766498854,1253.27085313352,1309.3677580921,1324.47942433429,1387.54987311211,1395.33634826987,1477.41495699162,1569.7533918036,1671.02780417803,1765.97256577905,1850.06649748281],description:"All three octaves of Dowland's lute tuning"},dow_low:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,371.33951203956,392.4383479509,411.12588832951,417.75695104451,436.45591936403,441.49314144476,462.5166243707,465.11211608996,492.47165233054,495.11934938608,523.2511306012],description:"Lowest octave of Dowlands lute tuning, strings 1,2,3. 1/1=G. (1610)"},dow_middle:{frequencies:[261.6255653006,274.08392555301,278.50463402967,290.97061290936,294.32876096318,308.34441624714,310.07474405997,313.31771328338,328.31443488703,331.11985608357,346.88746827803,348.83408706747,368.2596819634,371.33951203956,392.4383479509,411.12588832951,415.52295665389,417.75695104451,441.49314144476,462.5166243707,469.97656992507,491.01290928454,496.67978412536,520.33120241704,523.2511306012],description:"Middle octave of Dowlands lute tuning, strings 3,4,5. 1/1=G (1610)"},dowland_12:{frequencies:[261.6255653006,278.50463402967,294.32876096318,308.34441624714,327.34193952303,348.83408706747,369.35373924791,392.4383479509,417.75695104451,441.49314144476,462.5166243707,492.47165233054,523.2511306012],description:"subset of Dowland's lute tuning, lowest octave"},druri:{frequencies:[261.6255653006,285.79952600623,326.97270111135,357.18467683857,523.2511306012],description:"Scale of druri dana of Siwoli, south Nias, Jaap Kunst"},dudon_a:{frequencies:[261.6255653006,285.85015468029,319.76457981184,348.83408706747,392.4383479509,428.77523202043,479.64686971777,523.2511306012],description:"Dudon Tetrachord A"},dudon_b:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,482.37213602298,523.2511306012],description:"Dudon Tetrachord B"},dudon_c12:{frequencies:[261.6255653006,302.50455987882,327.03195662575,343.38355445704,392.4383479509,425.14154361347,474.19633710734,523.2511306012],description:"Differentially coherent scale in interval class 1 and 2"},dudon_diat:{frequencies:[261.6255653006,294.32876096318,321.08592105074,350.8160989258,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Dudon Neutral Diatonic"},dudon_moha_baya:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Mohajira + Bayati (Dudon) 3 + 4 + 3 Mohajira and 3 + 3 + 4 Bayati tetrachords"},dudon_mohajira:{frequencies:[261.6255653006,285.30470202322,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Dudon's Mohajira, two 3 + 4 + 3 tetrachords, neutral diatonic"},dudon_mohajira_r:{frequencies:[261.6255653006,283.42769574232,321.58142401532,348.83408706747,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"Jacques Dudon, JI Mohajira, Lumi\xEF\xBF\xBDres audibles"},dudon_thai:{frequencies:[261.6255653006,288.26147859917,317.63518509943,350.43752981487,386.47021463976,426.17461277719,469.97930400405,523.2511306012],description:"Dudon, coherent Thai heptatonic scale, 1/1 vol. 11/2, 2003"},dudon_thai2:{frequencies:[261.6255653006,288.02814528506,314.43072526953,347.1339209321,383.13743909274,422.44127975143,475.35895071461,523.2511306012],description:"Slightly better version, 3.685 cents deviation"},dudon_thai3:{frequencies:[261.6255653006,291.60349465796,321.58142401532,354.2846196779,394.48229767981,434.67997568173,478.96555314146,523.2511306012],description:"Dudon, Thai scale with two 704/703 = 2.46 c. deviations and simpler numbers"},duncan:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Dudley Duncan's Superparticular Scale"},duoden12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,413.89982010446,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Almost equal 12-tone subset of Duodenarium"},duodenarium:{frequencies:[14.56761754744,14.73307690724,14.74971276678,14.91724036858,14.98726085128,15.00418372272,15.10370587319,15.17460161192,15.19173601925,15.34695511171,15.36428413207,15.5387920506,15.55633768372,15.71528203439,15.73302695124,15.80687667908,15.91172305982,15.92968978813,16.00446263757,16.18624171938,16.20451842054,16.38856974087,16.57471152064,16.59342686263,16.78189541465,16.86066845769,16.87970668806,16.99166910733,17.07142681341,17.26532450067,17.28481964857,17.48114105693,17.67969228869,17.69965532014,17.78273626396,17.90068844229,17.98471302153,18.00502046726,18.2095219343,18.41634613405,18.43714095848,18.64655046072,18.73407606409,18.85833844126,18.87963234148,18.9682520149,18.98967002407,19.18369388963,19.20535516508,19.42349006325,19.44542210465,19.64410254298,19.66628368904,19.88965382477,19.91211223516,20.00557829696,20.13827449758,20.23280214922,20.25564802567,20.48571217609,20.7183894008,20.74178357829,20.97736926831,21.07583557211,21.21563074642,21.23958638417,21.33928351676,21.58165562584,21.60602456072,21.85142632116,22.09961536086,22.12456915017,22.37586055287,22.48089127691,22.50627558408,22.65555880978,22.76190241787,23.02043266756,23.0464261981,23.3081880759,23.57292305158,23.59954042685,23.71031501862,23.86758458973,23.97961736204,24.00669395635,24.27936257907,24.30677763081,24.55512817873,24.5828546113,24.86206728096,24.89014029395,25.14445125502,25.17284312198,25.29100268653,25.31956003209,25.487503661,25.60714022011,25.897986751,25.92722947286,26.22171158539,26.51953843303,26.54948298021,26.67410439595,26.85103266344,26.9770695323,27.0075307009,27.31428290145,27.62451920107,27.65571143772,27.96982569108,28.10111409614,28.2875076619,28.31944851222,28.45237802234,28.77554083445,28.80803274762,29.13523509488],description:"Ellis's Duodenarium : genus [3^12 5^8]"},duodene:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Duodene : genus [33355]"},"duodene14-18-21":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"14-18-21 Duodene"},"duodene3-11_9":{frequencies:[261.6255653006,285.40970760065,294.32876096318,319.76457981184,321.08592105074,348.83408706747,359.73515228832,392.4383479509,426.35277308246,428.11456140098,479.64686971777,481.6288815761,523.2511306012],description:"3-11/9 Duodene"},"duodene3-7":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"3-7 Duodene"},"duodene6-7-9":{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,406.97310157871,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:"6-7-9 Duodene"},duodene_min:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Minor Duodene"},"duodene_r-45":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,353.19451315581,376.74081403286,401.85686830172,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated -45 degrees"},duodene_r45:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,313.95067836072,334.88072358477,383.2405741708,408.78994578219,436.04260883433,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 45 degrees"},duodene_r90:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Ellis's Duodene rotated 90 degrees: genus [33555]"},duodene_skew:{frequencies:[261.6255653006,282.55561052465,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rotated 6/5x3/2 duodene"},duodene_t:{frequencies:[261.6255653006,279.3825857701,293.66476791741,313.59634948548,327.03195662575,349.22823143301,367.08095907728,391.99543598175,418.60090448096,436.53528831673,469.86362971679,489.99429388332,523.2511306012],description:"Duodene with equal tempered fifths"},duowell:{frequencies:[261.6255653006,278.41172412276,294.03623226919,312.90189200955,327.96500300935,349.00756672938,368.59392213143,392.24328034087,417.4100028405,437.50413894442,469.11953885575,491.70297432358,523.2511306012],description:"Ellis duodene well-tuned to fifth=(7168/11)^(1/16) third=(11/7)^(1/2)"},dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},cairo:{frequencies:[261.6255653006,269.38381929633,276.03456984659,285.15047989166,293.63138642043,300.85736580106,309.799366845,312.20234522745,320.03127253896,327.93377450564,337.66851484331,348.83408706747,357.41197445437,367.9166999024,380.21445327801,392.4383479509,401.02017979859,414.62054722758,417.26565438692,427.77234352616,440.44707963064,451.93568025669,468.86302025197,480.04690880844,491.77737838459,510.98743222773,523.2511306012],description:"P.42, of d'Erlanger, vol.5. Congress of Arabic Music, Cairo, 1932"},canright:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:`David Canright's piano tuning for "Fibonacci Suite" (2001)`},carlos_alpha:{frequencies:[261.6255653006,273.68256372566,286.29520819723,299.48910562989,313.29104303136,327.729041887,342.83241505062,358.63182625716,375.1593523779,392.44854854484,410.5345162762,429.45397474154,449.24533531117,469.94877954106,491.60634075178,514.26198936695,537.96172218451,562.75365576207,588.68812410589],description:"Wendy Carlos' Alpha scale with perfect fifth divided in nine"},carlos_alpha2:{frequencies:[261.6255653006,267.58616452957,273.68256372566,279.91785681123,286.29520819723,292.81785438923,299.48910562989,306.31234757893,313.29104303136,320.42873367481,327.729041887,335.19567257401,342.83241505062,350.6431449633,358.63182625716,366.8025131876,375.1593523779,383.7065849236,392.44854854484,401.3896797878,410.5345162762,419.88769901416,429.45397474154,439.23819834286,449.24533531117,459.48046426806,469.94877954106,480.6555937997,491.60634075178,502.8065779009,514.26198936695,525.97838877075,537.96172218451,550.21807114943,562.75365576207,575.57483783111,588.68812410589],description:"Wendy Carlos' Alpha prime scale with perfect fifth divided by eightteen"},carlos_beta:{frequencies:[261.6255653006,271.44693432634,281.63699549204,292.20958942356,303.17907632096,314.56035546319,326.36888544505,338.62070517372,351.33245565363,364.52140258903,378.2054598351,392.40321372938,407.13394833666,422.41767164147,438.27514272393,454.72789995564,471.7982902542,489.50949943583,507.88558370741,526.95150234083,546.73315157381,567.25739978343,588.55212398003],description:"Wendy Carlos' Beta scale with perfect fifth divided by eleven"},carlos_beta2:{frequencies:[261.6255653006,266.49100855797,271.44693432634,276.49502530642,281.63699549204,286.87459075215,292.20958942356,297.64380291476,303.17907632096,308.81728905054,314.56035546319,320.41022551991,326.36888544505,332.43835840072,338.62070517372,344.91802487526,351.33245565363,357.86617542024,364.52140258903,371.30039682974,378.2054598351,385.23893610237,392.40321372938,399.70072522531,407.13394833666,414.70540688852,422.41767164147,430.27336116448,438.27514272393,446.42573318931,454.72789995564,463.18446188312,471.7982902542,480.57230974851,489.50949943583,498.61289378764,507.88558370741,517.33071758003,526.95150234083,536.75120456442,546.73315157381,556.90073257014,567.25739978343,577.80666964473,588.55212398003],description:"Wendy Carlos' Beta prime scale with perfect fifth divided by twentytwo"},carlos_gamma:{frequencies:[261.6255653006,266.98388983977,272.45195763676,278.03201633122,283.72635959645,289.53732808222,295.4673103769,301.51874398927,307.69411635045,313.99596583639,320.42688281121,326.98951069203,333.68654703547,340.52074464653,347.49491271011,354.6119179457,361.87468578579,369.2862015783,376.84951181374,384.56772537748,392.44401482761,400.48161769905,408.68383783428,417.05404674148,425.59568498025,434.31226357598,443.20736546293,452.28464695708,461.547839259,471.00074998758,480.64726474513,490.49134871455,500.53704828923,510.78849273629,521.24989589392,531.92555790347],description:"Wendy Carlos' Gamma scale with third divided by eleven or fifth by twenty"},carlos_harm:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Harmonic & Ben Johnston's scale of 'Blues' from Suite f.micr.piano (1977) & David Beardsley's scale of 'Science Friction'"},carlos_super:{frequencies:[261.6255653006,277.97716313189,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Carlos Super Just"},carlson:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Brian Carlson's guitar scale (or 7 is 21/16 instead) fretted by Mark Rankin"},cassandra1:{frequencies:[261.6255653006,265.52313139125,271.43629763673,275.48001908354,279.58398024378,283.7490817683,290.06813927787,294.38942683035,298.7750924519,305.42877739024,309.97889991383,314.59680966486,319.28351286859,326.39391783308,331.25637026535,336.19125912653,343.67819754196,348.79814248043,353.99435973883,359.26798967332,367.26884406885,372.74022844163,378.29312490007,386.71766674112,392.47878977853,398.32574139651,407.19640716832,413.26261206104,419.41919061043,425.66748431192,435.14704737009,441.62964923022,448.20882304357,458.19037897128,465.01626879626,471.9438445688,478.97462660712,489.64133323501,496.93576068834,504.33885972365,515.57042175735,523.2511306012],description:"Cassandra temperament (Erv Wilson), 13-limit, g=497.866"},cassandra2:{frequencies:[261.6255653006,265.34593985135,270.18130909623,275.10479273152,279.0168449367,284.10133754875,289.27848429833,293.3920895946,298.7385406747,304.18241953205,309.72550158209,314.12986807617,319.85422136322,325.68288889698,330.31417303802,336.33345109576,342.46241778116,348.70307193775,353.66170827405,360.10644584283,366.66862514012,371.88273569526,378.65951299923,385.5597827545,392.58579535013,398.16845391153,405.42423290482,412.81223314336,418.68251621245,426.31212065787,434.08075852776,440.25348482514,448.27617460765,456.44506096456,464.76280801961,471.37183998139,479.96159605313,488.70788228454,495.65741860341,504.6897280454,513.8866322474,523.2511306012],description:"Cassandra temperament, schismic variant, 13-limit, g=497.395"},catler:{frequencies:[261.6255653006,269.80136421624,279.06726965397,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,322.00069575458,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,418.60090448096,425.14154361347,436.04260883433,441.49314144476,457.84473927605,465.11211608996,483.00104363188,490.54793493862,523.2511306012],description:'Catler 24-tone JI from "Over and Under the 13 Limit", 1/1 3(3)'},cbrat19:{frequencies:[261.6255653006,272.05448646742,281.65887246066,291.7164960911,303.76422848609,314.23522436032,325.78124145721,339.14379232251,350.05979530932,364.18597952318,377.95660802413,389.93691761381,406.2330981776,420.87727247778,436.65546295526,454.14747622901,467.92430113657,486.684954898,506.27371414348,523.2511306012],description:"brats = -1 -1 -1 -1 -1 -1 -1 -1 0 3/7 390808/591947 1/2 1/2 1/2 1/2 1/4 0 0 -1"},ceb88f:{frequencies:[261.6255653006,275.30280934529,289.60851057007,304.80308899558,320.69584574771,337.31885569235,354.97473368038,373.44187862432,393.05647479461,413.57234190108,435.03089105397,457.82276134277,481.66189358475,506.59641128799],description:"88 cents steps with equal beating fifths"},ceb88s:{frequencies:[261.6255653006,275.27750547448,289.60710371138,304.74878776577,320.64207659236,337.32428016541,354.95189689869,373.45451504132,392.8755714351,413.39725679488,434.93759942207,457.54716438978,481.43806014345,506.51485544552,533.01280425363],description:"88 cents steps with equal beating sevenths"},ceb88t:{frequencies:[261.6255653006,275.20384442973,289.60910777612,304.54100616185,320.3823320487,337.18847246966,354.60902163481,373.09056856306,392.69773188536,413.02170471677,434.58350960486,457.45853552679,481.16983689269,506.32527343025,533.01280425363],description:"88 cents steps with equal beating 7/6 thirds"},cet105:{frequencies:[261.6255653006,277.98437592617,295.36606150822,313.83458334354,333.45789502888,354.30820661869,376.46223533368,400.00150378562,425.01262301844,451.58762919357,479.82430313337,509.82655042708,541.70476218406,575.57624366132],description:"Equal temperament with very good 6/5 and 13/8"},cet105a:{frequencies:[261.6255653006,278.09098920184,295.59266404146,314.19580976213,333.96974580612,354.98815389674,377.32935907335,401.07660961589,426.31839262878,453.14877154631,481.66772230429,511.98151233648,544.20310589723,578.45256778249,614.85751848055,653.5536209391,694.68506540856,738.40511604959,784.8766959018],description:"18th root of 3"},cet111:{frequencies:[261.6255653006,279.02234237845,297.57591715819,317.3632108372,338.46625752841,360.97255206362,384.97540137331,410.57431878206,437.87543474729,466.99193686517,498.04453913461,531.16197935691,566.48156495049,604.14972437838,644.32262592407,687.16682227215,732.8599410185,781.59142109591,833.56329335333,888.99103711409,948.10444554232,1011.14859670036,1078.38486510237,1150.09200534594,1226.56730779978,1308.127826503],description:'25th root of 5, Karlheinz Stockhausen in "Studie II" (1954)'},cet111a:{frequencies:[261.6255653006,279.09119608948,297.72279782842,317.59821198502,338.80046946076,361.41815173468,385.54574794778,411.2840547398,438.74060487161,468.03009995854,499.27490936609,532.60556349815,568.16130614457,606.09068659426,646.55215742719,689.71476370538,735.75882016749,784.8766959018],description:"17th root of 3. McLaren 'Microtonal Music', volume 1, track 8"},cet112:{frequencies:[261.6255653006,279.13807488234,297.82282461384,317.75828292395,339.02816520012,361.72179601836,385.93447726538,411.76789245756,439.33052439618,468.73812456399,500.11419015728,533.59048802364,569.30759588159,607.4155105893,648.07426630787,691.45461344743,737.73872000797,787.12095980595,839.80871352279,896.02324851892,956.00062766807,1019.99273078287,1088.26829265547,1161.11404316696,1238.83588500259,1321.76021726874,1410.23528064063,1504.63263477595,1605.34868446028,1712.8063948195,1827.45703443292,1949.78208984359,2080.29524321777,2219.54459500735,2368.11492276755,2526.63016208001,2695.75596930795,2876.20260183901,3068.72784518,3274.14022786751,3493.30234242079,3727.13457771193,3976.61891204907,4242.80307922676,4526.8048719912,4829.81697864182,5153.11189830808,5498.04733953642,5866.07179694692,6258.73081875602,6677.6733762505,7124.65885956048,7601.56430418436,8110.3925243186],description:"53rd root of 31. McLaren 'Microtonal Music', volume 4, track 16"},cet114:{frequencies:[261.6255653006,279.47933554513,298.55147893584,318.92513586406,340.68912750315,363.93832870511,388.77409689134,415.30469757995,443.64579124771,473.92093172942,506.26209616971,540.81027939262,577.71608583803,617.1404103833,659.25511382574,704.24379572788,752.30258557703,803.64098403142,858.48280642307,917.06712239825,979.64933665453,1046.5022612024],description:"21st root of 4"},cet115:{frequencies:[261.6255653006,279.68949451567,299.00064605783,319.64513593742,341.71502406609,365.30872604057,390.53145607553,417.49568846357,446.32166408632,477.13792869952,510.08190181294],description:"2nd root of 8/7. Werner Linden, Musiktheorie, 2003 no.1 midi 15.Eb=19.44544 Hz"},cet117:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82340237272,513.27277840175,549.0539690723,587.32953583482,628.27336308449,672.07145630843,718.92279942609,769.0402362475,822.65144744826,880,941.34642612261,1006.96941915374,1077.1671181081,1152.25842837255,1232.58448551457,1318.51022765149,1410.42601205207,1508.74940691646,1613.92711604023,1726.4369576214,1846.79005749489,1975.53320502451,2113.25127526858,2260.56991361642,2418.15841952625,2586.73271138559,2767.05861265008,2959.95538169309],description:"72nd root of 128, step = generator of Miracle"},cet118:{frequencies:[261.6255653006,280.22072913446,300.13755324878,321.46997343155,344.3186075731,368.79121945838,395.0032340925,423.07827792492,453.14877154631,485.35654007358,519.85349135637,556.8023269521,596.37732215892,638.76512932755,684.16567043124,732.79307276157,784.8766959018],description:"16th root of 3. McLaren 'Microtonal Music', volume 1, track 7"},cet126:{frequencies:[261.6255653006,281.50639381697,302.89795903081,325.91506125677,350.68122444233,377.32935907335,406.00247545366,436.85445118639,470.05085697597,505.76984518255,544.20310589723,585.55689566922,630.05314440547,677.93064638327,729.44634176744,784.8766959018],description:"15th root of 3. McLaren 'Microtonal Music', volume 1, track 6"},cet126a:{frequencies:[261.6255653006,281.42815779395,302.72962012827,325.64340264099,350.29154279212,376.80531512858,405.32593044476,436.00528786292,469.00678383895,504.50618240233,542.69254813034,583.76926541313,627.95510352048,675.48539363125,726.61327927927,781.61106458091,840.77166451082,904.41016494992,972.86550081423,1046.5022612024],description:"19th root of 4"},cet133:{frequencies:[261.6255653006,282.54488373859,305.13688994853,329.53533037111,355.88464567857,384.34082587483,415.07233376839,448.26110228542,484.10361152681,522.81205194575,564.61558053174,609.76167743791,658.5176110828,711.17202040031],description:"13th root of e"},cet140:{frequencies:[261.6255653006,283.72172983292,307.68407293041,333.67021037701,361.85106232365,392.4119924075,425.55401329039,461.49511402661,500.47170241421,542.7401414615,588.57845795114,638.28815062634,692.19618110881,750.65713728047,814.05554253056,882.80839491877,957.36792629418,1038.22454144983,1125.91008648826,1221.00130775733,1324.12366033919,1435.95544645068,1557.23222387914,1688.75170820144,1831.3789571042],description:"24th root of 7"},cet141:{frequencies:[261.6255653006,283.85429714132,307.97166902637,334.13814720468,362.52783176564,393.32961502355,426.7484383229,463.0066556268,502.34551296122,545.02675670673,591.33436279611,641.57644431325,696.08728968715,755.22958979995,819.39685117042,889.01601417107,964.55029369918,1046.5022612024],description:"17th root of 4"},cet146:{frequencies:[261.6255653006,284.69629445872,309.80145226022,337.12043918596,366.84847565362,399.19799705513,434.40017432099,472.70655602525,514.39088038704,559.75102196641,609.11112257023,662.82390755693,721.27320639821,784.8766959018],description:"13th root of 3, Bohlen-Pierce approximation"},cet148:{frequencies:[261.6255653006,284.92791524313,310.30575035912,337.94392545772,368.04376529149,400.82452432448,436.52498800167,475.40520223986,517.74838217475,563.86296895784,614.08486606944,668.77990486322,728.34649714081,793.21854485147,863.86858278563,940.81124699851,1024.60701225804,1115.86625569541,1215.25373699679,1323.49342609599,1441.37375222579,1569.7533918036],description:"21th root of 6, Moreno's C-21"},cet152:{frequencies:[261.6255653006,285.70808394691,312.0073878821,340.72733440875,372.0911362405,406.34196228781,443.74556186468,484.59214639302,529.19833545193,577.91081034511,631.10724720728,689.20039277289,752.64098693245,821.92125998587],description:"13th root of pi"},cet158:{frequencies:[261.6255653006,286.70831230381,314.19580976213,344.3186075731,377.32935907335,413.50494015483,453.14877154631,496.5933637384,544.20310589723,596.37732215892,653.5536209391,716.21156534988,784.8766959018],description:`12th root of 3, Moreno's A-12, see dissertation "Embedding Equal Pitch Spaces.`},cet159:{frequencies:[261.6255653006,286.82842069679,314.45911373416,344.75151869218,377.96204482418,414.37180231943,454.28897403052,498.05144066897,546.02962057131],description:"4e-th root of e. e-th root of e is highest x-th root of x"},cet160:{frequencies:[261.6255653006,286.95745534843,314.74210513576,345.21700307457,378.64263238751,415.30469757995,455.51656649021,499.62194879119,547.99783383788,601.05771297194,659.25511382574,723.0874768355,793.10040709753,869.89233791055,954.11964586525,1046.5022612024],description:'15th root of 4, Rudolf Escher in "The Long Christmas Dinner" (1960)'},cet160a:{frequencies:[261.6255653006,287.06963246392,314.98822873932,345.62201499981,379.23505183234,416.11708252541,456.58602635137,500.99072933585,549.71395617638,603.17569602575,661.83679400878,726.20290371434,796.8288589228,874.32344802967,959.35468153537,1052.65552131526,1155.03021091382,1267.36122959081,1390.6168610076,1525.85955590014,1674.2551187631,1837.08270650821,2015.74588766663,2211.78472029595,2426.88907720145,2662.91313932742,2921.89140956529,3206.0563044734,3517.85730085803,3859.98211320646,4235.37982185266,4647.28638964387,5099.2524155536,5595.17379976366,6139.32543031277,6736.39784717273,7391.53779523322,8110.3925243186],description:"37th root of 31. McLaren 'Microtonal Music', volume 2, track 7"},cet163:{frequencies:[261.6255653006,287.45276480522,315.82957660097,347.00769742017,381.26366336311,418.90131810157,460.25449359467,505.68997636603,555.61077020009,610.45965236807],description:'9th root of 7/3. Jeff Scott in "Quiet Moonlight" (2001)'},cet163a:{frequencies:[261.6255653006,287.41152361975,315.7389582221,346.85836204295,381.04491126651,418.60090448096,459.85843616195,505.18233428314,554.97338050766],description:"5th root of 8/5"},cet166:{frequencies:[261.6255653006,287.95619440582,316.93680165166,348.83408706747],description:"3rd root of 4/3"},cet173:{frequencies:[261.6255653006,289.10449173793,319.46957112932,353.02394045842,390.10257564198,431.07563562091,476.35215768611,526.38414093011,581.67105858963,642.7648443263,710.27540222401,784.8766959018],description:"11th root of 3, Moreno's A-11"},cet175:{frequencies:[261.6255653006,289.48414624674,320.30918244523,354.41654988346,392.15575985798,433.91353804458,480.11779720922,531.2420078798,587.8100594825,650.40162657281,719.65810898332,796.28920449429,881.08018137935,974.89992535123,1078.70983713651,1193.57370864212,1320.66858845324,1461.29686662697,1616.89961515233,1789.07135516847,1979.57639663535,2190.36691789568,2423.60297039629,2681.67459807517,2967.22638952895,3283.18448966052,3632.78664249769,4019.61535560076,4447.6346101102],description:"28th root of 7. McLaren 'Microtonal Music', volume 6, track 3"},cet175a:{frequencies:[261.6255653006,289.53628281337,320.42456924675,354.60807736883,392.4383479509,434.30442400296,480.63685362987,531.91211578736],description:"4th root of 3/2"},cet178:{frequencies:[261.6255653006,289.91935960089,321.27301846367,356.01745236555,394.51936464224,437.18511000944,484.46499093218,536.85800524663,594.91712478053,659.25511382574,730.5510078664,809.55727745129,897.10776473059,994.12650420781,1101.63744560301,1220.77528002516,1352.79740322961,1499.09721690784,1661.21879031979,1840.87318566558,2039.95650991293,2260.56991361642,2505.04181781964,2775.9524141353,3076.16094499002,3408.83584914421,3777.48827884202,4186.0090448096],description:"27th root of 16"},cet181:{frequencies:[261.6255653006,290.48091212946,322.51878830959,358.09020513941,397.58488163802,441.43552612833,490.12256936272,544.17943316245,604.19836236377,670.83693141722,744.82523718317,826.97390553231,918.18295398723,1019.45167961503,1131.88958971281,1256.72856920928,1395.33634826987],description:"6.625 tET. The 16/3 is the so-called Kidjel Ratio promoted by Maurice Kidjel in 1958"},cet182:{frequencies:[261.6255653006,290.70585738945,323.0184918031,358.92275093366,398.81785224951,443.14738973192,492.40425618917,547.1361382945,607.95159681319,675.52683545966,750.61321956915,834.04563048717,926.75174856904,1029.76237395443,1144.22286477952,1271.40590625444,1412.7256395721,1569.7533918036],description:"17th root of 6, Moreno's C-17"},cet195:{frequencies:[261.6255653006,292.81795587218,327.72927094457,366.80289667873,410.53509014096,459.48126579586,514.26306468681,575.57624366132],description:"7th root of 11/5"},cet21k:{frequencies:[261.6255653006,264.89588486686,268.20708342769,271.55967197054,274.95416787017,278.3910952928,281.87098404962,285.39437141672,288.96180112674,292.57382370898,296.23099657435,299.9338841014,303.68305772341,307.47909424051,311.32258299104,315.21411535185,319.1542918681,323.14372059172,327.18301717534,331.2728049672,335.41371510742,339.60638662537,343.85146653829,348.14960995112,352.50148015762,356.90774874273,361.36909568619,365.8862094675,370.45978717215,375.09053459917,379.77916637013,384.52640603933,389.33298620552,394.19964862491,399.1271443257,404.11623372391,409.16768674077,414.28228292154,419.46080913287,424.70406934596,430.01287031296,435.38803129329,440.83038178715,446.34076166346,451.92002128953,457.56902166224,463.28863454093,469.07974258197,474.94323947488,480.88003008033,486.89103056976,492.97716856672,499.13938329007,505.37862569893,511.69585863936,518.09205699304,524.56820782765],description:"scale of syntonic comma's, almost 56-tET"},cet222:{frequencies:[261.6255653006,297.3462123974,337.94392545772,384.08458333231,436.52498800167,496.12526073276,563.86296895784,640.8491384935,728.34649714081,827.79017883768,940.81124699851,1069.2634803114,1215.25373699679,1381.1765584523,1569.7533918036],description:"14th root of 6, Moreno's C-14"},cet233:{frequencies:[261.6255653006,299.41460910537,342.66187834083,392.15575985798,448.79850611373,513.6227001391,587.8100594825,672.71300106294,769.87926947615,881.08018137935,1008.34288220748,1153.98733901804,1320.66858845324,1511.42518780658,1729.7345489351,1979.57639663535,2265.50524176842,2592.73349533282,2967.22638952895,3395.81083571538,3886.29974647262,4447.6346101102],description:"21st root of 17. McLaren 'Microtonal Music', volume 2, track 15"},cet24:{frequencies:[261.6255653006,265.3411057651,269.1094134006,272.9312375932,276.80733837157,280.73848655813,284.72546392233,288.7690633361,292.87008893155,297.02935626086,301.24769245848,305.52593640563,309.86493889709,314.26556281043,318.72868327757,323.25518785885,327.84597671953,332.50196280875,337.22407204116,342.01324348101,346.8704295289,351.79659611118,356.79272287204,361.85980336835,366.9988452672,372.21087054633,377.49691569736,382.85803193188,388.29528539052,393.80975735501,399.40254446313,405.07475892685,410.82752875349,416.66199797006,422.57932685074,428.58069214763,434.66728732478,440.84032279551,447.10102616311,453.45064246502,459.89043442035,466.42168268106,473.04568608657,479.76376192214,486.57724618073,493.48749382879,500.49587907561,507.6037956467,514.81265706088,522.12389691142,529.53896915113],description:"least squares fit primes 2-13"},cet258:{frequencies:[261.6255653006,303.75687573192,352.67287219582,409.46613795376,475.40520223986,551.96287401486,640.8491384935,744.04935121924,863.86858278563,1002.98310468409,1164.50016626124,1352.0273979586,1569.7533918036],description:"12th root of 6, Moreno's C-12"},cet29:{frequencies:[51.91308719749,52.80006242627,53.70219231256,54.6197354699,55.55295587693,56.50212107609,57.46750349647,58.44938022184,59.44803272677,60.46374832519,61.49681820986,62.54753889218,63.61621194966,64.70314373878,65.80864697157,66.93303858176,68.07664129187,69.2397833384,70.42279815925,71.62602610967,72.84981213985,74.09450750046,75.36046944358,76.64806088248,77.95765225928,79.28961901721,80.64434345693,82.02221441105,83.42362735565,84.84898403373,86.29869452271,87.77317443616,89.27284697886,90.79814258634,92.34949851506,93.9273610926,95.53218267212,97.16442386902,98.82455316866,100.51304648023,102.230389586,103.97707482641,105.75360353451,107.56048560902,109.39823902877,111.26739251837,113.16848194039,115.10205294491,117.06866050489,119.06886838764,121.10325205621,123.17239474253,125.2768903313,127.4173428542,129.59436591466,131.80858584574,134.06063743615,136.35116706905,138.68083217153,141.05030058861,143.46025402018,145.91138336926,148.40439215824,150.93999592972,153.51892156515,156.14191102559,158.8097162888,161.52310306741,164.28285015685,167.08974869373,169.94460622727,172.84824120887,175.80148703892,178.80519135714,181.8602162858,184.96743760879,188.12774927869,191.34205731671,194.61128429254,197.93636853869,201.31826325695,204.75794142387,208.2563891515,211.8146105632,215.43362693858,219.11447574094,222.85821595641,226.66592086774,230.53868336123,234.47761499594,238.48384494529,242.55852580808,246.70282574354,250.91793424736,255.20506113867,259.56543598745],description:"95th root of 5"},cet39:{frequencies:[261.6255653006,267.55763511324,273.62420803617,279.82833216202,286.17312954462,292.66178817784,299.29756995616,306.08381073387,313.02392200207,320.12139075456,327.37978859613,334.80276256646,342.39404424694,350.15744982839,358.09687996112,366.21632994368,374.51987945827,383.01170275779,391.6960687417,400.57734310204,409.65998815178,418.94857448076,428.44776921301,438.16234766073,448.09719341103,458.25729813392,468.64777462103,479.27384364987,490.14084702027,501.25424765147,512.61963232837,524.24271148185,536.12933410494,548.28547272565,560.71723832061,573.43088042607,586.43278689221,599.72950056876,613.32770249519,627.23422858353,641.45606974252,656.00037539202,670.87445318194,686.08578808043,701.64202314362,717.55097860059,733.82065199545,750.45921787297,767.47504913108,784.8766959018],description:"49th root of 3"},cet39a:{frequencies:[261.6255653006,267.54999903763,273.60843178624,279.80421399945,286.14029787289,292.61969147246,299.24597805224,306.02231493662,312.9519192023,320.03862308027,327.28580327671,334.69690040195,342.27601296361,350.02675229311,357.95279806627,366.05853356918,374.34782106107,382.82459589435,391.49354592099,400.35880176332,409.42457221564,418.6958708581,428.17711532294,437.87280684605,447.78830736843,457.9283414747,468.29772316218,478.90218693807,489.74678566745,500.83666784082,512.17796641877,523.77608535691],description:"31-tET with least squares octave; equal weight to 5/4, 3/2, 7/4 and 2/1"},cet39b:{frequencies:[261.6255653006,267.54443554965,273.59736903996,279.78708267123,286.11699418435,292.58994480246,299.2095086599,305.97865699219,312.90112748358,319.98002733127,327.21907624411,334.6220906301,342.19239338178,349.93416455252,357.85087908811,365.94690831825,374.22588619981,382.6921630398,391.3502022376,400.20389001205,409.25811505631,418.51694141988,427.98548149913,437.66798531163,447.56979919346,457.69536764001,468.05001127562,478.63918904181,489.46765396188,500.54138513107,511.86535306771,523.4458104663],description:"31-tET with l.s. 8/7, 5/4, 4/3, 3/2, 8/5, 7/4, 2/1; equal weights"},cet39c:{frequencies:[261.6255653006,267.52919373065,273.56603860918,279.73910598956,286.05147140959,292.50627485027,299.10673210371,305.85612987468,312.75782903301,319.8152662872,327.03195662575,334.41149334841,341.95754947331,349.67388372612,357.56433846376,365.63284274659,373.88341429498,382.32016148985,390.94728541851,399.7690842757,408.78994578219,418.01436575232,427.44693588739,437.09235368188,446.9554220819,457.04105241293,467.35426952494,477.9002035559,488.68410850494,499.71135422907,510.98743222773,522.51795602393],description:"10th root of 5/4"},cet39d:{frequencies:[261.6255653006,267.55786538889,273.62467903016,279.82905628857,286.1741163878,292.66304927922,299.29911724561,306.08565654127,313.02607906932,320.12387409698,327.38261000985,334.80593610581,342.39758442978,350.16137164992,358.1012009765,366.22106412416,374.52504331879,383.0173133498,391.70214366901,400.58390053708,409.66704921865,418.95615622721,428.45589162089,438.17103135034,448.1064596598,458.26717154264,468.65827525256,479.28499487175,490.15267293726,501.26677312698,512.63288300643,524.25671683791],description:"31-tET with l.s. 5/4, 3/2, 7/4"},cet39e:{frequencies:[261.6255653006,267.56053134626,273.63013029147,279.83741943955,286.18551905392,292.67762672082,299.3170076044,306.10700082387,313.05102655064,320.15257723818,327.41522444303,334.84262641603,342.43851674365,350.20672153383,358.15114775562,366.27579142084],description:"15th root of 7/5, X.J. Scott"},cet44:{frequencies:[261.6255653006,268.36512159638,275.27829096782,282.369545742,289.64347345451,297.10477981732,304.75829176301,312.60896056742,320.66186505284,328.92221487359,337.3953538863,346.08676360706,355.00206675748,364.14703090225,373.52757218034,383.14975913231,393.01981662619,403.14412988459,413.52924861543,424.18189124916,435.1089492851,446.31749174973,457.81476976988,469.60822126365,481.70547575226,494.11435929576,506.84289955596,519.89933098975,533.2921001762],description:"least maximum error of 10.0911 cents to a set of 11-limit consonances"},cet45:{frequencies:[261.6255653006,268.55812265554,275.67437899809,282.97903853108,290.47742047479,298.17449463282,306.07552595385,314.18591889722,322.51122112969,331.05693609414,339.82928674186,348.83408706747],description:"11th root of 4/3"},cet45a:{frequencies:[261.6255653006,268.48547646737,275.52525683447,282.74962263341,290.1634137569,297.77159700127,305.57926939395,313.59166160814,321.8141414671,330.2522175402,338.9115428334,347.79791857637,356.91729810903,366.27579142084],description:"13th root of 7/5, X.J. Scott"},cet49:{frequencies:[261.6255653006,269.10883825956,276.80615518671,284.72363837915,292.86758524998,301.24447333711,309.86096545541,318.72391499615,327.84037137809,337.21758565441,346.86301628009,356.78433504421,366.98943317194,377.48642760107,388.28366743806,399.38974059878,410.81348063915,422.56397378117,434.65056613995,447.08287115744,459.87077724873,473.02445566714,486.55436859423,500.47127746122,514.78625150841,529.51067658945],description:"least squares fit primes 3-13"},cet49a:{frequencies:[261.6255653006,269.10939785623,276.80730639354,284.72541458317,292.8700212642,301.24760545475,309.86483150611,318.72855440416,327.84582522255,337.22389673177,346.87022916874,356.7924961714,366.99859088307,377.49663223147,388.29497138724,399.40219840734,410.82714906841,422.57891189558,434.66683539241,447.10053547759,459.8899031344,473.04511227892,486.57662785344,500.49521415122,514.81194337949,529.53820446742],description:"least squares fit primes 5-13"},cet49b:{frequencies:[261.6255653006,269.11089011973,276.81037630182,284.73015118141,292.87651740119,301.25595792767,309.87514121046,318.74092648901,327.86036925135,337.24072684885,346.88946427176,356.81426008988,367.0230125633,377.52384592787,388.3251168606,399.43542112995,410.86360043647,422.61874944911,434.71022304287,447.14764374346,459.94090938509,473.10020098719,486.63599085665,500.55905092174,514.88046130456,529.61161913871],description:"least squares fit primes 3-11"},cet51:{frequencies:[261.6255653006,269.45730810595,277.52349357863,285.8311397433,294.38747470873,303.19994295657,312.27621181854,321.62417814738,331.25197518754,341.1679796516,351.38081900843,361.89937898954,372.73281132023,383.89054168203,395.38227791356,407.21801845694,419.40806105693,431.96301172054,444.89379394488,458.21165822114,471.92819182319,486.05532888913,500.60536080461,515.59094689708,531.0251223827,546.92132188791,563.29337300176,580.1555203085,597.52243480304,615.40922665547,633.83145835774,652.80515826392,672.34683453572,692.47348950549,713.20263446921,734.55230492227,756.54107625132,779.18807989593,802.51301999392,826.53619052513,851.2784929682,876.7614544861,903.00724665589,930.0387047592,957.87934765022,986.55339821839,1016.08580446361,1046.5022612024],description:"47nd root of 4"},cet53:{frequencies:[261.6255653006,269.81714175785,278.26519897904,286.97776745533,295.963129115,305.22982618403],description:"5th root of 7/6, X.J. Scott"},cet54:{frequencies:[261.6255653006,269.96706985652,278.57452968396,287.45642599351,296.6215054241,306.0787984682,315.83762188043,325.9075894649,336.29862154621,347.0209567468,358.08515411748,369.5021153806,381.28308783765,393.43967739203,405.98385998242,418.92799580061,432.28483186346,446.06752886518,460.28966468743,474.96525012045,490.10874266572,505.73506369981,521.85960157932,538.49824405725,555.66738252045,573.38393096839,591.66534267587,610.52963091344,629.99537269573,650.08174791487,670.80854445602,692.19618110881,714.26572768264,737.03893002078,760.53821452531,784.78673539949,809.80838082331,835.62780061242,862.2704354823,889.76252234217,918.13114956434,947.40426420901,977.61070438283,1008.78022764847,1040.94354635268,1074.13233401713,1108.37929206026,1143.71815851921,1180.1837471134,1217.81198154093,1256.63993812708,1296.7058535394,1338.04920533515,1380.71072249048,1424.73243255855,1470.15770307252,1517.03129303135,1565.39936221354,1615.30956841503,1666.81108016015,1719.95463363144,1774.79258265191,1831.3789571042],description:"62nd root of 7"},cet54a:{frequencies:[36.70809598968,37.88151295543,39.09243955873,40.34207507177,41.63165640381,42.96246070241,44.33580570763,45.75305128262,47.21560103286,48.72490261351,50.28245077394,51.88978777214,53.5485051662,55.26024570942,57.02670371,58.84962859429,60.73082539186,62.67215683218,64.67554556259,66.74297456936,68.87649134796,71.07820847085,73.35030604133,75.69503428946,78.11471406483,80.61174171737,83.18858976192,85.8478097501,88.59203530858,91.42398271579,94.34645661434,97.36235078878,100.47465152683,103.6864411753,107.00089881505,110.42130694669,113.95105240089,117.59363027227,121.3526480812,125.23182656372,129.23500749643,133.36615476182,137.62935895249,142.02884224198,146.56895930934,151.25420649717,156.08922305851,161.0787965455,166.22786851013,171.54153558634,177.0250602084,182.68387207023,188.52357443227,194.5499507934,200.76896615752,207.18677957808,213.80974586608,220.64442297146,227.69757979185,234.97619765489,242.48748500016,250.23887937817,258.23805608937,266.49293732345,275.01169389411,283.8027624226,292.87484767725,302.23693268442,311.89828942495,321.86848086456,332.15738106504,342.77517792247,353.73238500089,365.03985405114,376.70877738729,388.75071142436,401.17757988308,414.00168763976,427.23573537822,440.89282237095,454.98647402737,469.53064564449,484.53973861665,500.02861758376,516.01261368641,532.50755680773,549.52977996323,567.09613827221,585.22402902787,603.93139550692,623.23676470498,643.1592524742,663.71858572717,684.9351219702,706.82987354375,729.42451222373,752.74141479803,776.80366927173,801.63510168485,827.26030448295,853.70464190233,880.99430375232],description:"101st root of 24"},cet54b:{frequencies:[261.6255653006,269.96795403263,278.5763544202,287.45924871019,296.62539133416,306.08381073387,315.84382837889,325.91506125677,336.30743300953,347.03118371184,358.09687996112,369.51542742358,381.29807310848,393.45642905887,406.00247545366,418.94857448076,432.30748251802,446.09236270275,460.31680056078,474.99480683953,490.14084702027,505.76984518255,521.89720128632,538.53880634615,555.71105808945,573.43088042607,591.71572697754,610.58361784146,630.05314440547,650.14349087612,670.87445318194,692.26646247798,714.3405894063,737.11858847932,760.62290389144,784.8766959018],description:"35th root of 3 or shrunk 22-tET"},cet55:{frequencies:[261.6255653006,270.01349691657,278.67035254505,287.60475577316,296.82560168354,306.34207552634,316.16365537714,326.30012507123,336.76157646737,347.55843063202,358.70144085484,370.20170518484,382.07067969055,394.32018111076,406.96241165943,420.00996255663,433.47583121124,447.37342422819,461.71658555081,476.51960046685,491.79721226214,507.56463983627,523.83758122386,540.63224654693,557.96536270557,575.85419620437,594.31655714751,613.37083662462,633.03601203256,653.33166919923,674.2780257851,695.8959359612,718.20693418482,741.23324143097,764.99779551626,789.52425640623,814.83705588084,840.96140460432,867.92332151557,895.74966491622,924.46813868508,954.10735043232,984.69681977767,1016.26701863443,1048.84937826003,1082.47635523452,1117.18144085251,1152.9992001672,1189.96531328939,1228.1165836432,1267.49101522141,1308.127826503],description:"51th root of 5"},cet55a:{frequencies:[261.6255653006,270.1234331478,278.89732210685,287.95619440582,297.30930820811,306.96622255393,316.93680165166,327.23123542864,337.86004496999,348.83408706747],description:"9th root of 4/3"},cet63:{frequencies:[261.6255653006,271.38398887572,281.50639381697,292.00635633712,302.89795903081,314.19580976213,325.91506125677,338.07143142496,350.68122444233,363.76135261718,377.32935907335,391.4034412791,406.00247545366,421.14604188408,436.85445118639,453.14877154631,470.05085697597,487.58337662462,505.76984518255,524.63465441916,544.20310589723,564.50144490757,585.55689566922,607.39769784277,630.05314440547,653.5536209391,677.93064638327,703.21691530872,729.44634176744,756.65410477833,784.8766959018],description:"30th root of 3 or stretched 19-tET"},cet63a:{frequencies:[261.6255653006,271.37251603396,281.48259278098,291.96932561311,302.84674360983,314.12940356828,325.83240291761,337.9714015469,350.5626427598,363.62297711023,377.1698766242,391.22147055517,405.79656146784,420.91465242294,436.59597307447,452.86150935499,469.73302118774,487.23308701689,505.38512383853,524.21342105699,543.74317298677,564.00051582303,585.01254970054,606.80739415229,629.41421305643,652.8632568014,677.18590276436,702.41470135475,728.58340348685,755.72702964881,783.88190097186,813.08569174348,843.37747981977,874.79780396885,907.38869808556,941.19377721109,976.25827622702,1012.62911525602,1050.35496244617,1089.48630538731,1130.07549372248,1172.17684627813,1215.84669925421,1261.14348767523,1308.127826503],description:"44th root of 5"},cet67:{frequencies:[261.6255653006,271.89449162354,282.56647812794,293.65734341902,305.18353207836,317.16212905639,329.61089159214,342.54827390456,355.99345454941,369.96636271272,384.48771622149,399.57903967613,415.26270466472,431.56196087069,448.50096908674],description:"14th root of 12/7, X.J. Scott"},cet70:{frequencies:[261.6255653006,272.49048247121,283.80660334964,295.59266404146,307.86818385681,320.65348759128,333.96974580612,347.83900623503,362.28423824861,377.32935907335,392.99928119148,409.31995166322,426.31839262878,444.02275580482,462.46235461904,481.66772230429,501.67065719504,522.50428685614,544.20310589723,566.80304433509,590.34152430617,614.85751848055,640.39162865951,666.98613212152,694.68506540856,723.53429383412,753.58158307649,784.8766959018],description:"27th root of 3"},cet78:{frequencies:[261.6255653006,273.68177330057,286.29355449603,299.48651076576,313.28742377221,327.72430932822,342.82647426905,358.62457594514,375.15068445646,392.4383479509],description:"9th root of 3/2"},cet79:{frequencies:[261.6255653006,273.87994580863,286.70831230381,300.13755324878,314.19580976213,328.91254817579,344.3186075731,360.44627930254,377.32935907335,395.0032340925,413.50494015483,432.87325713404,453.14877154631,474.3739811962,496.5933637384,519.85349135637,544.20310589723,569.69324454502,596.37732215892,624.31126899512,653.5536209391,684.16567043124,716.21156534988,749.7584744066,784.8766959018],description:"24th root of 3, James Heffernan (1906)."},cet80:{frequencies:[261.6255653006,273.93704112612,286.82786567404,300.32530171503,314.4578949408,329.25553433534,344.74951538696,360.97260627516,377.95911717185,395.74497280393,414.36778843034,433.8669493945,454.28369442026,475.66120282759,498.04439817054,521.48118104407,546.02084308555,571.71528316122,598.61884237431,626.7884189909,656.28358877393,687.16673097983,719.50316028422,753.36126491573,788.81265129014,825.93229545055,864.79870163404,905.49406830005,948.10446197172,992.7199992577,1039.43503743958,1088.34837402783,1139.56345570838,1193.18859712177,1249.33720993748,1308.127826503],description:"35th root of 5"},cet84:{frequencies:[261.6255653006,274.70153691096,288.43104187674,302.84674360983,317.98293803021,333.87563322966,350.5626427598,368.08366429725,386.48038152577,405.79656146784,426.0781586093,447.37342422819,469.73302118774,493.21014446673,517.86064472263,543.74317298677,570.91930267857,599.45368763079,629.41421305643,660.87215705217,693.9023601738,728.58340348685,764.99779551626,803.23216389999,843.37747981977,885.52924725223,929.78774807537,976.25827622702,1025.05138820617,1076.28316609431,1130.07549372248,1186.55634664103,1245.86008938569,1308.127826503],description:"33rd root of 5"},cet87:{frequencies:[261.6255653006,275.05808287728,289.18026151691,304.0275068203,319.63704721237,336.04802279017,353.30157737897,371.44097305523,390.51169339433,410.56155044631,431.64081781968,453.80235066263,477.10170997643,501.59731726833,527.35059397819,554.42610593952],description:"Least-squares stretched ET to telephone dial tones. 1/1=697 Hz"},cet88:{frequencies:[261.6255653006,275.26799068863,289.6217982776,304.72408298441,320.61387403473,337.33223582731,354.92237405774,373.42974737602,392.90218486657,413.39000965417,434.94616895528,457.62637091093,481.48922855473,506.59641128799,533.01280425363],description:"88 cents steps by Gary Morrison"},cet88_appr:{frequencies:[261.6255653006,275.62199471997,290.69507255622,305.22982618403,320.49131749323,336.37572681506,354.37113606854,373.75080757229,392.4383479509,413.43299207996,436.04260883433,457.84473927605,482.33849075995,504.56359022259,531.55670410281,560.62621135843,588.65752192635,620.14948811994,654.0639132515,686.76710891407,723.50773613993,763.07456546008,801.22829373309],description:"88 cents scale approximated"},cet88b:{frequencies:[261.6255653006,275.26385669298,289.61326650562,304.7105300898,320.59498481995,337.30729585456,354.89100872976,373.39113880701,392.85588995712,413.33509311257,434.8821088097,457.55209870333,481.40413163568,506.49927024418,532.9029023296],description:"87.9745 cents steps. Least squares of 7/6, 11/9, 10/7, 3/2, 7/4."},cet88bis:{frequencies:[261.6255653006,289.53272725508,320.41669955092,337.26306895804,373.23835706057,392.86190344834,434.76782633734,457.62637091093],description:"Bistep approximation of 2212121 mode in 7/4 to 11/9 9/7 10/7 3/2"},cet88bm:{frequencies:[261.6255653006,275.22889829239,289.53954239223,304.59427454323,320.43178392135,337.09277136281,354.62005396115,373.05867644715,392.45602022512,412.86193859025,434.32887139488,456.91198653787,480.66932039657,505.66192697453,531.95403480429],description:"87.75412 cents steps. Minimal highest deviation for 7/6, 11/9, 10/7, 3/2, 7/4."},cet88c:{frequencies:[261.6255653006,275.37188725148,289.84046967782,305.06925821769,321.09819727018,337.96933026971,355.72690383892,374.4174952616,394.09012940783,414.79640018179,436.59061916193,459.52995194191,483.67455974508,509.0877727469,535.83624905561,563.99013984227,593.62329144382,624.813430743,657.64235771869,692.19618110881,728.56553457307,766.84580121693,807.13738838693,849.54597972796,894.18279699007,941.16492045434,990.61558284509,1042.66447461031,1097.44811755542,1155.11020756021,1215.8019705522,1279.68259818323,1346.91964745566,1417.68945580607,1492.17764912727,1570.57960775359,1653.10095047047,1739.95812689496,1831.3789571042],description:"38th root of 7. McLaren 'Microtonal Music', volume 3, track 7"},cet89:{frequencies:[261.6255653006,275.56724848068,290.25186566903,305.71900507847,322.01036982349,339.16988002511,357.2437980159,376.28084921395,396.33236207144,417.45239374596,439.69788420361,463.12880499146,487.80833148705,513.80299757552,541.1828853206,570.0218080747,600.39752248465,632.39191886931,666.09125466774,701.58637981228,738.97299766656,778.35189934333,819.82925103406,863.51687139942,909.53255273344,958.00034936337,1009.05093129669,1062.82192563509,1119.45831186524,1179.11277682321,1241.94614996535,1308.127826503],description:"31st root of 5. McLaren 'Microtonal Music', volume 2, track 22"},cet90:{frequencies:[261.6255653006,275.62199471997,290.36720431405,305.90125228146,322.26633935092,339.50692625527,357.66984706396,376.80444887746,396.96271256675,418.19939952297,440.572208006,464.1419130862,488.97255163391,515.13157534193,542.69005603758,571.72285881831,602.3088534069,634.53113933145],description:"Scale with limma steps"},cet93:{frequencies:[261.6255653006,275.99488223824,291.15340824655,307.14448922429,324.01384989472,341.80973194459,360.58302103444,380.38739950036,401.27949808494,423.31905787312],description:"Tuning used in John Chowning's STRIA, 9th root of Phi"},cet98:{frequencies:[261.6255653006,276.83245825991,292.92324815749,309.94930780463,327.96500300935,347.02785219778,367.1987248383,388.54202015806,411.12588832951],description:"8th root of 11/7, X.J. Scott"},chahargah:{frequencies:[261.6255653006,277.18263097687,283.66146785671,311.12698372208,326.97270111135,348.82502010853,367.86341164695,392.44854854484,415.30469757995,425.01198472693,466.16376151809,493.88330125613,523.2511306012],description:"Chahargah in C"},chahargah2:{frequencies:[261.6255653006,283.66146785671,327.729041887,348.82502010853,392.44854854484,425.01198472693,493.88330125613,523.2511306012],description:"Dastgah Chahargah in C, Mohammad Reza Gharib"},chalmers:{frequencies:[261.6255653006,274.70684356563,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,515.07533168556,523.2511306012],description:"Chalmers' 19-tone with more hexanies than Perrett's Tierce-Tone"},chalmers_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,313.95067836072,327.03195662575,336.37572681506,343.38355445704,376.74081403286,384.42940207435,392.4383479509,400.61414686654,408.78994578219,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"7-limit figurative scale, Chalmers '96 Adnexed S&H decads"},chalmers_19:{frequencies:[261.6255653006,269.10058145205,290.69507255622,294.32876096318,305.22982618403,313.95067836072,336.37572681506,348.83408706747,356.10146388137,363.36884069528,376.74081403286,384.42940207435,392.4383479509,406.97310157871,436.04260883433,448.50096908674,465.11211608996,470.92601754108,508.71637697339,523.2511306012],description:"7-limit figurative scale. Reversed S&H decads"},chalmers_csurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,315.80837468238,323.38635505005,348.83408706747,357.38803216938,383.0466618906,392.4383479509,423.31690179539,433.47765231178,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Combined Surd Scale, combination of Surd and Inverted Surd, JHC, 26-6-97"},chalmers_isurd:{frequencies:[261.6255653006,273.35108123154,287.04667286017,303.37994773979,323.38635505005,348.83408706747,383.0466618906,433.47765231178,523.2511306012],description:"Inverted Surd Scale, of the form 4/(SQRT(N)+1, JHC, 26-6-97"},chalmers_ji1:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,466.02053819169,490.54793493862,523.2511306012],description:"Based loosely on Wronski's and similar JI scales, May 2, 1997."},chalmers_ji3:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"15 16 17 18 19 20 21 on 1/1, 15-20 on 3/2, May 2, 1997. See other scales"},chalmers_ji4:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,496.11959049595,523.2511306012],description:"15 16 17 18 19 20 on 1/1, same on 4/3, + 16/15 on 16/9"},chalmers_surd:{frequencies:[261.6255653006,315.80837468238,357.38803216938,392.4383479509,423.31690179539,451.2357321491,476.91154755397,500.80604115761,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/2, JHC, 26-6-97"},chalmers_surd2:{frequencies:[261.6255653006,272.2395613933,282.33485096279,291.98077704337,301.23248980765,310.13469895524,318.72425558532,327.03195662575,335.08385052998,342.90220911983,350.50624086893,357.91266581346,365.13613061818,372.18956061116,379.08442465499,385.8309605564,392.4383479509,398.91485744029,405.26796981327,411.50448329997,417.63058822561,423.65195171798,429.57376586736,435.40081471708,441.13750301549,446.78791303515,452.35581962987,457.84473927605,463.2579384726,468.59846621725,473.86917438523,479.07273156015,484.21164154672,489.28825377326,494.3047826718,499.26331035461,504.16580309972,509.01411882861,513.81001953884,518.55516185524,523.2511306012],description:"Surd Scale, Surds of the form (SQRT(N)+1)/4"},chalung:{frequencies:[261.6255653006,328.09251713275,362.03316295439,390.31715077734,479.41117101029,527.4935758042,647.70012555753,728.30917696308,823.06004869243,961.65052057178,1054.9871516084,1301.05663342451],description:'Tuning of chalung from Tasikmalaya. "slendroid". 1/1=185 Hz'},chaumont:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.49749487796,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.40109831725,489.02683710225,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 1st interpretation"},chaumont2:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.30531842668,327.84547867349,349.70184487387,366.99801003998,391.46454285105,410.8262805401,438.2147004401,465.11211608996,490.54793493862,523.2511306012],description:"Lambert Chaumont organ temperament (1695), 2nd interpretation"},chimes:{frequencies:[261.6255653006,288.69027895239,130.8127826503,144.34513947619],description:"Heavenly Chimes"},chimes_peck:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,1046.5022612024],description:"Kris Peck, 9-tone windchime tuning. TL 7-3-2001"},chin_12:{frequencies:[261.6255653006,277.05457499359,293.57996645301,310.53449241474,329.24697610111,347.79893712036,368.97000115401,391.76907592069,413.1274313058,439.00991514661,462.11551390967,491.43599249807,523.2511306012],description:"Chinese scale, 4th cent."},chin_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,441.49314144476,523.2511306012],description:"Chinese pentatonic from Zhou period"},chin_60:{frequencies:[261.6255653006,262.17244551937,265.19499215873,268.81311753311,272.48060600886,276.1981310001,279.38237857051,283.19406633357,287.05775848811,290.97416342694,294.32876096318,294.94400091442,298.34436617857,302.41475692242,306.54068145351,310.72289706448,314.30517589183,318.59332496145,322.93997797627,327.34593352805,331.11985608357,331.812000697,335.63741195089,340.21660119759,344.85826629043,349.56326086722,353.59332287831,358.41749022331,363.30747486009,368.26417485089,372.50983809402,373.28850041093,377.59208844475,382.74367817547,387.96555142985,392.4383479509,393.25866808247,397.79248823809,403.21967609811,408.72090880899,414.29719629306,419.07356785577,424.79110016094,430.58663751693,436.46124492224,441.49314144476,442.41600115048,447.51654926786,453.62213515688,459.81102195042,466.08434536373,471.45776383774,477.8899872033,484.40996672226,491.01890004663,496.67978412536,497.7180007967,503.45611792634,510.32490448905,517.28740216504,523.2511306012],description:'Chinese scale of fifths (the 60 lu")'},chin_7:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Chinese heptatonic scale and tritriadic of 64:81:96 triad"},chin_bianzhong:{frequencies:[261.6255653006,277.82379926216,312.56802260838,375.1593523779,420.13030572059,469.40618689596,506.59641128799,563.72967895209,627.66881138238,764.75812197709,849.53311813274,949.1724262561,1225.95732655636],description:"Pitches of Bianzhong bells (Xinyang). 1/1=b, Liang Mingyue, 1975."},chin_bianzhong2a:{frequencies:[261.6255653006,284.81073476233,312.56802260838,372.56793743951,413.39000965417,447.94973572445,491.60634075178,562.75365576207,652.05945856061,695.63805470995,863.88355261715,960.75607282217,1173.30283584026],description:"A-tones (GU) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=d#=619 Hz"},chin_bianzhong2b:{frequencies:[261.6255653006,279.59231184543,312.74738729016,375.37536096215,418.43048063126,468.86028020615,505.12945327459,562.08698385796,624.42058858709,762.97988553915,849.53425657971,936.08862980659,1215.37624187632],description:"B-tones (SUI) of 13 Xinyang bells (Ma Cheng-Yuan) 1/1=b+=506.6 Hz"},chin_bianzhong3:{frequencies:[261.6255653006,508.3551866238,542.32970395878,608.04166718582,619.02750937577,673.88551872153,729.80120031671,739.56153452917,812.57643344187,881.52624580654,911.03313298042,978.11461117351,982.0774855146,1059.88575280263,1092.20381072382,1163.18085489566,1213.27682870749,1331.52122774489,1483.40111876828,1542.82606951623,1645.93659621657,1649.74391394557,1818.91159982256,2044.01922018919,2273.22753490632,2362.92760489328,2776.13057951436],description:"A and B-tones of 13 Xinyang bells (Ma Cheng-Yuan) abs. pitches wrt middle-C"},chin_bronze:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:`Scale found on ancient Chinese bronze instrument 3rd c.BC & "Scholar's Lute"`},chin_chime:{frequencies:[261.6255653006,248.6592656401,341.74499057264,392.56190849927,548.78974538591,648.86582834888,714.36935367713,785.57745330134,889.7110417619,886.88898199546,992.62825668803,1044.08711871947,1326.14827969763],description:"Pitches of 12 stone chimes, F. Kuttner, 1951, ROMA Toronto. %1=b4"},chin_ching:{frequencies:[261.6255653006,276.1981310001,294.32876096318,310.72289706448,331.11985608357,349.56326086722,368.26417485089,392.4383479509,414.29719629306,441.49314144476,466.08434536373,496.67978412536,524.34489103873],description:"Scale of Ching Fang, c.45 BC. Pyth.steps 0 1 2 3 4 5 47 48 49 50 51 52 53"},chin_di:{frequencies:[261.6255653006,298.70635408336,316.56004827153,360.50766037677,409.94872043165,433.75364775074,527.37121036213],description:"Chinese di scale"},chin_di2:{frequencies:[261.6255653006,289.95657583698,318.21537073485,338.89464890898,383.48501130814,436.9606979923,494.73987775324,522.04355935974],description:"Observed tuning from Chinese flute dizi, Helmholtz/Ellis p. 518, nr.103"},chin_huang:{frequencies:[261.6255653006,331.11985608357,392.4383479509,441.49314144476,523.2511306012,588.65752192635,662.23971216714],description:"Huang Zhong qin tuning"},"chin_liu-an":{frequencies:[261.6255653006,278.83777354406,294.32876096318,311.64221749042,331.11985608357,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067],description:'Scale of Liu An, in: "Huai Nan Tzu", c.122 BC, 1st known corr. to Pyth. scale'},chin_lu:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,495.71159741166,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Huai Nan zi, Han era. P\xEF\xBF\xBDre Amiot 1780, Kurt Reinhard"},chin_lu2:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Chinese L\xEF\xBF\xBD (Lushi chunqiu, by Lu Buwei). Mingyue: Music of the billion, p.67"},chin_lu3:{frequencies:[261.6255653006,277.34278419245,293.66476791741,310.58830860439,329.24697610111,347.81902735497,369.14054089803,391.76907592069,413.1512951712,439.23819834286,462.1422075194,491.60634075178,523.2511306012],description:"Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, reported in Sung Shu (500 AD)"},chin_lu3a:{frequencies:[261.6255653006,277.06033146978,293.58830182213,310.53780743131,329.25144446584,347.79484055318,368.74579520635,391.78066943209,413.13681807919,438.99947255393,462.1072190611,491.17907538715,523.2511306012],description:`Chinese L\xEF\xBF\xBD scale by Ho Ch'\xEF\xBF\xBDng-T'ien, calc. basis is "big number" 177147`},chin_lu4:{frequencies:[261.6255653006,276.78521684908,293.5444075184,310.55356739316,329.35741152087,348.44172229085,369.5396750577,391.9150968203,414.62425518576,439.72952246257,465.20924434298,493.37740286979,523.2511306012],description:'Chinese L\xEF\xBF\xBD "749-Temperament"'},chin_lu5:{frequencies:[261.6255653006,277.35401920913,293.41471131112,311.37240624271,329.40299530711,349.20610523279,369.80535913035,392.03738806826,415.16320853113,440.12206674667,466.08434536373,494.10449271367,522.71643616375],description:"Chinese L\xEF\xBF\xBD scale by Ch'ien Lo-Chih, c.450 AD Pyth.steps 0 154 255 103 204 etc."},chin_lusheng:{frequencies:[261.6255653006,316.38258506467,348.82502010853,389.28772571905,466.97226207056,520.53801357752],description:"Observed tuning of a small Lusheng, 1/1=d, OdC '97"},chin_pan:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Pan Huai-su pure system, in: Sin-Yan Shen, 1991"},chin_pipa:{frequencies:[261.6255653006,284.4818984792,320.42873367481,380.17671965621,433.44136952667,521.74210224793],description:"Observed tuning from Chinese balloon lute p'i-p'a, Helmholtz/Ellis p. 518, nr.109"},chin_sheng:{frequencies:[261.6255653006,295.36595061166,318.03161540472,348.82502010853,395.40657391157,442.03793673691,477.05982293263,522.94897617031],description:"Observed tuning from Chinese sheng or mouth organ, Helmholtz/Ellis p. 518, nr.105"},chin_sientsu:{frequencies:[261.6255653006,291.80478157373,326.97270111135,392.44854854484,438.22451411849,523.2511306012],description:"Observed tuning from Chinese tamboura sienzi, Helmholtz/Ellis p. 518, nr.108"},chin_sona:{frequencies:[261.6255653006,284.4818984792,310.58830860439,337.33223582731,377.98706287655,418.43499793376,469.94877954106,528.10941333272],description:"Observed tuning from Chinese oboe (so-na), Helmholtz/Ellis p. 518, nr.104"},"chin_wang-po":{frequencies:[261.6255653006,294.32876096318,330.24264909897,371.97947673071,392.4383479509,440.94196398978,495.71159741166,517.50111817701],description:"Scale of Wang Po, 958 AD. H. Pischner: Musik in China, Berlin, 1955, p.20"},chin_yangqin:{frequencies:[261.6255653006,288.45311779165,306.48933163909,347.41744306689,383.26356564167,434.44398956347,465.08793784701,522.64699622026],description:"Observed tuning from Chinese dulcimer yangqin, Helmholtz/Ellis p. 518, nr.107"},chin_yunlo:{frequencies:[261.6255653006,288.45311779165,323.40385076956,367.0144478307,386.1523605003,409.35055662695,483.1608380663,525.67465946865],description:"Observed tuning from Chinese gong-chime (y\xEF\xBF\xBDn-lo), Helmholtz/Ellis p. 518, nr.106"},choquel:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,475.68284600109,490.54793493862,523.2511306012],description:"Choquel/Barbour/Marpurg?"},chordal:{frequencies:[261.6255653006,392.4383479509,327.03195662575,457.84473927605,588.65752192635,719.47030457665,850.28308722695,981.09586987725,981.09586987725,490.54793493862,555.95432626377,621.36071758893,310.68035879446,523.2511306012,348.83408706747,418.60090448096,299.00064605783,465.11211608996,380.54627680087,322.00069575458,279.06726965397,610.45965236807,915.6894785521,872.08521766867,697.66817413493,654.0639132515,627.90135672144,448.50096908674,319.76457981184,377.90359432309,444.76346101102,889.52692202204,336.37572681506,294.32876096318,465.11211608996,411.12588832951,305.22982618403,366.27579142084,373.75080757229,313.95067836072,470.92601754108],description:"Chordal Notes S&H"},chrom15:{frequencies:[261.6255653006,280.31310567921,301.87565226992,356.76213450082,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Tonos-15 Chromatic"},chrom15_inv:{frequencies:[261.6255653006,313.95067836072,331.39238271409,348.83408706747,383.71749577421,453.48431318771,488.36772189445,523.2511306012],description:"Inverted Chromatic Tonos-15 Harmonia"},chrom15_inv2:{frequencies:[261.6255653006,279.06726965397,296.50897400735,348.83408706747,383.71749577421,401.15920012759,418.60090448096,523.2511306012],description:"A harmonic form of the Chromatic Tonos-15 inverted"},chrom17:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Tonos-17 Chromatic"},chrom17_con:{frequencies:[261.6255653006,277.97716313189,296.50897400735,370.63621750918,386.75083566176,404.33041910093,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Chromatic"},chrom19:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,382.37582620857,397.67085925691,414.24047839262,523.2511306012],description:"Tonos-19 Chromatic"},chrom19_con:{frequencies:[261.6255653006,276.16031892841,292.40504357126,355.06326719367,368.21375857121,382.37582620857,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Chromatic"},chrom21:{frequencies:[261.6255653006,274.70684356563,289.16509849014,343.38355445704,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Tonos-21 Chromatic"},chrom21_inv:{frequencies:[261.6255653006,323.91736656265,336.37572681506,348.83408706747,398.6675280771,473.41768959156,498.33441009638,523.2511306012],description:"Inverted Chromatic Tonos-21 Harmonia"},chrom21_inv2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,398.6675280771,423.58424858192,448.50096908674,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-21"},chrom23:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,376.08675011961,401.15920012759,429.81342870813,523.2511306012],description:"Tonos-23 Chromatic"},chrom23_con:{frequencies:[261.6255653006,273.51763645063,286.54228580542,334.29933343966,353.96400011258,376.08675011961,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Chromatic"},chrom25:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,408.78994578219,436.04260883433,467.18850946536,523.2511306012],description:"Tonos-25 Chromatic"},chrom25_con:{frequencies:[261.6255653006,278.32506946872,297.30177875068,363.36884069528,384.74347838324,408.78994578219,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Chromatic"},chrom27:{frequencies:[261.6255653006,277.01530443593,294.32876096318,353.19451315581,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Tonos-27 Chromatic"},chrom27_inv:{frequencies:[261.6255653006,310.07474405997,329.45441556372,348.83408706747,387.59343007496,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Chromatic Tonos-27 Harmonia"},chrom27_inv2:{frequencies:[261.6255653006,271.31540105247,281.00523680435,348.83408706747,387.59343007496,406.97310157871,436.04260883433,523.2511306012],description:"Inverted harmonic form of the Chromatic Tonos-27"},chrom29:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,379.35706968587,399.32323124828,421.50785520652,523.2511306012],description:"Tonos-29 Chromatic"},chrom29_con:{frequencies:[261.6255653006,270.96933548991,281.00523680435,344.87006335079,361.29244731988,379.35706968587,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Chromatic"},chrom31:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,405.51962621593,523.2511306012],description:"Tonos-31 Chromatic. Tone 24 alternates with 23 as MESE or A"},chrom31_con:{frequencies:[261.6255653006,279.66870773512,300.3849083081,337.93302184661,352.6257619269,368.65420565085,386.2091678247,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Chromatic"},chrom33:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,392.4383479509,411.12588832951,431.68218274599,523.2511306012],description:"Tonos-33 Chromatic. A variant is 66 63 60 48"},chrom33_con:{frequencies:[261.6255653006,278.50463402967,297.71185016965,359.73515228832,375.37581108347,392.4383479509,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Chromatic"},chrom_new:{frequencies:[261.6255653006,273.20871865617,297.93622032612,349.22823143301,391.99543598175,409.35055662695,446.39994737251,523.2511306012],description:"New Chromatic genus 4.5 + 9 + 16.5"},chrom_new2:{frequencies:[261.6255653006,273.6474710507,299.37374239667,349.22823143301,391.99543598175,410.00794244467,448.55379686399,523.2511306012],description:"New Chromatic genus 14/3 + 28/3 + 16 parts"},chrom_soft:{frequencies:[261.6255653006,271.68808704293,282.55561052465,348.83408706747,392.4383479509,407.5321305644,423.83341578697,523.2511306012],description:"100/81 Chromatic. This genus is a good approximation to the soft chromatic"},chrom_soft2:{frequencies:[261.6255653006,268.42893440103,282.57118533961,349.22823143301,391.99543598175,402.18897205153,423.37840671577,523.2511306012],description:"1:2 Soft Chromatic"},chrom_soft3:{frequencies:[261.6255653006,271.31540105247,281.75060878526,348.83408706747,392.4383479509,406.97310157871,422.62591317789,523.2511306012],description:"Soft chromatic genus is from K. Schlesinger's modified Mixolydian Harmonia"},cifariello:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"F. Cifariello Ciardi, ICMC 86 Proc. 15-tone 5-limit tuning"},ckring1:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring with common pivot of 4:5:6:7 = square 1 3 5 7"},ckring2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,436.04260883433,448.50096908674,470.92601754108,523.2511306012],description:"Double-tie circular mirroring with common pivot of 3:5:7:9"},"clampitt-phi":{frequencies:[261.6255653006,289.46753582364,320.2724252102,340.92857683151,377.20990650852,444.26963537301,491.54843559637,523.2511306012],description:'David Clampitt, phi+1 mod 3phi+2, from "Pairwise Well-Formed Scales", 1997'},classr:{frequencies:[261.6255653006,275.93321340298,287.4304306281,313.95067836072,327.03195662575,344.91651675372,367.91095120397,392.4383479509,408.78994578219,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"Marvel projection to the 5-limit of class"},cluster:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"13-tone 5-limit Tritriadic Cluster"},cluster6a:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:6"},cluster6b:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Six-Tone Triadic Cluster 4:6:5"},cluster6c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,418.60090448096,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:4:5"},cluster6d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Six-Tone Triadic Cluster 3:5:4"},cluster6e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:8"},cluster6f:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Six-Tone Triadic Cluster 5:8:6"},cluster6g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:5:7"},cluster6h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Six-Tone Triadic Cluster 4:7:5"},cluster6i:{frequencies:[261.6255653006,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,523.2511306012],description:"Six-Tone Triadic Cluster 5:6:7"},cluster6j:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,436.04260883433,439.53094970501,523.2511306012],description:"Six-Tone Triadic Cluster 5:7:6"},cluster8a:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:6"},cluster8b:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,392.4383479509,408.78994578219,418.60090448096,490.54793493862,523.2511306012],description:"Eight-Tone Triadic Cluster 4:6:5"},cluster8c:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,363.36884069528,418.60090448096,436.04260883433,484.4917875937,523.2511306012],description:"Eight-Tone Triadic Cluster 3:4:5"},cluster8d:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Eight-Tone Triadic Cluster 3:5:4"},cluster8e:{frequencies:[261.6255653006,313.95067836072,327.03195662575,334.88072358477,392.4383479509,401.85686830172,418.60090448096,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:8"},cluster8f:{frequencies:[261.6255653006,301.39265122629,313.95067836072,348.83408706747,376.74081403286,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"Eight-Tone Triadic Cluster 5:8:6"},cluster8g:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Eight-Tone Triadic Cluster 4:5:7"},cluster8h:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,457.84473927605,523.2511306012],description:"Eight-Tone Triadic Cluster 4:7:5"},cluster8i:{frequencies:[261.6255653006,307.67166479351,313.95067836072,366.27579142084,373.75080757229,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Eight-Tone Triadic Cluster 5:6:7"},cluster8j:{frequencies:[261.6255653006,263.718569823,305.22982618403,313.95067836072,366.27579142084,376.74081403286,436.04260883433,439.53094970501,523.2511306012],description:"Eight-Tone Triadic Cluster 5:7:6"},cohenf_11:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:`Flynn Cohen, 7-limit scale of "Rameau's nephew", 1996`},coleman:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,491.89038573682,523.2511306012],description:"Jim Coleman's ModX piano temperament. TL 16 Mar 1999"},collengettes:{frequencies:[261.6255653006,269.10058145205,275.62199471997,285.40970760065,294.32876096318,302.73815413355,310.07474405997,321.08592105074,331.11985608357,340.58042340025,348.83408706747,358.80077526939,367.49599295996,380.54627680087,392.4383479509,403.65087217807,413.43299207996,428.11456140098,441.49314144476,454.10723120033,465.11211608996,478.40103369253,496.67978412536,507.3950357345,523.2511306012],description:"R.P. Collengettes, from p.23 of d'Erlanger, vol 5. 24 tone Arabic system"},colonna1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,308.86351459099,327.03195662575,348.83408706747,363.36884069528,392.4383479509,399.70572476481,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Colonna 1"},colonna2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Colonna 2"},concertina:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"English Concertina, Helmholtz/Ellis, p. 470"},cons11:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 11 not exceeding 2/1"},cons12:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 12 not exceeding 2/1"},cons13:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,523.2511306012],description:"Set of intervals with num + den <= 13 not exceeding 2/1"},cons14:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 14 not exceeding 2/1"},cons15:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 15 not exceeding 2/1"},cons16:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Set of intervals with num + den <= 16 not exceeding 2/1"},cons17:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 17 not exceeding 2/1"},cons18:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 18 not exceeding 2/1"},cons19:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Set of intervals with num + den <= 19 not exceeding 2/1"},cons20:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 20 not exceeding 2/1"},cons21:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Set of intervals with num + den <= 21 not exceeding 2/1"},cons8:{frequencies:[261.6255653006,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 8 not exceeding 2/1"},cons9:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Set of intervals with num + den <= 9 not exceeding 2/1"},cons_5:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Set of consonant 5-limit intervals within the octave"},cons_7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals of tetrad 4:5:6:7 and inverse"},cons_7a:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605],description:"Set of consonant 7-limit intervals, harmonic entropy minima"},cont_frac1:{frequencies:[261.6255653006,264.29672053658,267.01859068163,284.39991302433,288.64312378534,304.51680721446,328.36325429535,342.47239171077,368.24757473349,390.36247006958,408.23697512781,419.80330474394,448.3033221197,488.42606438843,498.20005830409],description:"Continued fraction scale 1, see McLaren in Xenharmonikon 15, pp.33-38"},cont_frac2:{frequencies:[261.6255653006,268.67076720771,283.00159623424,287.78825007941,303.56038377389,306.30898587133,329.63288816559,333.85601282718,352.97051886932,380.09613548074,393.10104267352,426.45795861378,432.83315799354,472.91012288255,483.94654132265,519.4303061261],description:"Continued fraction scale 2, see McLaren in Xenharmonikon 15, pp.33-38"},cordier:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Serge Cordier, piano tuning, 1975 (Piano bien temp\xEF\xBF\xBDr\xEF\xBF\xBD et justesse orchestrale)"},corner11:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,343.38355445704,359.73515228832,392.4383479509,400.61414686654,408.78994578219,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 11-limit. Chalmers '96"},corner13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 13-limit. Chalmers '96"},corner17:{frequencies:[261.6255653006,265.71346475842,269.80136421624,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,347.47145391486,359.73515228832,371.99885066179,382.21859930635,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,449.66894036041,451.71289008932,457.84473927605,486.4600354808,490.54793493862,494.63583439645,523.2511306012],description:"Quadratic Corner 17-limit."},corner17a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,275.93321340298,277.97716313189,286.15296204753,292.28481123426,294.32876096318,295.35073582763,306.59245933664,312.72430852337,314.76825825228,318.85615771011,327.03195662575,331.11985608357,337.2517052703,343.38355445704,345.42750418595,347.47145391486,359.73515228832,367.91095120397,371.99885066179,382.21859930635,392.4383479509,398.57019713763,400.61414686654,404.70204632437,408.78994578219,416.96574469783,425.14154361347,429.2294430713,441.49314144476,449.66894036041,451.71289008932,457.84473927605,459.88868900496,478.28423656516,486.4600354808,490.54793493862,494.63583439645,515.07533168556,521.20718087229,523.2511306012],description:"Quadratic Corner 17 odd limit."},corner7:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,392.4383479509,400.61414686654,408.78994578219,457.84473927605,490.54793493862,523.2511306012],description:"Quadratic corner 7-limit. Chalmers '96"},corner9:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"First 9 harmonics of 5th through 9th harmonics"},corners11:{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,286.15296204753,294.32876096318,299.00064605783,304.4370214407,314.76825825228,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,434.91003062957,449.66894036041,457.84473927605,465.11211608996,478.40103369253,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Quadratic Corners 11-limit. Chalmers '96"},corners13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,398.6675280771,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"Quadratic Corners 13-limit. Chalmers '96"},corners7:{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Quadratic Corners 7-limit. Chalmers '96"},corrette:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.33704984564,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Corrette temperament"},corrette2:{frequencies:[261.6255653006,272.8349596094,292.34127285051,310.42509491746,326.6631048533,350.01785633742,365.01443422269,391.11111150212,409.71484950008,437.02884834934,466.16376151809,488.33748205014,523.2511306012],description:"Michel Corrette, modified meantone temperament (1753)"},coul_12:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,340.65828815182,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 5/4 3/2 2 successively split largest intervals by smallest interval"},coul_12a:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Scale 1 6/5 3/2 2 successively split largest intervals by smallest interval"},coul_12sup:{frequencies:[261.6255653006,280.31310567921,294.32876096318,310.68035879446,331.39238271409,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,466.02053819169,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean scale. Op de Coul, 2003"},coul_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical 13-tone 5-limit just system"},coul_17sup:{frequencies:[261.6255653006,276.16031892841,279.06726965397,294.57100685697,310.07474405997,313.95067836072,331.39238271409,348.83408706747,368.21375857121,372.08969287196,392.76134247596,413.43299207996,418.60090448096,441.85651028546,465.11211608996,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular approximation to Pythagorean 17-tone scale. Op de Coul, 2003"},coul_20:{frequencies:[261.6255653006,277.18263097687,282.2367833559,293.66476791741,305.55548036855,311.12698372208,329.62755691287,335.63799088232,349.22823143301,363.36884069528,369.99442271164,391.99543598175,399.14308682247,415.30469757995,432.12070439462,440,466.16376151809,474.66379875343,493.88330125613,513.88101620607,523.2511306012],description:"Tuning for a 3-row symmetrical keyboard, Op de Coul, 1989"},coul_27:{frequencies:[261.6255653006,275.62199471997,275.93321340298,279.06726965397,293.99679436797,294.32876096318,310.07474405997,310.42486507835,327.03195662575,330.74639366397,331.11985608357,348.83408706747,367.49599295996,367.91095120397,372.08969287196,372.50983809402,392.4383479509,413.43299207996,413.89982010446,418.60090448096,440.99519155196,441.49314144476,465.11211608996,465.63729761752,490.54793493862,496.11959049595,496.67978412536,523.2511306012],description:"Symmetrical 27-tone 5-limit just system, 67108864/66430125 and 25/24"},counterschismic:{frequencies:[261.6255653006,265.12640119254,268.67408364533,272.2692364133,275.65170316539,279.34022410565,283.07810312094,286.865997406,290.70457953408,294.3160713245,298.25434362449,302.24531258767,306.28968684494,310.09479611189,314.24420508029,318.4491358588,322.71033506911,327.0285519162,331.0913069245,335.5216703313,340.01131880467,344.56104171562,348.84160709651,353.50948891197,358.2398341551,363.03347451625,367.54352740958,372.46166135084,377.44560747755,382.49624206822,387.61445966759,392.4298881006,397.68103103357,403.0024376988,408.3950505989,413.46864135256,419.00130591222,424.60800114791,430.28972009123,436.04746916004,441.46459261549,447.37187116862,453.35819556254,459.4246261707,465.13216971689,471.35614630867,477.663406507,484.05506753352,490.06860102591,496.62625431187,503.27165616309,510.00598369715,516.83042094502,523.2511306012],description:"Counterschismic temperament, g=498.082318, 5-limit"},couperin:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28785294636,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.24345038333,489.02683710225,523.2511306012],description:"Couperin modified meantone"},cross13:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,322.00069575458,332.97799220076,336.37572681506,366.27579142084,373.75080757229,406.97310157871,411.12588832951,425.14154361347,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"13-limit harmonic/subharmonic cross"},cross2:{frequencies:[261.6255653006,282.55561052465,339.14425131559,366.27579142084,436.04260883433,470.92601754108,560.62621135843,605.4763082671,726.73768139056,784.8766959018],description:"Pusey's double 5-7 cross reduced by 3/1"},cross2_5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5 cross reduced by 2/1"},cross2_7:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,334.88072358477,341.71502406609,348.83408706747,392.4383479509,400.61414686654,408.78994578219,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"longer 3-5-7 cross reduced by 2/1"},cross3:{frequencies:[261.6255653006,282.55561052465,311.45900631024,336.37572681506,363.28578496026,403.74315632809,436.04260883433,470.92601754108,508.60009894437,565.24041885932,610.45965236807,659.29642455751,726.73768139056,784.8766959018],description:"Pusey's triple 5-7 cross reduced by 3/1"},cross_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,348.83408706747,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"3-5-7 cross reduced by 2/1, quasi diatonic, similar to Zalzal's, Flynn Cohen"},cross_72:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,313.95067836072,343.38355445704,348.83408706747,392.4383479509,398.6675280771,436.04260883433,448.50096908674,465.11211608996,490.54793493862,523.2511306012],description:"double 3-5-7 cross reduced by 2/1"},cross_7a:{frequencies:[261.6255653006,336.37572681506,392.4383479509,436.04260883433,470.92601754108,523.2511306012,610.45965236807,784.8766959018],description:"2-5-7 cross reduced by 3/1"},cruciform:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Cruciform Lattice"},galilei:{frequencies:[261.6255653006,277.66336828161,293.32570896007,311.30674962848,328.86683469969,348.2210758395,368.7143392539,390.41365788584,413.39000965417,437.71854962063,463.47885582013,490.75518955849,523.2511306012],description:"Vincenzo Galilei's approximation"},gamelan_om:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other Music gamelan (7 limit black keys)"},gamelan_udan:{frequencies:[261.6255653006,261.6255653006,290.69507255622,305.22982618403,334.88072358477,351.32575911795,364.00078650518,392.4383479509,402.50086969323,465.11211608996,465.11211608996,501.44900015948,523.2511306012],description:"Gamelan Udan Mas (approx) s6,p6,p7,s1,p1,s2,p2,p3,s3,p4,s5,p5"},ganassi:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Sylvestro Ganassi's temperament (1543)"},gann_custer:{frequencies:[261.6255653006,269.80136421624,274.70684356563,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"Kyle Gann, scale from Custer's Ghost to Sitting Bull, 1/1=G"},gann_frac:{frequencies:[261.6255653006,264.89588486686,294.32876096318,305.22982618403,309.04519901133,313.95067836072,348.83408706747,353.19451315581,366.27579142084,392.4383479509,397.34382730029,412.06026534844,418.60090448096,423.83341578697,457.84473927605,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Fractured Paradise, 1/1=B"},gann_ghost:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Kyle Gann, scale from Ghost Town, 1/1=E"},gann_super:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Kyle Gann, scale from Superparticular Woman (1992), 1/1=G"},gann_things:{frequencies:[261.6255653006,266.47048317654,272.52663052146,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,387.59343007496,392.4383479509,406.97310157871,408.78994578219,436.04260883433,448.50096908674,465.11211608996,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Kyle Gann, scale from How Miraculous Things Happen, 1/1=A"},garcia:{frequencies:[261.6255653006,268.33391312882,271.68808704293,279.06726965397,286.22284067074,294.32876096318,301.87565226992,310.07474405997,313.95067836072,322.00069575458,331.11985608357,339.61010880366,348.83408706747,357.77855083843,362.25078272391,372.08969287196,381.63045422766,392.4383479509,402.50086969323,407.5321305644,418.60090448096,429.33426100611,441.49314144476,452.81347840488,465.11211608996,470.92601754108,483.00104363188,496.11959049595,509.4151632055,523.2511306012],description:"Linear 29-tone scale by Jos\xEF\xBF\xBD L. Garcia, 1988 15/13-52/45 alternating"},garibaldi24:{frequencies:[261.6255653006,271.45160478635,275.48458787532,290.07776082447,294.38747453868,305.44397410364,309.9819851541,326.40257969757,331.25197480486,343.69301829526,348.79929894143,361.89937857146,367.27615309757,386.73177659938,392.47748849606,407.21801775129,413.26809573999,435.16003837828,441.62525370518,458.21165716245,465.0193526482,489.65270106975,496.92751922541,515.59094540799,523.2511306012],description:"Garibaldi[24] in 94-tET tuning."},genovese:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,338.57426097725,340.11323489078,342.12573923925,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,400.13321751856,402.50086969323,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Denny Genovese's 65-note scale. 3/2=384 Hz"},genovese_12:{frequencies:[261.6255653006,285.40970760065,294.32876096318,313.95067836072,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Denny Genovese's superposition of harmonics 8-16 and subharmonics 6-12"},genovese_38:{frequencies:[261.6255653006,280.31310567921,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Denny Genovese's 38-note scale. Harm 1..16 x Subh. 1..12"},"gf1-2":{frequencies:[261.6255653006,269.29177952703,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,339.28638158975,349.22823143301,359.46139971304,380.8360868427,403.48177901006,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"16-note scale with all possible quadruplets of 50 & 100 c. Galois Field GF(2)"},"gf2-3":{frequencies:[261.6255653006,270.85177093588,280.40333801024,290.29174037004,300.52885648597,316.56538760238,327.729041887,345.21700307457,357.39105439675,369.99442271164,389.73770840504,410.5345162762,425.01198472693,447.69106452518,471.58032351597,496.7443381147,523.2511306012],description:"16-note scale with all possible quadruplets of 60 & 90 c. Galois Field GF(2)"},gilson7:{frequencies:[261.6255653006,261.6255653006,299.00064605783,313.95067836072,327.03195662575,392.4383479509,373.75080757229,392.4383479509,408.78994578219,408.78994578219,467.18850946536,490.54793493862,523.2511306012],description:"Gilson septimal"},gilson7a:{frequencies:[261.6255653006,261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,373.75080757229,373.75080757229,392.4383479509,418.60090448096,470.92601754108,470.92601754108,523.2511306012],description:"Gilson septimal 2"},golden_10:{frequencies:[261.6255653006,287.58715183149,304.90466328003,323.26497397694,342.73087946949,376.74069565061,399.42672527674,423.47882962254,465.50141625349,493.53231135469,523.2511306012],description:"Golden version of Rapoport's Major 10 out of 13"},golden_5:{frequencies:[261.6255653006,327.03195662575,343.38355445704,392.4383479509,425.14154361347,523.2511306012],description:"Golden pentatonic"},gradus10:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,490.54793493862,882.98628288953,930.22423217991,941.85203508216,1220.91930473613,1255.80271344288,1674.40361792384,2747.0684356563,3270.3195662575,3488.34087067467,5886.5752192635,10595.8353946743,10988.2737426252,11162.69078615893,13081.27826503,14651.0316568336,23546.300877054,31395.067836072,41860.090448096,42383.3415786972,56511.1221049296,75348.1628065728,100464.2170754304,133952.2894339072],description:"Intervals > 1 with Gradus = 10"},gradus3:{frequencies:[261.6255653006,784.8766959018,1046.5022612024],description:"Intervals > 1 with Gradus = 3"},gradus4:{frequencies:[261.6255653006,392.4383479509,1569.7533918036,2093.0045224048],description:"Intervals > 1 with Gradus = 4"},gradus5:{frequencies:[261.6255653006,348.83408706747,1308.127826503,2354.6300877054,3139.5067836072,4186.0090448096],description:"Intervals > 1 with Gradus = 5"},gradus6:{frequencies:[261.6255653006,654.0639132515,697.66817413493,1177.3150438527,2616.255653006,4709.2601754108,6279.0135672144,8372.0180896192],description:"Intervals > 1 with Gradus = 6"},gradus7:{frequencies:[261.6255653006,327.03195662575,436.04260883433,588.65752192635,1395.33634826987,1831.3789571042,3924.383479509,5232.511306012,7063.8902631162,9418.5203508216,12558.0271344288,16744.0361792384],description:"Intervals > 1 with Gradus = 7"},gradus8:{frequencies:[261.6255653006,294.32876096318,313.95067836072,418.60090448096,872.08521766867,915.6894785521,1962.1917397545,2790.67269653973,3531.9451315581,3662.7579142084,7848.766959018,10465.022612024,14127.7805262324,18837.0407016432,25116.0542688576,33488.0723584768],description:"Intervals > 1 with Gradus = 8"},gradus9:{frequencies:[261.6255653006,457.84473927605,465.11211608996,470.92601754108,610.45965236807,627.90135672144,837.20180896192,981.09586987725,1744.17043533733,1765.97256577905,5494.1368713126,5581.34539307947,6540.639132515,7325.5158284168,11773.150438527,15697.533918036,20930.045224048,21191.6707893486,28255.5610524648,37674.0814032864,50232.1085377152,66976.1447169536],description:"Intervals > 1 with Gradus = 9"},grady11:{frequencies:[261.6255653006,277.4816601673,290.69507255622,305.22982618403,332.97799220076,356.76213450082,378.42269266694,392.4383479509,420.46965851882,458.69417292962,481.6288815761,504.56359022259,523.2511306012],description:"Kraig Grady's dual [5 7 9 11] hexany scale"},grady7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Kraig Grady's 7-limit "Centaur" scale (1987), see Xenharmonikon 16`},grady7t:{frequencies:[261.6255653006,274.79177208104,293.65339461903,305.54250820508,326.68804977983,349.10444036529,366.6627351378,392.00975085961,407.77240291308,436.0718257558,457.96530027286,489.37179607373,523.2511306012],description:"Tempered version of grady7 with egalised 225/224"},grady_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Kraig Grady, letter to Lou Harrison, published in 1/1 7 (1) 1991 p 5."},grammateus:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"H. Grammateus (Heinrich Schreiber) (1518). B-F# and Bb-F 1/2 P. Also Marpurg temp.nr.6"},graupner:{frequencies:[261.6255653006,277.083518473,293.59062125964,310.9808189359,329.55130849159,349.11528328816,370.00708353276,392.01655298731,415.20348378516,439.96413779539,466.04943410823,493.90517116572,523.2511306012],description:"Johann Gottlieb Graupner's temperament (1819)"},groenewald_21:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"J\xEF\xBF\xBDrgen Gr\xEF\xBF\xBDnewald, new meantone temperament I (2000)"},gross:{frequencies:[13.75,13.83042567154,13.91662997964,13.99803029322,14.07990672861,14.1622619889,14.24509903843,14.32842061343,14.41222946472,14.49652860895,14.58132083065,14.67220542837,14.75802520833,14.84434696019,14.93117353378,15.01850805439,15.10635340681,15.19471249121,15.28358848801,15.37298433293,15.46880332718,15.55928251958,15.65029093742,15.74183158529,15.83390775812,15.92652249736,16.01967895316,16.113380201,16.20762961362,16.30865090754,16.4040424858,16.49999202274,16.59650278193,16.69357794961,16.79122101993,16.88943521823,16.98822378696,17.08759028197,17.18753798549,17.29466699621,17.39582592037,17.49757653721,17.59992220598,17.70286661052,17.80641315127,17.91056524676,18.01532664586,18.12070080902,18.23364617402,18.34029731861,18.44757228066,18.55547460176,18.66400816581,18.77317655783,18.88298349104,18.99343259063,19.10452783216,19.2236053387,19.33604689279,19.44914613325,19.56290690697,19.67733296969,19.79242844011,19.90819712001,20.02464283144,20.14176976577,20.26731246322,20.38585868839,20.50509842475,20.62503561099,20.74567420676,20.86701855437,20.98907266203,21.11184068121,21.23532666504,21.36768545088,21.49266790503,21.61838152318,21.74483045784,21.87201888365,21.99995137868,22.12863216875,22.25806563075,22.38825603783,22.52780097787,22.65956910312,22.79210808945,22.92542231482,23.05951631373,23.1943945132,23.33006176809,23.46652255971,23.60378139323,23.75090264526,23.88982499399,24.02955978014,24.17011203339,24.3114863964,24.45368753658,24.59672057234,24.74059022832,24.88530139802,25.04041015894,25.18687501732,25.33419642278,25.48237967807,25.63142967793,25.78135134315,25.93215007005,26.08383083979,26.23639881154,26.39992889083,26.55434576426,26.70966568928,26.86589425653,27.0230366265,27.18109814415,27.34008402779,27.5],description:"Gross temperament, g=91.531021, 5-limit"},groven:{frequencies:[261.6255653006,264.7464578752,272.5650766677,275.81646505128,279.10663876478,290.77709705464,294.24573392894,297.75574765819,306.54921255625,310.20599265769,313.90639394672,327.03195662575,330.93307160522,334.88072358477,344.77058253591,348.88329767713,353.04507480266,363.47137260637,367.80716871461,372.19468374184,387.75749219625,392.38299382393,397.06367008113,408.78994578219,413.66634097248,418.60090448096,436.10412364188,441.30634506723,446.57062302059,459.75895986689,465.24335632603,470.79317533731,484.69686416326,490.47874118496,496.32958936031,517.08292506126,523.2511306012],description:"Eivind Groven's 36-tone scale with 1/8-schisma temp. fifths and 5/4 (1948)"},groven_ji:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,517.37477513058,523.2511306012],description:"Untempered version of Groven's 36-tone scale"},gumbeng:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.9259392365,525.62941881859],description:"Scale of gumbeng ensemble, Java. 1/1=440 Hz."},gunkali:{frequencies:[261.6255653006,275.93321340298,282.55561052465,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Indian mode Gunkali, see Dani\xEF\xBF\xBDlou: Intr. to the Stud. of Mus. Scales, p.175"},gyaling:{frequencies:[261.6255653006,283.49766588023,307.55338551939,339.28638158975,347.81902735497,393.58362272115,435.9522698367],description:'Tibetan Buddhist Gyaling tones measured from CD "The Diamond Path", Ligon 2002'},far12_104:{frequencies:[261.6255653006,276.7193479141,294.32876096318,311.93817401225,329.54758706133,349.67263054599,369.79767403066,392.4383479509,415.07902187114,440.23532622697,465.3916305828,493.06356537421,523.2511306012],description:"Farey approximation to 12-tET with den=104"},far12_65:{frequencies:[261.6255653006,277.72560008833,293.82563487606,309.92566966379,330.05071314845,350.17575663311,370.30080011777,390.42584360243,414.57589578403,438.72594796562,466.90100884415,495.07606972267,523.2511306012],description:"Farey approximation to 12-tET with den=65"},far12_80:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,330.30227619201,349.92419358955,369.5461109871,392.4383479509,415.3305849147,441.49314144476,467.65569797482,493.81825450488,523.2511306012],description:"Farey approximation to 12-tET with den=80"},farey3:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"Farey fractions between 0 and 1 until 3rd level, normalised by 2/1"},farey4:{frequencies:[261.6255653006,299.00064605783,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Farey fractions between 0 and 1 until 4th level, normalised by 2/1"},farey5:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,348.83408706747,366.27579142084,373.75080757229,380.54627680087,392.4383479509,402.50086969323,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Farey fractions between 0 and 1 until 5th level, normalised by 2/1"},farnsworth:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Farnsworth's scale"},fibo_9:{frequencies:[261.6255653006,277.97716313189,327.03195662575,343.38355445704,363.82305174615,392.4383479509,425.14154361347,449.66894036041,523.2511306012],description:"First 9 Fibonacci terms reduced by 2/1, B. McLaren, XH 13, 1991"},finnamore:{frequencies:[261.6255653006,277.97716313189,310.68035879446,348.83408706747,392.4383479509,416.96574469783,457.84473927605,466.02053819169,523.2511306012],description:"David J. Finnamore, Tuning List 9 May '97. Tetrachordal scale, 17/16x19/17x64/57"},finnamore53:{frequencies:[261.6255653006,286.15296204753,310.68035879446,327.03195662575,343.38355445704,359.73515228832,367.91095120397,376.08675011961,392.4383479509,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,457.84473927605,474.19633710734,523.2511306012],description:'David J. Finnamore, tuning for "Crawlspace", 53-limit, 1998.'},finnamore_11:{frequencies:[261.6255653006,287.78812183066,294.32876096318,305.22982618403,323.76163705949,331.11985608357,343.38355445704,348.83408706747,392.4383479509,431.68218274599,441.49314144476,457.84473927605,485.64245558924,515.07533168556,523.2511306012],description:"David J. Finnamore, 11-limit scale, Tuning List 3 Sept '98"},finnamore_7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,309.04519901133,331.11985608357,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,463.567798517,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 21/20 &15/14"},finnamore_7a:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,331.11985608357,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,473.02836583367,496.67978412536,523.2511306012],description:"David J. Finnamore, TL 1 Sept '98. 7-tone Pyth. with 9/8 div. in 15/14 &21/20"},finnamore_jc:{frequencies:[261.6255653006,276.16031892841,310.68035879446,348.83408706747,392.4383479509,414.24047839262,466.02053819169,523.2511306012],description:"Chalmers' modification of Finnamore. Tuning List 9-5-97 19/18 x 9/8 x 64/57"},fisher:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.67535808973,327.03195662575,349.71841093413,365.63284485857,391.22147055517,410.55062036439,437.39890198442,467.47330218196,489.02683992698,523.2511306012],description:"Alexander Metcalf Fisher's modified meantone temperament (1818)"},"fj-10tet":{frequencies:[261.6255653006,280.31310567921,300.51585203447,322.00069575458,345.20039866051,370.01329949656,396.52624740872,425.14154361347,455.42228033808,488.36772189445,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 10-tet"},"fj-12tet":{frequencies:[261.6255653006,277.19851561611,293.6613488068,311.12229387098,329.64821227876,348.83408706747,370.01329949656,391.99491478937,415.52295665389,440.00663255101,466.16918908107,490.54793493862,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 12-tet"},"fj-13tet":{frequencies:[261.6255653006,275.96121271433,291.05844139692,306.97399661937,323.91736656265,341.56671025356,360.27127025001,379.97998769849,400.78810003496,422.62591317789,445.95266812602,41.6222490251,496.18641694941,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 13-tet"},"fj-14tet":{frequencies:[261.6255653006,274.92856014639,288.87822835275,303.4856557487,318.85615771011,335.0643204727,352.18826098158,370.01329949656,388.70083987518,408.5030756448,429.33426100611,451.0785608631,473.88781639354,497.93252750759,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 14-tet"},"fj-15tet":{frequencies:[261.6255653006,274.08392555301,286.94416839421,300.51585203447,314.76825825228,329.64821227876,345.20039866051,361.51896296083,378.66858135613,396.52624740872,415.52295665389,392.4383479509,455.42228033808,477.08191319521,499.46698830115,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 15-tet"},"fj-16tet":{frequencies:[261.6255653006,273.25336820285,285.40970760065,297.96244937013,311.12229387098,324.92207303462,339.29565499922,354.2846196779,370.01329949656,386.4008349055,403.52417698906,421.50785520652,440.00663255101,459.44001711325,479.64686971777,500.9851250437,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 16-tet"},"fj-17tet":{frequencies:[261.6255653006,272.52663052146,283.8915708581,295.75063903546,307.98958953109,320.70230585235,334.29933343966,348.03400888612,362.53828334512,373.75080757229,392.4383479509,409.71550792358,426.86276443782,444.76346101102,462.87600014722,482.37213602298,502.32108537715,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 17-tet"},"fj-18tet":{frequencies:[261.6255653006,271.88539139082,282.55561052465,293.6613488068,305.22982618403,317.12189733406,329.64821227876,342.60490694126,355.98232655655,370.01329949656,384.51030051755,399.57359064092,415.52295665389,431.68218274599,448.50096908674,466.16918908107,484.4917875937,503.12608711654,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 18-tet"},"fj-19tet":{frequencies:[261.6255653006,271.31540105247,281.44568388398,291.81313052759,302.73815413355,313.95067836072,325.69713231299,337.73482066077,350.31219760589,363.36884069528,376.74081403286,390.78248994267,405.26313056367,420.46965851882,436.04260883433,451.89870370104,468.95148497277,485.87604984397,504.56359022259,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 19-tet"},"fj-20tet":{frequencies:[261.6255653006,270.8594087818,280.31310567921,290.29686012806,300.51585203447,311.12229387098,322.00069575458,333.44434793214,345.20039866051,357.34223553253,370.01329949656,383.09457776159,396.52624740872,410.48149038542,425.14154361347,440.00663255101,455.42228033808,470.92601754108,488.36772189445,505.41302387616,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 20-tet"},"fj-21tet":{frequencies:[261.6255653006,270.34641747729,279.46367202564,288.87822835275,298.56093922539,308.58400009814,318.85615771011,329.64821227876,340.72166643799,352.18826098158,364.00078650518,376.08675011961,388.70083987518,401.78211814021,415.52295665389,429.33426100611,443.62595855319,457.84473927605,473.88781639354,489.85212226495,506.18859373377,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 21-tet"},"fj-22tet":{frequencies:[261.6255653006,270.06509966514,278.68810216803,287.55242312318,296.76929795292,306.29334474217,316.13089140489,326.18252297218,336.37572681506,347.40443916965,358.52392281934,370.01329949656,381.83190611439,392.4383479509,392.4383479509,419.69101100305,433.03541842858,446.94367405519,461.28718092474,475.68284600109,491.34557385722,506.89953276991,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 22-tet"},"fj-23tet":{frequencies:[261.6255653006,269.55361273395,277.97716313189,286.37392958579,295.1673044417,304.21577360535,313.47928094576,323.18452184192,332.97799220076,343.1154954762,353.6790049434,364.40703738298,375.66747838035,387.20583664489,398.97898708342,411.12588832951,423.58424858192,436.04260883433,449.99597231703,463.79077485106,477.96978276071,492.47165233054,507.86139146587,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 23-tet"},"fj-24tet":{frequencies:[261.6255653006,269.32043486826,277.19851561611,285.40970760065,293.6613488068,302.32287545847,311.12229387098,320.2657782128,329.64821227876,339.29565499922,348.83408706747,348.83408706747,370.01329949656,380.54627680087,391.99491478937,403.52417698906,415.52295665389,427.53446036927,440.00663255101,452.81347840488,466.16918908107,479.64686971777,490.54793493862,508.30109829831,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 24-tet"},"fj-26tet":{frequencies:[261.6255653006,268.69652652494,275.96121271433,283.42769574232,291.05844139692,299.00064605783,306.97399661937,315.29234792636,323.91736656265,332.57487114483,341.56671025356,350.8160989258,360.27127025001,370.01329949656,379.97998769849,390.22118214327,400.78810003496,411.12588832951,422.62591317789,434.18710837121,445.95266812602,457.84473927605,457.84473927605,483.00104363188,496.18641694941,509.48136400643,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 26-tet"},"fj-30tet":{frequencies:[261.6255653006,267.70988077271,274.08392555301,280.31310567921,286.94416839421,293.6613488068,300.51585203447,307.52478728316,314.76825825228,322.00069575458,329.64821227876,337.35928157183,345.20039866051,353.19451315581,361.51896296083,370.01329949656,378.66858135613,387.59343007496,396.52624740872,405.78659107848,415.52295665389,425.14154361347,392.4383479509,444.76346101102,455.42228033808,466.16918908107,477.08191319521,488.36772189445,499.46698830115,511.35905945117,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 30-tet"},"fj-31tet":{frequencies:[261.6255653006,267.57160087561,273.51763645063,279.79400733536,286.15296204753,292.60754013883,299.00064605783,305.96888145324,312.81317590289,319.76457981184,327.03195662575,334.53760808929,342.12573923925,349.884792149,357.81143489641,366.27579142084,373.75080757229,382.37582620857,391.25985441351,400.13321751856,409.20921752145,418.60090448096,428.11456140098,437.54620403721,447.51741432997,457.84473927605,467.90726101838,478.40103369253,489.12605686634,500.50108144463,511.62332769895,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 31-tet"},"fj-36tet":{frequencies:[261.6255653006,266.75547834571,271.88539139082,277.19851561611,282.55561052465,288.08208313999,293.6613488068,299.00064605783,305.22982618403,311.12229387098,317.12189733406,323.18452184192,329.64821227876,327.03195662575,342.60490694126,348.83408706747,355.98232655655,362.89997767503,370.01329949656,377.22755927063,384.51030051755,391.99491478937,399.57359064092,406.97310157871,415.52295665389,423.35773294097,431.68218274599,440.00663255101,448.50096908674,436.04260883433,466.16918908107,475.19745534191,484.4917875937,490.54793493862,503.12608711654,513.18860885887,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 36-tet"},"fj-41tet":{frequencies:[261.6255653006,266.05989691586,270.64713651786,275.21650375777,279.87851171692,284.71017400359,289.532292266,294.32876096318,299.49242343621,304.63250754179,309.81974838229,315.13988547572,320.49131749323,325.95972070239,331.39238271409,337.09447836808,342.81970625596,348.83408706747,354.64798851859,360.72615821749,366.27579142084,373.13810133036,379.35706968587,386.00493241072,392.4383479509,399.32323124828,405.97070477679,413.09299784305,419.97788114044,427.14378008261,434.48531380278,441.85651028546,449.45930449077,436.04260883433,465.11211608996,472.93852188955,480.82536325516,489.12605686634,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 41-tet"},"fj-42tet":{frequencies:[261.6255653006,265.98599138894,270.34641747729,274.92856014639,279.46367202564,284.05061375494,288.87822835275,293.6613488068,298.56093922539,303.4856557487,308.58400009814,313.7026920429,318.85615771011,324.18820048118,329.64821227876,335.0643204727,340.72166643799,346.37750898953,352.18826098158,358.01393146398,364.00078650518,370.01329949656,376.08675011961,382.37582620857,388.70083987518,395.22159864559,401.78211814021,408.5030756448,415.52295665389,422.16852582597,429.33426100611,436.04260883433,443.62595855319,451.0785608631,457.84473927605,466.16918908107,473.88781639354,481.94183081689,489.85212226495,497.93252750759,506.18859373377,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 42-tet"},"fj-43tet":{frequencies:[261.6255653006,265.84533248287,270.2034526875,274.70684356563,279.06726965397,283.42769574232,288.1672893166,292.86443876933,297.71185016965,302.50455987882,307.4100392282,312.38873468728,317.43901923139,322.67153053741,327.85988562987,332.97799220076,338.57426097725,344.24416486921,348.83408706747,355.41586229515,361.11697745717,367.05676325756,372.95559308809,379.09010482332,385.17097113699,391.45479319413,397.88888056133,404.33041910093,392.4383479509,417.48760420309,424.25767346043,431.1976909584,438.2228218785,445.32011114996,452.54151835779,459.82675113439,467.18850946536,475.05694751951,483.00104363188,490.54793493862,498.33441009638,506.89953276991,514.81159623666,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 43-tet"},"fj-53tet":{frequencies:[261.6255653006,265.06800694929,268.51044859798,272.09058791262,275.69145590816,279.30296836145,282.98275430473,286.71294827463,290.48132617934,294.32876096318,298.13145813324,302.11523612093,306.05254808749,310.07474405997,313.95067836072,318.31110444906,322.46872002167,326.7649917632,331.03642956402,335.41739141103,336.37572681506,344.24416486921,348.83408706747,353.42400926572,358.01393146398,362.89997767503,367.52162744608,372.31330446624,377.3445653374,382.37582620857,387.20583664489,392.4383479509,397.67085925691,402.82031482791,408.13588186894,413.53718386224,418.60090448096,424.41480593208,429.81342870813,436.04260883433,441.49314144476,447.29532132038,453.1728541814,459.07882213124,465.11211608996,470.92601754108,477.46665667359,483.76047923507,485.87604984397,496.55464434604,503.12608711654,509.83443494476,516.36624730382,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 53-tet"},"fj-54tet":{frequencies:[261.6255653006,265.02329991489,268.42103452919,271.88539139082,275.39533189537,279.06726965397,282.55561052465,286.15296204753,289.90941019796,293.6613488068,297.46468383493,301.26580246736,305.22982618403,309.19384990071,313.15787361738,317.12189733406,321.29455387793,325.43667878855,329.64821227876,333.91683992313,338.19890148614,342.60490694126,346.93824963775,351.55935337268,355.98232655655,360.61902244137,365.28852513669,370.01329949656,374.76094489005,379.61356533813,384.51030051755,389.53139722534,394.5147413263,399.57359064092,404.77917650282,409.88005230427,415.52295665389,420.652869699,426.07592063241,431.68218274599,436.04260883433,442.75095666255,448.50096908674,454.40229762736,460.26719821402,466.16918908107,472.20223981084,478.40103369253,484.4917875937,490.54793493862,497.08857407114,503.12608711654,510.16985233617,516.54278277298,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 54-tet"},"fj-55tet":{frequencies:[261.6255653006,264.93728131706,268.33391312882,271.68808704293,275.15792212649,278.68810216803,282.14521748104,285.77561748219,289.37373131733,293.02063313667,296.76929795292,300.51585203447,304.33994330886,308.21641939523,312.11470948142,316.13089140489,319.76457981184,324.10331223806,328.22116374075,332.33517754401,336.37572681506,340.90603963412,345.20039866051,348.83408706747,353.96400011258,358.52392281934,363.07221307022,367.68998366571,372.31330446624,377.04860881557,381.83190611439,386.75083566176,391.58336244338,396.52624740872,401.56482115906,406.65712867376,411.81801945465,416.96574469783,418.60090448096,427.65717404906,433.03541842858,438.60756535689,444.15502946381,449.8123754291,455.42228033808,461.28718092474,467.18850946536,472.93852188955,479.03272519828,485.0974023282,491.34557385722,497.60156537565,503.87145909745,510.16985233617,516.71049146868,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 55-tet"},"fj-5tet":{frequencies:[261.6255653006,300.51585203447,345.20039866051,396.52624740872,455.42228033808,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 5-tet"},"fj-60tet":{frequencies:[261.6255653006,264.66772303665,267.70988077271,270.8594087818,274.08392555301,277.19851561611,280.31310567921,283.6903720127,286.94416839421,290.29686012806,293.6613488068,297.10021822272,300.51585203447,304.05133264664,307.52478728316,311.12229387098,314.76825825228,318.50068819203,322.00069575458,325.79787377056,329.64821227876,333.44434793214,337.35928157183,341.25073734861,345.20039866051,348.83408706747,353.19451315581,357.34223553253,361.51896296083,365.74186169574,370.01329949656,374.3258088147,378.66858135613,383.09457776159,387.59343007496,391.99491478937,396.52624740872,401.15920012759,405.78659107848,410.48149038542,415.52295665389,420.18651396763,425.14154361347,429.81342870813,434.91003062957,440.00663255101,444.76346101102,450.23934493592,455.42228033808,460.95932933915,466.16918908107,470.92601754108,477.08191319521,482.55382044333,488.36772189445,490.54793493862,499.46698830115,505.41302387616,511.35905945117,517.30509502619,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 60-tet"},"fj-66tet":{frequencies:[261.6255653006,264.37951861955,267.19206668997,270.06509966514,272.83808952777,275.76748774928,278.68810216803,281.58005756929,284.57517629188,287.55242312318,290.69507255622,293.6613488068,296.76929795292,299.91223339337,302.93486508491,306.29334474217,309.48390041656,312.81317590289,316.13089140489,319.38705374359,322.78478835788,326.18252297218,329.64821227876,332.97799220076,336.37572681506,340.11323489078,343.8507429665,347.40443916965,351.12904816659,354.74652922115,358.52392281934,362.25078272391,366.27579142084,370.01329949656,373.75080757229,377.90359432309,381.83190611439,385.89770881839,389.97018224052,392.4383479509,398.12586024004,402.50086969323,406.65712867376,411.12588832951,415.52295665389,419.69101100305,424.01384721132,428.62060698183,433.03541842858,437.71969579139,442.27178896054,446.94367405519,451.89870370104,456.45311392871,461.28718092474,466.16918908107,470.92601754108,475.68284600109,481.05345877852,485.87604984397,491.34557385722,496.41773928832,501.44900015948,506.89953276991,512.35006538034,517.80059799077,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 66-tet"},"fj-72tet":{frequencies:[195.99771799087,197.9006084568,199.84081050049,201.76235675531,203.68390301012,205.67661764474,207.66424882366,209.67197738558,211.67753543014,213.81569235368,215.817711945,217.77524221208,219.99743856118,222.13074705632,223.99739198957,226.48625190056,228.66400432268,230.8417567448,233.07836734049,235.19726158904,237.57299150408,239.92824098882,242.11482810637,244.5635242187,246.9571246685,249.45164107929,251.74018824515,254.18454051941,256.66367832138,259.11562717437,261.33029065449,264.17083729204,266.68541956135,269.28382123963,271.86780237443,274.39680518722,277.19677258709,279.99673998696,282.60136082405,285.0875898049,288.0572521987,290.83532347032,293.66437746429,296.5093682426,299.34196929515,302.30156503677,304.88533909691,307.99641398565,311.29049327962,313.59634878539,317.15994365795,320.28895378996,323.39623468494,326.46784071315,329.63252571192,332.8263135694,335.99608798435,339.22681959958,342.55457018224,345.87832586624,349.232297511,352.79589238357,355.99585512627,359.32914964993,362.95873702013,366.4305162438,367.49572123288,373.6206499201,376.91868844398,380.79556638226,384.45706221286,388.2262490973,391.99543598174],description:"Franck Jedrzejewski continued fractions approx. of 72-tet"},"fj-78tet":{frequencies:[138.59131548844,139.82873794816,141.06616040788,142.33702671786,143.60064014465,144.89092073791,146.18536017274,147.4753741736,148.781853392,150.14059177914,151.48353088271,152.80580938469,154.18283848089,155.56168065029,156.95883922787,158.39007484393,159.76498868806,161.21846903757,162.6138101731,164.12129465736,165.53962683341,167.02030328094,168.55700532378,170.00534699915,171.58924774759,173.06676710248,174.62505751543,176.17540104463,177.75842638735,179.35346710269,180.93866188769,182.53490332624,184.15558359423,185.8383548595,187.50589742554,188.98815748424,190.84705739392,192.48793817839,194.02784168382,196.00771761937,197.74614527009,199.57149430335,201.28738678083,203.10796235375,204.87411854813,206.71247055903,207.88697323266,210.45347907504,212.31010032272,214.18657848213,216.10849194808,217.78635291041,220.11561871693,221.7461047815,223.87827886594,225.96410133985,228.00506741647,230.00260868294,232.05987709692,234.17153306667,236.2351968553,238.37706264012,240.41350645954,242.53480210477,244.7463656498,246.9445257794,249.1343885566,251.39820018833,253.59261982991,255.8608901325,258.1602935569,260.55167311827,262.84559834014,265.13121223875,267.51346943117,269.88835121433,272.23294113801,274.70778605744,277.18263097688],description:"Franck Jedrzejewski continued fractions approx. of 78-tet"},"fj-7tet":{frequencies:[261.6255653006,288.87822835275,318.85615771011,352.18826098158,388.70083987518,429.33426100611,473.88781639354,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 7-tet"},"fj-84tet":{frequencies:[97.99885899544,98.81551615374,99.63217331203,100.44883047033,101.26548762862,102.12512674262,102.98185182572,103.83212441184,104.68059938149,105.53723276432,106.39876119505,107.33208366167,108.20707347413,109.09306944775,109.9987192806,110.89344570537,111.83399203009,112.76581035092,113.67867643471,114.64017467391,115.58839778949,116.53918367025,117.50574088079,118.47623251688,119.43610940069,120.45693084856,121.43336875522,122.4985737443,123.47856233425,124.48503710232,125.50731064328,126.58185953578,127.62642101732,128.62350243151,129.74496824748,130.66514532725,131.9215409554,132.99845149381,134.10370178323,135.17083999371,136.34623860235,137.19840259362,138.59838629355,139.73911375276,140.87335980595,142.09834554339,143.22910160872,144.41937115117,145.59830479323,146.83218873215,148.0408295463,149.25980062382,150.498247743,151.74016876713,153.01576229113,154.29607586516,155.64524663982,156.7981743927,158.13452246991,159.45577056885,160.81864040277,162.07503603092,163.33143165907,164.81626285597,166.17197829662,167.54643634704,168.96354999214,170.33135015874,171.49800324202,173.20728566636,174.61614875551,176.03498745477,177.50736723702,178.95443816559,180.52421393897,181.99788099153,183.48722535316,183.74786061645,186.51395744293,188.05186455882,189.60648805639,191.21728584476,192.8364644749,194.36440367429,195.99771799088],description:"Franck Jedrzejewski continued fractions approx. of 84-tet"},"fj-8tet":{frequencies:[261.6255653006,285.40970760065,311.12229387098,339.29565499922,370.01329949656,403.52417698906,440.00663255101,479.64686971777,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 8-tet"},"fj-90tet":{frequencies:[69.29565774422,69.83283338565,70.37840239647,70.9071846685,71.46114704873,72.0131345185,72.59545097014,73.14541650779,73.69538204544,74.24534758309,74.83931036376,75.40998048636,76.00168913882,76.58993750677,77.19009976571,77.78084032514,78.38361285822,78.99704982841,79.59636362512,80.23707738804,80.84493403492,81.4527906818,82.08870225085,82.70772053342,83.37133822351,83.99473665966,84.69469279849,85.2869633775,85.97794571968,86.61957218027,87.31252875772,87.95218098305,88.65767976099,89.35492709123,90.08435506749,90.74431371267,91.43177063473,92.14038007748,92.85618137725,93.5491379547,94.28753430771,95.03404490636,95.75399979201,96.51895185802,97.25706350066,98.00385880968,98.74631228551,99.50145727375,100.29634673506,101.05616754365,101.84361819984,102.66023369514,103.42635484212,103.94348661633,105.02623126858,105.83336819117,106.60870422188,107.47897935838,108.27446522534,109.14066094715,110.05780935847,110.87305239075,111.72157064884,112.60544383436,113.39289449054,114.33783527796,115.19278170468,116.11704811194,116.93642244337,117.80261816517,118.79255613295,119.69249974002,120.62577459179,121.5942673625,122.52275717094,123.4722628897,124.41720367712,125.39214258478,126.36267000417,127.35418180019,128.32529211893,129.35189445588,130.27583655913,131.29703572589,132.29171023897,133.26088027735,134.39157865546,135.4415128637,136.49144707195,137.52522844622,138.59131548844],description:"Franck Jedrzejewski continued fractions approx. of 90-tet"},"fj-96tet":{frequencies:[48.99942949772,49.35708956705,49.70956615711,50.0646344868,50.44058918883,50.81422318282,51.17718191984,51.5338827476,51.91606220592,52.2660581309,52.67438671005,53.04896912563,53.45392308842,53.81904551389,54.21213476343,54.59936429746,54.9993596403,55.39065943221,55.80490581685,56.20522795327,56.62156297514,57.01751796098,57.44760699733,57.85474808165,58.26959183513,58.69162434342,59.11042288614,59.54361052887,59.98206024721,60.41025554513,60.85413018265,61.24928687215,61.73928116713,62.19158359326,62.61038213598,63.09515579158,63.54613512986,63.99925485416,64.47293354963,64.92424408448,65.33257266363,65.89578449693,66.3533941115,66.81740386053,67.32095530991,67.84536391992,68.30223505743,68.78766064103,69.29919314678,69.78706625433,70.30352927934,70.77695371893,71.27189745123,71.86582992999,72.36838818125,72.90159022832,73.41609436608,73.94459360565,74.47913283653,75.03037641838,75.5753912592,76.10549687944,76.66039776256,77.21122223883,77.82262331991,78.34524166943,78.94352530188,79.48796340741,80.07223844749,80.64489438166,81.23589627254,81.66571582953,82.40813142798,82.999033639,83.58726208435,84.21776944921,84.8067048999,85.43490271397,86.04777863014,86.69129834212,87.30807437776,87.94769397027,88.57589178434,89.20408959841,89.83228741249,90.46048522656,91.16172929808,91.87393030822,92.49330511929,93.09891604567,93.82869478287,94.4988997456,95.19889159557,95.91377688915,96.59887529551,97.28872233605,97.99885899544],description:"Franck Jedrzejewski continued fractions approx. of 96-tet"},"fj-9tet":{frequencies:[261.6255653006,282.55561052465,305.22982618403,329.64821227876,355.98232655655,384.51030051755,415.52295665389,448.50096908674,484.4917875937,523.2511306012],description:"Franck Jedrzejewski continued fractions approx. of 9-tet"},flavel:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Bill Flavel's just tuning. Tuning List 6-5-98"},fogliano:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord with D-/D and Bb-/Bb"},fogliano1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.1, Musica theorica (1529)"},fogliano2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Fogliano's Monochord no.2"},"fokker-h":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker-H 5-limit per.bl. synt.comma&small diesis, KNAW B71, 1968"},"fokker-ht":{frequencies:[261.6255653006,272.31140503734,279.67242998298,290.89121260742,305.67073265504,313.92185180985,326.66733279836,335.5942968927,349.22294231864,363.36596605244,376.74379448613,392.00137290182,407.92073675044,419.068143928,436.08264938702,447.85404100892,470.60848490625,489.4864783277,502.71810253025,523.2511306012],description:"Tempered version of Fokker-H per.bl. with better 6 tetrads, OdC"},"fokker-k":{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Fokker-K 5-limit per.bl. of 225/224 & 81/80 & 10976/10935, KNAW B71, 1968"},"fokker-l":{frequencies:[261.6255653006,271.31540105247,282.62020942966,291.99281841585,301.39265122629,313.95067836072,325.57848126297,339.14425131559,350.39138209902,363.36884069528,376.74081403286,390.69417751556,403.65087217807,420.46965851882,436.04260883433,454.2110508691,468.83301301868,484.38104661368,504.56359022259,523.2511306012],description:"Fokker-L 7-limit periodicity block 10976/10935 & 225/224 & 15625/15552, 1969"},"fokker-lt":{frequencies:[261.6255653006,272.07297743248,282.57734531132,291.77233860052,302.20925621315,313.90139500947,326.42149564976,339.58797317787,349.9403315901,363.14714144228,376.97081214523,391.19775936204,403.12344267272,419.38375585596,436.11106867998,452.98371913917,469.18728997524,484.4545223075,503.15865298196,523.2511306012],description:"Tempered version of Fokker-L per.bl. with more triads"},"fokker-m":{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker-M 7-limit periodicity block 81/80 & 225/224 & 1029/1024, KNAW B72, 1969"},"fokker-n":{frequencies:[261.6255653006,265.7783520514,273.37201925287,277.71125765371,286.15296204753,290.69507255622,299.00064605783,303.74668805875,313.95067836072,318.93402246168,328.62879235146,333.84512238879,343.38355445704,348.83408706747,358.80077526939,364.4960256705,375.57576268738,381.53728273004,392.4383479509,398.6675280771,410.05802887931,416.56688648057,429.2294430713,436.04260883433,450.69091522486,457.84473927605,470.92601754108,478.40103369253,492.94318852719,500.76768358318,515.07533168556,523.2511306012],description:"Fokker-N 7-limit periodicity block 81/80 & 2100875/2097152 & 1029/1024, 1969"},"fokker-n2":{frequencies:[261.6255653006,265.7783520514,272.52663052146,279.06726965397,286.15296204753,290.69507255622,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"Fokker-N different block shape"},"fokker-p":{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.31310567921,286.15296204753,290.69507255622,299.00064605783,306.17666156322,312.97980223949,320.35783506196,327.03195662575,334.88072358477,341.85740532612,350.39138209902,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.69417751556,400.44729382745,408.78994578219,418.60090448096,427.32175665765,437.39523080459,447.11400319927,457.84473927605,470.92601754108,478.40103369253,488.36772189445,500.76768358318,510.98743222773,523.2511306012],description:"Fokker-P 7-limit periodicity block 65625/65536 & 6144/6125 & 2401/2400, 1969"},"fokker-q":{frequencies:[261.6255653006,265.7783520514,269.10058145205,272.52663052146,274.70684356563,279.06726965397,284.76252005507,286.15296204753,290.69507255622,294.32876096318,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,318.93402246168,321.92208230347,327.03195662575,332.22294006425,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,381.53728273004,387.59343007496,392.4383479509,398.6675280771,401.85686830172,408.78994578219,412.06026534844,418.60090448096,425.24536328225,429.2294430713,436.04260883433,439.53094970501,448.50096908674,454.2110508691,457.84473927605,465.11211608996,470.92601754108,478.40103369253,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-Q 7-limit per.bl. 225/224 & 4000/3969 & 6144/6125, KNAW B72, 1969"},"fokker-r":{frequencies:[261.6255653006,264.95644634031,268.26840191956,272.52663052146,275.55899540689,279.06726965397,282.62020942966,287.04062021552,290.69507255622,294.32876096318,298.07600213285,301.80195215951,306.17666156322,310.07474405997,313.95067836072,317.94773560837,322.92069774245,327.03195662575,331.19555792538,334.88072358477,340.1962906258,344.44874425862,348.83408706747,353.19451315581,357.69120255941,363.36884069528,367.91095120397,372.08969287196,376.74081403286,382.72082695402,387.59343007496,392.4383479509,397.43466951046,402.40260287934,408.78994578219,413.33849311034,418.60090448096,423.93031414449,430.56093032327,436.04260883433,441.49314144476,447.11400319927,453.59505416773,459.26499234482,465.11211608996,470.92601754108,476.92160341255,484.38104661368,490.54793493862,496.79333688808,502.32108537715,510.29443593869,516.67311638793,523.2511306012],description:"Fokker-R 7-limit per.bl. 4375/4374 & 65625/65536 & 6144/6125, 1969"},"fokker-s":{frequencies:[261.6255653006,265.7783520514,269.10058145205,273.37201925287,273.85732695955,278.20426865732,282.55561052465,286.15296204753,290.69507255622,295.2417807931,299.00064605783,303.74668805875,304.28591884395,309.04519901133,313.95067836072,317.94773560837,322.92069774245,328.04642310345,332.22294006425,333.84512238879,338.01818641865,343.38355445704,348.83408706747,353.19451315581,358.80077526939,364.4960256705,369.13660007139,370.8542388136,375.57576268738,381.53728273004,387.59343007496,392.4383479509,398.6675280771,404.99558407833,410.05802887931,412.06026534844,417.30640298598,423.93031414449,430.56093032327,436.04260883433,442.96392008567,449.89223739901,450.69091522486,457.84473927605,463.67378109554,470.92601754108,478.40103369253,484.4917875937,492.06963465517,499.88026377668,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Fokker-S 7-limit per.bl. 4375/4374 & 323/322 & 64827/65536, 1969"},fokker_12:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Fokker's 7-limit 12-tone just scale"},fokker_12a:{frequencies:[261.6255653006,274.70684356563,293.02063313667,309.04519901133,327.03195662575,348.83408706747,367.91095120397,390.69417751556,412.06026534844,439.53094970501,465.11211608996,490.54793493862,523.2511306012],description:"Fokker's 7-limit periodicity block of 2048/2025 & 3969/4000 & 225/224"},fokker_12b:{frequencies:[261.6255653006,275.93321340298,293.02063313667,309.04519901133,332.22294006425,348.83408706747,367.91095120397,392.4383479509,412.06026534844,439.53094970501,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit semitone scale KNAW B72, 1969"},fokker_12c:{frequencies:[261.6255653006,275.93321340298,293.02063313667,311.45900631024,332.22294006425,348.83408706747,372.08969287196,392.4383479509,412.06026534844,442.96392008567,467.18850946536,496.11959049595,523.2511306012],description:"Fokker's 7-limit complementary semitone scale, KNAW B72, 1969"},fokker_12t:{frequencies:[261.6255653006,279.53180800295,293.53544531438,305.4439412874,326.66157401657,349.08351368992,366.63408494061,391.81886165309,419.06057467847,436.03416050506,457.88164994338,489.21957814041,523.2511306012],description:"Tempered version of fokker_12 with egalised 225/224, see also lumma"},fokker_12t2:{frequencies:[261.6255653006,279.53060025556,293.5302824794,305.44678713816,326.66192308793,349.10467831311,366.62831408589,391.81689264402,419.03095498017,436.04260883433,457.88067400285,489.21694446174,523.2511306012],description:"Another tempered version of fokker_12 with egalised 225/224"},fokker_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 3125/3072. KNAW B71, 1968"},fokker_22a:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,502.32108537715,523.2511306012],description:"Fokker's 22-tone periodicity block of 2048/2025 & 2109375/2097152 = semicomma"},fokker_31:{frequencies:[261.6255653006,265.7783520514,275.93321340298,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,315.35224388912,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,406.97310157871,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,482.88312345521,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone just system"},fokker_31a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,476.92160341255,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone first alternate septimal tuning"},fokker_31b:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.92208230347,327.03195662575,336.37572681506,343.38355445704,348.83408706747,357.69120255941,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,480.53675259294,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"Fokker's 31-tone second alternate septimal tuning"},fokker_31c:{frequencies:[261.6255653006,269.46602871384,272.52663052146,279.06726965397,287.4304306281,294.32876096318,297.67175429757,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,383.2405741708,392.4383479509,396.89567239676,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,465.11211608996,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & 2109375/2097152 = semicomma"},fokker_31d:{frequencies:[261.6255653006,266.13928761861,272.52663052146,279.06726965397,287.4304306281,294.32876096318,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,399.20893142792,408.78994578219,418.60090448096,425.82286018978,436.04260883433,443.56547936435,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Fokker's 31-tone periodicity block of 81/80 & W\xEF\xBF\xBDrschmidt's comma"},fokker_31d2:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Reduced version of fokker_31d by Prooijen expressibility"},fokker_41:{frequencies:[261.6255653006,264.89588486686,271.31540105247,274.70684356563,280.31310567921,283.8170195002,290.69507255622,294.32876096318,300.33547037059,305.22982618403,311.45900631024,313.95067836072,321.55899383997,325.57848126297,329.64821227876,336.37572681506,341.85740532612,348.83408706747,353.19451315581,361.75386806997,366.27579142084,373.75080757229,378.42269266694,387.59343007496,392.4383479509,400.44729382745,406.97310157871,415.27867508032,420.46965851882,425.72552925031,436.04260883433,439.53094970501,448.50096908674,455.80987376816,465.11211608996,470.92601754108,482.33849075995,488.36772189445,498.33441009638,504.56359022259,516.79124009995,523.2511306012],description:"Fokker's 7-limit supracomma per.bl. 10976/10935 & 225/224 & 496125/262144"},fokker_41a:{frequencies:[261.6255653006,264.59711493117,272.83435407277,275.93321340298,279.06726965397,287.4304306281,291.02331101095,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.77913876369,367.91095120397,372.08969287196,376.315896791,388.03108134794,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 34171875/33554432"},fokker_41b:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,287.4304306281,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.42486507835,313.95067836072,323.35923445661,327.03195662575,331.11985608357,340.65828815182,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,383.2405741708,388.03108134794,392.4383479509,397.34382730029,408.78994578219,413.89982010446,418.60090448096,431.14564594215,436.04260883433,441.49314144476,454.2110508691,459.88868900496,465.11211608996,470.92601754108,485.03885168492,490.54793493862,496.67978412536,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 41-tone periodicity block of schisma & 3125/3072"},fokker_53:{frequencies:[261.6255653006,263.718569823,268.26840191956,272.52663052146,274.70684356563,279.06726965397,282.55561052465,286.15296204753,290.69507255622,294.32876096318,299.00064605783,300.46061014991,305.22982618403,309.04519901133,313.95067836072,317.87506184023,321.92208230347,327.03195662575,329.64821227876,334.88072358477,340.65828815182,343.38355445704,348.83408706747,353.19451315581,357.69120255941,360.55273217989,366.27579142084,373.75080757229,376.74081403286,381.53728273004,386.30649876417,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.83341578697,429.2294430713,436.04260883433,439.53094970501,448.50096908674,450.69091522486,457.84473927605,465.11211608996,470.92601754108,476.92160341255,480.73697623985,490.54793493862,498.33441009638,502.32108537715,508.71637697339,515.07533168556,523.2511306012],description:"Fokker's 53-tone system, degree 37 has alternatives"},fokker_53a:{frequencies:[261.6255653006,264.89588486686,269.46602871384,272.52663052146,275.93321340298,279.38237857051,283.88190679319,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.42486507835,313.95067836072,319.36714514233,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,359.28803828513,363.36884069528,367.91095120397,372.50983809402,378.50920905758,383.2405741708,388.03108134794,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,425.82286018978,431.14564594215,436.04260883433,441.49314144476,447.01180571282,454.2110508691,459.88868900496,465.63729761752,470.92601754108,479.0507177135,484.4917875937,490.54793493862,496.67978412536,504.67894541011,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & kleisma"},fokker_53b:{frequencies:[261.6255653006,264.59711493117,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,323.35923445661,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,388.03108134794,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.35538388988,431.14564594215,436.04260883433,441.49314144476,446.50763144636,451.5790761492,459.88868900496,465.11211608996,470.92601754108,476.27480687611,485.03885168492,490.54793493862,496.11959049595,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"Fokker's 53-tone periodicity block of schisma & 2109375/2097152"},fokker_av:{frequencies:[261.6255653006,267.53238172257,273.57240048543,279.74894499065,286.06477437084,292.52336378682,299.12777114678,305.88111195206,312.78710209553,319.84901131344,327.07017092477,334.45455423048,342.00545991849,349.72704272607,357.62295854304,365.69693211485,373.95340598657,382.39606841888,391.02956482064,399.85798283974,408.88548711149,418.11704484248,427.5567798744,437.20988623572,447.08093432269,457.17458061119,467.49637893146,478.0512162812,488.84407170063,499.88088374606,511.16658268681,522.70737825664],description:"Fokker's suggestion for a shrinked octave by averaging approximations"},fokker_bosch:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Scale of "Naar Den Bosch toe", genus diatonicum cum septimis. 1/1=D'},fokker_sr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,296.75121990114,305.22982618403,315.35224388912,325.57848126297,336.37572681506,347.28371334717,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,446.50763144636,461.31528248922,474.80195184183,490.54793493862,506.45541529795,523.2511306012],description:"Fokker's 7-limit sruti scale, KNAW B72, 1969"},fokker_sr2:{frequencies:[261.6255653006,270.30192333353,279.06726965397,288.32205155576,296.75121990114,306.59245933664,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,372.08969287196,381.53728273004,394.1903048614,406.97310157871,420.46965851882,434.10464168396,448.50096908674,461.31528248922,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Fokker's complementary 7-limit sruti scale, KNAW B72, 1969"},fokker_sra:{frequencies:[261.6255653006,269.76956886185,278.7476190342,287.42460593148,296.37169586701,305.59729331129,315.11006948887,325.59707150921,336.43308557971,346.90573279191,357.7043774887,368.83916960349,381.11429755927,392.97780480816,406.05627704035,419.57000893919,433.5334812886,447.02871783796,460.94403787128,475.29252052682,490.08765232515,506.39798251136,523.2511306012],description:"Two-step approximation 9-13 to Fokker's 7-limit sruti scale"},fokker_srb:{frequencies:[261.6255653006,269.31534001393,278.64197723942,286.83190328195,296.76515515861,305.48776291796,316.06708432391,325.35701999957,336.62443200122,346.51859521924,358.51885197895,369.0565423573,381.83730669135,393.06038214356,406.67242132093,418.62545783369,433.12283887627,445.85331391262,461.29362042034,474.85209942927,491.29666030217,505.73699464332,523.2511306012],description:"Two-step maximally even approximation 11-11 to Fokker's 7-limit sruti scale"},fokker_uv:{frequencies:[220,220.05029721079,220.09166666667,220.14198483463,220.15668113546,220.24841308594,220.29876708984,220.3905582428,220.5253936656,220.68244897959,220.7744,220.82487425697,220.98214285714,221.03266460905,221.0236875,221.07421875,221.28224372864,221.41762468656,221.66763848397,221.71831695641,221.76,221.81069958848,222.01040039062,222.06115722656,222.40609622534,222.44790857143,222.4987654321,222.65722615577,222.75,222.80092592593,223.00151824951,223.05250167847,223.14544022083,223.18896568405,223.23999196793,223.44097959184,223.49206349206,223.58518518519,223.79557291667,223.88882107205,224.18534499514,224.23659907493,224.33003099121,224.48979591837,224.58333333333,224.79466029576,224.83692169189,224.88832473755,225.18617242815,225.28,225.33150434385,225.49198250729,225.5859375,225.67993164062,225.9788277551,226.03049186753,226.28571428571,226.4317558299,226.68743133545,227.08224,227.1341563786,227.29591836735,227.390625,227.44261188272,228.096,228.14814814815,229.16666666667,231,232.03125,233.6237037037,233.84353741497],description:"Table of Unison Vectors, Microsons and Minisons, from article KNAW, 1969"},foote:{frequencies:[261.6255653006,276.70272600503,293.15632631094,310.58830860439,328.48713220126,349.43001184052,368.92737853004,391.76907592069,414.58565256441,438.98455767189,465.89457252293,492.17459484008,523.2511306012],description:"Ed Foote, piano temperament. TL 9 Jun 1999, almost equal to Coleman"},forster:{frequencies:[261.6255653006,279.06726965397,283.42769574232,287.78812183066,299.00064605783,309.19384990071,319.76457981184,327.03195662575,336.37572681506,340.11323489078,343.38355445704,353.19451315581,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,387.59343007496,392.4383479509,398.6675280771,402.50086969323,406.97310157871,418.60090448096,428.11456140098,441.49314144476,442.75095666255,448.50096908674,457.84473927605,465.11211608996,483.00104363188,490.54793493862,507.3950357345,523.2511306012],description:"Cris Forster's Chrysalis tuning, XH 7+8"},fortuna11:{frequencies:[261.6255653006,274.70684356563,299.00064605783,305.22982618403,332.97799220076,343.38355445704,373.75080757229,398.6675280771,411.12588832951,448.50096908674,457.84473927605,498.33441009638,523.2511306012],description:"11-limit scale from Clem Fortuna"},fortuna_a1:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,320.24370022528,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,479.82340237272,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or G major, superset of Basandida, trivalent"},fortuna_a2:{frequencies:[261.6255653006,277.18263097687,285.30470202322,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,428.11456140098,440,466.16376151809,493.88330125613,523.2511306012],description:"Clem Fortuna, Arabic mode of 24-tET, try C or F minor"},fortuna_bag:{frequencies:[261.6255653006,266.17557513191,291.58269109838,303.42373253797,318.96815495553,348.01136516401,359.18086083642,388.55281975337,398.8194592997,432.92801877123,462.35552488468,479.64686971777,523.2511306012],description:"Bagpipe tuning from Fortuna, try key of G with F natural"},fortuna_eth:{frequencies:[261.6255653006,280.31310567921,288.69027895239,305.7551787248,323.91736656265,346.02090894595,368.95913055213,385.17097113699,414.24047839262,422.62591317789,469.58434797544,484.00729580611,523.2511306012],description:"Ethiopian Tunings from Fortuna"},fortuna_sheng:{frequencies:[261.6255653006,275.29257244317,286.94416839421,312.81317590289,320.2657782128,348.83408706747,367.19377586049,382.62738925213,417.81993264424,433.74764773521,467.75479856774,484.77678276288,523.2511306012],description:"Sheng scale on naturals starting on d, from Fortuna"},"francis_r12-14p":{frequencies:[261.6255653006,277.2273508585,293.19140419912,311.27759533081,328.56574776048,349.51003591412,369.636465861,391.67937618637,415.43871422078,438.93656251816,466.46466724696,492.84862139436,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cornet-ton"},"francis_r12-2":{frequencies:[261.6255653006,277.2831963903,293.15801965318,311.35818177599,328.6319369554,349.45847225471,369.71092870521,391.50168688506,415.45657533448,438.80025285527,466.56783666625,492.94847466277,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R12-2, fifths beat ratios 0, 1, 2. C=279.331 Cornet-ton"},"francis_r2-1":{frequencies:[261.6255653006,276.41735337657,293.40958958006,310.96959408698,328.77281747949,349.18425877583,368.55655650762,391.91325216238,414.62612565656,439.06418506387,465.92902003736,492.10921220871,523.2511306012],description:"J. Charles Francis, Bach WTC temperament R2-1, fifths beat ratios 0, 1, 2. C=249.072 Cammerton"},"francis_r2-14p":{frequencies:[261.6255653006,276.42350693124,293.47533146651,310.97644498676,328.88393162803,349.17189700163,368.56467609256,392.05867944486,414.6352601896,439.36162975058,466.01338145177,492.37181018521,523.2511306012],description:"Bach WTC theoretical temperament, 1/14 Pyth. comma, Cammerton"},francis_seal:{frequencies:[261.6255653006,275.89934348748,293.01242796531,310.38672525582,327.92787107993,349.18506556371,367.865749003,391.38524198103,413.84896721463,437.93907827641,465.58008765101,490.83740312498,523.2511306012],description:"J. Charles Francis, Bach tuning interpretion as beats/sec. from seal"},francis_suppig:{frequencies:[261.6255653006,276.33536163417,293.13939342657,310.64213412049,328.58201670643,349.47038191026,368.45885450371,391.47500324588,414.51381656966,438.73106346722,465.97531289569,491.91879926026,523.2511306012],description:"J. Charles Francis, Suppig Calculus musicus, 5ths beat ratios 0, 1, 2."},efg333:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,523.2511306012],description:"Genus primum [333]"},efg333333333337:{frequencies:[261.6255653006,275.01702890535,279.38237857051,289.72987407313,294.32876096318,309.39415751852,314.30517589183,325.94610833227,331.11985608357,343.38355445704,353.59332287831,366.6893718738,372.50983809402,386.30649876417,392.4383479509,412.52554335802,419.07356785577,434.59481110969,441.49314144476,457.84473927605,471.45776383774,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:"Genus [333333333337]"},efg333333355:{frequencies:[261.6255653006,264.89588486686,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.42486507835,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,397.34382730029,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Genus [333333355]"},efg33335:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Genus [33335]"},efg3333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Genus [3333555]"},efg33335555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Genus bis-ultra-chromaticum [33335555]"},efg333355577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,278.20426865732,279.06726965397,281.68182201554,284.8811711051,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,317.94773560837,320.49131749323,321.92208230347,325.57848126297,327.03195662575,333.84512238879,343.38355445704,348.83408706747,352.10227751942,356.10146388137,357.69120255941,360.55273217989,363.36884069528,366.27579142084,367.91095120397,372.08969287196,375.57576268738,381.53728273004,392.4383479509,400.61414686654,402.40260287934,406.97310157871,408.78994578219,412.06026534844,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,445.12682985172,450.69091522486,457.84473927605,459.88868900496,465.11211608996,469.46970335923,470.92601754108,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,508.71637697339,515.07533168556,523.2511306012],description:"Genus [333355577]"},efg33337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,386.30649876417,392.4383479509,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33337]"},efg3335:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonicum veterum correctum [3335]"},efg33355:{frequencies:[261.6255653006,272.52663052146,290.69507255622,310.07474405997,327.03195662575,348.83408706747,363.36884069528,387.59343007496,408.78994578219,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Genus diatonico-chromaticum hodiernum correctum [33355]"},efg333555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Genus diatonico-hyperchromaticum [333555]"},efg33355555:{frequencies:[261.6255653006,272.52663052146,279.06726965397,287.4304306281,294.32876096318,306.59245933664,313.95067836072,319.36714514233,327.03195662575,340.65828815182,348.83408706747,359.28803828513,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,425.82286018978,436.04260883433,459.88868900496,470.92601754108,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"Genus [33355555]"},efg333555777:{frequencies:[261.6255653006,262.79353657426,267.07609791103,268.26840191956,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,281.68182201554,286.15296204753,294.32876096318,299.00064605783,300.46061014991,305.22982618403,306.59245933664,311.45900631024,312.97980223949,313.95067836072,318.93402246168,320.49131749323,321.92208230347,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,350.39138209902,352.10227751942,357.69120255941,358.80077526939,360.55273217989,366.27579142084,367.91095120397,373.75080757229,375.57576268738,381.53728273004,392.4383479509,398.6675280771,400.61414686654,402.40260287934,408.78994578219,412.06026534844,417.30640298598,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,448.50096908674,450.69091522486,457.84473927605,459.88868900496,467.18850946536,469.46970335923,470.92601754108,476.92160341255,478.40103369253,480.73697623985,488.36772189445,490.54793493862,498.33441009638,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333555777]"},efg333557:{frequencies:[261.6255653006,265.7783520514,279.06726965397,280.31310567921,290.69507255622,299.00064605783,313.95067836072,318.93402246168,327.03195662575,332.22294006425,348.83408706747,358.80077526939,372.08969287196,373.75080757229,392.4383479509,398.6675280771,418.60090448096,425.24536328225,436.04260883433,448.50096908674,465.11211608996,478.40103369253,490.54793493862,498.33441009638,523.2511306012],description:"Genus diatonico-enharmonicum [333557]"},efg33357:{frequencies:[261.6255653006,274.70684356563,279.06726965397,305.22982618403,313.95067836072,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,406.97310157871,418.60090448096,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Genus diatonico-enharmonicum [33357]"},efg3335711:{frequencies:[261.6255653006,265.58571790036,269.80136421624,275.93321340298,286.15296204753,294.32876096318,295.09524211152,303.52653474327,314.76825825228,321.92208230347,327.03195662575,331.98214737546,337.2517052703,343.38355445704,354.11429053382,359.73515228832,367.91095120397,379.40816842909,386.30649876417,392.4383479509,393.46032281536,404.70204632437,429.2294430713,441.49314144476,442.64286316727,449.66894036041,457.84473927605,472.15238737843,482.88312345521,490.54793493862,505.87755790546,515.07533168556,523.2511306012],description:"Genus [3 3 3 5 7 11], expanded hexany 1 3 5 7 9 11"},efg333577:{frequencies:[261.6255653006,267.07609791103,281.68182201554,286.15296204753,294.32876096318,300.46061014991,305.22982618403,321.92208230347,327.03195662575,333.84512238879,343.38355445704,348.83408706747,367.91095120397,375.57576268738,381.53728273004,392.4383479509,400.61414686654,429.2294430713,436.04260883433,450.69091522486,457.84473927605,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Genus [333577]"},efg3337:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,348.83408706747,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus [3337]"},efg33377:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,515.07533168556,523.2511306012],description:"Genus [33377] Bi-enharmonicum simplex"},efg335:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Genus secundum [335]"},efg3355:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Genus chromaticum veterum correctum [3355]"},efg33555:{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,367.91095120397,392.4383479509,408.78994578219,418.60090448096,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Genus bichromaticum [33555]"},efg335555577:{frequencies:[261.6255653006,267.07609791103,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,300.46061014991,305.22982618403,306.59245933664,312.97980223949,313.95067836072,320.49131749323,327.03195662575,333.84512238879,334.88072358477,341.85740532612,343.38355445704,348.83408706747,357.69120255941,366.27579142084,375.57576268738,381.53728273004,384.58958099188,390.69417751556,392.4383479509,400.61414686654,408.78994578219,417.30640298598,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,446.50763144636,457.84473927605,469.46970335923,476.92160341255,480.73697623985,488.36772189445,490.54793493862,500.76768358318,502.32108537715,512.78610798918,523.2511306012],description:"Genus [335555577]"},efg33557:{frequencies:[261.6255653006,274.70684356563,279.06726965397,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,429.2294430713,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Genus chromatico-enharmonicum [33557]"},efg335577:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Genus chromaticum septimis triplex [335577]"},efg3357:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,343.38355445704,348.83408706747,381.53728273004,392.4383479509,429.2294430713,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum vocale [3357]"},efg33577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,523.2511306012],description:"Genus [33577]"},efg337:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,515.07533168556,523.2511306012],description:"Genus quintum [337]"},efg3377:{frequencies:[261.6255653006,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [3377]"},efg33777:{frequencies:[261.6255653006,267.07609791103,299.00064605783,300.46061014991,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777]"},efg33777a:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,457.84473927605,523.2511306012],description:"Genus [33777] with comma discarded which disappears in 31-tET"},efg355:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Genus tertium [355]"},efg3555:{frequencies:[261.6255653006,306.59245933664,327.03195662575,383.2405741708,392.4383479509,408.78994578219,490.54793493862,510.98743222773,523.2511306012],description:"Genus enharmonicum veterum correctum [3555]"},efg35555:{frequencies:[261.6255653006,306.59245933664,313.95067836072,327.03195662575,334.88072358477,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Genus [35555]"},efg35557:{frequencies:[261.6255653006,268.26840191956,274.70684356563,286.15296204753,306.59245933664,313.95067836072,327.03195662575,343.38355445704,357.69120255941,366.27579142084,392.4383479509,408.78994578219,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus [35557]"},efg3557:{frequencies:[261.6255653006,274.70684356563,286.15296204753,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus enharmonicum instrumentale [3557]"},efg35577:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,358.80077526939,366.27579142084,373.75080757229,392.4383479509,418.60090448096,429.2294430713,448.50096908674,457.84473927605,478.40103369253,490.54793493862,523.2511306012],description:"Genus [35577]"},efg357:{frequencies:[261.6255653006,286.15296204753,327.03195662575,343.38355445704,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Genus sextum [357] & 7-limit Octony, see ch.6 p.118"},efg35711:{frequencies:[261.6255653006,269.80136421624,286.15296204753,295.09524211152,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,392.4383479509,393.46032281536,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,523.2511306012],description:"Genus [3 5 7 11]"},efg3571113:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.01701053212,278.99913799634,286.15296204753,292.28481123426,295.09524211152,314.76825825228,318.85615771011,319.68651228748,327.03195662575,337.2517052703,343.38355445704,348.74892249543,359.73515228832,365.35601404283,371.99885066179,383.62381474497,392.4383479509,393.46032281536,398.57019713763,425.14154361347,429.2294430713,438.4272168514,449.66894036041,457.84473927605,464.99856332724,472.15238737843,479.52976843121,490.54793493862,511.49841965996,523.2511306012],description:"Genus [3 5 7 11 13]"},efg3577:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,429.2294430713,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Genus [3577]"},efg35777:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,300.46061014991,327.03195662575,343.38355445704,373.75080757229,375.57576268738,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777]"},efg35777a:{frequencies:[261.6255653006,280.31310567921,286.15296204753,299.00064605783,327.03195662575,343.38355445704,373.75080757229,392.4383479509,400.61414686654,429.2294430713,448.50096908674,457.84473927605,490.54793493862,500.76768358318,523.2511306012],description:"Genus [35777] with comma discarded which disappears in 31-tET"},efg377:{frequencies:[261.6255653006,300.46061014991,343.38355445704,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus octavum [377]"},efg3777:{frequencies:[261.6255653006,262.90303388117,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Genus [3777]"},efg37777:{frequencies:[261.6255653006,262.90303388117,299.00064605783,300.46061014991,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777]"},efg37777a:{frequencies:[261.6255653006,299.00064605783,343.38355445704,350.53737850823,392.4383479509,400.61414686654,448.50096908674,457.84473927605,523.2511306012],description:"Genus [37777] with comma discarded that disappears in 31-tET"},efg555:{frequencies:[261.6255653006,327.03195662575,408.78994578219,510.98743222773,523.2511306012],description:"Genus quartum [555]"},efg55557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,366.27579142084,408.78994578219,418.60090448096,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [55557]"},efg5557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,357.69120255941,408.78994578219,447.11400319927,457.84473927605,510.98743222773,523.2511306012],description:"Genus [5557]"},efg55577:{frequencies:[261.6255653006,286.15296204753,291.99281841585,299.00064605783,327.03195662575,357.69120255941,373.75080757229,408.78994578219,447.11400319927,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"Genus [55577]"},efg557:{frequencies:[261.6255653006,286.15296204753,327.03195662575,366.27579142084,418.60090448096,457.84473927605,523.2511306012],description:"Genus septimum [557]"},efg5577:{frequencies:[261.6255653006,293.02063313667,320.49131749323,334.88072358477,366.27579142084,400.61414686654,418.60090448096,457.84473927605,512.78610798918,523.2511306012],description:"Genus [5577]"},efg55777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,320.49131749323,327.03195662575,366.27579142084,373.75080757229,400.61414686654,418.60090448096,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"Genus [55777]"},efg577:{frequencies:[261.6255653006,286.15296204753,327.03195662575,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus nonum [577]"},efg5777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,373.75080757229,400.61414686654,457.84473927605,500.76768358318,523.2511306012],description:"Genus [5777]"},efg57777:{frequencies:[261.6255653006,286.15296204753,299.00064605783,327.03195662575,350.53737850823,373.75080757229,400.61414686654,438.17172313528,457.84473927605,500.76768358318,523.2511306012],description:"Genus [57777]"},efg777:{frequencies:[261.6255653006,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus decimum [777]"},efg77777:{frequencies:[261.6255653006,299.00064605783,341.71502406609,350.53737850823,400.61414686654,457.84473927605,523.2511306012],description:"Genus [77777]"},eikohole1:{frequencies:[261.6255653006,277.4816601673,305.22982618403,332.97799220076,436.04260883433,475.68284600109,523.2511306012],description:"First eikohole ball <6 9 13 17 20|-epimorphic"},eikohole2:{frequencies:[261.6255653006,266.38239376061,274.70684356563,285.40970760065,299.68019298069,313.95067836072,332.97799220076,348.83408706747,366.27579142084,380.54627680087,392.4383479509,399.57359064092,418.60090448096,428.11456140098,443.97065626768,470.92601754108,488.36772189445,499.46698830115,523.2511306012],description:"Second eikohole ball"},eikohole4:{frequencies:[261.6255653006,274.70684356563,279.79400733536,287.78812183066,305.22982618403,313.95067836072,319.76457981184,335.75280880244,348.83408706747,359.73515228832,366.27579142084,373.05867644715,383.71749577421,392.4383479509,406.97310157871,418.60090448096,419.69101100305,431.68218274599,447.67041173658,457.84473927605,470.92601754108,479.64686971777,488.36772189445,503.62921320365,523.2511306012],description:"Fourth eikohole ball"},eikohole5:{frequencies:[261.6255653006,266.38239376061,274.70684356563,279.06726965397,285.40970760065,287.78812183066,294.32876096318,295.98043751179,299.68019298069,305.22982618403,313.95067836072,321.08592105074,325.57848126297,332.97799220076,342.49164912079,348.83408706747,353.19451315581,355.17652501415,363.24871876447,366.27579142084,374.60024122586,380.54627680087,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Fifth eikohole ball"},eikohole6:{frequencies:[261.6255653006,266.38239376061,272.43653907335,274.70684356563,279.06726965397,285.40970760065,287.78812183066,293.02063313667,294.32876096318,295.98043751179,299.00064605783,299.68019298069,305.22982618403,310.77945938738,313.95067836072,317.12189733406,321.08592105074,325.57848126297,329.64821227876,332.97799220076,336.37572681506,342.49164912079,348.83408706747,349.6268918108,353.19451315581,355.17652501415,356.76213450082,363.24871876447,366.27579142084,374.60024122586,380.54627680087,383.71749577421,392.4383479509,399.57359064092,406.97310157871,412.06026534844,418.60090448096,428.11456140098,431.68218274599,439.53094970501,443.97065626768,448.50096908674,449.52028947103,456.65553216105,457.84473927605,465.11211608996,466.16918908107,470.92601754108,475.68284600109,484.33162501929,488.36772189445,499.46698830115,507.3950357345,513.73747368118,523.2511306012],description:"Sixth eikohole ball"},eikosany:{frequencies:[261.6255653006,269.80136421624,274.70684356563,287.78812183066,294.32876096318,305.22982618403,323.76163705949,335.75280880244,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,412.06026534844,419.69101100305,431.68218274599,457.84473927605,470.92601754108,479.64686971777,503.62921320365,523.2511306012],description:"3)6 1.3.5.7.9.11 Eikosany (1.3.5 tonic)"},ekring1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,376.74081403286,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Single-tie circular mirroring of 3:4:5"},ekring2:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,336.37572681506,343.38355445704,384.42940207435,400.61414686654,448.50096908674,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Single-tie circular mirroring of 6:7:8"},ekring3:{frequencies:[261.6255653006,266.96486255163,299.00064605783,305.10270005901,327.03195662575,333.70607818954,341.71502406609,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,523.2511306012],description:"Single-tie circular mirroring of 4:5:7"},ekring4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,376.74081403286,392.4383479509,401.85686830172,436.04260883433,446.50763144636,465.11211608996,502.32108537715,523.2511306012],description:"Single-tie circular mirroring of 4:5:6"},ekring5:{frequencies:[261.6255653006,263.718569823,269.10058145205,305.22982618403,322.92069774245,366.27579142084,373.75080757229,376.74081403286,384.42940207435,439.53094970501,448.50096908674,512.78610798918,523.2511306012],description:"Single-tie circular mirroring of 3:5:7"},ekring5bp:{frequencies:[261.6255653006,282.55561052465,336.37572681506,363.28578496026,366.27579142084,395.57785473451,432.48307733364,512.78610798918,560.62621135843,605.4763082671,610.45965236807,659.29642455751,784.8766959018],description:"Single-tie BP circular mirroring of 3:5:7"},ekring6:{frequencies:[261.6255653006,288.32205155576,299.00064605783,336.37572681506,348.83408706747,384.42940207435,392.4383479509,406.97310157871,432.48307733364,465.11211608996,494.26637409559,512.57253609913,523.2511306012],description:"Single-tie circular mirroring of 6:7:9"},ekring7:{frequencies:[261.6255653006,266.96486255163,290.69507255622,296.62762505737,322.99452506247,336.37572681506,343.24053756638,406.97310157871,415.27867508032,432.48307733364,470.92601754108,480.53675259294,523.2511306012],description:"Single-tie circular mirroring of 5:7:9"},ekring7bp:{frequencies:[261.6255653006,311.45900631024,336.37572681506,400.44729382745,432.48307733364,436.04260883433,470.92601754108,514.86080634958,610.45965236807,667.41215637908,720.80512888941,726.73768139056,784.8766959018],description:"Single-tie BP circular mirroring of 5:7:9"},ellis:{frequencies:[261.6255653006,277.10015133873,293.57875905702,310.98767008297,329.52610437773,349.11112716429,369.96685849926,391.93834696391,415.15022554673,439.86813926913,465.98150356841,493.78915701915,523.2511306012],description:"Alexander John Ellis' imitation equal temperament (1875)"},ellis_24:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,294.32876096318,298.00787047521,306.59245933664,310.42486507835,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,397.34382730029,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,523.2511306012],description:"Ellis, from p.421 of Helmholtz, 24 tones of JI for 1 manual harmonium"},ellis_eb:{frequencies:[261.6255653006,277.21587437848,293.6537610003,311.19285946782,329.68548178616,349.2169654334,370.02116610622,391.93834696391,415.32381240723,439.98064151826,466.28928903228,494.02822100775,523.2511306012],description:"Ellis' new equal beating temperament for pianofortes (1885)"},ellis_harm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,353.19451315581,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ellis's Just Harmonium"},ellis_mteb:{frequencies:[261.6255653006,273.31920907322,292.34465012884,313.05587813274,326.9349299255,350.18846153218,365.78692922515,391.15004079048,408.78346942429,437.23842445073,468.2723780569,489.17031487243,523.2511306012],description:"Ellis' equal beating meantone tuning (1885)"},enh14:{frequencies:[261.6255653006,267.70988077271,274.08392555301,348.83408706747,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"14/11 Enharmonic"},enh15:{frequencies:[261.6255653006,270.64713651786,280.31310567921,356.76213450082,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Tonos-15 Enharmonic"},enh15_inv:{frequencies:[261.6255653006,331.39238271409,340.11323489078,348.83408706747,383.71749577421,488.36772189445,505.80942624783,523.2511306012],description:"Inverted Enharmonic Tonos-15 Harmonia"},enh15_inv2:{frequencies:[261.6255653006,270.34641747729,279.06726965397,348.83408706747,383.71749577421,392.4383479509,401.15920012759,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-15"},enh17:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,404.33041910093,413.73345210327,423.58424858192,523.2511306012],description:"Tonos-17 Enharmonic"},enh17_con:{frequencies:[261.6255653006,269.55361273395,277.97716313189,370.63621750918,378.52209447746,386.75083566176,494.18162334558,523.2511306012],description:"Conjunct Tonos-17 Enharmonic"},enh19:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,382.37582620857,389.87339142835,397.67085925691,523.2511306012],description:"Tonos-19 Enharmonic"},enh19_con:{frequencies:[261.6255653006,268.69652652494,276.16031892841,355.06326719367,361.51896296083,368.21375857121,451.89870370104,523.2511306012],description:"Conjunct Tonos-19 Enharmonic"},enh2:{frequencies:[261.6255653006,266.71168334607,277.18263097687,349.22823143301,391.99543598175,399.61600264311,415.30469757995,523.2511306012],description:"1:2 Enharmonic. New genus 2 + 4 + 24 parts"},enh21:{frequencies:[261.6255653006,268.0066766494,274.70684356563,343.38355445704,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Tonos-21 Enharmonic"},enh21_inv:{frequencies:[261.6255653006,336.37572681506,342.60490694126,348.83408706747,398.6675280771,498.33441009638,510.79277034879,523.2511306012],description:"Inverted Enharmonic Tonos-21 Harmonia"},enh21_inv2:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,398.6675280771,411.12588832951,423.58424858192,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-21"},enh23:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,376.08675011961,388.21858076863,401.15920012759,523.2511306012],description:"Tonos-23 Enharmonic"},enh23_con:{frequencies:[261.6255653006,267.43946675172,273.51763645063,334.29933343966,343.8507429665,353.96400011258,462.87600014722,523.2511306012],description:"Conjunct Tonos-23 Enharmonic"},enh25:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,408.78994578219,421.97671822677,436.04260883433,523.2511306012],description:"Tonos-25 Enharmonic"},enh25_con:{frequencies:[261.6255653006,269.71707762948,278.32506946872,363.36884069528,373.75080757229,384.74347838324,503.12608711654,523.2511306012],description:"Conjunct Tonos-25 Enharmonic"},enh27:{frequencies:[261.6255653006,269.10058145205,277.01530443593,353.19451315581,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Tonos-27 Enharmonic"},enh27_inv:{frequencies:[261.6255653006,329.45441556372,339.14425131559,348.83408706747,387.59343007496,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Enharmonic Tonos-27 Harmonia"},enh27_inv2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,387.59343007496,397.28326582684,406.97310157871,523.2511306012],description:"Inverted harmonic form of the enharmonic Tonos-27"},enh29:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,379.35706968587,389.08417403679,399.32323124828,523.2511306012],description:"Tonos-29 Enharmonic"},enh29_con:{frequencies:[261.6255653006,266.21548749886,270.96933548991,344.87006335079,352.8902973822,361.29244731988,474.19633710734,523.2511306012],description:"Conjunct Tonos-29 Enharmonic"},enh31:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,368.65420565085,377.22755927063,386.2091678247,523.2511306012],description:"Tonos-31 Enharmonic. Tone 24 alternates with 23 as MESE or A"},enh31_con:{frequencies:[261.6255653006,270.34641747729,279.66870773512,337.93302184661,352.6257619269,360.46188996972,368.65420565085,450.57736246214,523.2511306012],description:"Conjunct Tonos-31 Enharmonic"},enh33:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,392.4383479509,401.56482115906,411.12588832951,523.2511306012],description:"Tonos-33 Enharmonic"},enh33_con:{frequencies:[261.6255653006,269.80136421624,278.50463402967,359.73515228832,367.38909169871,375.37581108347,479.64686971777,523.2511306012],description:"Conjunct Tonos-33 Enharmonic"},enh_invcon:{frequencies:[261.6255653006,283.42769574232,370.63621750918,381.53728273004,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Enharmonic Conjunct Phrygian Harmonia"},enh_mod:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Enharmonic After Wilson's Purvi Modulations, See page 111"},enh_perm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Permuted Enharmonic, After Wilson's Marwa Permutations, See page 110."},enn45ji:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.92069774245,329.64821227876,336.37572681506,339.14425131559,346.06556256693,348.83408706747,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,392.4383479509,395.57785473451,403.65087217807,406.97310157871,415.27867508032,423.93031414449,427.32175665765,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.78610798918,523.2511306012],description:"Detempered Ennealimma[45], Hahn reduced"},enn72synch:{frequencies:[195.99771799087,197.54967854522,199.11392792408,201.62391554947,203.22042578925,204.82957760946,207.41161549338,209.05395423619,211.68924370912,213.36545381699,215.05493658943,217.76587316352,219.49019959291,221.22817968434,224.01693484168,225.790758792,228.63703016722,230.44743589451,232.27217821307,235.20015301436,237.06252857463,238.93964952543,241.95167308427,243.86750892427,246.94165062806,248.89699839908,250.8678291188,254.03021536301,256.04169222048,258.06909647124,261.3222603528,263.39147750593,266.71173418544,268.8236265844,270.95224149283,274.36780754746,276.54032271274,278.73004041423,282.24365173996,284.47852987378,288.0646054292,290.34557537779,292.64460663558,296.33362372129,298.68006816723,301.0450940916,304.84000597616,307.25380610435,311.12698372207,313.59056753865,316.0736586482,320.05801564518,322.59231767928,325.14668697146,329.24541662461,331.85246687263,336.03572815421,338.69654584276,341.37843257302,345.68177614255,348.4189737305,351.17784515594,355.60471802638,358.42048803112,362.93866010991,365.81250216232,368.70910003837,373.35696816148,376.31330506793,379.29305101359,384.07434037944,387.11553797119,391.99543598174],description:"Poptimal synchonized beating ennealimmal tuning, TM 10-10-2005"},ennea45:{frequencies:[261.6255653006,267.02028728287,269.13615104392,274.68574138534,276.8623300691,282.57123430547,288.39787286736,290.68311542614,296.67700440585,299.02785016604,305.1938252949,311.48692526882,313.95512370264,320.42888174436,322.96795420876,329.62755691287,336.42448069667,339.09030198792,346.08234767737,348.824677577,356.01744619623,363.3585507705,366.23777597441,373.78960287068,376.751482929,384.52012478698,392.44893391322,395.5586690753,403.715093104,406.91412394911,415.30469757995,423.86828492968,427.22700928979,436.03643483576,439.49155400205,448.55387459245,457.80308677504,461.43068321685,470.94538888861,474.67712392136,484.46499932732,494.45467284607,498.37269363637,508.649143962,512.67967026301,523.2511306012],description:"Ennealimmal-45, in a 7-limit least-squares tuning, g=48.999, G.W. Smith"},epimore_enh:{frequencies:[261.6255653006,265.11390617127,279.06726965397,348.83408706747,392.4383479509,397.67085925691,418.60090448096,523.2511306012],description:"New Epimoric Enharmonic, Dorian mode of the 4th new Enharmonic on Hofmann's list"},eratos_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,392.4383479509,413.09299784305,436.04260883433,523.2511306012],description:"Dorian mode of Eratosthenes's Chromatic. same as Ptol. Intense Chromatic"},eratos_diat:{frequencies:[261.6255653006,275.62199471997,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Dorian mode of Eratosthenes's Diatonic, Pythagorean"},eratos_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,392.4383479509,402.50086969323,413.09299784305,523.2511306012],description:"Dorian mode of Eratosthenes's Enharmonic"},erlangen:{frequencies:[261.6255653006,275.62199471997,293.99679436797,310.07474405997,327.03195662575,348.83408706747,367.49599295996,392.4383479509,413.43299207996,440.99519155196,465.11211608996,490.54793493862,523.2511306012],description:"Anonymus: Pro clavichordiis faciendis, Erlangen 15th century"},erlangen2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Revised Erlangen"},erlich1:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,433.12277132725,461.29357245868,491.2966347616,523.2511306012],description:"Asymmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich10:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Canonical JI interpretation of the Pentachordal decatonic mode of 22-tET"},erlich10s1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Superparticular version of erlich10 using 50/49 decatonic comma"},erlich10s2:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,470.92601754108,523.2511306012],description:"Other superparticular version of erlich10 using 50/49 decatonic comma"},erlich11:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Canonical JI interpretation of the Symmetrical decatonic mode of 22-tET"},erlich11s1:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Superparticular version of erlich11 using 50/49 decatonic comma"},erlich11s2:{frequencies:[261.6255653006,280.31310567921,305.22982618403,311.45900631024,348.83408706747,373.75080757229,392.4383479509,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Other superparticular version of erlich11 using 50/49 decatonic comma"},erlich12:{frequencies:[261.6255653006,267.01308914069,282.57123920205,288.39008844866,305.19382000629,311.47852302926,329.62755691287,336.41541160581,356.01745236555,363.34874301751,384.52011812375,392.4383479509,415.30469757995,423.85685859121,448.5538823653,457.7907297806,484.46499093218,494.44133512215,523.2511306012],description:"Two 9-tET scales 3/2 shifted, Paul Erlich, TL 5-12-2001"},erlich13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Just scale by Paul Erlich (2002)"},erlich2:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,476.05893615592,523.2511306012],description:"Asymmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich3:{frequencies:[261.6255653006,278.64199172491,296.7651860139,326.1838132033,347.39918201406,369.99442271164,394.05928374402,419.68935090103,461.29357245868,491.2966347616,523.2511306012],description:"Symmetrical Major decatonic mode of 22-tET, Paul Erlich"},erlich4:{frequencies:[261.6255653006,278.64199172491,296.7651860139,316.06713361714,347.39918201406,369.99442271164,394.05928374402,419.68935090103,446.98642698175,491.2966347616,523.2511306012],description:"Symmetrical Minor decatonic mode of 22-tET, Paul Erlich"},erlich5:{frequencies:[261.6255653006,269.33066959279,278.10477655849,287.16472157287,295.62197660533,306.17967660611,315.19693888202,326.45372959864,335.05049156411,348.07025322573,357.23626005287,368.87410717392,380.89108570115,393.29954676976,406.11224388345,419.34234602259,433.00345117936,444.40607048653,461.67529188567,473.83294924974,490.75518955849,505.2083639382,523.2511306012],description:"Unequal 22-note compromise between decatonic & Indian srutis, Paul Erlich"},erlich6:{frequencies:[261.6255653006,274.70684356563,280.31310567921,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Scale of consonant tones against 1/1-3/2 drone. TL 23-9-1998"},erlich7:{frequencies:[261.6255653006,272.64118737561,277.98432293805,281.84855879469,292.47977325983,303.51199286577,307.73108663824,313.76190292287,326.97270111135,337.05955506058,340.85784563832,350.05627231138,365.1325261687,373.60234843661,378.13992750117,391.18115131013,406.9458559663,413.62886206386,420.42161880722,437.36472209676,452.44848028305,457.94368329907,468.56640608675,488.7466646507,501.93603498211,507.59230220159,523.2511306012],description:"Meantone-like circle of sinuoidally varying fifths, TL 08-12-99"},erlich8:{frequencies:[261.6255653006,263.902226729,277.18263097687,279.59466973861,293.66476791741,296.22023396764,311.12698372208,313.83440569119,329.62755691287,332.49597057,349.22823143301,352.26720984209,369.99442271164,373.21410818061,391.99543598175,395.40657391157,415.30469757995,418.91867232636,440,443.82887286778,466.16376151809,470.22031101449,493.88330125613,498.18106573801,523.2511306012],description:"Two 12-tET scales 15 cents shifted, Paul Erlich"},erlich9:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,302.70726563706,308.34441624714,319.76457981184,332.97799220076,345.34574619679,356.76213450082,369.97554688974,383.71749577421,396.40237166758,411.12588832951,428.11456140098,436.04260883433,452.23847716247,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"11-limit periodicity block, u.v.: 9801/9800 243/242 126/125 100/99"},erlich_bpf:{frequencies:[261.6255653006,269.93113880221,277.4816601673,282.55561052465,293.6613488068,301.87565226992,311.45900631024,319.76457981184,328.70904358281,336.37572681506,347.05432131712,356.76213450082,366.27579142084,377.90359432309,388.47432423422,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,591.67627844905,610.45965236807,624.69777837082,642.17184210147,659.29642455751,680.22646978156,699.2537836216,726.73768139056,740.02659899313,760.72664372021,784.8766959018],description:"Erlich's 39-tone Triple Bohlen-Pierce scale"},erlich_bpp:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.6613488068,299.68019298069,311.45900631024,319.76457981184,323.65460841914,336.37572681506,345.34574619679,356.76213450082,366.27579142084,380.67211882362,385.30310526088,400.44729382745,411.12588832951,419.55227017296,436.04260883433,447.67041173658,458.69417292962,470.92601754108,489.43558134466,499.46698830115,512.78610798918,528.59042785223,539.42434736524,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.27431887171,642.17184210147,659.29642455751,685.20981388252,699.2537836216,720.80512888941,740.02659899313,764.49028821604,784.8766959018],description:"Periodicity block for erlich_bpf, 1625/1617 1331/1323 275/273 245/243"},erlich_bpp2:{frequencies:[261.6255653006,268.60224704195,277.4816601673,282.55561052465,293.92501780685,299.68019298069,311.45900631024,319.76457981184,326.02570445152,336.37572681506,345.34574619679,356.76213450082,366.27579142084,377.90359432309,385.30310526088,400.44729382745,411.12588832951,422.62591317789,436.04260883433,447.67041173658,458.69417292962,470.92601754108,485.87604984397,499.46698830115,512.78610798918,528.59042785223,543.37617408586,560.62621135843,575.57624366132,594.60355750136,610.45965236807,629.83932387181,642.17184210147,659.29642455751,685.20981388252,698.62650953896,726.73768139056,740.02659899313,764.49028821604,784.8766959018],description:"Improved shape for erlich_bpp"},erlich_bppe:{frequencies:[261.6255653006,269.03526454087,276.77324548748,284.61195549492,292.79795257063,301.09050901183,309.7504615497,318.52314490095,327.68449417797,337.10934179701,346.6568752383,356.62740568226,366.72772736951,377.27553481706,387.96064596243,399.11915372018,410.59860200806,422.22748385656,434.37157296247,446.67374500165,459.5209564409,472.53540627884,486.12644973042,499.89441151621,514.27235352402,529.06383329425,544.0478609495,559.69574261012,575.54731703113,592.10118472076,608.870542156,626.38285104305,644.39884822068,662.64936456684,681.70845767885,701.01565227402,721.17823493702,741.60327945962,762.93324174612,784.8766959018],description:"LS optimal 3:5:7:11:13 tempering, virtually equal, g=780.2702 cents"},erlich_bppm:{frequencies:[261.6255653006,269.3148593258,276.83859227209,284.97500405989,292.93622770824,301.54575630263,309.96990811138,319.08006614158,327.99406628962,337.15709295818,347.06629484351,356.76213450082,367.24753706379,377.50717076432,388.60227773252,399.45849178361,410.61798882758,422.6862401977,434.49464068244,447.26463523836,459.75967424319,473.27221959449,486.49381977384,500.79209531182,514.78250488433,529.16376146212,544.7161244152,559.93362036345,576.39032675477,592.49269103014,609.9063234692,626.94500947499,644.45969779399,663.40066444061,681.93379843592,701.97614206495,721.5869464624,742.79471409673,763.54584931731,784.8766959018],description:"MM optimal 3:5:7:11:13 tempering, g=780.352 cents"},erlich_paj:{frequencies:[261.6255653006,269.74106841426,278.59741216196,287.23937405609,296.67040683594,305.87298460253,315.91563888094,325.71519477697,336.4093235789,346.84458402385,358.23265591403,369.99442271164,381.47147728046,393.99623872149,406.21781843768,419.55531290213,432.56972318844,446.77218107119,460.63084592459,475.75462791404,490.51231476219,506.61748047856,523.2511306012],description:"Erlich's Pajara or Twintone, with RMS optimal generator"},erlich_paj2:{frequencies:[261.6255653006,270.25447814202,278.68577354399,287.87753105276,296.85845221806,306.64959036092,316.21614384055,326.645747324,336.83612131731,347.94582350257,358.80069640371,369.99442271164,382.1975482805,394.12120058634,407.1203087173,419.82124923186,433.66800958456,447.19715926063,461.9468459571,476.35821106408,492.06970256841,507.42081104304,523.2511306012],description:"Erlich's Pajara or Twintone with minimax optimal generator"},escapade:{frequencies:[261.6255653006,270.11362843741,278.8770761192,287.9248395776,297.26614463769,306.91051483225,316.86778450163,327.1481015562,337.76194863153,348.72014864112,360.03386958939,371.71464785337,383.77439429365,392.56657056143,405.30282760495,418.45229174958,432.02837124332,446.04490958069,460.51619165905,475.45697355792,490.88248752006,506.80846290374,523.2511306012],description:"Escapade temperament, g=55.275493, 5-limit"},"et-mix6":{frequencies:[261.6255653006,293.66476791741,300.52885648597,311.12698372208,329.62755691287,345.21700307457,369.99442271164,396.55020354877,415.30469757995,440,455.51656649021,466.16376151809,523.2511306012],description:"Mix of equal temperaments from 1-6 (= 4-6)"},euler:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Euler's Monochord (a mode of Ellis's duodene) (1739), genus [33355]"},euler20:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,489.33808574423,509.07699553894,513.57043963064,523.2511306012],description:"Genus [3333555] tempered by 225/224-planar"},euler24:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,308.1508239679,320.58100381398,326.62388782443,329.50688232588,342.79852229325,366.55580177366,381.34192228364,384.70789368407,391.95955371998,407.7704102616,411.36965665618,427.96347506501,439.87918162894,457.62301915088,480.28481865546,489.33808574423,493.65730140218,509.07699553894,513.57043963064,523.2511306012],description:"Genus [33333555] tempered by 225/224-planar"},euler_diat:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Euler's genus diatonicum veterum correctum"},euler_enh:{frequencies:[261.6255653006,267.90457886781,275.62199471997,348.83408706747,392.4383479509,401.85686830172,413.43299207996,523.2511306012],description:"Euler's Old Enharmonic, From Tentamen Novae Theoriae Musicae"},euler_gm:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,348.83408706747,361.75386806997,372.08969287196,385.87079260796,523.2511306012],description:"Euler's Genus Musicum, Octony based on Archytas's Enharmonic"},exptriad2:{frequencies:[261.6255653006,306.59245933664,327.03195662575,367.91095120397,392.4383479509,459.88868900496,490.54793493862,523.2511306012],description:"Two times expanded major triad"},exptriad3:{frequencies:[261.6255653006,269.46602871384,275.93321340298,279.06726965397,287.4304306281,294.32876096318,297.67175429757,303.14928230307,306.59245933664,313.95067836072,323.35923445661,327.03195662575,344.91651675372,348.83408706747,359.28803828513,367.91095120397,372.08969287196,378.93660287884,383.2405741708,392.4383479509,404.19904307077,408.78994578219,418.60090448096,431.14564594215,436.04260883433,446.50763144636,459.88868900496,490.54793493862,505.24880383846,517.37477513058,523.2511306012],description:"Three times expanded major triad"},iivv17:{frequencies:[261.6255653006,269.80136421624,277.97716313189,283.42769574232,294.32876096318,305.22982618403,318.85615771011,327.03195662575,343.38355445704,348.83408706747,359.73515228832,367.91095120397,370.63621750918,392.4383479509,416.96574469783,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"17-limit IIVV"},"indian-ayyar":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Carnatic sruti system, C.Subrahmanya Ayyar, 1976. alt:21/20 25/16 63/40 40/21"},"indian-dk":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,465.11211608996,523.2511306012],description:"Raga Darbari Kanada"},"indian-ellis":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,367.68998366571,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Ellis's Indian Chromatic, theoretical #74 of App.XX, p.517 of Helmholtz"},"indian-hahn":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Indian shrutis Paul Hahn proposal"},"indian-hrdaya1":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,328.55303549378,348.83408706747,375.07381928051,392.4383479509,428.11456140098,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Bhatkande's interpretation"},"indian-hrdaya2":{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,330.47439827444,348.83408706747,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"From Hrdayakautaka of Hrdaya Narayana (17th c) Levy's interpretation"},"indian-invrot":{frequencies:[261.6255653006,267.90457886781,279.06726965397,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Inverted and rotated North Indian gamut"},"indian-magrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Ma-grama (Sa Ri Ga Ma Pa Dha Ni Sa)"},"indian-newbengali":{frequencies:[261.6255653006,269.13627541126,277.02257024271,285.46954808622,294.32876096318,303.84527498141,313.95067836072,324.71413568646,336.35938765066,348.83408706747,358.01090280364,367.91095120397,377.98706287655,388.6137256405,400.23209335925,412.19781491431,425.25755219187,438.98455767189,453.41648894489,469.13512554326,485.39868175205,503.9696508909,523.2511306012],description:"Modern Bengali scale,S.M. Tagore: The mus. scales of the Hindus,Calcutta 1884"},"indian-old2ellis":{frequencies:[261.6255653006,270.06509966514,277.97716313189,285.40970760065,294.32876096318,305.22982618403,316.13089140489,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,415.52295665389,428.11456140098,441.49314144476,457.84473927605,474.19633710734,490.54793493862,505.80942624783,523.2511306012],description:"Ellis Old Indian Chrom2, Helmholtz, p. 517. This is a 4 cent appr. to #73"},"indian-oldellis":{frequencies:[261.6255653006,269.44737349144,277.4816601673,285.79952600623,294.32876096318,304.84150796353,315.71315096976,327.03195662575,337.72216249472,348.83408706747,359.25382662183,369.99442271164,381.0561299374,392.4383479509,404.18156579781,416.22249025095,428.71043212875,441.49314144476,457.27414749797,473.58203588493,490.54793493862,506.59641128799,523.2511306012],description:"Ellis Old Indian Chromatic, Helmholtz, p. 517. This is a 0.5 cent appr. to #73"},"indian-raja":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:"A folk scale from Rajasthan, India"},"indian-sagrama":{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Indian mode Sa-grama (Sa Ri Ga Ma Pa Dha Ni Sa), inverse of Didymus' diatonic"},"indian-srutiharm":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"B. Chaitanya Deva's sruti harmonium. The Music of India, 1981, p. 109"},"indian-srutivina":{frequencies:[261.6255653006,268.56758546278,278.98051393788,288.52577197574,297.52863491406,305.33829130574,314.01573591759,327.57422802312,336.57725592546,350.35262131413,358.2707318239,366.40588882483,378.77125721528,394.82459335461,403.28512412878,416.95215854696,428.77531684666,444.28620821491,453.93981227417,469.5594057965,487.34812384257,504.37765306036,529.32520658991],description:"Raja S.M. Tagore's sruti vina, measured by Ellis and Hipkins, 1886. 1/1=241.2"},"indian-srutivina2":{frequencies:[261.6255653006,275.04226095704,278.87560257317,292.29229825722,294.20896982953,310.50067090621,313.3756771183,327.75070817877,332.5423844325,351.70909240436,354.58409877157,369.9174668925,374.70914348171,393.87585105695,414.95923028882,421.66757847392,437.95928040996,441.79262140873,467.66767825558,473.41768959156,493.54273382289,499.29274676062,523.2511306012],description:"S. Ramanathan's sruti vina, 1973. In B.C. Deva, The Music of India, p. 110"},"indian-vina":{frequencies:[261.6255653006,276.70272600503,292.81785438923,313.29104303136,329.05685050583,352.26720984209,369.14054089803,390.18821123181,411.0090584005,435.70052664441,465.35666077712,491.60634075178,525.37110555681],description:"Observed South Indian tuning of a vina, Ellis"},"indian-vina2":{frequencies:[261.6255653006,277.02257024271,292.81785438923,308.97787266236,326.21810583671,344.81842302716,363.84824628932,386.37547528213,409.11417474979,432.19134773437,455.25352578019,480.93331155807,507.76825077597,539.82938999168,571.59905201246,602.44805673853,637.90290877605,678.5727631795,715.19510239543,756.4109196702,799.53998816902,846.10508618474,890.73947019126,943.16064703194,1001.55531043729],description:"Observed tuning of old vina in Tanjore Palace, Ellis and Hipkins. 1/1=210.7 Hz"},"indian-vina3":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Tuning of K.S. Subramanian's vina (1983)"},indian:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.50983809402,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale"},indian2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Indian shruti scale with tritone 64/45 schisma lower (Mr.Devarajan, Madurai)"},indian2_sm:{frequencies:[261.6255653006,275.80107697063,279.12844116922,290.7446524607,294.25230137258,310.19560923413,313.9379197281,327.00276442799,330.9478443499,348.87940629173,353.08841191408,367.78254402461,372.21960384438,392.38737044642,413.64787586584,418.63827382983,436.06032987759,441.3211172644,465.23297251763,470.84571179248,490.44043044945,496.35728163707,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 289-equal (schismic) temperament"},indian3:{frequencies:[261.6255653006,270.06509966514,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"Indian shruti scale with 32/31 and 31/16 and tritone schisma lower"},indian4:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,330.74639366397,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.89982010446,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"Indian shruti scale according to Firoze Framjee: Text book of Indian music"},indian5:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"23 Shrutis, Amit Mitra, 1/1 no. 12:2, Table C."},indian6:{frequencies:[146.8323839587,148.66778875818,150.35636117371,151.0621234143,152.23581568838,152.95039995698,154.68761437624,154.86227995644,156.62120955595,158.5789746754,159.32333328852,163.14709328744,165.18643195354,167.06262352634,169.15090632042,169.94488884109,172.0691999516,174.02356617327,176.19886075044,178.40134650982,179.23874994958,180.42763340845,181.27454809716,183.54047994838,185.62513725149,185.83473594773,187.94545146714,188.82765426788,190.29476961048,191.18799994622,193.3595179703,193.57784994555,195.77651194493,198.22371834425,200.47514823161,202.98108758451,203.93386660931,206.48303994192,208.82827940793,209.0640779412,211.43863290053,212.43111105136,214.08161581178,215.0864999395,217.52945771659,220.24857593805,223.00168313728,225.53454176056,226.59318512145,228.35372353257,229.42559993547,232.03142156437,232.29341993466,234.93181433392,237.86846201309,238.98499993278,240.57017787793,241.69939746288,244.72063993117,247.77964793031,250.59393528951,253.72635948063,254.91733326163,258.1037999274,261.03534925991,264.29829112566,267.60201976473,270.64145011268,271.91182214574,275.31071992256,278.43770587724,278.75210392159,281.9181772007,283.24148140181,285.44215441571,286.78199991934,290.03927695546,293.6647679174],description:"Shrutis calculated by generation method, Amit Mitra, 1/1 no. 12:2, Table B."},indian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"North Indian Gamut, modern Hindustani gamut out of 22 or more shrutis"},indian_12c:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,328.55303549378,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,470.92601754108,492.82955324067,523.2511306012],description:"Carnatic gamut. Kuppuswami: Carnatic music and the Tamils, p. v"},indian_a:{frequencies:[261.6255653006,290.79521372391,318.76727400207,355.94891173479,388.6137256405,432.69092326853,486.52148746092,523.2511306012],description:"One observed indian mode"},indian_b:{frequencies:[261.6255653006,290.79521372391,305.95868600104,356.15457528086,388.83826257328,432.94092754357,461.60862817266,523.2511306012],description:"Observed Indian mode"},indian_c:{frequencies:[261.6255653006,278.94941459687,313.65318017499,356.15457528086,388.83826257328,422.07621250312,470.76384471612,523.2511306012],description:"Observed Indian mode"},indian_d:{frequencies:[261.6255653006,289.28740724512,320.24370022528,344.61930560862,391.31674786192,442.03793673691,485.39868175205,523.2511306012],description:"Indian D (Ellis, correct)"},indian_e:{frequencies:[261.6255653006,275.58617649731,323.21709932123,347.81902735497,393.58362272115,410.77171881178,488.21056770985,523.2511306012],description:"Observed Indian mode"},indian_g:{frequencies:[261.6255653006,275.48458755707,279.57748987366,290.07776015425,294.38747470873,309.98198497505,314.58741860623,326.40257913196,331.25197518754,348.79929894143,353.98144532328,367.27615246113,372.73281132023,392.47748849606,413.26809526256,419.40806105693,435.16003737285,441.62525396027,465.0193523796,471.92819182319,489.65270022124,496.92751979948,523.2511306012],description:"Shruti/Mathieu's Magic Mode scale in 94-et (garibaldi) temperament"},indian_rat:{frequencies:[261.6255653006,269.55361273395,277.4816601673,285.40970760065,294.32876096318,302.93486508491,315.75499260417,327.03195662575,337.58137458142,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,404.33041910093,416.22249025095,428.77523202043,441.49314144476,457.84473927605,473.41768959156,490.54793493862,506.37206187213,523.2511306012],description:"Indian Raga, From Fortuna, after Helmholtz, ratios by JC"},indian_rot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,510.98743222773,523.2511306012],description:"Rotated North Indian Gamut"},ionic:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ancient greek Ionic"},iran_diat:{frequencies:[261.6255653006,297.21429859784,337.6441411202,347.13660997509,394.35734781054,448.00148789644,460.59652406882,523.2511306012],description:"Iranian Diatonic from Dariush Anooshfar, Safi-a-ddin Armavi's scale from 125 ET"},iraq:{frequencies:[261.6255653006,290.3675288125,326.6631048533,348.83408706747,387.1561215731,435.55129321875,465.11211608996,516.20736538157,523.2511306012],description:"Iraq 8-tone scale, Ellis"},isfahan_5:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,523.2511306012],description:"Isfahan (IG #2, DF #8), from Rouanet"},islamic:{frequencies:[261.6255653006,283.42769574232,305.22982618403,330.6656450327,348.83408706747,523.2511306012],description:"Islamic Genus (DF#7), from Rouanet"},italian:{frequencies:[261.6255653006,274.68983337859,292.34127285051,309.02606224197,326.6631048533,348.44038788768,366.66693712906,391.11111150212,411.56972129721,437.02884834934,464.06284405662,489.44164088633,523.2511306012],description:"Italian organ temperament, G.C. Klop (1974), 1/12 P.comma, also d'Alembert/Rousseau (1752/67)"},iter1:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,631.61998662719],description:"McLaren style, IE= 2.414214, PD=5, SD=0"},iter10:{frequencies:[261.6255653006,277.06070189651,293.38358189778,297.59908052943,301.91391280887,310.68035879446,328.97472072452,338.5155215149,348.35227203008,368.89204707385,413.65123162392,438.0707139917,463.89070822207,520.1365405381,535.27989222422,550.79066379074,583.29634230953,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter11:{frequencies:[261.6255653006,278.87608544381,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #2"},iter12:{frequencies:[261.6255653006,297.26403435806,306.90779184711,316.86440944623,337.75715313333,360.02747892105,383.76621672426,396.21625406084,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #4"},iter13:{frequencies:[261.6255653006,297.26403435806,337.75715313333,383.76621672426,409.07019206122,436.04260883433],description:"Binary 5/3 Scale #6"},iter14:{frequencies:[261.6255653006,280.22072913446,300.13755324878,344.3186075731,368.79121945838,395.0032340925,453.14877154631,519.85349135637,596.37732215892,638.76512932755,684.16567043124,784.8766959018],description:"Binary Divided 3/1 Scale #2"},iter15:{frequencies:[261.6255653006,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale"},iter16:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,324.90175210669,339.28638158975,369.99442271164,403.48177901006,440,459.48046426806,479.82340237272,523.2511306012],description:"Binary Division Scale 4+2"},iter17:{frequencies:[261.6255653006,278.49896488475,296.46060526524,301.12918013362,305.87127435301,315.58067012184,335.93387506143,346.5975621448,357.59974896504,380.66295170881,431.34763334053,459.16716607109,488.78090454553,553.8613271114,571.44277158458,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #2"},iter18:{frequencies:[261.6255653006,296.46060526524,335.93387506143,357.59974896504,380.66295170881,431.34763334053,488.78090454553,553.8613271114,589.58231097183,627.60710380636,711.17202040031],description:"Binary E Scale #4"},iter19:{frequencies:[261.6255653006,322.51878830959,331.06584352035,339.83940187549,358.09020513941,397.58488163802,418.936859706,441.43552612833,490.12256936272,604.19836236377,670.83693141722,744.82523718317,918.18295398723,967.49323514067,1019.45167961503,1131.88958971281,1395.33634826987],description:"Binary Kidjel Ratio scale #2, IE=16/3"},iter2:{frequencies:[261.6255653006,264.43874342211,268.51044859798,278.54662176283,304.33994330886,376.91818729747,466.76379263857,529.06503205232,631.63886479716],description:"Iterated 1 + SQR(2) Scale, IE=2.414214, PD=5, SD=1"},iter20:{frequencies:[261.6255653006,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale #2"},iter21:{frequencies:[261.6255653006,265.58958666715,269.61366892789,277.84567157694,295.07138236029,304.08067308856,313.36504071103,332.79286022776,353.42515415018,375.3365967665,386.79659161311,398.60648967463,423.31905787312],description:"Binary PHI Scale 5+2 #2"},iter22:{frequencies:[261.6255653006,301.8727519909,307.3207469799,312.86706369289,324.26179396336,348.311367392,360.99698978488,374.14462916403,401.89387036212,463.7192413329,498.11197631533,535.05552246568,617.36582527423,639.85050556571,663.15408964479,712.33833913185,821.92095613931],description:"Binary PI Scale #2"},iter23:{frequencies:[261.6255653006,280.22072913446,282.63618845904,285.07246866924,290.00821285991,300.13755151512,305.33413252207,310.62068712289,321.46997343155,344.3186075731,356.34488692223,368.79121945838,395.00323181087,401.84231702948,408.7998141568,423.07827792492,453.14877154631],description:"Binary SQR(3) Scale #2"},iter24:{frequencies:[261.6255653006,289.31157243481,292.97226416221,296.67927674571,304.23460945445,319.92739457651,328.07477344771,336.42963427227,353.78307729046,391.22147055517,411.40114203819,432.62170761687,478.4030399831,490.58621022536,503.07964402145,529.02909391167,585.01254970054],description:"Binary SQR(5) Scale #2"},iter25:{frequencies:[261.6255653006,295.4600775297,299.98610231105,304.581459303,313.98443628203,333.67021037701,343.97120738708,354.59021667251,376.82183739983,425.55401329039,452.23482674104,480.58843796626,542.7401414615,559.49550492793,576.76813324226,612.92956630767,692.19618110881],description:"Binary SQR(7) Scale #2"},iter26:{frequencies:[261.6255653006,266.56189672137,275.04226095704,276.16031892841,278.32506946872,283.8915708581,299.68019298069,302.93486508491,309.19384990071,326.13597866239,377.90359432309,389.87339142835,411.92110281371,477.08191319521,486.74523776856,503.12608711654,552.32063785682,711.29450566101],description:"E Scale"},iter27:{frequencies:[261.6255653006,264.53251602616,264.59858308811,264.97973921471,266.91093025617,277.4816601673,277.93638607994,279.98525409362,291.05844139692,358.0999925052,361.3330282979,375.61956161015,462.09190754392,465.48964215821,480.4396744611,568.53247844169,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=3"},iter28:{frequencies:[261.6255653006,265.20947715403,272.47639519786,295.60291144354,377.3445653374,784.8766959018],description:"McLaren 3-Division Scale"},iter29:{frequencies:[261.6255653006,264.46932144517,267.35459227799,273.20191774753,285.29018929764,311.12229387098,370.01329949656,523.2511306012],description:"Iterated Binary Division of the Octave, IE=2, PD=6, SD=0"},iter3:{frequencies:[261.6255653006,291.72408166262,314.40967058055,328.65360269166,338.82655178274,356.71329642628,384.4758307461,404.77917650282,417.30358762823,426.15298265459,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter30:{frequencies:[261.6255653006,263.40533105094,266.47048317654,274.97380842818,299.54231389489,377.98194879009,711.1793535636],description:"Iterated E-scale, IE= 2.71828, PD=5, SD=0"},iter31:{frequencies:[261.6255653006,264.53251602616,277.4816601673,358.0999925052,1395.33634826987],description:"Iterated Kidjel Ratio Scale, IE=16/3, PD=3, SD=0"},iter32:{frequencies:[261.6255653006,264.32273607689,265.98599138894,268.74462830198,273.21657135822,280.65287914064,293.09931751721,314.43072526953,352.25402909754,423.30428543018],description:"Iterated PHI scale, IE= 1.61803339, PD=8, SD=0"},iter33:{frequencies:[261.6255653006,264.70351312767,271.46111286829,293.79264300149,376.62581378438,821.87425059077],description:"Iterated PI Scale, IE= 3.14159, PD=4, SD=0"},iter34:{frequencies:[261.6255653006,263.41752122732,264.70351312767,267.00143308075,271.01725226011,278.10591587072,290.81088732616,314.21361862735,359.24704489038,453.1728541814],description:"Iterated SQR3 Scale, IE= 1.73205, PD=8, SD=0"},iter35:{frequencies:[261.6255653006,263.32443260775,265.41724016003,270.17542037578,281.14986121856,307.30621955943,374.94109676838,585.0238335194],description:"Iterated SQR 5 Scale, IE= 2.23607, PD=6, SD=0"},iter36:{frequencies:[261.6255653006,263.60757715894,266.85807660661,275.72514666411,300.63990398578,377.90359432309,692.2176415245],description:"Iterated SQR 7 Scale, IE= 2.64575, PD=5, SD=0"},iter37:{frequencies:[261.6255653006,295.02271214403,313.28742377221,326.0879260201,332.68289475257,342.82647426905,364.05069339959,375.15068445646,382.73792346942,386.58911684499,392.4383479509],description:"Iterated 3/2 scale, IE=3/2, PD=3, SD=2"},iter4:{frequencies:[261.6255653006,267.82522324611,277.41331493081,278.97828136646,281.37089098366,287.35922746131,302.93486508491,307.2300216374,313.76772341995,330.79094463294,377.42704502382,390.96854140427,412.14986314478,470.26367433779,480.2976795817,495.79659597089,536.59937372878,654.0639132515],description:"Iterated 5/2 Scale, IE=5/2, PD=4, SD=3"},iter5:{frequencies:[261.6255653006,292.148547919,314.45380444784,328.62723446295,338.43307070995,355.46951807147,382.59222452561,401.8431885336,413.81298563886,422.03832066739,436.04260883433],description:"Iterated 5/3 Scale, analog of Hexachord, IE=5/3, PD=3, SD=2"},iter6:{frequencies:[261.6255653006,276.4345595629,292.10621368514,326.13597866239,344.58001283494,364.1180547998,406.52587839016,453.84026633778,506.69255051888,535.41976154541,565.73733351326,631.63886479716],description:"Iterated binary 1+SQR(2) scale, IE= 2.414214, G=2, PD=4, SD=2"},iter7:{frequencies:[261.6255653006,279.30296836145,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=3, SD=2"},iter8:{frequencies:[261.6255653006,298.19688088025,308.09852755794,318.34159693919,339.84351781315,362.8203594263,387.34174602946,400.24806631808,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=2"},iter9:{frequencies:[261.6255653006,298.19688088025,339.84351781315,387.34174602946,413.53718386224,441.49314144476],description:"Iterated 27/16 Scale, analog of Hexachord, IE=27/16, PD=2, SD=12"},ives:{frequencies:[261.6255653006,302.26980244078,349.22823143301,375.37611551499,433.69180740168,501.06699929295,578.9091089468,622.25396744417],description:`Charles Ives' stretched major scale, "Scrapbook" pp. 108-110`},ives2a:{frequencies:[261.6255653006,303.72829164664,352.60650301302,379.92060676531,441.0602510811,512.03893786214,594.44004134205,640.48740045057],description:"Speculation by Joe Monzo for Ives' other stretched scale"},ives2b:{frequencies:[261.6255653006,300.81831683262,345.88232658126,370.885984045,426.44646246473,490.3301667422,563.78395315523,604.53960488156],description:"Alt. speculation by Joe Monzo for Ives' other stretched scale"},abell1:{frequencies:[261.6255653006,273.68256372566,292.6487650037,305.95868600104,327.16162250699,342.04121835587,365.95599773772,391.31674786192,409.35055662695,437.71854962063,457.62637091093,489.33987776603,523.2511306012],description:"Ross Abell's French Baroque Meantone 1, a'=520"},abell2:{frequencies:[261.6255653006,275.90473010106,294.68429813772,308.79945157961,330.00857764288,348.01999353916,369.14054089803,392.90218486657,412.67427966689,441.52756934418,463.21121723949,493.59810545034,523.2511306012],description:"Ross Abell's French Baroque Meantone 2, a'=520"},abell3:{frequencies:[261.6255653006,275.90505521365,293.49576926806,308.08682543008,329.24698751194,350.03632176331,368.71497179837,392.44893164635,412.28324979826,440.25465969448,462.14293627657,492.7440237889,523.2511306012],description:"Ross Abell's French Baroque Meantone 3, a' = 520"},abell4:{frequencies:[261.6255653006,274.95017225036,292.98704147282,308.2648062752,328.10786809908,346.01554587335,367.43868454848,391.54284657258,411.48414905414,438.47771564426,461.87534079415,491.0387427573,523.2511306012],description:"Ross Abell's French Baroque Meantone 4, a'=520"},abell5:{frequencies:[261.6255653006,277.98432293805,295.87822452474,311.66659310186,331.15428443044,349.43001184052,371.27895029721,395.6350356808,416.26536455926,442.29334161825,466.70260620202,495.88429116026,523.2511306012],description:"Ross Abell's French Baroque Meantone 5, a'=520"},abell6:{frequencies:[261.6255653006,277.02257024271,293.32570896007,311.66659310186,330.00857764288,349.43001184052,369.99442271164,391.76907592069,414.82519580403,440.76312290327,466.70260620202,494.16866184506,523.2511306012],description:"Ross Abell's French Baroque Meantone 6, a'=520"},abell7:{frequencies:[261.6255653006,277.50302994288,294.34406205295,310.05056613125,328.86683469969,348.82502010853,369.99442271164,392.44854854484,416.26536455926,438.47771564426,465.08793784701,493.31307433255,523.2511306012],description:"Ross Abell's French Baroque Meantone 7, a'=520"},abell8:{frequencies:[261.6255653006,277.82379926216,294.68429813772,311.48661940174,329.62755691287,350.03605285217,371.27895029721,392.44854854484,415.30469757995,441.01779121056,467.78216486233,494.45418731234,523.2511306012],description:"Ross Abell's French Baroque Meantone 8, a'=520"},abell9:{frequencies:[261.6255653006,276.06414495892,293.32570896007,309.69258848748,330.19925313612,348.62358905703,369.14054089803,391.99543598175,412.67427966689,440,464.55095742407,493.88330125613,523.2511306012],description:"Ross Abell's French Baroque Meantone 9, a'=520"},"ad-dik":{frequencies:[261.6255653006,269.0348830679,275.62199471997,285.40970760065,294.32876096318,300.46061014991,310.07474405997,321.08592105074,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.49599295996,378.42269266694,392.4383479509,400.61414686654,413.43299207996,428.11456140098,441.49314144476,453.48431318771,470.92601754108,479.64686971777,490.54793493862,508.71637697339,523.2511306012],description:"Amin Ad-Dik, d'Erlanger, vol 5, p.42"},adjeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Soeroepan adjeng"},aeolic:{frequencies:[261.6255653006,294.32876096318,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Ancient Greek Aeolic, also tritriadic scale of the 54:64:81 triad"},agricola:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.42486507835,331.11985608357,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Agricola's Monochord, Rudimenta musices (1539)"},"al-din":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012,551.24398943995,580.73440862809,588.65752192635,620.14948811994,653.3262097066,688.27781763329,697.66817413493,734.99198591993,774.31254483746,784.8766959018,826.86598415992,871.10161294214,917.70375684439,930.22423217991,979.98931455991,1032.41672644994,1046.5022612024,1102.48797887989],description:"Safi al-Din's complete lute tuning on 5 strings 4/3 apart"},"al-din_19":{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic scale by Safi al-Din"},"al-farabi":{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Al-Farabi Syn Chrom"},"al-farabi_19":{frequencies:[261.6255653006,275.62199471997,285.40970760065,294.32876096318,310.07474405997,326.6631048533,331.11985608357,336.87132687997,348.83408706747,367.49599295996,380.54627680087,392.4383479509,413.43299207996,435.55080647107,441.49314144476,455.28980211491,465.11211608996,489.99465727995,507.3950357345,523.2511306012],description:"Arabic scale by Al Farabi"},"al-farabi_22":{frequencies:[261.6255653006,275.62199471997,277.01530443593,285.40970760065,294.32876096318,310.07474405997,321.08592105074,326.6631048533,331.11985608357,348.83408706747,367.49599295996,369.35373924791,380.54627680087,392.4383479509,413.43299207996,428.11456140098,435.55080647107,441.49314144476,465.11211608996,489.99465727995,492.47165233054,507.3950357345,523.2511306012],description:"Al-Farabi 22 note ud scale"},"al-farabi_9":{frequencies:[261.6255653006,294.32876096318,321.08592105074,331.11985608357,348.83408706747,392.4383479509,428.11456140098,441.49314144476,465.11211608996,523.2511306012],description:"Al-Farabi 9 note ud scale"},"al-farabi_blue":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.81054504865,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Another tuning from Al Farabi, c700 AD"},"al-farabi_chrom":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Al Farabi's Chromatic c700 AD"},"al-farabi_chrom2":{frequencies:[261.6255653006,279.06726965397,325.57848126297,348.83408706747,392.4383479509,418.60090448096,488.36772189445,523.2511306012],description:"Al-Farabi's Chromatic permuted"},"al-farabi_diat":{frequencies:[261.6255653006,299.00064605783,341.71502406609,348.83408706747,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Diatonic"},"al-farabi_diat2":{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Old Phrygian, permuted form of Al-Farabi's reduplicated 10/9 diatonic genus, same as ptolemy_diat"},"al-farabi_div":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al Farabi's 10 intervals for the division of the tetrachord"},"al-farabi_div2":{frequencies:[261.6255653006,275.62199471997,277.01530443593,279.38237857051,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,314.30517589183,321.08592105074,331.11985608357,348.83408706747],description:"Al-Farabi's tetrachord division, incl. extra 2187/2048 & 19683/16384"},"al-farabi_divo":{frequencies:[261.6255653006,275.62199471997,277.01530443593,284.45195690401,288.32205155576,294.32876096318,310.07474405997,311.64221749042,321.08592105074,331.11985608357,348.83408706747,367.49599295996,369.35373924791,379.26927587201,392.4383479509,413.43299207996,415.52295665389,426.67793535601,432.48307733364,441.49314144476,465.11211608996,467.46332623563,481.6288815761,496.67978412536,523.2511306012],description:"Al Farabi's theoretical octave division with identical tetrachords, 10th c."},"al-farabi_dor":{frequencies:[261.6255653006,282.55561052465,313.95067836072,348.83408706747,392.4383479509,423.83341578697,470.92601754108,523.2511306012],description:"Dorian mode of Al-Farabi's 10/9 Diatonic"},"al-farabi_dor2":{frequencies:[261.6255653006,267.07609791103,305.22982618403,348.83408706747,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"Dorian mode of Al-Farabi's Diatonic"},"al-farabi_g1":{frequencies:[261.6255653006,294.32876096318,331.11985608357,367.91095120397,392.4383479509,441.49314144476,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus conjunctum medium, Land"},"al-farabi_g10":{frequencies:[261.6255653006,294.32876096318,343.38355445704,367.91095120397,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Al-Farabi's Greek genus chromaticum forte"},"al-farabi_g11":{frequencies:[261.6255653006,294.32876096318,353.19451315581,372.50983809402,392.4383479509,470.92601754108,496.67978412536,523.2511306012],description:"Al-Farabi's Greek genus chromaticum mollissimum"},"al-farabi_g12":{frequencies:[261.6255653006,294.32876096318,367.91095120397,380.17464957743,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Al-Farabi's Greek genus mollissimum ordinantium"},"al-farabi_g3":{frequencies:[261.6255653006,294.32876096318,336.37572681506,378.42269266694,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus conjunctum primum"},"al-farabi_g4":{frequencies:[261.6255653006,294.32876096318,336.37572681506,384.42940207435,392.4383479509,448.50096908674,512.57253609913,523.2511306012],description:"Al-Farabi's Greek genus forte duplicatum primum"},"al-farabi_g5":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Al-Farabi's Greek genus conjunctum tertium, or forte aequatum"},"al-farabi_g6":{frequencies:[261.6255653006,294.32876096318,336.37572681506,373.75080757229,392.4383479509,448.50096908674,498.33441009638,523.2511306012],description:"Al-Farabi's Greek genus forte disjunctum primum"},"al-farabi_g7":{frequencies:[261.6255653006,294.32876096318,343.38355445704,374.60024122586,392.4383479509,457.84473927605,499.46698830115,523.2511306012],description:"Al-Farabi's Greek genus non continuum acre"},"al-farabi_g8":{frequencies:[261.6255653006,294.32876096318,353.19451315581,378.42269266694,392.4383479509,470.92601754108,504.56359022259,523.2511306012],description:"Al-Farabi's Greek genus non continuum mediocre"},"al-farabi_g9":{frequencies:[261.6255653006,294.32876096318,367.91095120397,383.71749577421,392.4383479509,490.54793493862,511.62332769895,523.2511306012],description:"Al-Farabi's Greek genus non continuum laxum"},"al-hwarizmi":{frequencies:[261.6255653006,294.32876096318,302.73815413355,311.64221749042,321.08592105074,331.11985608357,348.83408706747],description:"Al-Hwarizmi's tetrachord division"},"al-kindi":{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747],description:"Al-Kindi's tetrachord division"},"al-kindi2":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,523.2511306012],description:"Arabic mode by al-Kindi"},"al-mausili":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Arabic mode by Ishaq al-Mausili, ? - 850 AD"},albion:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Terry Riley's Harp of New Albion scale, inverse Malcolm's Monochord, 1/1 on C#"},alembert:{frequencies:[261.6255653006,273.70610837433,292.50627485027,307.8325111191,327.03195662575,347.99121610009,365.92863081328,391.22147055517,409.45161370755,437.39890198442,462.86717295458,489.22460251523,523.2511306012],description:"Jean-Le Rond d'Alembert modified meantone (1752)"},alembert2:{frequencies:[261.6255653006,274.99999938609,292.5775112526,309.28790118232,327.03195662575,348.53877105022,367.08095907728,391.31674786192,412.03444522126,437.50542525192,464.32494005553,489.99429388332,523.2511306012],description:"d'Alembert (?)"},alves:{frequencies:[261.6255653006,267.07609791103,294.32876096318,305.22982618403,327.03195662575,336.37572681506,348.83408706747,359.73515228832,392.4383479509,425.14154361347,448.50096908674,457.84473927605,504.56359022259,523.2511306012],description:'Bill Alves, tuning for "Instantaneous Motion", 1/1 vol. 6/3'},alves_22:{frequencies:[261.6255653006,269.80136421624,279.06726965397,287.78812183066,297.30177875068,305.22982618403,317.12189733406,327.03195662575,336.37572681506,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,406.97310157871,418.60090448096,431.68218274599,448.50096908674,460.46099492906,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"11-limit rational interpretation of 22-tET, Bill Alves, tuning list 9-1-98"},amity:{frequencies:[261.6255653006,265.19165427121,275.22357733525,278.97501409741,282.77758484276,286.63198489776,290.53892403345,294.49911672845,305.63971046081,309.80573452349,314.02854360428,318.30891171173,322.64762154083,327.04547204619,339.41726037801,344.04368955469,348.73317930436,353.48658917459,358.304790429,371.85908609843,376.92771379174,382.0654272409,387.27317253358,392.55190203235,397.90258328792,412.95482206782,418.58360545772,424.28911201625,430.07238503487,435.93448947821,452.42543551278,458.59222335614,464.84306764133,471.17911410024,477.60152408164,484.11147196776,502.42490579041,509.27320879713,516.21486058423,523.2511306012],description:"Amity temperament, g=339.508826, 5-limit"},angklung:{frequencies:[261.6255653006,294.70472480469,326.28010551578,372.13971319976,421.00655337609,533.77627782773,589.40944960937,672.10704388342,757.81210779894],description:"Scale of an anklung set from Tasikmalaya. 1/1=174 Hz"},appunn:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.38237857051,287.10624449997,290.69507255622,294.32876096318,302.46583782713,306.24666079997,310.07474405997,322.99452506247,327.03195662575,331.11985608357,340.27406755552,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.50983809402,382.80832599996,387.59343007496,392.4383479509,408.78994578219,413.89982010446,419.07356785577,430.65936674996,436.04260883433,441.49314144476,453.6987567407,459.36999119996,465.11211608996,484.4917875937,490.54793493862,496.67978412536,510.41110133328,516.79124009995,523.2511306012],description:"Probable tuning of A. Appunn's 36-tone harmonium w. 3 manuals 80/81 apart,1887"},arabic:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,387.15627241873,392.4383479509,413.43299207996,435.55080647107,441.49314144476,465.11211608996,489.99465727995,516.20836322497,523.2511306012],description:"Arabic 17-tone Pythagorean mode, Safi al-Din"},arabic_s:{frequencies:[261.6255653006,275.62199471997,290.69507255622,294.32876096318,310.07474405997,327.03195662575,331.11985608357,348.83408706747,367.91095120397,387.59343007496,392.4383479509,413.43299207996,436.04260883433,441.49314144476,465.11211608996,490.54793493862,516.79124009995,523.2511306012],description:"Schimatically altered Arabic 17-tone Pythagorean mode"},arch_chrom:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,441.49314144476,523.2511306012],description:"Archytas' Chromatic"},arch_chromc2:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,331.11985608357,343.38355445704,348.83408706747,361.75386806997,392.4383479509,406.97310157871,422.04617941496,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:"Product set of 2 of Archytas' Chromatic"},arch_dor:{frequencies:[261.6255653006,271.31540105247,294.32876096318,348.83408706747,392.4383479509,406.97310157871,465.11211608996,441.49314144476,523.2511306012],description:"Dorian mode of Archytas' Chromatic with added 16/9"},arch_enh:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Archytas' Enharmonic"},arch_enh2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,406.97310157871,465.11211608996,418.60090448096,523.2511306012],description:"Archytas' Enharmonic with added 16/9"},arch_enh3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,358.80077526939,448.50096908674,523.2511306012],description:"Complex 9 of p. 113 based on Archytas's Enharmonic"},arch_enhp:{frequencies:[261.6255653006,269.10058145205,279.06726965397,348.83408706747,392.4383479509,403.65087217807,418.60090448096,523.2511306012],description:"Permutation of Archytas's Enharmonic with the 36/35 first"},arch_enht:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 113 based on Archytas's Enharmonic"},arch_enht2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,490.54793493862,508.71637697339,523.2511306012],description:"Complex 5 of p. 113 based on Archytas's Enharmonic"},arch_enht3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 113 based on Archytas's Enharmonic"},arch_enht4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,339.14425131559,348.83408706747,436.04260883433,523.2511306012],description:"Complex 8 of p. 113 based on Archytas's Enharmonic"},arch_enht5:{frequencies:[261.6255653006,263.77886213435,271.31540105247,279.06726965397,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 10 of p. 113 based on Archytas's Enharmonic"},arch_enht6:{frequencies:[261.6255653006,271.31540105247,279.06726965397,289.40309445597,297.67175429757,348.83408706747,372.08969287196,523.2511306012],description:"Complex 2 of p. 113 based on Archytas's Enharmonic"},arch_enht7:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,287.04062021552,348.83408706747,358.80077526939,523.2511306012],description:"Complex 11 of p. 113 based on Archytas's Enharmonic"},arch_mult:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,490.54793493862,504.56359022259,523.2511306012],description:"Multiple Archytas"},arch_ptol:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"Archytas/Ptolemy Hybrid 1"},arch_ptol2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,470.92601754108,523.2511306012],description:"Archytas/Ptolemy Hybrid 2"},arch_sept:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,310.07474405997,348.83408706747,361.75386806997,392.4383479509,406.97310157871,418.60090448096,441.49314144476,465.11211608996,523.2511306012],description:"Archytas Septimal"},ariel1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 1"},ariel2:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Ariel 2"},ariel3:{frequencies:[261.6255653006,279.06726965397,290.69507255622,310.07474405997,322.99452506247,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,465.11211608996,484.4917875937,523.2511306012],description:"Ariel's 12-tone JI scale"},ariel_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,302.80736724606,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Ariel 19-tone scale"},ariel_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Ariel's 31-tone system"},arist_archenh:{frequencies:[261.6255653006,271.89678302796,279.86396690685,349.22823143301,391.99543598175,407.38487419079,419.32216217931,523.2511306012],description:"PsAristo Arch. Enharmonic, 4 + 3 + 23 parts, similar to Archytas' enharmonic"},arist_chrom:{frequencies:[261.6255653006,277.18263097687,329.62755691287,349.22823143301,391.99543598175,415.30469757995,493.88330125613,523.2511306012],description:"Dorian, Neo-Chromatic,6+18+6 parts = Athanasopoulos' Byzant.liturg. 2nd chromatic"},arist_chrom2:{frequencies:[261.6255653006,282.57123920205,336.03572815422,349.22823143301,391.99543598175,423.37848741825,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 18 + 4 parts"},arist_chrom3:{frequencies:[261.6255653006,279.86388595857,299.37253740865,349.22869576324,391.99491478937,419.32387668214,448.55625766774,523.2511306012],description:"PsAristo 3 Chromatic, 7 + 7 + 16 parts"},arist_chrom4:{frequencies:[261.6255653006,275.85166538713,290.85115308106,349.22823143301,391.99543598175,413.31050241775,435.7843409791,523.2511306012],description:"PsAristo Chromatic, 5.5 + 5.5 + 19 parts"},arist_chromenh:{frequencies:[261.6255653006,269.29177952703,293.66476791741,349.22823143301,391.99543598175,403.48177901006,440,523.2511306012],description:"Aristoxenos' Chromatic/Enharmonic, 3 + 9 + 18 parts"},arist_chrominv:{frequencies:[261.6255653006,311.12698372208,329.62755691287,349.22823143301,391.99543598175,466.16376151809,493.88330125613,523.2511306012],description:"Aristoxenos' Inverted Chromatic, Dorian mode, 18 + 6 + 6 parts"},arist_chromrej:{frequencies:[261.6255653006,277.18263097687,285.30470202322,349.22823143301,391.99543598175,415.30469757995,427.47405410759,523.2511306012],description:"Aristoxenos Rejected Chromatic, 6 + 3 + 21 parts"},arist_chromunm:{frequencies:[261.6255653006,273.20871865617,282.57118533961,349.22823143301,391.99543598175,409.35055662695,423.37840671577,523.2511306012],description:"Unmelodic Chromatic, genus of Aristoxenos, Dorian Mode, 4.5 + 3.5 + 22 parts"},arist_diat:{frequencies:[261.6255653006,293.66476791741,311.12698372208,349.22823143301,391.99543598175,440,466.16376151809,523.2511306012],description:"Phrygian octave species on E, 12 + 6 + 12 parts"},arist_diat2:{frequencies:[261.6255653006,279.86396690685,311.12698372208,349.22823143301,391.99543598175,419.32216217931,466.16376151809,523.2511306012],description:"PsAristo 2 Diatonic, 7 + 11 + 12 parts"},arist_diat3:{frequencies:[261.6255653006,286.68133251996,314.13668154225,349.22823143301,391.99543598175,429.53666932309,470.6732130613,523.2511306012],description:"PsAristo Diat 3, 9.5 + 9.5 + 11 parts"},arist_diat4:{frequencies:[261.6255653006,282.57123920205,305.19382000629,349.22823143301,391.99543598175,423.37848741825,457.27406033445,523.2511306012],description:"PsAristo Diatonic, 8 + 8 + 14 parts"},arist_diatdor:{frequencies:[261.6255653006,299.37379946195,305.19382000629,349.22823143301,391.99543598175,448.5538823653,457.27406033445,523.2511306012],description:"PsAristo Redup. Diatonic, 14 + 2 + 14 parts"},arist_diatinv:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,493.88330125613,523.2511306012],description:"Lydian octave species on E, major mode, 12 + 12 + 6 parts"},arist_diatred:{frequencies:[261.6255653006,299.37379946195,342.56848033562,349.22823143301,391.99543598175,448.5538823653,513.27277840175,523.2511306012],description:"Aristo Redup. Diatonic, Dorian Mode, 14 + 14 + 2 parts"},arist_diatred2:{frequencies:[261.6255653006,271.89678302796,308.14612137864,349.22823143301,391.99543598175,407.38487419079,461.69751437372,523.2511306012],description:"PsAristo 2 Redup. Diatonic 2, 4 + 13 + 13 parts"},arist_diatred3:{frequencies:[261.6255653006,282.57123920205,314.13668154225,349.22823143301,391.99543598175,423.37848741825,470.6732130613,523.2511306012],description:"PsAristo 3 Redup. Diatonic, 8 + 11 + 11 parts"},arist_enh:{frequencies:[261.6255653006,269.29177952703,277.18263097687,349.22823143301,391.99543598175,403.48177901006,415.30469757995,523.2511306012],description:"Aristoxenos' Enharmonion, Dorian mode"},arist_enh2:{frequencies:[261.6255653006,270.59109411209,279.86402025325,349.22823143301,391.99543598175,405.42855124795,419.32224210861,523.2511306012],description:"PsAristo 2 Enharmonic, 3.5 + 3.5 + 23 parts"},arist_enh3:{frequencies:[261.6255653006,267.99870394401,274.52693220706,349.22823143301,391.99543598175,401.54435471309,411.32564531909,523.2511306012],description:"PsAristo Enharmonic, 2.5 + 2.5 + 25 parts"},arist_hemchrom:{frequencies:[261.6255653006,273.20871865617,285.30470202322,349.22823143301,391.99543598175,409.35055662695,427.47405410759,523.2511306012],description:"Aristoxenos's Chromatic Hemiolion, Dorian Mode"},arist_hemchrom2:{frequencies:[261.6255653006,273.20871865617,293.66476791741,349.22823143301,391.99543598175,409.35055662695,440,523.2511306012],description:"PsAristo C/H Chromatic, 4.5 + 7.5 + 18 parts"},arist_hemchrom3:{frequencies:[261.6255653006,271.81876914348,282.83844897362,348.83408706747,392.4383479509,407.72815371522,424.25767346043,523.2511306012],description:"Dorian mode of Aristoxenos' Hemiolic Chromatic according to Ptolemy's interpret"},arist_hypenh2:{frequencies:[261.6255653006,267.3544191957,273.20871865617,349.22823143301,391.99543598175,400.57901831518,409.35055662695,523.2511306012],description:"PsAristo 2nd Hyperenharmonic, 37.5 + 37.5 + 425 cents"},arist_hypenh3:{frequencies:[261.6255653006,265.43099677612,269.29177952703,349.22823143301,391.99543598175,397.69714089209,403.48177901006,523.2511306012],description:"PsAristo 3 Hyperenharmonic, 1.5 + 1.5 + 27 parts"},arist_hypenh4:{frequencies:[261.6255653006,266.71168334607,271.8968348557,349.22823143301,391.99543598175,399.61600264311,407.38495184466,523.2511306012],description:"PsAristo 4 Hyperenharmonic, 2 + 2 + 26 parts"},arist_hypenh5:{frequencies:[261.6255653006,265.12453591719,268.67030163715,349.22823143301,391.99543598175,397.23796841836,402.55061428954,523.2511306012],description:"PsAristo Hyperenharmonic, 23 + 23 + 454 cents"},arist_intdiat:{frequencies:[261.6255653006,275.39533189537,307.79478270659,348.83408706747,392.4383479509,413.09299784305,461.69217405988,523.2511306012],description:"Dorian mode of Aristoxenos's Intense Diatonic according to Ptolemy"},arist_penh2:{frequencies:[261.6255653006,269.29177952703,339.28638158975,349.22823143301,391.99543598175,403.48177901006,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 3 + 24 + 3 parts"},arist_penh3:{frequencies:[261.6255653006,329.62755691287,339.28638158975,349.22823143301,391.99543598175,493.88330125613,508.3551866238,523.2511306012],description:"Permuted Aristoxenos's Enharmonion, 24 + 3 + 3 parts"},arist_pschrom2:{frequencies:[261.6255653006,278.52001838539,296.50560089735,349.22823143301,391.99543598175,417.30851459865,444.25644015807,523.2511306012],description:"PsAristo 2 Chromatic, 6.5 + 6.5 + 17 parts"},arist_softchrom:{frequencies:[261.6255653006,271.89678302796,282.57123920205,349.22823143301,391.99543598175,407.38487419079,423.37848741825,523.2511306012],description:"Aristoxenos's Chromatic Malakon, Dorian Mode"},arist_softchrom2:{frequencies:[261.6255653006,277.18263097687,324.90175210669,349.22823143301,391.99543598175,415.30469757995,486.80259447109,523.2511306012],description:"Aristoxenos' Soft Chromatic, 6 + 16.5 + 9.5 parts"},arist_softchrom3:{frequencies:[261.6255653006,281.2143451833,329.62755691287,349.22823143301,391.99543598175,421.34544350737,493.88330125613,523.2511306012],description:"Aristoxenos's Chromatic Malakon, 9.5 + 16.5 + 6 parts"},arist_softchrom4:{frequencies:[261.6255653006,277.18263097687,297.93622032612,349.22823143301,391.99543598175,415.30469757995,446.39994737251,523.2511306012],description:"PsAristo S. Chromatic, 6 + 7.5 + 16.5 parts"},arist_softchrom5:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,392.4383479509,405.97070477679,420.46965851882,523.2511306012],description:"Dorian mode of Aristoxenos' Soft Chromatic according to Ptolemy's interpretati"},arist_softdiat:{frequencies:[261.6255653006,277.18263097687,302.26980244078,349.22823143301,391.99543598175,415.30469757995,452.89298412314,523.2511306012],description:"Aristoxenos's Diatonon Malakon, Dorian Mode"},arist_softdiat2:{frequencies:[261.6255653006,277.18263097687,320.24370022528,349.22823143301,391.99543598175,415.30469757995,479.82340237272,523.2511306012],description:"Dorian Mode, 6 + 15 + 9 parts"},arist_softdiat3:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Dorian Mode, 9 + 15 + 6 parts"},arist_softdiat4:{frequencies:[261.6255653006,285.30470202322,302.26980244078,349.22823143301,391.99543598175,427.47405410759,452.89298412314,523.2511306012],description:"Dorian Mode, 9 + 6 + 15 parts"},arist_softdiat5:{frequencies:[261.6255653006,302.26980244078,320.24370022528,349.22823143301,391.99543598175,452.89298412314,479.82340237272,523.2511306012],description:"Dorian Mode, 15 + 6 + 9 parts"},arist_softdiat6:{frequencies:[261.6255653006,302.26980244078,329.62755691287,349.22823143301,391.99543598175,452.89298412314,493.88330125613,523.2511306012],description:"Dorian Mode, 15 + 9 + 6 parts"},arist_softdiat7:{frequencies:[261.6255653006,275.39533189537,299.00064605783,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Dorian mode of Aristoxenos's Soft Diatonic according to Ptolemy"},arist_synchrom:{frequencies:[261.6255653006,277.18263097687,293.66476791741,349.22823143301,391.99543598175,415.30469757995,440,523.2511306012],description:"Aristoxenos's Chromatic Syntonon, Dorian Mode"},arist_syndiat:{frequencies:[261.6255653006,277.18263097687,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Aristoxenos's Diatonon Syntonon, Dorian Mode"},arist_unchrom:{frequencies:[261.6255653006,271.89678302796,293.66476791741,349.22823143301,391.99543598175,407.38487419079,440,523.2511306012],description:"Aristoxenos's Unnamed Chromatic, Dorian Mode, 4 + 8 + 18 parts"},arist_unchrom2:{frequencies:[261.6255653006,282.57123920205,293.66476791741,349.22823143301,391.99543598175,423.37848741825,440,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 8 + 4 + 18 parts"},arist_unchrom3:{frequencies:[261.6255653006,311.12698372208,323.3415889232,349.22823143301,391.99543598175,466.16376151809,484.46499093218,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 4 + 8 parts"},arist_unchrom4:{frequencies:[261.6255653006,311.12698372208,336.03572815422,349.22823143301,391.99543598175,466.16376151809,503.48470957687,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 18 + 8 + 4 parts"},arith13:{frequencies:[261.6255653006,269.80136421624,294.32876096318,318.85615771011,327.03195662575,343.38355445704,367.91095120397,371.99885066179,392.4383479509,449.66894036041,457.84473927605,490.54793493862,523.2511306012],description:"The first 13 terms of the arithmetic series, octave reduced"},arith22:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,312.72430852337,318.85615771011,327.03195662575,343.38355445704,349.51540364377,367.91095120397,371.99885066179,388.35044849308,392.4383479509,429.2294430713,449.66894036041,457.84473927605,472.15238737843,490.54793493862,517.11928141447,523.2511306012],description:"The first 22 terms of the arithmetic series, octave reduced"},arnautoff_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,523.2511306012],description:"Philip Arnautoff, transposed Archytas enharmonic (2005), 1/1 vol 12/1"},"aron-neidhardt":{frequencies:[261.6255653006,275.62199471997,292.53519855339,310.07474405997,327.04005607367,348.83408706747,367.49599295996,391.42133845759,413.43299207996,437.43855491017,465.11211608996,489.99465727995,523.2511306012],description:"Aron-Neidhardt equal beating well temperament"},art_nam:{frequencies:[261.6255653006,287.78812183066,317.68818643644,324.77656382143,348.83408706747,353.19451315581,392.4383479509,431.68218274599,473.41768959156,523.2511306012],description:"Artificial Nam System"},artusi:{frequencies:[261.6255653006,276.63528606528,292.50629850443,309.28767786778,327.03195662575,349.91920725962,369.99442271164,391.22137338448,413.66637442451,437.39882871549,462.49310482954,489.02679755603,523.2511306012],description:"Lute tuning of Giovanni Maria Artusi (1603). 1/4-comma w. acc. 1/2-way naturals"},astro:{frequencies:[13.75,13.8316453704,13.91377553836,13.99639338254,14.07098381034,14.15453513289,14.23858257025,14.32312915102,14.40817767355,14.49373120103,14.57979273211,14.66636528323,14.75345188876,14.84105560105,14.92917949063,15.01782664621,15.10700017487,15.1875093157,15.27769039377,15.36840704189,15.45966226264,15.55145934276,15.64380149972,15.73669197012,15.83013400973,15.92413089371,16.01868591662,16.11380239262,16.20948365552,16.30573305894,16.39263055969,16.48996755631,16.58788242969,16.68637870643,16.78545983879,16.88512929958,16.98539058219,17.08624720077,17.18770269033,17.28976060687,17.39242452751,17.49569805061,17.59958489756,17.69337767194,17.7984382082,17.90412257766,18.01043448453,18.11737765504,18.22495583753,18.33317280261,18.44203234327,18.55153827502,18.66169443603,18.77250468726,18.88397302169,18.99610312873,19.09733831271,19.21073534981,19.32480572095,19.43955342429,19.55498248173,19.67109693902,19.78790086598,19.90539835657,20.02359352906,20.14249064253,20.26209363229,20.38240680608,20.50343438087,20.62518059864,20.73509756099,20.85821935885,20.98207223488,21.1066605301,21.23198861133,21.35806087129,21.4848817288,21.61245575376,21.74078716869,21.86988059568,21.99974055944,22.13037161156,22.26177833063,22.38041714879,22.51330859954,22.64698913914,22.78146345308,22.91673625467,23.0528122852,23.18969644807,23.32739327396,23.46590772227,23.60524464792,23.74540893465,23.88640549521,24.02823927151,24.15629202037,24.29972834105,24.44401636439,24.58916114767,24.73516777819,24.8820415172,25.02978722599,25.17841022592,25.32791572621,25.478308967,25.62959521956,25.78177978645,25.93486800174,26.07308167197,26.22789959273,26.38363679833,26.54029874734,26.69789108494,26.85641902723,27.01588828389,27.17630444429,27.33767313101,27.5],description:"Astro temperament, g=132.194511, 5-limit"},athan_chrom:{frequencies:[261.6255653006,285.30470202322,329.62755691287,349.22823143301,391.99543598175,427.47405410759,493.88330125613,523.2511306012],description:"Athanasopoulos's Byzantine Liturgical mode Chromatic"},auftetf:{frequencies:[261.6255653006,264.29521392612,269.80136421624,287.78812183066,359.73515228832,380.54627680087,384.42940207435,392.4383479509,418.60090448096],description:"5/4 C.I. again"},augmented:{frequencies:[261.6255653006,312.71213182188,329.62755691287,393.99259743989,415.30469757995,496.39956701727,523.2511306012],description:"Augmented temperament, g=91.2, oct=1/3, 5-limit"},augteta:{frequencies:[261.6255653006,280.76889934699,302.93486508491,328.90071066361,359.73515228832,380.54627680087,408.39112632289,440.63253103259,478.40103369253],description:"Linear Division of the 11/8, duplicated on the 16/11"},augteta2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,373.75080757229,402.50086969323,436.04260883433,475.68284600109],description:"Linear Division of the 7/5, duplicated on the 10/7"},augtetb:{frequencies:[261.6255653006,270.8594087818,280.76889934699,302.93486508491,359.73515228832,380.54627680087,295.48299139832,408.39112632289,440.63253103259],description:"Harmonic mean division of 11/8"},augtetc:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,359.73515228832,380.54627680087,407.72815371522,439.09185784716,475.68284600109],description:"11/10 C.I."},augtetd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,359.73515228832,380.54627680087,395.18267206244,410.98997894494,428.11456140098],description:"11/9 C.I."},augtete:{frequencies:[261.6255653006,269.80136421624,278.50463402967,287.78812183066,359.73515228832,380.54627680087,392.4383479509,405.0976494977,418.60090448096],description:"5/4 C.I."},augtetg:{frequencies:[261.6255653006,278.50463402967,297.71185016965,319.76457981184,359.73515228832,380.54627680087,405.0976494977,433.03541842858,465.11211608996],description:"9/8 C.I."},augteth:{frequencies:[261.6255653006,278.50463402967,287.78812183066,319.76457981184,359.73515228832,380.54627680087,405.0976494977,418.60090448096,465.11211608996],description:"9/8 C.I. A gapped version of this scale is called AugTetI"},augtetj:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. comprised of 11:10:9:8 subharmonic series on 1 and 8:9:10:11 on 16/11"},augtetk:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,418.60090448096,465.11211608996],description:"9/8 C.I. This is the converse form of AugTetJ"},augtetl:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,380.54627680087,428.11456140098,475.68284600109],description:"9/8 C.I. This is the harmonic form of AugTetI"},avg_bac:{frequencies:[261.6255653006,290.69507255622,307.79478270659,348.83408706747,392.4383479509,436.04260883433,461.69217405988,523.2511306012],description:"Average Bac System"},avicenna:{frequencies:[261.6255653006,290.69507255622,299.00064605783,348.83408706747,392.4383479509,436.04260883433,448.50096908674,523.2511306012],description:"Soft diatonic of Avicenna (Ibn Sina)"},avicenna_17:{frequencies:[261.6255653006,278.99913799634,283.42769574232,294.32876096318,310.07474405997,318.85615771011,331.11985608357,348.83408706747,371.99885066179,377.90359432309,392.4383479509,413.43299207996,425.14154361347,441.49314144476,465.11211608996,495.99846754905,503.87145909745,523.2511306012],description:"Tuning by Avicenna (Ibn Sina), Ahmed Mahmud Hifni, Cairo, 1977"},avicenna_19:{frequencies:[261.6255653006,275.62199471997,283.49690885483,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,358.80077526939,372.50983809402,377.99587847311,392.4383479509,413.43299207996,425.24536328225,441.49314144476,465.11211608996,478.40103369253,496.67978412536,503.45611792634,523.2511306012],description:"Arabic scale by Ibn Sina"},avicenna_chrom:{frequencies:[261.6255653006,269.10058145205,299.00064605783,348.83408706747,392.4383479509,403.65087217807,448.50096908674,523.2511306012],description:"Dorian mode a chromatic genus of Avicenna"},avicenna_chrom2:{frequencies:[261.6255653006,271.8968348557,323.34165055711,349.22823143301,391.99543598175,407.38495184466,484.46508327871,523.2511306012],description:"Dorian Mode, a 1:2 Chromatic, 4 + 18 + 8 parts"},avicenna_chrom3:{frequencies:[261.6255653006,290.69507255622,339.14425131559,348.83408706747,392.4383479509,436.04260883433,508.71637697339,523.2511306012],description:"Avicenna's Chromatic permuted"},avicenna_diat:{frequencies:[261.6255653006,281.75060878526,305.22982618403,348.83408706747,392.4383479509,422.62591317789,457.84473927605,523.2511306012],description:"Dorian mode a soft diatonic genus of Avicenna"},avicenna_diff:{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,310.68035879446,343.38355445704,367.91095120397,392.4383479509,400.61414686654,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"Difference tones of Avicenna's Soft diatonic reduced by 2/1"},avicenna_enh:{frequencies:[261.6255653006,268.33391312882,279.06726965397,348.83408706747,392.4383479509,402.50086969323,418.60090448096,523.2511306012],description:"Dorian mode of Avicenna's (Ibn Sina) Enharmonic genus"},awad:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,307.79478270659,317.12189733406,327.03195662575,337.58137458142,348.83408706747,358.80077526939,369.35373924791,380.54627680087,392.4383479509,402.50086969323,413.09299784305,424.25767346043,436.04260883433,448.50096908674,461.69217405988,475.68284600109,490.54793493862,506.37206187213,523.2511306012],description:"d'Erlanger vol.5, p.37, after Mans.ur 'Awad"},awraamoff:{frequencies:[261.6255653006,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Awraamoff Septimal Just"},ayers:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,537.78588422901,569.42034800719,605.00911975764,645.34306107481,691.43899400873,744.62660893248,806.67882634352,880.01326510202,968.01459161222,1075.57176845802,1210.01823951527,1382.87798801746,1613.35765268703,1936.02918322444,2420.03647903055,3226.71530537407,4840.0729580611,9680.1459161222],description:"Lydia Ayers, algorithmic composition, subharmonics 1-37"},ayers_19:{frequencies:[261.6255653006,268.89294211451,276.57559760349,284.71017400359,293.33775503401,302.50455987882,312.26277148781,322.67153053741,333.7981350387,345.71949700436,358.52392281934,372.31330446624,387.20583664489,403.33941317176,420.87590939662,440.00663255101,460.95932933915,484.00729580611,509.48136400643,523.2511306012],description:"Scale for NINETEEN, for 19 for the 90's CD. Repeats at 37/19 (or 2/1)"},ayers_ap:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Lydia Ayers' Appetizer, ICMC 96, Balinese Slendro from Singaraja,"},ayers_me:{frequencies:[261.6255653006,280.31310567921,299.00064605783,308.34441624714,336.37572681506,392.4383479509,420.46965851882,448.50096908674,504.56359022259,523.2511306012],description:"Scale for Merapi (1996), Lydia Ayers. Slendro 0 2 4 5 7 9, Pelog 0 1 3 6 8 9"},h10_27:{frequencies:[261.6255653006,281.00523680435,300.3849083081,319.76457981184,348.83408706747,368.21375857121,397.28326582684,426.35277308246,455.42228033808,484.4917875937,523.2511306012],description:"10-tET harmonic approximation, fundamental=27"},h12_24:{frequencies:[261.6255653006,272.52663052146,294.32876096318,316.13089140489,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,468.74580449691,490.54793493862,523.2511306012],description:"12-tET harmonic approximation, fundamental=24"},h14_27:{frequencies:[261.6255653006,271.31540105247,290.69507255622,300.3849083081,319.76457981184,339.14425131559,348.83408706747,368.21375857121,387.59343007496,406.97310157871,426.35277308246,455.42228033808,474.80195184183,494.18162334558,523.2511306012],description:"14-tET harmonic approximation, fundamental=27"},h15_24:{frequencies:[261.6255653006,272.52663052146,283.42769574232,305.22982618403,316.13089140489,327.03195662575,348.83408706747,359.73515228832,381.53728273004,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"15-tET harmonic approximation, fundamental=24"},hahn9:{frequencies:[261.6255653006,286.15296204753,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,457.84473927605,490.54793493862,523.2511306012],description:"Paul Hahn's just version of 9 out of 31 scale. TL 6-8-'98"},hahn_7:{frequencies:[261.6255653006,274.70684356563,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Paul Hahn's scale with 32 consonant 7-limit dyads. TL '99, see also smithgw_hahn12"},hahn_g:{frequencies:[261.6255653006,280.50183143454,294.66523452594,309.54379154736,331.87735433448,348.63486612079,373.78884718875,392.66259958718,420.99317852788,442.25042328711,464.58101193362,498.10049926644,523.2511306012],description:'fourth of sqrt(2)-1 octave "recursive" meantone, Paul Hahn'},hahnmaxr:{frequencies:[261.6255653006,275.93321340298,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Paul Hahn's hahn_7 marvel projected to the 5-limit"},halfefg357777:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.35783506196,341.71502406609,375.57576268738,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Half genus [357777]"},hamilton:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,479.64686971777,523.2511306012],description:"Elsie Hamilton's gamut, from article The Modes of Ancient Greek Music (1953)"},hamilton_jc:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,338.57426097725,411.12588832951,383.71749577421,442.75095666255,426.35277308246,479.64686971777,523.2511306012],description:"Chalmers' permutation of Hamilton's gamut. Diatonic notes on white"},hamilton_jc2:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,319.76457981184,359.73515228832,383.71749577421,411.12588832951,426.35277308246,442.75095666255,460.46099492906,479.64686971777,523.2511306012],description:"EH gamut, diatonic notes on white and drops 17 for 25. JC Dorian Harmonia on C"},hammond:{frequencies:[261.6255653006,226.52945288223,240.12209418,254.35818848669,269.43528366778,285.40970760065,302.50455987882,320.49131749323,339.40613876835,359.73515228832,381.06332337261,403.65087217807,427.65717404906,453.05890576445],description:'Hammond organ pitch wheel ratios, 1/1=320 Hz. Do "del 0" to get 12-tone scale'},hammond12:{frequencies:[261.6255653006,277.32410877127,293.76579515365,311.17877832054,329.62811300357,349.37146352202,370.1449018936,391.99018843668,415.46876743159,440.10130305006,466.18833124791,493.91391932426,523.2511306012],description:"Hammond organ scale, 1/1=277.0731707 Hz, A=440, see hammond for the ratios"},handblue:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Handy Blues" of Pitch Palette, 7-limit'},handel:{frequencies:[261.6255653006,276.07055536165,292.89641271707,310.57937447136,328.79480940231,349.02322090701,368.4933346061,391.37619916626,414.10583283548,438.86859125239,465.61660972366,492.3908742288,523.2511306012],description:"Well temperament according to Georg Friedrich H\xEF\xBF\xBDndel's rules (c. 1780)"},hanson_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"JI version of Hanson's 19 out of 53-tET scale"},"harm-doreninv1":{frequencies:[261.6255653006,321.08592105074,327.03195662575,332.97799220076,380.54627680087,499.46698830115,511.35905945117,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Dorian Harmonia"},"harm-dorinv1":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Dorian Harmonia"},"harm-lydchrinv1":{frequencies:[261.6255653006,322.00069575458,342.12573923925,362.25078272391,402.50086969323,483.00104363188,503.12608711654,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Lydian Harmonia"},"harm-lydeninv1":{frequencies:[261.6255653006,342.12573923925,352.18826098158,362.25078272391,402.50086969323,503.12608711654,513.18860885887,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Lydian Harmonia"},"harm-mixochrinv1":{frequencies:[261.6255653006,336.37572681506,355.06326719367,373.75080757229,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"1st Inverted Schlesinger's Chromatic Mixolydian Harmonia"},"harm-mixoeninv1":{frequencies:[261.6255653006,355.06326719367,364.40703738298,373.75080757229,411.12588832951,504.56359022259,513.90736041189,523.2511306012],description:"1st Inverted Schlesinger's Enharmonic Mixolydian Harmonia"},harm10:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,331.11985608357,343.38355445704,367.91095120397,392.4383479509,400.61414686654,408.78994578219,441.49314144476,457.84473927605,515.07533168556,523.2511306012],description:"6/7/8/9/10 harmonics"},harm11s:{frequencies:[261.6255653006,65.40639132515,95.13656920022,104.65022612024,116.27802902249,130.8127826503,149.50032302891,174.41704353373,196.21917397545,209.30045224048,261.6255653006,327.03195662575,348.83408706747,392.4383479509,457.84473927605,523.2511306012,588.65752192635,654.0639132515,719.47030457665,1046.5022612024],description:"Harm. 1/4-11/4 and subh. 4/1-4/11. Joseph Pehrson 1999"},harm12s:{frequencies:[261.6255653006,294.32876096318,299.00064605783,327.03195662575,348.83408706747,359.73515228832,380.54627680087,392.4383479509,418.60090448096,457.84473927605,465.11211608996,523.2511306012],description:"Harmonics 1 to 12 and subharmonics mixed"},"harm15-30":{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,366.27579142084,383.71749577421,418.60090448096,436.04260883433,453.48431318771,488.36772189445,523.2511306012],description:"Harmonics 15 to 30"},harm15:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991],description:"Fifth octave of the harmonic overtone series"},"harm16-32":{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Harmonics 16-32 & Tom Stone's Guitar Scale"},harm16:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,2093.0045224048,1395.33634826987,1046.5022612024,837.20180896192,697.66817413493,598.00129211566,523.2511306012,465.11211608996,418.60090448096,380.54627680087,348.83408706747,322.00069575458,299.00064605783,279.06726965397,261.6255653006],description:"First 16 harmonics and subharmonics"},"harm1c-dorian":{frequencies:[261.6255653006,309.19384990071,321.08592105074,332.97799220076,380.54627680087,475.68284600109,499.46698830115,523.2511306012],description:"Harm1C-Dorian"},"harm1c-hypod":{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"HarmC-Hypodorian"},"harm1c-hypol":{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"HarmC-Hypolydian"},"harm1c-lydian":{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,382.37582620857,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"Harm1C-Lydian"},"harm1c-mix":{frequencies:[261.6255653006,299.00064605783,373.75080757229,392.4383479509,411.12588832951,485.87604984397,504.56359022259,523.2511306012],description:"Harm1C-Con Mixolydian"},"harm1c-mixolydian":{frequencies:[261.6255653006,280.31310567921,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"Harm1C-Mixolydian"},harm24:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"Harmonics 12 to 24"},harm24_2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 12 to 24, mode 9"},harm3:{frequencies:[261.6255653006,327.03195662575,392.4383479509,457.84473927605],description:"Third octave of the harmonic overtone series"},"harm30-60":{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,357.55493924415,366.27579142084,374.99664359753,383.71749577421,392.4383479509,401.15920012759,409.88005230427,418.60090448096,427.32175665765,436.04260883433,444.76346101102,453.48431318771,462.20516536439,470.92601754108,479.64686971777,488.36772189445,497.08857407114,505.80942624783,514.53027842451,523.2511306012],description:"Harmonics 30-60"},harm30:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,310.07474405997,322.00069575458,334.88072358477,348.83408706747,364.00078650518,398.6675280771,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024,1196.00258423131,1395.33634826987,1674.40361792384,2093.0045224048,2790.67269653973,4186.0090448096,8372.0180896192,8633.6436549198,8895.2692202204,9156.894785521,9418.5203508216,9680.1459161222,9941.7714814228,10203.3970467234,10465.022612024,10726.6481773246,10988.2737426252,11249.8993079258,11511.5248732264,11773.150438527,12034.7760038276,12296.4015691282,12558.0271344288,12819.6526997294,13081.27826503,13342.9038303306,13604.5293956312,13866.1549609318,14127.7805262324,14389.406091533,14651.0316568336,14912.6572221342,15174.2827874348,15435.9083527354,15697.533918036,15959.1594833366,16220.7850486372],description:"First 30 harmonics and subharmonics"},"harm32-64":{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,335.20775554139,343.38355445704,351.55935337268,359.73515228832,367.91095120397,376.08675011961,384.26254903526,392.4383479509,400.61414686654,408.78994578219,416.96574469783,425.14154361347,433.31734252912,441.49314144476,449.66894036041,457.84473927605,466.02053819169,474.19633710734,482.37213602298,490.54793493862,498.72373385427,506.89953276991,515.07533168556,523.2511306012],description:"Harmonics 32-64"},harm37odd:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Odd harmonics until 37"},harm4:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862],description:"Fourth octave of the harmonic overtone series"},"harm6-12":{frequencies:[261.6255653006,269.80136421624,286.15296204753,294.32876096318,314.76825825228,327.03195662575,331.11985608357,343.38355445704,359.73515228832,367.91095120397,392.4383479509,400.61414686654,404.70204632437,408.78994578219,441.49314144476,449.66894036041,457.84473927605,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"First 12 harmonics of 6th through 12th harmonics"},harm6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:"Harmonics 6-12"},"harm60-30":{frequencies:[261.6255653006,280.31310567921,290.69507255622,313.95067836072,327.03195662575,348.83408706747,373.75080757229,392.4383479509,413.09299784305,436.04260883433,448.50096908674,490.54793493862,523.2511306012],description:"Harmonics 60 to 30 (Perkis)"},harm7lim:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,3139.5067836072,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,7325.5158284168,7848.766959018,8372.0180896192,9156.894785521,9418.5203508216,10465.022612024,10988.2737426252,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14651.0316568336,15697.533918036,16482.4106139378,16744.0361792384,18313.789571042,18837.0407016432,19621.917397545,20930.045224048,21191.6707893486,21976.5474852504,23546.300877054,25116.0542688576,25639.3053994588,26162.55653006,27470.684356563,29302.0633136672,31395.067836072],description:"7-limit harmonics"},harm8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Harmonics 8-16"},harm9:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,356.10146388137,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"6/7/8/9 harmonics, First 9 overtones of 5th through 9th harmonics"},harm_bastard:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:`Schlesinger's "Bastard" Hypodorian Harmonia & inverse 1)7 from 1.3.5.7.9.11.13`},harm_bastinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,425.14154361347,457.84473927605,523.2511306012],description:`Inverse Schlesinger's "Bastard" Hypodorian Harmonia & 1)7 from 1.3.5.7.9.11.13`},harm_darreg:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,5232.511306012,6279.0135672144,7325.5158284168,8372.0180896192,9418.5203508216,10465.022612024,11511.5248732264,12558.0271344288,13604.5293956312,14651.0316568336,15697.533918036],description:"Darreg Harmonics 4-15"},harm_mean:{frequencies:[261.6255653006,270.06509966514,279.06726965397,299.00064605783,348.83408706747,392.4383479509,405.0976494977,418.60090448096,448.50096908674,523.2511306012],description:"Harm. Mean 9-tonic 8/7 is HM of 1/1 and 4/3, etc."},"harmc-hypop":{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,363.36884069528,377.90359432309,406.97310157871,465.11211608996,494.18162334558,523.2511306012],description:"HarmC-Hypophrygian"},"harmd-15":{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,383.71749577421,418.60090448096,453.48431318771,523.2511306012],description:"HarmD-15-Harmonia"},"harmd-conmix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-ConMixolydian"},"harmd-hypod":{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"HarmD-Hypodorian"},"harmd-hypol":{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"HarmD-Hypolydian"},"harmd-hypop":{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,406.97310157871,436.04260883433,465.11211608996,523.2511306012],description:"HarmD-Hypophrygian"},"harmd-lyd":{frequencies:[261.6255653006,281.75060878526,301.87565226992,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"HarmD-Lydian"},"harmd-mix":{frequencies:[261.6255653006,299.00064605783,336.37572681506,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"HarmD-Mixolydian. Harmonics 7-14"},"harmd-phr":{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,348.83408706747,327.03195662575,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"HarmD-Phryg (with 5 extra tones)"},"harme-hypod":{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,376.08675011961,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"HarmE-Hypodorian"},"harme-hypol":{frequencies:[261.6255653006,281.24748269815,274.70684356563,340.11323489078,366.27579142084,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"HarmE-Hypolydian"},"harme-hypop":{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,363.36884069528,377.90359432309,406.97310157871,494.18162334558,508.71637697339,523.2511306012],description:"HarmE-Hypophrygian"},"harmjc-15":{frequencies:[261.6255653006,280.31310567921,301.87565226992,313.95067836072,327.03195662575,356.76213450082,373.75080757229,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Rationalized JC Sub-15 Harmonia on C. MD=15, No planetary assignment."},"harmjc-17-2":{frequencies:[261.6255653006,277.97716313189,296.50897400735,317.68818643644,342.12573923925,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,468.17206422213,494.18162334558,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-17":{frequencies:[261.6255653006,269.55361273395,277.97716313189,296.50897400735,317.68818643644,342.12573923925,355.81076880882,370.63621750918,386.75083566176,404.33041910093,423.58424858192,444.76346101102,523.2511306012],description:"Rationalized JC Sub-17 Harmonia on C. MD=17, No planetary assignment."},"harmjc-19-2":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,368.21375857121,382.37582620857,397.67085925691,414.24047839262,432.2509339749,451.89870370104,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-19":{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,414.24047839262,432.2509339749,451.89870370104,473.41768959156,497.08857407114,523.2511306012],description:"Rationalized JC Sub-19 Harmonia on C. MD=19, No planetary assignment."},"harmjc-21":{frequencies:[261.6255653006,268.0066766494,274.70684356563,289.16509849014,305.22982618403,343.38355445704,366.27579142084,392.4383479509,406.97310157871,422.62591317789,439.53094970501,457.84473927605,523.2511306012],description:"Rationalized JC Sub-21 Harmonia on C. MD=21, No planetary assignment."},"harmjc-23-2":{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,353.96400011258,376.08675011961,401.15920012759,429.81342870813,462.87600014722,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-23":{frequencies:[261.6255653006,273.51763645063,300.86940009569,316.70463167967,334.29933343966,376.08675011961,401.15920012759,429.81342870813,445.73244458621,462.87600014722,481.3910401531,501.44900015948,523.2511306012],description:"Rationalized JC Sub-23 Harmonia on C. MD=23, No planetary assignment."},"harmjc-25":{frequencies:[261.6255653006,272.52663052146,297.30177875068,311.45900631024,327.03195662575,363.36884069528,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,503.12608711654,523.2511306012],description:"Rationalized JC Sub-25 Harmonia on C. MD=25, No planetary assignment."},"harmjc-27":{frequencies:[261.6255653006,271.68808704293,294.32876096318,307.12566361375,321.08592105074,353.19451315581,371.78369805875,392.4383479509,415.52295665389,441.49314144476,470.92601754108,504.56359022259,523.2511306012],description:"Rationalized JC Sub-27 Harmonia on C. MD=27, No planetary assignment."},"harmjc-hypod16":{frequencies:[261.6255653006,279.06726965397,299.00064605783,310.07474405997,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,418.60090448096,440.63253103259,465.11211608996,523.2511306012],description:"Rationalized JC Hypodorian Harmonia on C. Saturn Scale on C, MD=16. (Steiner)"},"harmjc-hypol20":{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,455.00098313148,575.57624366132,523.2511306012],description:"Rationalized JC Hypolydian Harmonia on C. Mars scale on C., MD=20"},"harmjc-hypop18":{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Rationalized JC Hypophrygian Harmonia on C. Jupiter scale on C, MD =18"},"harmjc-lydian13":{frequencies:[261.6255653006,272.09058791262,283.42769574232,295.75063903546,309.19384990071,340.11323489078,358.01393146398,377.90359432309,400.13321751856,425.14154361347,453.48431318771,485.87604984397,523.2511306012],description:"Rationalized JC Lydian Harmonia on C. Mercury scale on C, MD = 26 or 13"},"harmjc-mix14":{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,332.97799220076,348.83408706747,366.27579142084,385.55346465352,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Rationalized JC Mixolydian Harmonia on C. Moon Scale on C, MD = 14"},"harmjc-phryg12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Rationalized JC Phrygian Harmonia on C. Venus scale on C, MD = 24 or 12"},harmonical:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"See pp 17 and 466-468 Helmholtz. lower 4 oct. Instr. designed & tuned by Ellis"},harmonical_up:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,457.84473927605,392.4383479509,408.78994578219,425.14154361347,474.19633710734,490.54793493862,523.2511306012],description:"Upper 2 octaves of Ellis's Harmonical"},harmsub16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,301.87565226992,327.03195662575,356.76213450082,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"16 harmonics on 1/1 and 16 subharmonics on 15/8"},harrison_16:{frequencies:[261.6255653006,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:'Lou Harrison 16-tone superparticular "Ptolemy Duple"'},harrison_5:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_3:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,406.97310157871,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_5_4:{frequencies:[261.6255653006,279.06726965397,313.95067836072,392.4383479509,490.54793493862,523.2511306012],description:"From Lou Harrison, a pelog style pentatonic"},harrison_8:{frequencies:[261.6255653006,279.06726965397,313.95067836072,327.03195662575,367.91095120397,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:'Lou Harrison 8-tone tuning for "Serenade for Guitar"'},harrison_cinna:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,343.38355445704,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:`Lou Harrison, "Incidental Music for Corneille's Cinna" (1955-56) 1/1=C`},harrison_diat:{frequencies:[261.6255653006,274.70684356563,313.95067836072,348.83408706747,392.4383479509,412.06026534844,470.92601754108,523.2511306012],description:"From Lou Harrison, a soft diatonic"},harrison_joy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Lou Harrison's Joyous 6"},harrison_mid:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Lou Harrison mid mode"},harrison_mid2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"Lou Harrison mid mode 2"},harrison_min:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"From Lou Harrison, a symmetrical pentatonic with minor thirds"},harrison_mix1:{frequencies:[261.6255653006,285.40970760065,313.95067836072,392.4383479509,425.14154361347,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix2:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,490.54793493862,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix3:{frequencies:[261.6255653006,313.95067836072,336.37572681506,392.4383479509,418.60090448096,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_mix4:{frequencies:[261.6255653006,280.31310567921,327.03195662575,392.4383479509,448.50096908674,523.2511306012],description:'A "mixed type" pentatonic, Lou Harrison'},harrison_songs:{frequencies:[261.6255653006,271.31540105247,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'Shared gamut of "Four Strict Songs" (1951-55), each pentatonic'},harrisonj:{frequencies:[261.6255653006,272.17712546173,292.13970819848,313.56642833783,326.21280531667,350.13858362887,364.25994396351,390.97625694066,406.744629928,436.57694340361,468.59728067062,487.49616921257,523.2511306012],description:"John Harrison's temperament (1775), almost 3/10-comma. Third = 1200/pi"},harrisonm_rev:{frequencies:[261.6255653006,257.53766584278,294.32876096318,289.72987407313,331.11985608357,343.38355445704,372.50983809402,392.4383479509,386.30649876417,441.49314144476,457.84473927605,496.67978412536,523.2511306012],description:'Michael Harrison, piano tuning for "Revelation" (2001), 1/1=F'},haverstick13:{frequencies:[261.6255653006,283.85429714132,301.75671459889,307.97166902637,320.78822215662,341.02002673508,362.52783176564,377.61479489998,401.43059675514,426.7484383229,444.50800708553,482.27514684959,502.34551296122,523.2511306012],description:"Neil Haverstick, scale in 34-tET, MMM 21-5-2006"},hawkes:{frequencies:[261.6255653006,274.56549986328,292.86986732103,310.24975557428,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901507992,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1807)"},hawkes2:{frequencies:[261.6255653006,275.15193010334,293.04845178801,312.10900487995,328.24542585003,349.59527202198,367.66978141816,391.58387939843,411.8292495232,438.61558204759,467.14415995873,491.2960898965,523.2511306012],description:"Meantone with fifth tempered 1/6 of 53-tET step by William Hawkes (1808)"},hawkes3:{frequencies:[261.6255653006,274.56549986328,292.86986732103,311.6193417424,327.84547867349,349.70184487387,366.99801003998,391.46454285105,411.84824958905,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"William Hawkes' modified 1/5-comma meantone (1811)"},hbarnes:{frequencies:[261.6255653006,276.71351472429,293.33333347996,310.95136287868,328.88393162803,349.42547049952,369.15973155124,391.77416758435,414.83597850347,439.25532436715,466.16376151809,493.04743111995,523.2511306012],description:"Variation on Barnes with 1/6P -> 1/8P. OdC '99"},hebdome1:{frequencies:[261.6255653006,265.71346475842,267.23182741418,269.80136421624,273.30527803723,280.31310567921,283.42769574232,287.78812183066,289.07289023169,292.28481123426,294.32876096318,300.63580584096,303.67253115248,308.34441624714,311.77046531655,315.35224388912,318.85615771011,323.76163705949,327.03195662575,334.03978426773,336.37572681506,340.11323489078,341.63159754654,346.88746827803,350.74177348112,359.73515228832,364.40703738298,367.91095120397,370.01329949656,375.7947573012,382.62738925213,385.43052030892,389.71308164569,392.4383479509,400.84774112128,404.70204632437,409.95791705585,411.12588832951,417.54973033466,420.46965851882,425.14154361347,431.68218274599,437.28844485957,441.49314144476,445.38637902364,449.66894036041,455.50879672872,462.5166243707,467.65569797482,470.92601754108,478.28423656516,479.64686971777,485.87604984397,490.54793493862,501.0596764016,504.56359022259,510.16985233617,513.90736041189,523.2511306012],description:"Wilson 1.3.5.7.9.11.13.15 hebdomekontany, 1.3.5.7 tonic"},helmholtz:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Helmholtz's Chromatic scale and Gipsy major from Slovakia"},helmholtz_24:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,331.11985608357,344.91651675372,348.83408706747,367.91095120397,372.50983809402,388.03108134794,392.4383479509,408.78994578219,413.89982010446,436.04260883433,441.49314144476,459.88868900496,465.63729761752,490.54793493862,496.67978412536,517.37477513058,523.2511306012],description:"Simplified Helmholtz 24"},helmholtz_hd:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,523.2511306012],description:"Helmholtz Harmonic Decad"},helmholtz_pure:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,327.03195662575,330.74639366397,344.91651675372,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,413.43299207996,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,496.11959049595,516.79124009995,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning untempered"},helmholtz_temp:{frequencies:[261.6255653006,275.81645389904,279.10671937395,290.77707354032,294.24580701304,306.54917537161,310.20605716322,327.03195662575,330.9330448436,344.77062435684,348.88325535732,367.80710710303,372.19474608839,387.75741156435,392.38304142029,408.78994578219,413.66637442451,436.10414127513,441.30625330017,459.75895986689,465.24324076996,490.4788828408,496.3296094287,517.08305349316,523.2511306012],description:"Helmholtz's two-keyboard harmonium tuning"},hem_chrom:{frequencies:[261.6255653006,269.55361273395,285.40970760065,348.83408706747,392.4383479509,404.33041910093,428.11456140098,523.2511306012],description:"Hemiolic Chromatic genus has the strong or 1:2 division of the 12/11 pyknon"},hem_chrom11:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"11'al Hemiolic Chromatic genus with a CI of 11/9, Winnington-Ingram"},hem_chrom13:{frequencies:[261.6255653006,272.09058791262,283.42769574232,348.83408706747,392.4383479509,408.13588186894,425.14154361347,523.2511306012],description:"13'al Hemiolic Chromatic or neutral-third genus has a CI of 16/13"},hem_chrom2:{frequencies:[261.6255653006,269.29177952703,285.30470202322,349.22823143301,391.99543598175,403.48177901006,427.47405410759,523.2511306012],description:"1:2 Hemiolic Chromatic genus 3 + 6 + 21 parts"},hemiwuer24:{frequencies:[261.6255653006,274.60778382002,280.48822448524,286.49458884928,292.62957327549,307.15025309186,313.72755695954,320.44570714783,327.30771955335,350.90592546776,358.42021185082,366.09540888186,373.9349620795,392.49012653442,400.89489544613,409.47964376542,418.24822532303,439.00227453173,448.4030528436,458.00513880662,467.8128437444,491.02635713596,501.54117720983,512.28116095218,523.2511306012],description:"Hemiw\xEF\xBF\xBDrschmidt[24] in 229-tET tuning."},hen12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Adjusted Hahn12"},hen22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,415.27867508032,418.60090448096,436.04260883433,448.50096908674,457.84473927605,484.4917875937,490.54793493862,508.71637697339,523.2511306012],description:"Adjusted Hahn22"},hept_diamond:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,316.53463456122,325.57848126297,327.03195662575,334.88072358477,336.37572681506,348.83408706747,392.4383479509,406.97310157871,408.78994578219,418.60090448096,420.46965851882,432.48307733364,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Inverted-Prime Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondi:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,281.36411960997,289.40309445597,294.32876096318,297.67175429757,327.03195662575,336.37572681506,348.83408706747,361.75386806997,367.91095120397,372.08969287196,378.42269266694,392.4383479509,406.97310157871,418.60090448096,459.88868900496,465.11211608996,473.02836583367,486.54346200035,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Prime-Inverted Heptatonic Diamond based on Archytas's Enharmonic"},hept_diamondp:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,339.14425131559,348.83408706747,358.80077526939,361.75386806997,367.91095120397,372.08969287196,378.42269266694,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,436.04260883433,448.50096908674,465.11211608996,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"Heptatonic Diamond based on Archytas's Enharmonic, 27 tones"},herf:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Sims:Reflections on This and That, 1991. Used by Herf in Ekmelischer Gesang"},heun:{frequencies:[261.6255653006,275.15237829755,293.0485888979,312.10878854255,328.24573110938,349.59519124833,367.67029324081,391.58396987353,411.83001550364,438.61588607285,467.14394139401,491.29666030217,523.2511306012],description:"Well temperament for organ of Jan Heun (1805), subset of 55-tET"},hexagonal13:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 13-tone scale"},hexagonal37:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,313.95067836072,322.99452506247,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,523.2511306012],description:"Star hexagonal 37-tone scale"},hexany1:{frequencies:[261.6255653006,305.22982618403,327.03195662575,381.53728273004,436.04260883433,457.84473927605,523.2511306012],description:"Two out of 1 3 5 7 hexany on 1.3"},hexany10:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"1.3.5.9 Hexany"},hexany11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"1.3.7.9 Hexany on 1.3"},hexany12:{frequencies:[261.6255653006,290.69507255622,305.22982618403,339.14425131559,406.97310157871,436.04260883433,523.2511306012],description:"3.5.7.9 Hexany on 3.9"},hexany13:{frequencies:[261.6255653006,285.40970760065,327.03195662575,356.76213450082,392.4383479509,475.68284600109,523.2511306012],description:"1.3.5.11 Hexany on 1.11"},hexany14:{frequencies:[261.6255653006,287.78812183066,340.11323489078,383.71749577421,453.48431318771,498.83274450648,523.2511306012],description:"5.11.13.15 Hexany (5.15), used in The Giving, by Stephen J. Taylor"},hexany15:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,418.60090448096,523.2511306012],description:"1.3.5.15 2)4 hexany (1.15 tonic) degenerate, symmetrical pentatonic"},hexany16:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,465.11211608996,523.2511306012],description:"1.3.9.27 Hexany, a degenerate pentatonic form"},hexany17:{frequencies:[261.6255653006,327.03195662575,334.88072358477,408.78994578219,418.60090448096,523.2511306012],description:"1.5.25.125 Hexany, a degenerate pentatonic form"},hexany18:{frequencies:[261.6255653006,299.00064605783,341.71502406609,400.61414686654,457.84473927605,523.2511306012],description:"1.7.49.343 Hexany, a degenerate pentatonic form"},hexany19:{frequencies:[261.6255653006,299.00064605783,327.03195662575,418.60090448096,457.84473927605,523.2511306012],description:"1.5.7.35 Hexany, a degenerate pentatonic form"},hexany2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 2"},hexany20:{frequencies:[261.6255653006,279.06726965397,305.22982618403,398.6675280771,436.04260883433,465.11211608996,523.2511306012],description:"3.5.7.105 Hexany"},hexany21:{frequencies:[261.6255653006,279.06726965397,310.07474405997,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany"},hexany21a:{frequencies:[261.6255653006,279.06726965397,310.07474405997,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"3.5.9.135 Hexany + 4/3. Is Didymos Diatonic tetrachord on 1/1 and inv. on 3/2"},hexany22:{frequencies:[261.6255653006,276.76092858245,359.73515228832,380.54627680087,494.63583439645,523.2511306012],description:"1.11.121.1331 Hexany, a degenerate pentatonic form"},hexany23:{frequencies:[261.6255653006,348.83408706747,359.73515228832,380.54627680087,392.4383479509,523.2511306012],description:"1.3.11.33 Hexany, degenerate pentatonic form"},hexany24:{frequencies:[261.6255653006,327.03195662575,359.73515228832,380.54627680087,418.60090448096,523.2511306012],description:"1.5.11.55 Hexany, a degenerate pentatonic form"},hexany25:{frequencies:[261.6255653006,299.00064605783,359.73515228832,380.54627680087,457.84473927605,523.2511306012],description:"1.7.11.77 Hexany, a degenerate pentatonic form"},hexany26:{frequencies:[261.6255653006,294.32876096318,359.73515228832,380.54627680087,465.11211608996,523.2511306012],description:"1.9.11.99 Hexany, a degenerate pentatonic form"},hexany3:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 3"},hexany4:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 4"},hexany49:{frequencies:[261.6255653006,299.00064605783,305.22982618403,392.4383479509,400.61414686654,457.84473927605,523.2511306012],description:"1.3.21.49 2)4 hexany (1.21 tonic)"},hexany5:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 5"},hexany6:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Hexany Cluster 6"},hexany7:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Hexany Cluster 7"},hexany8:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,340.65828815182,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,502.32108537715,523.2511306012],description:"Hexany Cluster 8"},hexany9:{frequencies:[261.6255653006,299.00064605783,313.95067836072,358.80077526939,418.60090448096,448.50096908674,523.2511306012],description:"1.3.5.7 Hexany on 5.7"},hexany_cl:{frequencies:[261.6255653006,294.32876096318,301.39265122629,313.95067836072,327.03195662575,348.83408706747,353.19451315581,376.74081403286,392.4383479509,418.60090448096,470.92601754108,502.32108537715,523.2511306012],description:"Hexany Cluster 1"},hexany_cl2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,490.54793493862,502.32108537715,523.2511306012],description:"Composed of 1.3.5.45, 1.3.5.75, 1.3.5.9, and 1.3.5.25 hexanies"},hexany_flank:{frequencies:[261.6255653006,267.07609791103,299.00064605783,305.22982618403,327.03195662575,348.83408706747,373.75080757229,381.53728273004,427.14378008261,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Hexany Flanker, 7-limit, from Wilson"},hexany_tetr:{frequencies:[261.6255653006,269.10058145205,279.06726965397,336.37572681506,348.83408706747,358.80077526939,523.2511306012],description:"Complex 12 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,339.14425131559,348.83408706747,361.75386806997,523.2511306012],description:"Complex 1 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,358.80077526939,372.08969287196,523.2511306012],description:"Complex 2 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,336.37572681506,348.83408706747,523.2511306012],description:"Complex 9 of p. 115, a hexany based on Archytas's Enharmonic"},hexany_u2:{frequencies:[261.6255653006,274.70684356563,279.06726965397,280.31310567921,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,488.36772189445,490.54793493862,498.33441009638,523.2511306012],description:"Hexany union = genus [335577] minus two corners"},hexany_union:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"The union of all of the pitches of the 1.3.5.7 hexany on each tone as 1/1"},hexany_urot:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,333.84512238879,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,392.4383479509,400.61414686654,406.97310157871,436.04260883433,445.12682985172,448.50096908674,457.84473927605,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Aggregate rotations of 1.3.5.7 hexany, 1.3 = 1/1"},hexanys:{frequencies:[261.6255653006,286.15296204753,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Hexanys 1 3 5 7 9"},hexanys2:{frequencies:[261.6255653006,314.76825825228,425.14154361347,457.84473927605,269.80136421624,371.99885066179,392.4383479509,472.15238737843,318.85615771011,359.73515228832,343.38355445704,292.28481123426,523.2511306012],description:"Hexanys 1 3 7 11 13"},higgs:{frequencies:[261.6255653006,392.4383479509,418.60090448096,422.62591317789,423.58424858192,425.14154361347,436.04260883433,523.2511306012],description:"From Greg Higgs announcement of the formation of an Internet Tuning list"},hinsz_gr:{frequencies:[261.6255653006,274.68983337859,292.34127285051,310.07474405997,326.6631048533,348.83408706747,366.25311135453,391.11111150212,412.03474986192,437.02884834934,465.11211608996,489.99465727995,523.2511306012],description:"Reconstructed Hinsz temperament, organ Pelstergasthuiskerk Groningen. Ortgies,2002"},hipkins:{frequencies:[261.6255653006,275.62199471997,299.00064605783,348.83408706747,392.4383479509,413.43299207996,448.50096908674,523.2511306012],description:"Hipkins' Chromatic"},hirajoshi:{frequencies:[261.6255653006,291.13134764929,317.84796618517,388.16504068057,412.91271853531,523.2511306012],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.112"},hirajoshi2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"Japanese pentatonic koto scale, theoretical. Helmholz/Ellis p.519, nr.110"},hirajoshi3:{frequencies:[261.6255653006,292.47977325983,321.54118165335,396.32121331049,415.54465627623,522.94897617031],description:"Observed Japanese pentatonic koto scale. Helmholtz/Ellis p.519, nr.111"},hirashima:{frequencies:[261.6255653006,277.33928225406,292.50627485027,312.00669222389,327.03195662575,349.91912034749,369.78570985692,391.22147055517,416.00892317314,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Tatsushi Hirashima, temperament of chapel organ of Kobe Shoin Women's Univ."},hjelmboogie:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,367.91095120397,392.4383479509,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:`Paul Hjelmstad's "Boogie Woogie" scale, TL 20-3-2006`},ho_mai_nhi:{frequencies:[261.6255653006,287.78812183066,348.83408706747,392.4383479509,431.68218274599,523.2511306012],description:"Ho Mai Nhi (Nam Hue) dan tranh scale, Vietnam"},hochgartz:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.86458629683,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.49999887294,438.2147004401,465.53241962975,490.54793493862,523.2511306012],description:"Michael Hochgartz, modified 1/5-comma meantone temperament"},hofmann1:{frequencies:[261.6255653006,262.65154790962,279.06726965397,348.83408706747,392.4383479509,393.97732186443,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #1, Dorian mode"},hofmann2:{frequencies:[261.6255653006,263.56353245097,279.06726965397,348.83408706747,392.4383479509,395.34529867646,418.60090448096,523.2511306012],description:"Hofmann's Enharmonic #2, Dorian mode"},hofmann_chrom:{frequencies:[261.6255653006,264.26824777838,290.69507255622,348.83408706747,392.4383479509,396.40237166758,436.04260883433,523.2511306012],description:"Hofmann's Chromatic"},holder:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,409.94826565972,437.46806069696,467.28984664562,489.70152554512,523.2511306012],description:"William Holder's equal beating meantone temperament (1694). 3/2 beats 2.8 Hz"},holder2:{frequencies:[261.6255653006,274.23214485994,292.57879058083,312.45989404005,327.40114268825,349.76744711215,366.57630213591,391.03837375367,410.64811919433,437.46806069696,467.46154552107,489.70152554512,523.2511306012],description:"Holder's irregular e.b. temperament with improved Eb and G#"},hummel:{frequencies:[261.6255653006,277.1703574486,293.54676487235,311.03465677994,329.45811370906,349.13199096171,369.8583804246,391.99149393462,415.308682162,439.8732919971,466.10512967869,493.74031485884,523.2511306012],description:"Johann Nepomuk Hummel's quasi-equal temperament (1829)"},hummel2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"Johann Nepomuk Hummel's temperament according to the second bearing plan"},husmann:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747],description:"Tetrachord division according to Husmann"},hwerck3:{frequencies:[261.6255653006,276.40121172404,293.00227310437,310.60041853231,328.69828757761,349.03110370139,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Variation on Werckmeister III with 1/4P -> 1/6P and 0P -> 1/24P. OdC '99"},hyper_enh:{frequencies:[261.6255653006,264.93728131706,268.33391312882,348.83408706747,392.4383479509,397.40592197559,402.50086969323,523.2511306012],description:"13/10 HyperEnharmonic. This genus is at the limit of usable tunings"},hyper_enh2:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Hyperenharmonic genus from Kathleen Schlesinger's enharmonic Phrygian Harmonia"},hypo_chrom:{frequencies:[261.6255653006,275.39533189537,282.83844897362,290.69507255622,348.83408706747,373.75080757229,387.59343007496,402.50086969323,418.60090448096,427.14378008261,436.04260883433,455.00098313148,523.2511306012],description:"Hypolydian Chromatic Tonos"},hypo_diat:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012],description:"Hypolydian Diatonic Tonos"},hypo_enh:{frequencies:[261.6255653006,268.33391312882,271.81876914348,275.39533189537,348.83408706747,373.75080757229,387.59343007496,402.50086969323,410.39304360878,414.45634107026,418.60090448096,465.11211608996,523.2511306012],description:"Hypolydian Enharmonic Tonos"},hypod_chrom:{frequencies:[261.6255653006,279.06726965397,288.69027895239,299.00064605783,322.00069575458,348.83408706747,364.00078650518,380.54627680087,398.6675280771,408.39112632289,418.60090448096,465.11211608996,523.2511306012],description:"Hypodorian Chromatic Tonos"},hypod_chrom2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chrom2inv:{frequencies:[261.6255653006,327.03195662575,343.38355445704,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypodorian Harmonia"},hypod_chromenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,398.6675280771,418.60090448096,523.2511306012],description:"Schlesinger's Hypodorian Harmonia in a mixed chromatic-enharmonic genus"},hypod_chrominv:{frequencies:[261.6255653006,277.97716313189,294.32876096318,359.73515228832,392.4383479509,408.78994578219,425.14154361347,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypodorian Inverted"},hypod_diat:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,418.60090448096,440.63253103259,465.11211608996,492.47165233054,523.2511306012],description:"Hypodorian Diatonic Tonos"},hypod_diat2:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Schlesinger's Hypodorian Harmonia, a subharmonic series through 13 from 16"},hypod_diatcon:{frequencies:[261.6255653006,279.06726965397,322.00069575458,348.83408706747,364.00078650518,418.60090448096,465.11211608996,523.2511306012],description:"A Hypodorian Diatonic with its own trite synemmenon replacing paramese"},hypod_diatinv:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Inverted Schlesinger's Hypodorian Harmonia, a harmonic series from 8 from 16"},hypod_enh:{frequencies:[261.6255653006,270.06509966514,274.49239638096,279.06726965397,310.07474405997,348.83408706747,364.00078650518,380.54627680087,389.39619021485,393.97732186443,398.6675280771,452.54151835779,523.2511306012],description:"Hypodorian Enharmonic Tonos"},hypod_enhinv:{frequencies:[261.6255653006,343.38355445704,351.55935337268,359.73515228832,392.4383479509,490.54793493862,506.89953276991,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypodorian Harmonia"},hypod_enhinv2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,359.73515228832,392.4383479509,400.61414686654,408.78994578219,523.2511306012],description:"A harmonic form of Schlesinger's Hypodorian enharmonic inverted"},hypodorian_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,784.8766959018,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the Hypodorian Tonos"},hypol_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the chromatic genus"},hypol_chrominv:{frequencies:[261.6255653006,313.95067836072,327.03195662575,340.11323489078,366.27579142084,392.4383479509,470.92601754108,497.08857407114,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypolydian Harmonia"},hypol_chrominv2:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,366.27579142084,392.4383479509,418.60090448096,523.2511306012],description:"harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_chrominv3:{frequencies:[261.6255653006,274.70684356563,287.78812183066,340.11323489078,392.4383479509,418.60090448096,444.76346101102,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypolydian inverted"},hypol_diat:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"Schlesinger's Hypolydian Harmonia, a subharmonic series through 13 from 20"},hypol_diatcon:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,402.50086969323,436.04260883433,475.68284600109,523.2511306012],description:"A Hypolydian Diatonic with its own trite synemmenon replacing paramese"},hypol_diatinv:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Inverted Schlesinger's Hypolydian Harmonia, a harmonic series from 10 from 20"},hypol_enh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the enharmonic genus"},hypol_enhinv:{frequencies:[261.6255653006,327.03195662575,333.57259575826,340.11323489078,366.27579142084,392.4383479509,497.08857407114,510.16985233617,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypolydian Harmonia"},hypol_enhinv2:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,366.27579142084,379.35706968587,392.4383479509,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_enhinv3:{frequencies:[261.6255653006,268.16620443312,274.70684356563,340.11323489078,392.4383479509,405.51962621593,418.60090448096,523.2511306012],description:"A harmonic form of Schlesinger's Hypolydian enharmonic inverted"},hypol_pent:{frequencies:[261.6255653006,272.52663052146,290.69507255622,348.83408706747,373.75080757229,402.50086969323,415.27867508032,436.04260883433,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the pentachromatic genus"},hypol_tri:{frequencies:[261.6255653006,270.64713651786,280.31310567921,348.83408706747,373.75080757229,402.50086969323,413.09299784305,424.25767346043,523.2511306012],description:"Schlesinger's Hypolydian Harmonia in the first trichromatic genus"},hypol_tri2:{frequencies:[261.6255653006,270.64713651786,290.69507255622,348.83408706747,373.75080757229,402.50086969323,413.09299784305,436.04260883433,2093.0045224048],description:"Schlesinger's Hypolydian Harmonia in the second trichromatic genus"},hypolydian_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,366.27579142084,406.97310157871,457.84473927605,488.36772189445,523.2511306012,563.50121757052,610.45965236807,665.95598440153,732.55158284168,813.94620315742,915.6894785521,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypolydian Tonos"},hypop_chrom:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,336.37572681506,362.25078272391,376.74081403286,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012],description:"Hypophrygian Chromatic Tonos"},hypop_chromenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia in a mixed chromatic-enharmonic genus"},hypop_chrominv:{frequencies:[261.6255653006,319.76457981184,334.29933343966,348.83408706747,377.90359432309,465.11211608996,494.18162334558,523.2511306012],description:"Inverted Schlesinger's Chromatic Hypophrygian Harmonia"},hypop_chrominv2:{frequencies:[261.6255653006,276.16031892841,290.69507255622,348.83408706747,377.90359432309,406.97310157871,436.04260883433,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Hypophrygian inverted"},hypop_diat:{frequencies:[261.6255653006,294.32876096318,303.82323712328,313.95067836072,336.37572681506,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012],description:"Hypophrygian Diatonic Tonos"},hypop_diat2:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Schlesinger's Hypophrygian Harmonia"},hypop_diat2inv:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,363.36884069528,377.90359432309,436.04260883433,465.11211608996,523.2511306012],description:"Inverted Schlesinger's Hypophrygian Harmonia, a harmonic series from 9 from 18"},hypop_diatcon:{frequencies:[261.6255653006,294.32876096318,313.95067836072,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012],description:"A Hypophrygian Diatonic with its own trite synemmenon replacing paramese"},hypop_enh:{frequencies:[261.6255653006,269.10058145205,273.00058987889,277.01530443593,313.95067836072,362.25078272391,376.74081403286,392.4383479509,400.78810003496,405.0976494977,409.50088481833,470.92601754108,523.2511306012],description:"Hypophrygian Enharmonic Tonos"},hypop_enhinv:{frequencies:[261.6255653006,334.29933343966,341.56671025356,348.83408706747,377.90359432309,494.18162334558,508.71637697339,523.2511306012],description:"Inverted Schlesinger's Enharmonic Hypophrygian Harmonia"},hypop_enhinv2:{frequencies:[261.6255653006,268.89294211451,276.16031892841,348.83408706747,377.90359432309,392.4383479509,406.97310157871,523.2511306012],description:"A harmonic form of Schlesinger's Hypophrygian enharmonic inverted"},hypophryg_pis:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,377.90359432309,425.14154361347,453.48431318771,523.2511306012,544.18117582525,566.85539148463,618.38769980142,680.22646978156,755.80718864618,850.28308722695,971.75209968794,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Hypophrygian Tonos"},kanzelmeyer_11:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 11 harmonics from 16 to 32. Base 388.3614815 Hz"},kanzelmeyer_18:{frequencies:[261.6255653006,277.97716313189,302.50455987882,310.68035879446,327.03195662575,335.20775554139,351.55935337268,359.73515228832,376.08675011961,384.26254903526,392.4383479509,425.14154361347,433.31734252912,457.84473927605,474.19633710734,482.37213602298,498.72373385427,506.89953276991,523.2511306012],description:"Bruce Kanzelmeyer, 18 harmonics from 32 to 64. Base 388.3614815 Hz"},kayolonian:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"19-tone 5-limit scale of the Kayenian Imperium on Kayolonia (reeks van Sjauriek)"},kayolonian_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"See Barnard: De Keiaanse Muziek, p. 11. (uitgebreide reeks)"},kayolonian_40:{frequencies:[261.6255653006,267.90457886781,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,319.36714514233,327.03195662575,331.11985608357,334.88072358477,340.65828815182,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,401.85686830172,408.78994578219,413.43299207996,418.60090448096,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,490.54793493862,496.11959049595,502.32108537715,510.98743222773,523.2511306012],description:"See Barnard: De Keiaanse Muziek"},kayolonian_f:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"Kayolonian scale F and periodicity block (128/125, 16875/16384)"},kayolonian_p:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale P"},kayolonian_s:{frequencies:[261.6255653006,287.4304306281,306.59245933664,327.03195662575,359.28803828513,392.4383479509,418.60090448096,459.88868900496,490.54793493862,523.2511306012],description:"Kayolonian scale S"},kayolonian_t:{frequencies:[261.6255653006,279.06726965397,297.67175429757,317.51653791741,348.83408706747,381.01984550089,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale T"},kayolonian_z:{frequencies:[261.6255653006,279.06726965397,297.67175429757,327.03195662575,348.83408706747,392.4383479509,418.60090448096,446.50763144636,476.27480687611,523.2511306012],description:"Kayolonian scale Z"},kayoloniana:{frequencies:[261.6255653006,267.90457886781,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:"Amendment by Rasch of Kayolonian scale's note 9"},"kebyar-b":{frequencies:[261.6255653006,280.40333801024,299.48910562989,384.37207420335,402.78320381033,523.2511306012],description:"Gamelan Kebyar tuning begbeg, Andrew Toth, 1993"},"kebyar-s":{frequencies:[261.6255653006,283.00682726281,309.51375468789,385.26118901859,416.26536455926,523.2511306012],description:"Gamelan kebyar tuning sedung, Andrew Toth, 1993"},"kebyar-t":{frequencies:[261.6255653006,293.15632631094,325.27731021818,397.46748834812,422.07621250312,523.2511306012],description:"Gamelan kebyar tuning tirus, Andrew Toth, 1993"},keenan:{frequencies:[261.6255653006,279.77706779472,292.57243455474,305.95298478736,327.17991022208,349.87955533643,365.88099775759,391.26571058456,418.41160951721,437.54730686196,457.55816161244,489.30340830564,523.2511306012],description:"Dave Keenan 31-ET mode has 3 4:5:6:7 tetrads + 3 inv. is Fokker's 12-tone mode"},keenan2:{frequencies:[261.6255653006,278.14493936283,295.70736791055,306.84360659709,326.21810583671,346.81593583087,369.99442271164,393.35634555235,418.19337019276,433.94238997708,461.34206956593,490.47180009913,523.2511306012],description:"Dave Keenan strange 9-limit temperament TL 19-11-98"},keenan3:{frequencies:[261.6255653006,272.10155294862,282.99701916355,314.19580976213,326.77681046955,339.86157848985,377.32935907335,392.4383479509,408.1523292189,453.14877154631,471.29371440761,523.2511306012],description:"Chain of 1/6 kleisma tempered 6/5s, 10 tetrads, Dave Keenan, 30-Jun-99, TD235"},keenan3eb:{frequencies:[261.6255653006,272.52625793573,283.88113057344,314.31833892864,327.41448875753,341.05629284549,377.62371824792,393.35750206077,409.74683779238,453.67913385439,472.5817850056,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 same"},keenan3eb2:{frequencies:[261.6255653006,271.88912362492,282.55531921581,314.13446783,326.45794787121,339.26487744082,377.18204004818,391.97887331053,407.35618327602,452.88341485066,470.6500094,523.2511306012],description:"Chain of 11 equal beating minor thirds, 6/5=3/2 opposite"},keenan3j:{frequencies:[261.6255653006,291.88463270656,302.72962012827,313.97755176024,350.29154279212,363.30663963964,405.32593044476,420.38583225541,436.00528786292,486.43275040712,504.50618240233,523.2511306012],description:"Chain of 11 nearly just 19-tET minor thirds, Dave Keenan, 1-Jul-99"},keenan7:{frequencies:[261.6255653006,269.29177952703,279.86396690685,288.06460709314,296.5055443788,305.19382000629,314.13668154225,326.46944327063,336.03572815422,349.22823143301,359.46139971304,369.99442271164,380.8360868427,391.99543598175,407.38487419079,419.32216217931,435.78442404634,448.5538823653,461.69751437372,475.22628419761,489.15147723638,508.3551866238,523.2511306012],description:"Dave Keenan, 22 out of 72-tET periodicity block. TL 29-04-2001"},keenanmt:{frequencies:[261.6255653006,279.93529690293,292.50627485027,305.64177427204,327.03195662575,349.91912034749,365.63284274659,391.22147055517,418.60090448096,437.39890198442,457.04105241293,489.02683710225,523.2511306012],description:"Dave Keenan 1/4-comma tempered version of keenan with 6 7-limit tetrads"},keenanst:{frequencies:[261.6255653006,268.50609092997,277.46533822773,286.72352888229,294.26410920268,304.08282473376,314.22916151277,322.49311613356,333.25374941849,342.01803421352,353.43015577174,365.22306367425,374.82811589307,387.33500976677,397.52158713557,410.7856943143,424.4923875554,435.65616946139,450.19271626925,462.0323945472,477.44903730562,493.38008744487,506.35555615636,523.2511306012],description:"Dave Keenan, 7-limit temperament, g=260.353"},kelletat:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,327.14272545641,348.82502010853,367.43868454848,391.99543598175,413.39000965417,437.97145880542,465.08793784701,489.90551202062,523.2511306012],description:"Herbert Kelletat's Bach-tuning (1967)"},kellner:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,491.32444638706,523.2511306012],description:"Herbert Anton Kellner's Bach tuning. 5 1/5 Pyth. comma and 7 pure fifths"},kellners:{frequencies:[261.6255653006,275.84425785506,292.86986732103,310.2247482054,327.84547867349,348.89032888179,367.85164222246,391.46454285105,413.69968681881,438.2147004401,465.26210635182,491.68894399626,523.2511306012],description:"Kellner's temperament with 1/5 synt. comma instead of 1/5 Pyth. comma"},kepler1:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.1, Harmonices Mundi (1619)"},kepler2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Kepler's Monochord no.2"},kepler3:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Kepler's choice system, Harmonices Mundi, Liber III (1619)"},kilroy:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Kilroy"},kimball:{frequencies:[261.6255653006,272.52663052146,275.93321340298,290.69507255622,294.32876096318,306.59245933664,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Buzz Kimball 18-note just scale"},kimball_53:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,281.75060878526,283.42769574232,285.40970760065,287.78812183066,296.50897400735,299.00064605783,305.22982618403,307.79478270659,309.19384990071,313.95067836072,317.68818643644,319.76457981184,322.00069575458,327.03195662575,332.97799220076,338.57426097725,340.11323489078,342.12573923925,348.83408706747,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,400.13321751856,402.50086969323,404.33041910093,411.12588832951,418.60090448096,425.14154361347,428.11456140098,430.91269578922,436.04260883433,442.75095666255,444.76346101102,448.50096908674,457.84473927605,461.69217405988,475.68284600109,479.64686971777,483.00104363188,485.87604984397,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Buzz Kimball 53-note just scale"},kirkwood:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Scale based on Kirkwood gaps of the asteroid belt"},"kirn-stan":{frequencies:[261.6255653006,276.16031892841,292.60754013883,310.68035879446,327.03195662575,348.83408706747,368.21375857121,392.4383479509,414.24047839262,437.1900893839,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger temperament improved by Charles Earl Stanhope (1806)"},kirnberger:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's well-temperament, also called Kirnberger III, letter to Forkel 1779"},kirnberger1:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,438.75944753732,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger's temperament 1 (1766)"},kirnberger2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,438.75941205608,465.11211608996,490.54793493862,523.2511306012],description:'Kirnberger 2: 1/2 synt. comma. "Die Kunst des reinen Satzes" (1774)'},kirnberger3:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.22147055517,413.89982010446,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Kirnberger 3: 1/4 synt. comma (1744)"},kirnberger3v:{frequencies:[261.6255653006,275.93321340298,292.50063201309,310.07474405997,327.03195662575,348.83408706747,367.91095120397,391.21579858034,413.43299207996,437.39258595147,465.11211608996,490.54793493862,523.2511306012],description:"Variant well-temperament like Kirnberger 3, Kenneth Scholz, MTO 4.4, 1998"},klais:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,327.21690075602,348.83408706747,367.49599295996,391.99543598175,413.43299207996,438.01699797506,465.11211608996,489.99465727995,523.2511306012],description:"Johannes Klais, Bach temperament"},klonaris:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Johnny Klonaris, 19-limit harmonic scale"},knot:{frequencies:[261.6255653006,268.26840191956,280.31310567921,286.15296204753,294.32876096318,299.00064605783,306.59245933664,327.03195662575,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,459.88868900496,476.92160341255,478.40103369253,490.54793493862,523.2511306012],description:"Smallest knot in 3-D, American Scientist, Nov-Dec '97 p506-510, trefoil knot"},koepf_36:{frequencies:[261.6255653006,272.26348829648,274.95017225036,277.18263097687,288.45311779165,291.29956028699,293.66476791741,305.60543275312,308.62113352716,311.12698372208,323.77767743764,326.97270111135,329.62755691287,343.03050002254,346.41550969045,349.22823143301,363.4281550135,367.0144478307,369.99442271164,385.03871768789,388.83826257328,391.99543598175,407.93431128975,411.95978887118,415.30469757995,432.19134773437,436.45619266906,440,457.89078262597,462.40922843744,466.16376151809,485.11838543951,489.90551202062,493.88330125613,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 36-tone subset of 48-tone scale (1991)"},koepf_48:{frequencies:[261.6255653006,269.44737349144,272.26348829648,274.95017225036,277.18263097687,285.46954808622,288.45311779165,291.29956028699,293.66476791741,302.44445076078,305.60543275312,308.62113352716,311.12698372208,320.42873367481,323.77767743764,326.97270111135,329.62755691287,339.48241770075,343.03050002254,346.41550969045,349.22823143301,359.66909273781,363.4281550135,367.0144478307,369.99442271164,381.0561299374,385.03871768789,388.83826257328,391.99543598175,403.71490654806,407.93431128975,411.95978887118,415.30469757995,427.72104413038,432.19134773437,436.45619266906,440,453.15466093696,457.89078262597,462.40922843744,466.16376151809,480.10063929961,485.11838543951,489.90551202062,493.88330125613,508.64890891624,513.96502576833,519.03680970905,523.2511306012],description:"Siegfried Koepf, 48-tone scale (1991)"},kolinsky:{frequencies:[261.6255653006,277.2273508585,293.75953199293,311.27759533081,329.84032939425,349.51003591412,370.35272620855,392.4383479509,415.84102607989,440.63929776914,466.91639276282,494.76049384407,524.26505360912],description:"Kolinsky's 7th root of 3/2, also invented by Augusto Novaro"},kora1:{frequencies:[261.6255653006,293.66476791741,326.78388880949,349.22823143301,391.99543598175,440,489.62261321254,523.2511306012],description:"Kora tuning Tomora Ba, also called Silaba, 1/1=F, R. King"},kora2:{frequencies:[261.6255653006,298.79793764201,315.65242990842,349.22823143301,391.99543598175,447.69106452518,472.94426956511,523.2511306012],description:"Kora tuning Tomora Mesengo, also called Tomora, 1/1=F, R. King"},kora3:{frequencies:[261.6255653006,291.13134764929,330.58093469714,349.22823143301,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Hardino, 1/1=F, R.King"},kora4:{frequencies:[261.6255653006,291.13134764929,330.58093469714,371.06455309218,391.99543598175,436.20415848357,495.31175393723,523.2511306012],description:"Kora tuning Sauta, 1/1=F, R. King"},korea_5:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:'According to Lou Harrison, called "the Delightful" in Korea'},kornerup:{frequencies:[261.6255653006,272.97226153513,280.22976278938,292.38332274669,305.0639823888,313.17470478367,326.75708630452,340.92853547661,349.99278713323,365.17196824772,374.88056242272,391.13935185123,408.10305876469,418.95303445734,437.12302030357,456.08130156398,468.2068441924,488.51296691354,509.70006023951,523.2511306012],description:"Kornerup's temperament with fifth of (15 - sqrt 5) / 22 octaves"},kornerup_11:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Kornerup's doric minor"},kraeh_22:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,320.49131749323,336.37572681506,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,400.61414686654,412.06026534844,436.04260883433,441.49314144476,457.84473927605,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Kraehenbuehl & Schmidt 7-limit 22-tone tuning"},kraeh_22a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,318.93402246168,320.49131749323,327.03195662575,336.37572681506,343.38355445704,348.83408706747,350.39138209902,353.19451315581,358.80077526939,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,398.6675280771,400.61414686654,403.65087217807,408.78994578219,412.06026534844,418.60090448096,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,478.40103369253,488.36772189445,490.54793493862,498.33441009638,504.56359022259,523.2511306012],description:'Kraehenbuehl & Schmidt 7-limit 22-tone tuning with "inflections" for some tones'},kraeh_22b:{frequencies:[261.6255653006,269.10058145205,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,448.50096908674,457.84473927605,476.92160341255,490.54793493862,504.56359022259,523.2511306012],description:"Best 22-tET approximation of KRAEH_22A"},kring1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,523.2511306012],description:"Double-tie circular mirroring of 4:5:6 and Partch's 5-limit tonality Diamond"},kring1p3:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,310.07474405997,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,441.49314144476,446.50763144636,454.2110508691,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Third carthesian power of double-tie mirroring of 4:5:6 with kleismas removed"},kring2:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,392.4383479509,448.50096908674,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 6:7:8"},kring2p3:{frequencies:[261.6255653006,265.7783520514,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,515.07533168556,523.2511306012],description:"Third power of 6:7:8 mirroring with 1029/1024 intervals removed"},kring3:{frequencies:[261.6255653006,305.22982618403,313.95067836072,366.27579142084,373.75080757229,436.04260883433,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 3:5:7"},kring3bp:{frequencies:[261.6255653006,336.37572681506,366.27579142084,436.04260883433,470.92601754108,560.62621135843,610.45965236807,784.8766959018],description:"Double-tie BP circular mirroring of 3:5:7"},kring4:{frequencies:[261.6255653006,299.00064605783,327.03195662575,366.27579142084,373.75080757229,418.60090448096,457.84473927605,523.2511306012],description:"Double-tie circular mirroring of 4:5:7"},kring4p3:{frequencies:[261.6255653006,267.90457886781,273.37201925287,280.42990280658,286.15296204753,293.02063313667,299.00064605783,305.10270005901,320.49131749323,327.03195662575,334.88072358477,341.71502406609,350.53737850823,357.69120255941,366.27579142084,373.75080757229,382.72082695402,390.53145607553,400.61414686654,408.78994578219,418.60090448096,427.14378008261,448.68784449053,457.84473927605,467.18850946536,478.40103369253,488.16432009441,500.76768358318,510.98743222773,523.2511306012],description:"Third power of 4:5:7 mirroring with 3136/3125 intervals removed"},kring5:{frequencies:[261.6255653006,290.69507255622,336.37572681506,366.27579142084,373.75080757229,406.97310157871,470.92601754108,523.2511306012],description:"Double-tie circular mirroring of 5:7:9"},kring5p3:{frequencies:[261.6255653006,266.96486255163,272.4643387202,278.02483542877,284.8811711051,290.69507255622,296.68339105088,302.73815413355,308.91648380975,316.53463456122,322.99452506247,329.64821227876,336.37572681506,343.24053756638,351.70514951247,358.88280562497,366.27579142084,373.75080757229,381.45007420827,389.23476960028,398.83363954714,406.97310157871,415.27867508032,423.83341578697,432.48307733364,443.14848838571,452.19233508746,461.42075008924,470.92601754108,480.53675259294,492.38720931745,502.43592787495,512.78610798918,523.2511306012],description:"Third power of 5:7:9 mirroring with 250047/250000 intervals removed"},kring6:{frequencies:[261.6255653006,305.22982618403,336.37572681506,348.83408706747,392.4383479509,406.97310157871,448.50096908674,523.2511306012],description:"Double-tie circular mirroring of 6:7:9"},kring6p3:{frequencies:[261.6255653006,267.07609791103,271.31540105247,276.96780524107,288.32205155576,294.32876096318,299.00064605783,305.22982618403,310.07474405997,316.53463456122,324.36230800023,329.51091606373,336.37572681506,343.38355445704,348.83408706747,356.10146388137,361.75386806997,369.29040698809,378.42269266694,384.42940207435,392.4383479509,398.6675280771,406.97310157871,415.4517078616,422.04617941496,432.48307733364,441.49314144476,448.50096908674,457.84473927605,465.11211608996,474.80195184183,494.26637409559,504.56359022259,512.57253609913,523.2511306012],description:"Third power of 6:7:9 mirroring with 118098/117649 intervals removed"},krousseau:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,343.38355445704,348.83408706747,366.27579142084,392.4383479509,406.97310157871,457.84473927605,465.11211608996,488.36772189445,523.2511306012],description:"Kami Rousseau's tri-blues scale"},krousseau2:{frequencies:[261.6255653006,271.34627406517,291.88463270656,302.72962012827,337.74269681563,350.29154279212,363.30663963964,390.80553229045,405.32593044476,452.20508247496,469.00678383895,486.43275040712,523.2511306012],description:"19-tET version of Kami Rousseau's tri-blues scale"},kukuya:{frequencies:[261.6255653006,307.37578701508,361.96165147221,412.67427966689,460.80941404108],description:"African Kukuya Horns (aerophone, ivory, one note only)"},kurzw_arab:{frequencies:[261.6255653006,282.02769802256,290.29174037004,302.26980244078,321.16993719469,349.63190883464,374.94271441196,393.35634555235,411.95978887118,429.20598402782,447.69106452518,496.7443381147,523.2511306012],description:'Kurzweil "Empirical Arabic"'},kurzw_harmp:{frequencies:[261.6255653006,285.46954808622,287.62123438446,306.48933163909,308.79945157961,324.90175210669,345.81573716922,348.42227432308,427.72104413038,430.94493093825,458.94995811222,462.40922843744,523.2511306012],description:'Kurzweil "Empirical Bali/Java Harmonic Pelog"'},kurzw_melp:{frequencies:[261.6255653006,281.53940445957,283.98935579354,303.66981774726,307.02089761314,323.96475278212,344.02264297658,347.0163224393,421.10213511252,424.76655906637,451.06547253417,454.99063696457,523.2511306012],description:'Kurzweil "Empirical Bali/Java Melodic Pelog"'},kurzw_slen:{frequencies:[261.6255653006,266.96862289802,288.95340229325,306.66641795878,318.95145438803,352.26720984209,352.26720984209,389.06292924114,404.41509766528,429.20598402782,464.81937009253,474.03826620294,523.2511306012],description:'Kurzweil "Empirical Bali/Java Slendro, Siam 7"'},kurzw_tibet:{frequencies:[261.6255653006,270.53905136894,299.14332201883,312.9293240034,325.46525203475,353.69443592699,373.86139962101,397.69714089209,408.87792937274,438.98455767189,471.30800669535,489.90551202062,523.2511306012],description:'Kurzweil "Empirical Tibetian Ceremonial"'},kwazy:{frequencies:[13.75,13.8425266748,13.92142234948,14.00076777204,14.0805654254,14.16081788707,14.25610896047,14.337361936,14.41907801447,14.50125983535,14.58391005315,14.66703125278,14.76572882594,14.84988638999,14.93452361174,15.01964313826,15.10524789197,15.20689431811,15.29356631363,15.38073220905,15.46839499707,15.55655742089,15.66124080485,15.75050226619,15.84027256598,15.93055451337,16.0213510245,16.11266503216,16.22109048883,16.31354291552,16.40652227664,16.50003157548,16.59407373656,16.70573878851,16.80095347779,16.89671084507,16.99301388521,17.08986590459,17.18726993397,17.30292672931,17.40154500258,17.50072545316,17.60047118468,17.70078541898,17.81989766631,17.92146252619,18.023606257,18.12633215803,18.22964354736,18.35231459047,18.45691397115,18.56210951808,18.66790462912,18.77430261304,18.88130712282,19.00836345475,19.11670199894,19.22565790976,19.335234928,19.44543648263,19.57628896102,19.68786429416,19.80007566685,19.91292659048,20.02642071019,20.16118263857,20.27609169854,20.39165568498,20.50787833065,20.62476338959,20.74231451743,20.88189396397,21.00091073243,21.12060583931,21.24098302814,21.36204643183,21.50579618625,21.62836889778,21.75164008927,21.875613993,22.00029448845,22.14833914981,22.27457391904,22.40152829449,22.52920624893,22.65761190639,22.78674941445,22.94008616579,23.07083364148,23.202326315,23.33456843363,23.46756413327,23.62548236417,23.76013626908,23.89555763659,24.03175070206,24.16872014141,24.30647024079,24.47003364934,24.60950094889,24.74976328722,24.89082505353,25.03269080417,25.2011409598,25.3447753621,25.48922841152,25.63450477396,25.78060914191,25.95409219477,26.10201805756,26.25078702673,26.40040390759,26.55087337946,26.70220060843,26.88188539622,27.03509923475,27.18918616153,27.34415146685,27.5],description:"Kwazy temperament, g=162.741892, p=600, 5-limit"},lambdoma5_12:{frequencies:[261.6255653006,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,47.56828460011,52.32511306012,58.13901451124,65.40639132515,71.35242690016,74.75016151446,78.48766959018,87.20852176687,95.13656920022,98.10958698772,104.65022612024,109.01065220858,112.12524227169,116.27802902249,118.92071150027,130.8127826503,145.34753627811,149.50032302891,156.97533918036,163.51597831288,174.41704353373,186.87540378614,196.21917397545,209.30045224048,218.02130441717,261.6255653006,327.03195662575,348.83408706747,392.4383479509,436.04260883433,523.2511306012,654.0639132515,784.8766959018,1046.5022612024,1308.127826503],description:"5x12 Lambdoma"},lambdoma_prim:{frequencies:[261.6255653006,8.43953436454,9.02157121726,11.37502457829,13.76976659477,15.38973913533,16.87906872907,18.04314243452,20.12504348466,22.75004915657,23.78414230005,25.31860309361,27.06471365179,27.53953318954,30.77947827066,34.12507373486,37.37508075723,40.25008696932,41.30929978431,42.19767182268,45.10785608631,46.16921740599,47.56828460011,52.32511306012,56.87512289143,59.07674055175,60.37513045398,63.15099852083,68.84883297384,71.35242690016,74.75016151446,76.94869567665,79.62517204801,87.20852176687,96.38836616338,100.62521742331,104.65022612024,107.72817394731,112.12524227169,118.92071150027,130.8127826503,140.87530439263,156.97533918036,166.48899610038,174.41704353373,186.87540378614,261.6255653006,366.27579142084,392.4383479509,436.04260883433,523.2511306012,610.45965236807,654.0639132515,784.8766959018,915.6894785521,1308.127826503,1831.3789571042],description:"Prime Lambdoma"},lambert:{frequencies:[261.6255653006,276.15600972046,293.19138048956,310.67551062492,328.56569462012,349.50994910362,368.20801314466,391.67947347082,414.23401437362,438.93663604468,466.01326570444,491.89550004992,523.2511306012],description:"Lambert's temperament (1774) 1/7 Pyth. comma, 5 pure"},lara:{frequencies:[261.6255653006,286.4606265643,298.28060863281,313.11013128311,341.05478972476,377.11473546037,395.40657391157,420.13030572059,450.02449304881,492.74350578058,523.2511306012,577.23956595248,599.67057787333],description:"Sundanese 'multi-laras' gamelan Ki Barong tuning, Weintraub, TL 15-2-99 1/1=497"},lebanon:{frequencies:[261.6255653006,285.30470202322,311.12698372208,349.22823143301,391.99543598175,415.30469757995,466.16376151809,523.2511306012],description:"Lebanese scale? Dastgah Shur"},leedy:{frequencies:[261.6255653006,269.80136421624,290.69507255622,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:'Douglas Leedy, scale for "Pastorale" (1987), 1/1=f, 10/9 only in vocal parts'},leeuw1:{frequencies:[261.6255653006,311.12698372208,349.22823143301,380.8360868427,415.30469757995,466.16376151809,508.3551866238,554.36526195375,604.53960488156,659.25511382574,739.98884542327,806.96355802011,880,987.76660251225],description:'Ton de Leeuw: non-oct. mode from "Car nos vignes sont en fleurs",part 5. 1/1=A'},leftpistol:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Left Pistol"},legros1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.49749487796,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 3 just major thirds"},legros2:{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.49749487796,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Example of temperament with 2 just major thirds"},"lehman-bach":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.77584116741,328.14198392915,349.6228209638,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Brad Lehman's Bach keyboard temperament"},lemba10:{frequencies:[261.6255653006,283.65327551057,298.9489942119,324.1191713102,341.59697290141,370.35792032269,401.5404117335,423.19307614937,458.82405293702,483.56568031466,524.27976214079],description:"10-note Lemba scale, Herman Miller"},lemba12:{frequencies:[261.6255653006,276.1173031791,283.29759227608,298.9897683987,323.75689816556,341.69016129748,369.99442271164,390.48883496177,400.64329718448,422.83538548023,457.86139629758,483.22286023634,523.2511306012],description:"Lemba[12] in 270-et (poptimal)"},lemba22:{frequencies:[261.6255653006,268.42900262332,276.1173031791,283.29759227608,298.9897683987,306.76484424299,315.55115201964,323.75689816556,341.69016129748,350.57563899649,360.61677037127,369.99442271164,379.61593604418,390.48883496177,400.64329718448,422.83538548023,433.83100318771,446.25671880862,457.86139629758,483.22286023634,495.78882330645,509.98912747823,523.2511306012],description:"Lemba[22] in 270-et (poptimal)"},lemba24:{frequencies:[261.6255653006,275.73346179752,283.65327551057,290.60211247891,298.9489942119,307.53562105228,315.06951922004,324.1191713102,332.05932738876,341.59697290141,351.40856549044,360.01724743313,370.35792032269,390.32910012969,401.5404117335,411.37720579947,423.19307614937,435.34833037897,446.01333880095,458.82405293702,470.06416125332,483.56568031466,497.45499966368,509.64147516102,524.27976214079],description:"24-note Lemba scale for mapping millerlemba24.kbm"},lemba8:{frequencies:[261.6255653006,275.73334871592,283.6533803711,298.94898212432,307.53584843097,324.11927802481,341.59694330429,351.4088110982,370.358025147],description:"Lemba temperament (4 down, 3 up) TOP tuning, Herman Miller, TL 22-11-2004"},leusden:{frequencies:[261.6255653006,275.54404190554,292.50627485027,310.51268695591,327.03195662575,349.91912034749,367.08095907728,391.22147055517,413.66634097248,437.39890198442,466.16376151809,489.02683710225,523.2511306012],description:"Organ in Gereformeerde kerk De Koningshof, Henk van Eeken, 1984, a'=415, modif. 1/4 mean"},leven:{frequencies:[261.6255653006,279.06726965397,298.97057995496,313.95067836072,330.39003879965,348.83408706747,369.35382642901,392.4383479509,418.60090448096,448.46752658184,465.11211608996,502.32108537715,523.2511306012],description:"Leven's monochord ?"},ligon:{frequencies:[261.6255653006,279.66870773512,292.40504357126,309.19384990071,329.87571277032,342.12573923925,366.27579142084,392.4383479509,411.12588832951,436.04260883433,462.87600014722,485.87604984397,523.2511306012],description:"Jacky Ligon, strictly proper all prime scale, TL 08-09-2000"},ligon2:{frequencies:[261.6255653006,276.16031892841,292.40504357126,310.68035879446,331.39238271409,355.06326719367,382.37582620857,411.78935130154,441.2028763945,470.61640148747,500.02992658044,529.4434516734,558.85697676637],description:"Jacky Ligon, 19-limit symmetrical non-octave scale, 2001"},ligon3:{frequencies:[261.6255653006,273.51763645063,286.54228580542,300.86940009569,316.70463167967,334.29933343966,341.25073734861,376.08675011961,401.15920012759,427.90314680276,471.58492637221,481.3910401531,508.13498682828,534.87893350345,561.62288017862,588.36682685379,615.11077352897],description:"Jacky Ligon, 23-limit non-octave scale (2001)"},ligon4:{frequencies:[261.6255653006,278.49926570678,289.46759601673,308.13698517552,320.27237341115,340.92853547661,362.91692931321,386.32347802158,401.53832428939,427.43578342293,444.26952759254,472.92296174596,491.54841572131,523.2511306012,556.99853141357,592.92249142473,616.27397035104,640.54474682231,681.85707095323,725.83385862642,754.41987838254,803.07664857879],description:"Jacky Ligon, 2/1 Phi Scale, TL 12-04-2001"},ligon5:{frequencies:[261.6255653006,273.22765669781,280.653851324,293.09977429907,314.41721066027,328.36040925687,337.28508524374,352.24238645938,377.86132347501,394.61802538749,405.34378524393,423.31898451752,454.1076550834,474.24531572837,487.13535379632,508.73764640933,545.73895363303],description:'Jacky Ligon, scale for "Two Golden Flutes" (2001)'},ligon6:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:'Jacky Ligon, "Primal Golden Tuning" (2001)'},ligon7:{frequencies:[261.6255653006,294.32876096318,321.08592105074,361.22166118208,394.05999401681,443.31749326891,483.61908356609,527.58445479937],description:"Jacky Ligon, 7 tone, 27/22=generator, MMM 22-01-2002"},lindley_ea:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Mark Lindley +J. de Boer +W. Drake (1991), for organ Grosvenor Chapel, London"},lindley_sf:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.07474405997,328.14198392915,349.6228209638,368.32692341742,391.5530240856,413.90012676351,438.51190905657,465.63764214343,491.10256480205,523.2511306012],description:"Lindley (1988) suggestion nr. 2 for Stanford Fisk organ"},"ling-lun":{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,331.11985608357,353.59332287831,372.50983809402,392.4383479509,419.07356785577,441.49314144476,471.45776383774,496.67978412536,523.2511306012],description:"Scale of Ling Lun from C"},liu_major:{frequencies:[261.6255653006,290.69507255622,322.99452506247,348.83408706747,392.4383479509,436.04260883433,484.4917875937,523.2511306012],description:`Linus Liu's Major Scale, see his 1978 book, "Intonation Theory"`},liu_mel:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,423.83341578697,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Linus Liu's Melodic Minor, use 5 and 7 descending and 6 and 8 ascending"},liu_minor:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,387.59343007496,418.60090448096,484.4917875937,523.2511306012],description:"Linus Liu's Harmonic Minor"},liu_pent:{frequencies:[261.6255653006,294.32876096318,331.11985608357,353.19451315581,392.4383479509,441.49314144476,496.67978412536,529.79176973372],description:`Linus Liu's "pentatonic scale"`},lorina:{frequencies:[261.6255653006,271.31540105247,293.02063313667,305.22982618403,313.95067836072,348.83408706747,348.83408706747,385.55346465352,406.97310157871,457.84473927605,457.84473927605,465.11211608996,523.2511306012],description:"Lorina"},lt46a:{frequencies:[261.6255653006,265.62583852249,273.73233506765,277.91772325275,286.39934942254,290.77841553921,299.65253047503,308.79746990018,313.51900484808,323.08712797864,328.02715279963,338.03804253716,348.35444940179,353.68081538041,364.47461587782,370.04745828823,381.3407438317,387.1714705201,398.98735486934,411.16384203565,417.45056598488,430.19052226982,436.76816801564,450.09766813034,463.83396431287,470.92601754108,485.29796386361,492.71820372913,507.75521382755,523.2511306012],description:"13-limit temperament, minimax g=495.66296 cents"},lucy_19:{frequencies:[261.6255653006,272.17716319349,280.81422591737,292.13972001074,301.4102593031,313.56641022552,326.2128298123,336.56461921066,350.13857756143,364.25998604447,375.81913491042,390.97626371576,406.74469336313,419.65201956185,436.57696862128,450.43096951372,468.59726172356,487.49621708267,502.96605061019,523.2511306012],description:"Lucy's 19-tone scale"},lucy_24:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,292.13970819848,301.41031849758,303.92192719902,313.56642833783,326.21280343239,336.56467170065,339.36921655583,350.13858362887,364.25994396351,375.81917832675,390.97625694066,403.38329512334,406.744629928,419.65205349792,436.57694340361,450.43105016925,454.18442712942,468.59728067062,487.49616921257,502.96612033609,523.2511306012],description:"Lucy/Harrison, meantone tuning from Bbb to Cx, third=1200.0/pi, 1/1=A"},lucy_31:{frequencies:[261.6255653006,269.92785558198,272.17712546173,280.81425349217,283.15423815518,292.13970819848,301.41031849758,303.92192719902,313.56642833783,323.51698308414,326.21280343239,336.56467170065,339.36921655583,350.13858362887,361.24970022276,364.25994396351,375.81917832675,378.95082751155,390.97625694066,403.38329512334,406.744629928,419.65205349792,432.96907456701,436.57694340361,450.43105016925,454.18442712942,468.59728067062,483.46750424654,487.49616921257,502.96612033609,507.15726445705,523.2511306012],description:"Lucy/Harrison's meantone tuning, 1/1=A"},lucy_7:{frequencies:[261.6255653006,292.13972001074,326.2128298123,350.13857756143,390.97626371576,436.57696862128,487.49621708267,523.2511306012],description:"Diatonic Lucy's scale"},lumma5:{frequencies:[261.6255653006,279.06726965397,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,459.88868900496,490.54793493862,523.2511306012],description:"Carl Lumma's 5-limit version of lumma7, also Fokker 12-tone just."},lumma7:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,390.69417751556,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Carl Lumma's 7-limit 12-tone scale, a.k.a GW Smith's Prism. TL 21-11-98"},lumma7t:{frequencies:[261.6255653006,279.68948643792,293.67396186758,305.56991806333,326.66797434652,349.22276480589,366.68390442934,392.00157215927,419.06732091375,436.04260883433,457.84473927605,489.45662770953,523.2511306012],description:"Tempered lumma7, 6 tetrads + 4 triads within 2c of Just, TL 19-2-99"},lumma7t72:{frequencies:[261.6255653006,279.86396690685,293.66476791741,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"72-tET version of lumma7t"},lumma7t_keen:{frequencies:[261.6255653006,279.95098841649,293.39965821869,305.14186035122,326.51537799354,349.38597341375,366.17023517096,391.81845653432,419.26317124465,436.04260556019,456.98979229899,488.99939844699,523.2511306012],description:"Dave Keenan's adaptation of lumma7t to include 6:8:11, TL 17-04-9"},lumma_10:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,375.37611551499,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:"Carl Lumma's 10-tone 125 cent Pyth. scale, TL 29-12-1999"},lumma_12_fun:{frequencies:[261.6255653006,276.16031892841,293.246794009,310.68035879446,327.94037872749,348.23056788569,368.93292606842,390.99572534534,413.52379936426,439.8701910135,464.30742384759,491.05951174505,522.34585182853],description:"Rational well temperament based on 577/289, 3/2, and 19/16."},"lumma_12_moh-ha-ha":{frequencies:[261.6255653006,276.16031892841,293.42033886144,310.68035879446,330.09788121912,349.51540364377,368.93292606842,391.72740891476,414.24047839262,440.13050829216,466.02053819169,493.4335110265,523.2511306012],description:"Rational well temperament."},lumma_12_strangeion:{frequencies:[261.6255653006,277.97716313189,292.40504357126,310.68035879446,330.09788121912,349.23197505989,368.93292606842,391.9912339477,414.71297038361,440.63253103259,468.17206422213,492.47165233054,523.2511306012],description:'19-limit "dodekaphonic" scale.'},lumma_22:{frequencies:[261.6255653006,263.29318697558,262.98919438538,262.83732973433,262.68555277841,262.53386346698,263.29318697558,262.38226174944,262.98919438538,262.23074757519,263.29318697558,262.68555277841,262.07932089369,263.29318697558,262.83732973433,263.59753095473,262.38226174944,263.44531501617,262.68555277841,262.98919438538,263.29318697558,263.902226729,261.92798165442],description:"Carl Lumma, intervals of attraction by trial and error, 1999."},lumma_5151:{frequencies:[261.6255653006,276.7826524273,292.81785438923,309.78204413166,327.729041887,346.71578592374,369.67398581173,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Carl Lumma's 5151 temperament III (1197/709.5/696). June 2003"},lumma_al1:{frequencies:[261.6255653006,274.63272075836,292.81785438923,309.78204413166,327.729041887,346.71578592374,366.8025131876,391.09077971329,413.74834001613,437.71854962063,463.0774559108,489.90551202062,522.3451906503],description:"Alaska I (1197/709.5/696), Carl Lumma, 6 June 2003."},lumma_al2:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,347.216824829,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska II (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al3:{frequencies:[261.6255653006,275.18850165466,292.98704147282,310.05056613125,328.10786809908,349.32910706765,367.43868454848,391.20374747207,413.98739946535,438.09796819065,463.6127330944,490.61347436729,522.3451906503],description:"Alaska III (1197/707/696.5), Carl Lumma, 6 June 2003."},lumma_al4:{frequencies:[261.6255653006,276.38325105256,293.32570896007,309.87152561537,328.86683469969,349.02656754477,368.7143392539,391.31674786192,413.39000965417,438.73106346722,464.55095742407,491.89038573682,522.04355935974],description:"Alaska IV (1196/701/697), Carl Lumma, 6 June 2003."},lumma_al5:{frequencies:[261.6255653006,276.84261239447,293.89809826895,310.99222741882,329.08061019985,349.35433052883,369.67398581173,391.17550247358,415.27471248744,439.42852501549,464.98720675925,493.63374591774,522.3451906503],description:"Alaska V (1197/702/696.375), Carl Lumma, 6 June 2003."},lumma_al6:{frequencies:[261.6255653006,276.86260193655,293.83444433876,310.94732162256,329.05685050583,349.22823143301,369.56723519412,391.09077971329,415.06487744922,439.23819834286,464.81937009253,493.31307433255,522.04355935974],description:"Alaska VI (1196/701/696), Carl Lumma, 6 June 2003."},lumma_al7:{frequencies:[261.6255653006,276.11677207256,293.26810788146,310.16878953668,328.73958549954,348.42227432308,368.499294457,391.39134599911,413.94674961638,438.72852926454,464.99660740427,491.79379203259,522.3451906503],description:"Alaska VII, Carl Lumma, 27 Jan 2004"},lumma_dec1:{frequencies:[261.6255653006,286.10322937235,299.18791603519,327.17991022208,342.14320575162,374.15409293384,391.26571058456,427.87249484695,457.55816161244,489.30340830564,523.2511306012],description:"Carl Lumma, two 5-tone 7/4-chains, 5/4 apart in 31-tET, TL 9-2-2000"},lumma_dec2:{frequencies:[261.6255653006,286.10322937235,292.57243455474,327.17991022208,342.14320575162,382.6142546815,391.26571058456,437.54730686196,457.55816161244,511.68128147674,523.2511306012],description:"Carl Lumma, two 5-tone 3/2-chains, 7/4 apart in 31-tET, TL 9-2-2000"},lumma_magic:{frequencies:[261.6255653006,293.02063313667,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,418.60090448096,436.04260883433,457.84473927605,467.18850946536,523.2511306012],description:"Magic chord test, Carl Lumma, TL 24-06-99"},"lumma_synchtrines+2":{frequencies:[261.6255653006,277.1478691313,293.59111644706,311.009943641,329.46223568632,349.00930447981,369.71610741159,391.65144749868,414.88821865981,439.50363030131,465.57948255979,493.20241832805,522.46423212702],description:"The 12-tone equal temperament with 2:3:4 brats of +2"},"lumma_synchtrines-2":{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338321153,392.13011885309,415.46777761785,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"The 12-tone equal temperament with 2:3:4 brats of -2"},lydian_chrom:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,317.12189733406,327.03195662575,373.75080757229,402.50086969323,418.60090448096,427.14378008261,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,615.58956541318,634.24379466812,654.0639132515,747.50161514457,805.00173938646,837.20180896192,854.28756016522,872.08521766867,951.36569200218,1046.5022612024],description:"Lydian Chromatic Tonos"},lydian_chrom2:{frequencies:[261.6255653006,272.09058791262,283.42769574232,340.11323489078,377.90359432309,400.13321751856,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the chromatic genus"},lydian_chrominv:{frequencies:[261.6255653006,271.68808704293,281.75060878526,362.25078272391,402.50086969323,422.62591317789,442.75095666255,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Lydian inverted"},lydian_diat:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,373.75080757229,387.59343007496,402.50086969323,436.04260883433,455.00098313148,475.68284600109,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,697.66817413493,747.50161514457,852.70554616492,805.00173938646,872.08521766867,910.00196626296,951.36569200218,996.66882019276,1046.5022612024],description:"Lydian Diatonic Tonos"},lydian_diat2:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,377.90359432309,425.14154361347,485.87604984397,523.2511306012],description:"Schlesinger's Lydian Harmonia, a subharmonic series through 13 from 26"},lydian_diat2inv:{frequencies:[261.6255653006,281.75060878526,322.00069575458,362.25078272391,382.37582620857,402.50086969323,442.75095666255,483.00104363188,523.2511306012],description:"Inverted Schlesinger's Lydian Harmonia, a harmonic series from 13 from 26"},lydian_diatcon:{frequencies:[261.6255653006,283.42769574232,309.19384990071,340.11323489078,358.01393146398,425.14154361347,485.87604984397,523.2511306012],description:"A Lydian Diatonic with its own trite synemmenon replacing paramese"},lydian_enh:{frequencies:[261.6255653006,275.39533189537,290.69507255622,299.00064605783,303.33398875432,307.79478270659,373.75080757229,402.50086969323,410.39304360878,414.45634107026,418.60090448096,475.68284600109,523.2511306012,550.79066379074,581.39014511244,598.00129211566,606.66797750864,615.58956541318,747.50161514457,805.00173938646,820.78608721757,828.91268214051,837.20180896192,951.36569200218,1046.5022612024],description:"Lydian Enharmonic Tonos"},lydian_enh2:{frequencies:[261.6255653006,266.75547834571,272.09058791262,340.11323489078,377.90359432309,388.70083987518,400.13321751856,523.2511306012],description:"Schlesinger's Lydian Harmonia in the enharmonic genus"},lydian_enhinv:{frequencies:[261.6255653006,266.65682617177,271.68808704293,362.25078272391,402.50086969323,412.56339143556,422.62591317789,523.2511306012],description:"A harmonic form of Schlesinger's Enharmonic Lydian inverted"},lydian_pent:{frequencies:[261.6255653006,269.93113880221,283.42769574232,340.11323489078,377.90359432309,395.48050568695,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the pentachromatic genus"},lydian_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,402.50086969323,436.04260883433,475.68284600109,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,805.00173938646,872.08521766867,951.36569200218,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Lydian Tonos"},lydian_tri:{frequencies:[261.6255653006,268.51044859798,275.76748774928,340.11323489078,377.90359432309,392.4383479509,408.13588186894,523.2511306012],description:"Schlesinger's Lydian Harmonia in the first trichromatic genus"},lydian_tri2:{frequencies:[261.6255653006,268.51044859798,283.42769574232,340.11323489078,377.90359432309,392.4383479509,425.14154361347,523.2511306012],description:"Schlesinger's Lydian Harmonia in the second trichromatic genus"},nachbaur_6:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,523.2511306012],description:`Fred Nachbaur's harmonic hexatonic, as used in "Void of Sensation"`},nassarre:{frequencies:[261.6255653006,277.66336828161,294.34406205295,311.66659310186,331.15428443044,350.6431449633,372.56793743951,394.49404533893,419.16071913933,443.82887286778,471.58032351597,495.88429116026,523.2511306012],description:"Nassarre's Equal Semitones"},negri5_19:{frequencies:[261.6255653006,271.22480440713,281.41555648081,291.74090527404,302.70251050738,313.80889368201,325.59966315504,337.54616011163,350.22880998446,363.07896889448,376.72096510961,390.54314115106,405.21705098851,420.08476989056,435.86864979507,451.86099895106,468.83881245397,486.04086171852,504.30291533224,523.2511306012],description:"Negri temperament, g=126.238272, 5-limit"},negri_19:{frequencies:[261.6255653006,269.02825605326,281.18681366715,289.14299126725,302.21061955257,310.76166549402,324.80633749066,333.99672707734,349.09149261831,358.96903024071,375.19240283292,392.14898023137,403.24482870584,421.46921730446,433.39468387282,452.98167562873,465.79878414581,486.85025820508,500.62567766841,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},negri_29:{frequencies:[261.6255653006,269.02825605326,276.64040740805,281.18681366715,289.14299126725,297.32428710198,302.21061955257,310.76166549402,319.55466133443,324.80633749066,333.99672707734,343.44715857517,349.09149261831,358.96903024071,369.1260526158,375.19240283292,385.80846524917,392.14898023137,403.24482870584,414.65463641221,421.46921730446,433.39468387282,445.65757880387,452.98167562873,465.79878414581,478.97855252217,486.85025820508,500.62567766841,514.79087238232,523.2511306012],description:"Negri temperament, 13-limit, g=124.831"},"neid-mar-morg":{frequencies:[261.6255653006,277.49581689502,293.99657683935,311.12698372208,329.99999983505,349.6228209638,369.99442271164,392.4383479509,415.77394625748,440,466.69047534984,494.44133512215,523.2511306012],description:"Neidhardt-Marpurg-de Morgan temperament (1858)"},neidhardt1:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,348.83408706747,368.32692341742,391.5530240856,414.36778843034,438.51190905657,465.11211608996,491.65745674141,523.2511306012],description:"Neidhardt I temperament (1724)"},neidhardt2:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,349.22823143301,369.15973155124,391.5530240856,414.36778843034,438.51190905657,466.16376151809,492.7691222293,523.2511306012],description:"Neidhardt II temperament (1724)"},neidhardt3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Neidhardt III temperament (1724) 'Grosse Stadt'"},neidhardt4:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,329.62755691287,349.22823143301,369.99442271164,391.99543598175,415.30469757995,440,466.16376151809,493.88330125613,523.2511306012],description:"Neidhardt IV temperament (1724), equal temperament"},neidhardtn:{frequencies:[261.6255653006,276.86979852503,293.66476791741,310.77584116741,329.62755691287,348.83408706747,369.99442271164,391.5530240856,415.30469757995,439.50340943686,466.16376151809,493.32589719545,523.2511306012],description:"Johann Georg Neidhardt's temperament (1732), alt. 1/6 & 0 P, also Marpurg nr.10"},neogeb24:{frequencies:[261.6255653006,270.11478301563,282.39420473706,291.55732426372,295.23185084282,304.81152420286,308.65309481038,318.66826025208,333.15492371116,343.96512368902,348.30015108876,359.6017829051,375.94928703407,388.14807710176,393.03994675222,405.79329398283,424.24066266408,438.00640969567,443.52664897728,457.91818970179,463.68937649142,478.73515685363,500.49846361623,516.73862125829,523.2511306012],description:"Neo-Gothic e-based lineotuning (T/S or Blackwood's R=e, ~2.71828), 24 notes"},neogji12:{frequencies:[261.6255653006,282.52678126125,294.32876096318,317.84262891891,332.97799220076,348.83408706747,374.60024122586,392.4383479509,423.79017189188,441.49314144476,443.97065626768,499.46698830115,523.2511306012],description:"M. Schulter, neo-Gothic 12-note JI (prim. 2/3/7/11) 1/1=F with Eb key as D+1"},neogp16a:{frequencies:[261.6255653006,274.38778799819,281.28352228595,295.02457363685,309.19384990071,317.19205704586,332.33517754401,348.83408706747,366.27579142084,374.86334014511,392.4383479509,411.12588832951,422.62591317789,442.75095666255,464.34856430463,498.91386871277,523.2511306012],description:"M. Schulter, scale from mainly prime-to-prime ratios and octave complements (Gb-D#)"},neutr_diat:{frequencies:[261.6255653006,294.32876096318,320.24370022528,348.83408706747,392.4383479509,427.47405410759,479.82340237272,523.2511306012],description:"Neutral Diatonic, 9 + 9 + 12 parts, geometric mean of major and minor"},neutr_pent1:{frequencies:[261.6255653006,302.32287545847,348.83408706747,392.4383479509,453.48431318771,523.2511306012],description:"Quasi-Neutral Pentatonic 1, 15/13 x 52/45 in each trichord, after Dudon"},neutr_pent2:{frequencies:[261.6255653006,301.87565226992,348.83408706747,392.4383479509,452.81347840488,523.2511306012],description:"Quasi-Neutral Pentatonic 2, 15/13 x 52/45 in each trichord, after Dudon"},new_enh:{frequencies:[261.6255653006,264.89588486686,279.06726965397,348.83408706747,392.4383479509,397.34382730029,418.60090448096,523.2511306012],description:"New Enharmonic"},new_enh2:{frequencies:[261.6255653006,327.03195662575,331.11985608357,348.83408706747,392.4383479509,490.54793493862,496.67978412536,523.2511306012],description:"New Enharmonic permuted"},newcastle:{frequencies:[261.6255653006,273.65745935891,291.9012907804,312.65334602246,327.03195662575,350.28154752005,366.3906401674,390.81668391305,410.48618883318,436.04260883433,467.04206359353,490.54793493862,523.2511306012],description:"Newcastle modified 1/3-comma meantone"},norden:{frequencies:[261.6255653006,274.87601291722,292.73769384471,310.07474405997,327.54963108844,349.78078158391,366.5013507395,391.37619916626,412.31401916973,437.91808280662,466.37437567834,489.99465727995,523.2511306012],description:"Reconstructed Schnitger temperament, organ in Norden. Ortgies, 2002"},novaro:{frequencies:[261.6255653006,274.70684356563,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,498.33441009638,523.2511306012],description:"9-limit diamond with 21/20, 16/15, 15/8 and 40/21 added for evenness"},novaro15:{frequencies:[261.6255653006,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.87565226992,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,453.48431318771,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,523.2511306012],description:"1-15 diamond, see Novaro, 1927, Sistema Natural base del Natural-Aproximado, p"},novaro_eb:{frequencies:[261.6255653006,277.27733921611,293.70273468471,311.34510173929,329.85947563084,349.74559786079,370.61463194963,392.51515715445,416.03831243363,440.72414616847,467.23897542105,495.06435356607,524.26505360912],description:"Novaro (?) equal beating 4/3 with strectched octave, almost pure 3/2"},janke1:{frequencies:[261.6255653006,276.38325105256,293.32570896007,310.58830860439,328.86683469969,349.02656754477,368.7143392539,391.76907592069,414.34624765043,439.23819834286,465.62553897253,492.45896815637,523.2511306012],description:"Rainer Janke, Temperatur I"},janke2:{frequencies:[261.6255653006,276.38325105256,292.98704147282,310.58830860439,328.48713220126,349.02656754477,368.7143392539,391.54284657258,414.34624765043,438.73106346722,465.62553897253,491.89038573682,523.2511306012],description:"Rainer Janke, Temperatur II"},janke3:{frequencies:[261.6255653006,276.22365192501,292.98704147282,310.40895756597,328.29744538229,349.02656754477,368.50142299854,391.54284657258,414.10698098223,438.47771564426,465.62553897253,491.60634075178,523.2511306012],description:"Rainer Janke, Temperatur III"},janke4:{frequencies:[261.6255653006,275.90473010106,292.98704147282,310.76776326996,328.10786809908,349.22823143301,368.07595926604,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.32245979018,523.2511306012],description:"Rainer Janke, Temperatur IV"},janke5:{frequencies:[261.6255653006,275.58617649731,292.98704147282,310.05056613125,328.10786809908,348.82502010853,367.43868454848,391.54284657258,413.39000965417,438.47771564426,465.08793784701,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur V"},janke6:{frequencies:[261.6255653006,275.74540729824,292.98704147282,310.58830860439,328.10786809908,349.43001184052,367.65098676472,391.54284657258,413.86785247997,438.47771564426,465.89457252293,491.0387427573,523.2511306012],description:"Rainer Janke, Temperatur VI"},janke7:{frequencies:[261.6255653006,275.42703764514,292.81785438923,311.12698372208,327.91840028839,349.63190883464,367.0144478307,391.54284657258,413.62886206386,438.22451411849,467.24207374344,490.75518955849,523.2511306012],description:"Rainer Janke, Temperatur VII"},jemblung1:{frequencies:[261.6255653006,298.87388797409,337.89601991959,388.44742741354,452.30188977628,523.2511306012],description:"Scale of bamboo gamelan jemblung from Kalijering, slendro-like. 1/1=590 Hz."},jemblung2:{frequencies:[261.6255653006,300.03885820455,355.06324470257,391.40016308218,451.61555914985,523.2511306012],description:"Bamboo gamelan jemblung at Royal Batavia Society. 1/1=504 Hz."},ji_10coh:{frequencies:[261.6255653006,283.42769574232,299.7792935736,327.03195662575,348.83408706747,370.63621750918,392.4383479509,436.04260883433,457.84473927605,485.0974023282,523.2511306012],description:"Differentially coherent 10-tone scale"},ji_10coh2:{frequencies:[261.6255653006,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,479.64686971777,523.2511306012],description:"Other diff. coherent 10-tone scale"},ji_11:{frequencies:[261.6255653006,276.96780524107,294.32876096318,316.53463456122,336.37572681506,356.10146388137,384.42940207435,406.97310157871,432.48307733364,465.11211608996,494.26637409559,523.2511306012],description:"3 and 7 prime rational interpretation of 11-tET. OdC 2000"},ji_12:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Basic JI with 7-limit tritone"},ji_12a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"7-limit 12-tone scale"},ji_12b:{frequencies:[261.6255653006,272.52663052146,290.69507255622,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"alternate 7-limit 12-tone scale"},ji_12c:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'Kurzweil "Just with natural b7th", is Sauveur Just with 7/4'},ji_13:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"5-limit 12-tone symmetrical scale with two tritones"},ji_17:{frequencies:[261.6255653006,271.31540105247,283.8170195002,294.32876096318,310.07474405997,321.55899383997,336.37572681506,348.83408706747,361.75386806997,378.42269266694,392.4383479509,406.97310157871,425.72552925031,441.49314144476,465.11211608996,482.33849075995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 17-tET. OdC"},ji_17a:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,310.07474405997,321.08592105074,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,426.35277308246,441.49314144476,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_17b:{frequencies:[261.6255653006,272.52663052146,285.40970760065,294.32876096318,310.07474405997,319.76457981184,334.88072358477,348.83408706747,359.73515228832,380.54627680087,392.4383479509,408.78994578219,428.11456140098,441.49314144476,465.11211608996,479.64686971777,502.32108537715,523.2511306012],description:"Alt. 3, 5 and 11 prime rational interpretation of 17-tET, OdC"},ji_19:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"5-limit 19-tone scale"},ji_20:{frequencies:[261.6255653006,271.31540105247,279.38237857051,288.32205155576,299.00064605783,310.07474405997,321.55899383997,331.11985608357,348.83408706747,356.10146388137,372.50983809402,384.42940207435,392.4383479509,413.43299207996,425.72552925031,441.49314144476,457.84473927605,474.80195184183,489.99465727995,504.56359022259,523.2511306012],description:"3 and 7 prime rational interpretation of 20-tET. OdC"},ji_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"7-limit 21-tone just scale, Op de Coul, 2001"},ji_22:{frequencies:[261.6255653006,272.52663052146,279.06726965397,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"5-limit 22-tone scale (Zarlino?)"},ji_27:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,331.11985608357,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,413.43299207996,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"7-limit rational interpretation of 27-tET, OdC"},ji_29:{frequencies:[261.6255653006,267.90457886781,275.62199471997,282.55561052465,287.78812183066,294.32876096318,301.39265122629,310.07474405997,317.12189733406,323.76163705949,331.11985608357,340.65828815182,348.83408706747,356.76213450082,367.91095120397,372.08969287196,383.71749577421,392.4383479509,401.85686830172,413.43299207996,422.82919644541,431.68218274599,441.49314144476,454.2110508691,465.11211608996,475.68284600109,484.4917875937,496.67978412536,510.98743222773,523.2511306012],description:"3,5,11-prime rational interpretation of 29-tET, OdC"},ji_30:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,313.95067836072,321.92208230347,329.64821227876,336.37572681506,344.91651675372,353.19451315581,360.81424763342,370.01329949656,379.40816842909,387.59343007496,396.89567239676,406.97310157871,415.27867508032,425.24536328225,436.04260883433,443.97065626768,456.65553216105,465.11211608996,478.40103369253,488.36772189445,498.33441009638,511.62332769895,523.2511306012],description:"11-limit rational interpretation of 30-tET"},ji_31:{frequencies:[261.6255653006,267.57160087561,274.08392555301,280.31310567921,285.40970760065,293.02063313667,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,356.76213450082,366.27579142084,373.75080757229,383.71749577421,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,467.18850946536,479.64686971777,490.54793493862,499.46698830115,512.78610798918,523.2511306012],description:"A just 11-limit 31-tone scale, optimized for Mann complexity"},ji_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,318.93402246168,327.03195662575,334.88072358477,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 7-limit 31-tone scale"},ji_31b:{frequencies:[261.6255653006,267.90457886781,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"A just 5-limit 31-tone scale, corner clipped genus"},ji_31c:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,334.88072358477,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,408.78994578219,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"A just 11-limit 31-tone scale"},ji_5coh:{frequencies:[261.6255653006,305.22982618403,348.83408706747,381.53728273004,446.94367405519,523.2511306012],description:"Differential fully coherent pentatonic scale"},ji_6coh:{frequencies:[261.6255653006,294.32876096318,330.74639366397,372.08969287196,418.60090448096,465.11211608996,523.2511306012],description:"Differential coherent 6-tone scale, OdC 2003"},ji_7:{frequencies:[261.6255653006,290.69507255622,318.93402246168,348.83408706747,392.4383479509,429.2294430713,470.92601754108,523.2511306012],description:"7-limit rational interpretation of 7-tET. OdC"},ji_7a:{frequencies:[261.6255653006,287.78812183066,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Superparticular approximation to 7-tET. Op de Coul, 1998"},ji_8coh:{frequencies:[261.6255653006,286.99041781007,312.35527031954,339.96223546814,370.00947616612,405.83764015148,441.71144237774,480.75585116768,523.2511306012],description:"Differential coherent 8-tone scale, OdC, 2003"},ji_8coh3:{frequencies:[261.6255653006,277.97716313189,302.50455987882,327.03195662575,359.73515228832,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Differential fully coherent 8-tone scale, OdC, 2003"},ji_9coh:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,366.27579142084,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Differentially coherent 9-tone scale"},ji_ri24a:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,301.87565226992,310.68035879446,319.76457981184,329.87571277032,340.11323489078,348.83408706747,359.73515228832,370.63621750918,380.54627680087,392.4383479509,402.50086969323,414.99227599406,428.11456140098,440.63253103259,453.48431318771,465.11211608996,479.64686971777,494.18162334558,508.71637697339,523.2511306012],description:"M. Schulter, just/rational intonation system - with circulating 24-note set"},jioct12:{frequencies:[261.6255653006,272.52663052146,282.55561052465,302.80736724606,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"12-tone JI version of Messiaen's octatonic scale, Erlich & Par\xEF\xBF\xBDzek"},"jobin-bach":{frequencies:[261.6255653006,275.07759559501,292.50627485027,309.76836826904,327.03195662575,348.83408706747,366.77012764335,391.22147055517,412.61639318626,437.39890198442,464.6525521713,489.02683710225,523.2511306012],description:"Emile Jobin, WTC temperament after Bach's signet"},"johnson-secor_rwt":{frequencies:[261.6255653006,276.16031892841,293.03678286293,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.52992584916,414.24047839262,438.40450629885,465.11211608996,490.95167809495,523.2511306012],description:"Johnson/Secor proportional-beating well-temperament with five 24/19s."},johnson_44:{frequencies:[261.6255653006,265.7783520514,269.99705605222,274.2827236086,278.63641763414,283.05921791404,287.55222124002,292.11654190835,296.75331210627,301.46368356757,306.24882108355,311.17820103386,316.11753722951,321.13527558179,326.23266245367,331.4109583385,336.67144939063,342.01544029518,347.44425644654,352.9592442771,358.56177366235,364.2532300084,370.03502692537,375.90859839047,381.87540114246,387.93691728375,394.09464571975,400.35011587045,406.70487919155,413.16051176499,419.71861468993,426.38081694263,433.14876596753,440.02414274758,447.00865248514,454.10402744924,461.31203006992,468.63444275836,476.07308421189,483.62979961065,491.30646309654,499.10497838378,507.02727962797,515.07533168556,523.2511306012],description:"Aaron Johnson, 44-tET approximation"},johnson_7:{frequencies:[261.6255653006,288.83389952765,318.87182567809,352.10227751942,388.71994014354,429.2294430713,473.86811641255,523.2511306012],description:"Aaron Johnson, 7-tET approximation"},johnson_eb:{frequencies:[261.6255653006,273.1678696521,292.40504357126,312.71949922989,327.03195662575,349.65487315468,365.50630446407,390.89937403737,408.78994578219,437.06859144336,467.84806971401,488.62421754671,523.2511306012],description:'Aaron Johnson, "1/4-comma tempered" equal beating C-G-D-A-E plus just thirds'},johnson_ratwell:{frequencies:[261.6255653006,276.16031892841,292.90688289089,310.07474405997,327.94037872749,348.83408706747,368.21375857121,391.49724879514,414.24047839262,438.30776524386,465.11211608996,490.95167809495,523.2511306012],description:"Aaron Johnson, rational well-temperament with five 24/19's"},johnson_temp:{frequencies:[261.6255653006,275.52965735686,292.50638298357,309.88336774144,327.03195662575,348.76230617841,367.55223824197,391.22154286826,413.09299784305,437.39914452994,464.92072007996,490.30891677011,523.2511306012],description:"Aaron Johnson, temperament with just 5/4, 24/19 and 19/15"},johnston:{frequencies:[261.6255653006,275.93321340298,294.32876096318,315.35224388912,327.03195662575,359.73515228832,367.91095120397,392.4383479509,401.35740131342,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Ben Johnston's combined otonal-utonal scale"},johnston_21:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"Johnston 21-note just enharmonic scale"},johnston_22:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,353.19451315581,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Johnston 22-note scale from end of string quartet nr. 4"},johnston_25:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Johnston 25-note just enharmonic scale"},"johnston_6-qt":{frequencies:[261.6255653006,262.79353657426,266.47048317654,267.57160087561,271.31540105247,272.52663052146,277.4816601673,280.31310567921,284.23518205497,290.69507255622,294.32876096318,297.30177875068,299.7792935736,300.33547037059,305.22982618403,306.59245933664,310.07474405997,311.45900631024,316.53463456122,317.12189733406,319.76457981184,322.99452506247,327.03195662575,334.46450109452,339.14425131559,342.60490694126,348.83408706747,350.39138209902,355.29397756872,356.76213450082,361.75386806997,363.36884069528,367.91095120397,373.75080757229,381.53728273004,382.24514410802,387.59343007496,390.82337532559,392.4383479509,396.40237166758,399.70572476481,406.97310157871,408.78994578219,413.43299207996,420.46965851882,426.35277308246,436.04260883433,445.95266812602,452.19233508746,459.88868900496,465.11211608996,467.18850946536,475.68284600109,479.64686971777,484.4917875937,486.49381977384,490.54793493862,248.7057842981,498.33441009638,508.71637697339,516.79124009995,523.2511306012],description:"11-limit complete system from Ben Johnston's _6th Quartet_"},"johnston_6-qt_row":{frequencies:[261.6255653006,272.52663052146,290.69507255622,306.59245933664,327.03195662575,350.39138209902,363.36884069528,399.70572476481,408.78994578219,436.04260883433,445.95266812602,490.54793493862,508.71637697339],description:`11-limit 'prime row' from Ben Johnston's "6th Quartet"`},johnston_81:{frequencies:[116.54094037952,117.99770213426,119.33792294863,119.89808681021,120.82964698549,121.39681289533,122.77564089365,122.91427305652,124.31033640482,124.45070146973,125.86421560988,127.43751830501,127.89129259755,128.03570110055,129.48993375502,131.10855792696,132.74741490105,134.25516331721,134.88534766148,135.93335285867,136.57141450725,138.12259600536,138.27855718859,139.84912845542,141.59724256112,142.26189011172,143.87770417225,145.6761754744,147.49712766783,149.17240368579,151.03705873186,151.74601611917,153.46955111706,155.38792050603,157.33026951235,159.11723059817,159.29689788126,161.10619598065,161.86241719378,163.70085452487,163.8856974087,165.74711520643,165.93426862631,167.81895414651,169.91669107334,170.71426813406,172.6532450067,174.81141056928,176.9965532014,179.00688442294,179.84713021531,181.24447047823,182.095219343,184.16346134048,184.37140958479,186.46550460723,188.79632341482,189.68252014896,191.15627745751,191.83693889633,194.23490063253,196.66283689044,198.89653824771,199.12112235157,199.83014468368,201.38274497581,202.32802149222,204.62606815608,204.85712176088,207.18389400804,207.41783578289,209.77369268314,212.39586384168,213.39283516758,215.81655625837,218.5142632116,221.24569150175,223.75860552868,226.55558809779,227.61902417875,230.2043266756,233.08188075904],description:"Johnston 81-note 5-limit scale of Sonata for Microtonal Piano"},jorgensen:{frequencies:[261.6255653006,269.51415085551,288.85811466493,309.59046173614,318.92511007349,352.12195684808,355.62605411908,388.77403176757,408.50706336067,429.24143792307,469.25139168707,473.92081401802,523.2511306012],description:"Jorgensen's 5&7 temperament"},jousse:{frequencies:[261.6255653006,276.90198715646,293.15566421679,311.51473523959,328.62702621286,349.28097970329,369.20264759391,391.76800554826,415.35298052707,439.0631553946,466.60176257857,492.27019703794,523.2511306012],description:"Temperament of Jean Jousse (1832)"},jousse2:{frequencies:[261.6255653006,277.21176919085,293.63180098233,311.16627887077,329.63881547742,349.36510452864,370.14670828388,392.04008509316,415.41939014292,440.0494382652,466.3511549761,494.0599599767,523.2511306012],description:"Jean Jousse's quasi-equal temperament"},quasi_5:{frequencies:[261.6255653006,302.26980244078,349.22823143301,391.99543598175,452.89298412314,523.2511306012],description:"Quasi-Equal 5-Tone in 24-tET, 5 5 4 5 5 steps"},quasi_9:{frequencies:[261.6255653006,281.2143451833,302.26980244078,324.90175210669,349.22823143301,391.99543598175,421.34544350737,452.89298412314,486.80259447109,523.2511306012],description:'Quasi-Equal Enneatonic, Each "tetrachord" has 125 + 125 + 125 + 125 cents'},quint_chrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,348.83408706747,392.4383479509,415.52295665389,441.49314144476,523.2511306012],description:"Aristides Quintilianus' Chromatic genus"},oconnell:{frequencies:[261.6255653006,267.57429119961,272.27874977392,278.46970304972,283.3657217904,288.34782337261,294.90414810658,300.08911516052,305.36524364276,312.30850472426,317.79947295261,323.38698268281,330.74001416845,336.55504284097,344.20748191927,350.25929591231,356.41751010259,364.52157313929,370.93054700815,377.45220049416,386.03454097812,392.82175095637,399.72829510222,408.81713953112,416.00491024634,423.31905787312],description:"Walter O'Connell, Pythagorean scale of 25 octaves reduced by Phi. XH 15 (1993)"},oconnell_11:{frequencies:[261.6255653006,272.27874977392,288.34782337261,300.08911516052,312.30850472426,323.38698268281,344.20748191927,356.41751010259,370.93054700815,386.03454097812,408.81713953112,423.31905787312],description:"Walter O'Connell, 11-note mode of 25-tone scale"},oconnell_14:{frequencies:[261.6255653006,272.27874977392,283.3657217904,288.34782337261,300.08911516052,312.30850472426,323.38698268281,336.55504284097,344.20748191927,356.41751010259,370.93054700815,386.03454097812,399.72829510222,408.81713953112,423.31905787312],description:"Walter O'Connell, 14-note mode of 25-tone scale"},oconnell_7:{frequencies:[261.6255653006,283.3657217904,300.08911516052,323.38698268281,344.20748191927,370.93054700815,392.82175095637,423.31905787312],description:"Walter O'Connell, 7-note mode of 25-tone scale"},oconnell_9:{frequencies:[261.6255653006,278.46970304972,294.90414810658,305.36524364276,323.38698268281,344.20748191927,364.52157313929,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 9-tone mode of 25-tone scale"},oconnell_9a:{frequencies:[261.6255653006,272.27874977392,288.34782337261,305.36524364276,323.38698268281,344.20748191927,356.41751010259,377.45220049416,399.72829510222,423.31905787312],description:"Walter O'Connell, 7+2 major mode analogy for 25-tone scale"},octony_min:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Octony on Harmonic Minor, from Palmer on an album of Turkish music"},octony_rot:{frequencies:[261.6255653006,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Rotated Octony on Harmonic Minor"},octony_trans:{frequencies:[261.6255653006,271.31540105247,279.06726965397,327.03195662575,348.83408706747,408.78994578219,420.46965851882,436.04260883433,523.2511306012],description:"Complex 10 of p. 115, an Octony based on Archytas's Enharmonic,"},octony_trans2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,315.35224388912,324.36230800023,336.37572681506,348.83408706747,504.56359022259,523.2511306012],description:"Complex 6 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,306.59245933664,315.35224388912,327.03195662575,348.83408706747,490.54793493862,523.2511306012],description:"Complex 5 of p. 115 based on Archytas's Enharmonic, an Octony"},octony_trans4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,420.46965851882,432.48307733364,448.50096908674,523.2511306012],description:"Complex 11 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans5:{frequencies:[261.6255653006,271.31540105247,279.06726965397,317.94773560837,327.03195662575,339.14425131559,348.83408706747,508.71637697339,523.2511306012],description:"Complex 15 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_trans6:{frequencies:[261.6255653006,269.10058145205,271.31540105247,279.06726965397,336.37572681506,345.98646186692,348.83408706747,358.80077526939,523.2511306012],description:"Complex 14 of p. 115, an Octony based on Archytas's Enharmonic, 8 tones"},octony_u:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,356.76213450082,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"7)8 octony from 1.3.5.7.9.11.13.15, 1.3.5.7.9.11.13 tonic (subharmonics 8-16)"},odd1:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"ODD-1"},odd2:{frequencies:[261.6255653006,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"ODD-2"},oettingen:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,301.39265122629,306.59245933664,310.42486507835,313.95067836072,317.87506184023,323.35923445661,327.03195662575,331.11985608357,334.88072358477,339.06673262958,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.50983809402,376.74081403286,383.2405741708,388.03108134794,392.4383479509,397.34382730029,401.85686830172,408.78994578219,413.89982010446,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,452.08897683944,459.88868900496,465.11211608996,470.92601754108,476.81259276034,485.03885168492,490.54793493862,496.67978412536,502.32108537715,510.98743222773,517.37477513058,523.2511306012],description:"von Oettingen's Orthotonophonium tuning"},oettingen2:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,317.51653791741,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,423.83341578697,431.14564594215,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"von Oettingen's Orthotonophonium tuning with central 1/1"},ogr10:{frequencies:[261.6255653006,264.15640940857,271.89678302796,296.5055443788,342.56848033562,359.46139971304,411.32572372413,440,484.46499093218,513.27277840175,523.2511306012],description:"Optimal Golomb Ruler of 10 segments, length 72"},ogr10a:{frequencies:[261.6255653006,264.15640940857,285.30470202322,314.13668154225,329.62755691287,352.60650301302,431.60923940535,448.5538823653,457.27406033445,508.3551866238,523.2511306012],description:"2nd Optimal Golomb Ruler of 10 segments, length 72"},ogr11:{frequencies:[261.6255653006,265.92749183559,274.74472021414,318.1829357186,331.4244391468,362.52783176564,371.50609336774,409.69842558521,455.51656649021,482.27514684959,486.22402266421,523.2511306012],description:"Optimal Golomb Ruler of 11 segments, length 85"},ogr12:{frequencies:[261.6255653006,265.06964174786,270.3209511875,308.09015504092,333.2396629384,346.57411320722,384.79959982017,413.49815209867,456.11269186454,468.20039948765,496.58195036371,499.83980314828,523.2511306012],description:"Optimal Golomb Ruler of 12 segments, length 106"},ogr2:{frequencies:[261.6255653006,329.62755691287,523.2511306012],description:"Optimal Golomb Ruler of 2 segments, length 3"},ogr3:{frequencies:[261.6255653006,293.66476791741,415.30469757995,523.2511306012],description:"Optimal Golomb Ruler of 3 segments, length 6"},ogr4:{frequencies:[261.6255653006,278.64197723942,336.62443200122,461.29362042034,523.2511306012],description:"Optimal Golomb Ruler of 4 segments, length 11"},ogr4a:{frequencies:[261.6255653006,296.76515515861,406.67242132093,433.12283887627,523.2511306012],description:"2nd Optimal Golomb Ruler of 4 segments, length 11"},ogr5:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,426.7484383229,523.2511306012],description:"Optimal Golomb Ruler of 5 segments, length 17"},ogr5a:{frequencies:[261.6255653006,272.51337835337,307.97166902637,393.32961502355,482.27514684959,523.2511306012],description:"2nd Optimal Golomb Ruler of 5 segments, length 17"},ogr5b:{frequencies:[261.6255653006,272.51337835337,362.52783176564,426.7484383229,463.0066556268,523.2511306012],description:"3rd Optimal Golomb Ruler of 5 segments, length 17"},ogr5c:{frequencies:[261.6255653006,272.51337835337,362.52783176564,409.69842558521,444.50800708553,523.2511306012],description:"4th Optimal Golomb Ruler of 5 segments, length 17"},ogr6:{frequencies:[261.6255653006,268.98086109226,292.31087910123,345.21700307457,430.94493093825,495.02573326308,523.2511306012],description:"Optimal Golomb Ruler of 6 segments, length 25"},ogr6a:{frequencies:[261.6255653006,276.5429423948,284.31762274025,345.21700307457,407.69874723177,468.32288027948,523.2511306012],description:"2nd Optimal Golomb Ruler of 6 segments, length 25"},ogr6b:{frequencies:[261.6255653006,268.98086109226,354.92237405774,407.69874723177,443.06044202496,495.02573326308,523.2511306012],description:"3rd Optimal Golomb Ruler of 6 segments, length 25"},ogr6c:{frequencies:[261.6255653006,268.98086109226,317.66442301495,354.92237405774,455.51656649021,495.02573326308,523.2511306012],description:"4th Optimal Golomb Ruler of 6 segments, length 25"},ogr6d:{frequencies:[261.6255653006,276.5429423948,317.66442301495,375.1593523779,468.32288027948,481.48922855473,523.2511306012],description:"5th Optimal Golomb Ruler of 6 segments, length 25"},ogr7:{frequencies:[261.6255653006,267.01398215014,283.85429714132,314.3146261019,355.21191871351,409.69842558521,502.34551296122,523.2511306012],description:"Optimal Golomb Ruler of 7 segments, length 34"},ogr8:{frequencies:[261.6255653006,265.77967818767,283.06627815664,316.06708432391,387.90015179087,400.3161696196,454.08364189083,499.09751029017,523.2511306012],description:"Optimal Golomb Ruler of 8 segments, length 44"},ogr9:{frequencies:[261.6255653006,264.94361147373,282.17583275232,296.76515515861,349.59519124833,363.06573983159,401.57942110183,438.61588607285,510.2272282764,523.2511306012],description:"Optimal Golomb Ruler of 9 segments, length 55"},oldani:{frequencies:[261.6255653006,272.52663052146,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"This scale by Norbert L. Oldani appeared in Interval 5(3), p.10-11"},oljare:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Tampere" (2001)'},oljare17:{frequencies:[261.6255653006,272.51337835337,320.78822215662,334.13814720468,393.32961502355,409.69842558521,426.7484383229,502.34551296122,523.2511306012],description:'Mats \xEF\xBF\xBDljare, scale for "Fafner" (2001), MOS in 17-tET'},olympos:{frequencies:[261.6255653006,279.06726965397,348.83408706747,372.08969287196,465.11211608996,523.2511306012],description:"Scale of ancient Greek flutist Olympos, 6th century BC as reported by Partch"},opelt:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friederich Wilhelm Opelt 19-tone"},organ1373a:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 ficta semitones (Eb-G#)"},organ1373b:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"English organ tuning (1373) with 18:17:16 accidental semitones (Eb-G#)"},ragib:{frequencies:[261.6255653006,269.99542342683,281.01564479119,288.12007609225,294.32876096318,303.49446183192,311.45900631024,323.77767743764,335.77702597132,341.99420300732,348.83408706747,360.36579242507,371.06455309218,381.37837507376,392.4383479509,407.46331920162,417.22825371678,432.79663407874,450.28451247858,458.15534711532,465.11211608996,476.50902003141,487.19844562495,503.12608711654,523.2511306012],description:"Idris Ragib Bey, vol.5 d'Erlanger, p 40. Idris Rag'ib Bey"},ragib7:{frequencies:[261.6255653006,270.30192333353,281.29980781121,288.32205155576,294.32876096318,303.74668805875,311.45900631024,324.36230800023,336.37572681506,341.71502406609,348.83408706747,360.4025644447,370.6997805717,381.53728273004,392.4383479509,406.97310157871,417.13259773693,432.48307733364,450.69091522486,457.84473927605,465.11211608996,476.92160341255,486.65469735975,502.32108537715,523.2511306012],description:"7-limit version of Idris Rag'ib Bey scale"},"rameau-flat":{frequencies:[261.6255653006,276.01120901503,292.50629850443,312.00666699279,327.03195662575,349.91920725962,366.20974703841,391.22137338448,415.30469757995,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:'Rameau bemols, see Pierre-Yves Asselin in "Musique et temperament"'},"rameau-gall":{frequencies:[261.6255653006,274.65078342868,292.50627485027,310.49874388777,327.03195662575,349.91912034749,366.20104475463,391.22147055517,412.61639318626,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Rameau's temperament, after Gallimard (1st solution)"},"rameau-merc":{frequencies:[261.6255653006,273.37431312998,292.50627485027,308.72950296259,327.03195662575,348.83408706747,365.63284274659,391.22147055517,409.55238583376,437.39890198442,464.53468854848,489.02683710225,523.2511306012],description:"Rameau's temperament, after Mercadier"},"rameau-minor":{frequencies:[261.6255653006,294.32876096318,313.95067836072,353.19451315581,392.4383479509,418.60090448096,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"Rameau's systeme diatonique mineur on E. Asc. 4-6-8-9, desc. 9-7-5-4"},"rameau-nouv":{frequencies:[261.6255653006,275.98004852257,292.50627485027,311.49614460359,327.03195662575,349.91912034749,367.37127028704,391.22147055517,414.64857675456,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"Temperament by Rameau in Nouveau Systeme (1726)"},"rameau-sharp":{frequencies:[261.6255653006,273.37431312998,292.50629850443,308.54983514133,327.03195662575,348.83408706747,365.63293356166,391.22137338448,409.42528169498,437.39882871549,464.33633889105,489.02679755603,523.2511306012],description:'Rameau dieses, see Pierre-Yves Asselin in "Musique et temperament"'},rameau:{frequencies:[261.6255653006,275.07757335026,292.50629850443,310.73186404381,327.03195662575,349.91920725962,366.77009798369,391.22137338448,412.61635981914,437.39882871549,468.01000025525,489.02679755603,523.2511306012],description:"Rameau's modified meantone temperament (1725)"},ramis:{frequencies:[261.6255653006,275.93321340298,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monochord of Ramos de Pareja (Ramis de Pareia), Musica practica (1482). Carlos: Switched on Bach"},rapoport_8:{frequencies:[261.6255653006,297.86386736488,316.53463456122,336.37572681506,382.96782946913,406.97310157871,432.48307733364,492.38720931745,523.2511306012],description:"Paul Rapoport, cycle of 14/9 close to 8 out of 11-tET, XH 13, 1991"},rast_moha:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,479.82340237272,523.2511306012],description:"Rast + Mohajira (Dudon) 4 + 3 + 3 Rast and 3 + 4 + 3 Mohajira tetrachords"},rat_dorenh:{frequencies:[261.6255653006,267.70988077271,274.08392555301,359.73515228832,411.12588832951,418.60090448096,426.35277308246,523.2511306012],description:"Rationalized Schlesinger's Dorian Harmonia in the enharmonic genus"},rat_hypodenh:{frequencies:[261.6255653006,270.06509966514,279.06726965397,348.83408706747,380.54627680087,389.39619021485,398.6675280771,523.2511306012],description:"1+1 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh2:{frequencies:[261.6255653006,270.06509966514,288.69027895239,348.83408706747,380.54627680087,389.39619021485,408.39112632289,523.2511306012],description:"1+2 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodenh3:{frequencies:[261.6255653006,270.06509966514,299.00064605783,348.83408706747,380.54627680087,389.39619021485,418.60090448096,523.2511306012],description:"1+3 rationalized enharmonic genus derived from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,380.54627680087,386.4008349055,392.4383479509,523.2511306012],description:"1+1 rationalized hexachromatic/hexenharmonic genus derived from K.S.'Bastard'"},rat_hypodhex2:{frequencies:[261.6255653006,267.19206668997,279.06726965397,348.83408706747,380.54627680087,386.4008349055,398.6675280771,523.2511306012],description:"1+2 rat. hexachromatic/hexenharmonic genus derived from K.S.'s 'Bastard' Hypodo"},rat_hypodhex3:{frequencies:[261.6255653006,267.19206668997,285.40970760065,348.83408706747,380.54627680087,386.4008349055,405.0976494977,523.2511306012],description:"1+3 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex4:{frequencies:[261.6255653006,267.19206668997,292.04714266113,348.83408706747,380.54627680087,386.4008349055,411.73859457144,523.2511306012],description:"1+4 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex5:{frequencies:[261.6255653006,267.19206668997,299.00064605783,348.83408706747,380.54627680087,386.4008349055,418.60090448096,523.2511306012],description:"1+5 rat. hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' Hypodorian"},rat_hypodhex6:{frequencies:[261.6255653006,273.00058987889,292.04714266113,348.83408706747,380.54627680087,392.4383479509,411.73859457144,523.2511306012],description:"2+3 rationalized hexachromatic/hexenharmonic genus from K.S.'s 'Bastard' hypod"},rat_hypodpen:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,380.54627680087,387.59343007496,394.90651366128,523.2511306012],description:"1+1 rationalized pentachromatic/pentenharmonic genus derived from K.S.'s 'Bastar"},rat_hypodpen2:{frequencies:[261.6255653006,268.33391312882,282.83844897362,348.83408706747,380.54627680087,387.59343007496,402.50086969323,523.2511306012],description:"1+2 rationalized pentachromatic/pentenharmonic genus from K.S.'s 'Bastard' hyp"},rat_hypodpen3:{frequencies:[261.6255653006,268.33391312882,290.69507255622,348.83408706747,380.54627680087,387.59343007496,410.39304360878,523.2511306012],description:"1+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen4:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,387.59343007496,418.60090448096,523.2511306012],description:"1+4 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen5:{frequencies:[261.6255653006,275.39533189537,290.69507255622,348.83408706747,380.54627680087,394.90651366128,410.39304360878,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodpen6:{frequencies:[261.6255653006,268.33391312882,299.00064605783,348.83408706747,380.54627680087,394.90651366128,418.60090448096,523.2511306012],description:"2+3 rationalized pentachromatic/pentenharmonic genus from 'Bastard' Hypodorian"},rat_hypodtri:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,380.54627680087,392.4383479509,405.0976494977,523.2511306012],description:"rationalized first (1+1) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypodtri2:{frequencies:[261.6255653006,273.00058987889,299.00064605783,348.83408706747,380.54627680087,392.4383479509,418.60090448096,523.2511306012],description:"rationalized second (1+2) trichromatic genus derived from K.S.'s 'Bastard' hyp"},rat_hypolenh:{frequencies:[261.6255653006,268.33391312882,275.39533189537,348.83408706747,373.75080757229,402.50086969323,410.39304360878,418.60090448096,523.2511306012],description:"Rationalized Schlesinger's Hypolydian Harmonia in the enharmonic genus"},rat_hypopchrom:{frequencies:[261.6255653006,277.01530443593,294.32876096318,362.25078272391,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the chromatic genus"},rat_hypopenh:{frequencies:[261.6255653006,269.10058145205,277.01530443593,362.25078272391,392.4383479509,400.78810003496,409.50088481833,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the enharmonic genus"},rat_hypoppen:{frequencies:[261.6255653006,273.79419624481,294.32876096318,362.25078272391,392.4383479509,405.97070477679,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in the pentachromatic genus"},rat_hypoptri:{frequencies:[261.6255653006,271.68808704293,282.55561052465,362.25078272391,392.4383479509,403.65087217807,415.52295665389,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in first trichromatic genus"},rat_hypoptri2:{frequencies:[261.6255653006,271.68808704293,294.32876096318,362.25078272391,392.4383479509,403.65087217807,428.11456140098,523.2511306012],description:"Rationalized Schlesinger's Hypophrygian Harmonia in second trichromatic genus"},rectsp10:{frequencies:[261.6255653006,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,340.11323489078,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10"},rectsp10a:{frequencies:[261.6255653006,275.39533189537,277.01530443593,279.06726965397,281.75060878526,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.79478270659,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,523.2511306012],description:"Rectangle minimal beats spectrum of order 10 union with inversion"},rectsp11:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,523.2511306012],description:"Rectangle minimal beats spectrum of order 11"},rectsp12:{frequencies:[261.6255653006,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,356.76213450082,359.73515228832,366.27579142084,370.63621750918,373.75080757229,377.90359432309,380.54627680087,392.4383479509,404.33041910093,406.97310157871,411.12588832951,414.24047839262,418.60090448096,425.14154361347,428.11456140098,436.04260883433,444.76346101102,448.50096908674,451.89870370104,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,485.87604984397,490.54793493862,494.18162334558,497.08857407114,499.46698830115,501.44900015948,523.2511306012],description:"Rectangle minimal beats spectrum of order 12"},rectsp6:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 (=songlines)"},rectsp6a:{frequencies:[261.6255653006,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Rectangle minimal beats spectrum of order 6 union with inversion"},rectsp7:{frequencies:[261.6255653006,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7"},rectsp7a:{frequencies:[261.6255653006,281.75060878526,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,411.12588832951,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012],description:"Rectangle minimal beats spectrum of order 7 union with inversion"},rectsp8:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8"},rectsp8a:{frequencies:[261.6255653006,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Rectangle minimal beats spectrum of order 8 union with inversion"},rectsp9:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,377.90359432309,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9"},rectsp9a:{frequencies:[261.6255653006,277.01530443593,279.06726965397,281.75060878526,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,490.54793493862,494.18162334558,523.2511306012],description:"Rectangle minimal beats spectrum of order 9 union with inversion"},redfield:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Redfield New Diatonic"},reinhard:{frequencies:[261.6255653006,277.01530443593,294.32876096318,309.81974838229,327.03195662575,348.83408706747,369.35373924791,392.4383479509,413.09299784305,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Reinhard 19-limit superparticular"},reinhard17:{frequencies:[261.6255653006,277.01530443593,277.97716313189,286.94416839421,292.40504357126,296.50897400735,307.79478270659,317.68818643644,338.57426097725,342.12573923925,369.35373924791,400.13321751856,404.33041910093,430.91269578922,444.76346101102,477.08191319521,492.47165233054,523.2511306012],description:`Reinhard's Harmonic-17 tuning for "Tresspass", 1998`},renteng1:{frequencies:[261.6255653006,285.40970760065,313.15788183285,391.64553850062,426.52890806662,523.2511306012],description:"Gamelan Renteng from Chileunyi (Tg. Sari). 1/1=330 Hz"},renteng2:{frequencies:[261.6255653006,294.32876096318,311.77048523333,396.07199334683,425.86840190162,523.2511306012],description:"Gamelan Renteng from Chikebo (Tg. Sari). 1/1=360 Hz"},renteng3:{frequencies:[261.6255653006,278.97471276149,312.97903559457,379.60005211265,409.44065404912,468.42785143649,523.2511306012],description:"Gamelan Renteng from Lebakwangi (Pameungpeuk). 1/1=377 Hz"},renteng4:{frequencies:[261.6255653006,296.45730715573,311.93819010347,397.0826586675,424.17395032031,523.2511306012],description:"Gamelan Renteng Bale` bandung from Kanoman (Cheribon). 1/1=338 Hz"},robot:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Dead Robot (see lattice)"},robot_live:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,376.74081403286,392.4383479509,418.60090448096,446.50763144636,490.54793493862,502.32108537715,523.2511306012],description:"Live Robot"},romieu:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu's Monochord, Memoire theorique & pratique (1758)"},romieu_inv:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Romieu inverted, Pure (just) C minor in Wilkinson: Tuning In"},rosati_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Dante Rosati, JI guitar tuning"},rosati_21a:{frequencies:[261.6255653006,280.31310567921,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,488.36772189445,523.2511306012],description:"Alternative version of rosati_21 with more tetrads"},rousseau:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Rousseau's Monochord, Dictionnaire de musique (1768)"},rousseauw:{frequencies:[261.6255653006,276.81658657456,293.31219032635,311.14941643136,328.83652403056,349.33732971591,369.19521129916,391.76004912942,415.1051791302,439.20783490896,466.32059269121,492.40223109551,523.2511306012],description:"Jean-Jacques Rousseau's temperament (1768)"},rsr_12:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"RSR - 7 limit JI"},"rvf-1":{frequencies:[261.6255653006,272.14556467328,280.20095193414,292.09989854643,304.19649364034,313.29104303136,326.0297292803,340.21856244106,350.08660369014,364.11104988921,374.67209286633,390.97784457618,406.87534373272,419.03967825638,436.39317047385,454.92493848389,468.39051363853,487.22455955444,508.94280091833,523.2511306012],description:"D-A 695 cents, the increment is 0.25 cents, interval range 49.5 to 75.5"},"rvf-2":{frequencies:[261.6255653006,272.87751533003,278.75612859219,292.27711197479,305.71136588092,312.51386339015,326.29348693151,342.97106251658,349.87433921674,364.79522794952,372.13777859784,391.13596290168,408.38225803817,417.4934384938,436.65792486176,457.83788806384,467.7011114131,487.81592522452,513.9947144098,523.2511306012],description:"695 cents, 0.607 cents, 31-90 cents, C-A# is 7/4."},"rvf-3":{frequencies:[261.6255653006,272.98787180262,278.19314238431,292.29399505039,306.11778315204,312.24320803046,326.25579420701,343.90343447252,349.81371586656,364.81629995674,371.08598724028,391.15855645336,408.71263878415,416.89098941754,436.60748307387,458.73792719255,467.48503753613,487.78774868553,515.83876338215,523.2511306012],description:"694.737, 0.082, 25-97, the fifth E#-B# is 3/2."},majmin:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Malcolm & Marpurg 4 (Yamaha major & minor) mixed. Mersenne/Ban without D#"},major_clus:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Chalmers' Major Mode Cluster"},major_wing:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Chalmers' Major Wing with 7 major and 6 minor triads"},malcolm:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Malcolm's Monochord (1721), and C major in Yamaha synths, Wilkinson: Tuning In"},malcolm2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,463.29527188648,490.54793493862,523.2511306012],description:"Malcolm 2"},malcolm_ap:{frequencies:[261.6255653006,279.47938236087,293.66476791741,313.97746652079,326.1838132033,349.22823143301,369.99442271164,391.99543598175,419.68935090103,436.0054062308,466.16376151809,489.82458627646,523.2511306012],description:"Best approximations in mix of all ETs from 12-23 to Malcolm's Monochord"},malcolm_me:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,457.84473927605,490.54793493862,523.2511306012],description:"Malcolm's Mid-East"},malcolme:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,496.11959049595,523.2511306012],description:"Most equal interval permutation of Malcolm's Monochord"},malcolme2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Inverse most equal interval permutation of Malcolm's Monochord"},malcolms:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,369.99442271164,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Symmetrical version of Malcolm's Monochord and Albion scale"},malerbi:{frequencies:[261.6255653006,275.62199471997,292.73769384471,310.07474405997,327.54963108844,348.83408706747,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Luigi Malerbi's well-temperament nr.1 (1794) (nr.2 = Young)"},malgache:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,459.88868900496,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache1:{frequencies:[261.6255653006,279.06726965397,294.32876096318,310.07474405997,327.03195662575,353.19451315581,376.74081403286,392.4383479509,418.60090448096,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malgache2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,353.19451315581,367.91095120397,392.4383479509,408.78994578219,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"tuning from Madagascar"},malkauns:{frequencies:[261.6255653006,313.95067836072,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"Raga Malkauns, inverse of prime_5"},mambuti:{frequencies:[261.6255653006,294.34406205295,331.72862856444,394.26624244126,466.16376151809,525.06772693396,590.39077962608,792.18471060794,999.82182774046],description:"African Mambuti Flutes (aerophone; vertical wooden; one note each)"},mandelbaum5:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,454.2110508691,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"Mandelbaum's 5-limit 19-tone scale, kleismic detempered circle of minor thirds"},mandelbaum7:{frequencies:[261.6255653006,272.52663052146,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,504.56359022259,523.2511306012],description:"Mandelbaum's 7-limit 19-tone scale"},marimba1:{frequencies:[261.6255653006,284.4818984792,319.50463429683,342.83241505062,371.92288545737,411.72190027758,457.09800545097,500.48847822777,547.68138927822,612.97866327818,651.68292300609,728.11694797601,807.8963375694,903.69557412727,1013.19282257599,1069.7265813247,1225.95732655636,1303.36584601218],description:"Marimba of the Bakwese, SW Belgian Congo (Zaire). 1/1=140.5 Hz"},marimba2:{frequencies:[261.6255653006,279.11058864149,318.03161540472,343.03050002254,379.95718438213,421.58889248327,458.6849347701,519.33670373121,571.2689787911,613.68721319418,694.83488613378,761.23234162637,846.59395682498,953.56868388592,1049.52904699774,1145.8425062572,1271.3918647407,1389.66977226756],description:"Marimba of the Bakubu, S. Belgian Congo (Zaire). 1/1=141.5 Hz"},marimba3:{frequencies:[261.6255653006,296.73398952435,348.2210758395,420.13030572059,476.50902003141,518.73708886244,603.49292471609,696.44215167899,840.26061144117,953.01804006282,1037.47417772488],description:"Marimba from the Yakoma tribe, Zaire. 1/1=185.5 Hz"},marion:{frequencies:[261.6255653006,269.91407136119,278.46532473603,287.28749371714,296.38899008685,305.77900572762,315.46632790985,325.46074015958,335.7715953476,346.4093067252,357.3838291689,368.70624618807,380.38737313392,392.4383479509,411.71310103548,431.93429139282,453.14890242083,475.40520223986,498.75490298644,523.2511306012],description:"scale with two different ET step sizes"},marion1:{frequencies:[261.6255653006,262.79353657426,272.52663052146,280.31310567921,286.15296204753,294.32876096318,305.22982618403,311.45900631024,327.03195662575,336.37572681506,343.38355445704,350.39138209902,367.91095120397,373.75080757229,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,476.92160341255,490.54793493862,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 1"},marion10:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,290.69507255622,296.75121990114,305.22982618403,317.94773560837,327.03195662575,339.14425131559,356.10146388137,363.36884069528,370.93902487643,381.53728273004,400.61414686654,406.97310157871,408.78994578219,423.93031414449,436.04260883433,445.12682985172,457.84473927605,474.80195184183,476.92160341255,484.4917875937,508.71637697339,523.2511306012],description:"Marion's 7-limit Scale # 10"},marion15:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,299.00064605783,313.95067836072,320.35783506196,327.03195662575,336.37572681506,353.19451315581,358.80077526939,360.4025644447,373.75080757229,384.42940207435,392.4383479509,403.65087217807,418.60090448096,420.46965851882,427.14378008261,448.50096908674,461.31528248922,470.92601754108,480.53675259294,504.56359022259,523.2511306012],description:"Marion's 7-limit Scale # 15"},marion19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,309.04519901133,313.95067836072,315.35224388912,327.03195662575,336.37572681506,343.38355445704,353.19451315581,366.27579142084,367.91095120397,373.75080757229,392.4383479509,403.65087217807,412.06026534844,420.46965851882,441.49314144476,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Marion's 7-limit Scale # 19"},marion26:{frequencies:[261.6255653006,271.31540105247,279.06726965397,284.8811711051,293.02063313667,303.87324917877,305.22982618403,310.07474405997,325.57848126297,334.88072358477,341.85740532612,348.83408706747,366.27579142084,379.84156147346,390.69417751556,406.97310157871,418.60090448096,427.32175665765,434.10464168396,455.80987376816,465.11211608996,474.80195184183,488.36772189445,512.78610798918,523.2511306012],description:"Marion's 7-limit Scale # 26"},marissing:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Peter van Marissing, just scale, Mens en Melodie, 1979"},"marpurg-1":{frequencies:[261.6255653006,276.86979852503,294.32876096318,311.47852302926,329.62755691287,348.83408706747,370.83100115625,392.4383479509,415.30469757995,439.50340943686,467.21778431035,494.44133512215,523.2511306012],description:"Other temperament by Marpurg, 3 fifths 1/3 Pyth. comma flat"},"marpurg-t1":{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg's temperament nr.1, Kirnbergersche Temperatur (1766)"},"marpurg-t11":{frequencies:[261.6255653006,278.12325072816,294.32876096318,311.47852302926,331.11985608357,348.83408706747,371.66947115233,392.4383479509,416.24372513446,441.49314144476,466.16376151809,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.11, 6 tempered fifths"},"marpurg-t12":{frequencies:[261.6255653006,279.06706247425,294.66131982972,310.42509491746,330.74614861362,349.22823143301,372.08941681833,392.88175996935,418.60059350213,441.99197952365,465.63764214343,496.11922267243,523.2511306012],description:"Marpurg's temperament nr.12, 4 tempered fifths"},"marpurg-t2":{frequencies:[261.6255653006,278.75210322491,294.32876096318,313.59611581451,331.11985608357,348.83408706747,371.66947115233,392.4383479509,418.12815462835,441.49314144476,470.39417348663,495.55929511749,523.2511306012],description:"Marpurg's temperament nr.2, 2 tempered fifths, Neue Methode (1790)"},"marpurg-t3":{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,331.11985608357,348.83408706747,368.74309237173,392.4383479509,414.83597850347,441.49314144476,465.11211608996,491.65745674141,523.2511306012],description:"Marpurg's temperament nr.3, 2 tempered fifths"},"marpurg-t4":{frequencies:[261.6255653006,276.86979852503,294.32876096318,310.07474405997,331.11985608357,348.83408706747,369.15973155124,392.4383479509,415.30469757995,441.49314144476,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.4, 2 tempered fifths"},"marpurg-t5":{frequencies:[261.6255653006,277.80935667884,294.32876096318,312.53552595124,331.11985608357,348.83408706747,370.41247575694,392.4383479509,416.71403480995,441.49314144476,468.80328869252,493.88330125613,523.2511306012],description:"Marpurg's temperament nr.5, 2 tempered fifths"},"marpurg-t7":{frequencies:[261.6255653006,276.86979852503,293.00227310437,310.07474405997,329.62755691287,348.83408706747,369.15973155124,390.66969766777,415.30469757995,439.50340943686,465.11211608996,492.21297564769,523.2511306012],description:"Marpurg's temperament nr.7, 3 tempered fifths"},"marpurg-t8":{frequencies:[261.6255653006,277.49581689502,293.33333347996,311.12698372208,329.99999983505,348.83408706747,369.99442271164,391.11111150212,414.83597850347,440,466.69047534984,493.32589719545,523.2511306012],description:"Marpurg's temperament nr.8, 4 tempered fifths"},"marpurg-t9":{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,350.01785633742,371.24999944327,392.4383479509,416.24372513446,441.49314144476,468.27419030811,496.67978412536,523.2511306012],description:"Marpurg's temperament nr.9, 4 tempered fifths"},marpurg:{frequencies:[261.6255653006,277.49581689502,293.83071040301,311.12698372208,329.99999983505,349.42557141756,369.99442271164,392.4383479509,415.53937569366,440,466.69047534984,494.16238213869,523.2511306012],description:"Marpurg, Versuch ueber die musikalische Temperatur (1776), p. 153"},marpurg1:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg's Monochord no.1 (1776)"},marpurg3:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"Marpurg 3"},marpurg4:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Marpurg 4, also Yamaha Pure Minor"},marsh:{frequencies:[261.6255653006,275.50659558095,293.15632631094,311.93674864629,328.48713220126,349.53094576004,368.07595926604,391.65594491223,412.43597848639,438.85779226656,466.97226207056,491.74834273545,523.2511306012],description:"John Marsh's meantone temperament (1809)"},marsh2:{frequencies:[261.6255653006,277.22760066578,293.66431501254,311.21660561883,329.70790803338,349.18845812715,369.99117208793,391.90679138833,415.30984563838,439.96491544382,466.29335337935,494.03030700757,523.2511306012],description:"John Marsh's quasi-equal temperament (1840)"},mavila12:{frequencies:[261.6255653006,256.98292999787,287.53945699376,321.72930260925,316.02010771872,353.59644178868,347.32175377489,388.62000642034,381.72381344999,427.11263899087,477.89842030218,469.41794908116,525.2340355968],description:"A 12-note mavila scale (for warping meantone-based music)"},mavila9:{frequencies:[261.6255653006,287.53945699376,316.02010771872,321.72930260925,353.59644178868,388.62000642034,427.11263899087,434.82882549415,477.89842030218,525.2340355968],description:"9-note scale of mavila temperament (TOP tuning)"},mavlim1:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,523.2511306012],description:"First 27/25&135/128 scale"},mbira_banda:{frequencies:[261.6255653006,291.13134764929,327.53979283172,368.50142299854,404.88256627495,443.57258128492,480.10063929961,555.00605988575],description:"Mubayiwa Bandambira's tuning of keys R2-R9 from Berliner: The soul of mbira."},mbira_banda2:{frequencies:[261.6255653006,321.16993719469,360.29289210659,380.8360868427,422.32008370967,461.34206956593,587.32953583482,513.96502576833,761.67217368541,711.48673390068,849.04255025658,936.10488897708,1046.50286568598,633.49659152295,1055.60951665979,1174.65975017952,1321.5609185619,1486.83332446121,1633.62433483289,1789.73120457747,1937.11498804338,2239.34414798534],description:"Mubayiwa Bandambira's Mbira DzaVadzimu tuning B1=114 Hz"},mbira_gondo:{frequencies:[261.6255653006,315.28798447451,345.21700307457,379.51849407657,422.56409582244,461.07566488503,564.05539604512,516.94239487354,778.57545143809,697.24717811406,842.69088701475,926.42243447898,1029.11884353824,628.3943418294,1040.47545270591,1153.813137635,1308.64724593201,1415.59600512246,1572.51770682594,1715.83353717518,1883.05646656025,2103.91477035149],description:"John Gondo's Mbira DzaVadzimu tuning B1=122 Hz"},mbira_kunaka:{frequencies:[261.6255653006,292.98704147282,325.27731021818,350.44066402496,386.59871897734,434.19311733646,479.82340237272,507.76825077597],description:"John Kunaka's mbira tuning of keys R2-R9"},mbira_kunaka2:{frequencies:[261.6255653006,340.26769547546,358.83903996308,405.11650317313,448.98591596033,490.75518955849,622.61349925697,541.70354187177,817.28364083393,724.3415782324,907.35693646861,997.5144154576,1094.73088724383,673.88551872153,1085.91380691742,1216.08403680913,1350.10935126711,1454.55340013417,1604.63250673428,1802.17976955899,1991.5747030301,2107.56373750553],description:"John Kunaka's Mbira DzaVadzimu tuning B1=113 Hz"},mbira_mude:{frequencies:[261.6255653006,289.28740724512,309.15639683494,364.68988616898,372.56793743951,408.17001145418,507.1819925915,459.74594725879,689.63684605432,610.50517472746,760.79276355093,824.39562982862,887.65774573556,562.75365576207,888.68380073365,1015.53708814899,1126.80895076279,1206.28956516212,1365.00817887311,1507.58874420517,1666.02447560859,1935.99638964471],description:"Hakurotwi Mude's Mbira DzaVadzimu tuning B1=132 Hz"},mbira_mujuru:{frequencies:[261.6255653006,281.37682788104,301.05008478933,329.43721154897,394.9500460767,419.64523240241,533.01280425363,488.77489658044,700.88132804992,602.10016957865,765.19999119503,809.29752893,942.6160133907,577.57308891646,937.72844143307,1046.50286568598,1145.18149427149,1243.7900049313,1411.51350174391,1540.15576038017,1658.34356815416,1904.9365287586],description:"Ephat Mujuru's Mbira DzaVadzimu tuning, B1=106 Hz"},mbira_zimb:{frequencies:[261.6255653006,276.86260193655,305.95868600104,343.62544191138,379.08031027329,408.40584780369,453.41648894489,507.76825077597],description:"Shona mbira scale"},mboko_bow:{frequencies:[261.6255653006,347.61817721989,375.37611551499],description:"African Mboko Mouth Bow (chordophone, single string, plucked)"},mboko_zither:{frequencies:[261.6255653006,294.68429813772,319.3201344739,354.92237405774,396.55020354877,418.67676528474,472.67116512585,513.07516347663],description:"African Mboko Zither (chordophone; idiochordic palm fibre, plucked)"},mcclain:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,331.11985608357,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,510.98743222773,523.2511306012],description:"McClain's 12-tone scale, see page 119 of The Myth of Invariance"},mcclain_18:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,319.36714514233,327.03195662575,331.11985608357,344.91651675372,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,441.49314144476,459.88868900496,490.54793493862,496.67978412536,510.98743222773,523.2511306012],description:"McClain's 18-tone scale, see page 143 of The Myth of Invariance"},mcclain_8:{frequencies:[261.6255653006,294.32876096318,327.03195662575,367.91095120397,392.4383479509,408.78994578219,441.49314144476,490.54793493862,523.2511306012],description:"McClain's 8-tone scale, see page 51 of The Myth of Invariance"},mccoskey_22:{frequencies:[261.6255653006,270.06509966514,279.06726965397,287.78812183066,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,382.37582620857,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,506.89953276991,523.2511306012],description:"31-limit rational interpretation of 22-tET, Marion McCoskey"},mclaren_bar:{frequencies:[261.6255653006,281.77400528964,292.14326370913,304.76756192248,325.50548568708,328.66136118639,353.45752508165,360.67039921732,379.1552038283,397.63971531932,405.75513620619,436.411067852,476.98680497297,521.16951219839],description:"Metal bar scale. see McLaren, Xenharmonicon 15, pp.31-33"},mclaren_cps:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,367.91095120397,392.4383479509,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"2)12 [1,2,3,4,5,6,8,9,10,12,14,15] a degenerate CPS"},mclaren_harm:{frequencies:[261.6255653006,279.06726965397,299.00064605783,304.4370214407,307.2300216374,348.83408706747,380.54627680087,389.39619021485,393.97732186443,398.6675280771,465.11211608996,523.2511306012],description:'from "Wilson part 9", claimed to be Schlesingers Dorian Enharmonic, prov. unkn'},mclaren_rath1:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,372.08969287196,380.54627680087,389.39619021485,398.6675280771,492.47165233054,507.3950357345,523.2511306012],description:"McLaren Rat H1"},mclaren_rath2:{frequencies:[261.6255653006,279.06726965397,299.00064605783,334.88072358477,341.71502406609,348.83408706747,380.54627680087,389.39619021485,398.6675280771,440.63253103259,452.54151835779,465.11211608996,523.2511306012],description:"McLaren Rat H2"},mean10:{frequencies:[261.6255653006,272.18829429226,292.14313377277,313.56091500001,326.220453695,350.13653284039,364.27275363262,390.97854693193,406.76370320307,436.58461973079,468.59178605305,487.51045723915,523.2511306012],description:"3/10-comma meantone scale"},mean11:{frequencies:[261.6255653006,272.83457350033,292.34115464648,313.24237654315,326.6628419965,350.01792709981,365.01399145768,391.11103243201,407.86767761879,437.02858581415,468.2743796482,488.33699124025,523.2511306012],description:"3/11-comma meantone scale. A.J. Ellis no. 10"},mean11ls_19:{frequencies:[261.6255653006,272.93479580544,280.25721516838,292.37183188538,305.01012622427,313.1930753928,326.73140514978,340.85495140859,349.99956372811,365.12891753666,374.92476290643,391.13155279262,408.03891236124,418.98596425085,437.09738047696,455.99169236578,468.2252457596,488.46511500326,509.57988860269,523.2511306012],description:"Least squares appr. to 3/2, 5/4, 7/6, 15/14 and 11/8, Petr Par\xEF\xBF\xBDzek"},mean13:{frequencies:[261.6255653006,273.83184954717,292.64606374809,312.75295135888,327.34460995374,349.8355370417,366.15730590163,391.31494185909,409.57195510156,437.7124891801,467.78648270341,489.61131479929,523.2511306012],description:"3/13-comma meantone scale"},mean14:{frequencies:[261.6255653006,274.22463192287,292.76593693997,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"3/14-comma meantone scale (Giordano Riccati, 1762)"},mean14_15:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,349.76390952171,366.60744235102,391.39507854003,410.24343789088,417.8586951835,437.98145930734,467.59494724206,490.11285326462,523.2511306012],description:"15 of 3/14-comma meantone scale"},mean14_19:{frequencies:[261.6255653006,274.22463192287,279.31500250577,292.76593693997,306.86462618694,312.56088569186,327.61283758281,343.38964426558,349.76390952171,366.60744235102,373.41269440635,391.39507854003,410.24343789088,417.8586951835,437.98145930734,459.07327263526,467.59494724206,490.11285326462,513.71515101261,523.2511306012],description:"19 of 3/14-comma meantone scale"},mean14_7:{frequencies:[261.6255653006,292.76593693997,327.61283758281,349.76390952171,391.39507854003,437.98145930734,490.11285326462,523.2511306012],description:"Least squares appr. of 5L+2S to Ptolemy's Intense Diatonic scale"},mean14a:{frequencies:[261.6255653006,274.24690838881,292.77273178776,312.55000460003,327.62804498858,349.75985073129,366.63296888199,391.39962048672,410.28152481852,437.9967071602,467.58409501387,490.1412915133,523.2511306012],description:'fifth of sqrt(5/2)-1 octave "recursive" meantone, Paul Hahn'},mean16:{frequencies:[261.6255653006,274.864106667,292.9608347655,312.24903186879,328.04917632434,349.64754658398,367.34009701877,391.52533508436,411.33694767869,438.41888642025,467.28387071703,490.92894854125,523.2511306012],description:"3/16-comma meantone scale"},mean17:{frequencies:[261.6255653006,273.72412433093,292.61316553779,312.80569569783,327.2710181906,349.85520131118,366.03383354947,391.29294726693,409.38781813791,437.63868343995,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean17_17:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,523.2511306012],description:"4/17-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},mean17_19:{frequencies:[261.6255653006,273.72412433093,279.67971414776,292.61316553779,306.14471057197,312.80569569783,327.2710181906,342.40527209253,349.85520131118,366.03383354947,373.99786656393,391.29294726693,409.38781813791,418.29512920081,437.63868343995,457.8767570375,467.83907547741,489.47372981579,512.10885267608,523.2511306012],description:"4/17-comma meantone scale, least squares error of 5/4 and 3/2"},mean18:{frequencies:[261.6255653006,272.71477685134,292.30447317753,313.30134186202,326.58087306932,350.03988839382,364.87661266094,391.0864943589,407.66301227525,436.94633423564,468.33314368944,488.18382342185,523.2511306012],description:"5/18-comma meantone scale (Smith). 3/2 and 5/3 eq. beat. A.J. Ellis no. 9"},mean19:{frequencies:[261.6255653006,273.06170311607,292.41066686775,313.13068664042,326.81820677503,349.97632128221,365.27443420834,391.15752841841,408.25574814862,437.18446858874,468.16306089008,488.62733218513,523.2511306012],description:"5/19-comma meantone scale, fifths beats three times third. A.J. Ellis no. 11"},mean19r:{frequencies:[261.6255653006,273.04332227389,292.40504357126,313.13971948727,326.80563693258,349.97968716666,365.25335892465,391.15376651139,408.22434232755,437.17185753972,468.17206422213,488.60384173026,523.2511306012],description:"Approximate 5/19-comma meantone with 19/17 tone, Petr Parizek, 2002"},mean23:{frequencies:[261.6255653006,274.15058593695,292.74334833321,312.59706303545,327.56228503462,349.77740346966,366.52259116395,391.37997903742,410.11684180717,437.93077103284,467.63102771476,490.01832104213,523.2511306012],description:"5/23-comma meantone scale, A.J. Ellis no. 4"},mean23six:{frequencies:[261.6255653006,273.11604376732,292.42729246507,313.10398392891,326.85537164611,349.96637341293,365.33674088125,391.16864715511,408.34860251967,437.22175336101,468.13644404983,488.69678846289,523.2511306012],description:"6/23-comma meantone scale"},mean25:{frequencies:[261.6255653006,272.66208311698,292.28833573479,313.32728859832,326.54481265413,350.04955123355,364.81618195011,391.07569872695,407.57299290994,436.91015056532,468.35900068872,488.11644468937,523.2511306012],description:"7/25-comma meantone scale, least square weights 3/2:0 5/4:1 6/5:1"},mean26:{frequencies:[261.6255653006,272.91754119498,292.36655103694,313.20156187458,326.7196004604,350.00272362315,365.10913291207,391.12802157824,408.00943064927,437.08553692506,468.23370304224,488.44305713046,523.2511306012],description:"7/26-comma meantone scale (Woolhouse 1835). Almost equal to meaneb742"},mean26_21:{frequencies:[261.6255653006,272.91754592428,280.26986822267,292.36655272572,304.98534036063,313.20156006546,326.71960423481,335.52133892506,340.8210986211,350.00272362315,365.10913712997,374.9450750913,391.12802157824,408.00943771953,419.00109777107,437.08553944976,455.95052092314,468.23370033762,488.44306277317,501.60158217053,509.52467838008,523.2511306012],description:"21 of 7/26-comma meantone scale (Woolhouse 1835)"},mean27:{frequencies:[261.6255653006,273.15429014256,292.43899158768,313.08519355925,326.88152513903,349.9593710588,365.38059276675,391.17647406766,408.41395592075,437.24799400905,468.11771609009,488.74567091648,523.2511306012],description:"7/27-comma meantone scale, least square weights 3/2:2 5/4:1 6/5:1"},mean29:{frequencies:[261.6255653006,273.57932033947,292.56893127899,312.87664195194,327.1720749345,349.88164908166,365.86785468743,391.26336919078,409.14031659695,437.53944680455,467.90980928584,489.28875967044,523.2511306012],description:"7/29-comma meantone scale, least square weights 3/2:4 5/4:1 6/5:1"},mean2sev:{frequencies:[261.6255653006,272.52663052146,292.24684137387,313.39402123097,326.45210604021,350.07440004945,364.66083404534,391.04793957621,407.34160211012,436.81711699543,468.42550014967,487.94322738789,523.2511306012],description:"2/7-comma meantone scale. Zarlino's temperament (1558). See also meaneb371"},mean2sev_15:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,350.07447082328,364.66081719444,391.04786051887,407.34165622677,419.34452602299,436.81710690282,468.42541627199,487.94330348661,523.2511306012],description:"15 of 2/7-comma meantone scale"},mean2sev_19:{frequencies:[261.6255653006,272.52663052146,280.55692507618,292.24689370448,304.42377254813,313.39402847191,326.45203249943,340.0543130973,350.07447082328,364.66081719444,375.40603866065,391.04786051887,407.34165622677,419.34452602299,436.81710690282,455.01770749831,468.42541627199,487.94330348661,508.27414914183,523.2511306012],description:"19 of 2/7-comma meantone scale"},mean2sev_31:{frequencies:[261.6255653006,264.72620698393,272.52663052146,280.55692507618,283.88190679319,292.24689370448,300.8583415146,304.42377254813,313.39402847191,317.10820138491,326.45203249943,336.07138073182,340.0543130973,350.07447082328,354.22315547012,364.66081719444,375.40603866065,379.85514366424,391.04786051887,395.6823437549,407.34165622677,419.34452602299,424.31412061457,436.81710690282,449.68851049921,455.01770749831,468.42541627199,473.97693555703,487.94330348661,502.32108537715,508.27414914183,523.2511306012],description:"31 of 2/7-comma meantone scale"},mean2seveb:{frequencies:[261.6255653006,274.26749945295,292.59076110537,312.44357330613,327.42660602987,349.76102048238,366.6169314736,391.04794861134,410.01084835752,437.49574139527,467.27496094916,489.74950989452,523.2511306012],description:'"2/7-comma" meantone with equal beating fifths. A.J. Ellis no. 8'},mean2sevr:{frequencies:[261.6255653006,272.52663052146,292.24289114742,313.39346366789,326.45152465405,350.07234194042,364.65868952128,391.04531121882,407.33886585294,436.81651812993,468.41855142334,487.93599106598,523.2511306012],description:"Rational approximation to 2/7-comma meantone, 1/1 = 262.9333"},mean9:{frequencies:[261.6255653006,274.03547926168,292.70827332867,306.59245933664,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"2/9-comma meantone scale, Lemme Rossi, Sistema musico (1666)"},mean94:{frequencies:[261.6255653006,268.79084150406,291.09659021292,315.25339315665,323.88740273232,350.76536842075,360.37196303797,390.27761906502,400.96635635801,434.24075936811,470.27645613296,483.15616342113,523.2511306012],description:"4/9-comma meantone scale"},mean9_15:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,349.79835961887,366.39065074918,391.35653176554,409.92008797511,418.0235894185,437.85206746661,467.68706357679,489.87127257422,523.2511306012],description:"15 of 2/9-comma meantone scale"},mean9_19:{frequencies:[261.6255653006,274.03547926168,279.45274708261,292.70827332867,306.59245933664,312.65343270838,327.48360691354,343.0174228875,349.79835961887,366.39065074918,373.63364091796,391.35653176554,409.92008797511,418.0235894185,437.85206746661,458.62082212371,467.68706357679,489.87127257422,513.10776453427,523.2511306012],description:"19 of 2/9-comma meantone scale"},mean9_31:{frequencies:[261.6255653006,268.72322665693,274.03547926168,279.45274708261,287.03404351137,292.70827332867,298.49467410529,306.59245933664,312.65343270838,321.13524775754,327.48360691354,333.95746354843,343.0174228875,349.79835961887,359.28803828513,366.39065074918,373.63364091796,383.76997851754,391.35653176554,401.97367512027,409.92008797511,418.0235894185,429.36393755067,437.85181455341,446.50763144636,458.62082212371,467.68706357679,480.3749841712,489.87127257422,499.55528826613,513.10776453427,523.2511306012],description:"31 of 2/9-comma meantone scale"},meaneb1071:{frequencies:[261.6255653006,273.45959631537,292.5323192343,305.76452283047,327.09038632535,349.9034421565,365.73073124967,391.23900009103,408.93579686983,437.45744778434,457.24482979639,489.13584427285,523.2511306012],description:"Equal beating 7/4 = 3/2 same."},meaneb1071a:{frequencies:[261.6255653006,273.94115519525,292.67936294368,306.45675889694,327.41929816594,349.81553441422,366.28252094772,391.33731744348,409.75863641311,437.78732645584,458.39517452459,489.75074612717,523.2511306012],description:"Equal beating 7/4 = 3/2 opposite."},meaneb341:{frequencies:[261.6255653006,272.43747957464,292.21954801903,313.43802026715,326.39113133433,350.09085029289,364.55867287416,391.02956482064,407.18921698842,436.75579855003,468.46925117002,487.82916876009,523.2511306012],description:"Equal beating 6/5 = 5/4 same. Almost 4/15 Pyth. comma"},meaneb371:{frequencies:[261.6255653006,272.52577151658,292.24657972098,313.39444482621,326.45151771442,350.07455777399,364.65985037488,391.0477633913,407.34013625771,436.81652657765,468.42591953828,487.94213100406,523.2511306012],description:"Equal beating 6/5 = 3/2 same. Practically 2/7-comma (Zarlino)"},meaneb371a:{frequencies:[261.6255653006,269.83862220337,291.42039690163,314.72828847419,324.6081803116,350.57044084899,361.57569171511,390.49462500658,421.72650333798,434.96526321606,469.75391665508,484.50062400899,523.2511306012],description:"Equal beating 6/5 = 3/2 opposite. Almost 2/5-comma"},meaneb381:{frequencies:[261.6255653006,275.92799893014,293.28437056932,311.73248946737,328.77414682856,349.45463702831,368.55847249214,391.74146894101,416.38271791821,439.14534885862,466.76838786866,492.28548089506,523.2511306012],description:"Equal beating 6/5 = 8/5 same. Almost 1/7-comma"},meaneb451:{frequencies:[261.6255653006,274.36682021224,292.8092284668,312.49148032108,327.70992276921,349.73795145032,366.77030983847,391.42412846541,410.48661799548,438.07873640926,467.5258138363,490.29448158868,523.2511306012],description:"Equal beating 5/4 = 4/3 same, 5/24 comma meantone. A.J. Ellis no. 6"},meaneb471:{frequencies:[261.6255653006,272.3284467197,292.18612898941,313.49179640307,326.31648163178,350.11087068539,364.43361138613,391.00720457415,407.00321492741,436.68087780422,468.52283272721,487.68970701588,523.2511306012],description:"Equal beating 5/4 = 3/2 same. Almost 5/17-comma"},meaneb471a:{frequencies:[261.6255653006,274.14912748586,292.7429036132,312.59777626068,327.56128980523,349.7776701617,366.52092076205,391.37968062521,410.11434970273,437.92977184699,467.63173811584,490.01645860508,523.2511306012],description:"Equal beating 5/4 = 3/2 opposite. Almost 1/5 Pyth. Gottfried Keller (1707)"},meaneb471b:{frequencies:[261.6255653006,272.31089540773,292.18072491748,313.50040506268,326.30440921209,350.11400731728,364.41338872146,391.00370158472,406.97310157871,436.668886633,468.53149836075,487.66729542944,523.2511306012],description:"21/109-comma meantone with 9/7 major thirds, almost equal beating 5/4 and 3/2"},meaneb472:{frequencies:[261.6255653006,270.83769079127,291.72826852127,314.23020335825,325.29440843388,350.38540704884,362.72286472858,390.7008399429,404.45761497645,435.65472502222,469.25816799182,485.78126704788,523.2511306012],description:"Beating of 5/4 = twice 3/2 same. Almost 5/14-comma"},meaneb472_19:{frequencies:[261.6255653006,270.8378472333,281.80541953687,291.72826852127,302.00051792575,314.23002185182,325.29459633135,336.74877333101,350.38540704884,362.72307424558,377.41153667283,390.7008399429,404.45808222448,420.83660282593,435.65497666633,450.99513069838,469.25816799182,485.78154764623,502.88674365212,523.2511306012],description:"Beating of 5/4 = twice 3/2 same, 19 tones"},meaneb472a:{frequencies:[261.6255653006,274.74648495017,292.92493846141,312.30633997417,327.96897748493,349.66886860972,367.20529370531,391.50146074488,411.13561642091,438.33843670622,467.34113372786,490.7787182415,523.2511306012],description:"Beating of 5/4 = twice 3/2 opposite. Almost 3/17-comma"},meaneb591:{frequencies:[261.6255653006,273.06215106005,292.41085266114,313.13038820279,326.81843330822,349.97621009739,365.27491737756,391.15765268623,418.87439289145,437.18488525956,468.16276342643,488.62782610925,523.2511306012],description:"Equal beating 4/3 = 5/3 same."},meaneb732:{frequencies:[261.6255653006,272.00548436883,292.08705896894,313.65121264041,326.09523618955,350.1701397801,364.06303937825,390.94102347986,406.4514961644,436.45893055948,468.68174619223,487.27655969467,523.2511306012],description:"Beating of 3/2 = twice 6/5 same. Almost 4/13-comma"},meaneb732_19:{frequencies:[261.6255653006,272.00553778846,280.94077405591,292.08707584055,303.67560621907,313.65118727632,326.09527197795,339.03307470248,350.17012966679,364.06310036266,376.02237826726,390.94103477068,406.45158772689,419.80330474394,436.45896585468,453.77543893118,468.68171912011,487.27662724555,506.60928680033,523.2511306012],description:"Beating of 3/2 = twice 6/5 same, 19 tones"},meaneb732a:{frequencies:[261.6255653006,270.68848625127,291.6822692306,314.3042667302,325.1920204578,350.41293324447,362.5515203525,390.67014898736,404.20304509584,435.55206635241,469.33217160858,485.59021720901,523.2511306012],description:"Beating of 3/2 = twice 6/5 opposite. Almost 1/3 Pyth. comma"},meaneb742:{frequencies:[261.6255653006,272.89343543801,292.35917287023,313.21341909223,326.70311046689,350.00714105462,365.08148980199,391.12308516115,407.96824372307,437.06899032128,468.24551969328,488.41224041213,523.2511306012],description:"Beating of 3/2 = twice 5/4 same."},meaneb742a:{frequencies:[261.6255653006,273.78850133971,292.63287562287,312.77409391616,327.31510698093,349.84341999552,366.10759179471,391.30612443552,409.49789158088,437.68290117536,467.80756449982,489.55615570194,523.2511306012],description:"Beating of 3/2 = twice 5/4 opposite. Almost 3/13-comma, 3/14 Pyth. comma"},meaneb781:{frequencies:[261.6255653006,273.88372205101,292.66195046404,312.72748571568,327.38015167213,349.82604176358,366.21672762941,391.32556326448,418.15568884829,437.74813244966,467.76108961433,489.67748280644,523.2511306012],description:"Equal beating 3/2 = 8/5 same."},meaneb891:{frequencies:[261.6255653006,272.7426257605,292.31307409948,313.28760473417,326.59990179186,350.03483972175,364.90860969063,391.092135133,419.1546662649,436.96549358815,468.31936361194,488.21959184068,523.2511306012],description:"Equal beating 8/5 = 5/3 same. Almost 5/18-comma"},meaneight:{frequencies:[261.6255653006,276.08926119362,293.33333347996,311.65444160511,328.88393162803,349.42547049952,368.74309237173,391.77416758435,413.43299207996,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8 Pyth. comma meantone scale"},meanfifth:{frequencies:[261.6255653006,274.56546814423,292.86978442859,312.39456569414,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"1/5-comma meantone scale (Verheijen)"},meanfifth2:{frequencies:[261.6255653006,279.06726965397,292.86986732103,312.39452419152,327.84547867349,349.70184487387,366.99801003998,391.46454285105,417.56218018201,438.2147004401,467.42901237995,490.54793493862,523.2511306012],description:"1/5-comma meantone by John Holden (1770)"},meanfifth_19:{frequencies:[261.6255653006,274.56546814423,279.06726965397,292.86978442859,307.35519222791,312.39456569414,327.84548435462,344.06059968708,349.70179235499,366.99791252626,373.01539917593,391.46460164194,410.82629477826,417.56217294621,438.21464222188,459.88868900496,467.42914467878,490.54793493862,514.81033759999,523.2511306012],description:"19 of 1/5-comma meantone scale"},meanfifth_43:{frequencies:[261.6255653006,265.91515911649,270.13633240739,274.56546814423,279.06726965397,283.49717461664,288.14537375445,292.86978442859,297.67175429757,302.39711110066,307.35519222791,312.39456569414,317.35355938713,322.556865357,327.84548435462,333.22081516619,338.51040756711,344.06059968708,349.70179235499,355.43547760922,361.07770857381,366.99791252626,373.01539917593,378.93660287884,385.14971481892,391.46460164194,397.88302689184,404.19904307077,410.82629477826,417.56217294621,424.19061149626,431.14564594215,438.21464222188,445.39957775044,452.46991103879,459.88868900496,467.42914467878,475.09307907327,482.63477102771,490.54793493862,498.59100550039,506.50570672499,514.81033759999,523.2511306012],description:"Complete 1/5-comma meantone scale"},meanfiftheb:{frequencies:[261.6255653006,275.80023422757,293.11157312801,311.73372470712,328.53333183909,349.48325286892,368.3828117434,391.46459711956,412.7266004334,438.69360944226,466.62683936965,491.82624824197,523.2511306012],description:'"1/5-comma" meantone with equal beating fifths'},meangold:{frequencies:[261.6255653006,272.97231199113,292.38331430233,313.17462880702,326.75706743029,349.99269211627,365.17193449866,391.13923210785,408.10300926149,437.12312635029,468.20685771475,488.51307131873,523.2511306012],description:"Meantone scale with Blackwood's R = phi, and diat./chrom. ST = phi, ~4/15-comma"},meanhalf:{frequencies:[261.6255653006,267.49544939623,290.69507255622,315.90677595028,322.99452506247,351.00752840096,358.88280562497,390.00836666198,398.75867291663,433.34262909025,470.92601754108,481.49180950675,523.2511306012],description:"1/2-comma meantone scale"},meanhar2:{frequencies:[261.6255653006,273.08769296879,292.41861893027,305.22982618403,326.83598255713,349.97156260351,365.30423365264,391.16284711627,408.30015740759,437.20230245522,456.35665612784,488.66055322307,523.2511306012],description:"1/9-Harrison's comma meantone scale"},meanhar3:{frequencies:[261.6255653006,274.22153683641,292.76499331753,306.86017365004,327.61072570921,343.38355445704,366.60389537541,391.39444778107,410.23814647641,437.9793418028,459.06587176894,490.10890120058,523.2511306012],description:"1/11-Harrison's comma meantone scale"},meanharris:{frequencies:[261.6255653006,273.71072489962,292.60907359238,306.12544311476,327.26186315247,349.85764856047,366.01847563765,391.29021017831,409.36491649663,437.62950220286,457.84473927605,489.45661357347,523.2511306012],description:"1/10-Harrison's comma meantone scale"},meanhsev:{frequencies:[261.6255653006,265.69493617871,271.18768033644,275.4057836544,279.68949451567,284.03983498254,289.91182549392,294.4211659268,299.00064605783,305.1819244006,309.92877868547,314.74946639166,321.25632089757,326.25319922315,331.32779988873,336.4813337451,343.43745382287,348.77934146077,354.20431777528,361.52682728594,367.15008027699,372.86080050545,378.66034414493,386.48843610249,392.49994642563,398.60496085649,406.84537033315,413.17351844213,419.60009331305,426.12662827999,434.93599657884,441.70106893056,448.57136642871,457.84473927605,464.96613926104,472.19830582795,481.96011959425,489.45661357347,497.06970936204,504.80122352123,515.23704142273,523.2511306012],description:"1/14-septimal schisma tempered meantone scale"},meanhskl:{frequencies:[261.6255653006,275.0605216927,293.02063313667,312.15345277639,328.18310911307,349.61186736411,367.56508220664,391.56529173291,411.67289207144,438.55312706018,467.18850946536,491.17950266504,523.2511306012],description:"Half septimal kleisma meantone"},meanlst357_19:{frequencies:[261.6255653006,273.71260157103,279.68803244686,292.60971924044,306.12821574316,312.81131320311,327.26311833974,342.38279105966,349.85736361975,366.02068710341,374.01129952811,391.29052886394,409.36829077259,418.30522648629,437.63082426891,457.84952434322,467.84458559023,489.45917220726,512.07206464598,523.2511306012],description:"19 of mean-tone scale, least square error in 3/2, 5/4 and 7/4"},meanmalc:{frequencies:[261.6255653006,279.16226462633,292.82999876562,312.45832383396,327.75622702832,349.72564885805,366.84815356577,391.43789792004,417.67588698136,438.12522309524,467.49265244264,490.38100841085,523.2511306012],description:"Meantone approximation to Malcolm's Monochord, 3/16 Pyth. comma"},meannkleis:{frequencies:[261.6255653006,277.55670411237,293.77792781181,311.66693695111,329.88161264913,349.96913477239,370.42222384066,392.07096746411,415.94530241673,440.25439013544,467.06275302556,494.35929617392,523.2511306012],description:"1/5 kleisma tempered meantone scale"},meanpi:{frequencies:[261.6255653006,275.38456311745,294.43027471344,309.91448590794,326.2128298123,348.77404705732,367.11600789597,392.50613131028,413.14795414706,434.87532652316,464.95175460796,489.40347900327,523.2511306012],description:"Pi-based meantone with Harrison's major third by Erv Wilson"},meanpi2:{frequencies:[261.6255653006,287.5806999253,296.7710142931,326.2128298123,336.6377243117,370.0346037192,381.85992557156,394.06315326167,433.15704755212,446.99959483943,491.34516423327,507.04724898227,523.2511306012],description:"Pi-based meantone by Erv Wilson analogous to 22-tET"},meanpkleis:{frequencies:[261.6255653006,274.33428876064,294.88060759996,309.2047285643,324.22465805628,348.50752497012,365.43662717622,392.80607455881,411.88702081614,442.73537947933,464.24169412807,486.7926967469,523.2511306012],description:"1/5 kleisma positive temperament"},meanquar:{frequencies:[261.6255653006,273.37431312998,292.50627485027,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale. Pietro Aaron's temp. (1523). 6/5 beats twice 3/2"},meanquar_14:{frequencies:[261.6255653006,273.37431312998,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split D#/Eb and G#/Ab, Otto Gibelius (1666)"},meanquar_15:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,418.60090448096,437.39890198442,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb and G#/Ab"},meanquar_16:{frequencies:[261.6255653006,273.37431312998,279.93548123753,292.50629850443,305.64179898843,312.97722776199,327.03195662575,349.91920725962,365.63293356166,391.22137338448,408.78994578219,418.60090448096,437.39882871549,457.04097849371,468.01000025525,489.02679755603,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, G#/Ab and A#/Bb"},meanquar_17:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177250659,312.977175335,327.03195662575,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39889945791,457.04105241293,468.01003810189,489.02683710225,523.2511306012],description:"1/4-comma meantone scale with split C#/Db, D#/Eb, F#/Gb, G#/Ab and A#/Bb"},meanquar_19:{frequencies:[261.6255653006,273.37431312998,279.93529690293,292.50627485027,305.64177427204,312.977175335,327.03195662575,341.71789064962,349.91912034749,365.63284274659,374.40803131735,391.22147055517,408.78994578219,418.60090448096,437.39890198442,457.04105241293,468.01003810189,489.02683710225,510.98743222773,523.2511306012],description:"19 of 1/4-comma meantone scale"},meanquar_27:{frequencies:[261.6255653006,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,327.03195662575,334.88072358477,341.71789064962,349.91912034749,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"27 of 1/4-comma meantone scale"},meanquar_31:{frequencies:[261.6255653006,267.90457886781,273.37431312998,279.93529690293,285.65065877038,292.50627485027,299.52642572255,305.64177427204,312.977175335,320.48862783822,327.03195662575,334.88072358477,341.71789064962,349.91912034749,358.31717956585,365.63284274659,374.40803131735,382.05221698715,391.22147055517,400.61078621746,408.78994578219,418.60090448096,427.14736482575,437.39890198442,447.89647345742,457.04105241293,468.01003810189,479.24227945773,489.02683710225,500.76348165392,510.98743222773,523.2511306012],description:"31 of 1/4-comma meantone scale"},meanquareb:{frequencies:[261.6255653006,274.90575459855,292.80763523599,312.14798050979,327.88746490679,349.6453532581,367.3522744581,391.22144795733,411.14173398328,437.99455416256,467.00507093977,490.61429903129,523.2511306012],description:"Variation on 1/4-comma meantone with equal beating fifths"},meanquarm23:{frequencies:[261.6255653006,273.51763645063,292.40504357126,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,408.78994578219,436.04260883433,468.17206422213,489.12605686634,523.2511306012],description:"1/4-comma meantone approximation with minimal order 23 beatings"},meanquarr:{frequencies:[261.6255653006,273.37036621967,292.50063201309,312.98169478553,327.03195662575,349.92419358955,365.62579001637,391.21579858034,408.78994578219,437.39258595147,468.01906681552,489.01974822542,523.2511306012],description:"Rational approximation to 1/4-comma meantone, Kenneth Scholz, MTO 4.4, 1998"},meansabat:{frequencies:[261.6255653006,279.13726386405,294.25495796556,313.95067836072,330.95382015833,348.87783040382,372.229687597,392.38914286775,418.65339720992,441.32709511026,470.8669722571,496.36848628125,523.2511306012],description:"1/9-schisma meantone scale of Eduard Sa'bat-Garibaldi"},meansabat_53:{frequencies:[261.6255653006,264.79625752493,268.00537599851,271.25338610366,275.79485124716,279.13726386405,282.52018221184,285.94410045135,290.73152483281,294.25495796556,297.82109228474,301.4304452945,305.08354077075,310.19140758515,313.95067836072,317.75550958044,321.60645175541,326.99095182327,330.95382015833,334.96471528237,339.02421924159,343.13292113612,348.87783040382,353.10595017045,357.38531136087,361.71653498009,367.77258074571,372.229687597,376.74081403286,381.30660995465,385.92774054592,392.38914286775,397.14458487807,401.95765903525,406.82906379475,413.640406907,418.65339720992,423.72714093867,428.86237189887,436.04260883433,441.32709511026,446.67562589029,452.08897683944,457.56793273834,465.22877230071,470.8669722571,476.57350267936,482.349191678,490.42492909292,496.36848628125,502.38407462043,508.4725670703,514.63484717027,523.2511306012],description:"53-tone 1/9-schisma meantone scale"},meanschis:{frequencies:[261.6255653006,275.81646505128,294.24573392894,310.20599265769,327.03195662575,348.88329767713,367.80716871461,392.38299382393,413.66634097248,436.10412364188,465.24335632603,490.47874118496,523.2511306012],description:"1/8-schisma temperament, Helmholtz"},meanschis7:{frequencies:[261.6255653006,275.84425785506,294.23387584933,310.2247482054,327.0846843223,348.89032888179,367.85164222246,392.37508610937,413.69968681881,436.18322603255,465.26210635182,490.54793493862,523.2511306012],description:"1/7-schisma linear temperament"},meanschis_17:{frequencies:[261.6255653006,275.81646505128,290.77709705464,294.24573392894,310.20599265769,327.03195662575,330.93307160522,348.88329767713,367.80716871461,372.19468374184,392.38299382393,413.66634097248,436.10412364188,441.30634506723,465.24335632603,490.47874118496,496.32958936031,523.2511306012],description:"17-tone 1/8-schisma linear temperament"},meansept:{frequencies:[261.6255653006,273.93523095528,292.67762672082,312.70235991264,327.41522444303,349.81667202162,366.27579142084,391.33604481052,409.74867679276,437.78330574787,467.73603562223,489.74334292241,523.2511306012],description:"Meantone scale with septimal diminished fifth"},meansept2:{frequencies:[261.6255653006,273.61459551034,286.15296204753,292.57963558274,305.98714063953,320.00886175336,327.19620693615,342.18982383643,349.87514759905,365.9082279648,382.67602660872,391.27063976147,409.20043831214,427.95210889573,437.56358849756,457.61500463173,478.58500343311,489.333659422,511.75744671018,523.2511306012],description:"Meantone scale with septimal neutral second"},meansept3:{frequencies:[261.6255653006,267.11515986718,271.23581508831,275.42019673559,281.19923906193,285.53716249988,289.94217244295,296.02592413073,300.59257160392,305.22982618403,309.9384746623,316.44180152381,321.32358037849,326.28048244956,333.12670774706,338.26588629419,343.48414905091,348.7829114007,356.10146388137,361.59490682213,367.17305499414,374.87731434423,380.66058361349,386.53284867747,394.643327573,400.73152907611,406.91341882127,413.19091223118,421.86074762795,428.36858751681,434.97682067587,444.1040384307,450.95501471222,457.91167766162,464.97592623609,474.73234784313,482.05581210758,489.49253462334,499.76337935275,507.47298512535,515.30182087389,523.2511306012],description:"Pythagorean scale with septimal minor third"},meansept4:{frequencies:[261.6255653006,266.94086705872,271.13211808455,275.38917613856,280.98410555769,285.39585012732,289.87686370457,295.76613145071,300.40996929954,305.12672026341,309.91752915454,316.21395200486,321.17884203959,326.22168604472,332.8493514236,338.07543464185,343.38355445704,348.77505435772,355.86092403367,361.44831302863,367.12342987925,374.58207334188,380.46340397682,386.43730087372,394.28810581018,400.47907310734,406.76701374557,413.15368163355,421.54749623588,428.16623317002,434.88889120201,443.72428802318,450.69091522486,457.76754776364,464.95497741911,474.40121026751,481.84980583512,489.41535214975,499.35853288878,507.19898454493,515.16253949886,523.2511306012],description:"Pythagorean scale with septimal narrow fourth"},meansev:{frequencies:[261.6255653006,275.93321340298,293.28595453555,311.72996498387,328.77769811601,349.45369437647,368.5644419122,391.74252566418,413.16594588103,439.14890519043,466.76586696593,492.29212632197,523.2511306012],description:"1/7-comma meantone scale, Jean-Baptiste Romieu (1755)"},meansev2:{frequencies:[261.6255653006,273.98141462199,292.76593693997,312.83835055233,327.61283758281,350.07440004945,366.60744235102,391.74252566418,410.24343789088,438.37026184168,468.42550014967,490.54793493862,524.18054130269],description:"Meantone scale with 1/7-comma stretched octave (stretched meansept)"},meansev_19:{frequencies:[261.6255653006,275.93321340298,278.07859353335,293.28589524255,309.32501829942,311.72996858511,328.77775508885,346.75764506664,349.4536277652,368.56443339655,371.42996022741,391.74260033637,413.16585280598,416.37814821359,439.14890011719,463.16493144882,466.76596133102,492.29202110912,496.11959049595,523.2511306012],description:"19 of 1/7-comma meantone scale"},meanseveb:{frequencies:[261.6255653006,276.822915312,293.45907344559,311.2600957924,329.2717708679,349.29792128041,369.56105314287,391.74259807358,414.53862252605,439.49286138442,466.19439430972,493.21190508606,523.2511306012],description:'"1/7-comma" meantone with equal beating fifths'},meansixth:{frequencies:[261.6255653006,275.36245350283,293.11247215425,312.00666699279,328.38886075091,349.55699144229,367.91095120397,391.62676241399,412.18948168074,438.75944753732,467.04212833931,491.56459996916,523.2511306012],description:"1/6-comma meantone scale (tritonic temperament of Salinas)"},meansixth_19:{frequencies:[261.6255653006,275.36245350283,278.49009641114,293.11247215425,308.50278723002,312.00666699279,328.38886075091,345.6314161331,349.55699144229,367.91095120397,372.08969287196,391.62676241399,412.18948168074,416.87124381956,438.75944753732,461.79691129422,467.04212833931,491.56459996916,517.37477513058,523.2511306012],description:"19 of 1/6-comma meantone scale"},meansixtheb:{frequencies:[261.6255653006,276.39673661379,293.31426069206,311.4574698476,328.96404447481,349.37515437283,369.07004939896,391.62674884124,413.78350416977,439.15979251365,466.37460465854,492.63446576705,523.2511306012],description:'"1/6-comma" meantone with equal beating fifths'},meansixthm:{frequencies:[261.6255653006,275.36250599118,293.11251278827,312.00669222389,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52369088643,438.75941205608,467.04206359353,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 2 fifths"},meansixthm2:{frequencies:[261.6255653006,276.14113065853,293.11251278827,310.24975557428,328.38895179964,349.55706816887,367.91095120397,391.62667645325,414.52380581681,438.75941205608,465.72523006308,491.56462836305,523.2511306012],description:"modified 1/6-comma meantone scale, wolf spread over 4 fifths"},meansixthpm:{frequencies:[261.6255653006,275.00020270933,293.00227310437,309.72478954314,328.14198392915,348.83408706747,367.49599295996,391.5530240856,412.50030385781,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"modified 1/6P-comma temperament, French 18th century"},meansixthso:{frequencies:[261.6255653006,273.09145986506,292.50627485027,313.30134186202,327.03195662575,350.28154752005,365.63284274659,391.62667645325,408.78994578219,437.85193595173,468.98001879925,489.53334447372,524.3356019912],description:"1/6-comma meantone scale with 1/6-comma stretched oct, Dave Keenan TL 13-12-99"},meanstr:{frequencies:[261.6255653006,272.52663052146,292.30447317753,313.51763757869,326.58087306932,350.28154752005,364.87661266094,391.35649333595,407.66301227525,437.24799400905,468.98001879925,488.52085380073,523.97386302914],description:"Meantone with 1/9-comma stretched octave, Petr Parizek (2006)"},meanten:{frequencies:[261.6255653006,276.96346718799,293.59840699152,311.2324721493,329.47860040677,349.26769656434,369.74365294187,391.95114287501,414.92943551322,439.85086739936,466.26912673157,493.60433806962,523.2511306012],description:"1/10-comma meantone scale"},meanthird:{frequencies:[261.6255653006,271.40047399919,291.9012907804,313.95067836072,325.68056936328,350.28154752005,363.36884069528,390.81668391305,405.4184580124,436.04260883433,468.98001879925,486.50215045777,523.2511306012],description:"1/3-comma meantone scale (Salinas)"},meanthird_19:{frequencies:[261.6255653006,271.40047399919,281.38801176707,291.9012907804,302.80736724606,313.95067836072,325.68056936328,337.848714425,350.28154752005,363.36884069528,376.74081403286,390.81668391305,405.4184580124,420.33785775232,436.04260883433,452.33412516107,468.98001879925,486.50215045777,504.40543017669,523.2511306012],description:"Complete 1/3-comma meantone scale"},meanthirdeb:{frequencies:[261.6255653006,273.41679662438,292.30169912182,312.83755546226,326.81234905863,349.91518709086,365.63683018302,390.81669745772,408.5035451685,436.83089868331,467.63468237516,488.59687355467,523.2511306012],description:'"1/3-comma" meantone with equal beating fifths'},meanvar1:{frequencies:[261.6255653006,274.22463192287,292.50627485027,312.00669222389,327.03195662575,349.55706816887,366.3906401674,391.22147055517,410.48618883318,437.39890198442,467.04206359353,489.53334447372,523.2511306012],description:"Variable meantone 1: C-G-D-A-E 1/4, others 1/6"},meanvar2:{frequencies:[261.6255653006,274.19219069011,292.50627485027,312.04360750473,327.03195662575,349.70184487387,366.23895640989,391.22147055517,410.65012590831,437.39890198442,467.23549927892,489.3306802979,523.2511306012],description:"Variable meantone 2: C..E 1/4, 1/5-1/6-1/7-1/8 outward both directions"},meanvar3:{frequencies:[261.6255653006,275.36250599118,292.50627485027,310.71739423852,327.03195662575,349.55706816887,367.15000817177,391.22147055517,413.04376116614,437.39890198442,466.0760911248,489.53334447372,523.2511306012],description:"Variable meantone 3: C..E 1/4, 1/6 next, then Pyth."},meanvar4:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,412.61639318626,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Variable meantone 4: naturals 1/4-comma, accidentals Pyth."},mediant16:{frequencies:[261.6255653006,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,523.2511306012],description:"Mediant doubling of octave done four times"},mercadier:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.42509491746,328.14198392915,349.22823143301,368.74309237173,391.5530240856,413.90012676351,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Mercadier's well-temperament (1777), 1/12 and 1/6 Pyth. comma"},mercadier2:{frequencies:[261.6255653006,276.14388692511,292.95319623755,310.40895756597,328.03206784165,349.20805980193,368.45885450371,391.49761638186,413.86785247997,438.37641748302,465.57175090792,491.63473786767,523.2511306012],description:"Mercadier de Belestas (1776)"},mercator:{frequencies:[261.6255653006,272.09448029963,279.3054110864,290.48161516351,306.08206748155,318.32990397837,326.76614606023,335.42596179815,348.84778913489,362.80689075348,372.42184279259,387.32403355801,408.12545368833,418.94141877379,435.70530841001,453.13974129598,465.14865565404,490.12996697565,509.74216322321,523.2511306012],description:"19 out of 53-tET, see Mandelbaum p. 331"},merrick:{frequencies:[261.6255653006,278.62147458377,295.28844751169,312.94924079019,329.91874474504,349.29981986967,371.62722343835,394.01440557319,416.60121863153,438.96906929631,468.0242659544,493.6331420766,523.2511306012],description:"A. Merrick's melodically tuned equal temperament (1811)"},mersen_l1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 1"},mersen_l2:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Mersenne lute 2"},mersen_s1:{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 1"},mersen_s2:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Mersenne spinet 2"},mersenmt1:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.03921839762,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,466.55882736321,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 1"},mersenmt2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.11326130363,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Mersenne's Improved Meantone 2"},mersenne:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,310.07474405997,313.95067836072,322.99452506247,327.03195662575,340.65828815182,344.52749339997,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,408.78994578219,413.43299207996,418.60090448096,430.65936674996,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,510.98743222773,523.2511306012],description:"31-note choice system of Mersenne, Harmonie universelle (1636)"},meyer:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},meyer_29:{frequencies:[261.6255653006,268.26840191956,275.93321340298,286.15296204753,289.72987407313,294.32876096318,306.59245933664,321.92208230347,327.03195662575,331.11985608357,343.38355445704,344.91651675372,357.69120255941,367.91095120397,372.50983809402,383.2405741708,386.30649876417,392.4383479509,408.78994578219,413.89982010446,429.2294430713,441.49314144476,457.84473927605,459.88868900496,482.88312345521,490.54793493862,496.67978412536,510.98743222773,515.07533168556,523.2511306012],description:"Max Meyer, see Doty, David, 1/1 August 1992 (7:4) p.1 and 10-14"},mid_enh1:{frequencies:[261.6255653006,269.10058145205,336.37572681506,348.83408706747,392.4383479509,403.65087217807,504.56359022259,523.2511306012],description:"Mid-Mode1 Enharmonic, permutation of Archytas's with the 5/4 lying medially"},mid_enh2:{frequencies:[261.6255653006,271.31540105247,339.14425131559,348.83408706747,392.4383479509,406.97310157871,508.71637697339,523.2511306012],description:"Permutation of Archytas' Enharmonic with the 5/4 medially and 28/27 first"},miller19:{frequencies:[261.6255653006,271.16557874802,283.07475767856,293.39690257971,304.09543631541,315.18408718336,326.67707691855,338.58915326012,350.93559605343,363.73224209988,376.99551198295,390.74241649248,407.9032302438,422.77716528297,438.1934715504,454.17192383337,470.73301771751,487.89800430439,505.68889852562,524.12852955557],description:"TOP tempered nr. 64 [1202.9, 570.4479508], 7-limit {225/224, 1029/1000}"},miller7:{frequencies:[261.6255653006,274.70684356563,294.32876096318,313.95067836072,329.64821227876,353.19451315581,366.27579142084,392.4383479509,412.06026534844,439.53094970501,470.92601754108,494.47231841813,523.2511306012],description:"Herman Miller, 7-limit JI. mode of parizek_ji1"},miller_12:{frequencies:[261.6255653006,273.36657578691,291.63627719304,313.29104303136,327.35065305942,349.22823143301,364.90060015836,391.99543598175,418.19337019276,436.9606979923,456.57025003029,487.08386390194,523.2511306012],description:"Herman Miller, scale with appr. to three 7/4 and one 11/8. Tuning List 19-11-99"},miller_12a:{frequencies:[261.6255653006,273.46133384191,291.68681828778,313.23675853409,327.40738352015,349.22823143301,365.02708698668,391.99543598175,418.12090908234,437.03642407223,456.80766452229,487.25270356141,523.85596330884],description:'Herman Miller, "Starling" scale, alternative version TL 25-11-99'},miller_12r:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,484.4917875937,523.2511306012],description:'Herman Miller, "Starling" scale rational version'},miller_ar1:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.07474405997,327.9937953665,348.83408706747,368.24374600687,391.64146650178,414.27421384356,438.21489534465,465.11211608996,490.99166158792,523.2511306012],description:'Herman Miller, "Arrow I" well-temperament'},miller_ar2:{frequencies:[261.6255653006,276.1828093671,293.13465239421,310.2849072826,328.2161033156,349.07052034394,368.24374600687,391.64146650178,414.27421384356,438.51190905657,465.42736069124,491.32444638706,523.2511306012],description:'Herman Miller, "Arrow II" well-temperament'},miller_b1:{frequencies:[261.6255653006,276.37000081643,292.93610587951,310.49521248455,328.2161033156,348.83408706747,368.4933346061,391.64146650178,413.993616853,438.80912407872,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Butterfly I" well-temperament'},miller_b2:{frequencies:[261.6255653006,276.55731914056,293.13465239421,310.70566022736,328.2161033156,349.07052034394,368.74309237173,392.17254067411,414.27421384356,439.10654054756,465.42736069124,491.99069280383,523.2511306012],description:'Herman Miller, "Butterfly II" well-temperament'},miller_bug:{frequencies:[261.6255653006,275.99574470663,292.73769384471,310.49521248455,327.54963108844,348.83408706747,368.4933346061,391.64146650178,413.993616853,437.62147130622,465.11211608996,491.32444638706,523.2511306012],description:'Herman Miller, "Bug I" well-temperament'},miller_dim:{frequencies:[261.6255653006,272.37088095799,275.97178311718,291.10467300644,307.06737543415,311.12698372208,323.9053895548,328.18760802294,346.1837483498,365.1667076515,369.99442271164,385.1905938463,390.2830385166,411.68417663589,434.25884690128,440,458.07139483414,464.12736626882,489.57775198944,516.42371048788,523.2511306012],description:"Diminished temperament, g=92.421, oct=1/4, 7-limit"},miller_nikta:{frequencies:[261.6255653006,272.78230567952,282.82337239762,292.30660227893,305.1368529352,315.1779191367,326.89249731477,341.39626079795,349.76381456689,364.82541608424,379.88701473,391.60159255926,407.77886614283,422.28262813098,436.22855406869,456.86852448015,469.69877536137,488.10739794888,508.74736733766,523.2511306012],description:'Herman Miller, 19-tone scale of "Nikta". Tuning List 22-1-99'},miller_sp:{frequencies:[261.6255653006,276.74268633071,292.73329748773,304.15432597486,321.72882314722,340.31880135827,353.5963846,374.02771873076,395.63960626236,411.07553805605,434.82810464551,459.95313047266,477.89826295658,505.51194770063,525.23456349057],description:"Herman Miller, Superpelog temperament, TOP tuning"},minor_5:{frequencies:[261.6255653006,299.00064605783,348.83408706747,418.60090448096,465.11211608996,523.2511306012],description:"A minor pentatonic"},minor_clus:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,353.19451315581,372.08969287196,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,523.2511306012],description:"Chalmers' Minor Mode Cluster, Genus [333335]"},minor_wing:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,376.74081403286,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Chalmers' Minor Wing with 7 minor and 6 major triads"},minortone:{frequencies:[261.6255653006,264.87670583656,269.18630372462,273.56601964703,276.96554054138,281.47182622933,286.05143175444,290.70554674078,294.31805527354,299.10666990622,303.97319627313,307.75057781118,312.75774231814,317.84637624619,323.01780144749,327.03184444407,332.35271908155,337.76016543181,341.95740725719,347.52112383796,353.17536321933,358.9216002989,363.3818066762,369.29410472703,375.30259493676,379.96636500161,386.14849505708,392.43120962619,398.81614754309,403.7721109712,410.34156772664,417.0179085097,422.20006196255,429.06934285921,436.05038835349,443.14501943782,448.65184388114,455.95150328441,463.36992699746,469.12808274602,476.76089208744,484.51788878959,492.4010934061,498.52001054206,506.63103252794,514.8740254656,523.2511306012],description:"Minortone temperament, g=182.466089, 5-limit"},miracle1:{frequencies:[261.6255653006,266.71173418545,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,479.82340237272,489.15147723638,513.27277840175,523.2511306012],description:'21 out of 72-tET Pyth. scale "Miracle/Blackjack", Keenan & Erlich, TL 2-5-2001'},miracle1a:{frequencies:[261.6255653006,266.57640943865,279.87817034289,285.17441410431,299.40418912991,305.0699313594,320.29246281951,326.35348199782,342.63803067389,349.1219037468,366.54256247747,373.47879032775,392.11482112276,399.53496279579,419.47115746916,427.40897376302,448.73603972606,457.22764679928,480.04261976898,489.12665346498,513.5333359992,523.2511306012],description:"Version of Blackjack with just 11/8 intervals"},miracle2:{frequencies:[261.6255653006,266.71172956369,274.52699087907,279.86396690685,285.30469707927,293.66477470251,299.3738011912,305.19381471768,314.13668880034,320.24370207508,326.46943949911,336.03573785931,342.56848231438,349.22822739856,359.4614100947,366.44956423737,373.57357245769,380.83607584373,391.99544051026,399.61607650784,407.38486242506,419.32216702351,427.4740516384,435.78441397758,448.55389013814,457.27405769313,466.16375074742,479.82341068742,489.15147723638,498.66088722045,513.27278729609,523.2511306012],description:'31 out of 72-tET Pythagorean scale "Miracle/Canasta", tempered Fokker-M, 36 7-limit tetrads'},miracle24:{frequencies:[261.6255653006,266.71173418545,274.52698453615,279.86396690685,285.30470202322,299.37379946195,305.19382000629,320.24370022528,326.46944327063,342.56848033562,349.22823143301,366.44956000397,373.57357677338,391.99543598175,399.61607881612,419.32216217931,427.47405410759,448.5538823653,457.27406033445,466.16376151809,479.82340237272,489.15147723638,498.66089874196,513.27277840175,523.2511306012],description:"Miracle[24] in 72-tET tuning."},miracle2a:{frequencies:[261.6255653006,266.57640943865,274.68028654691,279.87817034289,285.17441410431,293.84366906071,299.40418912991,305.0699313594,314.34400674513,320.29246281951,326.35348199782,336.27457379784,342.63803067389,349.1219037468,359.73515228832,366.54256247747,373.47879032775,380.54627680087,392.11482112276,399.53496279579,407.09552105481,419.47115746916,427.40897376302,435.49700296564,448.73603972606,457.22764679928,465.87994655565,480.04261976898,489.12665346498,498.38259075187,513.5333359992,523.2511306012],description:"Version of Canasta with just 11/8 intervals"},miracle3:{frequencies:[261.6255653006,266.71172956369,271.8967720342,274.52699087907,279.86396690685,285.30469707927,290.85119844166,293.66477470251,299.3738011912,305.19381471768,311.12697293924,314.13668880034,320.24370207508,326.46943949911,332.81620914398,336.03573785931,342.56848231438,349.22822739856,356.01744208336,359.4614100947,366.44956423737,373.57357245769,380.83607584373,384.52012922913,391.99544051026,399.61607650784,407.38486242506,411.32573797959,419.32216702351,427.4740516384,435.78441397758,440.00001524924,448.55389013814,457.27405769313,466.16375074742,470.67322937359,479.82341068742,489.15147723638,498.66088722045,503.48472993456,513.27278729609,523.2511306012],description:'41 out of 72-tET Pythagorean scale "Miracle/Studloco", Erlich/Keenan 2001'},miracle31s:{frequencies:[261.6255653006,266.63636836248,274.61234258734,279.87187586531,285.23214274484,293.7643779857,299.39072204343,305.12482507342,314.2521161294,320.27085311289,326.40486440328,336.1687117034,342.60720791066,349.16901789451,359.61381619398,366.50134650551,373.52079096839,380.6746756467,392.06191220286,399.57090708206,407.22371854314,419.40512463865,427.43781242392,435.62434685833,448.6553095271,457.24821364991,466.00569400686,479.94546308962,489.13765420145,498.50589943595,513.41785698047,523.2511306012],description:"Canasta with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle3a:{frequencies:[261.6255653006,266.57640943865,271.6209387912,274.68028654691,279.87817034289,285.17441410431,290.57088243021,293.84366906071,299.40418912991,305.0699313594,310.84289043406,314.34400674513,320.29246281951,326.35348199782,332.52919812642,336.27457379784,342.63803067389,349.1219037468,355.72847573316,359.73515228832,366.54256247747,373.47879032775,380.54627680087,384.83248369581,392.11482112276,399.53496279579,407.09552105481,411.6807594913,419.47115746916,427.40897376302,435.49700296564,440.40213577526,448.73603972606,457.22764679928,465.87994655565,471.12729153307,480.04261976898,489.12665346498,498.38259075187,503.99602271809,513.5333359992,523.2511306012],description:"Version of Studloco with just 11/8 intervals"},miracle3ls:{frequencies:[261.6255653006,266.8561524992,272.19132869617,274.36355553357,279.84880885615,285.44374339214,291.1505189834,293.47406686496,299.34138986722,305.32601617869,311.43030899178,313.91568307924,320.1916880693,326.59318586748,333.12264767748,335.78115718319,342.4943108472,349.34167821305,356.32594256772,359.16962765504,366.35037871957,373.67471357934,381.14545968569,384.18721873359,391.86813762951,399.70261841457,407.69373119716,410.94736065575,419.16328558448,427.54349328421,436.09121881038,439.57145109254,448.35967321435,457.32356924795,466.46667727785,470.18934850506,479.58967749961,489.177972196,498.95793401383,502.93987502638,512.99500332159,523.2511306012],description:"Miracle-41 in a 7-limit least-squares tuning, Gene Ward Smith, 2001"},miracle3p:{frequencies:[261.6255653006,266.34679554672,270.06721067987,274.94077677072,279.90228841312,284.95333588433,290.09553330897,294.14767822015,299.45579274291,304.85969791727,310.36112062791,314.69634158508,320.37527393455,326.15668500873,332.04242788125,336.6805001021,342.75615313904,348.94144590806,355.2383548887,360.20043713509,366.70052302062,373.3179099666,380.0547104455,385.36343543368,392.31760641523,399.39727291251,406.60469732047,412.28427858225,419.7242587073,427.29849640545,435.00941939202,441.0857666732,449.04549132915,457.14885520764,465.39844769831,471.89927840742,480.41505607532,489.08450736089,497.91040254418,504.86537329764,513.97604599191,523.2511306012],description:"Least squares Pythagorean approximation to partch_43"},miracle41s:{frequencies:[261.6255653006,266.63636836248,269.45164985995,274.61234258734,279.87187586531,285.23214274484,290.69507255622,293.7643779857,299.39072204343,305.12482507342,310.96875093738,314.2521161294,320.27085311289,326.40486440328,332.65635780028,336.1687117034,342.60720791066,349.16901789451,355.85650343121,359.61381619398,366.50134650551,373.52079096839,380.6746756467,384.69403121132,392.06191220286,399.57090708206,407.22371854314,411.52339231679,419.40512463865,427.43781242392,435.62434685833,440.22388881539,448.6553095271,457.24821364991,466.00569400686,470.92601754108,479.94546308962,489.13765420145,498.50589943595,503.76937659657,513.41785698047,523.2511306012],description:"StudLoco with Secor's minimax generator of 116.7155941 cents (5:9 exact). XH5, 1976"},miracle_12:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,336.03572815422,342.56848033562,359.46139971304,366.44956000397,384.52011812375,411.32572372413,440,470.6732130613,523.2511306012],description:"A 12-tone subset of Blackjack with six 4-7-9-11 tetrads"},miracle_12a:{frequencies:[261.6255653006,279.86396690685,299.37379946195,320.24370022528,342.56848033562,366.44956000397,391.99543598175,419.32216217931,448.5538823653,479.82339960115,489.15147723638,513.27277840175,523.2511306012],description:"A 12-tone chain of Miracle generators and subset of Blackjack"},"24erlich-keenan":{frequencies:[261.6255653006,266.71173469898,279.86396636799,285.30470202322,290.8512090818,299.37380003836,305.19381941867,320.24370022528,326.46944389922,342.56847967604,349.22823143301,356.01745305102,366.44956070954,373.5735760541,391.99543598175,399.61607958554,407.38487340641,419.32216137194,427.47405410759,448.55388322895,457.27405945401,479.82340237272,489.15147817819,498.66089778183,523.2511306012],description:"24 note mapping for Erlich/Keenan Miracle scale low version, tuned to 72-equal"},miracle_8:{frequencies:[261.6255653006,279.86396690685,314.13668154225,336.03572815422,366.44956000397,391.99543598175,419.32216217931,448.5538823653,523.2511306012],description:"tet3a in 72-et"},miring1:{frequencies:[261.6255653006,285.29448470177,307.6953604706,387.15515639797,420.96788906714,523.2511306012],description:"Gamelan Miring from Serdang wetan, Tangerang. 1/1=309.5 Hz"},miring2:{frequencies:[261.6255653006,279.34865171253,304.66723527068,384.42070010042,412.69311132744,523.2511306012],description:"Gamelan Miring (Melog gender) from Serdang wetan"},misca:{frequencies:[261.6255653006,274.70684356563,289.16509849014,305.22982618403,348.83408706747,392.4383479509,412.06026534844,433.74764773521,457.84473927605,523.2511306012],description:"21/20 x 20/19 x 19/18=7/6 7/6 x 8/7=4/3"},miscb:{frequencies:[261.6255653006,269.80136421624,278.50463402967,319.76457981184,348.83408706747,392.4383479509,404.70204632437,417.75695104451,479.64686971777,523.2511306012],description:"33/32 x 32/31x 31/27=11/9 11/9 x 12/11=4/3"},miscc:{frequencies:[261.6255653006,276.00059636107,292.04714266113,310.07474405997,348.83408706747,392.4383479509,414.00089454161,438.0707139917,465.11211608996,523.2511306012],description:"96/91 x 91/86 x 86/54=32/27. 32/27 x 9/8=4/3."},miscd:{frequencies:[261.6255653006,271.68808704293,282.55561052465,294.32876096318,348.83408706747,392.4383479509,407.5321305644,423.83341578697,441.49314144476,523.2511306012],description:"27/26 x 26/25 x 25/24=9/8. 9/8 x 32/27=4/3."},misce:{frequencies:[261.6255653006,280.31310567921,301.87565226992,327.03195662575,348.83408706747,392.4383479509,420.46965851882,452.81347840488,490.54793493862,523.2511306012],description:"15/14 x 14/13 x 13/12=5/4. 5/4 x 16/15= 4/3."},miscf:{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,378.42269266694,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh1"},miscg:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,504.56359022259,523.2511306012],description:"SupraEnh 2"},misch:{frequencies:[261.6255653006,271.31540105247,279.06726965397,336.37572681506,348.83408706747,392.4383479509,406.97310157871,490.54793493862,504.56359022259,523.2511306012],description:"SupraEnh 3"},misty:{frequencies:[261.6255653006,268.57642185399,270.57706033988,272.59260010205,274.62315370363,276.66883458144,284.01936005382,286.13503371773,288.26646546986,290.41377434565,292.57708030445,300.35025535204,302.58757688062,304.84156607104,307.11234355974,309.40003795144,311.70477168653,319.9861304005,322.36972224007,324.77106769218,327.19030275625,329.62755691287,338.38508739928,340.90573394089,343.44515491415,346.00349213972,348.58088853904,357.84197030948,360.50755209334,363.19298782427,365.89842747751,368.62402219236,378.41760905933,381.23645754858,384.07630597582,386.93730633346,389.81962065329,392.72340320054,403.157261366,406.16039889903,409.18590458221,412.23394976407,415.30469757995,426.33849458487,429.51431022199,432.71378016074,435.93708308397,439.18439906139,450.85263092877,454.21105352848,457.59449053401,461.00313090234,464.43716505707,476.77631130474,480.3278378528,483.9058226648,487.51045723915,491.14194572312,494.80048247871,507.94632001299,511.73003620658,515.54193450341,519.38223078906,523.2511306012],description:"Misty temperament, g=96.787939, p=400, 5-limit"},mistyschism:{frequencies:[261.6255653006,278.75251614148,294.32876096318,310.42486507835,330.74639366397,348.83408706747,372.08969287196,392.4383479509,418.12877421223,440.99519155196,465.63729761752,496.11959049595,523.2511306012],description:"Mistyschism scale 32805/32768 and 67108864/66430125"},mixed9_3:{frequencies:[261.6255653006,273.20871865617,285.30470202322,311.12698372208,349.22823143301,391.99543598175,409.35055662695,427.47405410759,466.16376151809,523.2511306012],description:"A mixture of the hemiolic chromatic and diatonic genera, 75 + 75 + 150 + 200 c"},mixed9_4:{frequencies:[261.6255653006,271.89678302796,282.57123920205,305.19382000629,349.22823143301,391.99543598175,407.38487419079,423.37848741825,457.27406033445,523.2511306012],description:'Mixed enneatonic 4, each "tetrachord" contains 67 + 67 + 133 + 233 cents.'},mixed9_5:{frequencies:[261.6255653006,277.18263097687,293.66476791741,329.62755691287,349.22823143301,391.99543598175,415.30469757995,440,493.88330125613,523.2511306012],description:"A mixture of the intense chromatic genus and the permuted intense diatonic"},mixed9_6:{frequencies:[261.6255653006,277.18263097687,293.66476791741,311.12698372208,349.22823143301,391.99543598175,415.30469757995,440,466.16376151809,523.2511306012],description:"Mixed 9-tonic 6, Mixture of Chromatic and Diatonic"},mixed9_7:{frequencies:[261.6255653006,277.18263097687,311.12698372208,329.62755691287,349.22823143301,391.99543598175,415.30469757995,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 7, Mixture of Chromatic and Diatonic"},mixed9_8:{frequencies:[261.6255653006,293.66476791741,311.12698372208,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012],description:"Mixed 9-tonic 8, Mixture of Chromatic and Diatonic"},mixol_chrom:{frequencies:[261.6255653006,274.08392555301,287.78812183066,302.93486508491,311.12229387098,319.76457981184,359.73515228832,411.12588832951,426.35277308246,434.39716502741,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,605.86973016981,622.24458774197,639.52915962369,719.47030457665,822.25177665903,852.70554616492,868.79433005482,885.50191332511,959.29373943553,1046.5022612024],description:"Mixolydian chromatic tonos"},mixol_chrom2:{frequencies:[261.6255653006,271.31540105247,281.75060878526,332.97799220076,366.27579142084,385.55346465352,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the chromatic genus"},mixol_chrominv:{frequencies:[261.6255653006,279.06726965397,299.00064605783,373.75080757229,411.12588832951,429.81342870813,448.50096908674,523.2511306012],description:"A harmonic form of Schlesinger's Chromatic Mixolydian inverted"},mixol_diat:{frequencies:[261.6255653006,274.08392555301,287.78812183066,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,442.75095666255,460.46099492906,479.64686971777,500.50108144463,523.2511306012,548.16785110602,575.57624366132,639.52915962369,677.14852195449,719.47030457665,767.43499154843,822.25177665903,885.50191332511,920.92198985811,959.29373943553,1001.00216288925,1046.5022612024],description:"Mixolydian diatonic tonos"},mixol_diat2:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,348.83408706747,366.27579142084,406.97310157871,457.84473927605,523.2511306012],description:"Schlesinger's Mixolydian Harmonia, a subharmonic series though 13 from 28"},mixol_diatcon:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"A Mixolydian Diatonic with its own trite synemmenon replacing paramese"},mixol_diatinv2:{frequencies:[261.6255653006,299.00064605783,336.37572681506,348.83408706747,373.75080757229,411.12588832951,448.50096908674,485.87604984397,523.2511306012],description:"Inverted Schlesinger's Mixolydian Harmonia, a harmonic series from 14 from 28"},mixol_enh:{frequencies:[261.6255653006,274.08392555301,287.78812183066,295.1673044417,299.00064605783,302.93486508491,348.83408706747,411.12588832951,418.60090448096,422.44127975143,426.35277308246,469.85815809087,523.2511306012,548.16785110602,575.57624366132,590.33460888341,598.00129211566,605.86973016981,697.66817413493,822.25177665903,837.20180896192,844.88255950285,852.70554616492,939.71631618175,1046.5022612024],description:"Mixolydian Enharmonic Tonos"},mixol_enh2:{frequencies:[261.6255653006,266.38239376061,271.31540105247,332.97799220076,366.27579142084,375.66747838035,385.55346465352,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the enharmonic genus"},mixol_enhinv:{frequencies:[261.6255653006,270.34641747729,279.06726965397,373.75080757229,411.12588832951,420.46965851882,429.81342870813,523.2511306012],description:"A harmonic form of Schlesinger's Mixolydian inverted"},mixol_penta:{frequencies:[261.6255653006,269.32043486826,281.75060878526,332.97799220076,366.27579142084,381.53728273004,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the pentachromatic genus"},mixol_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,411.12588832951,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,822.25177665903,885.50191332511,959.29373943553,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Mixolydian Tonos"},mixol_tri1:{frequencies:[261.6255653006,268.0066766494,274.70684356563,332.97799220076,366.27579142084,378.90599112501,392.4383479509,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the first trichromatic genus"},mixol_tri2:{frequencies:[261.6255653006,268.0066766494,281.75060878526,332.97799220076,366.27579142084,378.90599112501,406.97310157871,523.2511306012],description:"Schlesinger's Mixolydian Harmonia in the second trichromatic genus"},mmmgeo1:{frequencies:[261.6255653006,291.52662303231,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo2:{frequencies:[261.6255653006,295.05751399041,323.4477810403,352.62279726972,392.9238840789,430.73079539701,485.77193724523,529.58860866211],description:"Scale for MakeMicroMusic in Peppermint 24, maybe a bit like Georgian tunings"},mmmgeo3a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,463.96335069158,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4a:{frequencies:[261.6255653006,281.81099471089,317.822348206,348.40303271111,392.9238840789,423.23948674937,477.32335087626,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmmgeo4b:{frequencies:[261.6255653006,295.05751399041,323.4477810403,348.40303271111,392.9238840789,430.73079539701,485.77193724523,523.2511306012],description:'Peppermint 24 scale for MakeMicroMusic, maybe a bit "Georgian-like"?'},mmswap:{frequencies:[261.6255653006,251.16054268858,294.32876096318,282.55561052465,313.95067836072,348.83408706747,353.19451315581,392.4383479509,376.74081403286,418.60090448096,423.83341578697,470.92601754108,523.2511306012],description:"Swapping major and minor in 5-limit JI"},mokhalif:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,425.01198472693,477.05982293263,523.2511306012],description:"Iranian mode Mokhalif from C"},montvallon:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Montvallon's Monochord, Nouveau sisteme de musique (1742)"},monzismic:{frequencies:[261.6255653006,265.20988799749,268.52946324281,272.20837072565,275.61554447717,279.39153269358,282.88861654172,286.76424730356,290.69297498385,294.33151655947,298.3639173457,302.09847446042,306.23728412706,310.07039048391,314.31841699833,318.25267316085,322.61279858837,327.03265671938,331.12605620426,335.66254762155,339.86396564906,344.52016812641,348.83245514045,353.61152766937,358.03760933268,362.94279426564,367.48567344471,372.52029869489,377.62390147213,382.35053879638,387.58881783384,392.44018387738,397.81669307529,402.79607923799,408.31446627855,413.42525081527,419.08925963743,424.33490995001,430.14838328955,436.04150237937,441.49934027584,447.54796975207,453.14983163098,459.35807517454,465.10776160818,471.47983118983,477.38124304179,483.92146177974,489.97860285142,496.69140794435,503.49617981289,509.7983334288,516.78267280423,523.2511306012],description:"Monzismic temperament, g=249.018448, 5-limit"},sevengroups:{frequencies:[261.6255653006,261.6255653006,275.62199471997,265.19499215873,270.69536599394,266.7406479561],description:"Here are some suggestions for a logical system encompassing intervals into seven broad groups: skhisma, kleisma, comma,"},"monzo-sym-11":{frequencies:[261.6255653006,269.80136421624,276.76092858245,279.06726965397,285.40970760065,286.15296204753,287.78812183066,294.32876096318,299.00064605783,304.4370214407,305.22982618403,313.95067836072,314.76825825228,327.03195662575,332.97799220076,334.88072358477,341.71502406609,343.38355445704,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,398.6675280771,400.61414686654,408.78994578219,411.12588832951,418.60090448096,434.91003062957,436.04260883433,448.50096908674,449.66894036041,457.84473927605,465.11211608996,475.68284600109,478.40103369253,479.64686971777,490.54793493862,494.63583439645,507.3950357345,523.2511306012],description:"Monzo symmetrical system: 11-limit"},"monzo-sym-5":{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 5-limit"},"monzo-sym-7":{frequencies:[261.6255653006,279.06726965397,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,478.40103369253,490.54793493862,523.2511306012],description:"Monzo symmetrical system: 7-limit"},monzo_sumerian_2place12:{frequencies:[261.6255653006,277.17835052447,293.68632213351,311.15032543183,329.66469551353,349.22211163595,369.93402791915,391.94841243536,415.27867508032,439.91220695103,466.03267445926,493.6331420766,523.2511306012],description:"Monzo - most accurate 2-place sexagesimal 12-tET approximation"},monzo_sumerian_simp12:{frequencies:[261.6255653006,277.34158865788,293.41184893525,310.84225580269,329.78012432849,348.83408706747,370.22485655745,392.4383479509,415.27867508032,440.11777340288,466.26338370404,493.6331420766,523.2511306012],description:"Monzo - simplified 2-place sexagesimal 12-tET approximation"},morgan:{frequencies:[261.6255653006,277.18263097687,294.07958763262,310.86358783941,330.18637907377,349.03110370139,370.30791823326,392.32757291716,415.07027187895,440.74593809176,465.76911360306,494.58094207912,523.2511306012],description:"Augustus de Morgan's temperament (1843)"},"mos11-34":{frequencies:[261.6255653006,272.51337835337,301.75671459889,314.3146261019,348.04364484358,362.52783176564,377.61479489998,418.13653788176,435.53771116377,453.66305442345,502.34551296122,523.2511306012],description:"Wilson 11 of 34-tET, G=9, Chain of minor & major thirds with Kleismatic fusion"},"mos12-17":{frequencies:[261.6255653006,272.51337835337,283.85429714132,307.97166902637,320.78822215662,348.04364484358,362.52783176564,377.61479489998,409.69842558521,426.7484383229,463.0066556268,482.27514684959,523.2511306012],description:"MOS 12 of 17, generator 7"},"mos12-22":{frequencies:[261.6255653006,287.56082683758,296.76515515861,326.18384711731,336.62443200122,347.39920007397,381.83730669135,394.05926325844,433.12283887627,446.9863572706,491.29666030217,507.02222283506,523.2511306012],description:"MOS 12 of 22, contains nearly just, recognizable diatonic, and pentatonic scales"},"mos13-22":{frequencies:[261.6255653006,278.64197723942,296.76515515861,316.06708432391,326.18384711731,347.39920007397,369.99442271164,381.83730669135,406.67242132093,433.12283887627,446.9863572706,476.05883716226,507.02222283506,523.2511306012],description:"MOS 13 of 22, contains 5 and 9 tone MOS as well. G=5 or 17"},"mos15-22":{frequencies:[261.6255653006,278.64197723942,287.56082683758,306.26409645618,316.06708432391,336.62443200122,347.39920007397,369.99442271164,381.83730669135,406.67242132093,419.68930726506,446.9863572706,461.29362042034,491.29666030217,507.02222283506,523.2511306012],description:"MOS 15 in 22, contains 7 and 8 tone MOS as well. G= 3 or 19"},moscow:{frequencies:[261.6255653006,277.4816141504,293.64820765919,311.48626315692,329.67368081467,349.7414907984,370.88289054572,392.4383479509,416.22242101754,440.4723112686,467.22939450183,494.51052097482,523.2511306012],description:"Charles E. Moscow's equal beating piano tuning (1895)"},mundeuc45:{frequencies:[261.6255653006,267.57160087561,269.80136421624,271.31540105247,274.70684356563,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,499.46698830115,504.56359022259,507.3950357345,513.90736041189,523.2511306012],description:"Euclidean reduced detempered Miracle[45] with Tenney tie-breaker"},musaqa:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,427.47405410759,466.16376151809,523.2511306012],description:"Egyptian scale by Miha'il Musaqa"},musaqa_24:{frequencies:[261.6255653006,269.02051582234,276.67624041581,284.6011815168,292.80374147632,300.29158209195,310.07474405997,319.15917884888,328.55303549378,338.26335715633,348.29659232622,358.65845048745,369.35373924791,380.38618160659,391.75821216589,403.47075130695,415.52295665389,427.91195157543,440.63253103259,453.67684579974,467.03406698289,480.69003385373,494.62688932105,508.8227088795,523.2511306012],description:"from d'Erlanger vol.5, p.34, after Mih.a'il Mu^saqah, 1899, a Lebanese scholar"},myna23:{frequencies:[261.6255653006,267.85369360167,274.23008563259,291.58574485564,298.52709031489,305.63367799752,312.90944157785,320.35840837329,327.98470157359,348.7424193045,357.04440817535,365.54403007102,374.24598974517,383.15510395049,392.27630410488,417.10295228105,427.03229805648,437.19801690717,447.60573581317,458.26121570764,469.17035466565,498.86352554567,510.73922293119,522.89762727195],description:"23 notes of Myna temperament, 7-limit TOP tuning (Paul Erlich)"},"mystic-r":{frequencies:[261.6255653006,367.91095120397,465.11211608996,654.0639132515,872.08521766867,1177.3150438527],description:"Skriabin's mystic chord, op. 60 rationalised"},mystic:{frequencies:[261.6255653006,369.99442271164,466.16376151809,659.25511382574,880,1174.65907166964],description:"Skriabin's mystic chord, op. 60"},urmawi:{frequencies:[261.6255653006,294.32876096318,326.6631048533,348.83408706747,392.4383479509,441.49314144476,471.45776383774,523.2511306012],description:"al-Urmawi, one of twelve maqam rows. First tetrachord is Rast"},valentine:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,330.47439827444,348.83408706747,371.78369805875,392.4383479509,414.24047839262,440.63253103259,466.02053819169,495.71159741166,523.2511306012],description:"Robert Valentine, tuning with primes 3 & 19, TL 7-2-2002"},valentine2:{frequencies:[261.6255653006,286.10322937235,312.87102146627,349.87955533643,382.6142546815,418.41160951721,467.90420651233,511.68128147674,559.55413558945,625.74204293254,684.28641150324,748.30818586768,782.53142116911,855.74498969389,935.80841302466,1046.5022612024],description:"Robert Valentine, two octave 31-tET subset for guitar, TL 10-5-2002"},vallotti:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.6228209638,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Vallotti & Young scale (Vallotti version)"},vavoom:{frequencies:[164.81377845643,165.83014536684,167.75567809608,168.79018601865,170.75008918846,172.7327497266,173.79795102719,175.81600173949,176.90021569146,178.95428827501,180.05785630665,182.14859375797,184.26360775673,185.39991601304,187.55268266167,188.70927492235,190.90046811205,192.07770535997,194.30800987601,196.56421264146,197.77637683895,200.07285246365,201.3066535986,203.64411977036,206.00872855044,207.27913480479,209.68595147418,210.9790342774,213.42881100738,214.74497512464,217.23848121866,219.76094059848,221.11615343515,223.68363702025,225.06304018178,227.6763542391,229.0803795269,231.74034082302,234.43118684139,235.87686755635,238.61574610914,240.08723199411,242.87499909192,244.37274935352,247.21027763268,250.08075380295,251.62294163139,254.54465534315,256.1143694988,259.0882353168,260.68597011615,263.71291896434,266.77501515601,268.42015092639,271.53690502834,273.21140777811,276.38379544331,278.08818779989,281.31720045362,284.58370833477,286.33866758091,289.66348210637,291.44976709494,294.83392732599,296.65209720599,300.09666587055,303.58123106099,305.45334345815,309.00010579622,310.90563508986,314.51570836542,316.45525105281,320.12976356015,323.84694071013,325.84402686189,329.62755691286],description:"Vavoom temperament, g=111.875426, 5-limit"},veroli:{frequencies:[261.6255653006,276.87699530057,293.57148765354,310.97965314221,329.42008585855,349.28270065725,369.64409253099,391.93430587921,414.97617910427,439.79164309579,466.09106516521,493.49262474744,523.2511306012],description:"Claudio di Veroli's well temperament (1978)"},vertex_chrom:{frequencies:[261.6255653006,271.89678302796,317.17549194805,349.22823143301,391.99543598175,407.38487419079,448.5538823653,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 266.7 + 166.7 cents"},vertex_chrom2:{frequencies:[261.6255653006,274.52698453615,323.3415889232,349.22823143301,391.99543598175,411.32572372413,484.46499093218,523.2511306012],description:"A vertex tetrachord from Chapter 5, 83.3 + 283.3 + 133.3 cents"},vertex_chrom3:{frequencies:[261.6255653006,275.18850165466,324.90175210669,349.22823143301,391.99543598175,412.31687950427,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 287.5 + 125 cents"},vertex_chrom4:{frequencies:[261.6255653006,275.40936140075,325.42347822215,349.22823143301,391.99543598175,412.64779522483,487.58430040208,523.2511306012],description:"A vertex tetrachord from Chapter 5, 88.9 + 288.9 + 122.2 cents"},vertex_chrom5:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 133.3 + 266.7 + 100 cents"},vertex_diat:{frequencies:[261.6255653006,299.37379946195,323.3415889232,349.22823143301,391.99543598175,448.5538823653,484.46499932732,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 133.3 + 133.3 cents"},vertex_diat10:{frequencies:[261.6255653006,295.79278388132,324.90175210669,349.22823143301,391.99543598175,443.18842137843,486.80259447109,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 162.5 + 125 cents"},vertex_diat11:{frequencies:[261.6255653006,295.79278388132,306.66641795878,349.22823143301,391.99543598175,443.18842137843,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 62.5 + 225 cents"},vertex_diat12:{frequencies:[261.6255653006,293.66476791741,315.65242990842,349.22823143301,391.99543598175,440,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 125 + 175 cents"},vertex_diat2:{frequencies:[261.6255653006,299.37379946195,329.62755691287,349.22823143301,391.99543598175,448.5538823653,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.3 + 166.7 + 100 cents"},vertex_diat3:{frequencies:[261.6255653006,273.20871865617,311.12698372208,349.22823143301,391.99543598175,409.35055662695,466.16376151809,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 225 + 200 cents"},vertex_diat4:{frequencies:[261.6255653006,297.93622032612,329.62755691287,349.22823143301,391.99543598175,446.39994737251,493.88330125613,523.2511306012],description:"A vertex tetrachord from Chapter 5, 225 + 175 + 100 cents"},vertex_diat5:{frequencies:[261.6255653006,275.18850165466,315.65242990842,349.22823143301,391.99543598175,412.31687950427,472.94426956511,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 237.5 + 175 cents"},vertex_diat7:{frequencies:[261.6255653006,293.66476791741,306.66641795878,349.22823143301,391.99543598175,440,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 200 + 75 + 225 cents"},vertex_diat8:{frequencies:[261.6255653006,277.18263097687,306.66641795878,349.22823143301,391.99543598175,415.30469757995,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 100 + 175 + 225 cents"},vertex_diat9:{frequencies:[261.6255653006,295.79278388132,320.24370022528,349.22823143301,391.99543598175,443.18842137843,479.82340237272,523.2511306012],description:"A vertex tetrachord from Chapter 5, 212.5 + 137.5 + 150 cents"},vertex_sdiat:{frequencies:[261.6255653006,275.18850165466,306.66641795878,349.22823143301,391.99543598175,412.31687950427,459.48046426806,523.2511306012],description:"A vertex tetrachord from Chapter 5, 87.5 + 187.5 + 225 cents"},vertex_sdiat2:{frequencies:[261.6255653006,273.20871865617,302.26980244078,349.22823143301,391.99543598175,409.35055662695,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 75 + 175 + 250 cents"},vertex_sdiat3:{frequencies:[261.6255653006,265.43099677612,302.26980244078,349.22823143301,391.99543598175,397.69714089209,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 25 + 225 + 250 cents"},vertex_sdiat4:{frequencies:[261.6255653006,271.8968348557,302.26980244078,349.22823143301,391.99543598175,407.38495184466,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 66.7 + 183.3 + 250 cents"},vertex_sdiat5:{frequencies:[261.6255653006,299.37374239667,302.26980244078,349.22823143301,391.99543598175,448.55379686399,452.89298412314,523.2511306012],description:"A vertex tetrachord from Chapter 5, 233.33 + 16.67 + 250 cents"},vicentino1:{frequencies:[261.6255653006,267.54129532085,273.59078691818,279.77706779472,286.10322937235,292.57243455474,295.8616864168,299.18791603519,305.95298478736,312.87102146627,319.94548489658,327.17991022208,330.85823737058,334.57791819083,342.14320575162,349.87955533643,357.79083283678,365.88099775759,374.15409293384,382.6142546815,391.26571058456,395.66452371628,400.11279059885,409.15991580663,418.41160951721,427.87249484695,437.54730686196,442.46644183113,447.44088028055,457.55816161244,467.90420651233,478.48419305869,489.30340830564,494.80441235385,500.36726155789,511.68128147674,523.2511306012],description:"Usual Archicembalo tuning, 31-tET plus D,E,G,A,B a 10th tone higher"},vicentino2:{frequencies:[261.6255653006,262.40966637115,273.59078691818,274.41074818102,279.77706779472,280.61556956011,292.57243455474,293.44928279173,305.95298478736,306.86993670158,312.87102146627,313.80870698104,327.17991022208,328.16047998243,342.14320575162,343.16862103779,349.87955533643,350.92815470883,365.88099775759,366.97755604579,374.15409293384,391.26571058456,392.4383479509,409.15991580663,410.38618254261,418.41160951721,419.66560148231,437.54730686196,438.85865161274,457.55816161244,458.92947695163,467.90420651233,469.30653196482,489.30340830564,490.7698679226,511.68128147674,523.2511306012],description:"Alternative Archicembalo tuning, lower 3 rows the same upper 3 rows 3/2 higher"},vicentino2q217:{frequencies:[261.6255653006,262.46259217279,273.59078691818,274.46609608433,279.77706779472,280.67216895906,292.57243455474,293.50847071582,305.95298478736,306.93183153514,312.87102146627,313.87199953275,327.17991022208,328.2266690608,342.14320575162,343.23783523487,349.87955533643,350.99893596542,365.88099775759,367.05157442308,374.15409293384,391.26571058456,392.51750150462,409.15991580663,410.46895395112,418.41160951721,419.7502468954,437.54730686196,438.9471656765,457.55816161244,459.02204178186,467.90420651233,469.40118981889,489.30340830564,490.86885203792,511.68128147674,523.2511306012],description:"Vicentino's second tuning, 217-tET version"},vicentino36:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,279.93529690293,280.80602334765,292.50627485027,293.41610276971,305.64177427204,306.59245933664,312.97717714283,313.95067836072,327.03195662575,328.04917632434,341.71789064962,349.91912034749,351.00752840096,365.63284274659,366.77012764335,374.40803131735,375.5726110527,391.22147055517,392.4383479509,408.78994578219,410.06146948999,418.60090448096,419.90294514449,437.39889945791,438.75941205608,457.04105505291,458.46266117889,468.01003810189,469.46576276783,489.02683710225,490.54793493862,510.98743222773,523.2511306012],description:"Vicentino's second tuning of 1555"},victor_eb:{frequencies:[261.6255653006,276.45300885359,293.16631378471,311.00963644582,328.52867116285,348.83408706747,368.60401198904,391.83966133014,414.6795130731,439.03603741286,465.77732204887,492.79300649794,523.2511306012],description:"Equal beating Victorian piano temperament, interpr. by Bill Bremmer (improved)"},victorian:{frequencies:[261.6255653006,276.5429423948,293.32570896007,310.76776326996,328.29744538229,349.22823143301,368.92737853004,391.99543598175,414.58565256441,438.73106346722,465.89457252293,492.17459484008,523.2511306012],description:"Form of Victorian temperament (1885)"},vitale1:{frequencies:[261.6255653006,280.31310567921,294.32876096318,305.22982618403,327.03195662575,336.37572681506,343.38355445704,348.83408706747,373.75080757229,392.4383479509,420.46965851882,441.49314144476,457.84473927605,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Rami Vitale's 7-limit just scale"},vitale2:{frequencies:[261.6255653006,274.70684356563,294.32876096318,299.00064605783,305.22982618403,313.95067836072,336.37572681506,348.83408706747,366.27579142084,392.4383479509,412.06026534844,441.49314144476,448.50096908674,457.84473927605,470.92601754108,504.56359022259,523.2511306012],description:"Rami Vitale, inverse mode of vitale1"},vitale3:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,412.06026534844,420.46965851882,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,515.07533168556,523.2511306012],description:"Superset of several Byzantine scales by Rami Vitale, TL 29-Aug-2001"},vogel_21:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,310.07474405997,313.95067836072,321.55899383997,330.74639366397,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,413.43299207996,418.60090448096,428.74532511996,440.99519155196,465.11211608996,482.33849075995,496.11959049595,523.2511306012],description:"Martin Vogel's 21-tone Archytas system, see Divisions of the tetrachord"},vogelh_b:{frequencies:[261.6255653006,276.37000081643,292.73769384471,310.07474405997,327.54963108844,349.78078158391,367.49599295996,391.37619916626,413.43299207996,437.91808280662,465.11211608996,489.99465727995,523.2511306012],description:"Harald Vogel's temperament, van Eeken organ in Bunschoten, Immanuelkerk, 1992"},vogelh_fisk:{frequencies:[261.6255653006,274.01856817608,292.73769384471,312.85332572834,327.54963108844,349.78078158391,366.49445363528,391.37619916626,409.75340805561,437.91808280662,467.82492621575,489.99465727995,523.2511306012],description:"Modified meantone tuning of Fisk organ in Memorial Church at Stanford"},vogelh_hb:{frequencies:[261.6255653006,276.50527247638,293.79744652436,312.85332572834,329.92547760025,349.78078158391,369.82037393809,392.08397832814,413.47189899094,440.29822362186,467.82492621575,494.44133512215,523.2511306012],description:"Harald Vogel hybrid meantone (1984)"},vogelh_jakobi:{frequencies:[261.6255653006,275.2485073924,292.86986732103,310.4251397446,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.87276088221,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Harald Vogel's temperament for the Schnitger organ in St. Jakobi, Hamburg"},volans:{frequencies:[261.6255653006,288.78654445823,322.09885310804,352.06379107796,388.6137256405,429.95038611107,482.60299106564,523.2511306012],description:"African scale according to Kevin Volans 1/1=G"},vong:{frequencies:[261.6255653006,287.78812183066,324.77656382143,353.19451315581,392.4383479509,431.68218274599,476.53227965466,523.2511306012],description:"Vong Co Dan Tranh scale, Vietnam"},"vries19-72":{frequencies:[261.6255653006,271.89678302796,282.57123920205,293.66476791741,305.19382000629,314.13668154225,326.46944327063,339.28638158975,352.60650301302,366.44956000397,377.18735172911,391.99543598175,407.38487419079,423.37848741825,452.89298412314,470.6732130613,489.15147723638,508.3551866238,523.2511306012],description:"Leo de Vries 19/72 Through-Transposing-Tonality 18 tone scale"},"vries35-72":{frequencies:[261.6255653006,320.24370022528,326.46944327063,332.81622067851,339.28638158975,345.88232658126,352.60650301302,359.46139971304,366.44956000397,448.5538823653,457.27406033445,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Leo de Vries 35/72 Through-Transposing-Tonality 17 tone scale"},"vries5-72":{frequencies:[261.6255653006,269.29177952703,274.52698453615,282.57123920205,288.06460709314,296.5055443788,302.26980244078,317.17549194805,332.81622067851,349.22823143301,366.44956000397,384.52011812375,403.48177901006,423.37848741825,444.25635547592,466.16376151809,489.15147723638,513.27277840175,523.2511306012],description:"Leo de Vries 5/72 Through-Transposing-Tonality 18 tone scale"},"vries6-31":{frequencies:[261.6255653006,292.57243455474,299.18791603519,334.57791819083,342.14320575162,382.6142546815,391.26571058456,437.54730686196,447.44088028055,500.36726155789,511.68128147674,523.2511306012],description:'Leo de Vries 6/31 TTT used in "For 31-tone organ" (1995)'},vulture:{frequencies:[261.6255653006,265.58852967049,269.02996542365,272.51599294435,276.04719319079,279.62414831161,283.24745441839,286.9177088442,290.63552324927,294.40151054717,298.21629835234,302.73351960911,306.6562716924,310.62985211059,314.65492307423,318.73214815075,322.86220682342,327.0457799678,331.28356479042,335.57625992643,339.9245807679,344.32924417279,349.54496173019,354.07428378691,358.66229781376,363.30976018416,368.01744541334,372.78612960355,377.61660747204,382.50967536449,387.46614872711,392.486844677,398.43202813578,403.59481739244,408.82450722915,414.12195980508,419.48805795853,424.92368633675,430.42975080549,436.00715908665,441.65684067409,447.37972696622,453.17677170128,460.0412514682,466.0023613576,472.04071122634,478.15730738573,484.35315820906,490.6292962557,496.98675620078,503.42659462849,509.94988192555,516.55769649554,523.2511306012],description:"Vulture temperament, g=475.542233, 5-limit"},walker_21:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,327.03195662575,336.37572681506,348.83408706747,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:'Douglas Walker, 1977, for "out of the fathomless dark/into the limitless light'},walkerr_11:{frequencies:[261.6255653006,291.47537246454,299.00064605783,333.11471138804,341.71502406609,380.70252730062,390.53145607553,435.08860262928,484.72943438718,497.2441172906,510.08190181294,523.2511306012],description:'Robert Walker, "Seven to Pi" scale, TL 09-07-2002'},wauchope:{frequencies:[261.6255653006,274.70684356563,305.22982618403,327.03195662575,366.27579142084,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Symmetrical 7-limit JI whole-half step scale, Ken Wauchope"},wendell1:{frequencies:[261.6255653006,276.25045813601,293.35468319005,310.78176509232,328.42642049784,348.83408706747,369.47972269069,391.8804287311,414.37568699689,438.92294511207,466.17264740545,492.63963050051,523.2511306012],description:"Robert Wendell's Natural Synchronous well-temperament (2003)"},wendell1r:{frequencies:[261.6255653006,276.25560153172,293.36810129327,310.78755172318,328.43721515437,348.83408706747,369.49186704867,391.89926583958,414.38340229758,438.93945576706,466.18132758477,492.65582273156,523.2511306012],description:"Rational version of wendell1 by Gene Ward Smith"},wendell2:{frequencies:[261.6255653006,276.37223575148,293.46077701205,310.91876490958,328.50868755512,348.91469434159,369.57235851938,392.00856887742,414.55835341999,438.92345217603,466.37814713124,492.76314493882,523.2511306012],description:"Robert Wendell's Very Mild Synchronous well-temperament (2003)"},werck1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"Werckmeister I (just intonation)"},werck3:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,491.65745674141,523.2511306012],description:"Andreas Werckmeister's temperament III (the most famous one, 1681)"},werck3_eb:{frequencies:[261.6255653006,275.62199471997,292.52927773082,310.07474405997,328.06371231954,348.83408706747,367.49599295996,391.41011079897,413.43299207996,437.41828331138,465.11211608996,492.10978071589,523.2511306012],description:"Werckmeister III equal beating version, 5/4 beats twice 3/2"},werck3_mod:{frequencies:[261.6255653006,275.62199471997,292.34127285051,310.07474405997,327.77163799145,348.83408706747,367.49599295996,391.11111150212,413.43299207996,437.02884834934,465.11211608996,490.82535372381,523.2511306012],description:"Modified Werckmeister III with B between E and F#, Nijsse (1997), organ Soest"},werck4:{frequencies:[261.6255653006,274.37997440822,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,390.66969766777,411.5699614066,437.52264545758,467.21778431035,489.99465727995,523.2511306012],description:"Andreas Werckmeister's temperament IV"},werck5:{frequencies:[261.6255653006,276.55731914056,294.32876096318,311.12698372208,328.88393162803,350.01785633742,369.99442271164,392.4383479509,413.43299207996,440,466.69047534984,493.32589719545,523.2511306012],description:"Andreas Werckmeister's temperament V"},werck6:{frequencies:[261.6255653006,275.69145590816,291.35574317567,310.77945938738,328.70904358281,348.83408706747,368.91086905696,391.43977709097,413.53718386224,438.27872477707,466.16918908107,493.06356537421,523.2511306012],description:`Andreas Werckmeister's "septenarius" tuning VI`},werck6_dup:{frequencies:[261.6255653006,275.62199471997,291.49363009634,310.67551062492,328.56569462012,348.83408706747,368.92162485303,391.67947347082,413.43299207996,438.08759304581,466.01326570444,492.84854168382,523.2511306012],description:"Andreas Werckmeister's VI in the interpretation by Dupont (1935)"},werck_cl5:{frequencies:[261.6255653006,274.56549986328,292.86986732103,309.97737261399,327.84547867349,349.70184487387,366.99801003998,391.46454285105,412.14811800305,438.2147004401,466.26912673157,490.54793493862,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/5-comma"},werck_cl6:{frequencies:[261.6255653006,275.36250599118,293.11251278827,310.35057963607,328.38895179964,349.55706816887,367.91095120397,391.62667645325,413.31226430431,438.75941205608,466.0760911248,491.56462836305,523.2511306012],description:"Werckmeister Clavier temperament (Nothw. Anm.) Poletti reconstr. 1/6-comma"},werck_puzzle:{frequencies:[261.6255653006,272.52663052146,291.60349465796,306.59245933664,327.03195662575,347.47145391486,365.18568489875,389.71308164569,408.78994578219,436.04260883433,461.93263873387,490.54793493862,523.2511306012],description:"From Hypomnemata Musica, 1697, p. 49, 1/1=192, fifths tempered superparticular"},white:{frequencies:[261.6255653006,275.93321340298,289.72987407313,294.32876096318,305.22982618403,310.42486507835,327.03195662575,331.11985608357,343.38355445704,348.83408706747,367.91095120397,386.30649876417,392.4383479509,406.97310157871,413.89982010446,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"Justin White's 22-tone scale based on Al-Farabi's tetrachord"},wicks:{frequencies:[261.6255653006,276.65728054629,293.45376109391,310.36444075595,329.26048109616,348.28499607284,369.54304125029,391.93835601961,414.48592121967,439.68064187634,465.04666232412,493.39072329352,523.2511306012],description:"Mark Wicks' equal beating temperament for organs (1887)"},wier_cl:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Danny Wier, ClownTone (2003)"},wiesse:{frequencies:[261.6255653006,277.49581689502,294.32876096318,312.18279369479,331.11985608357,348.83408706747,369.99442271164,392.4383479509,416.24372513446,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Von Wiesse's 1/2 Pyth. comma tuning"},wilson1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 19-tone Scott scale (1976)"},wilson11:{frequencies:[261.6255653006,271.31540105247,277.4816601673,291.35574317567,305.22982618403,312.16686768822,325.57848126297,332.97799220076,348.83408706747,366.27579142084,374.60024122586,392.4383479509,406.97310157871,416.22249025095,437.0336147635,457.84473927605,468.25030153232,488.36772189445,499.46698830115,523.2511306012],description:"Wilson 11-limit 19-tone scale, 1977"},wilson1t:{frequencies:[261.6255653006,273.34666024156,279.64601698606,292.92954243175,306.05308604033,313.10617410217,327.13365148064,334.67254769546,349.66622272551,366.27579142084,374.71672979763,391.50442319155,409.04422481132,418.47077311482,437.21869500104,457.98711402938,468.54156606881,489.53271107931,500.81414097667,523.2511306012],description:"Wilson's Scott scale, wilson1, in minimax minerva tempering"},wilson2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,392.4383479509,406.97310157871,418.60090448096,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 19-tone, 1975"},wilson3:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Wilson 19-tone"},wilson5:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson's 22-tone 5-limit scale"},wilson7:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson's 22-tone 7-limit 'marimba' scale"},wilson7_2:{frequencies:[261.6255653006,263.718569823,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,329.64821227876,343.38355445704,353.19451315581,366.27579142084,376.74081403286,392.4383479509,408.78994578219,412.06026534844,436.04260883433,439.53094970501,457.84473927605,470.92601754108,490.54793493862,494.47231841813,523.2511306012],description:"Wilson 7-limit scale"},wilson7_3:{frequencies:[261.6255653006,267.90457886781,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Wilson 7-limit scale"},wilson7_4:{frequencies:[261.6255653006,271.31540105247,279.06726965397,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,372.08969287196,387.59343007496,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 7-limit 22-tone scale XH 3, 1975"},wilson_17:{frequencies:[261.6255653006,275.93321340298,290.69507255622,294.32876096318,310.42486507835,327.03195662575,331.11985608357,348.83408706747,367.91095120397,372.50983809402,392.4383479509,413.89982010446,436.04260883433,441.49314144476,465.11211608996,490.54793493862,496.67978412536,523.2511306012],description:"Wilson's 17-tone 5-limit scale"},wilson_31:{frequencies:[261.6255653006,265.7783520514,271.31540105247,279.06726965397,285.40970760065,294.32876096318,299.00064605783,305.22982618403,313.95067836072,321.08592105074,327.03195662575,332.22294006425,339.14425131559,348.83408706747,354.37113606854,361.75386806997,372.08969287196,380.54627680087,392.4383479509,398.6675280771,406.97310157871,418.60090448096,428.11456140098,441.49314144476,448.50096908674,457.84473927605,470.92601754108,481.6288815761,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:"Wilson 11-limit 31-tone scale XH 3, 1975"},wilson_41:{frequencies:[261.6255653006,265.7783520514,271.31540105247,275.62199471997,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,321.08592105074,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.37113606854,361.75386806997,367.49599295996,372.08969287196,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,413.43299207996,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,481.6288815761,490.54793493862,496.67978412536,504.56359022259,515.07533168556,523.2511306012],description:"Wilson 11-limit 41-tone scale XH 3, 1975"},wilson_alessandro:{frequencies:[261.6255653006,265.58571790036,269.80136421624,270.50397193556,275.93321340298,278.232656848,284.55612632182,286.15296204753,288.53757006459,294.32876096318,295.09524211152,303.52653474327,304.3169684275,305.22982618403,309.14739649778,314.76825825228,321.92208230347,324.60476632267,327.03195662575,331.98214737546,337.2517052703,340.06213614756,343.38355445704,347.79082106,351.18772614924,354.11429053382,359.73515228832,365.180362113,367.91095120397,370.97687579734,379.40816842909,386.30649876417,391.2646736925,392.4383479509,393.46032281536,404.70204632437,405.75595790334,413.89982010446,417.348985272,419.69101100305,429.2294430713,432.80635509689,441.49314144476,442.64286316727,449.66894036041,456.47545264125,457.84473927605,463.72109474667,472.15238737843,482.88312345521,486.907149484,490.54793493862,494.63583439645,505.87755790546,515.07533168556,521.68623159,523.2511306012],description:"D'Alessandro, genus [3 3 3 5 7 11 11] plus 8 pigtails, XH 12, 1989"},wilson_bag:{frequencies:[261.6255653006,294.32876096318,318.85615771011,349.51540364377,392.4383479509,425.14154361347,466.02053819169,523.2511306012],description:"Erv's bagpipe, mar '97, after Theodore Podnos (37-39)."},wilson_class:{frequencies:[261.6255653006,272.52663052146,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,381.53728273004,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"Class Scale, Erv Wilson, 9 july 1967"},wilson_dia1:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,362.25078272391,371.78369805875,381.83190611439,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycles, tetrachordal form"},wilson_dia2:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle, conjunctive form"},wilson_dia3:{frequencies:[261.6255653006,268.51044859798,275.76748774928,283.42769574232,291.52562990638,300.09991313892,309.19384990071,318.85615771011,329.14184021688,340.11323489078,351.84127747322,364.40703738298,377.90359432309,392.4383479509,403.65087217807,415.52295665389,428.11456140098,441.49314144476,455.73485568492,470.92601754108,487.16484573215,504.56359022259,523.2511306012],description:"Wilson Diaphonic cycle on 3/2"},wilson_dia4:{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,324.77656382143,336.37572681506,348.83408706747,358.01393146398,381.83190611439,377.90359432309,388.70083987518,400.13321751856,412.25846653428,425.14154361347,438.85578695585,453.48431318771,469.12170329763,485.87604984397,503.87145909745,523.2511306012],description:"Wilson Diaphonic cycle on 4/3"},wilson_duo:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,361.75386806997,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Wilson 'duovigene'"},wilson_enh:{frequencies:[261.6255653006,264.37951861955,279.06726965397,348.83408706747,392.4383479509,396.56927792933,418.60090448096,523.2511306012],description:"Wilson's Enharmonic & 3rd new Enharmonic on Hofmann's list of superp. 4chords"},wilson_enh2:{frequencies:[261.6255653006,265.7783520514,275.62199471997,348.83408706747,392.4383479509,398.6675280771,413.43299207996,523.2511306012],description:"Wilson's 81/64 Enharmonic, a strong division of the 256/243 pyknon"},wilson_facet:{frequencies:[261.6255653006,271.31540105247,274.70684356563,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,366.27579142084,387.59343007496,392.4383479509,406.97310157871,412.06026534844,436.04260883433,452.19233508746,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson study in 'conjunct facets', Hexany based"},wilson_gh1:{frequencies:[261.6255653006,286.54684077898,313.84200313831,343.73718179912,398.2573899082,436.19359890902,477.74343791599,523.2511306012],description:"Golden Horagram nr.1: 1phi+0 / 7phi+1"},wilson_gh11:{frequencies:[261.6255653006,294.51148904212,316.87124012705,356.70145865606,383.78276711707,432.02365977685,464.82353976398,523.2511306012],description:"Golden Horagram nr.11: 1phi+0 / 3phi+1"},wilson_gh2:{frequencies:[261.6255653006,290.51361927671,322.59142140135,358.21117585067,382.16527586729,424.3630293795,471.22015545621,523.2511306012],description:"Golden Horagram nr.2: 1phi+0 / 6phi+1"},wilson_gh50:{frequencies:[261.6255653006,270.80964219588,280.31611759965,306.81496952381,317.58537244461,347.60736272384,359.80973785756,372.44046183271,407.64801512355,421.95805149354,461.8466031062,478.05922145,523.2511306012],description:"Golden Horagram nr.50: 7phi+2 / 17phi+5"},wilson_helix:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,425.14154361347,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"Wilson's Helix Song, see David Rosenthal, Helix Song, XH 7&8, 1979. Also Secor, 1964"},wilson_hypenh:{frequencies:[261.6255653006,266.38239376061,271.31540105247,348.83408706747,392.4383479509,399.57359064092,406.97310157871,523.2511306012],description:"Wilson's Hyperenharmonic, this genus has a CI of 9/7"},wilson_l1:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,314.76825825228,327.03195662575,337.2517052703,343.38355445704,359.73515228832,366.27579142084,377.72190990274,392.4383479509,404.70204632437,419.69101100305,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l2:{frequencies:[261.6255653006,267.07609791103,279.79400733536,287.78812183066,294.32876096318,305.22982618403,314.76825825228,327.03195662575,335.75280880244,348.83408706747,359.73515228832,373.05867644715,381.53728273004,392.4383479509,411.12588832951,419.69101100305,436.04260883433,447.67041173658,457.84473927605,479.64686971777,490.54793493862,503.62921320365,523.2511306012],description:"Wilson 11-limit scale"},wilson_l3:{frequencies:[261.6255653006,269.80136421624,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,332.97799220076,343.38355445704,359.73515228832,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 11-limit scale"},wilson_l4:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l5:{frequencies:[261.6255653006,267.07609791103,279.79400733536,285.40970760065,299.00064605783,305.22982618403,313.95067836072,327.03195662575,332.97799220076,348.83408706747,356.10146388137,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,479.64686971777,488.36772189445,508.71637697339,523.2511306012],description:"Wilson 11-limit scale"},wilson_l6:{frequencies:[261.6255653006,267.57160087561,277.4816601673,285.40970760065,294.32876096318,305.22982618403,312.16686768822,327.03195662575,332.97799220076,348.83408706747,356.76213450082,369.97554688974,381.53728273004,392.4383479509,406.97310157871,416.22249025095,436.04260883433,443.97065626768,457.84473927605,475.68284600109,490.54793493862,499.46698830115,523.2511306012],description:"Wilson 1 3 7 9 11 15 eikosany plus 9/8 and tritone. Used Stearns: Jewel"},window:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,297.67175429757,306.59245933664,327.03195662575,334.88072358477,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,446.50763144636,459.88868900496,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Window lattice"},wonder1:{frequencies:[261.6255653006,272.72256190885,277.86237426839,283.09905309511,288.43442562998,293.8703485525,299.4087202614,312.10830899518,317.99039712482,323.98334274799,330.08923137594,336.31019538088,342.64839962317,357.18202566262,363.91358676728,370.77201292014,377.75969724053,384.87907140314,392.13262172187,408.76514672187,416.46885901676,424.31776026786,432.3145818485,440.46211650535,448.76319953449,467.79774494453,476.61400354229,485.59641603135,494.74811665626,504.07229015717,513.57219283465,523.2511306012],description:"Wonder Scale, gen=~233.54 cents, 8/7+1029/1024^7/25, LS 12:14:18:21, M.Schulter"},wonder36:{frequencies:[261.6255653006,271.89678302796,277.18263097687,282.57123920205,288.06460709314,293.66476791741,299.37379946195,311.12698372208,317.17549194805,323.3415889232,329.62755691287,336.03572815422,342.56848033562,356.01745236555,362.93866220634,369.99442271164,377.18735172911,384.52011812375,391.99543598175,407.38487419079,415.30469757995,423.37848741825,431.60923940535,440,448.5538823653,466.16376151809,475.22628419761,484.46499093218,493.88330125613,503.48470957687,513.27277840175,523.2511306012],description:"Wonder Scale, 36-tET version"},wronski:{frequencies:[261.6255653006,277.97716313189,294.32876096318,308.86351459099,327.03195662575,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,463.29527188648,494.18162334558,523.2511306012],description:`Wronski's scale, from Jocelyn Godwin, "Music and the Occult", p. 105.`},wurschmidt:{frequencies:[261.6255653006,275.93321340298,294.32876096318,313.95067836072,331.11985608357,353.19451315581,367.91095120397,392.4383479509,413.89982010446,441.49314144476,470.92601754108,490.54793493862,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's normalised 12-tone system"},wurschmidt1:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,490.54793493862,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-1 19-tone scale"},wurschmidt2:{frequencies:[261.6255653006,272.52663052146,282.55561052465,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,484.4917875937,502.32108537715,523.2511306012],description:"W\xEF\xBF\xBDrschmidt-2 19-tone scale"},wurschmidt_31:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system"},wurschmidt_31a:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,372.08969287196,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,454.2110508691,465.11211608996,476.27480687611,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 31-tone system with alternative tritone"},wurschmidt_53:{frequencies:[261.6255653006,264.89588486686,267.90457886781,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,297.67175429757,301.39265122629,306.59245933664,310.07474405997,313.95067836072,319.36714514233,321.48549464138,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,396.89567239676,401.85686830172,408.78994578219,413.43299207996,418.60090448096,425.82286018978,428.6473261885,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.27480687611,484.4917875937,490.54793493862,496.11959049595,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"W\xEF\xBF\xBDrschmidt's 53-tone system"},wurschmidt_temp:{frequencies:[261.6255653006,270.6876810201,276.46178051834,282.35904862511,288.38211267756,294.53365605714,300.81641938515,307.23320174366,313.78686192261,320.48031969341,327.31655710978,338.6540596739,345.87796520471,353.25596548096,360.79134753214,368.48746850413,376.34775715481,384.37571538166,392.57491978195,400.94902556208,409.5017589506,423.68596790742,432.72370810117,441.95423435346,451.38165902684,461.01018486849,470.84409628664,480.88777706987,491.14570185547,501.62244073019,512.32266126632,523.2511306012],description:"W\xEF\xBF\xBDrschmidt temperament, 5-limit, g=387.744375, 5-limit"},"t-side":{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"Tau-on-Side"},"t-side2":{frequencies:[261.6255653006,294.32876096318,306.59245933664,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,459.88868900496,470.92601754108,490.54793493862,523.2511306012],description:"Tau-on-Side opposite"},tagawa_55:{frequencies:[261.6255653006,277.01530443593,277.97716313189,279.06726965397,280.31310567921,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,296.50897400735,299.00064605783,301.87565226992,305.22982618403,307.79478270659,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,356.76213450082,359.73515228832,362.25078272391,366.27579142084,369.35373924791,370.63621750918,373.75080757229,377.90359432309,380.54627680087,383.71749577421,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,442.75095666255,444.76346101102,448.50096908674,453.48431318771,457.84473927605,461.69217405988,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,488.36772189445,490.54793493862,492.47165233054,494.18162334558,523.2511306012],description:"Rick Tagawa, 17-limit diamond subset with good 72-tET approximation, 2003"},tamil:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,372.50983809402,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.67978412536,523.2511306012],description:"Possible Tamil sruti scale. Alternative 11th sruti is 45/32 or 64/45"},tamil_vi:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.91095120397,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale in Tamil music, Vidyasankar Sundaresan"},tamil_vi2:{frequencies:[261.6255653006,275.62199471997,290.69507255622,310.07474405997,327.03195662575,348.83408706747,367.49599295996,387.59343007496,413.43299207996,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Vilarippalai scale with 1024/729 tritone"},tanaka:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,331.11985608357,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,459.88868900496,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"26-note choice system of Shoh\xEF\xBF\xBD Tanaka, Studien i.G.d. reinen Stimmung (1890)"},tanbur:{frequencies:[261.6255653006,268.33391312882,275.39533189537,282.83844897362,290.69507255622,299.00064605783,306.66732929008,314.73752216614,323.24394168414,332.22294006425,341.71502406609,351.76546595039,523.2511306012],description:"Sub-40 tanbur scale"},tansur:{frequencies:[261.6255653006,275.71279889585,293.19126194179,310.07474405997,328.21516866261,348.83408706747,367.61706537823,391.78834765065,413.56919813705,438.48689188122,465.11211608996,491.022754507,523.2511306012],description:"William Tans'ur temperament from A New Musical Grammar (1746) p. 73"},tartini_7:{frequencies:[261.6255653006,294.32876096318,313.95067836072,367.91095120397,392.4383479509,418.60090448096,490.54793493862,523.2511306012],description:"Tartini (1754) with 2 neochromatic tetrachords, 1/1=d, Minor Gipsy (Slovakia)"},taylor_g:{frequencies:[261.6255653006,274.70684356563,287.78812183066,294.32876096318,313.95067836072,353.19451315581,366.27579142084,392.4383479509,412.06026534844,418.60090448096,431.68218274599,470.92601754108,523.2511306012],description:"Gregory Taylor's Dutch train ride scale based on pelog_schmidt"},taylor_n:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,348.83408706747,367.9112241576,391.33200541501,413.90012676351,437.76975193523,465.63764214343,491.10256480205,523.2511306012],description:"Nigel Taylor's Circulating Balanced temperament (20th cent.)"},telemann:{frequencies:[261.6255653006,264.94361147373,271.70648167539,275.15237829755,278.64197723942,282.17583275232,289.3785657319,293.0485888979,296.76515515861,300.52885648597,304.34029066685,308.20006306951,312.10878854255,316.06708432391,324.13491490251,328.24573110938,332.40868242763,336.62443200122,345.21700307457,349.59519124833,354.02890545793,363.06573983159,367.67029324081,372.33324354561,377.05533136015,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,417.05301810033,422.34226102699,433.12283887627,438.61588607285,444.17860098504,449.81186203693,461.29362042034,467.14394139401,473.06846134744,485.14386048744,491.29666030217,497.52749252881,503.83734680745,516.69814597997,523.2511306012],description:"G.Ph. Telemann (1767). 55-tET interpretation of Klang- und Intervallen-Tafel"},telemann_28:{frequencies:[261.6255653006,264.94361147373,275.15237829755,278.64197723942,293.0485888979,296.76515515861,308.20006306951,312.10878854255,328.24573110938,332.40868242763,345.21700307457,349.59519124833,354.02890545793,367.67029324081,372.33324354561,386.67993129161,391.58396987353,396.55020354877,406.67242132093,411.83001550364,438.61588607285,444.17860098504,461.29362042034,467.14394139401,473.06846134744,491.29666030217,497.52749252881,516.69814597997,523.2511306012],description:"Telemann's tuning as described on Sorge's monochord, 1746, 1748, 1749"},"temes-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,378.62819763364,399.72843132859,423.31905787312,446.91000942727,523.2511306012],description:"Temes' 5-tone Phi scale mixed with its octave inverse"},"temes-ur":{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312],description:"Temes' Ur 5-tone phi scale"},temes:{frequencies:[261.6255653006,306.31659399917,323.38703872151,342.47239171077,361.55773069062,423.31905787312,495.63057556553,523.2511306012,554.13187513888,585.01259700885,684.94462120932],description:"Temes' 5-tone Phi scale / 2 cycle"},"temes2-mix":{frequencies:[261.6255653006,306.31659399917,323.38698268281,342.47239171077,361.55773069062,399.72843132859,423.31905787312,468.0102705885,495.63057556553,523.2511306012,552.41124604023,585.01259700885,646.77396536561,684.94438778203,757.25639526728,799.45686265718,846.63811574624,893.82001885454,1046.5022612024],description:"Temes' 2 cycle Phi scale mixed with its 4/1 inverse"},temp10coh:{frequencies:[261.6255653006,279.06726965397,299.10339764541,320.57805584394,343.5945271479,368.2635494613,394.70435354475,423.05284121745,453.57582505819,488.36772189445,523.2511306012],description:"Differential coherent 10-tone scale, OdC, 2003"},temp10ebss:{frequencies:[261.6255653006,280.43397904206,300.58585223371,322.17714382919,345.31067040124,370.09659148016,396.65293718743,425.1061627261,455.59176355181,488.25490599611,523.2511306012],description:`Cycle of 10 equal "beating" 15/14's`},temp11ebst:{frequencies:[261.6255653006,278.68301283272,296.80966039395,316.07252488244,336.70993118161,358.64093492832,381.94662420398,406.71316497313,433.24697173408,461.44397806515,491.40843569917,523.2511306012],description:"Cycle of 11 equal beating 9/7's"},temp12coh3:{frequencies:[261.6255653006,279.8393060116,294.68135606466,311.32770136359,332.21069717879,353.56473801237,370.2386298036,397.61708850394,418.97112933752,440.1984563065,471.2874275201,496.80305467842,523.2511306012],description:"Differential coherent scale, interval=3, OdC, 2003"},temp12ebf:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.5354160273,349.23174343306,369.98176018664,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating temperament tuned by The Best Factory Tuners (1840)"},temp12ebf4:{frequencies:[261.6255653006,276.98801737971,293.51517393789,310.79793252689,329.39098365485,348.83408706747,369.75126958642,391.78747833067,414.83115644933,439.62189128662,465.54602917011,493.43560586205,523.2511306012],description:"Eleven equal beating fifths and just fourth"},temp12ebfo:{frequencies:[261.6255653006,277.20265787963,293.64844512428,311.16011036869,329.64835309433,349.33484978517,370.11921182839,392.06266066657,415.42830219132,440.09698059047,466.36447845344,494.0968438935,523.62658899088],description:"Equal beating fifths and fifth beats twice octave at C"},temp12ebfp:{frequencies:[261.6255653006,277.75307788644,293.77513637875,310.82931496301,329.94340332986,349.12935317325,370.63270249518,391.99544730302,416.18671544528,440.21980402758,465.80107112682,494.47220378931,523.2511306012],description:"All fifths except G#-Eb beat same as 700 c. C-G"},temp12ebfr:{frequencies:[261.6255653006,277.1880780098,293.58315312731,311.09097992515,329.53543943235,349.23174457993,369.98176152553,391.84186168221,415.185630746,439.77824342227,466.03998361904,493.70667287983,523.2511306012],description:"Exact values of equal beating temperament of Best Factory Tuners (1840)"},temp12ep:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767],description:"Pythagorean comma distributed equally over octave and fifth: 1/19-Pyth comma"},temp12fo1o:{frequencies:[261.6255653006,277.20349049726,293.7089710611,311.19723286579,329.72679517909,349.35966199273,370.1615231373,392.20198585541,415.5548023839,440.29810917508,466.51470234738,494.29230838881,523.72386870485],description:"Fifth beats same octave opposite"},temp12fo2o:{frequencies:[261.6255653006,277.19623399848,293.69359242342,311.17279259662,329.69226891672,349.31393351076,370.10338107372,392.13011658806,415.46777521802,440.19437666896,466.39258399594,494.14997995304,523.55935978973],description:"Fifth beats twice octave opposite"},temp12p10:{frequencies:[261.6255653006,277.12003622197,293.53214922797,310.91625060765,329.32990524605,349.3071136959,369.493381814,391.90691363044,415.11714643072,439.70197837153,465.74281849401,493.32589719545,523.2511306012],description:"1/10-Pyth. comma well temperament"},temp12p6:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,349.6228209638,367.9112241576,391.5530240856,413.43299207996,438.51190905657,466.16376151809,491.10256480205,523.2511306012],description:"Modified 1/6-Pyth. comma temperament"},temp12p8:{frequencies:[261.6255653006,277.02617059261,293.33333347996,310.60041853231,328.88393162803,349.42547049952,369.36822764145,391.77416758435,414.83597850347,439.25532436715,465.90062756558,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament"},temp12p8a:{frequencies:[261.6255653006,276.55731914056,293.33333347996,311.12698372208,328.88393162803,349.42547049952,368.74309237173,391.77416758435,414.83597850347,439.25532436715,466.69047534984,492.49097043477,523.2511306012],description:"1/8-Pyth. comma well temperament, consecutive just fifths"},temp12s17:{frequencies:[261.6255653006,275.41266079541,292.61316553779,309.9334225479,327.2710181906,348.78108411875,367.16108497228,391.29294726693,413.18177371806,437.63868343995,464.97078294553,490.98112850332,523.2511306012],description:'4/17th synt. comma "well"-temperament. OdC 1999'},temp12s3:{frequencies:[261.6255653006,275.79485124716,293.07576161921,310.19140758515,326.99095182327,348.87783040382,367.77258074571,390.81668391305,413.640406907,437.79703699716,465.22877230071,490.42492909292,523.2511306012],description:'1/3 synt. comma "well"-temperament. OdC 1999'},temp12septendec:{frequencies:[261.6255653006,277.01530443593,293.31032234393,310.5638707171,328.83233370046,348.17541215342,368.65631875068,390.34198455955,413.30334035457,437.61515184999,463.35732874365,494.18162334558,523.2511306012],description:"Scale with 18/17 steps"},temp12w2b:{frequencies:[261.6255653006,276.80621914251,293.38957467182,310.9374037046,329.12408537692,349.33498699812,369.32540968366,391.68699838314,414.83365420901,439.33301386008,466.03043161756,492.93477894539,523.2511306012],description:"The fifths on white keys beat twice the amount of fifths on black keys"},temp15coh:{frequencies:[261.6255653006,273.98642352939,286.93424587686,300.52595924487,314.76156220527,329.6715499436,345.28562122078,360.48992106995,377.61407292725,395.54746439596,414.33033691342,434.93480826785,455.53927928881,477.11963158959,499.65025190386,523.2511306012],description:"Differential coherent 15-tone scale, OdC, 2003"},temp15ebmt:{frequencies:[261.6255653006,274.13344448045,287.10161388969,300.54701305042,315.02372625978,330.03318193885,345.59498492211,361.72946206059,379.10151766291,397.1128647533,415.78702800292,435.14840215297,455.99486887387,477.60848441971,500.01748339385,523.2511306012],description:"Cycle of 15 equal beating minor thirds"},temp15ebsi:{frequencies:[261.6255653006,274.09084013406,287.01483652929,300.41443756554,314.84183942382,329.80016763418,345.30896502873,361.38848559819,378.7013656391,396.65136316555,415.2619179078,434.55734100747,455.33280077531,476.87279531786,499.20546063174,523.2511306012],description:"Cycle of 15 equal beating major sixths"},temp15mt:{frequencies:[261.6255653006,272.10155294862,290.46827626332,302.09918118188,314.19580976213,326.77681046955,348.83408706747,362.80207077951,377.32935907335,392.4383479509,418.92774655891,435.70241417719,453.14877154631,471.29371440761,503.10581234929,523.2511306012],description:"Cycle of 15 minor thirds, Petr Parizek"},temp16d3:{frequencies:[261.6255653006,272.52663052146,287.69189096389,299.67905363019,312.16568143019,325.17258353382,338.72144179457,352.83483584176,372.46899992671,387.98854005196,404.15472995283,420.99451113006,438.53594735503,462.93911228358,482.22824196207,502.32108537715,523.2511306012],description:"Cycle of 16 thirds tempered by 1/3 small diesis"},temp16d4:{frequencies:[261.6255653006,271.36369423603,291.82218013836,302.68427617679,313.95067836072,325.63643364742,337.75715313333,350.32902355546,376.74081403286,390.76372105392,405.30858212106,420.39482899491,436.04260883433,468.91646607712,486.37029938793,504.47379566792,523.2511306012],description:"Cycle of 16 thirds tempered by 1/4 small diesis"},temp16ebs:{frequencies:[261.6255653006,273.35566334732,285.38860666159,297.73221513295,311.13803992337,324.88997598926,338.996955196,354.31789928052,370.0343963911,386.15666093499,403.66631166114,421.62802297921,440.05346707662,460.0644954801,480.59216613216,501.64981691394,523.2511306012],description:"Cycle of 16 equal beating sevenths"},temp16ebt:{frequencies:[261.6255653006,273.54317752885,285.74681450472,298.24333695649,311.03977535434,324.14332902314,339.04034606654,354.29488987405,369.91554384313,385.91109319424,402.29053605603,420.91180538217,439.97998583037,459.50580330844,479.50024102158,499.97454326842,523.2511306012],description:"Cycle of 16 equal beating thirds"},temp16l4:{frequencies:[261.6255653006,278.81939890042,286.59644689091,305.43134787805,313.95067836072,322.70763593891,343.91573686494,353.50850469302,376.74081403286,387.24916379762,412.69888495295,424.21020636659,436.04260883433,464.69899736225,477.66074674968,509.05224558146,523.2511306012],description:"Cycle of 16 fifths tempered by 1/4 major limma"},temp17c10:{frequencies:[261.6255653006,278.13248184697,287.25399162485,296.67464640038,315.39293803189,325.73642523995,336.41913481987,347.45218787195,369.37422084479,381.48805431277,393.9991677018,418.85802036446,432.59470262079,446.78188702878,474.97099505857,490.54793493862,506.63572944675,523.2511306012],description:'Cycle of 17 fifths tempered by 1/10 of "17-tET comma"'},temp17c11:{frequencies:[261.6255653006,276.93071634298,286.5293181416,296.46061382736,313.80362259461,324.68026371274,335.93389640617,347.57758745223,367.91095120397,380.66298908833,393.8570200719,416.89773925535,431.34769064645,446.29848691039,472.40704302301,488.78098359819,505.72245578392,523.2511306012],description:'Cycle of 17 fifths tempered by 1/11 of "17-tET comma"'},temp17c12:{frequencies:[261.6255653006,275.93321340298,285.92682111936,296.28237159295,312.48531442823,323.80274674587,335.53006800342,347.68212334757,366.69599021774,379.97679689512,393.73860099464,415.27118158544,430.3112595477,445.8960513142,470.2809925818,487.31338757149,504.96265307831,523.2511306012],description:'Cycle of 17 fifths tempered by 1/12 of "17-tET comma"'},temp17c13:{frequencies:[261.6255653006,275.09197878886,285.41800532755,296.13163442011,311.37414725128,323.06208421743,335.18874504319,347.77059980835,365.67107999768,379.3971387881,393.63842979584,413.89982010446,429.43622376713,445.55581352332,468.48950048969,486.07501593832,504.32063522708,523.2511306012],description:'Cycle of 17 fifths tempered by 1/13 of "17-tET comma"'},temp17c14:{frequencies:[261.6255653006,274.37296298479,284.98259752889,296.00249241327,310.42486507835,322.42857866752,334.89645942743,347.84645641687,364.79486552165,378.90099378095,393.5525871037,412.72797362103,428.68761089217,445.26438593469,466.95936897503,485.01606158014,503.77098227424,523.2511306012],description:'Cycle of 17 fifths tempered by 1/14 of "17-tET comma"'},temp17c15:{frequencies:[261.6255653006,273.75133628611,284.60578240525,295.8906154666,309.60449456672,321.88054534371,334.64335075548,347.91221098893,364.0371787025,378.47152629398,393.47820661021,411.71505587788,428.03986711385,445.01196937812,465.63729761752,484.10016650719,503.29510175355,523.2511306012],description:'Cycle of 17 fifths tempered by 1/15 of "17-tET comma"'},temp17ebf:{frequencies:[261.6255653006,272.44226039746,283.83762774933,295.84262353625,308.01140541539,320.83119298602,334.33681303028,348.02669374128,362.44895565855,377.64277622383,393.64943714798,409.87448211667,426.96753159265,444.97502525992,463.22819966593,482.45788080796,502.71631088044,523.2511306012],description:"Cycle of 17 equal beating fifths"},temp17ebs:{frequencies:[261.6255653006,272.25303191034,284.09302419378,294.99486987374,307.14054534497,320.67196534338,333.1312181383,347.01199086095,362.47647062671,376.71561430061,392.57935523584,410.25304697073,426.52635565248,444.65634289229,464.854847056,483.45291583119,504.17290303449,523.2511306012],description:"Cycle of 17 equal beating sevenths"},temp17fo2:{frequencies:[261.6255653006,272.49443630436,283.81483782984,295.60553136463,307.88605111976,320.67674980257,333.99881838086,347.87433573796,362.32629011314,377.37863296804,393.05630224552,409.38528080469,426.39262165238,444.10651133426,462.55629730628,481.77255670213,501.78712602614,522.6331757532],description:"Fifth beats twice octave"},temp17nt:{frequencies:[261.6255653006,272.67141175251,283.62400127587,295.59862296305,308.07881564783,321.08592105074,333.98321109015,348.08400151932,362.78013022893,377.35217954558,393.28401259522,409.88848628312,426.35277308246,444.35341180422,463.11404114636,482.66674266598,502.05436630802,523.2511306012],description:"17-tone temperament with 27/22 neutral thirds"},temp17s:{frequencies:[261.6255653006,272.47577100117,283.83144686231,295.66037914716,307.98229466369,320.75501909295,334.12277657932,348.04764753103,362.48197303348,377.58873713905,393.32509157531,409.63717539588,426.70917767843,444.49267120113,463.01730800927,482.21968335939,502.31662775181,523.2511306012],description:"Cycle of 17 fifths tempered by 2 schismas. Schulter, Tuning List 10-9-98"},temp19d5:{frequencies:[261.6255653006,270.66831710441,280.02362001571,289.70227696231,304.50185643804,315.02657220273,325.91506125677,337.17989695691,348.83408706747,360.89108965294,379.3273836973,392.4383479509,406.00247545366,420.03542981361,434.55341522625,449.57319616728,472.53985806789,488.87259164079,505.76984518255,523.2511306012],description:"Cycle of 19 thirds tempered by 1/5 small diesis. Third = 3\\5"},temp19ebf:{frequencies:[261.6255653006,271.21349495395,281.45216719787,291.55303152151,302.33945232218,313.85796000757,325.22143162672,337.35615460362,350.31447634238,363.09838134063,376.74994653359,390.21776437961,404.59965986997,419.95766938963,435.10896436483,451.288596451,468.56635736893,485.61156561298,503.81364896584,523.2511306012],description:"Cycle of 19 equal beating fifths"},temp19ebmt:{frequencies:[261.6255653006,271.3515811897,281.43551369743,291.89053542337,302.73030209663,313.98726376766,325.65848288741,337.75920164946,350.30522706536,363.3129458114,376.82130195458,390.82676353803,405.34762742982,420.40285701732,436.01212051281,452.22214724761,469.0287008844,486.45373685079,504.52001310976,523.2511306012],description:"Cycle of 19 equal beating minor thirds"},temp19ebo:{frequencies:[261.6255653006,277.22364042749,293.65618047886,311.2040149966,329.6906225544,349.43193638686,370.22936988938,392.1394232912,415.53653598153,440.18534605859,466.50709783521,494.2370091719,523.84897992059,555.04513017437,587.91021027711,623.0058793126,659.97909442818,699.46172209312,741.05658909815,784.8766959018],description:"Cycle of 19 equal beating octaves in twelfth"},temp19ebt:{frequencies:[261.6255653006,271.59402175166,281.80172126331,292.25440577595,302.95795550425,313.91838845704,325.14187338321,337.60244413755,350.36206814823,363.42792409681,376.80735887968,390.50790160795,404.53725818867,420.11297167574,436.06250107414,452.39482160095,469.11911613638,486.2447950704,503.78149001575,523.2511306012],description:"Cycle of 19 equal beating thirds"},temp19k10:{frequencies:[261.6255653006,271.76196854941,282.29109592175,293.22816309454,304.58897525989,314.09773337131,326.2671147593,338.90798583865,352.03861397416,365.67797428016,377.09383089344,391.70392883316,406.88007915549,422.6442137645,439.01911266466,452.72455471179,470.26488431194,488.48479525859,507.41061720556,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/10 kleisma"},temp19k3:{frequencies:[261.6255653006,272.95237156345,284.76956174698,297.09836322231,309.96092731219,314.44113201634,328.05453510669,342.25731432435,357.07498823553,372.53417996774,377.91882441317,394.28042610165,411.35038641496,429.15937528906,447.73938330242,454.2110508691,473.87564511273,494.39160029408,515.79576952378,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/3 kleisma"},temp19k4:{frequencies:[261.6255653006,272.52663052146,283.88190679319,295.71031957624,308.03158289191,314.31844786309,327.4150485592,341.05734286691,355.26806612985,370.07090075127,377.62397563434,393.35830866491,409.74823893478,426.8210805314,444.6052930255,453.67960031314,472.58291784883,492.27387080735,512.78528301977,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/4 kleisma"},temp19k5:{frequencies:[261.6255653006,272.27150423996,283.35064249518,294.88062803952,306.8797443789,314.24485853342,327.03195662575,340.33937954017,354.18830437416,368.6007608062,377.44717941318,392.80607455881,408.78994578219,425.42422593284,442.73537947933,453.36102900438,471.8089732132,491.00759210237,510.98743222773,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/5 kleisma"},temp19k6:{frequencies:[261.6255653006,272.10155294862,282.99701916355,294.32876096318,306.11424676116,314.19580976213,326.77681046955,339.86157848985,353.47028562902,367.62391141072,377.32935907335,392.4383479509,408.1523292189,424.49552853314,441.49314144476,453.14877154631,471.29371440761,490.16521545931,509.79236747994,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/6 kleisma"},temp19k7:{frequencies:[261.6255653006,271.9802243463,282.7447017667,293.93521741989,305.56863311614,314.16077935352,326.59468561952,339.52070304385,352.95830848174,366.92774752709,377.24522513926,392.17589782962,407.69749910471,423.83341578697,440.60837682578,452.99722066906,470.92601754108,489.56440442681,508.94046380742,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/7 kleisma"},temp19k8:{frequencies:[261.6255653006,271.88926339885,282.55561052465,293.64040364533,305.16005936662,314.13450956378,326.45815718343,339.26526937521,352.57481080357,366.4064920117,377.18213591051,391.97917444376,407.35670799125,423.33750965456,439.94524339387,452.88359011983,470.65043349884,489.11427877975,508.30246674991,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/8 kleisma"},temp19k9:{frequencies:[261.6255653006,271.81853598083,282.40862793607,293.41130980736,304.84265779003,314.11407882217,326.35200974457,339.06673262958,352.27682225125,366.00158141044,377.13307501509,391.82623534045,407.09184571451,422.95220417284,439.43048454013,452.79523167251,470.4362008006,488.76446469244,507.80680338678,523.2511306012],description:"Chain of 19 minor thirds tempered by 1/9 kleisma"},temp19lst:{frequencies:[261.6255653006,270.56149416036,279.80263334807,289.3594074481,304.78245180412,315.19242188443,325.95794877725,337.09117667186,348.60466454729,360.5114003397,379.7268899367,392.69661814622,406.10933276067,419.98016416303,434.32475952075,449.15930043669,473.09978287909,489.25870067642,505.96953296163,523.2511306012],description:"Cycle of 19 least squares thirds 5/4^5 = 3/2"},temp19lst2:{frequencies:[261.6255653006,270.86681403244,280.43448605562,290.34011310859,303.98143643885,314.71879896063,325.83542931914,337.34472599098,349.26055890156,361.59728998429,378.58655645252,391.95915298383,405.80409975455,420.1380835834,434.97837844393,450.34287106955,471.50175486263,488.15634183652,505.39920634693,523.2511306012],description:"Cycle of 19 least squares thirds 5/4, 3/2 (5), 6/5 (4)"},temp21ebs:{frequencies:[261.6255653006,270.48603901573,279.57527100587,288.89916626223,298.46378542286,308.59004184051,318.97773454914,329.63361550747,340.56460989801,352.13747205507,364.00912264098,376.18727282918,388.67983604901,401.90596519454,415.47356606258,429.3914526989,443.66866815503,458.78424493347,474.29007331382,490.19622772738,506.51304733863,523.2511306012],description:"Cycle of 21 equal beating sevenths"},temp22ebf:{frequencies:[261.6255653006,269.81217946012,278.43675961795,287.52273893052,297.09479717246,306.30473778727,316.00739221221,326.22911792828,336.99768333647,347.35886661388,358.27435338478,369.77379349451,381.88843101834,394.65117841871,406.93109909525,419.8679691216,433.49693671533,447.85502662133,461.66993710068,476.2239184443,491.55650493929,507.70935693135,523.2511306012],description:"Cycle of 22 equal beating fifths"},temp22ebt:{frequencies:[261.6255653006,270.16401944699,278.90739732088,287.86061708193,297.02871287074,306.4168425362,316.03028815926,325.87445510174,336.54752540671,347.4767459334,358.66827061689,370.12838991426,381.86355177507,393.88036006393,406.18556836568,419.52690380046,433.1884314408,447.17783799964,461.50298590676,476.17193984405,491.19294816955,506.57446222015,523.2511306012],description:"Cycle of 22 equal beating thirds"},temp22fo2:{frequencies:[261.6255653006,269.97341665226,278.58762814388,287.47669703533,296.64939669548,306.114775449,315.88217199169,325.96122111215,336.36187067071,347.09438029185,358.16933884319,369.59767092309,381.39065611261,393.55992749281,406.11749146369,419.07573510033,432.44744798202,446.24582051114,460.48446638525,475.17743368268,490.33921589034,505.98477744485,522.12955176559],description:"Fifth beats twice opposite rate as octave"},temp23ebs:{frequencies:[261.6255653006,269.54528659271,277.75645349026,286.26979186473,295.09642104593,304.24787054065,313.41421505132,322.9178815064,332.77128133421,342.98728793362,353.5792427091,364.56098080918,375.56059498003,386.96499273375,398.78907363541,411.04828247111,423.75862731373,436.93671323096,450.13624919654,463.82153026575,478.01042762353,492.72147385367,507.97388874722,523.2511306012],description:"Cycle of 23 equal beating major sixths"},temp24ebaf:{frequencies:[261.6255653006,269.28287293678,277.23083697142,285.33112867981,293.73889258015,302.30779732819,311.20195864933,320.26658492056,329.67528611807,339.26431305611,349.21731641877,359.36108127338,369.88988063787,380.8183283077,391.95623237686,403.5169050439,415.29914897519,427.52862168357,439.9924847314,452.92944495636,466.1143590732,479.79973930305,493.74741628009,508.22451419243,523.2511306012],description:"Cycle of 24 equal beating 11/8's"},temp24ebf:{frequencies:[261.6255653006,269.29177952703,277.18807786937,285.37455545576,293.58315284916,302.20762754558,311.09098010692,320.17688686519,329.5354160273,339.23795459232,349.23174343306,359.45337270909,369.98176018664,380.89707445632,391.84186131702,403.3411703213,415.18563115404,427.4653330282,439.77824302677,452.71493931339,466.03998256716,479.66882917609,493.70667148145,508.26043277122,523.2511306012],description:"24-tone ET with 23 equal beatings fifths. Fifth on 17 slightly smaller."},temp25ebt:{frequencies:[261.6255653006,269.07040607882,276.69392272178,284.50040351526,292.49424189123,300.67993013952,309.06207502162,317.64539198503,326.43470939254,335.74076076764,345.27015661764,355.02825763358,365.02055286832,375.25266439783,385.73034580726,396.45949385543,407.44613828076,419.07870286007,430.99044652419,443.18807578441,455.67844358274,468.46858279232,481.56568677979,494.97711759939,508.71042703507,523.2511306012],description:"Cycle of 25 equal beating thirds"},temp26eb3:{frequencies:[261.6255653006,268.53506427639,276.23413316293,283.52944261778,291.01742029734,298.70315454572,307.26715974579,315.38204761281,323.71124866952,332.26042290088,341.78653782772,350.81307822085,360.07800843467,370.40166886388,380.18393134541,390.22454217496,400.5303243006,412.0137801623,422.89501338113,434.06361862988,445.5271853685,458.30072684004,470.40439262311,482.82771472967,495.57913524385,509.78770018956,523.2511306012],description:"Cycle of 26 fifths, 5/4 beats three times 3/2"},temp26ebf:{frequencies:[261.6255653006,268.42568455944,275.6873347244,283.44184249631,290.6057533496,298.25588724353,306.42524452376,315.14906491362,323.2084665433,331.81486605817,341.00539333861,350.8196903474,359.88651586494,369.56871668171,379.90806097321,389.45994242989,399.66012078319,410.55259814459,422.18435687733,432.93022440227,444.40542617247,456.65946119637,469.74519313893,481.83429211771,494.74389287961,508.52968420524,523.2511306012],description:"Cycle of 26 equal beating fifths"},temp26ebmt:{frequencies:[261.6255653006,268.65375733515,276.22103845862,283.50786797993,291.35362426947,298.90860888253,307.04308924768,315.80151824033,324.23534814673,333.31608510092,342.06028051348,351.47518831899,360.54116941247,370.30254728737,380.81265974123,390.93325547321,401.83014055422,412.32317421544,423.62106542614,434.50024245702,446.21389528982,458.82603004394,470.97074536855,484.04700949484,496.63864979835,510.1961187079,523.2511306012],description:"Cycle of 26 equal beating minor thirds"},temp26ebs:{frequencies:[261.6255653006,268.70854008298,275.97438147252,283.42781183148,291.07367309004,298.91693448926,307.01176285104,315.31558194419,323.83378869523,332.57191674,341.53564330438,350.78687613393,360.27695513986,370.01204624828,379.9984780646,390.24273934583,400.81557597059,411.66137956276,422.7871998129,434.200265189,445.90799193987,457.99123299379,470.38643795716,483.10166179174,496.14516363988,509.5254229925,523.2511306012],description:"Cycle of 26 equal beating sevenths"},temp27c8:{frequencies:[261.6255653006,268.8683660761,273.88218275531,281.46429379013,289.25630678777,297.26403435806,305.49344487497,313.95067836072,319.80518189674,328.65861797738,337.75715313333,347.10756874671,356.7168418477,363.36884069528,373.42828707985,383.76621672426,394.39034225616,405.30858212106,412.86671295557,424.29645219584,436.04260883433,448.1139452722,460.51946086698,473.26841152735,482.09384659572,495.44005640506,509.15574351714,523.2511306012],description:"Cycle of 27 fifths tempered by 1/8 of difference between augm. 2nd and 5/4"},temp27eb2:{frequencies:[261.6255653006,268.46319812592,275.47953375729,282.6792426258,290.06711722511,297.6480770209,305.21714541248,313.19405229436,321.37943712173,329.77875040935,338.39757940759,347.00289091411,356.07187808578,365.37788286775,374.92710181611,384.72589137834,394.78077412888,404.81988946592,415.39993259502,426.25648711974,437.39677971686,448.82822593369,460.24174609969,472.27024976331,484.61312060812,497.27857467888,510.27504274822,523.2511306012],description:"Cycle of 27 fourths, 5/4 beats twice 4/3"},temp28ebt:{frequencies:[261.6255653006,268.20719354764,274.94677993062,281.84811597329,288.91508487862,296.15166190523,303.56191452522,311.15001492268,318.92023016627,326.87692943437,335.10396312415,343.5284476344,352.15511767098,360.98882840285,370.03454814671,379.29736707683,388.78249121135,398.49525813745,408.44113355924,418.72492751128,429.25553103998,440.03886948281,451.08100913788,462.38815755283,473.96667987616,485.82308640697,497.96404651665,510.39638953936,523.2511306012],description:"Cycle of 28 equal beating thirds"},temp29c14:{frequencies:[261.6255653006,268.03384168485,274.59908446169,281.12309545065,288.00894581307,294.85155418799,302.07367045706,309.47268578827,316.82523654187,324.58557784847,332.29718551084,340.4364979057,348.77517523396,357.06148706459,365.80737813473,374.49834647311,383.67133729641,392.78672100419,402.40767098088,412.26427490957,422.0589810157,432.39692561869,442.66994710331,453.51274088813,464.62111626441,475.65973015548,487.31057837675,498.88825560972,511.10806227553,523.2511306012],description:"Cycle of 29 fifths 1/14 comma positive"},temp29ebf:{frequencies:[261.6255653006,267.97141371953,274.40384216744,281.08918054527,287.86573007783,294.90872015661,302.04780073409,309.28428172011,316.80528774769,324.42890571749,332.35226986162,340.383734589,348.52477529448,356.98590767403,365.56247629567,374.47626314535,383.51165984234,392.90231649713,402.42108995343,412.06973029551,422.09773822292,432.26256191617,442.8270465847,453.53566813958,464.39038927288,475.67189906986,487.10732348594,498.99237046175,511.03956815915,523.2511306012],description:"Cycle of 29 equal beating fifths"},temp29fo:{frequencies:[261.6255653006,267.94780983951,274.42283293416,281.05432651499,287.84607006616,294.80193939197,301.92589896847,309.2220107369,316.69443479624,324.34743177532,332.18536334326,340.21270232633,348.43402388135,356.85401564372,365.47747852664,374.30932945854,383.35460418662,392.61845788025,402.10617708826,411.82316930666,421.77497497272,431.96726840975,442.4058610624,453.0967048103,464.04589268124,475.25967298378,486.74443697706,498.50673304697,510.55326782272,522.89091000079],description:"Fifth beats with opposite equal rate as octave"},temp31c51:{frequencies:[261.6255653006,267.17944246504,273.80687224646,279.61933836952,286.55534345926,292.63843680803,298.85066583755,306.26370726525,312.76517639908,319.40466275447,327.32754956004,334.27616903285,342.56794607269,349.84009583671,357.26662128823,366.1286782788,373.90098334082,383.17565840352,391.30984260196,399.61670205031,409.52926208827,418.22288720188,428.59697681668,437.69538032917,446.98692528774,458.07451174337,467.79867446983,477.72926229583,489.57941763243,499.97237729845,512.37427391379,523.2511306012],description:"Cycle of 31 51/220-comma tempered fifths (twice diff. of 31-tET and 1/4-comma)"},temp31coh:{frequencies:[261.6255653006,267.17903658035,272.71444919697,278.8328003927,286.67318542907,292.31259119845,298.22448926086,305.9625493141,312.79375273624,319.37019903425,325.99008611032,333.53448283298,342.55073731576,349.35067604096,356.49690427728,365.94514964733,373.94225818849,381.74854907994,389.68867781295,401.66236977474,409.34549662494,417.52928752537,426.20510506248,437.61344561246,447.02040600938,456.30467151405,466.17931462488,479.8608061495,489.18804557359,499.02680928636,509.58872491278,523.2511306012],description:"Differential coherent 31-tone scale, interval=8, OdC, 2003"},temp31eb1:{frequencies:[261.6255653006,267.35556661283,273.21106374578,279.19480525048,287.36432599524,293.65804565963,300.08960744161,306.66203029506,313.37839929357,320.24186707858,327.25565533923,334.42305632458,341.74743438901,349.23222958864,356.8809512704,367.32364464292,375.36859607341,383.58974428421,391.99094825517,400.57615379751,409.34938620036,418.31476585427,427.47650107887,436.83889236244,446.40633438056,459.46863260649,469.5317006585,479.81516534138,490.32385367952,501.06269841655,512.03674033076,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats equal 5/4. Third 1/18 synt. comma higher"},temp31eb1a:{frequencies:[261.6255653006,267.52830363402,273.56421824856,279.73631545395,286.19123047598,292.64821393201,299.25087842544,306.00251077972,312.90647197491,319.96619882071,327.18520755731,334.56708808783,342.11551697966,349.83425186023,357.90667665031,365.98168819447,374.23888853079,382.68238383924,391.31637942763,400.14517332125,409.17316051655,418.40483516889,427.84479530109,437.49773526159,447.36846272566,457.69148927209,468.01782376277,478.57713873597,489.37469064597,500.41585743254,511.7061296998,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats equal 7/4"},temp31eb2:{frequencies:[261.6255653006,267.43633367564,273.37616065041,279.44791264824,286.8151286113,293.18536340431,299.69708268426,306.35342885652,313.15761412007,320.11292201761,327.22270902014,334.4904061467,341.91952062013,349.51363755953,357.2764217104,366.69546492458,374.83986170174,383.16514754137,391.67534003419,400.37454600262,409.26696348258,418.35688374945,427.64869338884,437.14687641357,446.85601642745,458.63669049374,468.82312458207,479.23580188553,489.87974732177,500.7600974131,511.88210276525,523.2511306012],description:"Cycle of 31 thirds, 3/2 beats twice 5/4"},temp31eb2a:{frequencies:[261.6255653006,267.30377559621,273.10522335955,279.03258328435,287.71713441117,293.9616250555,300.34164347605,306.86013111019,313.520093235,320.3246003528,327.27678960683,334.37986622751,341.63710501026,349.05185182525,356.62752721996,367.72712485201,375.70811839104,383.86232802855,392.19351543866,400.70551714108,409.40225971792,418.28775270674,427.36609266644,436.64146506587,446.11814621352,460.00303307438,469.98674378481,480.18713671772,490.60891465214,501.25688243424,512.13594919255,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 3/2"},temp31eb2b:{frequencies:[261.6255653006,267.52098517401,273.5492512983,279.71335720518,286.24081966732,292.69091492047,299.28635537219,306.03041620307,312.92644639599,319.97787039914,327.18818982659,334.56098519707,342.09991771207,349.80873107384,357.97195918064,366.0384300542,374.28666922186,382.72077261519,391.34492846269,400.16341936959,409.18062444454,418.40102147414,427.82918914659,437.46980932536,447.32766937413,457.76662230541,468.08184681118,478.62951259033,489.41485742956,500.44323714283,511.72012823096,523.2511306012],description:"Cycle of 31 thirds, 5/4 beats twice 7/4 (7/4 beats twice 5/4 gives 31-tET)"},temp31ebf:{frequencies:[261.6255653006,267.58895287558,273.47207673981,279.84020613447,286.1226232561,292.32048149598,299.02929415269,305.64780689513,312.81195283539,319.87967238294,326.85226402826,334.39967773649,341.84550545999,349.90516819854,357.85635261941,365.7005167875,374.19135817901,382.56791460144,390.83172556312,399.77680617055,408.60149248083,418.153686518,427.57731316062,436.87410111252,446.93731687602,456.86508723973,467.61130449655,478.21288647115,488.67177324268,499.99289085438,511.16163412976,523.2511306012],description:"Cycle of 31 equal beating fifths"},temp31ebf2:{frequencies:[261.6255653006,268.47208070676,273.9410776603,281.1098810272,286.83632036086,292.67941197057,300.33857976184,306.45672349367,312.69950064833,320.88257689406,327.41921873353,335.98749730659,342.8318387903,349.81560715632,358.96997989875,366.28249344322,375.86779039798,383.5245262314,391.33723606718,401.57819634767,409.75867428285,420.48170539436,429.04726334649,437.78730875453,449.24382765192,458.39529367535,467.73318258368,479.97335657757,489.75080836323,502.56716753771,512.80487382351,523.2511306012],description:"Cycle of 31 fifths, 3/2 beats equal 7/4"},temp31ebs:{frequencies:[261.6255653006,267.49970467488,273.5255021102,279.70687352555,286.04783307233,292.55250379055,299.22511217624,305.93841412724,312.82503848113,319.88946348152,327.13627425327,334.57018402367,342.19602042672,349.86836735032,357.73879552978,365.81242398075,374.09449397971,382.59039112658,391.30563169636,400.0740276901,409.06880268892,418.29580572823,427.76103041037,437.4706255228,447.4309015606,457.4519243295,467.73166961576,478.27681510244,489.09421437332,500.19089295757,511.57406697079,523.2511306012],description:"Cycle of 31 equal beating sevenths"},temp31ebs1:{frequencies:[261.6255653006,267.15774161678,272.80689957055,278.57550963341,287.00766304701,293.07655388437,299.27377555355,305.60203820353,312.06411627904,318.6628357552,328.30838543699,335.25059642555,342.33960321815,349.5785118895,356.97048813578,364.51877275634,375.55232561156,383.49353066309,391.60265342908,399.88324912115,408.33893898267,416.9734277591,429.59472356821,438.6786743379,447.954711436,457.42689142912,467.09936712211,476.97636845082,491.41388278482,501.80502418824,512.41589335668,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats equal 7/4. 17/9 schisma fifth"},temp31ebs2:{frequencies:[261.6255653006,267.52957387699,273.56681763873,279.74030009523,286.13080593576,292.58781532731,299.19053769144,305.94226304679,312.84635035505,319.90623967996,327.21431324819,334.59843914397,342.14920188821,349.87035796113,357.76575454309,365.83932576918,374.19671203989,382.64107477964,391.27599615891,400.10577865514,409.13482199124,418.3676180873,427.92498506647,437.58181190976,447.45656083737,457.55415226032,467.87960969795,478.43807796233,489.36771995709,500.41110255739,511.70370009509,523.2511306012],description:"Cycle of 31 sevenths, 3/2 beats twice 7/4. Almost 31-tET"},temp31ebsi:{frequencies:[261.6255653006,267.31506098272,273.2139312212,279.32987994092,285.67089487749,292.24525964349,299.06156112772,306.12870201667,312.71376833043,319.5411631371,326.61980701828,333.95894503443,341.56816427739,349.45740040562,357.63696227352,366.11753111539,374.01961057916,382.2124855973,390.7068565555,399.51382386635,408.64488423766,418.11197066674,427.92744450622,438.10412760018,447.58662182594,457.41807184609,467.61131789159,478.17967690081,489.136951815,500.49745466086,512.27602199232,523.2511306012],description:"Cycle of 31 equal beating major sixths"},temp31ebt:{frequencies:[261.6255653006,267.508686718,273.53300221315,279.70190221389,286.0188552526,292.48741633838,299.11122072338,305.89399777728,312.83956126154,319.95181832117,327.23477005018,334.588671338,342.11906613961,349.83019225353,357.72638299858,365.81208378543,374.09184045976,382.57031224079,391.25226584136,400.14258695229,409.24627647794,418.43865241641,427.85164834976,437.49055334209,447.36079317794,457.46791872903,467.81761394993,478.41570188597,489.26814549043,500.38104816704,511.76065992154,523.2511306012],description:"Cycle of 31 equal beating thirds"},temp31g3:{frequencies:[261.6255653006,266.21023205793,270.87523947024,275.62199471997,289.25983723073,294.32876096318,299.48651076576,304.73464409936,310.07474405997,315.5084236529,331.11985608357,336.92232427465,342.82647426905,348.83408706747,354.94697625466,361.16698614085,379.03761443004,385.6797831671,392.4383479509,399.31534788729,406.31285900225,413.43299207996,433.88975562921,441.49314144476,449.22976592409,457.10196592055,465.11211608996,473.26263524279,496.67978412536,505.38348615935,514.23971114652,523.2511306012],description:"Wonder Scale, cycle of 31 sevenths tempered by 1/3 gamelan residue, s.wonder1"},temp31g4:{frequencies:[261.6255653006,266.75106828164,271.97698492363,277.30528403104,287.97116616014,293.61280545832,299.36497003718,305.22982618403,311.20958045219,317.30648321666,329.51091606373,335.96636137331,342.54827390456,349.25913259695,356.10146388137,363.07784268567,377.0427625798,384.42940207435,391.96075366681,399.63965159508,407.46898671086,415.4517078616,431.43106138252,439.88322158593,448.50096908674,457.28754710584,466.24626137824,475.38048570318,493.66485502092,503.33623955776,513.19709315346,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/4 gamelan residue"},temp31g5:{frequencies:[261.6255653006,267.07609791103,272.64018328418,278.3201871026,287.20071989568,293.1840695693,299.2920706603,305.52732176658,311.89247392994,318.39023342226,328.54930692245,335.39408374843,342.38146206091,349.5144087687,356.79595852417,364.22920722399,375.85089312601,383.68111960674,391.67447579625,399.83436022994,408.16424460367,416.66766586736,429.96253800336,438.92009035289,448.06425836543,457.39892986705,466.92807368021,476.65574406444,491.86469103391,502.11187209711,512.57253609913,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/5 gamelan residue"},temp31g6:{frequencies:[261.6255653006,267.29300481931,273.08321314304,278.9988528944,286.68823620156,292.89859205665,299.24348036203,305.72581270733,312.34856974117,319.11478979112,327.9097940226,335.01310892782,342.27029731995,349.68469585889,357.2597060542,364.99881126821,375.05840734677,383.18307527508,391.48374080678,399.96422099622,408.62840644009,417.48028065389,428.98629965513,438.27917301224,447.77335490729,457.47320099372,467.3831713443,477.50781354513,490.66822826519,501.2972832058,512.15658610391,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/6 gamelan residue"},temp31g7:{frequencies:[261.6255653006,267.44804485495,273.40010374961,279.48462577409,286.32273545638,292.69485077785,299.20877758909,305.86767190621,312.6747599825,319.63333987564,327.45376040978,334.74124806474,342.19091885571,349.80638115363,357.59132564064,365.54952414453,374.49336901227,382.82772265927,391.34755742947,400.0570012071,408.96027492626,418.06169111145,428.2903432132,437.821949061,447.565680886,457.52625955954,467.70851101039,478.11736856842,489.81539667363,500.71624319167,511.85968815724,523.2511306012],description:"Cycle of 31 sevenths tempered by 1/7 gamelan residue"},temp31h10:{frequencies:[261.6255653006,267.8597617245,273.71072489962,279.68949451567,286.35413084244,292.60907359238,299.00064605783,306.12544311476,312.81225819702,320.26616683613,327.26186315247,334.41036913783,342.37893460431,349.85764856047,358.19430059608,366.01847563765,374.01355928612,382.92581520849,391.29021017831,400.61414686654,409.36491649663,418.30683086326,428.27453775026,437.62950220286,447.18881072031,457.84473927605,467.84561789912,478.99376955124,489.45661357347,500.14800438647,512.06587983104,523.2511306012],description:"Cycle of 31 fifths tempered by 1/10 Harrison's comma"},temp31h11:{frequencies:[261.6255653006,269.21878403965,274.22153683641,279.31725480271,287.42394184039,292.76499331753,298.20529308835,306.86017365004,312.56239683413,321.63396690808,327.61072570921,333.69854562169,343.38355445704,349.7644731902,359.91576765193,366.60389537541,373.41630725864,384.25405432087,391.39444778107,402.75397853578,410.23814647641,417.86138882164,429.98907567166,437.9793418028,446.11808436842,459.06587176894,467.59645436585,481.16761342105,490.10890120058,499.21634316923,513.70521350358,523.2511306012],description:"Cycle of 31 fifths tempered by 1/11 Harrison's comma"},temp31h12:{frequencies:[261.6255653006,270.35656674398,274.64794212014,279.0074329748,288.31850430385,292.89498819461,297.54411640065,307.47379627264,312.35433239663,322.77826253379,327.90172667751,333.10651564349,344.2229903876,349.68684701428,361.35664068489,367.0924599966,372.91932620731,385.3644371109,391.48133253101,404.54589939324,410.96726244836,417.49055189439,431.4231018689,438.27108715714,445.22777061734,460.08596806997,467.38892215786,482.98668436162,490.65313915878,498.44128370652,515.07533168556,523.2511306012],description:"Cycle of 31 fifths tempered by 1/12 Harrison's comma"},temp31h8:{frequencies:[261.6255653006,264.15772162327,272.31089540773,280.71571360382,283.4326348965,292.18072491748,301.19882119914,304.11398928909,313.50040506268,316.53463456122,326.30440921209,336.37572681506,339.63135730234,350.11400731728,353.50260556257,364.41338872146,375.66093089504,379.29678648678,391.00370158472,394.788050771,406.97310157871,419.5342415638,423.59472503043,436.668886633,450.14658206855,454.50334862767,468.53149836075,473.06620699858,487.66729542944,502.71904336675,507.58463809481,523.2511306012],description:"Cycle of 31 fifths tempered by 1/8 Harrison's comma"},temp31h9:{frequencies:[261.6255653006,266.20804854623,273.08769296879,280.14512719472,285.05198845745,292.41861893027,299.97562432697,305.22982618403,313.11791376428,318.60230743232,326.83598255713,335.28243953396,341.15505431438,349.97156260351,356.10146388137,365.30423365264,374.74482972428,381.30864508241,391.16284711627,398.01423104415,408.30015740759,418.85190169901,426.18827121524,437.20230245522,448.50096908674,456.35665612784,468.15032961482,476.35018210031,488.66055322307,501.28905975035,510.06935121341,523.2511306012],description:"Cycle of 31 fifths tempered by 1/9 Harrison's comma"},temp31ms:{frequencies:[261.6255653006,267.90457886781,273.56603860918,280.13162379381,286.05147140959,292.91670530125,299.10673210371,306.2852939563,312.75782903301,320.26401722477,327.03195662575,334.88072358477,341.95754947331,350.16453098318,357.56433846376,366.14588292411,373.88341429498,382.85661659068,390.94728541851,400.33002063726,408.78994578219,418.60090448096,427.44693588739,437.70566275183,446.9554220819,457.68235263341,467.35426952494,478.57076966998,488.68410850494,500.41252756995,510.98743222773,523.2511306012],description:"Cycle of 31 5th root of 5/4 chromatic semitones"},temp31mt:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,285.65057792122,292.50627485027,299.52642572255,306.71505845072,314.07622014281,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,365.63273925968,374.40803131735,383.39382442208,392.5952765698,402.01756125559,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,457.04092569426,468.01003810189,479.24227945773,490.7440946167,502.52195335034,510.98743222773,523.2511306012],description:"Cycle of 31 square root of 5/4 meantones"},temp31to:{frequencies:[261.6255653006,267.53589118464,273.57973594714,279.76011588387,286.08011543105,292.54288870475,299.15166280294,305.90973254237,312.82047235615,319.88733118052,327.11383586587,334.50359293692,342.06029039257,349.78769954651,357.68967690936,365.77016611333,374.03319988033,382.48290424395,391.12349182016,399.95927701915,408.9946695077,418.23417857039,427.68241536008,437.34409519915,447.22403993284,457.32718033558,467.65855857191,478.22333071276,489.02676930874,500.07426891005,511.37133726836,522.92361522538],description:"Third beats with opposite equal rate as octave"},temp31w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,356.97015906904,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 31 thirds tempered by 1/10 Wuerschmidt comma"},temp31w11:{frequencies:[261.6255653006,267.42197848694,273.34681181717,279.40291364591,286.91265577589,293.26931399985,299.76680465545,306.40825140143,313.19684009872,320.13583435099,327.22856275086,334.47843511672,341.88893114233,349.46360748692,357.20610515709,366.80702823839,374.93377645155,383.2405741708,391.73141324262,400.41036830387,409.28161120445,418.34939984118,427.61808628905,437.09212645494,446.77606497733,458.78443573652,468.94897543376,479.33871705477,489.95864449434,500.81386326642,511.90958055231,523.2511306012],description:"Cycle of 31 thirds tempered by 1/11 Wuerschmidt comma"},temp31w12:{frequencies:[261.6255653006,267.46216197987,273.42896553533,279.52888390694,286.63976159726,293.03439921138,299.57169286871,306.25482853931,313.08705807777,320.0717057658,327.2121755928,334.51194000906,341.9745565771,349.60365642833,357.40295156876,366.49485373999,374.67097398132,383.02949720151,391.57448819698,400.31011139524,409.24061734241,418.37035125513,427.70376253715,437.24539007841,446.99988402026,458.37102198078,468.59680699416,479.0507177135,489.73784363297,500.66339010461,511.83267129957,523.2511306012],description:"Cycle of 31 thirds tempered by 1/12 Wuerschmidt comma"},temp31w13:{frequencies:[261.6255653006,267.49616787535,273.49850059869,279.63551774138,286.40905375482,292.83577174957,299.40669857094,306.12507001426,312.99419468163,320.01745343487,327.19830857776,334.54029455907,342.04702698539,349.72220057363,357.56974544479,366.23091133098,374.44874787361,382.85098402684,391.44175752404,400.22529663315,409.2059314354,418.38808223908,427.77627085136,437.37511801764,447.18935574711,458.02150335998,468.29902426597,478.80716193382,489.55109116118,500.53609997149,511.7676037195,523.2511306012],description:"Cycle of 31 thirds tempered by 1/13 Wuerschmidt comma"},temp31w14:{frequencies:[261.6255653006,267.52531966849,273.55811412425,279.72695193191,286.21145362846,292.66562728487,299.26534666214,306.01389218024,312.91461811683,319.97095981222,327.18642276261,334.56459899164,342.10915585471,349.82384327668,357.71250180664,366.00482869479,374.25837321367,382.69803863807,391.32802257119,400.15261355898,409.17620468607,418.4030501472,427.83842920638,437.48634583318,447.35182400506,457.72212848121,468.04393370572,478.5984967348,489.39107187298,500.42702361787,511.71183724724,523.2511306012],description:"Cycle of 31 thirds tempered by 1/14 Wuerschmidt comma"},temp31w15:{frequencies:[261.6255653006,267.55058630145,273.60979095449,279.80621811014,286.0403087015,292.51824916652,299.142895223,305.91756930507,312.84566908988,319.93066920159,327.176122954,334.58566413263,342.16300881716,349.91195724514,357.83639571789,365.80900091179,374.09345893182,382.56553686518,391.22947931103,400.08963362509,409.15044340767,418.41645289306,427.89230922859,437.58276480531,447.49267964143,457.46282942114,467.82296651709,478.41773025336,489.25243249537,500.33250769337,511.66351279634,523.2511306012],description:"Cycle of 31 thirds tempered by 1/15 Wuerschmidt comma, almost 31-tET"},temp31w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,278.83674800471,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,356.32163474066,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,445.77026919414,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 31 thirds tempered by 1/8 Wuerschmidt comma"},temp31w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,356.68171037974,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,446.1797636563,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 31 thirds tempered by 1/9 Wuerschmidt comma"},temp32ebf:{frequencies:[261.6255653006,266.99024669658,272.64192755012,278.59596223891,284.86852586219,291.47665855944,298.4383110444,304.47357861204,310.83171904039,317.53000821614,324.58664278196,332.02079024875,339.85265231199,346.64232633314,353.79523650997,361.33080945807,369.26952339658,377.6329406438,386.44378308989,395.72598875513,403.77301123196,412.25053247262,421.18158418009,430.59042797451,440.50262726312,450.945108697,459.9980085603,469.53522100534,479.58265227668,490.16760508681,501.31882698223,513.0666164148,523.2511306012],description:"Cycle of 32 equal beating fifths"},temp33a12:{frequencies:[261.6255653006,266.94139439278,272.36523138282,277.89927397158,284.73748648557,290.5229142688,296.42589304627,302.44880952638,308.5941041528,316.1876182869,322.61206437627,329.16704532903,335.85521147284,342.67927280589,351.11151394887,358.24555988319,365.52455654698,372.95145333883,382.12859604556,389.89286138208,397.81488464837,405.89786889835,414.14508930077,424.3358756666,432.95772800787,441.75476312782,450.73053786756,459.88868900496,471.20507923536,480.77924170569,490.54793493862,500.51511311891,512.83118959171,523.2511306012],description:'Cycle of 33 fifths tempered by 1/12 "11 fifths" comma'},temp34eb2a:{frequencies:[261.6255653006,267.30377714022,273.10522651459,279.03258811962,285.08859470169,291.27603831759,293.96161656556,300.34163653669,306.86012579271,313.52008961307,320.32459850253,327.27678960683,334.37986815896,341.63710895701,349.05185787385,356.62753339984,364.36762821878,372.27571081823,375.70810971034,383.86232137672,392.19350864246,400.70551251195,409.40225735312,418.28775270674,427.36609513501,436.64147011015,446.11815394416,455.80051576031,465.69301950749,469.98673021106,480.18712562304,490.60890615053,501.2568766435,512.13594623433,523.2511306012],description:"Cycle of 34 thirds, 5/4 beats twice 3/2"},temp34ebsi:{frequencies:[261.6255653006,266.99788221884,272.57696520339,278.14698300137,283.93137567849,289.70637009331,295.70363067102,301.69114426564,307.90910207865,314.36637542255,320.81315450625,327.50805511637,334.19207543599,341.13334896852,348.06334108321,355.26005273528,362.44506998142,369.90662102486,377.65534755435,385.39148338011,393.42536256589,401.44618836017,409.77571602141,418.09170597447,426.72775997548,435.3497813463,444.30364141769,453.60211446558,462.88547695756,472.52613162558,482.15112257833,492.14655599832,502.125745683,512.48900933996,523.2511306012],description:"Cycle of 34 equal beating major sixths"},temp34ebt:{frequencies:[261.6255653006,266.93199967636,272.36578831151,277.92998813547,283.62773001764,289.46221547291,295.43672985114,301.55463262869,307.81936583026,314.23445063866,320.80349820247,327.5302045997,334.16324661664,340.95548417522,347.91073392156,355.03290870525,362.32601803901,369.79415983503,377.44153922514,385.2724539348,393.29131162714,401.50262139782,409.91100286066,418.20230551726,426.69260242977,435.3866631899,444.28938530291,453.40576935587,462.74094691381,472.3001707563,482.08881469934,492.11238732973,502.37652397446,512.8870010249,523.2511306012],description:"Cycle of 34 equal beating thirds"},temp34w10:{frequencies:[261.6255653006,267.37376533775,273.24825962152,279.25182297475,281.06516151868,287.24047076273,293.55146000581,300.00110689476,306.59245933664,313.32863150945,320.21280450383,327.24823031411,334.4382321302,341.78620813039,349.29562523194,351.5637974276,359.28803828513,367.18199034811,375.24938058245,383.49402021056,391.91980359563,400.53071066429,409.33081115087,418.32425711308,427.51529892703,436.90827798988,446.50763144636,449.40705529895,459.28102021135,469.37192694062,479.68454193593,490.22373920221,500.99449133668,512.00188868489,523.2511306012],description:"Cycle of 34 thirds tempered by 1/10 Wuerschmidt comma"},temp34w5:{frequencies:[261.6255653006,266.84400329087,272.16653090376,277.59522118835,285.18293865736,290.87125860088,296.67303727804,302.5905394405,308.62607485572,314.78199505921,321.06070411799,327.46464776022,333.99632772474,340.65828815182,347.45313114562,356.95032497057,364.07013256472,371.33195122039,378.73861781039,386.29301712643,393.99809806388,401.85686830172,409.8723892274,418.04779164423,426.38625992488,434.89105154177,443.56547936435,455.68978545099,464.77906877635,474.04965097839,483.50514461458,493.14924173292,502.98569917153,513.01835960126,523.2511306012],description:"Cycle of 34 thirds tempered by 1/5 Wuerschmidt comma"},temp34w6:{frequencies:[261.6255653006,267.02047390967,272.52663052146,278.06968704778,283.80368699438,289.65592453275,295.6288411546,301.72492193478,307.94670831505,314.29679425134,320.77782174252,327.39249271371,334.14356492035,341.03384719449,348.06621207862,355.14570764395,362.46906930947,369.94344613252,377.57194788125,385.35775486011,393.30411308867,401.41432870635,409.69178284295,418.13992649314,426.76227456772,435.56242170336,444.42154779224,453.58584388327,462.93911228358,472.48525217168,482.22824196207,492.17213857029,502.32108537715,512.67931193931,523.2511306012],description:"Cycle of 34 thirds tempered by 1/6 Wuerschmidt comma"},temp34w7:{frequencies:[261.6255653006,267.14659557842,272.78413659373,276.97759061533,282.82259314675,288.79093992594,294.88523549471,301.10813946365,307.46236235072,313.95067836072,320.57591524951,327.34096447962,334.24877325582,341.30235609413,348.50479124753,353.86228320674,361.3297679824,368.9548354601,376.74081403286,384.69109896591,392.80915578714,401.0985286019,409.56282802254,418.20574780595,427.03105980737,436.04260883433,442.74580331919,452.08897683944,461.62931955889,471.37098776125,481.31823237599,491.47539447856,501.84689823661,512.43727265667,523.2511306012],description:"Cycle of 34 thirds tempered by 1/7 Wuerschmidt comma"},temp34w8:{frequencies:[261.6255653006,267.24122592191,272.97742543896,276.16133434798,282.08899791039,288.14389744169,294.32876096318,300.64638059818,307.09960331181,313.69134300364,320.42456924675,327.30232268102,334.32770172848,341.50387698892,348.83408706747,352.90276052629,360.47764004221,368.21511264804,376.11866406852,384.19186344763,392.4383479509,400.86184099795,409.46613795376,418.25512179799,427.23275920923,436.40309460541,441.49314144476,450.96957067185,460.64940473745,470.53701427025,480.63685362987,490.95348377613,501.49155234204,512.25581818623,523.2511306012],description:"Cycle of 34 thirds tempered by 1/8 Wuerschmidt comma"},temp34w9:{frequencies:[261.6255653006,267.31485098896,273.12785536516,279.06726965397,281.5197407082,287.64164332106,293.89667226994,300.28772424256,306.81775371411,313.48978461115,320.30690488373,327.27226963218,334.38910256736,341.66069947616,349.09042189481,352.15826244648,359.81626391233,367.64079770339,375.63548096925,383.80401588848,392.15018302326,400.67784514756,409.39095139962,418.29352970104,427.38970265849,436.68368016368,440.52130132575,450.10083737825,459.88868900496,469.88938665048,480.10755840871,490.54793493862,501.21534712998,512.11473036853,523.2511306012],description:"Cycle of 34 thirds tempered by 1/9 Wuerschmidt comma"},temp35ebsi:{frequencies:[261.6255653006,266.57889315685,271.71450319234,277.03910343536,282.55964921963,288.28335166643,294.21768457231,300.3704033182,306.74954035112,312.48255822683,318.42655208483,324.58928450704,330.97880464114,337.6034601246,344.47190142434,351.59310182482,358.97636423712,366.63132974323,373.51095055492,380.64374131787,388.03901984907,395.70644562254,403.65603146762,411.89816253905,420.4436041444,429.30351656419,438.48947534443,446.74502047858,455.30437022365,464.17870575399,473.37961532931,482.91911915131,492.80967579032,503.06420520117,513.69610107468,523.2511306012],description:"Cycle of 35 equal beating major sixths"},temp37ebs:{frequencies:[261.6255653006,266.54882370674,271.76117582243,276.81154351547,282.15846820925,287.3392230449,292.82419544994,298.13870690002,303.76528724985,309.7222634282,315.49411047005,321.60488016898,327.52574544851,333.79428377068,339.86801168664,346.29839044807,353.1063601343,359.70275861181,366.68649693083,373.45319917734,380.61724149647,387.55864668979,394.907650003,402.68818871569,410.22692643911,418.2083422233,425.94171605945,434.12919568644,442.06222705415,450.46108885682,459.35313199837,467.96883572953,477.09045247204,485.92859505436,495.28571063961,504.35203618851,513.95073426779,523.2511306012],description:"Cycle of 37 equal beating sevenths"},temp37ebt:{frequencies:[261.6255653006,266.44794669373,271.38606435347,276.44269655507,281.62068893017,286.92295259461,292.35247205526,297.91229840101,303.60556084342,309.43546158348,315.40528084,321.51837488336,327.7781831369,333.8061589736,339.9788066307,346.29959662983,352.77208770341,359.39991652139,366.18681567584,373.13659908053,380.25317623321,387.54055229398,395.00282568127,402.64419215928,410.46895395112,418.00392297279,425.71973353547,433.62072344005,441.71133574434,449.99612361773,458.47974493329,467.16697490003,476.06269518051,485.17191513214,494.49975815874,504.05146656861,513.83241864047,523.2511306012],description:"Cycle of 37 equal beating thirds"},temp3ebt:{frequencies:[261.6255653006,330.24866439584,416.02753826489,523.2511306012],description:"Cycle of 3 equal beating thirds"},temp4ebmt:{frequencies:[261.6255653006,310.36356181711,368.84915763691,439.03187262068,523.2511306012],description:"Cycle of 4 equal beating minor thirds"},temp4ebsi:{frequencies:[261.6255653006,310.92686529443,370.08842528703,441.08229727815,523.2511306012],description:"Cycle of 4 equal beating major sixths"},temp53ebs:{frequencies:[261.6255653006,264.97369574946,268.51842903659,272.2713107977,275.7058824095,279.342132921,283.19190440533,286.71515038985,290.44528277978,294.39444663109,298.00865518834,301.83509073593,305.88621462445,310.17522146598,314.10044576101,318.25616227247,322.65590013911,326.68246801001,330.94547393755,335.45880590636,339.58933056423,343.96239778214,348.59225483118,353.4939765515,357.97994689961,362.72933676467,367.75761084241,372.35940104854,377.23140801172,382.38950169412,387.11009989437,392.10789272021,397.3991578827,403.00112480292,408.12795020911,413.55582307376,419.3024201087,424.56160969567,430.12961973912,436.02458225248,441.41955172249,447.13131541518,453.17847579573,459.58072182695,465.43995070361,471.64323472325,478.21077610462,484.22127701861,490.5847168482,497.32181757346,503.48749858841,510.01522804676,516.92626488088,523.2511306012],description:"Cycle of 53 equal beating harmonic sevenths"},temp53ebsi:{frequencies:[261.6255653006,265.08815342092,268.54511416675,272.14096825888,275.73097879106,279.31515577755,283.04333763043,286.76545980208,290.48153462492,294.34691329876,298.20601137227,302.05883614112,306.06646174912,310.06757319581,314.22944103195,318.38454699407,322.53289853772,326.84792360782,331.1559371129,335.45694960827,339.93076775401,344.39731584765,348.85660497561,353.49505873963,358.12597594237,362.74936749482,367.55851619873,372.35985057275,377.35409330215,382.34021841275,387.3182413058,392.49627136254,397.66588656991,402.8271015422,408.19568270781,413.55554119639,418.90668980097,424.47283359145,430.02993471298,435.57800299537,441.34898312942,447.11058430799,453.10367443873,459.08702461554,465.06065502782,471.27428848056,477.47782740925,483.67128540638,490.11358366391,496.54541154487,502.96678854317,509.64616466331,516.31468511822,523.2511306012],description:"Cycle of 53 equal beating major sixths"},temp53ebt:{frequencies:[261.6255653006,265.06408390481,268.61942739596,272.14046995187,275.78114176924,279.3866896354,283.11473715719,286.8068186786,290.62433945466,294.40503066492,298.31417332138,302.18560037327,306.18856199636,310.15290198883,314.25193588094,318.31142144389,322.50883104059,326.66574402863,330.9638909587,335.40807143415,339.80937339101,344.36021509659,348.86714800611,353.52720940583,358.14231011275,362.91421253104,367.64007568808,372.5265022753,377.36578530136,382.3694885676,387.32491504393,392.44870495902,397.52306357866,402.76982394565,407.96596497751,413.33865052838,418.89387526617,424.39550434456,430.08405345947,435.71772111176,441.54279782575,447.31167294612,453.27655186057,459.18388087721,465.29191391782,471.34101945319,477.59564801313,483.78993007475,490.19466758193,496.53761595054,503.09606844751,509.59124455492,516.30709807412,523.2511306012],description:"Cycle of 53 equal beating thirds"},temp57ebs:{frequencies:[261.6255653006,264.8277951114,268.04955507264,271.33445958124,274.63939933433,278.00911284632,281.39937814535,284.85609135359,288.33388628378,291.8798428433,295.4474281527,299.08493440323,302.74462553584,306.42663750246,310.18081323211,313.95788745209,317.80898926922,321.68357852782,325.63410692083,329.60872876069,333.66125215256,337.73849074816,341.89564167341,346.07814569972,350.28615866377,354.57664765081,358.89330206442,363.2945606359,367.72266219717,372.23755268366,376.77997919433,381.41143316036,386.07113633698,390.82216502962,395.60217018381,400.41132814233,405.3147417445,410.24806349136,415.27807310888,420.33876095689,425.4986359826,430.68997922537,435.98307052812,441.30844296951,446.73819252663,452.20105472878,457.69723413281,463.30113726238,468.93921588924,474.68780077646,480.47144432851,486.36844238798,492.30140788993,498.35065469266,504.4367956254,510.6422225112,516.88549425379,523.2511306012],description:"Cycle of 57 equal beating harmonic sevenths"},temp59ebt:{frequencies:[261.6255653006,264.71774803536,267.84005552541,271.00645194849,274.20369404321,277.44608402629,280.72006081878,284.04026812198,287.39281927261,290.79271098314,294.22572486522,297.70721418515,301.22261902261,304.78766466692,308.38743972219,312.03804524126,315.72421513091,319.46243532331,323.23707283878,327.06501147453,330.93024062011,334.83312418563,338.79111909993,342.78767359614,346.84065928187,350.93313112856,355.08338946648,359.27407840069,363.52394351295,367.81521017702,372.16707169716,376.56132871014,381.01763522853,385.51735474883,390.08061088885,394.68832388107,399.36109834092,404.07939600279,408.86431870994,413.69585627072,418.57446131049,423.52195428502,428.51764625978,433.58387848862,438.69946807471,443.88729218006,449.12565432864,454.4379830027,459.80206875391,465.24189440938,470.73471441434,476.30509804765,481.92974808423,487.63381799831,493.39345924022,499.23442935246,505.13230099895,511.11345315981,517.15287439575,523.2511306012],description:"Cycle of 59 equal beating thirds"},temp5ebf:{frequencies:[261.6255653006,300.99242152138,345.28013476976,397.76927639746,456.81956072863,523.2511306012],description:"Cycle of 5 equal beating fifths"},temp5ebs:{frequencies:[261.6255653006,300.72264357012,345.40501873528,396.4705903526,454.83124362955,523.2511306012],description:"Cycle of 5 equal beating harmonic sevenths"},temp6:{frequencies:[261.6255653006,292.50629174609,327.17562781541,373.91502405318,418.23333786749,467.5991148023,523.2511306012],description:"Tempered wholetone scale with approximations to 5/4 (4), 7/5 (4) and 7/4 (1)"},temp65ebf:{frequencies:[261.6255653006,264.41601755103,267.24454169377,270.11165630441,273.01788702098,275.96376822181,278.903505094,281.88335012505,284.90384796088,287.96555727487,291.06903608099,294.16604397209,297.30530343106,300.48739162418,303.71289539257,306.98240612292,310.29652144782,313.60372560746,316.95605020285,320.35411162765,323.7985328567,327.28994911888,330.77408078649,334.30574717623,337.88559766085,341.51429052286,345.19248907458,348.92086961342,352.64147345074,356.41283883338,360.23565716142,364.11063345825,368.0384739541,371.95812372083,375.93124824951,379.95858022583,384.04085801267,388.17883226226,392.30817269042,396.49385281186,400.73664000181,405.03730976228,409.39665754461,413.81548025993,418.22508312451,422.69484912531,427.22559773342,431.81816208034,436.47338166162,441.11888946365,445.82778005125,450.60091414809,455.43916939942,460.34343547357,465.31460883154,470.27541574397,475.30390033467,480.4009926512,485.56762723834,490.80474851567,496.03094699932,501.32844669322,506.69822455894,512.14126217109,517.65855736571,523.2511306012],description:"Cycle of 65 equal beating fifths"},temp65ebt:{frequencies:[261.6255653006,264.43406811535,267.2034679247,270.07937559507,272.91523803531,275.86016780291,278.76409255008,281.77970028627,284.75331888701,287.84130158502,290.886287826,294.04838131756,297.16644728835,300.4044304772,303.59732911309,306.91302510559,310.18255295306,313.57782661988,316.92582314139,320.40258196387,323.83093239735,327.39113302053,330.90176198948,334.36350914498,337.95839429282,341.50322405771,345.18438591943,348.81429298672,352.58380229516,356.30082494405,360.1608038988,363.96703524466,367.91965255368,371.81723365001,375.86471396542,379.85583700975,384.00045811272,388.08736764479,392.33145942297,396.5164558179,400.86240365726,405.1478399234,409.59809307723,413.98637838791,418.31356254814,422.80716945583,427.23820566351,431.83965831621,436.37704077554,441.08892851835,445.73520856761,450.56017999004,455.31796985254,460.25874195194,465.13071889642,470.19006822446,475.1789734801,480.35974823468,485.46838574269,490.77349931217,496.0047455553,501.43718079349,506.7939752079,512.35679191473,517.84214996629,523.2511306012],description:"Cycle of 65 equal beating thirds"},temp6eb2:{frequencies:[261.6255653006,293.46010680596,329.2739659995,369.56455759223,414.89147313404,465.88425311859,523.2511306012],description:"Cycle of 6 equal beating 9/8 seconds"},temp6s:{frequencies:[261.6255653006,271.93638072959,309.96730300827,353.31693843766,402.72911708552,459.05170412301,523.2511306012],description:"Cycle of 6 tempered harmonic sevenths, 6/5 and 4/3 minimax, Op de Coul, 2002"},temp6teb:{frequencies:[261.6255653006,314.31996068356,377.55323514312,453.43316449459,544.48907971635,653.75617798246,784.8766959018],description:"Cycle of 6 equal beating 6/5's in a twelfth"},"temp7-5ebf":{frequencies:[261.6255653006,272.53310095338,288.29512120063,313.54121701986,318.29837158817,352.05202827415,359.67534615791,387.61143614087,414.35283422339,427.61576999092,475.86500581459,472.62064557223,523.2511306012],description:"7 equal beating fifths on white, 5 equal beating fifths on black"},temp7ebf:{frequencies:[261.6255653006,288.29512120063,318.29837158817,352.05202827415,387.61143614087,427.61576999092,472.62064557223,523.2511306012],description:"Cycle of 7 equal beating fifths"},temp7ebnt:{frequencies:[261.6255653006,288.84289825546,318.65722544634,351.9228541964,388.36258888271,429.02057812008,473.55803233064,523.2511306012],description:"Cycle of 7 equal beating 11/9 neutral thirds"},temp8eb3q:{frequencies:[261.6255653006,285.27029088455,311.06453578321,339.20371183191,369.9009952302,403.38894083349,439.92124473489,479.77466958441,523.2511306012],description:`Cycle of 8 equal "beating" 12/11's`},temp9ebmt:{frequencies:[261.6255653006,282.57058469242,305.18178513943,329.6176429161,355.99737593287,384.50587463168,415.28223014648,448.54214811156,484.4478959333,523.2511306012],description:"Cycle of 9 equal beating 7/6 septimal minor thirds"},tenney_11:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,523.2511306012],description:`Scale of James Tenney's "Spectrum II" for wind quintet`},tertiadia:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"Tertiadia 2048/2025 and 262144/253125 scale"},tertiadie:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,383.2405741708,408.78994578219,436.04260883433,476.27480687611,490.54793493862,523.2511306012],description:"First Tertiadie 262144/253125 and 128/125 scale"},tet3a:{frequencies:[261.6255653006,280.31310567921,313.95067836072,336.37572681506,366.27579142084,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Eight notes, two major one minor tetrad"},tetracot:{frequencies:[261.6255653006,266.81074454173,272.09868928948,277.49143626213,289.66902367154,295.4099985897,301.26475437609,307.23554606336,320.71844041089,327.07478634962,333.55710924695,340.16790585091,355.09602205939,362.13370020095,369.31085868177,376.6302618745,393.15851224787,400.95055410677,408.89702710335,417.00099192139,435.30089370336,443.92815899023,452.72640877864,461.69903182491,481.96048707062,491.51250279099,501.25383072009,523.2511306012],description:"tetracot temperament, g=176.28227, 5-limit"},"tetragam-di":{frequencies:[261.6255653006,279.06726965397,290.69507255622,290.69507255622,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,436.04260883433,457.84473927605,523.2511306012],description:"Tetragam Dia2"},"tetragam-enh":{frequencies:[261.6255653006,271.31540105247,279.06726965397,279.06726965397,327.03195662575,348.83408706747,366.27579142084,392.4383479509,406.97310157871,418.60090448096,418.60090448096,457.84473927605,523.2511306012],description:"Tetragam Enharm."},"tetragam-hex":{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,327.03195662575,343.38355445704,381.53728273004,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Tetragam/Hexgam"},"tetragam-py":{frequencies:[261.6255653006,275.62199471997,294.32876096318,294.32876096318,331.11985608357,348.83408706747,372.50983809402,392.4383479509,413.43299207996,441.49314144476,441.49314144476,465.11211608996,523.2511306012],description:"Tetragam Pyth."},"tetragam-slpe":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,279.06726965397,345.21700307457,348.83408706747,396.55020354877,455.51656649021,392.4383479509,455.51656649021,418.60090448096,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-slpe2":{frequencies:[261.6255653006,261.6255653006,300.52885648597,300.52885648597,286.29520819723,345.21700307457,313.29104303136,396.55020354877,396.55020354877,387.04559340587,455.51656649021,423.54155496477,523.2511306012],description:"Tetragam Slendro as 5-tET, Pelog-like pitches on C# E F# A B"},"tetragam-sp":{frequencies:[261.6255653006,271.31540105247,271.31540105247,271.31540105247,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,406.97310157871,406.97310157871,457.84473927605,523.2511306012],description:"Tetragam Septimal"},"tetragam-un":{frequencies:[261.6255653006,269.80136421624,285.40970760065,285.40970760065,319.76457981184,348.83408706747,359.73515228832,392.4383479509,404.70204632437,428.11456140098,428.11456140098,479.64686971777,523.2511306012],description:"Tetragam Undecimal"},tetragam13:{frequencies:[261.6255653006,275.95382006469,307.00724256551,307.00724256551,341.55514486295,341.55514486295,400.80167111126,400.80167111126,445.90437572008,445.90437572008,445.90437572008,496.08254310677,523.2511306012],description:"Tetragam (13-tET)"},tetragam5:{frequencies:[261.6255653006,300.52885648597,300.52885648597,300.52885648597,300.52885648597,345.21700307457,345.21700307457,396.55020354877,455.51656649021,455.51656649021,455.51656649021,455.51656649021,523.2511306012],description:"Tetragam (5-tET)"},tetragam7:{frequencies:[261.6255653006,288.85811466493,288.85811466493,288.85811466493,318.92511007349,352.12195684808,352.12195684808,388.77403176757,429.24143792307,429.24143792307,429.24143792307,473.92081401802,523.2511306012],description:"Tetragam (7-tET)"},tetragam8:{frequencies:[261.6255653006,285.30470202322,311.12698372208,311.12698372208,339.28638158975,339.28638158975,403.48177901006,403.48177901006,440,440,440,440,523.2511306012],description:"Tetragam (8-tET)"},tetragam9a:{frequencies:[261.6255653006,282.57118533961,305.19387818096,305.19387818096,329.62755691287,356.01738450312,415.30469757995,415.30469757995,448.55379686399,448.55379686399,448.55379686399,484.46508327871,523.2511306012],description:"Tetragam (9-tET) A"},tetragam9b:{frequencies:[261.6255653006,282.57118533961,282.57118533961,282.57118533961,305.19387818096,305.19387818096,384.52019141924,384.52019141924,415.30469757995,415.30469757995,415.30469757995,448.55379686399,523.2511306012],description:"Tetragam (9-tET) B"},tetraphonic_31:{frequencies:[261.6255653006,266.96486255163,272.52663052146,278.32506946872,284.37561445717,290.69507255622,297.30177875068,304.21577360535,311.45900631024,319.05556743976,327.03195662575,333.99008336247,341.25073734861,348.83408706747,356.76213450082,365.05892832642,373.75080757229,382.86668092771,392.4383479509,400.61414686654,409.13785211902,418.03215325205,427.32175665765,437.0336147635,447.19718719986,457.84473927605,467.58611670746,477.75103228805,488.36772189445,499.46698830115,511.08249965699,523.2511306012],description:"31-tone Tetraphonic Cycle, conjunctive form on 5/4, 6/5, 7/6 and 8/7"},tetratriad:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"4:5:6 Tetratriadic scale"},tetratriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"3:5:9 Tetratriadic scale"},tetratriad2:{frequencies:[261.6255653006,296.75121990114,305.22982618403,356.10146388137,373.75080757229,415.4517078616,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"3:5:7 Tetratriadic scale"},thailand:{frequencies:[261.6255653006,281.86483947605,307.02089761314,350.84574289301,397.92692612688,408.40584780369,474.03826620294,539.82938999168],description:"Observed ranat tuning from Thailand, Helmholtz/Ellis p. 518, nr.85"},thailand2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,356.77227917518,391.76907592069,435.19747628762,477.88722128969,525.37110555681],description:"Observed ranat t'hong tuning, Helmholtz/Ellis p. 518"},thailand3:{frequencies:[261.6255653006,293.32570896007,322.47117131255,354.92237405774,396.55020354877,437.46578647972,488.21056770985,538.58355905405],description:"Observed tak'hay tuning. Helmholtz, p. 518"},thailand4:{frequencies:[261.6255653006,281.88044777549,304.38587215019,332.5176539627,392.71966479735,416.35036198375,461.923848369,523.2511306012,563.76089555097,608.77174430039,665.59794246809,786.00196746963,831.57545378481,924.97296635309,1046.5022612024,1127.52179110194],description:"Khong mon (bronze percussion vessels) tuning, Gemeentemuseum Den Haag 1/1=465"},thirds:{frequencies:[261.6255653006,272.52663052146,290.69507255622,313.95067836072,327.03195662575,348.83408706747,363.36884069528,392.4383479509,418.60090448096,436.04260883433,454.2110508691,502.32108537715,523.2511306012],description:"Major and minor thirds parallellogram"},thomas:{frequencies:[261.6255653006,280.80530480292,294.66217084622,313.95044496966,332.05645032639,350.21604710412,374.62015588545,391.99543598175,420.73257541073,441.99197952365,468.79922683914,499.49209883845,523.2511306012],description:"Tuning of the Thomas/Philpott organ, Gereformeerde Kerk, St. Jansklooster"},tiby1:{frequencies:[261.6255653006,295.66718139806,337.56154978455,348.04364484358,393.32961502355,444.50800708553,507.49227916989,523.2511306012],description:"Tiby's 1st Byzantine Liturgical genus, 12 + 13 + 3 parts"},tiby2:{frequencies:[261.6255653006,295.66718139806,311.12698372208,348.04364484358,393.32961502355,444.50800708553,467.75037672729,523.2511306012],description:"Tiby's second Byzantine Liturgical genus, 12 + 5 + 11 parts"},tiby3:{frequencies:[261.6255653006,295.66718139806,324.07484847125,348.04364484358,393.32961502355,444.50800708553,487.21628271135,523.2511306012],description:"Tiby's third Byzantine Liturgical genus, 12 + 9 + 7 parts"},tiby4:{frequencies:[261.6255653006,286.76251801126,324.07484847125,348.04364484358,393.32961502355,431.12067692221,487.21628271135,523.2511306012],description:"Tiby's fourth Byzantine Liturgical genus, 9 + 12 + 7 parts"},todi_av:{frequencies:[261.6255653006,276.38325105256,310.05056613125,371.27895029721,392.44854854484,413.39000965417,495.88429116026,523.2511306012],description:"Average of 8 interpretations of raga Todi, in B. Bel, 1988."},tonos15_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,383.71749577421,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,767.43499154843,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-15"},tonos17_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,418.60090448096,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,738.70747849581,784.8766959018,897.00193817349,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-17"},tonos19_pis:{frequencies:[261.6255653006,281.75060878526,305.22982618403,332.97799220076,385.55346465352,406.97310157871,457.84473927605,523.2511306012,542.63080210495,563.50121757052,610.45965236807,665.95598440153,771.10692930703,813.94620315742,915.6894785521,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-19"},tonos21_pis:{frequencies:[261.6255653006,299.00064605783,322.00069575458,348.83408706747,398.6675280771,440.63253103259,465.11211608996,523.2511306012,558.13453930795,598.00129211566,644.00139150917,697.66817413493,797.33505615421,881.26506206518,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-21"},tonos23_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,409.50088481833,448.50096908674,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,819.00176963666,897.00193817349,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-23"},tonos25_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,376.74081403286,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,753.48162806573,856.22912280196,941.85203508216,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-25"},tonos27_pis:{frequencies:[261.6255653006,290.69507255622,327.03195662575,373.75080757229,387.59343007496,436.04260883433,498.33441009638,523.2511306012,550.79066379074,581.39014511244,654.0639132515,747.50161514457,775.18686014993,872.08521766867,996.66882019276,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-27"},tonos29_pis:{frequencies:[261.6255653006,287.78812183066,319.76457981184,359.73515228832,396.94913355953,442.75095666255,479.64686971777,523.2511306012,548.16785110602,575.57624366132,639.52915962369,719.47030457665,793.89826711906,885.50191332511,959.29373943553,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-29"},tonos31_pis:{frequencies:[261.6255653006,273.51763645063,300.86940009569,334.29933343966,388.21858076863,429.81342870813,462.87600014722,501.44900015948,523.2511306012,547.03527290125,601.73880019138,668.59866687931,776.43716153726,859.62685741626,925.75200029443,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31"},tonos31_pis2:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,405.0976494977,448.50096908674,483.00104363188,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,810.19529899541,897.00193817349,966.00208726375,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-31B"},tonos33_pis:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012,546.00117975777,570.81941520131,627.90135672144,697.66817413493,761.09255360175,837.20180896192,930.22423217991,1046.5022612024],description:"Diatonic Perfect Immutable System in the new Tonos-33"},top31:{frequencies:[261.6255653006,267.49189720203,273.48976766293,279.62212612306,285.89198815637,292.30243695391,298.85662483994,305.55777482212,312.40918217641,319.41421606749,326.57632120555,333.89901954025,341.38591199258,349.04068022565,358.99452880887,367.04412845091,375.2742212459,383.6888543241,392.29216556304,401.08838562235,410.08184002413,419.27695128006,428.67824106611,438.29033244612,448.11795214515,458.16593287385,468.4392157049,478.94285250284,489.68200840824,500.66196437769,511.88811978069,523.36599505479],description:"Top temperament, 11-limit, {225/224, 385/384, 1331/1323}, Gene Ward Smith"},trab19:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,367.91095120397,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,5,45,75,225}"},trab19a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,297.67175429757,306.59245933664,313.95067836072,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,436.04260883433,446.50763144636,459.88868900496,465.11211608996,490.54793493862,523.2511306012],description:"Diamond {1,3,9,15,675}"},tranh:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"Bac Dan Tranh scale, Vietnam"},tranh2:{frequencies:[261.6255653006,290.69507255622,307.79478270659,392.4383479509,436.04260883433,523.2511306012],description:"Dan Ca Dan Tranh Scale"},tranh3:{frequencies:[261.6255653006,317.68818643644,348.83408706747,392.4383479509,473.41768959156,476.53227965466,523.2511306012],description:"Sa Mac Dan Tranh scale"},"tri12-1":{frequencies:[261.6255653006,264.29521392612,275.21650375777,319.76457981184,323.02748368748,332.97799220076,336.37572681506,406.97310157871,411.12588832951,428.11456140098,432.48307733364,502.48719684718,523.2511306012],description:"12-tone Tritriadic of 7:9:11"},"tri12-2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,504.56359022259,523.2511306012],description:"12-tone Tritriadic of 6:7:9"},"tri19-1":{frequencies:[261.6255653006,266.96486255163,269.10058145205,305.22982618403,311.45900631024,313.95067836072,320.35783506196,356.10146388137,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,427.32175665765,436.04260883433,439.53094970501,448.50096908674,508.71637697339,512.78610798918,523.2511306012],description:"3:5:7 Tritriadic 19-Tone Matrix"},"tri19-2":{frequencies:[261.6255653006,282.55561052465,290.69507255622,294.32876096318,313.95067836072,322.99452506247,327.03195662575,348.83408706747,353.19451315581,363.36884069528,376.74081403286,387.59343007496,392.4383479509,418.60090448096,423.83341578697,436.04260883433,465.11211608996,470.92601754108,484.4917875937,523.2511306012],description:"3:5:9 Tritriadic 19-Tone Matrix"},"tri19-3":{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,334.88072358477,348.83408706747,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"4:5:6 Tritriadic 19-Tone Matrix"},"tri19-4":{frequencies:[261.6255653006,264.89588486686,290.69507255622,294.32876096318,322.99452506247,327.03195662575,331.11985608357,334.88072358477,363.36884069528,367.91095120397,372.08969287196,376.74081403286,408.78994578219,413.43299207996,418.60090448096,423.83341578697,465.11211608996,470.92601754108,516.79124009995,523.2511306012],description:"4:5:9 Tritriadic 19-Tone Matrix"},"tri19-5":{frequencies:[261.6255653006,266.96486255163,284.8811711051,290.69507255622,302.73815413355,316.53463456122,322.99452506247,329.64821227876,336.37572681506,366.27579142084,373.75080757229,406.97310157871,415.27867508032,423.83341578697,432.48307733364,452.19233508746,470.92601754108,480.53675259294,512.78610798918,523.2511306012],description:"5:7:9 Tritriadic 19-Tone Matrix"},"tri19-6":{frequencies:[261.6255653006,267.07609791103,294.32876096318,299.00064605783,305.22982618403,336.37572681506,341.71502406609,343.38355445704,348.83408706747,356.10146388137,384.42940207435,392.4383479509,398.6675280771,400.61414686654,406.97310157871,448.50096908674,457.84473927605,465.11211608996,512.57253609913,523.2511306012],description:"6:7:8 Tritriadic 19-Tone Matrix"},"tri19-7":{frequencies:[261.6255653006,271.31540105247,288.32205155576,294.32876096318,299.00064605783,305.22982618403,316.53463456122,336.37572681506,348.83408706747,356.10146388137,384.42940207435,392.4383479509,406.97310157871,432.48307733364,448.50096908674,457.84473927605,465.11211608996,474.80195184183,504.56359022259,523.2511306012],description:"6:7:9 Tritriadic 19-Tone Matrix"},"tri19-8":{frequencies:[261.6255653006,264.29521392612,272.43653907335,275.21650375777,316.53463456122,319.76457981184,323.02748368748,332.97799220076,336.37572681506,350.27555023717,390.82337532559,406.97310157871,411.12588832951,423.79017189188,428.11456140098,432.48307733364,497.4115685962,502.48719684718,517.96576564563,523.2511306012],description:"7:9:11 Tritriadic 19-Tone Matrix"},"tri19-9":{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,341.71502406609,366.27579142084,373.75080757229,400.61414686654,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"4:5:7 Tritriadic 19-Tone Matrix"},triang11:{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,418.60090448096,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"11-limit triangular diamond lattice with 64/63 intervals removed"},triaphonic_12:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,367.19377586049,387.59343007496,410.39304360878,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"12-tone Triaphonic Cycle, conjunctive form on 4/3, 5/4 and 6/5"},triaphonic_17:{frequencies:[261.6255653006,271.31540105247,281.75060878526,293.02063313667,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,390.69417751556,406.97310157871,422.62591317789,439.53094970501,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"17-tone Triaphonic Cycle, conjunctive form on 4/3, 7/6 and 9/7"},trichord7:{frequencies:[261.6255653006,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,392.4383479509,436.04260883433,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Trichordal undecatonic, 7-limit"},tricot:{frequencies:[261.6255653006,264.94025538413,268.70564228797,272.11003565477,275.55755973666,279.4738436282,283.01466417842,286.6003471482,290.673570175,294.35628843049,298.08566525814,302.32211998602,306.15242072385,310.03124984507,314.43747949204,318.42127516569,322.45554578164,327.03835025925,331.18179578139,335.37773516927,339.62683737367,344.45368576554,348.81777463097,353.23715677741,358.25743790514,362.79641682209,367.39290067029,372.61436622199,377.33523951767,382.11592657559,387.54663888312,392.45669803325,397.4289679423,403.0773124301,408.18413893183,413.35566924724,419.23036738005,424.541846554,429.92062250389,436.03074525334,441.55507841911,447.14940523431,453.50438708518,459.25010687752,465.06861996272,470.9608512551,477.65424916833,483.70593529179,489.8342966599,496.79592520903,503.09012862502,509.46407999504,516.70469117363,523.2511306012],description:"Tricot temperament, g=565.988015, 5-limit"},tritriad:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Tritriadic scale of the 10:12:15 triad, natural minor mode"},tritriad10:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,366.27579142084,392.4383479509,488.36772189445,523.2511306012],description:"Tritriadic scale of the 10:14:15 triad"},tritriad11:{frequencies:[261.6255653006,309.19384990071,356.76213450082,383.71749577421,421.62797713733,453.48431318771,486.49381977384,523.2511306012],description:"Tritriadic scale of the 11:13:15 triad"},tritriad13:{frequencies:[261.6255653006,294.32876096318,340.11323489078,348.83408706747,392.4383479509,453.48431318771,510.16985233617,523.2511306012],description:"Tritriadic scale of the 10:13:15 triad"},tritriad14:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509,448.50096908674,504.56359022259,523.2511306012],description:"Tritriadic scale of the 14:18:21 triad"},tritriad18:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,426.35277308246,479.64686971777,523.2511306012],description:"Tritriadic scale of the 18:22:27 triad"},tritriad22:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,481.6288815761,523.2511306012],description:"Tritriadic scale of the 22:27:33 triad"},tritriad26:{frequencies:[261.6255653006,294.32876096318,301.87565226992,348.83408706747,392.4383479509,402.50086969323,452.81347840488,523.2511306012],description:"Tritriadic scale of the 26:30:39 triad"},tritriad3:{frequencies:[261.6255653006,305.22982618403,356.10146388137,373.75080757229,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Tritriadic scale of the 3:5:7 triad. Possibly Mathews's 3.5.7a"},tritriad32:{frequencies:[261.6255653006,294.32876096318,322.00069575458,348.83408706747,392.4383479509,429.33426100611,483.00104363188,523.2511306012],description:"Tritriadic scale of the 26:32:39 triad"},tritriad3c:{frequencies:[261.6255653006,305.22982618403,366.27579142084,373.75080757229,427.32175665765,436.04260883433,512.78610798918,523.2511306012],description:"From 1/1 7/6 7/5, a variant of the 3.5.7 triad"},tritriad3d:{frequencies:[261.6255653006,305.22982618403,313.95067836072,363.36884069528,366.27579142084,436.04260883433,508.71637697339,523.2511306012],description:"From 1/1 7/6 5/3, a variant of the 3.5.7 triad"},tritriad5:{frequencies:[261.6255653006,290.69507255622,329.64821227876,366.27579142084,406.97310157871,423.83341578697,470.92601754108,523.2511306012],description:"Tritriadic scale of the 5:7:9 triad. Possibly Mathews's 5.7.9a."},tritriad68:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Tritriadic scale of the 6:7:8 triad"},tritriad68i:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,398.6675280771,448.50096908674,465.11211608996,523.2511306012],description:"Tritriadic scale of the subharmonic 6:7:8 triad"},tritriad69:{frequencies:[261.6255653006,294.32876096318,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Tritriadic scale of the 6:7:9 triad, septimal natural minor"},tritriad7:{frequencies:[261.6255653006,264.29521392612,323.02748368748,332.97799220076,336.37572681506,411.12588832951,428.11456140098,523.2511306012],description:"Tritriadic scale of the 7:9:11 triad"},tritriad9:{frequencies:[261.6255653006,272.93037367779,319.76457981184,362.25078272391,377.90359432309,442.75095666255,461.88217083933,523.2511306012],description:"Tritriadic scale of the 9:11:13 triad"},tsjerepnin:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,470.92601754108,490.54793493862,523.2511306012],description:"Scale from Ivan Tsjerepnin's Santur Opera (1977) & suite from it Santur Live!"},tsuda13:{frequencies:[261.6255653006,281.75060878526,283.42769574232,322.00069575458,340.11323489078,362.25078272391,377.90359432309,402.50086969323,425.14154361347,442.75095666255,485.87604984397,518.26778650024,523.2511306012],description:"Mayumi Tsuda's Harmonic-13 scale. 1/1=440 Hz."},tuneable3:{frequencies:[36.70809598968,41.95210970249,42.82611198796,43.59086398774,44.04971518762,44.86545065405,45.8851199871,46.71939489596,47.1961234153,47.72052478658,48.94412798624,49.55592958607,50.47363198581,51.39133438555,52.00313598538,52.44013712811,53.02280531843,53.39359416681,55.06214398452,57.10148265061,57.68415084093,58.73295358349,59.65065598323,61.1801599828,62.40376318246,62.92816455374,64.23916798194,66.07457278142,66.74199270851,67.29817598108,68.17217826655,68.82767998065,70.35718398022,73.41619197936,79.53420797764,80.7578111773,82.59321597678,85.65222397592,87.18172797549,88.09943037523,89.14823311779,89.73090130811,90.10169015649,91.7702399742,94.39224683061,95.44104957317,96.35875197291,97.88825597248,100.94726397162,102.7826687711,104.00627197076,104.88027425623,105.53577597033,110.12428796904,114.20296530123,114.71279996775,115.36830168185,116.24230396732,117.46590716698,119.30131196646,120.61231539466,122.3603199656,123.88982396517,124.80752636491,125.85632910747,128.47833596388,132.14914556285,134.59635196216,137.6553599613,139.49076476078,140.71436796044,141.58837024591,146.83238395872,152.950399957,154.17400315666,156.00940795614,159.06841595528,161.51562235459,165.18643195356,168.85724155253,171.30444795184,174.36345595098,176.19886075046,183.5404799484,190.88209914634,192.71750394582,195.77651194496,201.89452794324,205.56533754221,208.01254394152,211.07155194066,220.24857593808,229.4255999355,232.48460793464,238.60262393292,244.7206399312,247.77964793034,256.95667192776,269.19270392432,275.3107199226,281.42873592088,293.66476791744],description:"Marc Sabat, 3 octaves of intervals tuneable by ear"},tuners1:{frequencies:[261.6255653006,276.50456653385,293.15590636358,311.0676370396,328.627540632,349.28088891463,369.11955599459,391.76814585061,414.75684959346,439.06365754828,466.60145532616,492.6062100846,523.2511306012],description:"The Tuner's Guide well temperament no. 1 (1840)"},tuners2:{frequencies:[261.6255653006,276.9861853325,293.55936848273,311.27971878774,329.48489606404,349.42029142443,369.90111701824,391.99869425741,415.03962525779,439.89939957166,466.4799232208,493.78769382322,523.2511306012],description:"The Tuner's Guide well temperament no. 2 (1840)"},tuners3:{frequencies:[261.6255653006,276.9180796764,293.64050032496,311.25753558078,329.38199580693,349.20116137147,369.59117881045,391.8877401954,415.37711930697,439.91014033466,466.33569310799,493.52238512763,523.2511306012],description:"The Tuner's Guide well temperament no. 3 (1840)"},turkish:{frequencies:[261.6255653006,279.06726965397,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:"Turkish, 5-limit from Palmer on a Turkish music record, harmonic minor inverse"},turkish_24:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,344.13890881665,348.83408706747,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,458.8518784222,465.11211608996,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Ra'uf Yekta, 24-tone Pythagorean Turkish Theoretical Gamut, 1/1=D (perde yegah) at 294 Hz"},turkish_24a:{frequencies:[261.6255653006,275.62199471997,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,344.52749339997,348.83408706747,367.91095120397,372.08969287196,387.59343007496,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,459.36999119996,465.11211608996,490.54793493862,496.67978412536,516.79124009995,523.2511306012],description:"Turkish gamut with schismatic simplifications"},turkish_41:{frequencies:[261.6255653006,266.80864394988,272.09440643071,275.67629620338,281.13773466533,286.70737164501,290.48162858661,294.30556868769,300.13607443832,306.08208692954,310.11139540064,316.25503135793,322.52037740267,326.76608188608,333.2396629384,339.84149442859,344.31521657963,348.8478314504,355.75887527351,362.80683626646,367.58287746967,374.8650823332,382.29155536296,387.32409620162,392.42288612931,400.19720009986,408.12552912594,413.49815209867,421.6899870258,430.04411333507,435.70527569249,441.44096240275,450.1863739015,459.10504388656,465.14876849982,474.36385666592,483.76150545705,490.12981126508,499.83980314828,509.74215733443,516.45247616827,523.2511306012],description:"Abd\xEF\xBF\xBDlkadir T\xEF\xBF\xBDre and M. Ekrem Karadeniz theoretical Turkish gamut"},turkish_41a:{frequencies:[261.6255653006,268.5590565112,272.09440643071,275.67629620338,279.3053384865,286.70737164501,290.48162858661,294.30556868769,298.17984938441,306.08208692954,310.11139540064,314.19374626607,322.52037740267,326.76608188608,335.42589979828,339.84149442859,344.31521657963,348.8478314504,353.4401143131,362.80683626646,367.58287746967,377.32440283229,382.29155536296,387.32409620162,392.42288612931,402.82271318249,408.12552912594,413.49815209867,424.45650702809,430.04411333507,435.70527569249,441.44096240275,453.1398459935,459.10504388656,465.14876849982,477.47594368525,483.76150545705,490.12981126508,503.11902634639,509.74215733443,516.45247616827,523.2511306012],description:"Karadeniz's theoretical Turkish gamut, quantized to subset of 53-tET"},turkish_aeu:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,516.20836322497,523.2511306012],description:"Arel-Ezgi-Uzdilek (AEU) 24 tone theoretical system"},turkish_bagl:{frequencies:[261.6255653006,277.01530443593,285.40970760065,294.32876096318,311.64221749042,321.08592105074,331.11985608357,348.83408706747,369.35373924791,380.54627680087,392.4383479509,415.52295665389,428.11456140098,441.49314144476,465.11211608996,492.47165233054,507.3950357345,523.2511306012],description:'Ratios of the 17 frets on the neck of "Baglama" ("saz") according to Yal\xEF\xBF\xBD\xEF\xBF\xBDn Tura'},two29:{frequencies:[261.6255653006,265.43099677612,267.95417262175,271.85165581044,274.43586616969,278.42762776199,281.0743490329,285.16266958193,287.87341387594,292.06062910037,294.83694510625,299.12544722478,301.96892109338,306.36116019141,309.2734164419,313.77190187131,316.75460431924,321.36190613206,324.41675883995,329.13550925662,332.26425750751,337.09715242073,340.3015837153,345.25138423021,348.53332930799,353.60286331966,356.96419720496,362.15636101402,365.59900408717,370.91676405444,374.44268531179,379.88907958456,383.50028913155,389.07842928561,392.77699240278,398.49006531303,402.2780950448,408.12936467525,412.00902517967,418.00183444819,421.97534223334,428.1131149215,432.1827401118,438.46898282094,442.63705045414,449.07535460876,453.34424596425,459.9382898638,464.31044382305,471.06399474345,475.54190918343,482.45882552933,487.04505874954,494.12929225872,498.82646444278,506.0820624438,510.89285715645,518.32396488098,523.2511306012],description:"Two 29-tET scales 25 cents shifted, many near just intervals"},two29a:{frequencies:[261.6255653006,264.02813680074,267.95417262175,270.41486126945,274.43586616969,276.95607779319,281.0743490329,283.65552346679,287.87341387594,290.51702578379,294.83694510625,297.54450482308,301.96892109338,304.74197548856,309.2734164419,312.11354980287,316.75460431924,319.66343925668,324.41675883995,327.39595721478,332.26425750751,335.31552138031,340.3015837153,343.42665631876,348.53332930799,351.73399604284,356.96419720496,360.24228665998,365.59900408717,368.95638908389,374.44268531179,377.88128181162,383.50028913155,387.02206376789,392.77699240278,396.38395721814,402.2780950448,405.97231075214,412.00902517967,415.79260233969,421.97534223334,425.85044246025,432.1827401118,436.15157730833,442.63705045414,446.70189207635,453.34424596425,457.50741431695,464.31044382305,468.5743173866,475.54190918343,479.90892674463,487.04505874954,491.51771254425,498.82646444278,503.40730976502,510.89285715645,515.58451111167,523.2511306012],description:"Two 29-tET scales 15.826 cents shifted, 13-limit chords, Mystery temperament, Gene Ward Smith"},xenakis_chrom:{frequencies:[261.6255653006,274.52698453615,329.62755691287,349.22823143301,391.99543598175,411.32572372413,493.88330125613,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 5 + 19 + 6 parts"},xenakis_diat:{frequencies:[261.6255653006,293.66476791741,326.46944327063,349.22823143301,391.99543598175,440,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 12 + 11 + 7 parts"},xenakis_schrom:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Xenakis's Byzantine Liturgical mode, 7 + 16 + 7 parts"},xenoga24:{frequencies:[261.6255653006,265.7783520514,279.38237857051,283.8170195002,294.32876096318,299.00064605783,310.07474405997,314.99656539426,331.11985608357,336.37572681506,348.83408706747,354.37113606854,372.50983809402,378.42269266694,392.4383479509,398.6675280771,419.07356785577,425.72552925031,441.49314144476,448.50096908674,465.11211608996,472.49484809138,496.67978412536,504.56359022259,523.2511306012],description:"M. Schulter, 3+7 ratios Xeno-Gothic adaptive tuning (keyboards 64:63 apart)"},xylophone2:{frequencies:[261.6255653006,295.19538981304,332.68808325276,388.83826257328,446.65787257783,506.59641128799,527.19506190947,579.57827742703,633.13077520476,751.1860077911,842.69088701475],description:"African Yaswa xylophones (idiophone; calbash resonators with membrane)"},xylophone3:{frequencies:[261.6255653006,292.47977325983,348.01999353916,392.4383479509,442.29334161825,523.2511306012],description:"African Banyoro xylophone (idiophone; loose log)"},xylophone4:{frequencies:[261.6255653006,281.70207497315,314.1971709147,349.63190883464,391.76907592069,436.9606979923,505.71930677521,568.9637969584,597.94115990992,660.7800775993,716.43551549302],description:"African Bapare xylophone (idiophone, loose-log)"},zalzal:{frequencies:[261.6255653006,294.32876096318,321.08592105074,348.83408706747,392.4383479509,428.11456140098,465.11211608996,523.2511306012],description:"Tuning of popular flute by Al Farabi & Zalzal. First tetrachord is modern Rast"},zalzal2:{frequencies:[261.6255653006,294.32876096318,331.11985608357,348.83408706747,387.59343007496,419.89288258121,465.11211608996,523.2511306012],description:"Zalzal's Scale, a medieval Islamic with Ditone Diatonic & 10/9 x 13/12 x 72/65"},zarlino:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Ptolemy's Intense Diatonic Systonon, also Zarlino's scale"},zarlino2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,363.36884069528,367.91095120397,392.4383479509,408.78994578219,436.04260883433,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"16-note choice system of Zarlino, Sopplimenti musicali (1588)"},zartehijaz1:{frequencies:[261.6255653006,280.55696721076,336.07142343876,350.07440004945,375.4060213132,393.89732161404,446.43551156053,468.42549744394,502.32108537715,523.2511306012],description:"Scale from Zarlino temperament extraordinaire -- lower Hijaz tetrachord"},zesster_a:{frequencies:[261.6255653006,279.06726965397,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,502.32108537715,523.2511306012],description:"Harmonic six-star, group A, from Fokker"},zesster_b:{frequencies:[261.6255653006,293.02063313667,299.00064605783,334.88072358477,366.27579142084,418.60090448096,457.84473927605,478.40103369253,523.2511306012],description:"Harmonic six-star, group B, from Fokker"},zesster_c:{frequencies:[261.6255653006,299.00064605783,305.22982618403,348.83408706747,398.6675280771,406.97310157871,457.84473927605,465.11211608996,523.2511306012],description:"Harmonic six-star, group C on Eb, from Fokker"},zesster_mix:{frequencies:[261.6255653006,274.70684356563,279.06726965397,293.02063313667,299.00064605783,313.95067836072,334.88072358477,348.83408706747,358.80077526939,366.27579142084,392.4383479509,418.60090448096,457.84473927605,478.40103369253,488.36772189445,502.32108537715,523.2511306012],description:"Harmonic six-star, groups A, B and C mixed, from Fokker"},zest24:{frequencies:[261.6255653006,269.33468959023,272.52663052146,280.55696721076,292.24684137387,300.8582598368,308.87634556583,317.97777315513,326.45210604021,336.07142343876,350.07440004945,360.38977980792,364.66083404534,375.4060213132,391.04793957621,402.57065589001,410.30971075781,422.39999923493,436.81711699543,449.68847932918,465.03699205118,478.73988827571,487.94322738789,502.32108537715,523.2511306012],description:"Zarlino Extraordinaire Spectrum Temperament (two circles at ~50.28c apart)"},zir_bouzourk:{frequencies:[261.6255653006,281.75060878526,305.22982618403,313.95067836072,353.19451315581,392.4383479509,523.2511306012],description:"Zirafkend Bouzourk (IG #3, DF #9), from both Rouanet and Safi al-Din"},zwolle:{frequencies:[261.6255653006,275.62199471997,294.32876096318,310.07474405997,331.11985608357,348.83408706747,367.49599295996,392.4383479509,413.43299207996,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"Henri Arnaut De Zwolle. Pythagorean on G flat."},zwolle2:{frequencies:[261.6255653006,273.37431312998,292.50627485027,311.68386704488,327.03195662575,349.91912034749,365.63284274659,391.22147055517,408.78994578219,437.39890198442,467.04206359353,489.02683710225,523.2511306012],description:"Henri Arnaut De Zwolle's modified meantone tuning (c. 1440)"},yarman12:{frequencies:[261.6255653006,283.42769574232,294.32876096318,309.19384990071,332.97799220076,348.83408706747,377.90359432309,392.4383479509,411.12588832951,442.75095666255,465.11211608996,499.46698830115,523.2511306012],description:"Detempered Yarman 13-limit, [<1 1 -20 -6 -3 -1|, <0 1 38 15 11 8|]"},yarman12_80:{frequencies:[261.6255653006,282.84340331238,295.36595061166,319.3201344739,333.45764463229,348.2210758395,376.46181130035,393.12919962609,425.01198472693,443.82887286778,479.82340237272,501.06699929295,523.2511306012],description:"Ozan Yarman MOS, 80-et version"},yarman17:{frequencies:[261.6255653006,274.08392555301,283.42769574232,294.32876096318,309.19384990071,322.00069575458,332.97799220076,348.83408706747,362.25078272391,377.90359432309,392.4383479509,411.12588832951,425.14154361347,442.75095666255,465.11211608996,485.87604984397,499.46698830115,523.2511306012],description:"80-et commas 13-limit detempering of a chain of 16 fifths"},"yarman_ney-ahengs":{frequencies:[261.6255653006,275.39533189537,294.32876096318,310.07474405997,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.43299207996,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Well Temperament for piano by Ozan Yarman from Ney Ahengs"},yasser_6:{frequencies:[261.6255653006,291.88463270656,325.64340264099,363.30663963964,405.32593044476,452.20508247496,523.2511306012],description:"Yasser Hexad, 6 of 19 as whole tone scale"},yasser_diat:{frequencies:[261.6255653006,281.42815779395,291.88463270656,313.97755176024,325.64340264099,350.29154279212,376.80531512858,390.80553229045,420.38583225541,436.00528786292,469.00678383895,486.43275040712,523.2511306012],description:"Yasser's Supra-Diatonic, the flat notes are V,W,X,Y,and Z"},yasser_ji:{frequencies:[261.6255653006,282.64904822654,294.32876096318,304.39128270551,327.03195662575,347.87575166344,359.73515228832,391.36022062136,425.14154361347,434.84468957929,457.84473927605,478.32915853722,523.2511306012],description:"Yasser's just scale, 2 Yasser hexads, 121/91 apart"},yekta:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,470.92601754108,502.32108537715,523.2511306012],description:"Rauf Yekta's 12-tone tuning suggested in 1922 Lavignac Music Encyclopedia"},"young-g":{frequencies:[261.6255653006,299.07507698093,319.76457981184,341.88537054616,390.82337532559,446.76650366117,477.67301428683,510.71739232152,583.82257301724,667.39198333921,713.56092257662,762.92356430953,872.13001648254,996.96833978235,1065.93668681199,1139.67601990796,1302.81150610354,1489.29848625885,1592.32474578757,1702.47910946196,1946.17475603251,2224.75468143463,2378.65811671778,2543.20970830682,2907.24890901465,3323.39919648924,3553.30434397593,3799.11599765247,4342.92768045015],description:"Gayle Young's Harmonium, see PNM 26(2): 204-212 (1988)"},"young-lm_guitar":{frequencies:[261.6255653006,279.06726965397,290.69507255622,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"LaMonte Young, Tuning of For Guitar '58. 1/1 March '92, inv.of Mersenne lute 1"},"young-lm_piano":{frequencies:[261.6255653006,289.72987407313,294.32876096318,300.46061014991,343.38355445704,338.01818641865,386.30649876417,392.4383479509,400.61414686654,457.84473927605,450.69091522486,515.07533168556,523.2511306012],description:"LaMonte Young's Well-Tempered Piano"},"young-w10":{frequencies:[261.6255653006,277.18263097687,302.26980244078,320.24370022528,349.22823143301,369.99442271164,391.99543598175,427.47405410759,452.89298412314,493.88330125613,523.2511306012],description:"William Lyman Young 10 out of 24-tET (1961)"},"young-w14":{frequencies:[261.6255653006,277.18263097687,293.66476791741,302.26980244078,320.24370022528,339.28638158975,359.46139971304,369.99442271164,391.99543598175,415.30469757995,427.47405410759,452.89298412314,479.82340237272,508.3551866238,523.2511306012],description:"William Lyman Young 14 out of 24-tET (1961)"},"young-wt":{frequencies:[261.6255653006,285.40970760065,309.19384990071,348.83408706747,392.4383479509,428.11456140098,463.79077485106,523.2511306012],description:'William Lyman Young "exquisite 3/4 tone Hellenic Lyre" dorian'},young:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,328.14198392915,348.83408706747,367.49599295996,391.5530240856,413.43299207996,438.51190905657,465.11211608996,491.10256480205,523.2511306012],description:"Thomas Young well temperament (1807), also Luigi Malerbi nr.2 (1794)"},young2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.14198392915,349.22823143301,368.32692341742,391.5530240856,414.36778843034,438.51190905657,466.16376151809,491.65745674141,523.2511306012],description:"Thomas Young well temperament no.2 (1799)"},yugo_bagpipe:{frequencies:[261.6255653006,277.02257024271,294.00421879736,322.47117131255,341.84370465044,381.9375744369,404.41509766528,430.1988069325,452.63145841613,463.74664903953,478.99265177484,502.22604835608,523.2511306012],description:"Yugoslavian Bagpipe"},yves:{frequencies:[261.6255653006,290.69507255622,327.03195662575,348.83408706747,392.4383479509,436.04260883433,465.11211608996,523.2511306012],description:`St Yves's scale II from Jocelyn Godwin, "Music and the Occult", 1995.`},saba_sup:{frequencies:[261.6255653006,287.78812183066,313.95067836072,327.03195662575,392.4383479509,418.60090448096,470.92601754108,497.08857407114,523.2511306012],description:"Superparticular version of maqam Sab"},sabagh:{frequencies:[261.6255653006,275.67629620338,279.3053384865,286.70737164501,294.30556868769,310.11139540064,314.19374626607,322.52037740267,326.76608188608,331.06767743197,348.8478314504,362.80683626646,367.58287746967,372.42178901277,392.42288612931,413.49815209867,418.94150105041,430.04411333507,441.44096240275,465.14876849982,471.27205084813,483.76150545705,490.12981126508,496.58195036371,523.2511306012],description:"Twfiq Al-Sabagh, Arabic master musical scale in 53-tET (1954)"},sabbagh:{frequencies:[261.6255653006,294.30556868769,321.46759848648,348.8478314504,392.42288612931,428.64035280622,465.14876849982,523.2511306012],description:"Tawfiq as-Sabbagh, a composer from Syria. 1/1=G"},safi_diat:{frequencies:[261.6255653006,276.16031892841,305.22982618403,348.83408706747,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:"Safi al-Din's Diatonic, also the strong form of Avicenna's 8/7 diatonic"},safi_diat2:{frequencies:[261.6255653006,283.79722337692,310.07474405997,348.83408706747,392.4383479509,425.69583506538,465.11211608996,523.2511306012],description:"Safi al-Din's 2nd Diatonic, a 3/4 tone diatonic like Ptolemy's Equable Diatonic"},safi_major:{frequencies:[261.6255653006,281.75060878526,322.00069575458,348.83408706747,375.66747838035,392.4383479509,523.2511306012],description:"Singular Major (DF #6), from Safi al-Din, strong 32/27 chromatic"},salinas_19:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,372.08969287196,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,490.54793493862,510.98743222773,523.2511306012],description:`Salinas' enharmonic tuning for his 19-tone instr. "instrumentum imperfectum"`},salinas_24:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,363.36884069528,367.91095120397,372.08969287196,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,459.88868900496,465.11211608996,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:'Salinas enharmonic system "instrumentum perfectum". Subset of Mersenne'},salinas_enh:{frequencies:[261.6255653006,272.52663052146,279.06726965397,348.83408706747,392.4383479509,408.78994578219,418.60090448096,523.2511306012],description:"Salinas's and Euler's enharmonic"},salunding:{frequencies:[261.6255653006,282.38958039978,310.76686573877,390.36201910543,419.43149305958,523.2511306012],description:"Gamelan slunding, Kengetan, South-Bali. 1/1=378 Hz"},sankey:{frequencies:[261.6255653006,274.88665260982,292.54735824399,309.58527581215,327.03195662575,348.83408706747,366.73895666255,391.24894371175,412.31687950427,437.13741259348,464.79252184829,489.99465727995,523.2511306012],description:"John Sankey's Scarlatti tuning, personal evaluation based on d'Alembert's"},santur1:{frequencies:[261.6255653006,282.02765077995,319.3201344739,347.21689301951,376.46192220133,427.47393558663,475.68393915562,504.55222794679,523.2511306012],description:"Persian santur tuning. 1/1=E"},santur2:{frequencies:[261.6255653006,281.2143451833,317.48098583281,345.21700307457,375.37611551499,423.78627283082,475.68393915562,498.18106573801,523.2511306012],description:"Persian santur tuning. 1/1=E"},sanza:{frequencies:[261.6255653006,293.15632631094,308.97787266236,346.21547002486,390.18821123181,462.40922843744,524.46149515038,595.18445928535,620.10113226249],description:"African N'Gundi Sanza (idiophone; set of lamellas, thumb-plucked)"},sanza2:{frequencies:[261.6255653006,390.63923480058,465.35666077712,523.2511306012,588.68812410589,663.45725712889,702.9084786129,783.08569314515],description:"African Baduma Sanza (idiophone, like mbira)"},sauveur:{frequencies:[261.6255653006,274.85950244128,292.7026939092,313.25286195357,328.80795208256,349.69755047152,367.27338607435,391.35133250294,417.15885134862,438.29716799286,468.84228427561,491.11646492505,523.2511306012],description:"Sauveur's tempered system of the harpsichord. Trait\xEF\xBF\xBD (1697)"},sauveur2:{frequencies:[261.6255653006,278.64199172491,293.04864983565,312.10886966906,328.2456799168,349.5951549002,372.33322418948,391.58401058733,417.05308314313,438.61577206336,467.14384425417,491.2966347616,523.2511306012],description:"Sauveur's Syste^me Chromatique des Musiciens (Memoires 1701), 12 out of 55."},sauveur_17:{frequencies:[261.6255653006,275.62199471997,290.36720431405,294.32876096318,310.07474405997,326.6631048533,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,489.99465727995,496.67978412536,523.2511306012],description:"Sauveur's oriental system, aft. Kitab al-adwar (Bagdad 1294) by Safi al-Din"},sauveur_ji:{frequencies:[261.6255653006,272.52663052146,294.32876096318,313.95067836072,327.03195662575,348.83408706747,367.91095120397,392.4383479509,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Aplication des sons harmoniques aux jeux d'orgues (1702) (PB 81/80 & 128/125)"},savas_bardiat:{frequencies:[261.6255653006,282.57123920205,317.17549194805,349.22823143301,391.99543598175,423.37848741825,475.22628419761,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 12 + 10 parts"},savas_barenh:{frequencies:[261.6255653006,282.57123920205,329.62755691287,349.22823143301,391.99543598175,423.37848741825,493.88330125613,523.2511306012],description:"Savas's Byzantine Liturgical mode, 8 + 16 + 6 parts"},savas_chrom:{frequencies:[261.6255653006,282.57123920205,323.3415889232,349.22823143301,391.99543598175,423.37848741825,484.46499093218,523.2511306012],description:"Savas's Chromatic, Byzantine Liturgical mode, 8 + 14 + 8 parts"},savas_diat:{frequencies:[261.6255653006,288.06460709314,311.12698372208,349.22823143301,391.99543598175,431.60923940535,466.16376151809,523.2511306012],description:"Savas's Diatonic, Byzantine Liturgical mode, 10 + 8 + 12 parts"},savas_palace:{frequencies:[261.6255653006,277.18263097687,336.03572815422,349.22823143301,391.99543598175,415.30469757995,503.48470957687,523.2511306012],description:"Savas's Byzantine Liturgical mode, 6 + 20 + 4 parts"},scalatron:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,510.98743222773,523.2511306012],description:"Scalatron (tm) 19-tone scale, see manual, 1974"},scheengaas:{frequencies:[261.6255653006,273.84069463911,292.6487650037,312.74862113192,327.53979283172,350.03605285217,366.8025131876,391.54284657258,418.19337019276,437.97145880542,467.51204131067,489.62261321254,523.2511306012],description:"Scheengaas' variation"},scheffer:{frequencies:[261.6255653006,274.56546814423,292.86978442859,309.86465789076,327.84548435462,349.70179235499,366.99791252626,391.46460164194,410.82629477826,438.21464222188,467.42914467878,490.54793493862,523.2511306012],description:"H.Th. Scheffer (1748) modified 1/5-comma temperament, Sweden"},schidlof:{frequencies:[261.6255653006,264.89588486686,274.70684356563,280.31310567921,294.32876096318,305.22982618403,315.35224388912,322.99452506247,327.03195662575,348.83408706747,353.19451315581,366.27579142084,373.75080757229,392.4383479509,406.97310157871,420.46965851882,436.04260883433,457.84473927605,467.18850946536,484.4917875937,490.54793493862,523.2511306012],description:"Schidlof"},schillinger:{frequencies:[261.6255653006,262.8879410321,275.85161280553,277.18263097687,278.52007147562,292.25460328695,293.66476791741,295.08173676673,309.63296633914,311.12698372208,312.62820992379,328.04470063332,329.62755691287,331.21805066987,347.55125362114,349.22823143301,350.91330087035,368.21772660991,369.99442271164,371.77969159194,390.11309203208,391.99543598175,393.88686247394,413.31042363438,415.30469757995,417.30859414412,437.88714035463,440,442.12305445465,463.92526470026,466.16376151809,468.41305936011,491.51169649079,493.88330125613,496.26634930797,520.73850287792,523.2511306012],description:"Joseph Schillinger's double equal temperament, p.664 Mathematical Basis..."},schis41:{frequencies:[261.6255653006,266.96486255163,272.52663052146,275.21650375777,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,311.45900631024,313.95067836072,321.08592105074,327.03195662575,329.64821227876,336.37572681506,343.38355445704,348.83408706747,355.95315006884,363.36884069528,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,415.27867508032,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,484.4917875937,490.54793493862,497.4115685962,504.56359022259,512.78610798918,523.2511306012],description:"41&53 <<1 -8 -14 23 -15 -25 33 -10 81 113||"},schisynch17:{frequencies:[261.6255653006,275.80289341725,290.74848220557,294.25152581512,310.19683462128,327.0062098829,330.94609980123,348.87986495302,367.78544978395,387.71551660339,392.38685458718,413.65005636851,436.06549769577,441.31937388998,465.23419873014,490.4449531872,496.35401261224,523.2511306012],description:"fifth satisfies f^9 + f^8 - 64 = 0"},schlick:{frequencies:[261.6255653006,275.62199471997,293.00227310437,311.47852302926,328.14198392915,349.6228209638,367.9112241576,391.5530240856,414.36778843034,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Reconstructed temp. A. Schlick, Spiegel d. Orgelmacher und Organisten (1511)"},schlick2:{frequencies:[261.6255653006,275.31092272332,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.9112241576,391.5530240856,415.30469757995,438.51190905657,466.69047534984,491.10256480205,523.2511306012],description:"Schlick's temperament reconstructed by F.J. Ratte (1991)"},schlick3:{frequencies:[261.6255653006,275.31092431358,293.00227310437,311.83045953724,328.14198392915,349.6228209638,367.70355049744,391.5530240856,415.07027187895,438.51190905657,466.95405539699,491.10256480205,523.2511306012],description:"Possible well-tempered interpretation of 1555 tuning, Margo Schulter"},schlick4:{frequencies:[261.6255653006,275.29566620843,293.00166043901,311.83758337792,328.14192706649,349.6222474261,367.6987228158,391.55300599201,415.35839309639,438.51185079886,466.95962791236,491.10245700671,523.2511306012],description:"Another reconstructed Schlick's modified meantone (Poletti?)"},scholz:{frequencies:[261.6255653006,271.31540105247,299.00064605783,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Simple Tune #1 Carter Scholz"},scholz_epi:{frequencies:[261.6255653006,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4709.2601754108,5232.511306012,5494.1368713126,5755.7624366132,6279.0135672144,6540.639132515,6802.2646978156,7063.8902631162,7325.5158284168,8372.0180896192,8633.6436549198,9156.894785521,9418.5203508216,10203.3970467234,10465.022612024,10988.2737426252,11511.5248732264,11773.150438527,12558.0271344288,12819.6526997294,13081.27826503,14127.7805262324,14389.406091533,14651.0316568336,16482.4106139378,16744.0361792384,17005.661744539],description:"Carter Scholz, Epimore"},schulter:{frequencies:[261.6255653006,277.184065539,293.66520219021,311.12905403417,329.62853176407,349.23107169224,369.99606406306,391.99572582396,415.30715405467,440.00097595231,466.1672081452,493.88512703986,523.25577305438],description:`Margo Schulter's 5-limit JI virt. ET, "scintilla of Artusi" tempered 22-08-98`},schulter_17:{frequencies:[261.6255653006,272.43653907335,282.13181390574,295.15344695336,308.77608605158,319.09647917983,332.97799220076,348.34640884647,361.82138782225,375.64984936577,392.98775403209,410.26687922759,423.79017189188,443.34998408798,463.81254988138,480.53289366295,500.16624277499,523.2511306012],description:"Neo-Gothic well-temperament (14:11, 9:7 hypermeantone fifths) TL 04-09-2000"},schulter_24:{frequencies:[261.6255653006,270.06509966514,283.8170195002,292.97240722602,295.75063903546,305.22982618403,307.79478270659,317.68818643644,334.29933343966,345.08318290545,348.06842720833,359.29644098925,377.90359432309,390.09403284964,393.30161007617,406.07983174306,426.86276443782,440.63253103259,444.76346101102,458.66231916761,462.87600014722,477.80748402293,502.32108537715,518.89070451286,523.2511306012],description:'Rational intonation (RI) scale with some "17-ish" features (24 notes)'},schulter_cart34:{frequencies:[261.6255653006,270.08718526646,272.51337835337,281.3271372098,283.85429714132,293.03484945212,295.66718139806,305.22982618403,307.97166902637,317.93223698752,320.78822215662,331.16330924834,334.13814720468,344.94500399825,348.04364484358,359.30023993517,362.52783176564,374.2528814026,377.61479489998,389.82779436071,393.32961502355,406.05087076101,409.69842558521,422.94908927295,426.7484383229,440.55054172958,444.50800708553,458.88449901367,463.0066556268,477.98143975034,482.27514684959,497.87312179111,502.34551296122,518.59261334435,523.2511306012],description:'"Carthesian tuning" with two 17-tET chains 55.106 cents apart'},schulter_diat7:{frequencies:[261.6255653006,295.1673044417,332.97799220076,348.83408706747,392.4383479509,442.75095666255,499.46698830115,523.2511306012],description:"Diatonic scale, symmetrical tetrachords based on 14/11 and 13/11 triads"},schulter_ham:{frequencies:[261.6255653006,272.52663052146,283.8170195002,295.75063903546,307.79478270659,320.70230585235,334.29933343966,348.01136516401,362.25078272391,377.90359432309,393.36609818246,409.50088481833,426.86276443782,444.76346101102,462.87600014722,482.33849075995,502.32108537715,523.2511306012],description:'New rational tuning of "Hammond organ type", TL 01-03-2002'},schulter_jot17a:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.1673044417,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.75095666255,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:"Just octachord tuning -- 4:3-9:8-4:3 division, 17 steps (7 + 3 + 7), Bb-Bb"},schulter_jot17bb:{frequencies:[261.6255653006,271.31540105247,281.75060878526,295.15228855401,305.22982618403,318.50068819203,332.97799220076,348.83408706747,361.75386806997,375.66747838035,392.4383479509,406.97310157871,422.62591317789,442.72843283101,457.84473927605,477.75103228805,499.46698830115,523.2511306012],description:'"Just Octachord Tuning" (Bb-Eb, F-Bb) -- 896:891 divided into 1792:1787:1782'},schulter_jwt17:{frequencies:[261.6255653006,272.43653907335,282.34838235411,295.1673044417,308.34441624714,319.76457981184,332.97799220076,347.8430811383,362.25078272391,376.08675011961,393.55640592227,409.81906732402,425.14154361347,443.97065626768,462.87600014722,481.6288815761,500.8899711738,523.2511306012],description:'"Just well-tuned 17" circulating system'},"schulter_lin76-34":{frequencies:[261.6255653006,270.6250663876,281.88470155261,291.58108453077,295.07956188513,305.22982618403,308.89206602106,319.51745915009,332.81131277165,344.25948974019,348.39001840879,360.3740779397,375.36781334896,388.27986588625,392.93856423817,406.45502016129,423.36600317146,437.92911415628,443.18352164838,458.42832346067,463.9286840578,479.88708893184,499.85328649772,517.04744024951,523.2511306012],description:"Two 12-note chains, ~704.160 cents, 34 4ths apart (32 4ths = 7:6), TL 29-11-02"},schulter_pel:{frequencies:[261.6255653006,271.31540105247,305.22982618403,392.4383479509,406.97310157871,523.2511306012],description:"Just pelog-style Phrygian pentatonic"},schulter_pepr:{frequencies:[261.6255653006,270.64528702739,281.81099471089,291.52662303231,295.05751399041,305.22982618403,308.92668738628,319.57714790608,332.76158224462,344.23376719628,348.40303271111,360.41446953256,375.28368107222,388.22184469544,392.9238840789,406.47020586181,423.23948674937,437.83095983374,443.13385158124,458.41119660824,463.96335069158,479.95880706014,499.75992392917,516.98949183803,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},schulter_qcm62a:{frequencies:[261.6255653006,262.43934012943,267.90457886781,268.73788454005,273.37431312998,274.22463192287,279.93529690293,280.80602334765,285.65065877038,286.53916259713,292.50627485027,293.41610276971,299.52642572255,300.45808951291,305.64177427204,306.59245933664,312.977175335,313.95067836072,320.36052345918,320.48862783822,327.03195662575,328.04917632434,334.88072358477,335.92235492515,341.71789064962,342.78078913836,349.91912034749,351.00752840096,358.31717956585,359.43170941363,365.63284274659,366.77012764335,374.40803131735,375.5726110527,382.05221698715,383.2405741708,391.22147055517,392.4383479509,400.61078621746,401.85686830172,408.78994578219,410.06146948999,418.60090448096,419.90294514449,427.14736482575,428.47598794138,437.39890198442,438.75941205608,447.89647345742,449.28963835923,457.04105241293,458.46266117889,468.01003810189,469.46576276783,479.24227945773,480.73294151703,489.02683710225,490.54793493862,500.76348165392,502.32108537715,510.98743222773,512.57683571821,523.2511306012],description:"1/4-comma meantone, two 31-notes at 1/4-comma (Vicentino-like system)"},schulter_qcmlji24:{frequencies:[261.6255653006,262.43934012943,273.37431312998,274.22463192287,292.50627485027,293.41610276971,306.59245933664,312.977175335,327.03195662575,328.04917632434,349.91912034749,351.00752840096,365.63284274659,366.77012764335,391.22147055517,392.4383479509,408.78994578219,410.06146948999,437.39890198442,438.75941205608,458.46266117889,468.01003810189,489.02683710225,490.54793493862,523.2511306012],description:"24-note adaptive JI (Eb-G#/F'-A#') for Lasso's Prologue to _Prophetiae_"},schulter_qcmqd8_4:{frequencies:[261.6255653006,273.37431312998,292.50627485027,309.28772967674,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.22091428214,437.39890198442,465.24335632603,489.02683710225,523.2511306012],description:"F-C# in 1/4-comma meantone, other 5ths ~4.888 cents wide or (2048/2025)^(1/4)"},schulter_sq:{frequencies:[261.6255653006,271.31540105247,279.38237857051,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,419.07356785577,434.59481110969,441.49314144476,457.84473927605,465.11211608996,488.9191624984,496.67978412536,515.07533168556,523.2511306012],description:'"Sesquisexta" tuning, two 12-tone Pyth. manuals a 7/6 apart. TL 16-5-2001'},schulter_tedorian:{frequencies:[261.6255653006,295.99553712036,309.28772789022,347.85054122562,393.54796334264,442.61656607198,462.49302735707,523.2511306012],description:"Eb Dorian in temperament extraordinaire -- neo-medieval style"},schulter_zarte84:{frequencies:[261.6255653006,272.52663052146,292.24684137387,308.87634556583,326.45210604021,350.07440004945,364.66083404534,391.04793957621,410.30971075781,436.81711699543,465.03699205118,487.94322738789,523.2511306012],description:"Temperament extraordinaire, Zarlino's 2/7-comma meantone (F-C#)"},schulter_zarte84n:{frequencies:[261.6255653006,272.46997760396,292.1447183254,308.81896225817,326.44489157977,350.01709816983,364.52535053201,391.11195868293,410.09013064752,436.73596474349,465.11312402839,488.01232708701,523.2511306012],description:"Zarlino temperament extraordinaire, 1024-tET mapping"},scotbag:{frequencies:[261.6255653006,290.69507255622,327.03195662575,356.76213450082,387.59343007496,436.04260883433,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning"},scotbag2:{frequencies:[261.6255653006,290.69507255622,319.76457981184,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Scottish bagpipe tuning 2"},scotbag3:{frequencies:[261.6255653006,294.32876096318,327.03195662575,359.73515228832,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Scottish bagpipe tuning 3"},scotbag4:{frequencies:[261.6255653006,293.15632631094,318.58319997217,348.2210758395,392.67530119805,428.21545238314,468.59347232539,523.2511306012],description:"Scottish Higland Bagpipe by Macdonald, Edinburgh. Helmholtz/Ellis p. 515, nr.52"},scottd1:{frequencies:[261.6255653006,275.93341798027,292.67158636845,310.42509491746,327.40170814054,349.22823143301,367.9112241576,391.5530240856,413.90012676351,437.52264545758,465.63764214343,490.54829628849,523.2511306012],description:"Dale Scott's temperament 1, TL 9-6-1999"},scottd2:{frequencies:[261.6255653006,276.1828093671,292.93610587951,310.70566022736,327.9937953665,349.3071136959,368.24374600687,391.64146650178,414.27421384356,438.21489534465,466.05849010807,491.32444638706,523.2511306012],description:"Dale Scott's temperament 2, TL 9-6-1999"},scottd3:{frequencies:[261.6255653006,276.40121172404,293.16775656083,310.95136287868,328.51274831708,349.22813057195,368.53494914961,391.77416758435,414.60181737882,438.75957425603,466.42704408487,491.93513777943,523.2511306012],description:"Dale Scott's temperament 3, TL 9-6-1999"},scottd4:{frequencies:[261.6255653006,276.60439543337,293.30494246724,310.98285414553,328.78580734933,349.37474066871,369.05201453919,391.83105388699,414.77686160481,439.10664961187,466.16991430388,492.5350487994,523.2511306012],description:"Dale Scott's temperament 4, TL 9-6-1999"},scottj:{frequencies:[261.6255653006,294.32876096318,336.37572681506,348.83408706747,392.4383479509],description:`Jeff Scott's "seven and five" tuning, fifth-repeating. TL 20-04-99`},scottj2:{frequencies:[261.6255653006,290.69507255622,299.00064605783,305.22982618403,313.95067836072,348.83408706747,366.27579142084,406.97310157871,418.60090448096,428.11456140098,436.04260883433,485.87604984397,523.2511306012,566.85539148463,581.39014511244,598.00129211566,610.45965236807,680.22646978156,719.47030457665,784.8766959018],description:`Jeff Scott's "just tritone/13" tuning. TL 17-03-2001`},secor12_1:{frequencies:[261.6255653006,275.03488264166,292.74290192225,310.07362690431,327.56128791316,349.21167447253,366.91716522699,391.37968062521,412.76363757129,437.92977184699,465.61556619611,490.01645577464,523.2511306012],description:"George Secor's 12-tone temperament ordinaire #1, proportional beating"},secor12_2:{frequencies:[261.6255653006,275.62199471997,292.79557634972,310.07474405997,327.35540669465,348.83408706747,367.49599295996,391.60840570078,413.43299207996,437.83150862942,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's closed 12-tone well-temperament #2, with 7 just fifths"},secor12_3:{frequencies:[261.6255653006,274.49585366342,292.50627485027,309.76836826904,327.03195662575,349.57337698802,365.99447173417,391.22147055517,411.74378028931,437.39890198442,466.09783352473,489.02683710225,523.2511306012],description:"George Secor's closed 12-tone temperament #3 with 5 meantone, 3 just, and 2 wide fifths"},secor17htt1:{frequencies:[261.6255653006,266.21235100401,283.6936382117,294.88137067808,304.94368688875,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,435.63385416574,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #1 on C (5/4 & 7/4 exact)"},secor17htt2:{frequencies:[261.6255653006,266.21235100401,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,348.50707605838,360.3992766165,372.69727792826,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #2 on Eo (5/4 & 7/4 exact)"},secor17htt3:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,327.03195662575,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,425.93975025566,442.73709545768,457.84473927605,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #3 on G (5/4 & 7/4 exact)"},secor17htt4:{frequencies:[261.6255653006,270.55308473255,279.78524030783,294.88137067808,300.05119287674,319.75456524059,332.36439517321,343.70575469589,360.3992766165,368.60172104124,392.80658053205,399.69321489333,420.07165483694,442.73709545768,450.49910517366,480.08189580921,491.0082387498,523.2511306012],description:"George Secor's 17-tone high-tolerance temperament subset #4 on Bo (5/4 & 7/4 exact)"},secor17wt:{frequencies:[261.6255653006,271.90848849519,284.45827635845,296.12458543709,307.25838681362,320.91221742866,335.17278980765,347.77473997341,362.0378075073,378.74746489181,393.63374363584,408.43373030454,427.2847686483,445.53990619223,462.29147990415,482.0422296857,504.29062567056,523.2511306012],description:"George Secor's well temperament with 5 pure 11/7 and 3 near just 11/6"},secor19wt:{frequencies:[261.6255653006,272.32755795875,282.27948808054,292.18583194851,304.13791554835,314.37102040472,326.31582004031,339.6640167515,350.11094753355,364.43250202589,378.27942889874,391.0071187494,407.00156221801,421.24111755476,436.68033801788,454.54308187078,469.17957429271,487.6886112017,506.92782577841,523.2511306012],description:"George Secor's 19-tone well temperament with ten 5/17-comma fifths"},secor19wt1:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.3856167727,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.33223555387,436.68095599763,454.54522431957,469.16941157468,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.1)"},secor19wt2:{frequencies:[261.6255653006,272.32845615788,282.22605479514,292.18610873661,304.13920677667,314.27577204952,326.31643450984,339.6657766488,350.11078170334,364.43353349925,378.23315721313,391.00730395019,407.00309738029,421.20165315727,436.68095599763,454.54522431957,469.03541436973,487.689760539,506.89867708289,523.2511306012],description:"George Secor's 19-tone proportional-beating (5/17-comma) well temperament (v.2)"},secor1_4tx:{frequencies:[261.6255653006,274.52656755164,292.65557420835,309.65910769439,327.20096538886,349.14957009195,366.50113643833,391.42429537222,412.04336447213,437.62002395673,465.5327601226,489.58458498887,523.2511306012],description:"George Secor's rational 1/4-comma temperament extraordinaire"},secor1_5tx:{frequencies:[261.6255653006,275.23833828784,292.86443876933,310.12174699459,327.84546895566,349.26796031009,366.98445105045,391.462133155,412.85750743176,438.21197504744,465.69061374678,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma temperament extraordinaire (ratios supplied by G. W. Smith)"},secor1_5wt:{frequencies:[261.6255653006,275.62199471997,292.86443876933,310.07474405997,327.84546895566,348.83408706747,367.44664657419,391.462133155,413.43299207996,438.21197504744,465.11211608996,490.54793493862,523.2511306012],description:"George Secor's 1/5-comma well-temperament (ratios supplied by G. W. Smith)"},secor1_7wt:{frequencies:[261.6255653006,276.40791719395,293.28186156416,310.6264877857,328.77715667764,349.45479875891,368.54388959194,391.74026793015,414.61187579093,439.14616729155,465.93973167855,492.29203182992,523.2511306012],description:"George Secor's 1/7-comma well-temperament (ratios supplied by G. W. Smith)"},secor22_19p3:{frequencies:[261.6255653006,266.86058412305,272.32845615788,282.28026746552,292.18610873661,304.13920677667,314.37137994881,326.31643450984,339.6657766488,350.11078170334,357.11635499175,364.43353349925,378.28077924825,391.00730395019,407.00309738029,421.28573964817,436.68095599763,454.54522431957,469.17973147781,477.89781576412,487.689760539,506.93004530576,523.2511306012],description:"George Secor's 19+3 well temperament with ten ~5/17-comma (equal-beating) fifths and 3 pure 9:11. TL 28-6-2002,26-10-2006. Aux=1,10,19"},secor22_ji29:{frequencies:[261.6255653006,272.52663052146,283.42769574232,286.15296204753,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.65828815182,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,414.24047839262,425.14154361347,436.04260883433,441.49314144476,457.84473927605,479.64686971777,490.54793493862,501.44900015948,523.2511306012],description:"George Secor's 22-tone just intonation (29-limit otonality on 4/3)"},secor29htt:{frequencies:[261.6255653006,270.55308473255,276.71069203503,283.6936382117,290.1503157249,294.88137067808,304.94368688875,310.54087273367,319.75456524059,327.03195662575,332.36439517321,343.70575469589,348.50707605838,360.3992766165,368.60172104124,377.19539564757,387.3949548402,392.80658053205,406.21042497925,415.4555026381,425.93975025566,435.63385416574,442.73709545768,457.84473927605,464.24049278842,480.08189580921,491.0082387498,499.01438878341,516.04239079678,523.2511306012],description:"George Secor's 29-tone 13-limit high-tolerance temperament (5/4 & 7/4 exact)"},secor2_11wt:{frequencies:[261.6255653006,275.91396717201,292.9984614786,310.40321306851,328.14053952957,349.20361470207,367.88528956268,391.55148162785,413.87095075801,438.50612639837,465.60481960276,491.10222639053,523.2511306012],description:"George Secor's rational 2/11-comma well-temperament"},secor41htt:{frequencies:[261.6255653006,266.21235100401,270.55308473255,276.71069203503,279.78524030783,283.6936382117,290.1503157249,294.88137067808,300.05119287674,304.94368688875,310.54087273367,315.34936221801,319.75456524059,327.03195662575,332.36439517321,338.19136297459,343.70575469589,348.50707605838,354.61705516636,360.3992766165,368.60172104124,372.69727792826,377.90358994896,387.3949548402,392.80658053205,399.69321489333,406.21042497925,415.4555026381,420.07165483694,425.93975025566,435.63385416574,442.73709545768,450.49910517366,457.84473927605,464.24049278842,473.46789104304,480.08189580921,491.0082387498,499.01438878341,507.7630447553,516.04239079678,523.2511306012],description:"George Secor's 13-limit high-tolerance temperament superset (5/4 & 7/4 exact)"},secor5_23tx:{frequencies:[261.6255653006,275.02417915696,292.7420830065,310.0721322444,327.56084927797,349.21018850905,366.91927748105,391.38056264645,412.75664067387,437.92311604224,465.61358467873,490.0190422864,523.2511306012],description:"George Secor's rational 5/23-comma temperament extraordinaire"},secor5_23wt:{frequencies:[261.6255653006,275.62199471997,292.75872440224,310.07474405997,327.56278518065,348.83408706747,367.49599295996,391.3766908411,413.43299207996,437.81158306864,465.11211608996,489.99465727995,523.2511306012],description:"George Secor's rational 5/23-comma proportional-beating well-temperament"},secor7p:{frequencies:[261.6255653006,281.10327891957,302.03108525935,356.94582815655,383.52002471837,412.07263653985,442.75095666255,523.2511306012],description:"George Secor's pelog-like MOS with near just 11:13:15:19 tetrads (1979)"},secor_vrwt:{frequencies:[261.6255653006,276.32932769153,293.15777167588,310.55777256823,328.11844153148,349.04269216937,368.62018440632,392.00375398861,414.25255044712,438.65017260809,465.6191423793,491.6947801169,523.2511306012],description:"George Secor's Victorian rational well-temperament (based on Ellis #2)"},"secor_wt1-7":{frequencies:[261.6255653006,276.2204353545,293.2843722634,310.74798946314,328.77415062671,349.45463702831,368.55847674989,391.74146894101,414.33065282463,439.14535139523,466.13275379077,492.28548658217,523.2511306012],description:"George Secor's 1/7-comma well-temperament"},secor_wt10:{frequencies:[261.6255653006,276.4188590209,293.2843722634,310.62634254146,328.77415062671,349.45463500978,368.55847887877,391.7414712038,414.6282883241,439.14535393183,465.93951357928,492.28548942572,523.2511306012],description:"George Secor's 12-tone well-temperament, proportional beating"},"secor_wtpb-24a":{frequencies:[261.6255653006,275.62199471997,292.84836938997,310.07474405997,327.30111872997,348.83408706747,367.49599295996,391.90002374246,413.43299207996,437.54991661796,465.11211608996,490.95167809495,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24a)"},"secor_wtpb-24b":{frequencies:[261.6255653006,275.62199471997,292.56126314547,310.07474405997,327.51644841334,348.83408706747,367.49599295996,391.46936437571,413.43299207996,437.76524630133,465.11211608996,490.37746560595,523.2511306012],description:"George Secor's 24-triad proportional-beating well-temperament (24b)"},segah:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Arabic SEGAH (Dudon) Two 4 + 3 + 3 tetrachords"},segah2:{frequencies:[261.6255653006,293.66476791741,318.39923223688,349.22823143301,391.99543598175,425.01198472693,466.16376151809,523.2511306012],description:"Iranian mode Segah from C"},segah_rat:{frequencies:[261.6255653006,294.32876096318,319.76457981184,348.83408706747,392.4383479509,441.49314144476,479.64686971777,523.2511306012],description:"Rationalized Arabic Seg\xEF\xBF\xBDh\r"},seidel974:{frequencies:[261.6255653006,262.64754016506,266.73543962288,267.75741448733,268.77938935179,273.88926367407,274.91123853852,276.95518826743,277.97716313189,280.0211128608,283.08703745416,284.10901231862,285.13098718308,287.17493691199,289.2188866409,290.24086150535,294.32876096318,457.84473927605,461.93263873387,463.97658846278,468.0644879206,474.19633710734,476.24028683625,482.37213602298,486.4600354808,488.50398520971,492.59188466754,498.72373385427,506.89953276991,513.03138195665,515.07533168556,519.16323114338,523.2511306012],description:"Dave Seidel, Base 9:7:4 Symmetry, scale for Passacaglia and Fugue State (2005)"},seikilos:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,441.49314144476,457.84473927605,504.56359022259,523.2511306012],description:"Seikilos Tuning"},sekati1:{frequencies:[261.6255653006,285.2147362526,318.99014578736,340.97107458785,383.86043226246,424.60539155549,468.56721805116,523.2511306012],description:"Gamelan sekati from Sumenep, East-Madura. 1/1=244 Hz."},sekati2:{frequencies:[261.6255653006,288.87830434024,317.34219433319,357.31261688157,393.64955765984,420.29657220667,469.35141988267,523.2511306012],description:"Gamelan Kyahi Sepuh from kraton Solo. 1/1=216 Hz."},sekati3:{frequencies:[261.6255653006,291.90272733088,308.20569577938,369.53649673407,403.69531865382,425.43272843735,475.11832680028,523.2511306012],description:"Gamelan Kyahi Henem from kraton Solo. 1/1=168.5 Hz."},sekati4:{frequencies:[261.6255653006,271.36353278789,288.89182053123,342.12578909252,379.12979967788,410.29128883625,439.50493264224,523.2511306012],description:"Gamelan Kyahi Guntur madu from kraton Jogya. 1/1=201.5 Hz."},sekati5:{frequencies:[261.6255653006,274.79663866182,311.31645994273,355.61927540077,375.97459751383,397.52718524897,433.44837981883,523.2511306012],description:"Gamelan Kyahi Naga Ilaga from kraton Jogya. 1/1=218.5 Hz."},sekati6:{frequencies:[261.6255653006,284.57524936299,310.80330758934,358.01400474517,390.79902205709,427.51850178351,468.18764285778,523.2511306012],description:"Gamelan Kyahi Munggang from Paku Alaman, Jogya. 1/1=199.5 Hz."},sekati7:{frequencies:[261.6255653006,286.67481979642,318.21831168293,371.10013445627,390.58282835584,422.12643845206,463.87524473877,523.2511306012],description:"Gamelan of Sultan Anom from Cheribon. 1/1=282 Hz."},sekati8:{frequencies:[261.6255653006,287.04067548259,315.94410704802,350.82750428678,381.72407804086,425.57749367468,447.5043967797,523.2511306012],description:"The old Sultans-gamelan Kyahi Suka rame from Banten. 1/1=262.5 Hz."},sekati9:{frequencies:[261.6255653006,280.44107893528,310.90439774384,346.74342440827,376.31071188751,412.14996063869,455.1567650372,523.2511306012],description:"Gamelan Sekati from Katjerbonan, Cheribon. 1/1=292 Hz."},selisir:{frequencies:[261.6255653006,278.78833362316,320.24370022528,380.8360868427,417.71053321823,524.76452349887],description:"Gamelan semara pagulingan, Bali. Pagan Kelod"},selisir2:{frequencies:[261.6255653006,279.59466973861,299.66214729245,376.46181130035,408.17001145418,520.23742585195],description:"Gamelan semara pagulingan, Bali. Kamasan"},selisir3:{frequencies:[261.6255653006,284.98499077387,305.5412851438,378.42269266694,406.45400323486,523.2511306012],description:"Gamelan gong, Pliatan, Bali. 1/1=280 Hz, McPhee, 1966"},selisir4:{frequencies:[261.6255653006,277.23130136276,295.59098907682,376.373620257,399.32323124828,523.2511306012],description:"Gamelan gong, Apuan, Bali. 1/1=285 Hz. McPhee, 1966"},selisir5:{frequencies:[261.6255653006,275.89605068063,309.19384990071,383.40037296022,406.23315014465,523.2511306012],description:"Gamelan gong, Sayan, Bali. 1/1=275 Hz. McPhee, 1966"},selisir6:{frequencies:[261.6255653006,282.63199755101,312.23197007902,396.25769882774,415.35445602102,523.2511306012],description:"Gamelan gong, Gianyar, Bali. 1/1=274 Hz. McPhee, 1966"},semipor1:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,353.19451315581,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"First 16/15&250/243 = 648/625&250/243 scale"},semisixths:{frequencies:[261.6255653006,264.19830736984,270.23055453212,272.88791531122,275.57140613391,281.86332858923,284.63508234504,291.13394747727,293.99686553194,300.70948316519,303.66656221886,306.65272199551,313.65430163898,316.7386758187,323.97054074552,327.15636145846,330.37351240232,337.91669168384,341.23965429995,349.03093233441,352.46319080675,360.51072564419,364.05587272954,367.63587953306,376.02984347246,379.72760059524,388.39764380609,392.21702191873,396.07395857323,405.11722624758,409.10101938242,418.44172684717,422.55654641528,426.71183224275,436.45463212963,440.74658728358,450.80983509489,455.24295209046,465.63718490681,470.21611194415,474.84006394159,485.68174342829,490.45777940536,501.656046885,506.58917188228,511.57080469686,523.2511306012],description:"Semisixths temperament, 13-limit, g=443.0"},"scalamakesrc2\\semisixths_8":{frequencies:[261.6255653006,282.20554108354,304.40437778605,337.94858305883,364.53227585368,393.20709362444,436.53702313055,470.87587163898,522.76460573117],description:"8-note MOS of Semisixths [7, 9, 13, -2, 1, 5] temperament, TOP tuning"},semisuper:{frequencies:[261.6255653006,267.78942821112,272.60119889127,277.49943141001,284.03728045772,289.141002119,295.95312328758,301.27095467792,308.36885759663,313.90977919898,321.30545111289,327.07882560827,334.78475653951,340.80033382945,348.82954357113,355.09748450744,363.46353108469,369.99442271164,378.7114412363,385.5163125912,392.44345945086,401.68937424288,408.90712663484,418.54092077997,426.06147005461,436.09942062666,443.93546710474,454.39452662825,462.55931114028,473.45714317395,481.96445416288,493.31947147471,502.18367855499,514.01505508798,523.2511306012],description:"Semisuper temperament, g=71.146064, p=600, 5-limit"},semithirds:{frequencies:[13.75,13.81661017188,13.90316796691,13.99026794524,14.07791366516,14.14611237417,14.23473442257,14.3239115844,14.41364750281,14.48347263281,14.57420816344,14.665512046,14.73655738771,14.82887834882,14.92177776458,15.01525908647,15.08799873642,15.18252139242,15.27763629821,15.37334698758,15.4478213521,15.54459820959,15.64198144101,15.73997475533,15.81622511342,15.91530993122,16.01501558389,16.11534586889,16.19341466585,16.29486248479,16.39694594444,16.47637891809,16.57959953527,16.68346670883,16.78798468204,16.86931199442,16.97499424439,17.08133847,17.18834901569,17.27161584349,17.37981843193,17.48869878298,17.59826134469,17.68351394199,17.7942969746,17.90577393328,18.01794937217,18.10523509614,18.21866011204,18.33279560295,18.42160666689,18.53701356879,18.6531435747,18.77000099922,18.86093005309,18.97908920954,19.09798871479,19.21763298632,19.3107305405,19.43170758802,19.55344264036,19.67594033402,19.77125798984,19.89512013023,20.01975835255,20.14517740386,20.24276822054,20.36958425827,20.49719488615,20.62560496443,20.72552315291,20.85536353332,20.98601745346,21.08768161561,21.21979095359,21.352727802,21.48649759166,21.59058626784,21.72584618454,21.86195334633,21.99891331359,22.10548432428,22.24396995552,22.38332303719,22.52354926226,22.63266180681,22.7744500803,22.91712649141,23.06069686887,23.17241155847,23.3175812365,23.46366023269,23.57732716458,23.72503340608,23.87366512928,24.02322785632,24.1396055475,24.29083432682,24.44301065897,24.59614033986,24.71529329517,24.87012861873,25.02593409262,25.18271565096,25.30471019771,25.46323807533,25.62275923969,25.78327976642,25.90818367164,26.07049216435,26.23381763196,26.36090411207,26.52604894185,26.69222821075,26.85944870765,26.98956598001,27.15864922771,27.32879158412,27.5],description:"Semithirds temperament, g=193.199615, 5-limit"},sensisynch19:{frequencies:[261.6255653006,272.4389540986,281.73678149918,293.38139793239,303.39395317428,313.74821628003,326.71591476706,337.86611241253,351.83064080634,363.83795665907,376.25506171692,391.80626469239,405.17787315281,421.92450060765,436.32398762558,454.35793210906,469.86431365505,485.89989602801,505.98288939536,523.2511306012],description:"Sensi[19] in synch (brat=-1) tuning, generator ~162/125 satisfies g^9-g^7-4=0"},serre_enh:{frequencies:[261.6255653006,265.7783520514,279.06726965397,348.83408706747,392.4383479509,398.6675280771,418.60090448096,523.2511306012],description:"Dorian mode of the Serre's Enharmonic"},"sev-elev":{frequencies:[261.6255653006,279.06726965397,294.32876096318,305.22982618403,327.03195662575,336.37572681506,359.73515228832,392.4383479509,406.97310157871,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:'"Seven-Eleven Blues" of Pitch Palette'},sha:{frequencies:[261.6255653006,266.96486255163,280.31310567921,284.82183961519,290.63452941521,294.32876096318,300.33547037059,305.16625703708,320.42456924675,326.96384715385,343.31203882349,348.83408706747,355.95315006884,373.75080757229,392.4383479509,400.44729382745,406.8883429195,420.46965851882,427.23275920923,435.9517939049,457.74938532681,480.63685362987,490.44577048562,498.33441009638,523.2511306012],description:"Three chains of sqrt(3/2) separated by 10/7"},shahin:{frequencies:[261.6255653006,277.01530443593,282.55561052465,294.32876096318,310.50067090621,317.47821407264,328.55303549378,348.83408706747,357.66532977804,371.78369805875,376.74081403286,392.4383479509,415.52295665389,428.11456140098,441.49314144476,463.20591889287,478.90781444856,495.71159741166,523.2511306012],description:"Mohajeri Shahin Iranian style scale, TL 9-4-2006"},shahin_wt:{frequencies:[261.6255653006,276.93928561067,294.25491037444,311.47852302926,329.62755691287,348.92163548373,370.73795561568,392.4383479509,415.30469757995,439.61371330969,467.10055427519,494.44133512215,523.2511306012],description:"Mohajeri Shahin, well temperament, TL 28-12-2006"},shalfun:{frequencies:[261.6255653006,269.43930514995,277.46904793785,285.74220762407,294.32876096318,302.80736724606,311.45900631024,320.30554027987,329.50323085718,338.98103822311,348.83408706747,359.12912189513,369.78878487717,380.87868001252,392.4383479509,404.24222079821,416.2697936366,428.68354137408,441.49314144476,454.4477424016,467.68960547122,481.19471271032,494.94053216156,508.90014647073,523.2511306012],description:"d'Erlanger vol.5, p.40. After Alexandre ^Salfun (Chalfoun)"},"sharm1c-conm":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,406.97310157871,430.91269578922,457.84473927605,523.2511306012],description:"Subharm1C-ConMixolydian"},"sharm1c-conp":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharm1C-ConPhryg"},"sharm1c-dor":{frequencies:[261.6255653006,319.76457981184,338.57426097725,359.73515228832,383.71749577421,411.12588832951,479.64686971777,547.03527290125,523.2511306012],description:"Subharm1C-Dorian"},"sharm1c-lyd":{frequencies:[261.6255653006,309.19384990071,323.91736656265,340.11323489078,382.37582620857,377.90359432309,485.87604984397,503.87145909745,523.2511306012],description:"Subharm1C-Lydian"},"sharm1c-mix":{frequencies:[261.6255653006,305.22982618403,318.50068819203,332.97799220076,366.27579142084,457.84473927605,488.36772189445,523.2511306012],description:"Subharm1C-Mixolydian"},"sharm1c-phr":{frequencies:[261.6255653006,313.95067836072,330.47439827444,348.83408706747,392.4383479509,483.00104363188,502.32108537715,523.2511306012],description:"Subharm1C-Phrygian"},"sharm1e-conm":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,430.91269578922,443.97065626768,457.84473927605,523.2511306012],description:"Subharm1E-ConMixolydian"},"sharm1e-conp":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,448.50096908674,465.11211608996,483.00104363188,523.2511306012],description:"Subharm1E-ConPhrygian"},"sharm1e-dor":{frequencies:[261.6255653006,338.57426097725,348.83408706747,359.73515228832,383.71749577421,411.12588832951,500.50108144463,511.62332769895,523.2511306012],description:"Subharm1E-Dorian"},"sharm1e-lyd":{frequencies:[261.6255653006,323.91736656265,331.81779013735,340.11323489078,382.37582620857,377.90359432309,503.87145909745,513.37846775967,523.2511306012],description:"Subharm1E-Lydian"},"sharm1e-mix":{frequencies:[261.6255653006,318.50068819203,325.57848126297,332.97799220076,366.27579142084,488.36772189445,505.20798816668,523.2511306012],description:"Subharm1E-Mixolydian"},"sharm1e-phr":{frequencies:[261.6255653006,330.47439827444,339.40613876835,348.83408706747,392.4383479509,502.32108537715,512.57253609913,523.2511306012],description:"Subharm1E-Phrygian"},"sharm2c-15":{frequencies:[261.6255653006,327.03195662575,341.25073734861,356.76213450082,392.4383479509,461.69217405988,490.54793493862,523.2511306012],description:"Subharm2C-15-Harmonia"},"sharm2c-hypod":{frequencies:[261.6255653006,322.00069575458,334.88072358477,348.83408706747,364.00078650518,380.54627680087,465.11211608996,492.47165233054,523.2511306012],description:"SHarm2C-Hypodorian"},"sharm2c-hypol":{frequencies:[261.6255653006,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,475.68284600109,498.33441009638,523.2511306012],description:"SHarm2C-Hypolydian"},"sharm2c-hypop":{frequencies:[261.6255653006,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,470.92601754108,495.71159741166,523.2511306012],description:"SHarm2C-Hypophrygian"},"sharm2e-15":{frequencies:[261.6255653006,341.25073734861,348.83408706747,356.76213450082,392.4383479509,490.54793493862,506.37206187213,523.2511306012],description:"Subharm2E-15-Harmonia"},"sharm2e-hypod":{frequencies:[261.6255653006,334.88072358477,341.71502406609,348.83408706747,364.00078650518,380.54627680087,492.47165233054,507.3950357345,523.2511306012],description:"SHarm2E-Hypodorian"},"sharm2e-hypol":{frequencies:[261.6255653006,327.03195662575,337.58137458142,348.83408706747,373.75080757229,402.50086969323,498.33441009638,510.48890790361,523.2511306012],description:"SHarm2E-Hypolydian"},"sharm2e-hypop":{frequencies:[261.6255653006,348.83408706747,355.41586229515,362.25078272391,376.74081403286,392.4383479509,495.71159741166,509.10920815252,523.2511306012],description:"SHarm2E-Hypophrygian"},sherwood:{frequencies:[261.6255653006,279.50101530337,292.73346657716,312.73435005323,327.54017122074,349.91920725962,366.48547573919,391.52543233055,418.27599117656,438.07873640926,468.01000025525,490.16733894289,523.65750116998],description:"Sherwood's improved meantone temperament"},shrutar:{frequencies:[261.6255653006,269.80136421624,277.49581689502,285.40970760065,294.32876096318,304.37698984459,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,368.95121675679,379.48299988042,392.4383479509,405.83598431812,417.42065019394,428.11456140098,441.49314144476,457.84473927605,470.92601754108,490.54793493862,505.97733342682,523.2511306012],description:"Paul Erlich's Shrutar tuning (from 9th fret) tempered with Dave Keenan"},shrutar_temp:{frequencies:[261.6255653006,269.67683152447,277.97586744827,286.53029793775,295.34798250635,304.4370214407,313.80576690868,327.74897996102,337.83512841993,348.23166805304,358.94815083964,369.99442271164,381.38063259971,393.11724175776,405.21503337437,417.68512248001,430.53896367224,443.78837151315,463.50705251482,477.77102045752,492.47394780842,507.62934310616,523.2511306012],description:"Shrutar temperament, 11-limit, g=52.474, 1/2 oct."},shrutart:{frequencies:[261.6255653006,269.83675183105,278.27349931787,286.14641333958,294.32706056425,305.2349557921,313.94319125793,327.02936607233,337.2932679302,348.82502010853,358.79758764604,369.99442271164,381.540672377,392.44854854484,405.86600994967,418.6042204156,436.0530078362,448.49343183014,465.11480315564,478.41198231361,491.94721442498,507.32849364948,523.2511306012],description:"Paul Erlich's 'Shrutar' tuning tempered by Dave Keenan, TL 29-12-2000"},siamese:{frequencies:[261.6255653006,269.26067151764,288.95340229325,296.22023396764,319.13574119147,352.26720984209,362.5475414329,388.79334481031,400.18585940536,429.40436513853,443.77760270734,473.98350631811,523.2511306012],description:"Siamese Tuning, after Clem Fortuna's Microtonal Guide"},silbermann1:{frequencies:[261.6255653006,275.15551885617,293.66476791741,312.53552595124,327.77163799145,349.82028288879,367.9112241576,391.99543598175,411.56972129721,438.75957425603,467.74568907204,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 1"},silbermann2:{frequencies:[261.6255653006,275.00020270933,293.00227310437,312.18279369479,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Gottfried Silbermann's temperament nr. 2, 1/6 Pyth. comma meantone"},silbermann2a:{frequencies:[261.6255653006,275.00020270933,293.00227310437,310.77584116741,328.14198392915,349.6228209638,367.49599295996,391.5530240856,411.56972129721,438.51190905657,467.21778431035,491.10256480205,523.2511306012],description:"Modified Silbermann's temperament nr. 2, also used by Hinsz in Midwolda"},silver:{frequencies:[261.6255653006,277.18807786937,293.58315284916,311.09098010692,329.53543886896,349.23174545031,369.98176232374,391.84186131702,415.18563115404,439.77824302677,466.03998256716,493.70667148145,523.2511306012],description:"Equal beating chromatic scale, A.L.Leigh Silver JASA 29/4, 476-481, 1957"},silver_10:{frequencies:[261.6255653006,270.26884019355,294.27266239927,320.41022551991,330.99364634362,360.39280035711,392.40094712608,405.36462386145,441.36692569059,480.56953386201,523.2511306012],description:"Ten-tone MOS from 350.9 cents"},silver_11:{frequencies:[261.6255653006,277.73657748574,294.83971256733,315.81001885226,335.25773244276,355.90304440354,381.21644531515,404.69191411574,429.61301214396,460.16899244324,488.50639225338,523.2511306012],description:"Eleven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_11a:{frequencies:[261.6255653006,272.21316796874,283.22923537857,314.22802528801,326.94437231289,340.17533123945,377.40674067136,392.67983758722,408.5710143206,453.28817432381,471.63208149661,523.2511306012],description:"Eleven-tone MOS from 317.17 cents"},silver_11b:{frequencies:[261.6255653006,281.48899567641,302.85877036442,316.87090334834,340.92873240472,366.81310701257,383.78194911277,412.91987382947,444.27004083312,464.82473992747,500.11279777071,523.2511306012],description:"Eleven-tone MOS from 331.67 cents"},silver_7:{frequencies:[261.6255653006,277.73649727228,315.81000061035,335.2576162513,381.21640127531,404.69175048432,460.16888612163,523.2511306012],description:"Seven-tone MOS from 1+sqr(2), 1525.864 cents"},silver_8:{frequencies:[261.6255653006,288.49477506296,306.46277751246,337.93681424842,358.98416079003,395.852196628,420.50662316693,492.57276348379,523.2511306012],description:"Eight-tone MOS from 273.85 cents"},silver_9:{frequencies:[261.6255653006,294.18258755347,307.6617709921,345.94759796409,361.79860795042,406.82129262791,425.46148093979,478.40645551359,500.32661205896,523.2511306012],description:"Nine-tone MOS from 280.61 cents"},silvermean:{frequencies:[261.6255653006,286.15296204753,327.03195662575,345.42750418595,392.4383479509,416.96574469783,474.19633710734,523.2511306012],description:"First 6 approximants to the Silver Mean, 1+ sqr(2) reduced by 2/1"},simonton:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,348.83408706747,370.63621750918,392.4383479509,414.24047839262,436.04260883433,465.11211608996,494.18162334558,523.2511306012],description:"Simonton Integral Ratio Scale, JASA 25/6 (1953): A new integral ratio scale"},sims:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Ezra Sims' 18-tone mode"},sims2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,286.15296204753,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Sims II"},sims_24:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.97716313189,283.42769574232,286.15296204753,294.32876096318,302.50455987882,305.22982618403,310.68035879446,316.13089140489,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"See his article, Reflections on This and That, 1991 p.93-106"},sin:{frequencies:[261.6255653006,275.08939827539,302.09917071192,334.63165645627,369.99442271164,407.01712569342,445.10399729103,483.9175316883,523.2511306012,562.97086325858,602.98541169118,643.23087116255,683.66056756853,724.23972686276,764.94197926416,805.74682982871,846.63811574624,887.6028851904,928.63083777952,969.71346974542,1010.84345850104,1052.01529432917],description:"1/sin(2pi/n), n=4..25"},sinemod12:{frequencies:[261.6255653006,270.6035983646,282.0485507085,292.16840832754,301.82804372114,314.42520179993,326.24260278214,336.76433478807,350.4641458176,364.21811789193,375.86233664064,390.61306119732,406.50371126161,419.61372202861,435.38454314112,453.55584308858,468.551249676,485.36279478778,505.89080731022,523.2511306012],description:"Sine modulated F=12, A=-.08203754"},sinemod8:{frequencies:[261.6255653006,272.43905323978,281.98404270447,290.99567087708,301.68076007415,314.40050256998,326.99158834066,337.97331861211,348.96407538813,362.38276875396,377.76595534172,392.29216556304,405.04934945717,418.6525822649,435.418746849,453.77727371169,470.43955130022,485.47382867757,502.48255971303,523.2511306012],description:"Sine modulated F=8, A=.11364155. Deviation minimal3/2, 4/3, 5/4, 6/5, 5/3, 8/5"},singapore:{frequencies:[261.6255653006,291.46787011619,321.35550581422,354.51258839996,385.70651737906,428.95813651779,462.1422075194,523.2511306012],description:"An observed xylophone tuning from Singapore"},sintemp6:{frequencies:[261.6255653006,277.18263097687,292.42974339757,312.08834713741,327.870830746,349.91196330865,369.15973155124,391.11111150212,416.11779639122,437.6550518996,467.60417912673,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/6 Pyth, one cycle, f0=-90 degrees"},sintemp6a:{frequencies:[261.6255653006,276.17281343288,293.21211353711,310.64741311165,328.42667470471,349.22823143301,368.43838932195,391.77416758435,414.19655102258,438.82595961933,465.90062756558,491.80624587316,523.2511306012],description:"Sine modulated fifths, A=1/12 Pyth, one cycle, f0= D-A"},sintemp_19:{frequencies:[261.6255653006,272.86445838226,281.30973389888,292.50627485027,304.14845459111,313.56198179795,327.03195662575,338.65502209741,350.02113164026,365.30494475029,376.98581738134,391.19763056219,407.47965586966,419.94695489748,437.42555500456,453.91586039553,468.43012697388,488.88431353627,505.29249383438,523.2511306012],description:"Sine modulated thirds, A=7.366 cents, one cycle over fifths, f0=90 degrees"},sintemp_7:{frequencies:[261.6255653006,291.06608881088,319.67397341855,351.09362859375,390.60192440975,432.07134328681,473.03044489876,523.2511306012],description:"Sine modulated fifths, A=8.12 cents, one cycle, f0=90 degrees"},slen_pel:{frequencies:[261.6255653006,261.6255653006,283.17034563789,298.45295203849,338.50336851425,364.68988616898,346.01554587335,389.06292924114,398.38689497567,420.13030572059,455.51656649021,493.31307433255,523.2511306012],description:"Pelog white, Slendro black"},slen_pel16:{frequencies:[261.6255653006,261.6255653006,285.30470202322,285.30470202322,297.93622032612,311.12698372208,339.28638158975,386.37547528213,386.37547528213,403.48177901006,421.34544350737,440,523.2511306012],description:"16-tET Slendro and Pelog"},slen_pel23:{frequencies:[261.6255653006,261.6255653006,295.14355885465,295.14355885465,286.38154466424,343.14246862785,313.47984535337,398.94762483098,398.94762483098,387.10394860926,450.05828708186,423.73315704439,523.2511306012],description:"23-tET Slendro and Pelog"},slen_pel_jc:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,279.06726965397,341.71502406609,348.83408706747,392.4383479509,392.4383479509,392.4383479509,448.50096908674,418.60090448096,523.2511306012],description:"Slendro/JC PELOG S1c,P1c#,S2d,eb,P2e,S3f,P3f#,S4g,ab,P4a,S5bb,P5b"},slen_pel_schmidt:{frequencies:[261.6255653006,261.6255653006,294.32876096318,305.22982618403,327.03195662575,348.83408706747,359.73515228832,392.4383479509,392.4383479509,457.84473927605,457.84473927605,490.54793493862,523.2511306012],description:"Dan Schmidt (Pelog white, Slendro black)"},slendro:{frequencies:[261.6255653006,298.45295203849,346.01554587335,398.38689497567,455.51656649021,523.2511306012],description:"Observed Javanese Slendro scale, Helmholtz/Ellis p. 518, nr.94"},slendro10:{frequencies:[261.6255653006,304.21577360535,342.24274530602,391.67780832635,463.92905474816,523.2511306012],description:"Low gender from Singaraja (banjar Lod Peken), Bali. 1/1=172 Hz. McPhee, 1966."},slendro11:{frequencies:[261.6255653006,299.11221417218,343.62760815601,387.36203100102,452.96366529656,523.2511306012],description:"Low gender from Sawan, Bali. 1/1=167.5 Hz. McPhee, 1966."},slendro2:{frequencies:[261.6255653006,299.13295468097,343.58614396263,395.91119354826,450.08870388136,523.2511306012],description:"Gamelan slendro from Ranchaiyuh, distr. Tanggerang, Batavia. 1/1=282.5 Hz"},slendro3:{frequencies:[261.6255653006,298.44694115772,339.14425131559,391.46936437571,453.48431318771,522.28214737536],description:"Gamelan kodok ngorek. 1/1=270 Hz"},slendro4:{frequencies:[261.6255653006,294.5074669504,344.54514337401,400.3014113889,467.49486258632,523.2511306012],description:"Low gender in saih lima from Kuta, Bali. 1/1=183 Hz. McPhee, 1966"},slendro5_1:{frequencies:[261.6255653006,299.00064605783,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7; from Lou Harrison"},slendro5_2:{frequencies:[261.6255653006,305.22982618403,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 2"},slendro5_4:{frequencies:[261.6255653006,294.32876096318,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:"A slendro type pentatonic which is based on intervals of 7, no. 4"},slendro6:{frequencies:[261.6255653006,295.05549864457,341.56671025356,398.25224940202,461.478427683,523.2511306012],description:"Low gender from Klandis, Bali. 1/1=180 Hz. McPhee, 1966"},slendro8:{frequencies:[261.6255653006,309.85821141747,350.78288084997,406.32350365121,467.71050779996,523.2511306012],description:"Low gender from Tabanan, Bali. 1/1=179 Hz. McPhee, 1966."},slendro9:{frequencies:[261.6255653006,299.00064605783,336.37572681506,388.70083987518,448.50096908674,523.2511306012],description:"Low gender from Singaraja (banjar Panataran), Bali. 1/1=175 Hz. McPhee, 1966."},slendro_7_1:{frequencies:[261.6255653006,299.00064605783,341.71502406609,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 1, From HMSL Manual, also Lou Harrison, Jacques Dudon"},slendro_7_2:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,448.50096908674,523.2511306012],description:"Septimal Slendro 2, From Lou Harrison, Jacques Dudon's APTOS"},slendro_7_3:{frequencies:[261.6255653006,294.32876096318,336.37572681506,392.4383479509,448.50096908674,523.2511306012],description:'Septimal Slendro 3, Harrison, Dudon, called "MILLS" after Mills Gamelan'},slendro_7_4:{frequencies:[261.6255653006,294.32876096318,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:'Septimal Slendro 4, from Lou Harrison, Jacques Dudon, called "NAT"'},slendro_7_5:{frequencies:[261.6255653006,305.22982618403,343.38355445704,400.61414686654,467.3831713443,523.2511306012],description:"Septimal Slendro 5, from Jacques Dudon"},slendro_7_6:{frequencies:[261.6255653006,299.00064605783,341.71502406609,390.53145607553,455.62003208812,523.2511306012],description:"Septimal Slendro 6, from Robert Walker"},slendro_a1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,457.84473927605,523.2511306012],description:`Dudon's Slendro A1, "Seven-Limit Slendro Mutations", 1/1 8:2'94 hexany 1.3.7.21`},slendro_a2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,448.50096908674,523.2511306012],description:`Dudon's Slendro A2 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_alv:{frequencies:[261.6255653006,299.00064605783,348.83408706747,406.97310157871,465.11211608996,523.2511306012],description:"Bill Alves, slendro for Gender Barung, 1/1 vol.9 no.4, 1997. 1/1=282.86"},slendro_ang:{frequencies:[261.6255653006,299.00064605783,340.82516392797,388.43396508487,445.83123341082,523.2511306012],description:"Gamelan Angklung Sangsit, North Bali. 1/1=294 Hz"},slendro_av:{frequencies:[261.6255653006,298.97057995496,344.02264297658,395.86362945285,454.20288100724,525.67465946865],description:"Average of 30 measured slendro gamelans, W. Surjodiningrat et al., 1993."},slendro_dudon:{frequencies:[261.6255653006,305.22982618403,348.83408706747,399.70572476481,457.84473927605,523.2511306012],description:'Dudon\'s Slendro from "Fleurs de lumie`re"'},slendro_gum:{frequencies:[261.6255653006,305.03156112838,348.43777142572,394.8168394034,470.92601754108,525.62941881859],description:"Gumbeng, bamboo idiochord from Banyumas. 1/1=440 Hz"},slendro_ky1:{frequencies:[261.6255653006,297.58776037991,344.33874539242,394.68595744625,449.52853279627,523.2511306012],description:"Kyahi Kanyut Me`sem slendro, Mangku Nagaran, Solo. 1/1=291 Hz"},slendro_ky2:{frequencies:[261.6255653006,302.42139140287,345.87786599062,395.54249276388,453.1886900261,523.2511306012],description:"Kyahi Pengawe' sari, Paku Alaman, Jogya. 1/1=295 Hz"},slendro_laras:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012,598.00129211566,697.66817413493],description:'Lou Harrison, gamelan "Si Betty"'},slendro_m:{frequencies:[261.6255653006,299.00064605783,348.83408706747,392.4383479509,448.50096908674,523.2511306012],description:`Dudon's Slendro M from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_madu:{frequencies:[261.6255653006,300.52885648597,345.61604384578,394.49404533893,447.94973572445,522.94897617031],description:"Sultan's gamelan Madoe kentir, Jogjakarta, Jaap Kunst"},slendro_mat:{frequencies:[261.6255653006,261.6255653006,299.00064605783,299.00064605783,341.71502406609,343.38355445704,348.83408706747,392.4383479509,398.6675280771,448.50096908674,455.62003208812,457.84473927605,523.2511306012],description:`Dudon's Slendro Matrix from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_pa:{frequencies:[261.6255653006,304.19649364034,353.69443592699,411.24653512154,478.16333951147,523.2511306012],description:'"Blown fifth" primitive slendro, von Hornbostel'},slendro_pas:{frequencies:[261.6255653006,300.35531433711,343.03050002254,393.12919962609,450.54468214486,523.2511306012],description:"Gamelan slendro of regent of Pasoeroean, Jaap Kunst"},slendro_pb:{frequencies:[261.6255653006,304.72408298441,342.83241505062,399.30842833955,449.24533531117,523.2511306012],description:'"Blown fifth" medium slendro, von Hornbostel'},slendro_pc:{frequencies:[261.6255653006,299.48910562989,342.83241505062,392.44854854484,449.24533531117,523.2511306012],description:'"Blown fifth" modern slendro, von Hornbostel'},slendro_pliat:{frequencies:[261.6255653006,299.73468146833,339.98478643783,393.08060743874,447.03290350508,523.2511306012,599.46936293666,679.96957287566,786.16121487749,894.06580701017],description:"Gender wayang from Pliatan, South Bali (Slendro), 1/1=305.5 Hz"},slendro_q13:{frequencies:[261.6255653006,307.00725675226,360.2608752926,400.8015646157,470.32478922042,523.2511306012],description:"13-tET quasi slendro, Blackwood"},slendro_s1:{frequencies:[261.6255653006,299.00064605783,348.83408706747,398.6675280771,457.84473927605,523.2511306012],description:`Dudon's Slendro S1 from "Seven-Limit Slendro Mutations", 1/1 8:2 Jan 1994`},slendro_s2:{frequencies:[261.6255653006,299.00064605783,341.71502406609,398.6675280771,455.62003208812,523.2511306012],description:"Dudon's Slendro S2"},slendro_udan:{frequencies:[261.6255653006,305.22982618403,351.32575911795,402.50086969323,465.11211608996,523.2511306012],description:"Slendro Udan Mas (approx)"},slendro_wolf:{frequencies:[261.6255653006,298.18866107946,339.86157848985,395.0032340925,450.20632964813,523.2511306012],description:"Daniel Wolf's slendro. Tuning List 30 5 1997"},slendrob1:{frequencies:[261.6255653006,307.44024341205,355.66611281954,409.9203247543,476.83364134848,523.2511306012],description:"Gamelan miring of Musadikrama, desa Katur, Bajanegara. 1/1=434 Hz"},slendrob2:{frequencies:[261.6255653006,307.55978097874,346.50416420081,398.42969909174,449.35693171058,523.2511306012],description:"Gamelan miring from Bajanegara. 1/1=262 Hz"},slendrob3:{frequencies:[261.6255653006,304.90191053936,342.27700149692,398.33972372326,447.51732140012,523.2511306012],description:"Gamelan miring from Ngumpak, Bajanegara. 1/1=266 Hz"},slendroc1:{frequencies:[261.6255653006,297.59222964268,344.42030317161,394.72197985873,449.50490455178,523.2511306012],description:"Kyahi Kanyut mesem slendro (Mangku Nagaran Solo). 1/1=291 Hz"},slendroc2:{frequencies:[261.6255653006,302.44445076078,346.01554587335,396.09235530397,453.15466093696,523.2511306012],description:"Kyahi Pengawe sari (Paku Alaman, Jogja). 1/1=295 Hz."},slendroc3:{frequencies:[261.6255653006,301.39807245198,344.42030317161,395.40657391157,451.84778706363,523.2511306012],description:"Gamelan slendro of R.M. Jayadipura, Jogja. 1/1=231 Hz"},slendroc4:{frequencies:[261.6255653006,299.14332201883,343.8239850859,396.09235530397,450.28451247858,523.2511306012],description:"Gamelan slendro, Rancha iyuh, Tanggerang, Batavia. 1/1=282.5 Hz"},slendroc5:{frequencies:[261.6255653006,299.83528893666,340.07120590121,393.12919962609,447.17417015401,523.2511306012],description:"Gender wayang from Pliatan, South Bali. 1/1=611 Hz"},slendroc6:{frequencies:[261.6255653006,296.73398952435,343.8239850859,396.7793260952,453.9405988926,527.19506190947,607.33963549452,696.44215167899,797.23415748628,918.4302691641,1071.58188326661],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},slendrod1:{frequencies:[261.6255653006,292.47977325983,340.6610152784,389.06292924114,444.85552088095,523.2511306012],description:"Gender wayang from Ubud (S. Bali). 1/1=347 Hz"},smith_eh:{frequencies:[261.6255653006,272.7117507892,292.30354792656,313.30283124826,326.5788018031,350.04044239751,364.87314355143,391.08587539224,407.65784362321,436.94425707006,468.33462614046,488.17995458879,523.2511306012],description:"Robert Smith's Equal Harmony temperament (1749)"},smith_mq:{frequencies:[261.6255653006,273.37438418823,292.50629623572,312.97714101186,327.03200500996,349.91910755601,365.63292511375,391.22148485648,408.79006910398,437.39894995248,468.01000388518,489.02693031834,523.2511306012],description:"Robert Smith approximation of quarter comma meantone fifth"},"scalamakesrc2\\smithgw-ball":{frequencies:[261.6255653006,267.07609791103,272.52663052146,274.70684356563,280.31310567921,286.15296204753,294.32876096318,300.46061014991,305.22982618403,306.59245933664,313.95067836072,320.49131749323,327.03195662575,333.84512238879,336.37572681506,343.38355445704,350.39138209902,357.69120255941,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,470.92601754108,476.92160341255,480.73697623985,490.54793493862,500.76768358318,515.07533168556,523.2511306012],description:"Ball 2 around tetrad lattice hole"},smithgw46:{frequencies:[261.6255653006,273.72380653152,313.47993226845,327.97605323154,364.46098649856,392.98113253789,436.69740466987,456.89141950378,523.2511306012],description:'Gene Ward Smith 46-tET subset "Star"'},smithgw46a:{frequencies:[261.6255653006,282.09853500802,313.47993226845,327.97605323154,375.61187043063,392.98113253789,436.69740466987,470.87026054824,523.2511306012],description:'46-tET version of "Star", alternative version'},smithgw72a:{frequencies:[261.6255653006,285.30470202322,299.37379946195,326.46944327063,342.56848033562,373.57357677338,391.99543598175,427.47405410759,435.78442404634,457.27406033445,498.66089874196,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72c:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72d:{frequencies:[261.6255653006,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72e:{frequencies:[261.6255653006,279.86396690685,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72f:{frequencies:[261.6255653006,326.46944327063,349.22823143301,435.78442404634,466.16376151809,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72g:{frequencies:[261.6255653006,326.46944327063,349.22823143301,391.99543598175,419.32216217931,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 04-01-2002"},smithgw72h:{frequencies:[261.6255653006,279.86396690685,314.13668154225,349.22823143301,391.99543598175,435.78442404634,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset, TL 09-01-2002"},smithgw72i:{frequencies:[261.6255653006,279.86396690685,293.66476791741,314.13668154225,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,435.78442404634,470.6732130613,489.15147723638,523.2511306012],description:"Gene Ward Smith 72-tET subset version of Duodene, TL 02-06-2002"},smithgw72j:{frequencies:[261.6255653006,274.52698453615,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,435.78442404634,457.27406033445,489.15147723638,523.2511306012],description:"{225/224, 441/440} tempering of decad, 72-et version (2002)"},smithgw84:{frequencies:[261.6255653006,286.48426603331,306.03443598155,335.11270457212,357.98136125932,391.99543598175,418.74586628806,458.53356119912,489.82466832727,523.2511306012],description:'Gene Ward Smith 84-tET subset, 11-limit temperament "Orwell", 2002'},smithgw_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,286.15296204753,294.32876096318,306.59245933664,327.03195662575,343.38355445704,350.39138209902,367.91095120397,381.53728273004,392.4383479509,408.78994578219,420.46965851882,436.04260883433,457.84473927605,467.18850946536,490.54793493862,523.2511306012],description:"Gene Ward Smith chord analogue to periodicity blocks, TL 12-07-2002"},smithgw_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,299.00064605783,305.22982618403,320.49131749323,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,427.14378008261,448.50096908674,457.84473927605,478.40103369253,488.36772189445,512.57253609913,523.2511306012],description:"Gene Ward Smith symmetrical 7-limit JI version of Blackjack, TL 10-5-2002"},smithgw_45:{frequencies:[261.6255653006,267.02002970726,269.13627541126,274.68560334708,276.86260193655,282.57123920205,288.39758300936,290.68325478745,296.67686217097,299.02814898089,305.19382000629,311.48661940174,313.95528147508,320.42873367481,322.96826575344,329.62755691287,336.42415617173,339.09045868095,346.08217376006,348.82502010853,356.01745236555,363.35818557229,366.23795155866,373.78942366597,376.75185941212,384.52011812375,392.44854854484,395.55886785613,403.71490654806,406.9145164708,415.30469757995,423.86787605389,427.22720671064,436.03621571368,439.49198556474,448.5538823653,457.80262665414,461.43090443914,470.94516310483,474.67759826036,484.46499093218,494.45418731234,498.37294408452,508.64890891624,512.68016480935,523.2511306012],description:"Gene Ward Smith large limma repeating 5-tone MOS"},smithgw_58:{frequencies:[261.6255653006,264.89588486686,267.57160087561,269.80136421624,274.70684356563,279.06726965397,282.55561052465,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,301.49231810831,305.22982618403,310.07474405997,313.95067836072,317.12189733406,319.76457981184,323.76163705949,327.03195662575,332.97799220076,336.37572681506,340.54567384169,343.38355445704,348.83408706747,353.19451315581,356.76213450082,359.73515228832,366.27579142084,370.01329949656,373.75080757229,380.54627680087,383.71749577421,387.59343007496,392.4383479509,398.6675280771,401.98975747775,406.97310157871,411.12588832951,418.60090448096,423.83341578697,428.11456140098,431.68218274599,436.04260883433,441.49314144476,448.50096908674,452.23847716247,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,484.4917875937,490.54793493862,498.33441009638,507.3950357345,511.62332769895,516.79124009995,523.2511306012],description:"Gene Ward Smith 58-tone epimorphic superset of Partch's 43-tone scale"},smithgw_9:{frequencies:[261.6255653006,279.06726965397,305.22982618403,327.03195662575,348.83408706747,392.4383479509,418.60090448096,448.50096908674,490.54793493862,523.2511306012],description:'Gene Ward Smith "Miracle-Magic square" tuning, genus chromaticum of ji_12a'},"smithgw_al-baked":{frequencies:[261.6255653006,277.59364499865,293.85651796007,311.0721560172,330.05816364769,349.39467974592,369.86402907174,392.4383479509,415.42941801053,439.76742419786,466.60823379256,493.94455998605,522.88238970142],description:"Baked alaska, with beat ratios of 2 and 3/2"},"smithgw_al-fried":{frequencies:[261.6255653006,277.00141553195,293.28091128458,310.96067952124,329.23597434237,348.58531822795,369.59898601143,391.32048195179,414.31855981944,439.29480556849,465.11235566178,492.44721175277,522.13326741512],description:"Fried alaska, with octave-fifth brats of 1 and 2"},smithgw_asbru:{frequencies:[261.6255653006,275.52281548997,293.66476791741,313.00128725319,329.62755691287,351.33206601369,367.77883484915,391.99543598175,415.30469757995,440,468.97204376297,490.92584627687,523.2511306012],description:"Modified bifrost (2003)"},smithgw_bifrost:{frequencies:[261.6255653006,275.07759559501,292.50627485027,311.03921839762,327.03195662575,349.91912034749,366.77012764335,391.22147055517,413.66634097248,437.39889945791,466.55882736321,489.02683710225,523.2511306012],description:"Six meantone fifths, four pure, two of sqrt(2048/2025 sqrt(5))"},smithgw_cauldron:{frequencies:[261.6255653006,275.03056468741,291.83931845209,312.58541512404,325.54230007562,350.31873582686,364.83969341757,390.77519652096,414.65779561271,435.90375768372,469.07960710644,486.243977751,523.2511306012],description:"Circulating temperament with two pure 9/7 thirds"},smithgw_ck:{frequencies:[195.99771799087,198.06437430898,200.15282320192,202.2632921446,203.72940721765,205.87758869102,208.04842120778,210.24214482145,211.76609376362,213.99901760782,216.25548480725,218.5357448459,220.11981156469,222.44081817627,224.78629944762,227.15651084977,228.80306427848,231.21563094,233.65363506284,235.34728316698,237.82885399313,240.33658984216,242.87076938222,244.63122826831,247.21069030843,249.81735238129,252.45149840587,254.28140507407,256.96262135434,259.67210915034,262.4101678886,264.31225911206,267.09924514556,269.91561641866,272.7616843206,274.73881033537,277.63573538138,280.56320805899,282.59688215652,285.57666497222,288.58786914203,291.63082264784,293.74472081062,296.84205135845,299.9720393359,303.13503255793,305.33231946532,308.55183127196,311.80529233825,315.09305703284,317.37702217863,320.72353853051,324.10533989702,327.52280172307,329.89686439088,333.37539375097,336.89059979959,339.33256534187,342.91058750208,346.52633537645,350.18021075922,352.71850659998,356.43767199462,360.19605541958,363.99406623991,366.6324923874,370.49837299068,374.40501441099,378.35285076765,381.09535716275,385.11373623244,389.17448849491,391.99543598174],description:"Catakleismic temperament, g=316.745, 11-limit"},smithgw_decab:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,439.53094970501,488.36772189445,523.2511306012],description:"(10/9) <==> (16/15) transform of decaa"},smithgw_decac:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,498.33441009638,523.2511306012],description:"inversion of decaa"},smithgw_decad:{frequencies:[261.6255653006,280.31310567921,311.45900631024,327.03195662575,348.83408706747,373.75080757229,392.4383479509,436.04260883433,467.18850946536,498.33441009638,523.2511306012],description:"inversion of decab"},smithgw_diff13:{frequencies:[261.6255653006,274.70684356563,280.31310567921,299.00064605783,313.95067836072,320.35783506196,336.37572681506,406.97310157871,427.32175665765,436.04260883433,457.84473927605,488.36772189445,498.33441009638,523.2511306012],description:"mod 13 perfect difference set, 7-limit"},smithgw_dwarf6_7:{frequencies:[261.6255653006,299.00064605783,327.03195662575,373.75080757229,392.4383479509,448.50096908674,523.2511306012],description:"Dwarf(<6 10 14 17|)"},smithgw_exotic1:{frequencies:[261.6255653006,274.95996987324,293.39100498914,313.05750197389,327.96500300935,349.94905375768,367.78508905896,392.4383479509,411.12588832951,438.68435539504,468.09011223803,491.94750426812,523.2511306012],description:"Exotic temperament featuring four pure 14/11 thirds and two pure fifths"},smithgw_glumma:{frequencies:[261.6255653006,269.10058145205,299.00064605783,313.95067836072,327.03195662575,358.80077526939,373.75080757229,392.4383479509,436.04260883433,448.50096908674,457.84473927605,512.57253609913,523.2511306012],description:"Gene Smith's Glumma scale, 7-limit, 2002"},smithgw_gm:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:'Gene Ward Smith "Genesis Minus" periodicity block'},smithgw_graileq:{frequencies:[261.6255653006,274.83794140225,293.02845982215,312.42294214419,328.20064112269,350.39711148969,365.67350481015,391.53226450123,414.40482204179,438.61355268439,469.63029662389,490.10494633744,523.2511306012],description:"56% RMS grail + 44% JI grail"},smithgw_grailrms:{frequencies:[261.6255653006,274.64037495938,293.11160698959,312.82513967025,328.38692028068,350.6222941497,365.93760986436,391.94882001935,414.52240989365,438.39608269016,469.55771333591,490.068176414,523.2511306012],description:"RMS optimized Holy Grail"},smithgw_hahn12:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Hahn-reduced 12 note scale, Fokker block 225/224, 126/125, 64/63"},smithgw_hahn15:{frequencies:[261.6255653006,279.06726965397,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,373.75080757229,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Hahn-reduced 15 note scale"},smithgw_hahn16:{frequencies:[261.6255653006,280.31310567921,294.32876096318,299.00064605783,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,488.36772189445,490.54793493862,523.2511306012],description:"Hahn-reduced 16 note scale"},smithgw_hahn19:{frequencies:[261.6255653006,274.70684356563,280.31310567921,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 19 note scale"},smithgw_hahn22:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"Hahn-reduced 22 note scale"},smithgw_indianred:{frequencies:[261.6255653006,275.93321340298,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,331.11985608357,348.83408706747,353.19451315581,367.91095120397,372.08969287196,392.4383479509,413.43299207996,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,496.11959049595,523.2511306012],description:"32805/32768 Hahn-reduced"},smithgw_klv:{frequencies:[261.6255653006,271.78681896552,282.34272472006,293.30861211826,314.10491445143,326.30440921209,338.97771913949,352.14324873572,377.11107157735,391.75765725694,406.97310157871,422.77949745352,452.75560414132,470.34014155688,488.60764618722,523.2511306012],description:"Variant of kleismic with 9/7 thirds, g=316.492"},smithgw_meandin:{frequencies:[261.6255653006,280.31310567921,299.00064605783,313.95067836072,336.37572681506,348.83408706747,373.75080757229,392.4383479509,418.60090448096,448.50096908674,470.92601754108,504.56359022259,523.2511306012],description:"Gene Smith, inverted detempered 7-limit meantone"},smithgw_meanred:{frequencies:[261.6255653006,281.29980781121,291.99281841585,313.95067836072,325.57848126297,350.39138209902,363.36884069528,390.69417751556,420.46965851882,436.04260883433,468.83301301868,486.65469735975,523.2511306012],description:"171-et Hahn reduced rational Meantone[12]"},smithgw_meantune:{frequencies:[261.6255653006,273.55401844854,279.77233440758,292.56174910339,312.85829351777,327.16018629281,334.59705725462,349.85254391288,365.77071543428,374.29488261541,391.03456781852,418.40555295943,437.51985793188,468.14464283802,489.08159472971,500.47948461038,523.2511306012],description:"Meantune scale/temperament, Gene Ward Smith, 2003"},smithgw_mir22:{frequencies:[261.6255653006,267.57160087561,274.70684356563,280.31310567921,285.40970760065,299.00064605783,305.22982618403,319.76457981184,327.03195662575,343.38355445704,348.83408706747,366.27579142084,373.75080757229,392.4383479509,398.6675280771,418.60090448096,428.11456140098,448.50096908674,457.84473927605,479.64686971777,490.54793493862,512.78610798918,523.2511306012],description:"11-limit Miracle[22]"},smithgw_mmt:{frequencies:[261.6255653006,273.37431312998,292.50627485027,307.38829724655,327.03195662575,349.91912034749,365.63284274659,391.22147055517,411.12588832951,437.39890198442,459.65271605653,489.02683710225,523.2511306012],description:"Modified meantone with 5/4, 14/11 and 44/35 major thirds, TL 17-03-2003"},smithgw_modmos12a:{frequencies:[261.6255653006,265.27772209197,292.31087910123,304.72408298441,326.59518553839,340.46429857933,364.90060015836,391.09077971329,407.69874723177,425.01198472693,455.51656649021,488.21056770985,523.2511306012],description:"A 12-note modmos in 50-et meantone"},smithgw_octoid:{frequencies:[261.6255653006,272.34559486824,274.88944875317,277.45706359738,280.04865972334,282.66446436432,285.30470202322,296.99497716113,299.76906949343,302.56907333554,305.39522895084,308.24778413898,311.12698372208,323.87531915696,326.90048829645,329.95391413777,333.03585868997,336.14659218049,339.28638158975,353.18853996009,356.48751029933,359.81729479041,363.17817915623,366.5704580819,369.99442271164,385.15483391523,388.75238658,392.38354231563,396.04861270515,399.74791910495,403.48177901006,420.01432465796,423.93748365756,427.89728706578,431.89407466632,435.9281969008,440,458.02886886968,462.30710409523,466.62530033172,470.98382811593,475.38306960714,479.82340237272,499.48402328631,504.14947188193,508.85849826899,513.6115065207,518.40891338474,523.2511306012],description:"Octoid temperament, g=16.096, oct=1/8, 11-limit"},smithgw_orw18r:{frequencies:[261.6255653006,269.10058145205,280.31310567921,286.15296204753,299.00064605783,305.22982618403,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,448.50096908674,457.84473927605,474.80195184183,490.54793493862,523.2511306012],description:'Rational version of two cycles of 9-tone "Orwell"'},smithgw_pel1:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,363.36884069528,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 1"},smithgw_pel2:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 2"},smithgw_pel3:{frequencies:[261.6255653006,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"125/108, 135/128 periodicity block no. 3"},smithgw_pk:{frequencies:[261.6255653006,271.01659746112,280.74472171431,290.822034715,313.8821415949,325.1489200649,336.82012073975,348.91025643633,376.57634157395,390.09352641046,404.09590743895,418.60090448096,451.79296003201,468.01003810189,484.80922990434,523.2511306012],description:"Parakleismic temperament, g=315.263, 5-limit"},smithgw_pris:{frequencies:[261.6255653006,279.06726965397,293.02063313667,305.22982618403,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_prisa:{frequencies:[261.6255653006,274.70684356563,293.02063313667,313.95067836072,327.03195662575,343.38355445704,366.27579142084,392.4383479509,418.60090448096,439.53094970501,457.84473927605,488.36772189445,523.2511306012],description:"optimized (15/14)^3 (16/15)^4 (21/20)^3 (25/24)^2 scale"},smithgw_pum13marv:{frequencies:[261.6255653006,293.67396865289,305.56991629828,343.00138030143,326.66798000724,366.68389807519,349.22276077151,392.00157668785,407.88051296056,457.84473927605,436.04260883433,489.45661357347,549.41368713126,523.2511306012],description:"pum13 marvel tempered and in epimorphic order"},smithgw_qm3a:{frequencies:[261.6255653006,279.86396690685,305.19382000629,326.46944327063,349.22823143301,366.44956000397,391.99543598175,419.32216217931,457.27406033445,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode A, 72-tET, TL 04-01-2002"},smithgw_qm3b:{frequencies:[261.6255653006,279.86396690685,299.37379946195,326.46944327063,349.22823143301,373.57357677338,391.99543598175,419.32216217931,448.5538823653,489.15147723638,523.2511306012],description:"Qm(3) 10-note quasi-miracle scale, mode B"},smithgw_ragasyn1:{frequencies:[261.6255653006,269.16210421872,290.69507255622,313.95067836072,322.99452506247,348.83408706747,363.36884069528,392.4383479509,403.74315632809,436.04260883433,470.92601754108,484.4917875937,523.2511306012],description:"Ragasyn 6561/6250 81/80 scale"},smithgw_rainbow:{frequencies:[261.6255653006,273.37431312998,292.50627485027,310.51268695591,327.03195662575,349.91912034749,365.63284274659,391.22147055517,412.03444522126,437.39889945791,468.01003810189,489.02683710225,523.2511306012],description:"Circulating 1/4-comma meantone, Gene Ward SMith"},smithgw_ratwell:{frequencies:[261.6255653006,275.62199471997,293.02063313667,310.07474405997,326.72451751701,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.57747881743,465.11211608996,489.99465727995,523.2511306012],description:"7-limit rational well-temperament"},smithgw_ratwolf:{frequencies:[261.6255653006,272.55669785235,292.25605339318,313.37920299881,326.47268679644,350.06888377949,364.69531895389,391.05410158062,407.39296674476,436.83777202739,468.410735204,487.98168129749,523.2511306012],description:"Eleven fifths of (418/5)^(1/11) and one 20/13 wolf, G.W. Smith 2003"},smithgw_rectoo:{frequencies:[261.6255653006,290.69507255622,299.00064605783,313.95067836072,327.03195662575,348.83408706747,392.4383479509,408.78994578219,418.60090448096,436.04260883433,457.84473927605,470.92601754108,523.2511306012],description:"Hahn-reduced circle of fifths via <12 19 27 34| kernel"},smithgw_sc19:{frequencies:[261.6255653006,269.16210421872,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,508.60009894437,523.2511306012],description:"Fokker block from commas <81/80, 78732/78125>, Gene Ward Smith 2002"},smithgw_sch13:{frequencies:[261.6255653006,269.71217215021,278.04872701265,282.14859498561,290.86954990528,295.15846273282,304.2815407612,313.68660297237,318.31195648825,328.15068782436,332.98931632582,343.28171142549,353.89223299652,359.11042631209,370.21019888355,375.66900084958,387.28058594818,392.99109319609,405.13808832031,417.66053353744,423.81899742763,436.9188548657,443.36128543927,457.06517711961,471.19264083172,478.14044600934,492.91932687455,500.18749236202,515.64783010531,523.2511306012],description:"13-limit schismic temperament, g=704.3917, TL 31-10-2002"},smithgw_sch13a:{frequencies:[261.6255653006,266.49502311502,271.45511438723,280.18048669638,285.39529457963,294.56874561631,300.051354061,305.6360048159,315.46005229837,321.33149462105,331.66004360268,337.8330052901,344.12086009392,355.18192699392,361.79268541866,373.4217751344,380.37201938485,392.59830625439,399.90547017058,407.34863733398,420.4420328577,428.26743302475,442.03321824291,450.26048038501,458.64087358289,473.38295124548,482.19370453904,497.69284002863,506.95605959354,523.2511306012],description:"13-limit schismic temperament, g=702.660507, TL 31-10-2002"},smithgw_scj22a:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,301.39265122629,313.95067836072,327.03195662575,334.88072358477,348.83408706747,361.67118147155,363.36884069528,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,454.2110508691,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 15625/15552 = [6,5,22,37,-18,-6] catakleismic"},smithgw_scj22b:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,353.19451315581,372.08969287196,387.59343007496,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"5120/5103 ^ 225/224 = [1,-8,-14,-10,25,-15] schismic candidate"},smithgw_scj22c:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,367.91095120397,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"225/224 ^ 65625/65536 = [7,-3,827,7,-21] orwell candidate"},smithgw_secab:{frequencies:[261.6255653006,274.07613169002,291.39807132323,313.10572011471,348.73657263424,365.33268718488,392.54808236386,417.35759110361,437.21932894603,486.97408086388,523.2511306012],description:"{126/125, 176/175} tempering of decab, 328-et version"},smithgw_secac:{frequencies:[261.6255653006,281.11531641881,298.8821409504,313.10572011471,348.73657263424,374.71564313773,392.54808236386,417.35759110361,448.44857247831,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decac, 328-et version"},smithgw_secad:{frequencies:[261.6255653006,281.11531641881,313.10572011471,328.00618883132,348.73657263424,374.71564313773,392.54808236386,437.21932894603,469.78990700991,499.48119153644,523.2511306012],description:"{126/125, 176/175} tempering of decad, 328-et version"},smithgw_smalldi11:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,373.75080757229,423.93031414449,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"Small diesic 11-note block, <10/9, 126/125, 1728/1715> commas"},smithgw_smalldi19a:{frequencies:[261.6255653006,269.10058145205,272.52663052146,299.00064605783,305.22982618403,313.95067836072,317.94773560837,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,430.56093032327,436.04260883433,448.50096908674,457.84473927605,502.32108537715,508.71637697339,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 1728/1715> commas"},smithgw_smalldi19b:{frequencies:[261.6255653006,266.96486255163,274.70684356563,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,358.80077526939,366.27579142084,373.75080757229,381.53728273004,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,498.33441009638,512.78610798918,523.2511306012],description:"Small diesic 19-note block, <16/15, 126/125, 2401/2400> commas"},smithgw_smalldi19c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,286.15296204753,313.95067836072,320.49131749323,327.03195662575,336.37572681506,343.38355445704,373.75080757229,381.53728273004,392.4383479509,400.61414686654,436.04260883433,448.50096908674,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"Small diesic 19-note scale containing glumma"},smithgw_smalldiglum19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,280.40333801024,286.95745534843,312.9293240034,320.24370022528,327.729041887,335.38934511627,343.22869944589,374.29355081838,383.0422478503,391.99543598175,401.15789496562,437.46578647972,447.69106452518,458.15534711532,468.86422071654,511.30005826145,523.2511306012],description:'Small diesic "glumma" variant of 19-note MOS, 31/120 version'},smithgw_smalldimos11:{frequencies:[261.6255653006,267.74077300753,305.78200836532,312.9293240034,320.24370022528,365.74467430283,374.29355081838,427.47405410759,437.46578647972,447.69106452518,511.30005826145,523.2511306012],description:"Small diesic 11-note MOS, 31/120 version"},smithgw_smalldimos19:{frequencies:[261.6255653006,267.74077300753,273.99891691894,298.79793764201,305.78200836532,312.9293240034,320.24370022528,327.729041887,357.39105439675,365.74467430283,374.29355081838,383.0422478503,417.71053321823,427.47405410759,437.46578647972,447.69106452518,458.15534711532,499.62194879119,511.30005826145,523.2511306012],description:"Small diesic 19-note MOS, 31/120 version"},smithgw_star:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, untempered version'},smithgw_star2:{frequencies:[261.6255653006,282.55561052465,313.95067836072,327.03195662575,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:'Gene Ward Smith "Star" scale, alternative untempered version'},starra:{frequencies:[261.6255653006,274.07613169002,294.49338559574,313.10572011471,328.00618883132,343.61575980934,374.71564313773,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrb:{frequencies:[261.6255653006,274.07613169002,287.1192112957,305.26548915336,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,479.82340237272,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_starrc:{frequencies:[261.6255653006,274.07613169002,287.1192112957,313.10572011471,328.00618883132,343.61575980934,365.33268718488,392.54808236386,411.22915413197,437.21932894603,458.02627217006,492.14685988839,523.2511306012],description:"12 note {126/125, 176/175} scale, 328-et version"},smithgw_tetra:{frequencies:[261.6255653006,274.84135386022,293.90210492181,314.2847539672,326.44746606412,342.93767672779,366.7210324511,392.15380743582,419.35039192746,435.57910814854,457.58200907672,489.31615916483,523.2511306012],description:"{225/224, 385/384} tempering of two-tetrachord 12-note scale"},smithgw_tr31:{frequencies:[261.6255653006,267.54129532085,292.57243455474,299.18791603519,305.95298478736,334.57791819083,342.14320575162,349.87955533643,391.26571058456,400.11279059885,409.15991580663,447.44088028055,457.55816161244,467.90420651233,511.68128147674,523.2511306012],description:"6/31 generator supermajor seconds tripentatonic scale"},smithgw_tr7_13:{frequencies:[261.6255653006,183.87449048025,346.05860897284,243.21533855007,457.74028507734,321.70694650116,605.46440189891,425.52973856044,299.06887661109,562.85871464284,395.58580335293,744.50714985079,523.2511306012],description:"81/80 ==> 28561/28672"},smithgw_tr7_13b:{frequencies:[261.6255653006,372.25357492539,395.58580335293,281.42935732142,299.06887661109,425.52973856044,302.73220094945,321.70694650116,457.74028507734,486.43067710015,346.05860897284,367.7489809605,523.2511306012],description:"reverse reduced 81/80 ==> 28561/28672"},smithgw_tr7_13r:{frequencies:[261.6255653006,367.7489809605,346.05860897284,486.43067710015,457.74028507734,321.70694650116,302.73220094945,425.52973856044,299.06887661109,281.42935732142,395.58580335293,372.25357492539,523.2511306012],description:"reduced 81/80 ==> 28561/28672"},smithgw_tra:{frequencies:[261.6255653006,128.35937755236,399.56478905052,196.03545836752,610.23096296248,299.39301413087,931.96857771927,457.24471305759,224.33452437931,698.32199734535,342.61245382262,1066.50464849657,523.2511306012],description:"81/80 ==> 1029/512"},smithgw_tre:{frequencies:[261.6255653006,256.71872396454,399.56476227799,392.07084290614,305.11544059319,299.39293769309,465.98419519089,457.24482979639,448.66910888407,349.16106442144,342.6124767791,533.2523889322,523.2511306012],description:"81/80 ==> 1029/512 ==> reduction"},smithgw_treb:{frequencies:[261.6255653006,266.6261944661,342.6124767791,349.16106442144,448.66910888407,457.24482979639,465.98419519089,299.39293769309,305.11544059319,392.07084290614,399.56476227799,513.43744792908,523.2511306012],description:"reversed 81/80 ==> 1029/512 ==> reduction"},smithgw_trx:{frequencies:[261.6255653006,490.17835855476,354.35176059633,331.954494127,479.94227969828,449.60690021487,325.02250210538,304.47902995326,285.23403465053,412.39349145653,386.32762147798,279.2776760715,523.2511306012],description:"reduced 3/2->7/6 5/4->11/6 scale"},smithgw_trxb:{frequencies:[261.6255653006,279.2776760715,386.32762147798,412.39349145653,285.23403465053,304.47902995326,325.02250210538,449.60690021487,479.94227969828,331.954494127,354.35176059633,490.17835855476,523.2511306012],description:"reversed reduced 3/2->7/6 5/4->11/6 scale"},smithgw_wa:{frequencies:[261.6255653006,273.6474362764,299.37379946195,313.13022722746,327.51877211613,349.22823143301,374.77430422696,391.99543598175,417.97870684853,437.18511000944,469.1652354389,500.26367760099,523.2511306012],description:"Wreckmeister A temperament, TL 2-6-2002"},smithgw_wa120:{frequencies:[261.6255653006,273.99891691894,298.79793764201,312.9293240034,327.729041887,349.22823143301,374.29355081838,391.99543598175,417.71053321823,437.46578647972,468.86422071654,499.62194879119,523.2511306012],description:"120-tET version of Wreckmeister A temperament"},smithgw_wb:{frequencies:[261.6255653006,280.76349612739,291.78605424516,313.13022722746,327.51877211613,349.22823143301,365.2755039332,391.99543598175,417.97870684853,437.18511000944,469.1652354389,487.58430040208,523.2511306012],description:"Wreckmeister B temperament, TL 2-6-2002"},smithgw_well1:{frequencies:[261.6255653006,275.92984511873,292.92635710626,310.42107575858,327.5229776175,349.2237102284,367.90646015831,391.734151992,413.8947676781,437.99072463899,465.63161363786,490.54194687775,523.2511306012],description:"Well-temperament, Gene Ward Smith (2005)"},smithgw_whelp1:{frequencies:[261.6255653006,275.93321340298,292.50627485027,310.07474405997,327.03195662575,348.05120395042,368.50381975103,390.45372436301,413.66634097248,438.25895612273,464.36382062247,491.65133958137,523.2511306012],description:"well-temperament with one pure third, Gene Ward Smith, 2003"},smithgw_whelp2:{frequencies:[261.6255653006,275.85000668176,292.43269265164,309.98104674077,327.03195662575,347.97308568611,368.21146504308,391.7894791814,413.34036955908,438.14417346548,464.48314871299,489.73685071229,523.2511306012],description:"well-temperament with two pure thirds"},smithgw_whelp3:{frequencies:[261.6255653006,275.96871294479,292.50627485027,310.03485655885,327.03195662575,349.46135677641,368.11883862276,391.73393619399,413.66634097248,436.82669499534,464.84945270756,489.66742197778,523.2511306012],description:"well-temperament with three pure thirds"},smithgw_wiz28:{frequencies:[261.6255653006,269.80136421624,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,359.73515228832,370.01329949656,380.54627680087,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,508.71637697339,523.2511306012],description:"11-limit Wizard[28]"},smithgw_wiz34:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[34]"},smithgw_wiz38:{frequencies:[261.6255653006,269.80136421624,272.52663052146,277.4816601673,280.31310567921,285.40970760065,287.78812183066,297.30177875068,305.22982618403,308.34441624714,313.95067836072,317.12189733406,327.03195662575,336.37572681506,339.14425131559,345.34574619679,348.83408706747,356.76213450082,359.73515228832,370.01329949656,380.54627680087,383.71749577421,392.4383479509,396.40237166758,403.65087217807,406.97310157871,418.60090448096,431.68218274599,436.04260883433,443.97065626768,448.50096908674,460.46099492906,475.68284600109,479.64686971777,490.54793493862,493.35106599542,504.56359022259,508.71637697339,523.2511306012],description:"11-limit Wizard[38]"},smithgw_wreckpop:{frequencies:[261.6255653006,272.73569398658,292.31087910123,313.29104303136,326.59518553839,350.03605285217,364.90060015836,391.09077971329,419.16071913933,436.9606979923,455.51656649021,501.93603498211,523.2511306012],description:'"Wreckmeister" 13-limit meanpop (50-et) tempered thirds'},smithj12:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,331.11985608357,344.91651675372,363.36884069528,392.4383479509,408.78994578219,441.49314144476,459.88868900496,496.67978412536,523.2511306012],description:"J. Smith, 5-limit JI scale, MMM 21-3-2006"},smithj17:{frequencies:[261.6255653006,272.57820116223,283.17034563789,295.02492750576,308.97787266236,319.3201344739,332.68808325276,348.42227432308,363.00854876594,377.11473546037,392.90218486657,411.48414905414,425.25755219187,443.06044202496,464.01459698705,479.54632553791,499.62194879119,523.2511306012],description:"J. Smith 17-tone well temperament, MMM 12-2006"},smithrk_19:{frequencies:[261.6255653006,274.68253637698,286.11368885031,294.3308008075,305.19387818096,313.95878694534,327.0246436172,343.34529416761,348.83287827711,366.24211271841,381.48359653409,392.43970784476,406.92376081862,418.61050714007,436.03134720211,457.79213919624,470.93981233279,488.32112480698,508.64303280756,523.2511306012],description:"19 out of 612-tET by Roger K. Smith, 1978"},smithrk_mult:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,457.84473927605,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:'Roger K. Smith, "Multitonic" scale, just version'},solar:{frequencies:[261.6255653006,394.58976180129,774.00176545642,2207.36533954793,5481.83445910426,34573.03685904828,65024.37680021134,105705.6559450381],description:"Solar system scale: 0=Pluto, 8=Mercury. 1/1=248.54 years period"},solemn:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Solemn 6"},songlines:{frequencies:[261.6255653006,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,470.92601754108,479.64686971777,523.2511306012],description:"Songlines.DEM, Bill Thibault and Scott Gresham-Lancaster. 1992 ICMC (=rectsp6)"},sorge:{frequencies:[261.6255653006,272.52663052146,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,470.92601754108,490.54793493862,523.2511306012],description:"Sorge's Monochord (1756)"},sorge1:{frequencies:[261.6255653006,276.86979852503,293.00227310437,311.47852302926,328.88393162803,349.6228209638,369.57684148724,391.5530240856,415.30469757995,439.00737933323,466.69047534984,493.32589719545,523.2511306012],description:"Georg Andreas Sorge, 1744 (A)"},sorge2:{frequencies:[261.6255653006,276.24519242498,293.00227310437,310.77584116741,328.88393162803,348.83408706747,368.74309237173,391.5530240856,414.36778843034,438.51190905657,465.63764214343,492.21297564769,523.2511306012],description:"Georg Andreas Sorge, 1744 (B)"},sorge3:{frequencies:[261.6255653006,276.55731914056,293.00227310437,310.77584116741,328.51274831708,348.83408706747,369.15973155124,391.5530240856,414.83597850347,438.51190905657,465.63764214343,492.7691222293,523.2511306012],description:"Georg Andreas Sorge, well temperament, (1756, 1758)"},sparschuh:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,439.53094970501,465.69350623507,491.85606276513,523.2511306012],description:"Andreas Sparschuh WTC temperament, 1/1=C=250, modified Collatz sequence"},sparschuh2:{frequencies:[261.6255653006,276.27659695743,293.02063313667,310.81117157711,328.60171001755,349.008504111,368.36879594324,391.3918456897,414.41489543615,438.48444744381,465.69350623507,491.85606276513,523.2511306012],description:"Modified Sparschuh temperament with A=419Hz by Tom Dent"},spec1_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,523.2511306012],description:"Spectrum sequence of 8/7: 1 to 27 reduced by 2/1"},spec1_17:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/6: 1 to 27 reduced by 2/1"},spec1_25:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 5/4: 1 to 25 reduced by 2/1"},spec1_33:{frequencies:[261.6255653006,277.97716313189,294.32876096318,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of 4/3: 1 to 29 reduced by 2/1"},spec1_4:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 7/5: 1 to 25 reduced by 2/1"},spec1_5:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Spectrum sequence of 1.5: 1 to 27 reduced by 2/1"},specr2:{frequencies:[261.6255653006,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,408.78994578219,425.14154361347,457.84473927605,474.19633710734,490.54793493862,523.2511306012],description:"Spectrum sequence of sqrt(2): 1 to 29 reduced by 2/1"},specr3:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,392.4383479509,408.78994578219,425.14154361347,441.49314144476,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Spectrum sequence of sqrt(3): 1 to 31 reduced by 2/1"},spon_chal1:{frequencies:[261.6255653006,280.31310567921,285.40970760065,286.15296204753,348.83408706747,392.4383479509,420.46965851882,428.11456140098,429.2294430713,523.2511306012],description:"JC Spondeion, from discussions with George Kahrimanis about tritone of spondeion"},spon_chal2:{frequencies:[261.6255653006,275.62199471997,279.06726965397,285.40970760065,348.83408706747,392.4383479509,413.43299207996,418.60090448096,428.11456140098,523.2511306012],description:"JC Spondeion II, 10 May 1997. Various tunings for the parhypatai and hence trito"},spon_mont:{frequencies:[261.6255653006,271.31540105247,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Montford's Spondeion, a mixed septimal and undecimal pentatonic, 1923"},spon_terp:{frequencies:[261.6255653006,285.40970760065,348.83408706747,392.4383479509,428.11456140098,523.2511306012],description:"Subharm. 6-tone series, guess at Greek poet Terpander's, 6th c. BC & Spondeion, Winnington-Ingram (1928)"},stade:{frequencies:[261.6255653006,274.22463192287,292.50627485027,309.28772967674,327.03195662575,348.83408706747,365.63284274659,391.22147055517,411.33694767869,437.39890198442,465.11211608996,489.02683710225,523.2511306012],description:"Organs in St. Cosmae, Stade; Magnuskerk, Anloo; H.K. Sluipwijk, modif. 1/4 mean"},stanhope:{frequencies:[261.6255653006,275.62199471997,293.00227310437,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,437.52264545758,465.11211608996,489.99465727995,523.2511306012],description:"Well temperament of Charles, third earl of Stanhope (1806)"},stanhope2:{frequencies:[261.6255653006,275.85537639807,293.11251278827,310.16223770573,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.66634097248,437.85193595173,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament (real version?) with 1/3 synt. comma temp."},stanhope_f:{frequencies:[261.6255653006,275.62199471997,292.46014274879,310.07474405997,326.6631048533,348.83408706747,367.49599295996,392.4383479509,413.43299207996,436.79202494356,465.11211608996,489.99465727995,523.2511306012],description:"Stanhope temperament, equal beating version by Farey (1807)"},stanhope_s:{frequencies:[261.6255653006,275.77758308753,293.11247215425,310.2497806633,327.03195662575,348.83408706747,367.7034443005,392.4383479509,413.66637442451,437.85181455341,465.11211608996,490.54793493862,523.2511306012],description:"Stanhope temperament, alt. version with 1/3 syntonic comma"},starling:{frequencies:[261.6255653006,278.9816419584,293.66476791741,313.14630527334,327.50195613664,349.22823143301,367.60851651046,391.99543598175,418.00016846495,437.16266336983,466.16376151809,490.69849857048,523.2511306012],description:"Starling temperament, Herman Miller (1999)"},stearns:{frequencies:[261.6255653006,299.00064605783,336.37572681506,366.27579142084,398.6675280771,448.50096908674,504.56359022259,523.2511306012],description:"Dan Stearns, guitar scale"},stearns2:{frequencies:[261.6255653006,280.31310567921,287.78812183066,299.00064605783,313.95067836072,317.68818643644,336.37572681506,340.11323489078,355.06326719367,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,429.81342870813,444.76346101102,448.50096908674,467.18850946536,470.92601754108,485.87604984397,497.08857407114,504.56359022259,523.2511306012],description:'Dan Stearns, scale for "At A Day Job" based on harmonics 10-20 and 14-28'},stearns3:{frequencies:[261.6255653006,304.11599009871,327.88291945286,364.30920726489,423.47641042702,470.52269644143,546.93995798074,607.70247408742,706.39900722312,784.8766959018],description:"Dan Stearns, trivalent version of Bohlen's Lambda scale"},stearns4:{frequencies:[261.6255653006,296.65550714972,336.37572681506,347.46339693852,393.986457405,446.73865184892,461.46412096988,523.2511306012],description:"Dan Stearns, 1/4-septimal comma temperament, tuning-math 2-12-2001"},steldek1:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,343.38355445704,353.19451315581,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 5 7 9 dekany"},steldek1s:{frequencies:[261.6255653006,274.70684356563,275.93321340298,280.31310567921,286.15296204753,294.32876096318,305.22982618403,309.04519901133,315.35224388912,321.92208230347,327.03195662575,331.11985608357,339.14425131559,343.38355445704,353.19451315581,360.4025644447,367.91095120397,381.53728273004,386.30649876417,392.4383479509,400.61414686654,408.78994578219,412.06026534844,420.46965851882,429.2294430713,436.04260883433,441.49314144476,457.84473927605,482.88312345521,490.54793493862,494.47231841813,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated two out of 1 3 5 7 9 dekany"},steldek2:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.7792935736,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,449.66894036041,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Stellated two out of 1 3 5 7 11 dekany"},steldek2s:{frequencies:[261.6255653006,262.3068818769,269.80136421624,274.70684356563,280.31310567921,286.15296204753,294.32876096318,295.09524211152,299.7792935736,302.17752792219,308.34441624714,312.16686768822,314.76825825228,327.03195662575,337.2517052703,343.38355445704,349.7425091692,356.76213450082,359.73515228832,377.72190990274,381.53728273004,385.43052030892,392.4383479509,393.46032281536,400.61414686654,408.78994578219,416.22249025095,419.69101100305,429.2294430713,431.68218274599,440.49202321019,449.66894036041,454.06089845559,457.84473927605,472.15238737843,490.54793493862,494.63583439645,499.46698830115,503.62921320365,513.90736041189,523.2511306012],description:"Superstellated two out of 1 3 5 7 11 dekany"},steleik1:{frequencies:[220,220.57291666667,224.58333333333,225,226.875,229.16666666667,232.03125,235.27777777778,238.21875,240.625,242.63020833333,243.08035714286,247.5,248.14453125,252.08333333333,252.65625,255.234375,256.66666666667,257.8125,262.5,264.6875,270.703125,272.25,275,277.29166666667,278.4375,280.72916666667,283.59375,288.75,294.09722222222,297.7734375,302.5,308.80208333333,309.375,311.953125,315,315.10416666667,317.625,320.83333333333,324.10714285714,324.84375,330,330.859375,336.11111111111,336.875,340.3125,343.75,346.5,346.61458333333,350,352.91666666667,353.57142857143,360.9375,366.66666666667,371.25,378.125,385,388.92857142857,392.12962962963,393.75,397.03125,401.04166666667,403.33333333333,412.5,415.9375,423.5,425.390625,427.77777777778,432.14285714286,433.125,440],description:"Stellated Eikosany 3 out of 1 3 5 7 9 11"},steleik1s:{frequencies:[123.47082531403,123.79236392162,125.33976847064,127.32928860509,129.9819821177,130.22313607339,131.308328874,132.59082945654,132.63467563031,133.69575303535,135.04621518722,136.42423779117,136.73429287706,138.90467847828,139.26640941182,141.47698733899,141.79852594658,143.24544968073,144.69237341488,145.8499124022,145.89814319334,147.3231438406,148.55083670594,148.82644122673,151.92699208562,154.33853164254,156.26776328807,156.6747105883,159.16161075637,160.43490364242,160.48795751267,162.05545822466,163.70908534941,165.05648522882,165.43161360434,165.73853682068,167.11969129419,168.80776898403,169.77238480679,173.63084809785,175.077771832,175.80123369908,178.26100404713,179.05681210091,180.06162024963,181.89898372156,182.31239050275,185.20623797104,185.68854588243,189.06470126211,189.41547065221,190.99393290764,192.92316455317,195.33470411009,198.06778227459,200.54362955302,202.56932278083,204.25740047067,204.63635668676,208.35701771743,208.89961411773,212.21548100849,212.69778891987,214.8681745211,216.07394429955,217.03856012232,220.07531363843,220.98471576091,222.82625505891,227.89048812843,229.19271948917,231.50779746381,233.43702910934,233.87012192772,234.4016449321,236.33087657764,238.74241613455,241.07423537553,241.15395569146,243.083187337,246.94165062806],description:"Superstellated Eikosany 3 out of 1 3 5 7 9 11"},steleik2:{frequencies:[123.47082531403,124.49974885831,126.04313417474,126.11662871362,127.68005799519,128.74405847848,129.64436657973,130.41605923794,132.04518818306,132.96858110742,133.76006075687,135.81790784543,137.94006265552,138.64744759221,140.44806379471,141.47698733899,144.0492961997,145.92006628022,146.26543921816,147.13606683255,148.16499037684,148.55083670594,151.25176100969,152.15206911093,154.33853164254,154.49287017418,155.62468607289,156.05340421634,157.14468676331,157.64578589202,158.45422581967,160.51207290824,160.9300730981,163.85607442716,164.62776708537,167.20007594608,169.77238480679,170.24007732692,171.65874463798,172.85915543964,173.88807898393,175.56007974339,176.56328019906,180.06162024963,181.09054379391,182.8317990227,183.92008354069,185.20623797104,186.74962328747,187.26408505961,190.14507098361,193.11608771773,194.02558263633,197.55332050245,198.06778227459,200.6400911353,201.66901467958,202.31209189476,203.72686176815,204.2880927923,205.78470885672,205.99049356557,208.95062745451,210.19438118936,214.01609721099,214.57343079747,216.07394429955,217.36009872991,217.87456050205,220.70410024883,224.71690207153,226.36317974239,229.30296129748,230.47887391952,234.08010632452,237.68133872951,239.0961086029,240.76810936236,243.77573203026,245.22677805425,246.94165062806],description:"Stellated Eikosany 3 out of 1 3 5 7 11 13"},steleik2s:{frequencies:[61.73541265702,61.89618196081,62.32902239411,62.70002847979,63.66464430255,64.65940436978,64.99099105886,65.83502990378,66.22690508177,66.31733781516,67.05419712422,67.52310759362,68.40003106886,68.56192463352,68.97003132776,69.45233923915,69.63320470592,70.8992629733,71.32128239576,72.34618670745,72.41853289415,72.94907159667,73.15003322642,73.66157192031,73.89646213689,74.27541835298,75.24003417574,75.43597176474,76.80753488774,77.16926582128,78.37503559973,79.58080537819,79.800036247,80.24397875634,80.46503654906,81.02772911234,81.51003702372,82.29378737972,82.71580680218,82.76403759332,84.40388449202,84.45309958502,84.8861924034,85.7024057919,86.21253915971,86.81542404893,87.05458499673,87.53888591601,87.7800398717,89.13050202357,90.52316611769,90.94949186079,92.60311898553,92.84427294122,94.05004271968,94.53235063106,94.83379307568,95.49696645383,95.7600434964,96.46158227659,96.55804385887,97.94560661931,98.52861618252,100.32004556766,100.58129568632,101.28466139042,101.88754627965,102.12870023534,103.45504699165,104.17850885872,105.33604784604,105.47988405157,106.10774050425,107.4857631082,108.03697214979,109.72504983963,111.41312752947,112.07630090762,112.86005126361,113.15395764711,114.2698743892,114.95005221294,115.75389873191,115.86965263064,116.71851455468,118.16543828883,118.23433941902,119.7000543705,120.57697784574,120.69755482359,121.54159366851,122.26505553558,123.47082531404],description:"Superstellated Eikosany 3 out of 1 3 5 7 11 13"},stelhex1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,294.32876096318,327.03195662575,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 7 hexany, also dekatesserany, mandala, tetradekany"},stelhex2:{frequencies:[261.6255653006,275.93321340298,294.32876096318,327.03195662575,331.11985608357,353.19451315581,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 9 hexany"},stelhex3:{frequencies:[261.6255653006,271.31540105247,279.06726965397,281.36411960997,289.40309445597,297.67175429757,339.14425131559,348.83408706747,358.80077526939,361.75386806997,372.08969287196,385.87079260796,434.10464168396,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on Archytas's Enharmonic"},stelhex4:{frequencies:[261.6255653006,269.10058145205,276.78916949353,279.06726965397,287.04062021552,297.67175429757,336.37572681506,348.83408706747,358.80077526939,361.75386806997,372.08969287196,382.72082695402,430.56093032327,465.11211608996,523.2511306012],description:"Stellated Tetrachordal Hexany based on the 1/1 35/36 16/15 4/3 tetrachord"},stelhex5:{frequencies:[261.6255653006,294.32876096318,305.22982618403,331.11985608357,343.38355445704,386.30649876417,392.4383479509,400.61414686654,441.49314144476,457.84473927605,504.56359022259,515.07533168556,523.2511306012],description:"Stellated two out of 1 3 7 9 hexany, stellation is degenerate"},stelhex6:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,327.03195662575,337.2517052703,356.76213450082,359.73515228832,392.4383479509,408.78994578219,431.68218274599,449.66894036041,490.54793493862,494.63583439645,523.2511306012],description:"Stellated two out of 1 3 5 11 hexany, from The Giving, by Stephen J. Taylor"},stelpd1:{frequencies:[207.65234878997,208.19311011494,212.37172035338,214.14148468966,218.03496622947,219.00833661442,222.07265078927,222.48465941783,222.99030637105,224.84855892414,227.11975648903,229.43730502463,233.60889238872,237.93498298851,240.90917027586,242.2610735883,244.73312535961,245.28933700815,247.76700707894,249.83173213793,250.29524184505,254.84606442405,255.50972605016,256.96978162759,259.56543598746,262.81000393731,267.67685586207,272.54370778684,275.32476602956,277.59081348659,280.33067086646,281.06069865517,283.1622938045,285.52197958621,292.0111154859,297.32040849473,299.79807856552,302.82634198537,305.91640669951,306.61167126019,311.47852318496,312.28966517242,317.24664398468,317.96765908464,318.55758053007,321.21222703448,324.45679498433,327.0524493442,330.35600943859,333.10897618391,333.72698912674,340.67963473354,342.62637550345,346.08724798328,350.41333858307,356.90247448276,363.39161038245,367.09968803941,371.65051061841,374.7475982069,380.69597278161,385.45467244138,389.34815398119,392.59272193104,396.42721132631,399.73077142069,400.47238695209,401.51528379311,403.7684559805,407.88854226601,408.81556168025,415.30469757994],description:"Stellated two out of 1 3 5 7 9 11 pentadekany"},stelpd1s:{frequencies:[21.82676446456,21.88360499702,22.15715005948,22.2309638065,22.3228272933,22.50885085408,22.68892166091,22.91810268779,23.02041564622,23.14959867453,23.15196087848,23.34251199682,23.38581906917,23.43896865797,23.624449876,23.63429339678,23.87302363311,24.11662591508,24.35217522905,24.55511002263,24.61905562165,25.00983428231,25.20991295657,25.32245721084,25.46455854199,25.72440097609,25.78286552376,25.93612444091,26.04329850885,26.26032599642,26.30904645282,26.78739275196,26.85715158725,27.01062102489,27.2834555807,27.56185818867,27.62449877546,27.69643757435,28.01101439619,28.1360635676,28.29395393554,28.36115207614,28.41087110056,28.58266775121,28.64762835974,28.9399510981,29.17813999603,29.29871082246,29.46613202716,29.54286674598,29.7637697244,30.01180113877,30.06748166036,30.69388752829,30.99367756425,31.12334932909,31.25195821062,31.51239119571,31.65307151355,31.83069817748,32.15550122011,32.2285819047,32.41274522987,32.74014669684,32.82540749553,33.0742298264,33.34644570974,33.42223308636,33.48424093995,33.76327628112,34.09304532068,34.10431947588,34.37715403168,34.58149925455,34.7243980118,35.01376799523,35.07872860376,35.45144009517,35.80953544967,36.01416136652,36.17493887262,36.37794077427,36.74914425156,36.83266503394,36.92858343247,37.50234985274,37.51475142346,37.81486943485,37.88116146742,38.19683781298,38.26770393137,38.58660146413,38.90418666137,39.06494776328,39.39048899464,40.01573485169,40.28572738088,40.51593153734,40.92518337105,41.25258483802,41.26622656581,41.342787283,41.66927761416,42.01652159428,42.09447432451,42.2040953514,42.44093090331,42.61630665085,42.87400162681,42.9714425396,43.65352892912],description:"Superstellated two out of 1 3 5 7 9 11 pentadekany"},stelpent1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,343.38355445704,348.83408706747,353.19451315581,366.27579142084,367.91095120397,373.75080757229,381.53728273004,392.4383479509,406.97310157871,412.06026534844,420.46965851882,436.04260883433,441.49314144476,448.50096908674,457.84473927605,470.92601754108,490.54793493862,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Stellated one out of 1 3 5 7 9 pentany"},stelpent1s:{frequencies:[261.6255653006,271.31540105247,274.70684356563,275.93321340298,280.31310567921,282.55561052465,286.15296204753,288.32205155576,290.69507255622,294.32876096318,301.46155672497,305.22982618403,309.04519901133,313.95067836072,315.35224388912,320.35783506196,321.92208230347,327.03195662575,329.64821227876,336.37572681506,339.14425131559,343.38355445704,348.83408706747,353.19451315581,360.4025644447,366.27579142084,367.91095120397,373.75080757229,381.53728273004,386.30649876417,387.59343007496,392.4383479509,395.57785473451,403.65087217807,406.97310157871,411.88864507966,412.06026534844,420.46965851882,429.2294430713,436.04260883433,439.53094970501,441.49314144476,448.50096908674,452.19233508746,457.84473927605,470.92601754108,480.53675259294,482.88312345521,488.36772189445,490.54793493862,494.47231841813,498.33441009638,504.56359022259,508.71637697339,515.07533168556,523.2511306012],description:"Superstellated one out of 1 3 5 7 9 pentany"},steltet1:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,436.04260883433,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 7 tetrany"},steltet1s:{frequencies:[261.6255653006,274.70684356563,280.31310567921,286.15296204753,305.22982618403,313.95067836072,320.35783506196,327.03195662575,343.38355445704,366.27579142084,373.75080757229,381.53728273004,392.4383479509,429.2294430713,436.04260883433,439.53094970501,448.50096908674,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"Superstellated one out of 1 3 5 7 tetrany"},steltet2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,286.15296204753,305.22982618403,327.03195662575,333.84512238879,343.38355445704,381.53728273004,392.4383479509,400.61414686654,408.78994578219,436.04260883433,457.84473927605,476.92160341255,490.54793493862,523.2511306012],description:"Stellated three out of 1 3 5 7 tetrany"},steltet2s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Superstellated three out of 1 3 5 7 tetrany"},steltri1:{frequencies:[261.6255653006,313.95067836072,327.03195662575,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Stellated one out of 1 3 5 triany"},steltri2:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,408.78994578219,490.54793493862,523.2511306012],description:"Stellated two out of 1 3 5 triany"},stevin:{frequencies:[261.6255653006,277.20445571159,293.66434538175,311.1256573916,329.66931111467,349.25319089654,369.99797100919,392.00714009679,415.41055144586,440.15068186507,466.27261682516,494.00597677606,523.2511306012],description:"Simon Stevin, monochord division of 10000 parts for 12-tET (1585)"},stopper:{frequencies:[261.6255653006,277.19910487213,293.6996776193,311.18246278326,329.70593120198,349.3320268423,370.12638880276,392.15855510068,415.50221189151,440.23542223935,466.44090588941,494.20629608476,523.62445363767,554.79375523088,587.81844599272,622.80896314278,659.88233179115,699.16252826162,740.78092441407,784.8766959018],description:"Bernard Stopper, piano tuning with 19th root of 3 (1988)"},storbeck:{frequencies:[261.6255653006,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,353.19451315581,358.80077526939,381.53728273004,387.59343007496,392.4383479509,403.65087217807,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,523.2511306012],description:"Ulrich Storbeck, 2001"},strahle:{frequencies:[261.6255653006,278.94941459687,296.90543930973,315.65242990842,335.0021118691,355.12744448111,376.24442122187,398.15684412917,421.10213511252,444.85552088095,469.94877954106,496.17080790016,523.2511306012],description:"Strahle's Geometrical scale"},"sub24-12":{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Subharmonics 24-12"},sub24:{frequencies:[261.6255653006,10.90106522086,11.37502457829,11.89207115003,12.45836025241,13.08127826503,13.76976659477,14.53475362781,15.38973913533,16.35159783129,17.44170435337,18.68754037861,20.12504348466,21.80213044172,23.78414230005,26.16255653006,29.06950725562,32.70319566257,37.37508075723,43.60426088343,52.32511306012,65.40639132515,87.20852176687,130.8127826503,261.6255653006],description:"Subharmonics 24-1"},sub40:{frequencies:[261.6255653006,275.39533189537,290.69507255622,307.79478270659,327.03195662575,348.83408706747,373.75080757229,402.50086969323,418.60090448096,436.04260883433,475.68284600109,498.33441009638,523.2511306012],description:"sub 40-20"},sub48:{frequencies:[261.6255653006,279.06726965397,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,465.11211608996,502.32108537715,523.2511306012],description:"12 of sub 48 (Leven)"},sub50:{frequencies:[261.6255653006,272.52663052146,290.69507255622,311.45900631024,327.03195662575,344.24416486921,373.75080757229,384.74347838324,408.78994578219,436.04260883433,467.18850946536,484.4917875937,523.2511306012],description:"12 of sub 50"},sub8:{frequencies:[261.6255653006,279.06726965397,299.00064605783,322.00069575458,348.83408706747,380.54627680087,418.60090448096,465.11211608996,523.2511306012],description:"Subharmonic series 1/16 - 1/8"},sumatra:{frequencies:[261.6255653006,266.79889483106,324.44528279699,356.96377863828,390.9602296356,474.47355835313,530.64156666967,639.28283484968,713.92755727656,784.8766959018],description:'"Archeological" tuning of Pasirah Rus orch. in Muaralakitan, Sumatra. 1/1=354 Hz'},super_10:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 10-tone scale"},super_11:{frequencies:[261.6255653006,283.42769574232,305.22982618403,327.03195662575,348.83408706747,370.63621750918,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 11-tone scale"},super_12:{frequencies:[261.6255653006,279.06726965397,296.50897400735,313.95067836072,331.39238271409,348.83408706747,372.08969287196,395.34529867646,418.60090448096,441.85651028546,465.11211608996,494.18162334558,523.2511306012],description:"A superparticular 12-tone scale"},super_12_1:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"Another superparticular 12-tone scale"},super_12_2:{frequencies:[261.6255653006,280.31310567921,299.00064605783,317.68818643644,336.37572681506,355.06326719367,373.75080757229,392.4383479509,420.46965851882,448.50096908674,473.41768959156,498.33441009638,523.2511306012],description:"Another superparticular 12-tone scale"},super_13:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,418.60090448096,444.76346101102,470.92601754108,497.08857407114,523.2511306012],description:"A superparticular 13-tone scale"},super_14:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,414.24047839262,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 14-tone scale"},super_15:{frequencies:[261.6255653006,276.16031892841,290.69507255622,305.22982618403,319.76457981184,334.29933343966,348.83408706747,363.36884069528,381.53728273004,399.70572476481,417.87416679957,436.04260883433,457.84473927605,479.64686971777,501.44900015948,523.2511306012],description:"A superparticular 15-tone scale"},super_17:{frequencies:[261.6255653006,274.08392555301,286.54228580542,299.00064605783,311.45900631024,323.91736656265,336.37572681506,348.83408706747,363.36884069528,377.90359432309,392.4383479509,411.12588832951,429.81342870813,448.50096908674,467.18850946536,485.87604984397,504.56359022259,523.2511306012],description:"Superparticular 17-tone scale"},super_19:{frequencies:[261.6255653006,272.52663052146,283.42769574232,294.32876096318,305.22982618403,316.13089140489,327.03195662575,340.11323489078,353.19451315581,366.27579142084,379.35706968587,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.57848126297,337.20628416522,348.83408706747,363.36884069528,377.90359432309,392.4383479509,408.13588186894,423.83341578697,439.53094970501,455.22848362304,470.92601754108,488.36772189445,505.80942624783,523.2511306012],description:"Superparticular 19-tone scale"},super_19_2:{frequencies:[261.6255653006,269.80136421624,277.97716313189,294.32876096318,302.50455987882,310.68035879446,318.85615771011,327.03195662575,343.38355445704,359.73515228832,376.08675011961,392.4383479509,408.78994578219,425.14154361347,441.49314144476,457.84473927605,474.19633710734,490.54793493862,506.89953276991,523.2511306012],description:"Superparticular 19-tone scale"},super_22:{frequencies:[261.6255653006,270.96933548991,280.31310567921,289.65687586852,299.00064605783,308.34441624714,317.68818643644,327.03195662575,337.93302184661,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,406.45400323486,420.46965851882,434.48531380278,448.50096908674,463.45100138963,478.40103369253,493.35106599542,508.30109829831,523.2511306012],description:"Superparticular 22-tone scale"},super_22_1:{frequencies:[261.6255653006,272.09058791262,282.55561052465,293.02063313667,303.4856557487,313.95067836072,325.16320258789,336.37572681506,347.58825104223,358.80077526939,370.01329949656,381.22582372373,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 22-tone scale"},super_24:{frequencies:[261.6255653006,270.34641747729,279.06726965397,287.78812183066,296.50897400735,305.22982618403,313.95067836072,322.67153053741,331.39238271409,340.11323489078,348.83408706747,359.73515228832,370.63621750918,381.53728273004,392.4383479509,405.51962621593,418.60090448096,431.68218274599,444.76346101102,457.84473927605,470.92601754108,484.00729580611,497.08857407114,510.16985233617,523.2511306012],description:"Superparticular 24-tone scale, inverse of Mans.ur 'Awad"},super_7:{frequencies:[261.6255653006,287.78812183066,313.95067836072,353.19451315581,392.4383479509,431.68218274599,470.92601754108,523.2511306012],description:"A superparticular 7-tone scale"},super_8:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"A superparticular 8 tone scale"},super_9:{frequencies:[261.6255653006,287.78812183066,313.95067836072,340.11323489078,366.27579142084,392.4383479509,425.14154361347,457.84473927605,490.54793493862,523.2511306012],description:"A superparticular 9-tone scale"},suppig:{frequencies:[261.6255653006,272.52663052146,279.06726965397,294.32876096318,306.59245933664,313.95067836072,327.03195662575,340.65828815182,348.83408706747,367.91095120397,376.74081403286,392.4383479509,408.78994578219,418.60090448096,436.04260883433,459.88868900496,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"Friedrich Suppig's 19-tone JI scale. Calculus Musicus, Berlin 1722"},sur_7:{frequencies:[261.6255653006,280.40333801024,327.729041887,351.25128999693,383.0422478503,410.5345162762,479.82340237272,523.2511306012],description:"7-tone surupan"},sur_9:{frequencies:[261.6255653006,280.40333801024,305.78200836532,327.729041887,351.25128999693,383.0422478503,410.5345162762,447.69106452518,479.82340237272,523.2511306012],description:"Theoretical nine-tone surupan gamut"},sur_ajeng:{frequencies:[261.6255653006,285.30470202322,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan ajeng"},sur_degung:{frequencies:[261.6255653006,322.09885310804,345.21700307457,396.55020354877,488.21056770985,523.2511306012],description:"Surupan degung"},sur_madenda:{frequencies:[261.6255653006,322.09885310804,345.21700307457,425.01198472693,488.21056770985,523.2511306012],description:"Surupan madenda"},sur_melog:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,410.5345162762,523.2511306012],description:"Surupan melog"},sur_miring:{frequencies:[261.6255653006,285.30470202322,305.78200836532,389.73770840504,417.71053321823,523.2511306012],description:"Surupan miring"},sur_x:{frequencies:[261.6255653006,280.40333801024,305.78200836532,383.0422478503,417.71053321823,523.2511306012],description:"Surupan tone-gender X (= unmodified nyorog)"},sur_y:{frequencies:[261.6255653006,280.40333801024,300.52885648597,383.0422478503,410.5345162762,523.2511306012],description:"Surupan tone-gender Y (= mode on pamiring)"},sverige:{frequencies:[261.6255653006,293.66476791741,329.62755691287,349.22823143301,391.99543598175,440,466.16376151809,493.88330125613,523.2511306012,554.36526195375,587.32953583482,622.25396744417,659.25511382574,698.45646286601,739.98884542327,783.9908719635,830.60939515989,880,932.32752303618,987.76660251225,1046.5022612024,1174.65907166964,1318.51022765149,1396.91292573202,1567.98174392701],description:"Scale on Swedish 50 crown banknote of some kind of violin."},syntonolydian:{frequencies:[261.6255653006,294.32876096318,331.11985608357,372.50983809402,392.4383479509,441.49314144476,496.67978412536,523.2511306012],description:"Greek Syntonolydian, also genus duplicatum medium, or ditonum (Al-Farabi)"},syrian:{frequencies:[261.6255653006,268.67837258085,275.62199471997,279.38237857051,286.74979536837,294.32876096318,302.10804307229,310.07474405997,314.30517589183,322.59351978942,326.6631048533,331.11985608357,339.85160932548,348.83408706747,358.05397697456,367.49599295996,372.50983809402,382.33306049116,392.4383479509,402.81072409638,413.43299207996,419.07356785577,430.12469305256,441.49314144476,453.13547910064,465.11211608996,477.40530263275,489.99465727995,496.67978412536,509.77741398822,523.2511306012],description:"After ^Sayh.'Ali ad-Darwis^ (Shaykh Darvish) from d'Erlanger vol.5, p.29"},szpak_24:{frequencies:[261.6255653006,270.98948203641,277.18263097687,287.10335517712,293.66476791741,304.17540907689,311.12698372208,322.26262012861,329.62755691287,341.42535271779,349.22823143301,361.7275606831,369.99442271164,383.23700075636,391.99543598175,406.02545869431,415.30469757995,430.16898885692,440,455.74816803176,466.16376151809,482.84836435151,493.88330125613,511.56002220218,523.2511306012],description:"Stephen Szpak's scale, TL 2-1-2004"},pagano_b:{frequencies:[261.6255653006,277.97716313189,289.55954492905,312.72430852337,333.57259575826,351.8148470888,370.63621750918,389.16802838464,416.96574469783,444.76346101102,463.29527188648,486.4600354808,523.2511306012],description:"Pat Pagano and David Beardsley, 17-limit scale, TL 27-2-2001"},palace:{frequencies:[261.6255653006,277.01530443593,294.32876096318,299.00064605783,336.37572681506,348.83408706747,373.75080757229,392.4383479509,409.50088481833,428.11456140098,448.50096908674,470.92601754108,523.2511306012],description:"Palace mode+"},palace2:{frequencies:[261.6255653006,277.01530443593,336.37572681506,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Byzantine Palace mode, 17-limit"},panpipe1:{frequencies:[261.6255653006,305.78200836532,346.61566493686,386.59871897734,424.03113209229,475.68400784708,523.2511306012],description:"Palina panpipe of Solomon Islands. 1/1=f+45c. From Ocora CD Guadalcanal"},panpipe2:{frequencies:[261.6255653006,301.39807245198,340.46429857933,389.512652082,435.70052664441,481.48922855473,540.45338572244,606.98892366383,675.83458963267,749.45240308975,819.17415016614,915.78156525194,979.24522642508,1073.44040298899,1178.73719255088,1360.28482360484],description:"Lalave panpipe of Solomon Islands. 1/1=f'+47c."},panpipe3:{frequencies:[261.6255653006,302.44445076078,341.44901934006,382.59999559751,433.19107626846,482.88183400971,542.01653249392,602.10016957865,677.78929781797,755.1012944609,822.018116801,906.30932187391,994.06270356141,1067.87449159209,1155.14617783291,1300.35790771888],description:"Tenaho panpipe of Solomon Islands. 1/1=f'+67c."},parachrom:{frequencies:[261.6255653006,274.52698453615,288.06460709314,349.22823143301,391.99543598175,411.32572372413,431.60923940535,523.2511306012],description:"Parachromatic, new genus 5 + 5 + 20 parts"},parakleismic:{frequencies:[261.6255653006,269.41173453909,271.00883762044,279.07425994419,280.72864356353,282.39283618632,290.79705467987,292.52093234567,301.22657042972,303.0122754386,312.03014360907,313.87989341557,323.22118988972,325.13728335605,327.06473376202,336.79842078181,338.79499972275,348.87778808468,350.94597487438,361.39038519337,363.53274806687,374.35175001315,376.5709514911,387.77797996035,390.07677146523,392.38919046486,404.06698135965,406.46233589795,418.55895395107,421.04021853379,433.57068509561,436.14094342919,449.12081866987,451.783257426,465.22865943552,467.98658728446,470.76086444006,484.77105399159,487.64483417146,502.15750307968,505.13434926963,520.16751901001,523.2511306012],description:"Parakleismic temperament, g=315.250913, 5-limit"},parizek:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,327.03195662575,343.38355445704,359.73515228832,392.4383479509,425.14154361347,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone Linear Level tuning, 1/1=Ab"},parizek_13lqmt:{frequencies:[261.6255653006,272.70676208351,292.18581651805,313.05623198362,325.57848126297,348.83408706747,365.23227064756,391.32028997953,406.97310157871,436.04260883433,467.18850946536,486.97636086341,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_17lqmt:{frequencies:[261.6255653006,272.52663052146,291.99281841585,312.60407618638,327.03195662575,350.39138209902,364.70475555078,390.75509523297,408.78994578219,436.04260883433,467.18850946536,488.44386904122,523.2511306012],description:"To tune the scale by ear, please choose the intervals in the following order:"},parizek_7lmtd1:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"Use SET MIDDLE 62"},parizek_7lqmtd2:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,390.69417751556,418.60090448096,437.98922762377,468.83301301868,488.36772189445,523.2511306012],description:"Use SET MIDDLE 62"},parizek_cirot:{frequencies:[261.6255653006,273.76082553017,293.33333347996,307.98092841354,327.40170814054,348.04713286849,366.66693712906,392.88175996935,409.71484950008,438.01699797506,463.01593599647,491.10256480205,523.2511306012],description:"Overtempered circular tuning (1/1 is F)"},parizek_epi:{frequencies:[261.6255653006,283.42769574232,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,392.4383479509,418.60090448096,436.04260883433,457.84473927605,479.64686971777,523.2511306012],description:"In The Epimoric World"},parizek_epi2:{frequencies:[261.6255653006,283.42769574232,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,523.2511306012,523.2511306012],description:"In the Epimoric World - extended (version for two keyboards)"},parizek_epi2a:{frequencies:[261.6255653006,283.42769574232,287.78812183066,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,392.4383479509,411.12588832951,418.60090448096,425.14154361347,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,485.87604984397,523.2511306012,523.2511306012],description:"April 2003 - Petr Parizek"},parizek_ji1:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,523.2511306012],description:"Petr Parizek, 12-tone septimal tuning, 2002."},parizek_jiweltmp:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,329.45441556372,348.83408706747,370.63621750918,392.4383479509,416.96574469783,440.63253103259,465.11211608996,494.18162334558,523.2511306012],description:"April 2003 - Petr Parizek"},jiwt2:{frequencies:[261.6255653006,277.97716313189,294.32876096318,310.68035879446,331.11985608357,348.83408706747,372.08969287196,392.4383479509,415.8649508569,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"June 2003 - Petr Parizek"},parizek_llt7:{frequencies:[261.6255653006,283.42769574232,327.03195662575,359.73515228832,392.4383479509,425.14154361347,479.64686971777,523.2511306012],description:"7-tone mode of Linear Level Tuning 2000 (= wilson_helix)"},parizek_qmeb1:{frequencies:[261.6255653006,273.53155294581,293.066620053,305.25690181412,326.9069921792,350.33366042609,366.2083106197,392.1884190578,408.50877577745,437.87542071709,457.7197748295,488.61098601707,523.2511306012],description:"Equal beating quasi-meantone tuning no. 1 - F...A# (1/1 = 261.7Hz)(3/2 5/3 5/4 7/4 7/6)"},parizek_qmeb2:{frequencies:[261.6255653006,274.12423619715,293.39509530855,306.21121252767,327.1564453797,350.32795211486,366.55713600477,391.6914154272,409.44351174042,438.20041390279,457.4712730142,489.73875803795,523.2511306012],description:"Equal beating quasi-meantone tuning no. 2 - F...A# (1/1 = 262.7Hz)"},parizek_qmeb3:{frequencies:[261.6255653006,274.23252240717,293.57983281823,306.4052273004,327.28159934073,350.29865766202,366.78755898655,391.93906252094,409.53887392713,438.37260750749,457.59509656107,490.04864950866,523.2511306012],description:"Equal beating quasi-meantone tuning no. 3 - F...A#. 1/1 = 262Hz"},parizek_qmtp12:{frequencies:[261.6255653006,273.55480692456,293.00227310437,305.44101254122,326.6631048533,350.4133380576,366.39100206434,391.84790908124,408.48291326839,437.52264545758,457.47219685667,489.2574430773,523.2511306012],description:"12-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (F...A#)"},parizek_qmtp24:{frequencies:[261.6255653006,273.14323313659,280.64720643091,285.59764149034,293.00227310437,305.44101254122,313.83229199844,326.6631048533,335.63741195089,341.5578378819,350.4133380576,365.83975262993,375.89034660662,381.37064019061,391.84790908124,407.86833637529,419.07356785577,437.52264545758,448.86620556368,457.47219685667,469.33298761093,489.2574430773,502.69865025911,510.02774559919,523.2511306012],description:"24-tone quasi-meantone tuning with 1/9 Pyth. comma as basic tempering unit (Bbb...C##)"},parizek_syndiat:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,436.04260883433,441.49314144476,484.4917875937,490.54793493862,523.2511306012],description:"Petr Parizek, diatonic scale with syntonic alternatives"},parizek_syntonal:{frequencies:[261.6255653006,272.52663052146,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,490.54793493862,523.2511306012],description:"Petr Parizek, Syntonic corrections in JI tonality, Jan. 2004"},parizek_temp19:{frequencies:[261.6255653006,276.69969455132,294.32876096318,310.68035879446,328.58088727969,349.51540364377,368.93292606842,392.4383479509,415.04954182698,438.10784970625,466.02053819169,492.87133091954,523.2511306012],description:"Petr Parizek, genus [3 3 19 19 19] well temperament"},"partch-barstow":{frequencies:[261.6255653006,279.06726965397,287.78812183066,290.69507255622,294.32876096318,299.00064605783,313.95067836072,327.03195662575,348.83408706747,359.73515228832,373.75080757229,392.4383479509,418.60090448096,436.04260883433,448.50096908674,470.92601754108,479.64686971777,490.54793493862,523.2511306012],description:"Guitar scale for Partch's Barstow (1941, 1968)"},"partch-greek":{frequencies:[261.6255653006,261.6255653006,271.31540105247,294.32876096318,279.06726965397,348.83408706747,313.95067836072,392.4383479509,392.4383479509,406.97310157871,418.60090448096,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" on black/white'},"partch-grm":{frequencies:[261.6255653006,271.31540105247,279.06726965397,294.32876096318,313.95067836072,348.83408706747,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:'Partch Greek scales from "Two Studies on Ancient Greek Scales" mixed'},"partch-indian":{frequencies:[261.6255653006,269.80136421624,277.97716313189,285.40970760065,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,383.71749577421,392.4383479509,406.97310157871,411.12588832951,428.11456140098,441.49314144476,457.84473927605,475.68284600109,490.54793493862,507.3950357345,523.2511306012],description:"Partch's Indian Chromatic, Exposition of Monophony, 1933."},"partch-ur":{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch curved keyboard, published in Interval"},"partch_29-av":{frequencies:[261.6255653006,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,470.92601754108,479.64686971777,488.36772189445,498.33441009638,507.3950357345,523.2511306012],description:"29-tone JI scale from Partch's Adapted Viola 1928-30"},partch_29:{frequencies:[261.6255653006,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,523.2511306012],description:"Partch/Ptolemy 11-limit Diamond"},partch_37:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol.9(2)'},partch_39:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"Ur-Partch Keyboard 39 tones, published in Interval"},partch_41:{frequencies:[261.6255653006,281.75060878526,283.42769574232,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,322.00069575458,327.03195662575,332.97799220076,336.37572681506,340.11323489078,348.83408706747,359.73515228832,362.25078272391,366.27579142084,373.75080757229,377.90359432309,380.54627680087,392.4383479509,402.50086969323,406.97310157871,411.12588832951,418.60090448096,425.14154361347,428.11456140098,436.04260883433,442.75095666255,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,483.00104363188,485.87604984397,523.2511306012],description:"13-limit Diamond after Partch, Genesis of a Music, p 454, 2nd edition"},partch_41a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},partch_41comb:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.08392555301,274.70684356563,279.06726965397,280.31310567921,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,348.83408706747,359.73515228832,366.27579142084,373.75080757229,380.54627680087,392.4383479509,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,488.36772189445,490.54793493862,498.33441009638,499.46698830115,507.3950357345,512.57253609913,523.2511306012],description:"41-tone JI combination from Partch's 29-tone and 37-tone scales"},partch_43:{frequencies:[261.6255653006,264.89588486686,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,516.79124009995,523.2511306012],description:"Harry Partch's 43-tone pure scale"},partch_43a:{frequencies:[261.6255653006,267.07609791103,269.80136421624,274.70684356563,279.06726965397,285.40970760065,287.78812183066,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,356.76213450082,359.73515228832,366.27579142084,373.75080757229,380.54627680087,383.71749577421,392.4383479509,398.6675280771,406.97310157871,411.12588832951,418.60090448096,428.11456140098,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,475.68284600109,479.64686971777,490.54793493862,498.33441009638,507.3950357345,512.57253609913,523.2511306012],description:'From "Exposition on Monophony" 1933, unp. see Ayers, 1/1 vol. 9(2)'},patala:{frequencies:[261.6255653006,289.6217982776,320.24370022528,355.94891173479,393.58362272115,439.74591942221,480.6555937997,537.34060327431],description:"Observed patala tuning from Burma, Helmholtz/Ellis p. 518, nr.83"},pelog1:{frequencies:[261.6255653006,285.79952600623,313.83440569119,359.87690576543,393.35634555235,426.98050185716,482.04578814299,523.2511306012],description:"Gamelan Saih pitu from Ksatria, Den Pasar (South Bali). 1/1=312.5 Hz"},pelog10:{frequencies:[261.6255653006,290.16653606067,310.14521470005,342.49164912079,385.30310526088,418.60090448096,442.38504678101,523.2511306012],description:"Balinese saih 7 scale, Krobokan. 1/1=275 Hz. McPhee, 1966"},pelog11:{frequencies:[261.6255653006,289.11520789678,327.03195662575,352.6257619269,388.64667309147,441.73012112348,478.69895237627,523.2511306012],description:"Balinese saih pitu, gamelan luang, banjar Se`se'h. 1/1=276 Hz. McPhee, 1966"},pelog11i:{frequencies:[261.6255653006,267.83009854382,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,392.61532371972,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog12:{frequencies:[261.6255653006,284.41230790592,308.04300430555,358.68021049276,385.68672051706,409.31741667997,472.61392441399,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Tampak Gangsai, 1/1=310, McPhee"},pelog13:{frequencies:[261.6255653006,289.80062617913,323.61069924911,351.78575931905,394.45085229937,454.02098012766,494.27106657141,523.2511306012],description:"Balinese saih pitu, gamelan Semar Pegulingan, Klungkung, 1/1=325. McPhee, 1966"},pelog14:{frequencies:[261.6255653006,287.66412867175,309.98289727559,347.18084494866,375.69927149802,402.97776645827,427.77639824032,523.2511306012],description:"Balinese saih pitu, suling gambuh, Tabanan, 1/1=211 Hz, McPhee, 1966"},pelog15:{frequencies:[261.6255653006,284.9387344858,307.6043148279,344.51683351465,375.60105909492,407.98046074103,427.4081017287,523.2511306012],description:"Balinese saih pitu, suling gambuh, Batuan, 1/1=202 Hz. McPhee, 1966"},pelog2:{frequencies:[261.6255653006,285.30470202322,314.92395982138,345.81573716922,388.6137256405,424.52127512829,466.97226207056,523.2511306012],description:"Bamboo gambang from Batu lulan (South Bali). 1/1=315 Hz"},pelog3:{frequencies:[261.6255653006,285.63448939555,315.83481057014,390.18821123181,421.34544350737,523.2511306012],description:"Gamelan Gong from Padangtegal, distr. Ubud (South Bali). 1/1=555 Hz"},pelog4:{frequencies:[261.6255653006,290.96323214696,317.29765457754,352.87817160549,385.03871768789,434.94616895528,470.49199937597,523.2511306012],description:"Hindu-Jav. demung, excavated in Banjarnegara. 1/1=427 Hz"},pelog5:{frequencies:[261.6255653006,284.64626913494,310.94732162256,358.21775774651,390.8649420513,427.47405410759,468.32288027948,523.2511306012],description:"Gamelan Kyahi Munggang (Paku Alaman, Jogja). 1/1=199.5 Hz"},pelog6:{frequencies:[261.6255653006,282.02769802256,315.83481057014,354.51258839996,386.37547528213,413.39000965417,523.2511306012],description:"Gamelan Semar pegulingan, Ubud (S. Bali). 1/1=263.5 Hz"},pelog7:{frequencies:[261.6255653006,281.2143451833,303.31920717687,353.89879686059,384.81637482457,412.43597848639,448.72664641273,523.2511306012],description:"Gamelan Kantjilbelik (kraton Jogja). Measured by Surjodiningrat, 1972."},pelog8:{frequencies:[261.6255653006,281.2143451833,305.0763174688,362.1707891162,386.59871897734,415.30469757995,456.83405152976,529.33101587613,573.91491069685,623.33318620372,730.64478690489,786.25839925218,840.74610520523,945.88853913022,1075.30214607265],description:"from William Malm: Music Cultures of the Pacific, the Near East and Asia."},pelog9:{frequencies:[261.6255653006,282.57123920205,305.19382000629,356.01745236555,384.52011812375,415.30469757995,448.5538823653,523.2511306012],description:"9-tET Pelog"},pelog9i:{frequencies:[261.6255653006,287.76973397991,309.19384990071,332.21296611011,356.94582815655,383.52002471837,421.84506978464,453.25093845942,486.99493426005,523.2511306012],description:"George Secor's isopelogic scale with ~537.84194 generator and just 13/11"},pelog_24:{frequencies:[261.6255653006,293.66476791741,320.24370022528,349.22823143301,391.99543598175,440,479.82340237272,523.2511306012],description:"Subset of 24-tET (Sumatra?)"},pelog_a:{frequencies:[261.6255653006,280.7274598329,305.95868600104,363.84824628932,386.82209166041,411.72190027758,452.10885997356,523.2511306012],description:"Pelog, average class A. Kunst 1949"},pelog_alv:{frequencies:[261.6255653006,299.00064605783,313.95067836072,343.38355445704,392.4383479509,418.60090448096,457.84473927605,523.2511306012],description:"Bill Alves JI Pelog, 1/1 vol. 9 no. 4, 1997. 1/1=293.33"},pelog_av:{frequencies:[261.6255653006,280.40333801024,305.78200836532,357.39105439675,385.26118901859,411.72190027758,452.89298412314,523.2511306012],description:'"Normalised Pelog", Kunst, 1949. Average of 39 Javanese gamelans'},pelog_b:{frequencies:[261.6255653006,280.07959041159,302.79405018898,354.30787302884,382.82105786018,408.64182041696,451.58686491179,523.2511306012],description:"Pelog, average class B. Kunst 1949"},pelog_c:{frequencies:[261.6255653006,279.91785681123,304.37225518229,350.84574289301,384.81637482457,410.29745071461,451.58686491179,523.2511306012],description:"Pelog, average class C. Kunst 1949"},pelog_he:{frequencies:[261.6255653006,283.17034563789,338.50336851425,364.68988616898,389.06292924114,420.13030572059,493.31307433255,523.2511306012],description:"Observed Javanese Pelog scale, Helmholtz/Ellis p. 518, nr.96"},pelog_jc:{frequencies:[261.6255653006,294.32876096318,313.95067836072,392.4383479509,418.60090448096,523.2511306012],description:"John Chalmers' Pelog, on keys C# E F# A B c#, like Olympos' Enharmonic on 4/3"},pelog_laras:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,414.24047839262,457.84473927605,523.2511306012],description:'Lou Harrison, gamelan "Si Betty"'},pelog_me1:{frequencies:[261.6255653006,281.13654920971,305.96893643544,353.85975480175,389.33427481332,412.3928606827,454.07565526112,523.2511306012],description:"Gamelan Kyahi Kanyut Mesem pelog (Mangku Nagaran). 1/1=295 Hz"},pelog_me2:{frequencies:[261.6255653006,277.86440299076,299.96729002515,349.58586605592,383.41679241104,405.97081699752,447.47001910635,523.2511306012],description:"Gamelan Kyahi Bermara (kraton Jogja). 1/1=290 Hz"},pelog_me3:{frequencies:[261.6255653006,281.75056896146,306.90688773629,358.59164065877,385.12012728597,411.64865826518,457.38747412584,523.2511306012],description:"Gamelan Kyahi Pangasih (kraton Solo). 1/1=286 Hz"},pelog_pa:{frequencies:[261.6255653006,286.29520819723,313.29104303136,342.83241505062,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:'"Blown fifth" pelog, von Hornbostel, type a.'},pelog_pa2:{frequencies:[261.6255653006,286.29520819723,313.29104303136,353.69443592699,387.04559340587,423.54155496477,463.47885582013,523.2511306012],description:"New mixed gender Pelog"},pelog_pb:{frequencies:[261.6255653006,277.98432293805,304.19649364034,353.69443592699,387.04559340587,411.24653512154,450.02449304881,523.2511306012],description:'"Primitive" Pelog, step of blown semi-fourths, von Hornbostel, type b.'},pelog_pb2:{frequencies:[261.6255653006,277.50302994288,303.66981774726,353.69443592699,387.04559340587,410.5345162762,449.24533531117,523.2511306012],description:'"Primitive" Pelog, Kunst: Music in Java, p. 28'},pelog_schmidt:{frequencies:[261.6255653006,287.78812183066,313.95067836072,366.27579142084,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Modern Pelog designed by Dan Schmidt and used by Berkeley Gamelan"},pelog_selun:{frequencies:[261.6255653006,281.10829462369,350.68958753059,378.52209447746,416.55977244877,523.2511306012,562.21664032682,701.37917506118,757.04418895493,833.11970794305,1046.5022612024,1124.43328065364],description:"Gamelan selunding from Kengetan, South Bali (Pelog), 1/1=141 Hz"},pelog_slen:{frequencies:[261.6255653006,289.4545544734,306.66641795878,334.42210013281,344.22141564971,354.30787302884,386.37547528213,397.69714089209,446.39994737251,459.48046426806,493.88330125613,523.2511306012],description:"W.P. Malm, pelog+slendro, Musical Cultures Of The Pacific, The Near East, And Asia. P: 1,3,5,6,8,10; S: 2,4,7,9"},pelog_str:{frequencies:[261.6255653006,282.73796785026,305.22982618403,329.86096249197,356.10146388137,384.83778957396,415.4517078616,448.97742116962,484.69365917187,523.80699136456],description:"JI Pelog with stretched 2/1 and extra tones between 2-3, 6-7. Wolf, XH 11, '87"},pelogic:{frequencies:[261.6255653006,268.93425429917,294.59920226397,322.71340889889,353.51061198674,363.38617257172,398.06486099125,436.0530078362,477.66644151787,523.2511306012],description:"Pelogic temperament, g=521.1, 5-limit"},pelogic2:{frequencies:[261.6255653006,252.56770712848,285.96465797334,276.06414495892,312.56802260838,301.74646235804,341.64630500046,386.82209166041,373.42974737602,422.80824892286,408.17001145418,462.1422075194,523.2511306012],description:"Pelogic temperament, g=677.0 in cycle of fifths order"},penta1:{frequencies:[261.6255653006,282.55561052465,294.32876096318,313.95067836072,331.11985608357,372.50983809402,376.74081403286,397.34382730029,423.83341578697,441.49314144476,470.92601754108,496.67978412536,523.2511306012],description:"Pentagonal scale 9/8 3/2 16/15 4/3 5/3"},penta2:{frequencies:[261.6255653006,267.07609791103,286.15296204753,305.22982618403,312.97980223949,333.84512238879,356.10146388137,363.36884069528,400.61414686654,436.04260883433,457.84473927605,476.92160341255,523.2511306012],description:"Pentagonal scale 7/4 4/3 15/8 32/21 6/5"},penta_opt:{frequencies:[261.6255653006,292.5084949701,327.03692214239,391.62201198054,436.95817401562,523.2511306012],description:"Optimally consonant major pentatonic, John deLaubenfels, 2001"},pentadekany:{frequencies:[261.6255653006,283.42769574232,299.7792935736,305.22982618403,327.03195662575,354.2846196779,359.73515228832,381.53728273004,389.71308164569,419.69101100305,425.14154361347,436.04260883433,457.84473927605,479.64686971777,495.99846754905,523.2511306012],description:"2)6 1.3.5.7.11.13 Pentadekany (1.3 tonic)"},pentadekany2:{frequencies:[261.6255653006,269.80136421624,294.32876096318,299.7792935736,305.22982618403,327.03195662575,343.38355445704,359.73515228832,381.53728273004,392.4383479509,419.69101100305,436.04260883433,457.84473927605,479.64686971777,490.54793493862,523.2511306012],description:"2)6 1.3.5.7.9.11 Pentadekany (1.3 tonic)"},pentadekany3:{frequencies:[261.6255653006,277.97716313189,278.79474302345,287.78812183066,291.4672313427,300.86940009569,305.77487944508,319.67373760167,359.73515228832,376.08675011961,405.51962621593,413.69542513157,430.86460285443,444.76346101102,506.89953276991,523.2511306012],description:"2)6 1.5.11.17.23.31 Pentadekany (1.5 tonic)"},pentatetra1:{frequencies:[261.6255653006,275.39533189537,290.69507255622,327.03195662575,348.83408706747,392.4383479509,413.09299784305,436.04260883433,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra2:{frequencies:[261.6255653006,275.39533189537,307.79478270659,327.03195662575,348.83408706747,392.4383479509,413.09299784305,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatetra3:{frequencies:[261.6255653006,290.69507255622,307.79478270659,327.03195662575,348.83408706747,392.4383479509,436.04260883433,461.69217405988,490.54793493862,523.2511306012],description:"Penta-tetrachord 20/19 x 19/18 x 18/17 x 17/16 = 5/4. 5/4 x 16/15 = 4/3"},pentatriad:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,367.91095120397,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"4:5:6 Pentatriadic scale"},pentatriad1:{frequencies:[261.6255653006,290.69507255622,294.32876096318,327.03195662575,348.83408706747,387.59343007496,392.4383479509,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:"3:5:9 Pentatriadic scale"},pepper:{frequencies:[261.6255653006,274.70684356563,290.69507255622,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,367.91095120397,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Keenan Pepper's 17-tone jazz tuning, TL 07-06-2000"},pepper2:{frequencies:[261.6255653006,281.81099471089,295.05751399041,308.92668738628,332.76158224462,348.40303271111,375.28368107222,392.9238840789,423.23948674937,443.13385158124,463.96335069158,499.75992392917,523.2511306012],description:`Keenan Pepper's "Noble Fifth" with chromatic/diatonic semitone = Phi (12)`},peprmint:{frequencies:[261.6255653006,270.64528749638,281.81099405977,291.52662269553,295.0575145017,305.22982618403,308.92668738628,319.57714845986,332.76158147578,344.23376699744,348.40303331485,360.41446869983,375.28368085545,388.22184514393,392.92388339801,406.47020562703,423.23948723831,437.83096109824,443.13385158124,458.41119713782,463.9633498876,479.95880678291,499.75992479518,516.98949333115,523.2511306012],description:"Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6"},"perkis-indian":{frequencies:[261.6255653006,269.10058145205,277.01530443593,285.40970760065,294.32876096318,303.82323712328,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.01393146398,369.99442271164,377.90359432309,388.70083987518,400.13321751856,412.18367363396,425.14154361347,438.99882991118,453.48431318771,469.12170329763,485.27322596079,503.87145909745,523.2511306012],description:"Indian 22 Perkis"},"perrett-tt":{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,348.83408706747,366.27579142084,381.53728273004,392.4383479509,412.06026534844,418.60090448096,436.04260883433,457.84473927605,470.92601754108,490.54793493862,515.07533168556,523.2511306012],description:"Perrett Tierce-Tone"},perrett:{frequencies:[261.6255653006,274.70684356563,279.06726965397,348.83408706747,392.4383479509,412.06026534844,418.60090448096,523.2511306012],description:"Perrett / Tartini / Pachymeres Enharmonic"},perrett_14:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,327.03195662575,343.38355445704,348.83408706747,366.27579142084,392.4383479509,412.06026534844,436.04260883433,457.84473927605,490.54793493862,515.07533168556,523.2511306012],description:"Perrett's 14-tone system (subscale of tierce-tone)"},perrett_chrom:{frequencies:[261.6255653006,274.70684356563,294.32876096318,348.83408706747,392.4383479509,412.06026534844,441.49314144476,523.2511306012],description:"Perrett's Chromatic"},perry:{frequencies:[261.6255653006,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,490.54793493862,523.2511306012],description:"Robin Perry, Tuning List 22-9-'98"},perry2:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,415.27867508032,436.04260883433,457.84473927605,498.33441009638,523.2511306012],description:"Robin Perry, 7-limit scale, TL 22-10-2006"},perry3:{frequencies:[261.6255653006,277.97716313189,294.32876096318,307.79478270659,327.03195662575,348.83408706747,369.35373924791,370.63621750918,392.4383479509,418.60090448096,444.76346101102,465.11211608996,492.47165233054,523.2511306012],description:"Robin Perry, symmetrical 3,5,17 scale, TL 22-10-2006"},"persian-far":{frequencies:[261.6255653006,275.58617649731,282.84340331238,294.51413096332,310.22971009486,318.39923223688,331.53706992441,349.22823143301,362.58942698662,376.46181130035,391.99543598175,412.91271853531,423.78627283082,441.27260666252,464.81937009253,477.05982293263,496.7443381147,523.2511306012],description:"Hormoz Farhat, average of observed Persian tar and sehtar tunings (1966)"},"persian-vaz":{frequencies:[261.6255653006,277.18263097687,285.30470202322,293.66476791741,311.12698372208,320.24370022528,329.62755691287,349.22823143301,359.46139971304,380.8360868427,391.99543598175,415.30469757995,427.47405410759,440,466.16376151809,479.82340237272,493.88330125613,523.2511306012],description:"Vaziri's Persian tuning, using quartertones"},persian:{frequencies:[261.6255653006,275.62199471997,282.55561052465,294.32876096318,310.07474405997,317.87506184023,331.11985608357,348.83408706747,363.36884069528,376.74081403286,392.4383479509,413.43299207996,423.83341578697,441.49314144476,465.11211608996,476.81259276034,496.67978412536,523.2511306012],description:"Persian Tar Scale, from Dariush Anooshfar, Internet Tuning List 2/10/94"},persian2:{frequencies:[261.6255653006,275.62199471997,288.32205155576,294.32876096318,310.07474405997,321.08592105074,331.11985608357,348.83408706747,367.49599295996,384.42940207435,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,489.99465727995,512.57253609913,523.2511306012],description:"Traditional Persian scale, from Mark Rankin"},phi1_13:{frequencies:[261.6255653006,272.27874348295,293.41755524936,305.36527715608,329.07281683115,342.47239171077,356.41758627629,384.088434771,399.72820043646,416.00480451705,448.3020273708,466.55651779723,502.7784067407,523.2511306012],description:"Pythagorean scale with (Phi + 1) / 2 as fifth"},phi_10:{frequencies:[261.6255653006,277.06593756944,293.41755524936,323.38703872151,342.47239171077,362.68389667063,399.72820043646,423.31898451752,448.3020273708,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_12:{frequencies:[261.6255653006,280.653851324,301.06608340242,314.41721066027,337.28508524374,352.24238645938,377.86132347501,405.34355110824,423.31898451752,454.10739278061,474.24531572837,508.73764640933,531.29821178855],description:"Non-Octave Pythagorean scale with Phi as fourth. Jacky Ligon TL 12-04-2001"},phi_13:{frequencies:[261.6255653006,277.06593756944,293.41755524936,305.36527715608,323.38703872151,342.47239171077,362.68389667063,377.45230514615,399.72820043646,423.31898451752,448.3020273708,466.55651779723,494.09131284284,523.2511306012],description:"Pythagorean scale with Phi as fifth"},phi_13a:{frequencies:[261.6255653006,280.653851324,293.09977429907,314.41721066027,328.36040925687,352.24238645938,377.86132347501,394.61802538749,423.31898451752,442.09155952525,474.24531572837,508.73764640933,531.29821178855,569.94005600595],description:"Non-Octave Pythagorean scale with Phi as fifth, Jacky Ligon TL 12-04-2001"},phi_13b:{frequencies:[261.6255653006,277.56939878091,287.90530191745,305.45065986668,316.82478268872,336.13253486432,356.61692887617,369.89633953852,392.4383479509,407.05164722964,431.8579526603,458.17598957099,475.23717379553,504.19880204444],description:"Non-Octave Pythagorean scale with 12 3/2s, Jacky Ligon, TL 12-04-2001"},phi_17:{frequencies:[261.6255653006,276.86436108535,292.99059544936,310.05629713556,328.11582814217,347.22745468775,367.4522682176,388.8548834608,411.50435256812,435.47307590797,460.83762934409,487.67984759381,516.08523529366,546.14543793146,577.9565447239,611.62018657326,647.24497389216,684.94478342154],description:"Phi + 1 equal division by 17, Brouncker (1653)"},phi_7b:{frequencies:[261.6255653006,277.06593756944,299.7954575021,323.38703872151,342.47239171077,369.42210382256,399.72820043646,423.31898451752],description:"Heinz Bohlen's Pythagorean scale with Phi as fifth (1999)"},phi_7be:{frequencies:[261.6255653006,277.18263097687,299.37379946195,323.3415889232,342.56848033562,369.99442271164,399.61607881612,423.37848741825],description:"36-tET approximation of phi_7b"},phi_8:{frequencies:[261.6255653006,280.010356995,292.01318753119,312.53354015396,325.93049860793,348.83408706747,373.34714284662,389.35091690288,416.71138708025],description:"Non-Octave Pythagorean scale with 4/3s, Jacky Ligon, TL 12-04-2001"},phi_8a:{frequencies:[261.6255653006,275.77662731691,284.90271245142,300.31281179658,310.2506767011,327.03195662575,344.72084112096,356.12824371673,375.39107678967],description:"Non-Octave Pythagorean scale with 5/4s, Jacky Ligon, TL 12-04-2001"},phillips_19:{frequencies:[261.6255653006,274.63272075836,286.12988535196,293.66476791741,305.42895910556,326.59518553839,329.62755691287,342.83241505062,349.22823143301,366.5907009274,384.81637482457,391.99543598175,407.69874723177,428.71043212875,440,457.62637091093,489.33987776603,493.88330125613,513.66823365307,523.2511306012],description:"Pauline Phillips, organ manual scale, TL 7-10-2002"},phillips_19a:{frequencies:[261.6255653006,274.58143914872,285.65749968142,293.61100773131,305.45468261618,326.62388782443,329.50688232588,342.79852229325,349.26020182051,366.55580177366,381.34192228364,391.95955371998,407.7704102616,427.96347506501,439.87918162894,457.62301915088,489.33808574423,493.65730140218,509.07699553894,523.2511306012],description:"Adaptation by Gene Ward Smith with more consonant chords, TL 25-10-2002"},phillips_22:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,343.38355445704,349.22797321314,367.91095120397,392.4383479509,407.76797091773,408.78994578219,416.96574469783,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:"All-key 19-limit JI scale (2002), TL 21-10-2002"},phillips_ji:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.5744765615,306.59245933664,327.03195662575,331.11985608357,349.22797321314,367.91095120397,386.30649876417,392.4383479509,407.76797091773,408.78994578219,429.2294430713,441.49314144476,457.84473927605,459.88868900496,490.54793493862,496.67978412536,515.07533168556,523.2511306012],description:'Pauline Phillips, JI 0 #/b "C" scale (2002), TL 8-10-2002'},phryg_chromcon2:{frequencies:[261.6255653006,283.42769574232,294.32876096318,305.22982618403,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Harmonic Conjunct Chromatic Phrygian"},phryg_chromconi:{frequencies:[261.6255653006,283.42769574232,348.83408706747,370.63621750918,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Conjunct Chromatic Phrygian"},phryg_chrominv:{frequencies:[261.6255653006,272.52663052146,283.42769574232,348.83408706747,392.4383479509,414.24047839262,436.04260883433,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian"},phryg_chromt:{frequencies:[261.6255653006,277.01530443593,294.32876096318,313.95067836072,324.77656382143,336.37572681506,362.25078272391,392.4383479509,409.50088481833,418.60090448096,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,627.90135672144,649.55312764287,672.75145363011,724.50156544782,784.8766959018,819.00176963666,837.20180896192,856.22912280196,941.85203508216,1046.5022612024],description:"Phrygian Chromatic Tonos"},phryg_diat:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,392.4383479509,448.50096908674,483.00104363188,523.2511306012],description:"Schlesinger's Phrygian Harmonia, a subharmonic series through 13 from 24"},phryg_diatcon:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,369.35373924791,448.50096908674,483.00104363188,523.2511306012],description:"A Phrygian Diatonic with its own trite synemmenon replacing paramese"},phryg_diatinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Conjunct Phrygian Harmonia with 17, the local Trite Synemmenon"},phryg_diatsinv:{frequencies:[261.6255653006,283.42769574232,305.22982618403,348.83408706747,370.63621750918,392.4383479509,436.04260883433,479.64686971777,523.2511306012],description:"Inverted Schlesinger's Phrygian Harmonia, a harmonic series from 12 from 24"},phryg_enh:{frequencies:[261.6255653006,267.19206668997,273.00058987889,348.83408706747,392.4383479509,405.0976494977,418.60090448096,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the enharmonic genus"},phryg_enhcon:{frequencies:[261.6255653006,283.42769574232,288.87822835275,294.32876096318,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Harmonic Conjunct Enharmonic Phrygian"},phryg_enhinv:{frequencies:[261.6255653006,327.03195662575,337.93302184661,348.83408706747,392.4383479509,501.44900015948,512.35006538034,523.2511306012],description:"Inverted Schlesinger's Enharmonic Phrygian Harmonia"},phryg_enhinv2:{frequencies:[261.6255653006,267.07609791103,272.52663052146,348.83408706747,392.4383479509,403.33941317176,414.24047839262,523.2511306012],description:"Inverted harmonic form of Schlesinger's Enharmonic Phrygian"},phryg_penta:{frequencies:[261.6255653006,270.64713651786,285.40970760065,348.83408706747,392.4383479509,413.09299784305,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the pentachromatic genus"},phryg_pis:{frequencies:[261.6255653006,294.32876096318,336.37572681506,362.25078272391,392.4383479509,428.11456140098,470.92601754108,523.2511306012,554.03060887186,588.65752192635,672.75145363011,724.50156544782,784.8766959018,856.22912280196,941.85203508216,1046.5022612024],description:"The Diatonic Perfect Immutable System in the Phrygian Tonos"},phryg_tri1:{frequencies:[261.6255653006,273.00058987889,285.40970760065,348.83408706747,392.4383479509,418.60090448096,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the chromatic genus"},phryg_tri1inv:{frequencies:[261.6255653006,305.22982618403,327.03195662575,348.83408706747,392.4383479509,479.64686971777,501.44900015948,523.2511306012],description:"Inverted Schlesinger's Chromatic Phrygian Harmonia"},phryg_tri2:{frequencies:[261.6255653006,269.10058145205,285.40970760065,348.83408706747,392.4383479509,409.50088481833,448.50096908674,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the second trichromatic genus"},phryg_tri3:{frequencies:[261.6255653006,269.10058145205,277.01530443593,348.83408706747,392.4383479509,409.50088481833,428.11456140098,523.2511306012],description:"Schlesinger's Phrygian Harmonia in the first trichromatic genus"},phrygian:{frequencies:[261.6255653006,290.69507255622,313.95067836072,327.03195662575,348.83408706747,353.19451315581,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,523.2511306012],description:"Old Phrygian ??"},phrygian_diat:{frequencies:[261.6255653006,277.01530443593,294.32876096318,336.37572681506,348.83408706747,362.25078272391,376.74081403286,392.4383479509,428.11456140098,448.50096908674,470.92601754108,495.71159741166,523.2511306012,554.03060887186,588.65752192635,672.75145363011,697.66817413493,724.50156544782,753.48162806573,784.8766959018,856.22912280196,897.00193817349,941.85203508216,991.42319482333,1046.5022612024],description:"Phrygian Diatonic Tonos"},phrygian_enh:{frequencies:[261.6255653006,277.01530443593,294.32876096318,303.82323712328,308.80394592858,313.95067836072,348.83408706747,392.4383479509,400.78810003496,405.0976494977,409.50088481833,459.44001711325,523.2511306012],description:"Phrygian Enharmonic Tonos"},phrygian_harm:{frequencies:[261.6255653006,273.00058987889,285.40970760065,299.00064605783,313.95067836072,330.47439827444,348.83408706747,369.35373924791,392.4383479509,418.60090448096,448.50096908674,483.00104363188,523.2511306012],description:"Phrygian Harmonia-Aliquot 24 (flute tuning)"},piano:{frequencies:[261.6255653006,275.93321340298,279.06726965397,294.32876096318,305.22982618403,313.95067836072,327.03195662575,348.83408706747,367.91095120397,372.08969287196,392.4383479509,406.97310157871,418.60090448096,436.04260883433,441.49314144476,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"Enhanced Piano Total Gamut, see 1/1 vol. 8/2 January 1994"},piano7:{frequencies:[261.6255653006,275.93321340298,294.32876096318,305.22982618403,327.03195662575,348.83408706747,367.91095120397,392.4383479509,406.97310157871,441.49314144476,457.84473927605,490.54793493862,523.2511306012],description:"Enhanced piano 7-limit"},pipedum_10:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,348.83408706747,372.08969287196,396.89567239676,431.14564594215,459.88868900496,490.54793493862,523.2511306012],description:"2048/2025 and 34171875/33554432 are homophonic intervals"},pipedum_10a:{frequencies:[261.6255653006,279.06726965397,294.32876096318,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025 and 25/24, Manuel Op de Coul, 2001"},pipedum_10b:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,348.83408706747,367.91095120397,392.4383479509,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"225/224, 64/63 and 25/24 are homophonic intervals"},pipedum_10c:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,373.75080757229,392.4383479509,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 49/48 are homophonic intervals"},pipedum_10d:{frequencies:[261.6255653006,279.06726965397,299.00064605783,318.93402246168,343.38355445704,372.08969287196,392.4383479509,425.24536328225,448.50096908674,488.36772189445,523.2511306012],description:"1029/1024, 2048/2025 and 64/63 are homophonic intervals"},pipedum_10e:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,367.91095120397,406.97310157871,429.2294430713,465.11211608996,490.54793493862,523.2511306012],description:"2048/2025, 64/63 and 49/48 are homophonic intervals"},pipedum_10f:{frequencies:[261.6255653006,280.31310567921,294.32876096318,327.03195662575,348.83408706747,373.75080757229,392.4383479509,420.46965851882,465.11211608996,490.54793493862,523.2511306012],description:"225/224, 64/63 and 28/27 are homophonic intervals"},pipedum_10g:{frequencies:[261.6255653006,280.31310567921,299.00064605783,325.57848126297,348.83408706747,372.08969287196,398.6675280771,425.24536328225,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 2048/2025 are homophonic intervals"},pipedum_10h:{frequencies:[261.6255653006,286.15296204753,305.22982618403,327.03195662575,348.83408706747,373.75080757229,400.61414686654,429.2294430713,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 1029/1024 and 64/63 are homophonic intervals"},pipedum_10i:{frequencies:[261.6255653006,279.06726965397,294.32876096318,321.92208230347,343.38355445704,367.91095120397,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"225/224, 2048/2025 and 49/48 are homophonic intervals"},pipedum_10j:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,348.83408706747,366.27579142084,392.4383479509,418.60090448096,457.84473927605,488.36772189445,523.2511306012],description:"25/24, 28/27 and 49/48, Gene Ward Smith, 2002"},pipedum_10k:{frequencies:[261.6255653006,280.31310567921,299.00064605783,320.49131749323,343.38355445704,367.91095120397,394.1903048614,420.46965851882,455.80987376816,488.36772189445,523.2511306012],description:"2048/2025, 225/224 and 2401/2400"},pipedum_11:{frequencies:[261.6255653006,272.52663052146,282.55561052465,313.95067836072,327.03195662575,363.36884069528,376.74081403286,392.4383479509,436.04260883433,454.2110508691,470.92601754108,523.2511306012],description:"16/15 and 15625/15552 are homophonic intervals"},pipedum_11a:{frequencies:[261.6255653006,269.10058145205,305.22982618403,313.95067836072,322.92069774245,366.27579142084,376.74081403286,381.53728273004,436.04260883433,448.50096908674,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 10/9, Gene Ward Smith, 2002"},pipedum_12:{frequencies:[261.6255653006,275.93321340298,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12a:{frequencies:[261.6255653006,279.06726965397,297.67175429757,306.59245933664,327.03195662575,348.83408706747,372.08969287196,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"81/80 and 2048/2025 are homophonic intervals"},pipedum_12b:{frequencies:[261.6255653006,274.70684356563,299.00064605783,313.95067836072,320.49131749323,348.83408706747,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,488.36772189445,523.2511306012],description:"64/63, 50/49 comma and 36/35 chroma"},pipedum_12c:{frequencies:[261.6255653006,280.31310567921,294.32876096318,315.35224388912,327.03195662575,348.83408706747,367.91095120397,392.4383479509,420.46965851882,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"225/224, 64/63 and 36/35 are homophonic intervals"},pipedum_12d:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,418.60090448096,448.50096908674,457.84473927605,490.54793493862,523.2511306012],description:"50/49, 128/125 and 225/224 are homophonic intervals"},pipedum_12e:{frequencies:[261.6255653006,280.31310567921,293.02063313667,313.95067836072,327.03195662575,350.39138209902,373.75080757229,392.4383479509,418.60090448096,439.53094970501,467.18850946536,500.55911728431,523.2511306012],description:"50/49, 225/224 and 3136/3125 are homophonic intervals"},pipedum_12f:{frequencies:[261.6255653006,273.74326726486,293.02063313667,313.95067836072,327.03195662575,350.39138209902,366.27579142084,392.4383479509,408.78994578219,437.98922762377,468.83301301868,490.54793493862,523.2511306012],description:"128/125, 3136/3125 and 703125/702464 are homophonic intervals"},pipedum_12g:{frequencies:[261.6255653006,279.06726965397,286.15296204753,306.59245933664,327.03195662575,348.83408706747,366.27579142084,390.69417751556,408.78994578219,437.98922762377,457.84473927605,488.36772189445,523.2511306012],description:"50/49, 225/224 and 28672/28125 are homophonic intervals"},pipedum_12h:{frequencies:[261.6255653006,275.93321340298,291.02331101095,310.42486507835,330.74639366397,348.83408706747,367.91095120397,392.4383479509,413.89982010446,436.53496651643,465.11211608996,496.11959049595,523.2511306012],description:"2048/2025 and 67108864/66430125, Gene Ward Smith, 2004"},pipedum_12i:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,378.42269266694,392.4383479509,406.97310157871,441.49314144476,465.11211608996,504.56359022259,523.2511306012],description:"64/63 and 6561/6272, Gene Ward Smith, 2004"},pipedum_12j:{frequencies:[261.6255653006,283.8170195002,285.83021674664,310.07474405997,336.37572681506,348.83408706747,378.42269266694,392.4383479509,413.43299207996,448.50096908674,465.11211608996,504.56359022259,523.2511306012],description:"6561/6272 and 59049/57344"},pipedum_12k:{frequencies:[261.6255653006,271.31540105247,294.32876096318,305.22982618403,336.37572681506,348.83408706747,356.10146388137,392.4383479509,406.97310157871,448.50096908674,457.84473927605,474.80195184183,523.2511306012],description:"64/63 and 729/686, Gene Ward Smith, 2004"},pipedum_12l:{frequencies:[261.6255653006,276.16031892841,294.32876096318,310.68035879446,331.39238271409,348.83408706747,368.21375857121,392.4383479509,414.24047839262,441.49314144476,465.11211608996,497.08857407114,523.2511306012],description:"81/80, 361/360 and 513/512, Gene Ward Smith"},pipedum_13:{frequencies:[261.6255653006,276.76092858245,287.78812183066,309.14739649778,327.03195662575,345.95116072807,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051 are homophonic intervals. Op de Coul, 2001"},pipedum_13a:{frequencies:[261.6255653006,266.96486255163,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"15/14, 3136/3125, 2401/2400, Gene Ward Smith, 2002"},pipedum_13b:{frequencies:[261.6255653006,267.90457886781,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,510.98743222773,523.2511306012],description:"15/14, 3136/3125, 6144/6125, Gene Ward Smith, 2002"},pipedum_13bp:{frequencies:[261.6255653006,282.55561052465,305.16005936662,336.45263027341,363.36884069528,392.4383479509,436.04260883433,470.92601754108,508.60009894437,545.05326104292,605.61473449213,654.0639132515,706.38902631162,784.8766959018],description:"78732/78125 and 250/243, twelfth based, Manuel Op de Coul, 2003"},pipedum_13bp2:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,376.74081403286,392.4383479509,436.04260883433,470.92601754108,523.2511306012,565.1112210493,627.90135672144,678.13346525916,726.73768139056,784.8766959018],description:"250/243 and 648/625, twelfth based, Manuel Op de Coul, 2003"},pipedum_13c:{frequencies:[261.6255653006,267.07609791103,293.02063313667,299.00064605783,327.03195662575,334.88072358477,366.27579142084,373.75080757229,408.78994578219,418.60090448096,457.84473927605,467.18850946536,512.57253609913,523.2511306012],description:"15/14, 2401/2400, 6144/6125, Gene Ward Smith, 2002"},pipedum_13d:{frequencies:[261.6255653006,281.04308772525,287.78812183066,309.14739649778,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"125/121 and 33275/32768, Joe Monzo, 2003"},pipedum_13e:{frequencies:[261.6255653006,276.76092858245,287.78812183066,304.4370214407,327.03195662575,334.88072358477,359.73515228832,380.54627680087,408.78994578219,418.60090448096,449.66894036041,475.68284600109,494.63583439645,523.2511306012],description:"33275/32768 and 163840/161051, Manuel Op de Coul, 2004"},pipedum_14:{frequencies:[261.6255653006,274.70684356563,284.76252005507,305.22982618403,320.49131749323,336.37572681506,348.83408706747,373.90653707544,392.4383479509,406.97310157871,427.14378008261,448.50096908674,480.73697623985,498.33441009638,523.2511306012],description:"81/80, 49/48 and 2401/2400, Paul Erlich, TL 17-1-2001"},pipedum_14a:{frequencies:[261.6255653006,274.70684356563,284.8811711051,305.22982618403,320.35783506196,336.37572681506,348.83408706747,366.27579142084,392.4383479509,406.97310157871,427.32175665765,448.50096908674,480.53675259294,498.33441009638,523.2511306012],description:"81/80, 50/49 and 2401/2400, Paul Erlich, 2001"},pipedum_14b:{frequencies:[261.6255653006,274.70684356563,294.32876096318,305.22982618403,313.95067836072,339.14425131559,353.19451315581,366.27579142084,392.4383479509,406.97310157871,418.60090448096,457.84473927605,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 81/80 comma and 25/24 chroma"},pipedum_14c:{frequencies:[261.6255653006,280.31310567921,282.55561052465,305.22982618403,327.03195662575,336.37572681506,363.36884069528,366.27579142084,392.4383479509,403.65087217807,436.04260883433,467.18850946536,470.92601754108,508.71637697339,523.2511306012],description:"245/243, 50/49 comma and 25/24 chroma"},pipedum_15:{frequencies:[261.6255653006,272.52663052146,290.69507255622,301.39265122629,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,454.2110508691,470.92601754108,502.32108537715,523.2511306012],description:"126/125, 128/125 and 875/864, 5-limit, Paul Erlich, 2001"},pipedum_15a:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,381.53728273004,392.4383479509,418.60090448096,436.04260883433,457.84473927605,488.36772189445,502.32108537715,523.2511306012],description:"Septimal version of pipedum_15, Manuel Op de Coul, 2001"},pipedum_15b:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,311.45900631024,327.03195662575,343.38355445704,357.69120255941,382.72082695402,398.6675280771,418.60090448096,439.53094970501,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"126/125, 128/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15c:{frequencies:[261.6255653006,274.70684356563,284.76252005507,299.00064605783,313.95067836072,327.03195662575,341.71502406609,358.80077526939,381.53728273004,400.61414686654,418.60090448096,436.04260883433,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"49/48, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15d:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,360.55273217989,379.68336007343,398.6675280771,418.60090448096,436.04260883433,457.84473927605,478.40103369253,498.33441009638,523.2511306012],description:"64/63, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_15e:{frequencies:[261.6255653006,273.37201925287,286.15296204753,299.00064605783,313.95067836072,332.22294006425,343.38355445704,358.80077526939,381.53728273004,398.6675280771,412.06026534844,436.04260883433,457.84473927605,478.40103369253,500.76768358318,523.2511306012],description:"64/63, 875/864 and 1029/1024, Paul Erlich, 2001"},pipedum_15f:{frequencies:[261.6255653006,274.70684356563,290.69507255622,305.22982618403,313.95067836072,327.03195662575,348.83408706747,366.27579142084,387.59343007496,392.4383479509,418.60090448096,436.04260883433,465.11211608996,488.36772189445,490.54793493862,523.2511306012],description:"126/125, 64/63 comma and 28/27 chroma"},pipedum_15g:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,348.83408706747,363.36884069528,376.74081403286,392.4383479509,418.60090448096,436.04260883433,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"128/125 and 250/243"},pipedum_16:{frequencies:[261.6255653006,274.70684356563,286.15296204753,299.00064605783,313.95067836072,327.03195662575,343.38355445704,355.95315006884,373.75080757229,384.58958099188,400.61414686654,418.60090448096,439.53094970501,457.84473927605,480.73697623985,498.33441009638,523.2511306012],description:"50/49, 126/125 and 1029/1024, Paul Erlich, 2001"},pipedum_16a:{frequencies:[261.6255653006,272.52663052146,283.88190679319,301.39265122629,313.95067836072,327.03195662575,340.65828815182,354.85238349148,363.36884069528,385.78259356965,401.85686830172,418.60090448096,436.04260883433,454.2110508691,482.22824196207,502.32108537715,523.2511306012],description:"3125/3072 and 1990656/1953125, OdC 2004"},pipedum_17:{frequencies:[261.6255653006,269.10058145205,286.15296204753,294.32876096318,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,465.11211608996,478.40103369253,508.71637697339,523.2511306012],description:"245/243, 64/63 and 525/512, Paul Erlich, 2001"},pipedum_17a:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,305.22982618403,318.93402246168,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,429.2294430713,448.50096908674,461.31528248922,478.40103369253,504.56359022259,523.2511306012],description:"245/243, 525/512 and 1728/1715, Paul Erlich, 2001"},pipedum_17b:{frequencies:[261.6255653006,264.89588486686,286.15296204753,294.32876096318,305.22982618403,327.03195662575,339.14425131559,343.38355445704,367.91095120397,381.53728273004,392.4383479509,406.97310157871,436.04260883433,441.49314144476,457.84473927605,490.54793493862,508.71637697339,523.2511306012],description:"245/243, 64/63 comma and 25/24 chroma"},pipedum_17c:{frequencies:[261.6255653006,273.6806973752,285.83021674664,299.00064605783,310.07474405997,321.55899383997,336.37572681506,348.83408706747,364.90759650026,378.42269266694,392.4383479509,413.43299207996,428.74532511996,448.50096908674,465.11211608996,486.54346200035,504.56359022259,523.2511306012],description:"1605632/1594323 and 177147/175616, Manuel Op de Coul, 2002"},pipedum_17d:{frequencies:[261.6255653006,274.08392555301,284.23518205497,299.00064605783,308.34441624714,319.76457981184,336.37572681506,348.83408706747,365.44523407068,373.05867644715,392.4383479509,411.12588832951,426.35277308246,448.50096908674,465.11211608996,479.64686971777,504.56359022259,523.2511306012],description:"243/242, 99/98 and 64/63, Manuel Op de Coul, 2002"},pipedum_17e:{frequencies:[261.6255653006,271.31540105247,286.15296204753,296.75121990114,310.07474405997,321.92208230347,336.37572681506,348.83408706747,362.16234259141,378.42269266694,395.66829320152,413.43299207996,429.2294430713,445.12682985172,465.11211608996,482.88312345521,504.56359022259,523.2511306012],description:"245/243, 1728/1715 and 32805/32768, Manuel Op de Coul, 2003"},pipedum_17f:{frequencies:[261.6255653006,269.80136421624,285.40970760065,294.32876096318,310.07474405997,319.76457981184,331.11985608357,348.83408706747,359.73515228832,380.54627680087,392.4383479509,413.43299207996,428.11456140098,441.49314144476,465.11211608996,479.64686971777,507.3950357345,523.2511306012],description:"243/242 and 8192/8019, Manuel Op de Coul"},pipedum_17g:{frequencies:[261.6255653006,274.08392555301,285.40970760065,299.00064605783,305.22982618403,319.76457981184,336.37572681506,348.83408706747,359.73515228832,380.54627680087,392.4383479509,406.97310157871,428.11456140098,448.50096908674,457.84473927605,479.64686971777,499.46698830115,523.2511306012],description:"243/242, 896/891 and 99/98, Manuel Op de Coul"},pipedum_18:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,340.65828815182,350.39138209902,379.84156147346,390.69417751556,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 128/125, Paul Erlich, 2001"},pipedum_18a:{frequencies:[261.6255653006,269.10058145205,280.31310567921,293.02063313667,305.22982618403,313.95067836072,327.03195662575,341.85740532612,356.10146388137,366.27579142084,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"875/864, 686/675 and 50/49, Paul Erlich, 2001"},pipedum_18b:{frequencies:[261.6255653006,272.52663052146,280.31310567921,296.75121990114,305.22982618403,317.94773560837,327.03195662575,346.20975655133,356.10146388137,373.75080757229,384.42940207435,400.44729382745,418.60090448096,436.04260883433,448.50096908674,467.18850946536,488.36772189445,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 686/675, Paul Erlich, 2001"},pipedum_19:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,301.39265122629,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,401.85686830172,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"81/80 and 15625/15552 are homophonic intervals, inverse of Mandelbaum"},pipedum_19a:{frequencies:[261.6255653006,271.25338610366,282.55561052465,294.32876096318,301.39265122629,313.95067836072,327.03195662575,339.06673262958,353.19451315581,361.67118147155,376.74081403286,392.4383479509,408.78994578219,416.64520105522,434.00541776586,452.08897683944,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"3125/3072 and 15625/15552 are homophonic intervals"},pipedum_19b:{frequencies:[261.6255653006,272.52663052146,282.55561052465,290.69507255622,302.80736724606,313.95067836072,327.03195662575,339.06673262958,348.83408706747,363.36884069528,376.74081403286,392.4383479509,403.74315632809,418.60090448096,436.04260883433,452.08897683944,470.92601754108,484.4917875937,502.32108537715,523.2511306012],description:"15625/15552 and 78732/78125, Paul Erlich, TL 19-2-2001"},pipedum_19c:{frequencies:[261.6255653006,269.10058145205,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19d:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,504.56359022259,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19e:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19f:{frequencies:[261.6255653006,269.10058145205,279.06726965397,287.04062021552,305.22982618403,315.35224388912,327.03195662575,336.37572681506,348.83408706747,358.80077526939,381.53728273004,392.4383479509,406.97310157871,418.60090448096,434.10464168396,448.50096908674,476.92160341255,490.54793493862,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19g:{frequencies:[261.6255653006,269.10058145205,280.31310567921,288.32205155576,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,360.4025644447,379.84156147346,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,474.80195184183,488.36772189445,508.71637697339,523.2511306012],description:"Periodicity block by Paul Erlich, 2001"},pipedum_19h:{frequencies:[261.6255653006,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,343.38355445704,353.19451315581,366.27579142084,381.53728273004,392.4383479509,412.06026534844,415.27867508032,436.04260883433,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:"126/125, 81/80 comma and 49/48 chroma"},pipedum_19i:{frequencies:[261.6255653006,275.93321340298,286.15296204753,294.32876096318,305.22982618403,321.92208230347,327.03195662575,343.38355445704,348.83408706747,367.91095120397,381.53728273004,392.4383479509,406.97310157871,429.2294430713,436.04260883433,457.84473927605,465.11211608996,490.54793493862,515.07533168556,523.2511306012],description:"225/224, 81/80 comma and 49/48 chroma"},pipedum_19j:{frequencies:[261.6255653006,266.96486255163,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.70607818954,358.95027559242,366.27579142084,373.75080757229,381.37837507376,410.22888639134,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.78610798918,523.2511306012],description:"21/20, 3136/3125 and 2401/2400, Gene Ward Smith, 2002"},pipedum_19k:{frequencies:[261.6255653006,267.90457886781,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,334.88072358477,357.69120255941,366.27579142084,373.75080757229,382.72082695402,408.78994578219,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,510.98743222773,523.2511306012],description:"21/20, 3136/3125 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19l:{frequencies:[261.6255653006,267.07609791103,286.15296204753,293.02063313667,299.00064605783,320.49131749323,327.03195662575,333.84512238879,358.80077526939,366.27579142084,373.75080757229,381.53728273004,410.05802887931,418.60090448096,427.14378008261,457.84473927605,467.18850946536,478.40103369253,512.57253609913,523.2511306012],description:"21/20, 2401/2400 and 6144/6125, Gene Ward Smith, 2002"},pipedum_19m:{frequencies:[261.6255653006,269.10058145205,293.02063313667,299.00064605783,305.22982618403,313.95067836072,317.94773560837,348.83408706747,358.80077526939,366.27579142084,373.75080757229,406.97310157871,418.60090448096,430.56093032327,436.04260883433,448.50096908674,488.36772189445,502.32108537715,508.71637697339,523.2511306012],description:"126/125, 1728/1715 and 16/15, Gene Ward Smith, 2002"},pipedum_19n:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,366.27579142084,373.75080757229,381.53728273004,392.4383479509,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,512.78610798918,523.2511306012],description:"126/125, 2401/2400 and 16/15, Gene Ward Smith, 2002"},pipedum_19o:{frequencies:[261.6255653006,272.52663052146,280.31310567921,290.69507255622,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,363.36884069528,376.74081403286,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,470.92601754108,488.36772189445,502.32108537715,523.2511306012],description:"225/224, 3136/3125 and 4375/4374, OdC 2000"},pipedum_21:{frequencies:[261.6255653006,267.07609791103,280.31310567921,284.8811711051,299.00064605783,305.22982618403,320.35783506196,327.03195662575,341.85740532612,348.83408706747,366.27579142084,373.75080757229,392.4383479509,400.44729382745,418.60090448096,427.32175665765,448.50096908674,457.84473927605,480.53675259294,488.36772189445,512.57253609913,523.2511306012],description:"36/35, 225/224 and 2401/2400, P. Erlich, 2001. Just PB version of miracle1"},pipedum_21a:{frequencies:[261.6255653006,265.7783520514,286.15296204753,290.69507255622,299.00064605783,305.22982618403,327.03195662575,332.22294006425,343.38355445704,348.83408706747,373.75080757229,381.53728273004,392.4383479509,398.6675280771,429.2294430713,436.04260883433,448.50096908674,457.84473927605,490.54793493862,498.33441009638,515.07533168556,523.2511306012],description:"1029/1024, 81/80 comma and 25/24 chroma"},pipedum_21b:{frequencies:[261.6255653006,267.07609791103,279.06726965397,284.8811711051,299.00064605783,305.22982618403,318.93402246168,325.57848126297,343.38355445704,348.83408706747,366.27579142084,372.08969287196,392.4383479509,398.6675280771,418.60090448096,427.32175665765,448.50096908674,457.84473927605,478.40103369253,488.36772189445,496.11959049595,523.2511306012],description:"36/35, 225/224 and 1029/1024, Gene Ward Smith, 2002"},pipedum_21c:{frequencies:[261.6255653006,269.46602871384,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,344.91651675372,348.83408706747,367.91095120397,372.08969287196,392.4383479509,396.89567239676,418.60090448096,431.14564594215,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"First 128/125 and ampersand comma Fokker block"},pipedum_22:{frequencies:[261.6255653006,267.90457886781,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,327.03195662575,334.88072358477,348.83408706747,357.20610515709,365.77905168086,383.2405741708,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,510.98743222773,523.2511306012],description:"3125/3072 and 2109375/2097152 are homophonic intervals"},pipedum_22a:{frequencies:[261.6255653006,267.90457886781,279.06726965397,287.4304306281,297.67175429757,306.59245933664,317.51653791741,327.03195662575,334.88072358477,348.83408706747,357.20610515709,372.08969287196,381.01984550089,392.4383479509,408.78994578219,418.60090448096,436.04260883433,446.50763144636,459.88868900496,476.27480687611,490.54793493862,508.02646066786,523.2511306012],description:"2048/2025 and 2109375/2097152 are homophonic intervals"},pipedum_22b:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,339.14425131559,348.83408706747,357.69120255941,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,441.49314144476,457.84473927605,470.92601754108,490.54793493862,508.71637697339,523.2511306012],description:'2025/2048, 245/243 and 64/63. P. Erlich "7-limit Indian", TL 19-12-2000'},pipedum_22b2:{frequencies:[261.6255653006,271.31540105247,279.06726965397,286.15296204753,294.32876096318,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,367.91095120397,381.53728273004,392.4383479509,406.97310157871,418.60090448096,429.2294430713,448.50096908674,465.11211608996,478.40103369253,490.54793493862,504.56359022259,523.2511306012],description:"Version of pipedum_22b with other shape, Paul Erlich"},pipedum_22c:{frequencies:[261.6255653006,267.07609791103,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,512.57253609913,523.2511306012],description:"1728/1715, 64/63 and 50/49, Paul Erlich, 2001"},pipedum_22d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 875/864 and 64/63, Paul Erlich, 2001"},pipedum_22e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,290.69507255622,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,384.42940207435,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,470.92601754108,498.33441009638,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 50/49, Paul Erlich, 2001"},pipedum_22f:{frequencies:[261.6255653006,269.10058145205,276.78916949353,290.69507255622,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,470.92601754108,494.58536650191,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 875/864, Paul Erlich, 2001"},pipedum_22g:{frequencies:[261.6255653006,267.07609791103,279.06726965397,286.15296204753,299.00064605783,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,457.84473927605,478.40103369253,490.54793493862,512.57253609913,523.2511306012],description:"225/224, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_22h:{frequencies:[261.6255653006,269.10058145205,280.31310567921,287.04062021552,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,476.92160341255,488.36772189445,508.71637697339,523.2511306012],description:"225/224, 1728/1715 and 875/864, Paul Erlich, 2001"},pipedum_22i:{frequencies:[261.6255653006,269.10058145205,279.06726965397,288.32205155576,296.75121990114,305.22982618403,313.95067836072,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,406.97310157871,418.60090448096,436.04260883433,448.50096908674,461.31528248922,474.80195184183,490.54793493862,508.71637697339,523.2511306012],description:"1728/1715, 245/243 and 245/243, Paul Erlich, 2001"},pipedum_22j:{frequencies:[261.6255653006,271.31540105247,280.31310567921,290.69507255622,299.00064605783,305.22982618403,320.35783506196,332.22294006425,336.37572681506,348.83408706747,353.19451315581,373.75080757229,387.59343007496,392.4383479509,406.97310157871,427.14378008261,436.04260883433,448.50096908674,465.11211608996,480.53675259294,498.33441009638,504.56359022259,523.2511306012],description:"50/49, 64/63 and 245/243, Gene Ward Smith, 2002"},pipedum_22k:{frequencies:[261.6255653006,272.52663052146,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,334.88072358477,348.83408706747,359.73515228832,367.91095120397,380.54627680087,392.4383479509,408.78994578219,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,502.32108537715,523.2511306012],description:"121/120, 2048/2025 and 4125/4096, Manuel Op de Coul"},pipedum_22l:{frequencies:[261.6255653006,275.62199471997,284.23518205497,290.69507255622,303.18419419197,310.07474405997,319.76457981184,330.74639366397,341.08221846597,348.83408706747,363.82103303037,372.08969287196,387.59343007496,404.24559225596,413.43299207996,426.35277308246,440.99519155196,454.77629128796,465.11211608996,485.09471070715,496.11959049595,511.62332769895,523.2511306012],description:"121/120, 736/729, 100/99 and 2048/2025"},pipedum_23:{frequencies:[261.6255653006,271.25338610366,276.85245005354,287.04062021552,297.60371503945,302.80736724606,313.95067836072,325.50406332439,332.22294006425,344.44874425862,348.83408706747,363.36884069528,376.74081403286,384.51729174103,398.6675280771,413.33849311034,420.56578784176,436.04260883433,452.08897683944,461.42075008924,478.40103369253,496.00619173241,504.67894541011,523.2511306012],description:"6144/6125, 15625/1552 and 5103/5000, Manuel Op de Coul, 2003"},pipedum_24:{frequencies:[261.6255653006,267.57160087561,275.93321340298,285.40970760065,290.69507255622,299.7792935736,310.07474405997,319.76457981184,327.03195662575,338.26335715633,348.83408706747,356.76213450082,367.91095120397,380.54627680087,392.4383479509,401.35740131342,413.43299207996,426.35277308246,436.04260883433,449.66894036041,465.11211608996,479.64686971777,490.54793493862,507.3950357345,523.2511306012],description:"121/120, 16384/16335 and 32805/32768. Manuel Op de Coul, 2001"},pipedum_24a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,313.95067836072,321.92208230347,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,412.06026534844,418.60090448096,429.2294430713,436.04260883433,457.84473927605,470.92601754108,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"49/48, 81/80 and 128/125, Gene Ward Smith, 2002"},pipedum_24b:{frequencies:[261.6255653006,271.31540105247,275.62199471997,289.72987407313,294.32876096318,305.22982618403,310.07474405997,325.94610833227,331.11985608357,343.38355445704,348.83408706747,361.75386806997,372.50983809402,386.30649876417,392.4383479509,406.97310157871,413.43299207996,434.59481110969,441.49314144476,457.84473927605,465.11211608996,482.33849075995,496.67978412536,515.07533168556,523.2511306012],description:"49/48, 81/80 and 531441/524288"},pipedum_25:{frequencies:[261.6255653006,268.26840191956,274.70684356563,281.29980781121,291.99281841585,299.00064605783,306.17666156322,313.95067836072,327.03195662575,335.33550239945,343.38355445704,351.62475976401,364.99102301981,373.75080757229,382.72082695402,392.4383479509,408.78994578219,418.60090448096,429.2294430713,439.53094970501,447.89271634391,467.18850946536,478.40103369253,490.54793493862,502.32108537715,523.2511306012],description:"65625/65536, 1029/1024 and 3125/3072, Manuel Op de Coul, 2003"},pipedum_26:{frequencies:[261.6255653006,267.07609791103,274.70684356563,286.15296204753,292.89859205665,299.00064605783,305.22982618403,313.95067836072,327.03195662575,333.84512238879,341.71502406609,348.83408706747,358.80077526939,366.27579142084,381.53728273004,392.4383479509,400.61414686654,410.05802887931,418.60090448096,436.04260883433,448.50096908674,457.84473927605,467.3831713443,478.40103369253,498.33441009638,512.57253609913,523.2511306012],description:"1029/1024, 1728/1715 and 50/49, Paul Erlich, 2001"},pipedum_26a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,294.32876096318,305.22982618403,306.59245933664,321.92208230347,325.57848126297,327.03195662575,343.38355445704,348.83408706747,366.27579142084,367.91095120397,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,457.84473927605,459.88868900496,465.11211608996,488.36772189445,490.54793493862,515.07533168556,523.2511306012],description:"50/49, 81/80 and 525/512, Gene Ward Smith, 2002"},pipedum_26b:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,290.69507255622,301.39265122629,306.59245933664,313.95067836072,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,376.74081403286,392.4383479509,401.85686830172,408.78994578219,418.60090448096,436.04260883433,446.50763144636,454.2110508691,470.92601754108,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"81/80 and 78125/73728, Gene Ward Smith, 2005"},pipedum_27:{frequencies:[261.6255653006,271.20240005245,278.95104005395,284.76252005507,292.89859205665,299.00064605783,307.54352165948,316.40280006119,325.44288006294,332.22294006425,341.71502406609,351.47831046798,358.80077526939,369.05222599138,379.68336007343,390.53145607553,398.6675280771,410.05802887931,418.60090448096,430.56093032327,442.86267118965,455.62003208812,468.63774729064,478.40103369253,492.06963465517,502.32108537715,516.67311638793,523.2511306012],description:"126/125, 1728/1715 and 4000/3969 are homophonic intervals, Paul Erlich"},pipedum_27a:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,508.71637697339,523.2511306012],description:"126/126, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27b:{frequencies:[261.6255653006,266.96486255163,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,333.70607818954,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.22888639134,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 128/125, Paul Erlich, 2001"},pipedum_27c:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 686/675, Paul Erlich, 2001"},pipedum_27d:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"2401/2400, 126/125 and 64/63, Paul Erlich, 2001"},pipedum_27e:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.55561052465,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.35783506196,329.64821227876,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.27867508032,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.4917875937,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 126/125 and 245/243, Paul Erlich, 2001"},pipedum_27f:{frequencies:[261.6255653006,267.07609791103,272.52663052146,280.31310567921,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,333.84512238879,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,410.05802887931,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,467.18850946536,488.36772189445,502.32108537715,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 128/125, Paul Erlich, 2001"},pipedum_27g:{frequencies:[261.6255653006,267.07609791103,274.59243005311,280.31310567921,290.81619550312,299.00064605783,305.22982618403,313.95067836072,320.35783506196,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.32175665765,436.04260883433,448.50096908674,457.84473927605,470.72988009104,488.36772189445,498.54204943392,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 686/675, Paul Erlich, 2001"},pipedum_27h:{frequencies:[261.6255653006,267.07609791103,274.70684356563,280.31310567921,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,418.60090448096,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,488.36772189445,498.33441009638,512.57253609913,523.2511306012],description:"2401/2400, 1728/1715 and 64/63, Paul Erlich, 2001"},pipedum_27i:{frequencies:[261.6255653006,269.10058145205,274.70684356563,282.43792805463,290.69507255622,299.00064605783,305.22982618403,313.95067836072,320.49131749323,329.51091606373,336.37572681506,348.83408706747,356.10146388137,366.27579142084,373.75080757229,384.42940207435,392.4383479509,406.97310157871,415.4517078616,427.14378008261,436.04260883433,448.50096908674,457.84473927605,470.92601754108,484.69365917187,498.33441009638,508.71637697339,523.2511306012],description:"2401/2400, 1728/1715 and 245/243, Paul Erlich, 2001"},pipedum_27j:{frequencies:[261.6255653006,269.16210421872,276.91574508099,282.55561052465,290.69507255622,299.06900468747,305.16005936662,313.95067836072,322.99452506247,329.57286411595,339.06673262958,348.83408706747,358.88280562497,366.19207123994,376.74081403286,387.59343007496,395.48743693914,406.88007915549,418.60090448096,423.83341578697,436.04260883433,448.60350703121,461.52624180165,470.92601754108,484.4917875937,498.44834114579,508.60009894437,523.2511306012],description:"78732/78125 and 390625000/387420489"},pipedum_27k:{frequencies:[261.6255653006,264.89588486686,275.62199471997,279.38237857051,290.69507255622,294.32876096318,298.00787047521,310.07474405997,313.95067836072,331.11985608357,344.52749339997,348.83408706747,353.19451315581,367.49599295996,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,418.60090448096,441.49314144476,447.01180571282,459.36999119996,465.11211608996,470.92601754108,496.67978412536,516.79124009995,523.2511306012],description:"67108864/66430125 and 25/24"},pipedum_28:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,285.76488412567,299.40669857094,306.59245933664,313.95067836072,319.36714514233,327.03195662575,334.88072358477,340.65828815182,348.83408706747,357.20610515709,363.36884069528,383.2405741708,392.4383479509,401.85686830172,408.78994578219,418.60090448096,428.6473261885,436.04260883433,446.50763144636,457.22381460107,479.0507177135,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"393216/390625 and 16875/16384"},pipedum_29:{frequencies:[261.6255653006,266.96486255163,274.70684356563,280.31310567921,288.44218574391,294.32876096318,300.33547037059,310.07474405997,316.40280006119,325.57848126297,332.22294006425,341.85740532612,348.83408706747,355.95315006884,366.27579142084,373.75080757229,384.58958099188,392.4383479509,400.44729382745,412.06026534844,420.46965851882,434.10464168396,442.96392008567,455.80987376816,465.11211608996,474.60420009179,488.36772189445,498.33441009638,512.78610798918,523.2511306012],description:"5120/5103, 225/224 and 50421/50000, Manuel Op de Coul, 2003"},pipedum_29a:{frequencies:[261.6255653006,272.52663052146,274.70684356563,286.15296204753,290.69507255622,294.32876096318,305.22982618403,313.95067836072,317.94773560837,327.03195662575,339.14425131559,343.38355445704,348.83408706747,363.36884069528,366.27579142084,372.60080508745,381.53728273004,392.4383479509,408.78994578219,412.06026534844,429.2294430713,436.04260883433,441.49314144476,457.84473927605,470.92601754108,476.92160341255,490.54793493862,508.71637697339,515.07533168556,523.2511306012],description:"49/48, 55/54, 65/64, 91/90 and 100/99"},pipedum_31:{frequencies:[261.6255653006,271.62175694356,275.93321340298,281.68182201554,289.72987407313,294.32876096318,300.46061014991,310.42486507835,316.89204976748,321.92208230347,331.11985608357,338.01818641865,343.38355445704,356.50355598842,362.16234259141,367.91095120397,380.27045972098,386.30649876417,392.4383479509,407.43263541533,413.89982010446,422.52273302331,434.59481110969,441.49314144476,450.69091522486,465.63729761752,475.33807465122,482.88312345521,496.67978412536,507.02727962797,515.07533168556,523.2511306012],description:"81/80, 225/224 and 1029/1024 are homophonic intervals"},pipedum_31a:{frequencies:[261.6255653006,269.46602871384,275.93321340298,282.55561052465,287.4304306281,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,329.20114651277,336.83253589231,344.91651675372,353.19451315581,359.28803828513,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,411.50143314096,421.04066986538,431.14564594215,441.49314144476,452.08897683944,459.88868900496,470.92601754108,482.22824196207,490.54793493862,502.32108537715,514.3767914262,523.2511306012],description:"393216/390625 and 2109375/2097152 are homophonic intervals"},pipedum_31b:{frequencies:[261.6255653006,267.07609791103,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,327.03195662575,333.84512238879,339.14425131559,343.38355445704,348.83408706747,356.10146388137,373.75080757229,381.53728273004,387.59343007496,392.4383479509,400.61414686654,406.97310157871,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"245/243, 1029/1024 comma and 25/24 chroma"},pipedum_31c:{frequencies:[261.6255653006,265.7783520514,274.70684356563,279.06726965397,286.15296204753,293.02063313667,299.00064605783,305.22982618403,313.95067836072,320.49131749323,327.03195662575,334.88072358477,343.38355445704,348.83408706747,360.55273217989,366.27579142084,373.75080757229,384.58958099188,392.4383479509,398.6675280771,412.06026534844,418.60090448096,429.2294430713,439.53094970501,448.50096908674,457.84473927605,470.92601754108,480.73697623985,490.54793493862,502.32108537715,515.07533168556,523.2511306012],description:"126/125, 225/224 and 1029/1024, Op de Coul"},pipedum_31d:{frequencies:[261.6255653006,269.10058145205,274.70684356563,280.31310567921,286.15296204753,294.32876096318,299.00064605783,305.22982618403,313.95067836072,316.53463456122,327.03195662575,336.37572681506,343.38355445704,348.83408706747,358.80077526939,366.27579142084,373.75080757229,381.53728273004,392.4383479509,403.65087217807,406.97310157871,418.60090448096,429.2294430713,436.04260883433,448.50096908674,457.84473927605,470.92601754108,478.40103369253,490.54793493862,504.56359022259,508.71637697339,523.2511306012],description:"1728/1715, 225/224 and 81/80"},pipedum_31e:{frequencies:[261.6255653006,267.07609791103,272.52663052146,276.85245005354,286.15296204753,290.69507255622,299.00064605783,305.22982618403,311.45900631024,317.94773560837,327.03195662575,332.22294006425,343.38355445704,348.83408706747,357.69120255941,363.36884069528,373.75080757229,381.53728273004,392.4383479509,398.6675280771,408.78994578219,415.27867508032,429.2294430713,436.04260883433,448.50096908674,457.84473927605,467.18850946536,476.92160341255,490.54793493862,498.33441009638,508.71637697339,523.2511306012],description:'81/80, 126/125 and 1029/1024, Gene Smith (2005) "Synstargam"'},pipedum_32:{frequencies:[261.6255653006,267.07609791103,270.30192333353,280.31310567921,286.15296204753,292.11448209019,299.00064605783,305.22982618403,311.5887808962,315.35224388912,325.57848126297,333.84512238879,337.87740416691,348.83408706747,356.10146388137,360.4025644447,367.91095120397,379.84156147346,384.42940207435,394.1903048614,406.97310157871,415.4517078616,420.46965851882,429.2294430713,443.14848838571,448.50096908674,457.84473927605,474.80195184183,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"225/224, 2048/2025 and 117649/116640"},pipedum_32a:{frequencies:[261.6255653006,268.26840191956,274.59243005311,280.31310567921,286.15296204753,292.89859205665,299.00064605783,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,341.71502406609,348.83408706747,356.10146388137,364.4960256705,372.08969287196,381.53728273004,390.53145607553,398.6675280771,406.97310157871,416.56688648057,425.24536328225,434.10464168396,438.17172313528,450.50320555588,459.88868900496,469.46970335923,480.53675259294,490.54793493862,500.76768358318,512.57253609913,523.2511306012],description:"589824/588245, 225/224 and 2048/2025"},pipedum_34:{frequencies:[261.6255653006,267.90457886781,272.52663052146,279.06726965397,283.88190679319,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,321.48549464138,327.03195662575,334.88072358477,340.65828815182,348.83408706747,354.85238349148,363.36884069528,367.91095120397,376.74081403286,385.78259356965,392.4383479509,401.85686830172,408.78994578219,418.60090448096,425.82286018978,436.04260883433,446.50763144636,454.2110508691,465.11211608996,470.92601754108,482.22824196207,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 393216/390625 are homophonic intervals"},pipedum_34a:{frequencies:[261.6255653006,264.89588486686,272.52663052146,279.06726965397,282.55561052465,290.69507255622,294.32876096318,301.39265122629,306.59245933664,313.95067836072,317.87506184023,327.03195662575,334.88072358477,340.65828815182,348.83408706747,353.19451315581,363.36884069528,367.91095120397,376.74081403286,387.59343007496,392.4383479509,401.85686830172,408.78994578219,418.60090448096,423.83341578697,436.04260883433,441.49314144476,452.08897683944,465.11211608996,470.92601754108,484.4917875937,490.54793493862,502.32108537715,510.98743222773,523.2511306012],description:"15625/15552 and 2048/2025, Manuel Op de Coul, 2001"},pipedum_34b:{frequencies:[261.6255653006,267.57160087561,272.52663052146,279.06726965397,285.40970760065,290.69507255622,294.32876096318,299.7792935736,310.07474405997,313.95067836072,319.76457981184,327.03195662575,334.88072358477,342.49164912079,348.83408706747,356.76213450082,359.73515228832,367.91095120397,380.54627680087,383.71749577421,392.4383479509,399.70572476481,408.78994578219,418.60090448096,428.11456140098,436.04260883433,441.49314144476,449.66894036041,465.11211608996,470.92601754108,479.64686971777,490.54793493862,502.32108537715,511.62332769895,523.2511306012],description:"100/99, 243/242 and 5632/5625, Manuel Op de Coul"},pipedum_36:{frequencies:[261.6255653006,267.07609791103,269.10058145205,280.31310567921,286.15296204753,290.69507255622,294.32876096318,300.46061014991,305.22982618403,311.5887808962,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,400.61414686654,406.97310157871,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,467.3831713443,480.53675259294,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"1029/1024, 245/243 comma and 50/49 chroma, Gene Ward Smith, 2001"},pipedum_36a:{frequencies:[261.6255653006,264.89588486686,275.62199471997,275.93321340298,279.06726965397,290.69507255622,293.99679436797,294.32876096318,310.07474405997,310.42486507835,313.95067836072,327.03195662575,330.74639366397,331.11985608357,348.83408706747,349.22797321314,353.19451315581,367.91095120397,372.08969287196,372.50983809402,387.59343007496,392.4383479509,397.34382730029,413.43299207996,413.89982010446,418.60090448096,436.04260883433,440.99519155196,441.49314144476,465.11211608996,465.63729761752,470.92601754108,490.54793493862,496.11959049595,496.67978412536,516.79124009995,523.2511306012],description:"1125/1024 and 531441/524288, Op de Coul"},pipedum_37:{frequencies:[261.6255653006,263.718569823,276.85245005354,279.06726965397,280.31310567921,290.69507255622,293.02063313667,299.00064605783,308.98710943476,311.45900631024,313.95067836072,325.57848126297,332.22294006425,333.70607818954,346.06556256693,348.83408706747,351.62475976401,353.19451315581,370.78453132171,373.75080757229,376.74081403286,390.69417751556,392.4383479509,400.44729382745,415.27867508032,418.60090448096,421.94971171681,436.04260883433,444.94143758605,448.50096908674,465.11211608996,467.18850946536,470.92601754108,494.37937509562,498.33441009638,502.32108537715,519.0983438504,523.2511306012],description:"250/243, 3136/3125 and 3125/3087, Gene Ward Smith, 2002"},pipedum_38:{frequencies:[261.6255653006,271.25338610366,272.52663052146,280.3771918945,282.55561052465,290.69507255622,292.95365699196,301.39265122629,302.80736724606,313.95067836072,315.42434088132,325.50406332439,327.03195662575,336.45263027341,339.06673262958,348.83408706747,350.47148986813,361.67118147155,363.36884069528,376.74081403286,378.50920905758,390.60487598927,392.4383479509,403.74315632809,406.88007915549,418.60090448096,420.56578784176,434.00541776586,436.04260883433,452.08897683944,454.2110508691,467.29531982417,470.92601754108,484.4917875937,488.25609498659,502.32108537715,504.67894541011,519.21702202686,523.2511306012],description:"81/80 and 1224440064/1220703125, Manuel Op de Coul, 2001"},pipedum_38a:{frequencies:[261.6255653006,268.26840191956,272.52663052146,274.70684356563,279.06726965397,286.15296204753,293.02063313667,294.32876096318,305.22982618403,306.59245933664,313.95067836072,321.92208230347,327.03195662575,329.64821227876,340.65828815182,343.38355445704,348.83408706747,357.69120255941,366.27579142084,367.91095120397,381.53728273004,383.2405741708,390.69417751556,392.4383479509,408.78994578219,412.06026534844,418.60090448096,429.2294430713,436.04260883433,439.53094970501,457.84473927605,459.88868900496,470.92601754108,476.92160341255,488.36772189445,490.54793493862,510.98743222773,515.07533168556,523.2511306012],description:"50/49, 81/80 and 3125/3072, Gene Ward Smith, 2002"},pipedum_41:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,303.67253115248,308.34441624714,313.95067836072,320.49131749323,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,354.2846196779,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.40708707973,392.4383479509,400.61414686654,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"100/99 105/104 196/195 275/273 385/384, Paul Erlich, TL 3-11-2000"},pipedum_41a:{frequencies:[261.6255653006,265.71346475842,269.80136421624,274.70684356563,280.31310567921,285.40970760065,290.69507255622,294.32876096318,299.00064605783,305.22982618403,309.19384990071,313.95067836072,319.76457981184,327.03195662575,332.97799220076,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,380.54627680087,387.59343007496,392.4383479509,400.61414686654,406.97310157871,411.12588832951,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,485.87604984397,495.99846754905,503.62921320365,513.90736041189,523.2511306012],description:"pipedum_41 improved shape by Manuel Op de Coul, all intervals superparticular"},pipedum_41b:{frequencies:[261.6255653006,265.7783520514,271.31540105247,274.70684356563,279.06726965397,284.8811711051,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,313.95067836072,319.76457981184,327.03195662575,331.11985608357,336.37572681506,343.38355445704,348.83408706747,353.19451315581,359.73515228832,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,425.14154361347,436.04260883433,441.49314144476,448.50096908674,457.84473927605,465.11211608996,470.92601754108,479.64686971777,490.54793493862,498.33441009638,504.56359022259,515.07533168556,523.2511306012],description:"pipedum_41 more improved shape by M. OdC, all intervals superparticular"},pipedum_41c:{frequencies:[261.6255653006,267.07609791103,271.31540105247,275.93321340298,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,310.07474405997,315.35224388912,320.35783506196,327.03195662575,333.84512238879,336.37572681506,343.38355445704,348.83408706747,356.10146388137,360.4025644447,367.91095120397,373.75080757229,381.53728273004,384.42940207435,392.4383479509,398.6675280771,406.97310157871,410.05802887931,420.46965851882,429.2294430713,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,474.80195184183,480.53675259294,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"225/224, 245/243 and 1029/1024, Gene Ward Smith, 2002"},pipedum_41d:{frequencies:[261.6255653006,264.89588486686,272.52663052146,275.93321340298,279.06726965397,282.55561052465,290.69507255622,294.32876096318,297.67175429757,306.59245933664,310.07474405997,313.95067836072,317.51653791741,327.03195662575,331.11985608357,334.88072358477,344.91651675372,348.83408706747,353.19451315581,363.36884069528,367.91095120397,372.08969287196,376.74081403286,387.59343007496,392.4383479509,396.89567239676,408.78994578219,413.89982010446,418.60090448096,423.83341578697,436.04260883433,441.49314144476,446.50763144636,459.88868900496,465.11211608996,470.92601754108,484.4917875937,490.54793493862,496.11959049595,502.32108537715,517.37477513058,523.2511306012],description:"3125/3072 and 32805/32768"},pipedum_43:{frequencies:[261.6255653006,269.10058145205,273.37201925287,274.70684356563,282.55561052465,286.15296204753,287.04062021552,290.69507255622,299.00064605783,305.22982618403,307.54352165948,313.95067836072,322.92069774245,327.03195662575,328.04642310345,332.22294006425,341.71502406609,343.38355445704,348.83408706747,358.80077526939,366.27579142084,369.05222599138,376.74081403286,379.68336007343,381.53728273004,392.4383479509,398.6675280771,410.05802887931,412.06026534844,418.60090448096,423.93031414449,430.56093032327,436.04260883433,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,492.06963465517,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 12288/12005, Gene Ward Smith, 2002"},pipedum_45:{frequencies:[261.6255653006,265.7783520514,267.07609791103,274.70684356563,279.06726965397,280.31310567921,284.8811711051,293.02063313667,294.32876096318,299.00064605783,303.74668805875,305.22982618403,313.95067836072,320.49131749323,325.57848126297,327.03195662575,336.37572681506,341.85740532612,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,372.08969287196,373.75080757229,384.58958099188,392.4383479509,398.6675280771,400.61414686654,406.97310157871,418.60090448096,420.46965851882,427.32175665765,436.04260883433,439.53094970501,448.50096908674,455.80987376816,457.84473927605,465.11211608996,478.40103369253,480.73697623985,488.36772189445,498.33441009638,512.78610798918,515.07533168556,523.2511306012],description:"81/80, 525/512 and 2401/2400, Gene Ward Smith, 2002"},scala205pipedum_45a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,276.85245005354,282.55561052465,288.32205155576,290.69507255622,296.75121990114,299.00064605783,305.22982618403,311.45900631024,313.95067836072,320.49131749323,322.99452506247,329.64821227876,336.37572681506,339.14425131559,345.98646186692,348.83408706747,356.10146388137,363.28578496026,366.27579142084,373.75080757229,376.82694590621,384.42940207435,392.4383479509,395.66829320152,403.65087217807,406.97310157871,415.27867508032,423.83341578697,427.14378008261,436.04260883433,439.53094970501,448.50096908674,457.84473927605,461.31528248922,470.92601754108,474.80195184183,484.4917875937,494.47231841813,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 2401/2400 and 4375/4374, Gene Ward Smith"},pipedum_46:{frequencies:[261.6255653006,265.7783520514,270.41454913492,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,295.30928005711,300.46061014991,305.22982618403,310.07474405997,313.95067836072,320.49131749323,325.57848126297,327.03195662575,332.22294006425,339.14425131559,343.38355445704,348.83408706747,354.37113606854,360.55273217989,366.27579142084,372.08969287196,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.32175665765,429.2294430713,436.04260883433,442.96392008567,450.69091522486,457.84473927605,465.11211608996,470.92601754108,480.73697623985,488.36772189445,490.54793493862,498.33441009638,508.71637697339,515.07533168556,523.2511306012],description:"126/125, 1029/1024 and 5120/5103. Manuel Op de Coul, 2001"},pipedum_46a:{frequencies:[261.6255653006,267.07609791103,269.10058145205,274.70684356563,279.06726965397,280.31310567921,286.15296204753,290.69507255622,294.32876096318,299.00064605783,305.22982618403,307.54352165948,313.95067836072,320.35783506196,320.49131749323,327.03195662575,332.22294006425,336.37572681506,343.38355445704,348.83408706747,353.19451315581,358.80077526939,366.12324007081,366.27579142084,373.75080757229,381.53728273004,387.59343007496,392.4383479509,398.6675280771,406.97310157871,412.06026534844,418.60090448096,427.14378008261,427.32175665765,436.04260883433,445.12682985172,448.50096908674,457.84473927605,465.11211608996,470.92601754108,478.40103369253,488.36772189445,490.54793493862,498.33441009638,508.71637697339,512.57253609913,523.2511306012],description:"126/125, 1029/1024 and 245/243, Gene Ward Smith, 2002"},pipedum_46b:{frequencies:[261.6255653006,264.89588486686,271.25338610366,272.52663052146,279.06726965397,282.55561052465,283.88190679319,290.69507255622,294.32876096318,301.39265122629,302.80736724606,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,334.88072358477,339.06673262958,340.65828815182,348.83408706747,353.19451315581,361.67118147155,363.36884069528,372.08969287196,376.74081403286,381.45007420827,387.59343007496,392.4383479509,401.85686830172,403.74315632809,408.78994578219,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,452.08897683944,454.2110508691,465.11211608996,470.92601754108,482.22824196207,484.4917875937,490.54793493862,502.32108537715,508.60009894437,516.79124009995,523.2511306012],description:"2048/2025 and 78732/78125"},pipedum_46c:{frequencies:[261.6255653006,266.47048317654,271.31540105247,274.08392555301,279.06726965397,282.62020942966,287.78812183066,290.69507255622,297.67175429757,299.7792935736,306.97399661937,310.07474405997,313.95067836072,319.76457981184,325.57848126297,328.90071066361,332.22294006425,339.14425131559,342.60490694126,348.83408706747,355.29397756872,359.73515228832,363.36884069528,372.08969287196,374.72411696701,383.71749577421,387.59343007496,394.68085279633,399.70572476481,406.97310157871,411.12588832951,418.60090448096,426.35277308246,431.68218274599,436.04260883433,446.50763144636,449.66894036041,460.46099492906,465.11211608996,467.18850946536,479.64686971777,484.4917875937,496.11959049595,499.63215595601,511.62332769895,516.79124009995,523.2511306012],description:"126/125, 176/175, 385/384 and 896/891, Paul Erlich"},pipedum_46d:{frequencies:[261.6255653006,267.23182741418,272.79915715198,274.70684356563,278.36648688978,283.42769574232,287.78812183066,291.52562990638,297.59908052943,299.7792935736,303.67253115248,311.77046531655,313.95067836072,320.67819289702,324.7609013714,327.03195662575,334.03978426773,340.11323489078,343.04051394309,345.34574619679,354.2846196779,359.73515228832,366.27579142084,374.12455837986,376.74081403286,381.53728273004,389.71308164569,392.4383479509,402.90337056292,408.13588186894,411.12588832951,419.69101100305,425.14154361347,431.68218274599,439.53094970501,445.38637902364,448.50096908674,457.84473927605,467.65569797482,470.92601754108,479.64686971777,485.87604984397,490.54793493862,503.62921320365,510.16985233617,519.61744219425,523.2511306012],description:"91/90, 121/120, 126/125, 169/168 and 176/175"},pipedum_5:{frequencies:[261.6255653006,313.95067836072,348.83408706747,392.4383479509,436.04260883433,523.2511306012],description:"16/15 and 27/25"},pipedum_50:{frequencies:[261.6255653006,267.07609791103,269.10058145205,273.37201925287,274.70684356563,276.85245005354,284.76252005507,286.15296204753,290.69507255622,299.00064605783,300.46061014991,305.22982618403,307.54352165948,313.95067836072,316.40280006119,320.49131749323,327.03195662575,332.22294006425,333.84512238879,341.71502406609,343.38355445704,348.83408706747,358.80077526939,360.55273217989,361.60320006994,366.27579142084,373.75080757229,379.68336007343,381.53728273004,392.4383479509,398.6675280771,400.61414686654,410.05802887931,412.06026534844,418.60090448096,423.93031414449,427.14378008261,436.04260883433,445.12682985172,448.50096908674,455.62003208812,457.84473927605,470.92601754108,478.40103369253,480.73697623985,484.4917875937,498.33441009638,500.76768358318,508.71637697339,512.57253609913,523.2511306012],description:"81/80, 126/125 and 16807/16384, Gene Ward Smith, 2002"},pipedum_53:{frequencies:[261.6255653006,264.89588486686,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,287.4304306281,290.69507255622,294.32876096318,298.00787047521,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,322.99452506247,327.03195662575,331.11985608357,334.88072358477,340.65828815182,344.91651675372,348.83408706747,353.19451315581,357.20610515709,363.36884069528,367.91095120397,372.08969287196,376.74081403286,383.2405741708,387.59343007496,392.4383479509,397.34382730029,403.74315632809,408.78994578219,413.89982010446,418.60090448096,423.83341578697,430.65936674996,436.04260883433,441.49314144476,446.50763144636,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,484.4917875937,490.54793493862,496.67978412536,502.32108537715,510.98743222773,516.79124009995,523.2511306012],description:"15625/15552 and 32805/32768, Manuel Op de Coul, 2001"},pipedum_53a:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,276.85245005354,280.31310567921,282.55561052465,288.32205155576,290.69507255622,294.32876096318,299.00064605783,302.80736724606,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.99452506247,327.03195662575,332.22294006425,336.37572681506,339.14425131559,346.06556256693,348.83408706747,353.19451315581,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,387.59343007496,392.4383479509,398.6675280771,403.65087217807,406.97310157871,415.27867508032,418.60090448096,423.83341578697,430.56093032327,436.04260883433,441.49314144476,448.50096908674,454.2110508691,457.84473927605,467.18850946536,470.92601754108,480.53675259294,484.4917875937,490.54793493862,498.33441009638,504.56359022259,508.71637697339,519.0983438504,523.2511306012],description:"225/224, 1728/1715 and 4375/4374, Manuel Op de Coul, 2001"},pipedum_53b:{frequencies:[261.6255653006,266.96486255163,269.10058145205,272.52663052146,274.70684356563,280.31310567921,286.03378130532,288.32205155576,290.69507255622,293.02063313667,299.00064605783,301.39265122629,305.22982618403,311.45900631024,313.95067836072,320.35783506196,322.92069774245,327.03195662575,333.70607818954,336.37572681506,341.85740532612,343.24053756638,348.83408706747,351.62475976401,358.80077526939,363.36884069528,366.27579142084,373.75080757229,376.74081403286,384.42940207435,389.3237578878,392.4383479509,400.44729382745,403.65087217807,406.97310157871,410.22888639134,418.60090448096,427.14378008261,430.56093032327,436.04260883433,439.53094970501,448.50096908674,457.65405008851,457.84473927605,467.18850946536,470.92601754108,478.60036745656,480.53675259294,488.36772189445,498.33441009638,502.32108537715,512.57253609913,512.78610798918,523.2511306012],description:"225/224, 1728/1715 and 3125/3087, Gene Ward Smith, 2002"},pipedum_55:{frequencies:[261.6255653006,267.07609791103,269.10058145205,272.52663052146,274.70684356563,279.06726965397,280.31310567921,286.15296204753,293.02063313667,294.32876096318,296.75121990114,299.00064605783,305.22982618403,306.59245933664,313.95067836072,317.94773560837,320.49131749323,325.57848126297,327.03195662575,333.84512238879,336.37572681506,340.65828815182,343.38355445704,348.83408706747,356.10146388137,358.80077526939,366.27579142084,367.91095120397,373.75080757229,376.74081403286,381.53728273004,390.69417751556,392.4383479509,400.61414686654,403.65087217807,406.97310157871,408.78994578219,418.60090448096,427.32175665765,429.2294430713,436.04260883433,439.53094970501,445.12682985172,448.50096908674,457.84473927605,459.88868900496,470.92601754108,474.80195184183,476.92160341255,488.36772189445,490.54793493862,502.32108537715,504.56359022259,508.71637697339,520.92557002075,523.2511306012],description:"81/80, 686/675 and 6144/6125, Gene Ward Smith, 2002"},pipedum_58:{frequencies:[261.6255653006,264.29521392612,268.60224704195,271.31540105247,275.62199471997,277.50997462242,280.31310567921,284.8811711051,287.78812183066,292.35618725654,295.30928005711,297.33211566688,302.17752792219,305.22982618403,310.07474405997,313.23877206058,315.35224388912,320.49131749323,323.76163705949,328.90071066361,332.22294006425,337.63694353197,339.94971891247,343.38355445704,348.83408706747,352.39361856816,358.13632938927,361.75386806997,364.23184169193,370.01329949656,373.75080757229,379.84156147346,383.71749577421,389.80824967539,392.4383479509,396.44282088917,402.90337056292,406.97310157871,413.43299207996,417.65169608078,420.46965851882,427.32175665765,431.68218274599,438.53428088482,442.96392008567,445.99817350032,453.26629188329,457.84473927605,465.11211608996,469.85815809087,477.51510585235,480.73697623985,485.64245558924,493.35106599542,498.33441009638,506.45541529795,511.62332769895,515.07533168556,523.2511306012],description:"9801/9800, 2401/2400, 5120/5103 and 896/891"},pipedum_58a:{frequencies:[261.6255653006,265.65057399753,267.66008354786,270.48058443385,272.52663052146,277.4816601673,281.75060878526,285.40970760065,287.78812183066,293.02063313667,295.1673044417,297.30177875068,301.87565226992,305.22982618403,309.92566966379,313.95067836072,316.2506833304,322.00069575458,323.72860352852,327.03195662575,332.97799220076,338.10073054231,342.60490694126,344.24801655217,348.83408706747,352.18826098158,358.59168390851,362.25078272391,366.27579142084,368.95913055213,375.66747838035,379.50081999647,381.53728273004,388.47432423422,392.4383479509,399.57359064092,402.50086969323,406.97310157871,411.12588832951,418.60090448096,422.62591317789,428.25613367658,430.31002069022,436.04260883433,442.75095666255,450.80097405642,455.40098399577,457.84473927605,466.16918908107,469.58434797544,475.68284600109,483.00104363188,488.36772189445,495.88107146206,499.46698830115,503.12608711654,512.27383415502,516.54278277298,523.2511306012],description:"126/125, 144/143, 176/175, 196/195 and 364/363"},pipedum_5a:{frequencies:[261.6255653006,290.69507255622,348.83408706747,392.4383479509,470.92601754108,523.2511306012],description:"27/25 and 81/80"},pipedum_64:{frequencies:[261.6255653006,267.90457886781,266.96486255163,273.37201925287,274.70684356563,273.74326726486,280.31310567921,280.42990280658,284.76252005507,286.15296204753,294.32876096318,300.05312833195,299.00064605783,300.46061014991,307.67166479351,306.59245933664,313.95067836072,312.84944830269,320.35783506196,320.49131749323,328.18310911307,327.03195662575,336.37572681506,336.5158833679,341.71502406609,343.38355445704,351.62475976401,348.83408706747,358.80077526939,358.95027559242,366.12324007081,366.27579142084,375.06641041494,373.75080757229,382.72082695402,384.58958099188,383.2405741708,392.4383479509,392.60186392921,398.6675280771,400.61414686654,412.06026534844,408.78994578219,418.60090448096,428.6473261885,427.14378008261,429.2294430713,439.53094970501,437.98922762377,448.50096908674,448.68784449053,455.62003208812,457.84473927605,468.83301301868,467.18850946536,478.40103369253,480.73697623985,488.16432009441,490.54793493862,502.32108537715,500.55911728431,512.57253609913,512.78610798918,520.70860810071,523.2511306012],description:"225/224 235298/234375 and 67108864/66706983"},pipedum_65:{frequencies:[261.6255653006,264.59711493117,267.38234771992,270.72462706642,273.0589090967,275.93321340298,279.06726965397,282.00481986086,285.20783756792,287.99181818792,291.26283636981,294.32876096318,297.67175429757,300.80514118491,303.39878788522,306.84479880935,310.42486507835,313.95067836072,317.25542234346,320.85881726391,323.62537374423,327.30111872997,331.11985608357,334.60532825287,338.40578383303,341.32363637087,345.20039866051,348.83408706747,352.79615324157,356.9123501364,360.9661694219,364.07854546226,367.91095120397,372.08969287196,376.00642648114,380.70650681216,383.98909091723,388.35044849308,392.4383479509,396.89567239676,401.07352157989,404.53171718029,409.58836364504,413.89982010446,418.60090448096,423.00722979129,427.81175635188,431.50049832564,436.89425455471,441.49314144476,446.50763144636,451.20771177737,455.09818182783,460.26719821402,465.11211608996,470.92601754108,475.8831335152,481.28822589586,485.43806061635,490.95167809495,496.11959049595,501.90799237931,507.60867574954,511.9854545563,517.80059799077,523.2511306012],description:"1216/1215, 32805/32768 and 39858075/39845888. Manuel Op de Coul, 2001"},pipedum_65a:{frequencies:[261.6255653006,264.89588486686,267.90457886781,269.16210421872,272.52663052146,275.93321340298,279.06726965397,282.55561052465,286.08755565621,287.10624449997,290.69507255622,294.32876096318,298.00787047521,301.39265122629,302.80736724606,306.59245933664,310.07474405997,313.95067836072,317.87506184023,319.0069383333,322.99452506247,327.03195662575,331.11985608357,334.88072358477,339.06673262958,340.65828815182,344.52749339997,348.83408706747,353.19451315581,357.60944457026,358.88280562497,363.36884069528,367.91095120397,372.08969287196,376.74081403286,381.45007420827,383.2405741708,387.59343007496,392.4383479509,397.34382730029,401.85686830172,403.74315632809,408.78994578219,413.43299207996,418.60090448096,423.83341578697,429.13133348431,430.65936674996,436.04260883433,441.49314144476,446.50763144636,452.08897683944,454.2110508691,459.88868900496,465.11211608996,470.92601754108,476.81259276034,478.51040749995,484.4917875937,490.54793493862,496.67978412536,502.32108537715,508.60009894437,510.98743222773,516.79124009995,523.2511306012],description:"78732/78125 and 32805/32768"},pipedum_67:{frequencies:[261.6255653006,262.79353657426,266.96486255163,267.07609791103,272.52663052146,274.70684356563,279.06726965397,280.31310567921,284.8811711051,286.15296204753,293.02063313667,294.32876096318,299.00064605783,299.12522966035,300.33547037059,305.22982618403,306.59245933664,311.45900631024,313.95067836072,320.35783506196,320.49131749323,325.57848126297,327.03195662575,332.22294006425,336.5158833679,339.00300006557,341.85740532612,343.38355445704,348.83408706747,350.39138209902,355.95315006884,360.55273217989,366.27579142084,367.91095120397,373.75080757229,373.90653707544,381.53728273004,384.58958099188,390.69417751556,392.4383479509,398.83363954714,400.44729382745,400.61414686654,406.97310157871,408.78994578219,418.60090448096,420.46965851882,427.32175665765,429.2294430713,436.04260883433,439.53094970501,448.50096908674,448.68784449053,455.80987376816,457.84473927605,459.88868900496,465.11211608996,467.18850946536,474.60420009179,480.73697623985,488.36772189445,490.54793493862,498.33441009638,504.77382505185,512.78610798918,515.07533168556,520.92557002075,523.2511306012],description:"81/80, 1029/1024 and 9604/9375, Gene Ward Smith, 2002"},pipedum_68:{frequencies:[246.94165062806,250.86135936819,252.08626834948,253.99712636029,258.02882677871,259.28873315946,263.4044273366,264.58033995864,268.89201957278,272.13977824317,273.16014686758,276.57464870343,277.80935695657,282.21902928921,286.81815421096,288.0985923994,291.6998248044,292.67158592955,296.32998075367,301.03363124183,302.50352201937,307.30516522603,308.67706328508,311.01688942076,316.08531280392,317.49640795036,322.53603347338,324.11091644933,329.25553417075,333.37122834788,334.48181249092,338.66283514705,340.17472280396,345.71831087928,351.20590311546,352.77378661151,357.18345894416,358.5226927637,362.85303765756,368.76619827124,370.41247594209,376.29203905228,378.12940252422,384.13145653254,387.04324016806,388.93309973919,395.1066410049,396.87050993795,403.33802935916,409.74022030137,411.56941771343,414.86197305514,416.71403543485,423.32854393382,430.22723131644,432.1478885991,439.00737889433,441.15096961159,444.49497113051,451.55044686274,453.56629707195,460.95774783905,468.27453748728,470.36504881535,474.12796920588,476.24461192554,483.80405021008,491.68826436165,493.88330125612],description:"245/243, 2048/2025 and 2401/2400, Gene Ward Smith, 2002"},pipedum_7:{frequencies:[261.6255653006,290.69507255622,317.94773560837,347.75533582165,392.4383479509,429.2294430713,476.92160341255,523.2511306012],description:"81/80, 64/63 and 6144/6125, Manuel Op de Coul"},pipedum_72:{frequencies:[195.99771799087,198.44768946576,200.08100378235,201.59765279061,204.16428957382,205.79760389041,208.41771227328,209.06423252359,211.67753543014,214.37250405251,216.08748408493,217.77524221208,220.49743273973,222.31222642483,223.99739198957,226.79735938944,228.66400432268,231.52230437672,232.29359169288,235.19726158904,238.19167116946,240.09720453882,241.91718334873,244.99714748859,246.9571246685,250.10125472793,251.99706598826,254.07111591409,257.24700486302,258.04499557198,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,277.89028303104,279.99673998696,282.23671390685,285.83000540335,289.40288047089,290.3669896161,293.99657698631,296.41630189977,300.12150567352,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,321.55875607877,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.76148788545,342.99600648402,347.28345656507,348.44038753932,352.79589238357,357.28750675419,360.14580680822,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,385.87050729453,387.1559861548,391.99543598174],description:"225/224, 1029/1024 and 4375/4374, Gene Ward Smith, 2002"},pipedum_72a:{frequencies:[195.99771799087,197.5656997348,200.08100378235,201.59765279061,203.21043401293,205.79760389041,207.44398472154,209.99755499022,211.67753543014,213.41973736784,216.04686727389,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.84921063758,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.07883968176,240.09720453882,241.91718334873,244.99714748859,246.9571246685,248.93278166584,251.99706598826,254.07111591409,256.1036848414,259.25624072866,261.33029065449,264.65741241051,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.59197962872,279.99673998696,282.23671390685,285.83000540335,288.11664544658,290.30062001848,293.99657698631,296.3485496022,298.59492344758,302.46561418344,304.88533909691,308.7669811456,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.46833963724,335.99608798435,338.68405668822,342.99600648402,345.73997453589,348.36074402217,352.79589238357,355.69956227973,360.07811212314,362.95873702013,365.86240691629,370.52037737472,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"4375/4374, 2401/2400 and 15625/15552, Manuel Op de Coul, 2002"},pipedum_72b:{frequencies:[195.99771799087,197.5656997348,200.51849868858,202.12264667808,204.16428957382,205.79760389041,207.94510975112,209.60867062912,211.67753543014,213.41973736784,215.59748978996,218.74745311481,220.49743273973,222.7983318762,224.58071853121,226.79735938944,228.66400432268,230.99731048924,232.89852292125,235.19726158904,238.19167116946,240.62219842629,242.5471760137,244.99714748859,246.9571246685,249.53413170134,251.53040475495,254.07111591409,256.1036848414,259.87197430039,262.49694373777,264.59691928767,267.35799825143,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.4782275055,283.49669923679,285.83000540335,288.74663811155,291.12315365156,293.99657698631,296.3485496022,299.44095804161,301.83648570594,304.88533909691,309.37139797666,311.91766462667,314.99633248533,317.51630314521,320.82959790172,323.39623468494,326.66286331812,329.27616622466,332.71217560179,336.87107779681,340.19603908415,342.99600648402,346.49596573386,349.34778438187,352.79589238357,355.69956227973,359.32914964993,362.08404605941,367.49572123288,371.24567757199,374.30119755201,377.99559898239,381.10667387114,384.99551748207,388.16420486875,391.99543598174],description:"225/224, 3025/3024, 1375/1372 and 4375/4374"},pipedum_72b2:{frequencies:[195.99771799087,198.44768946576,200.45221158157,202.12264667808,204.16428957382,205.79760389041,207.87636756607,209.06423252359,211.67753543014,213.81569235368,215.59748978996,217.77524221208,220.49743273973,222.72467953508,223.99739198957,226.79735938944,228.66400432268,230.99731048924,233.3306166558,235.19726158904,237.57299150408,239.55276643329,241.97249134675,244.99714748859,246.39713118852,249.45164107929,251.99706598826,254.07111591409,257.24700486302,258.71698774795,261.33029065449,264.59691928767,267.2696154421,269.49686223745,272.2190527651,274.39680518722,277.19677258709,279.99673998696,282.23671390685,285.0875898049,287.46331971994,290.3669896161,293.99657698631,296.96623938011,298.66318931942,302.39647918591,304.88533909691,307.99641398565,311.81455134911,313.59634878539,317.51630314521,320.72353853051,323.39623468494,326.66286331812,329.27616622466,332.60218810572,335.99608798435,338.76148788545,342.99600648402,344.95598366393,348.44038753932,352.79589238357,356.35948725613,359.32914964993,362.95873702013,367.49572123288,369.59569678278,374.17746161893,376.31561854247,380.11678640654,383.28442629326,387.1559861548,391.99543598174],description:"Optimised version of pipedum_72b, Manuel Op de Coul"},pipedum_72c:{frequencies:[195.99771799087,197.5656997348,199.99767141926,201.59765279061,203.25689273127,205.79760389041,207.40499258293,209.99755499022,211.67753543014,213.41973736784,215.9974851328,217.77524221208,219.51744414977,222.31222642483,223.99739198957,226.79735938944,228.66400432268,230.49331635726,233.3306166558,235.19726158904,237.13304151982,239.99720570311,241.91718334873,244.99714748859,246.9571246685,248.88599109952,251.99706598826,254.07111591409,256.1036848414,259.19698215935,261.33029065449,264.59691928767,266.7746717098,268.79687038748,272.2190527651,274.39680518722,276.47678096998,279.99673998696,282.23671390685,285.83000540335,287.99664684373,290.3669896161,293.99657698631,296.41630189977,298.66318931942,302.39647918591,304.88533909691,308.69640583562,311.1074888744,313.59634878539,317.58889489261,320.12960605175,322.55624446497,326.66286331812,329.27616622466,333.32945236543,335.99608798435,338.76148788545,342.99600648402,345.59597621247,348.44038753932,352.79589238357,355.69956227973,359.99580855466,362.95873702013,365.86240691629,370.43568700274,373.32898664928,376.31561854247,381.10667387114,384.15552726211,388.884361093,391.99543598174],description:"441/440, 2401/2400, 4375/4374 and 1375/1372"},pipedum_74:{frequencies:[174.6141157165,175.4667237034,177.38576834692,178.25190979393,182.45393315683,183.34482150233,186.25505676427,187.16450528362,187.6669026756,191.57662981467,192.51206257744,194.01568412944,194.96302633711,195.48635695375,199.55898939029,200.53339851817,202.72659239648,203.71646833592,208.51878075067,209.5369388598,210.56006844408,212.8629220163,213.90229175271,216.62558481901,218.9447197882,220.01378580279,221.73221043365,222.81488724241,228.06741644604,229.18102687791,231.68753416741,232.81882095533,233.95563160453,239.47078726834,240.6400782218,243.27191087578,244.4597620031,249.5526737115,250.2225369008,251.44432663176,253.4082404956,254.6455854199,259.95070178281,260.64847593833,261.92117357475,266.07865252038,267.37786469089,273.68089973525,275.01723225349,278.02504100089,279.3825851464,280.74675792544,285.20305567028,287.36494472201,291.02352619417,291.92629305093,292.44453950566,297.08651632321,299.33848408543,304.08988859472,305.57470250388,310.42509460711,311.94084213937,312.778171126,319.29438302446,320.85343762907,325.94634933747,328.4170796823,333.63004920107,334.22233086361,335.25910217568,339.52744722653,342.10112466906,347.53130125111,349.228231433],description:"81/80, 126/125 and 4194304/4117715, Gene Ward Smith, 2002"},pipedum_81:{frequencies:[116.54094037952,117.10998793997,118.96887663743,119.87068153322,121.77339076391,122.3679873985,122.96548733697,124.86529326377,124.9173204693,126.84728204574,127.4666535401,128.08904930934,130.12220882219,130.47149010419,131.10855792696,133.18964614802,133.83998621711,135.96443044277,136.62831926329,136.99506460939,139.16958944446,139.84912845542,140.53198552796,142.70319230145,142.76265196491,144.96832233798,145.6761754744,146.38748492496,148.71109579678,149.83835191653,152.21673845488,152.95998424812,153.70685917121,155.38792050603,156.14665058662,156.56578812502,159.82757537763,160.60798346053,163.08936263023,163.15731653133,163.95398311595,166.48705768503,167.29998277138,169.12970939431,169.95553805347,170.78539907912,173.96198680558,174.81141056928,175.66498190995,177.58619486403,178.45331495614,182.66008614586,183.55198109774,184.08675852442,184.44823100545,186.46550460723,187.37598070395,190.2709230686,191.19998031015,193.29109645065,194.23490063253,195.18331323328,199.78446922203,200.75997932566,202.95565127318,203.94664566416,204.94247889494,208.7543841667,209.77369268314,210.79797829194,213.10343383684,214.14397794737,217.45248350698,218.5142632116,218.60531082127,221.98274358004,223.06664369518,227.71386543882,228.32510768232,229.43997637218,231.94931574077,233.08188075904],description:"81/80, 126/125 and 17294403/16777216, Gene Ward Smith, 2002"},pipedum_87:{frequencies:[82.40688922822,83.34286871081,83.43697534357,84.3846545697,84.87648045204,85.84050961273,86.81548824043,86.91351598289,87.90068184343,87.99993493267,88.99944036648,90.43280025045,90.53491248218,91.56321025358,92.60318745646,92.70775038175,93.76072729966,93.86659726152,95.37834401414,96.46165360048,96.57057331432,97.66742427048,97.77770548075,98.88826707386,100.01144245297,100.59434720242,101.73690028175,101.85177654245,103.00861153527,104.17858588852,104.29621917947,105.48081821212,105.59992191921,107.30063701591,108.51936030054,108.64189497861,109.87585230429,111.12382494775,111.2493004581,112.5128727596,113.16864060272,114.45401281697,115.75398432057,115.88468797718,117.20090912458,117.3332465769,118.66592048864,120.5770670006,120.7132166429,122.0842803381,122.22213185094,123.61033384233,125.01430306622,125.15546301536,127.17112535219,128.61553813397,128.76076441909,130.22323236064,130.37027397433,131.85102276515,133.3485899373,133.49916054972,135.64920037567,135.80236872326,137.34481538037,138.90478118469,139.06162557262,140.6410909495,140.79989589228,143.06751602122,144.69248040072,144.85585997148,146.50113640572,146.66655822112,148.3324006108,150.01716367946,150.89152080363,152.60535042263,154.33864576076,154.51291730291,156.26787883277,156.4443287692,158.22122731818,160.76942266746,160.95095552387,162.7790404508,162.96284246792,164.81377845644],description:"67108864/66430125 and 15625/15552, Op de Coul"},pipedum_9:{frequencies:[261.6255653006,280.31310567921,305.22982618403,327.03195662575,348.83408706747,392.4383479509,420.46965851882,448.50096908674,490.54793493862,523.2511306012],description:"225/224, 49/48 and 36/35 are homophonic intervals"},pipedum_99:{frequencies:[41.20344461411,41.53307217102,41.72802550619,42.06184971024,42.3806858888,42.72949811834,42.92025480636,43.26361684482,43.60972577957,43.95034092172,44.14654780083,44.49972018324,44.86597302425,45.06626754668,45.407877738,45.78160512679,46.1478579678,46.35387519087,46.73538856693,47.08965098755,47.46636819545,47.68917200707,48.07068538313,48.45525086619,48.65129757643,49.0517197787,49.44413353693,49.83968660523,50.07363060743,50.47421965228,50.85682306656,51.275397742,51.50430576764,51.91634021378,52.34363519496,52.55541404861,52.975857361,53.41187264792,53.8391676291,54.07952105602,54.50191086522,54.93792615215,55.37742956136,55.62465022905,56.08246628032,56.50758118507,56.7598471725,57.22700640849,57.68482245975,58.14630103943,58.41923570866,58.86206373444,59.33296024432,59.82129736567,60.08835672891,60.56906358274,61.04214016905,61.31464972338,61.80516692116,62.29960825653,62.81236223395,63.06649685833,63.5710288332,64.0942471775,64.60700115492,64.89542526722,65.40229303827,65.92551138258,66.21982170125,66.7648408099,67.29895953638,67.80909742208,68.12738858153,68.67240769018,69.2217869517,69.77556124732,70.1030828504,70.63447648133,71.19955229318,71.53375801061,72.10602807469,72.68287629929,73.25056820286,73.57757966805,74.1662003054,74.77662170709,75.37483468075,75.67979623,76.30267521131,76.91309661301,77.25645865146,77.87451032067,78.48275164592,79.11061365909,79.4637860415,80.11780897188,80.75875144366,81.37091690649,81.75286629784,82.40688922822],description:"2401/2400, 3136/3125 and 4375/4374, Gene Ward Smith, 2002"},pipedum_9a:{frequencies:[261.6255653006,282.62020942966,305.22982618403,329.72357766794,356.10146388137,384.67750727926,415.4517078616,448.79042515914,484.69365917187,523.2511306012],description:"4375/4374, 2401/2400 and 21/20 are homophonic intervals"},pipedum_9b:{frequencies:[261.6255653006,279.06726965397,306.59245933664,327.03195662575,357.20610515709,383.2405741708,418.60090448096,446.50763144636,490.54793493862,523.2511306012],description:"128/125 and 2109375/2097152 are homophonic intervals"},pipedum_9c:{frequencies:[261.6255653006,285.40970760065,305.22982618403,332.97799220076,348.83408706747,392.4383479509,411.12588832951,448.50096908674,479.64686971777,523.2511306012],description:"49/48, 21/20, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9d:{frequencies:[261.6255653006,277.4816601673,308.34441624714,327.03195662575,346.85207520913,394.68085279633,418.60090448096,443.97065626768,493.35106599542,523.2511306012],description:"128/125, 36/35, 99/98 and 121/120, Gene Ward Smith, 2002"},pipedum_9e:{frequencies:[261.6255653006,272.52663052146,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,502.32108537715,523.2511306012],description:"21/20, 27/25 and 128/125"},polansky_ps:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1046.5022612024,1308.127826503,1569.7533918036,1831.3789571042,2093.0045224048,2354.6300877054,2616.255653006,2877.8812183066,3139.5067836072,3401.1323489078,3662.7579142084,3924.383479509,4186.0090448096,4447.6346101102,327.03195662575,654.0639132515,981.09586987725,1308.127826503,1635.15978312875,1962.1917397545,2289.22369638025,2616.255653006,2943.28760963175,3270.3195662575,3597.35152288325,3924.383479509,4251.41543613475,4578.4473927605,4905.47934938625,5232.511306012,5559.54326263775,392.4383479509,784.8766959018,1177.3150438527,1569.7533918036,1962.1917397545,2354.6300877054,2747.0684356563,3139.5067836072,3531.9451315581,3924.383479509,4316.8218274599,4709.2601754108,5101.6985233617,5494.1368713126,5886.5752192635,6279.0135672144,6671.4519151653],description:"Three interlocking harmonic series on 1:5:3 by Larry Polansky in Psaltery"},poole:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"Poole's double diatonic or dichordal scale"},porcupine:{frequencies:[261.6255653006,268.5059110196,275.56719913678,277.81869773502,285.12489766782,287.45448663717,295.01409284105,302.77250493809,305.24628043356,313.27378316024,315.83336022842,324.13928669805,332.66364612382,335.38164643474,344.20166244741,347.01393314922,356.13986022226,365.50578499276,368.49211923405,378.18288921726,381.27279846892,391.29968045081,401.5902538439,404.87141319969,415.51890206933,418.91386427268,429.93064777916,441.23715556831,444.84224659643,456.54090625717,460.27103529174,472.37544811397,484.79818817936,488.75918813348,501.6127950959,505.71118020326,519.01059820838,523.2511306012],description:"porcupine temperament, g=162.996, 5-limit"},portbag1:{frequencies:[261.6255653006,281.75060878526,311.64221749042,334.88072358477,376.74081403286,413.43299207996,457.84473927605,523.2511306012],description:"Portugese bagpipe tuning"},portbag2:{frequencies:[261.6255653006,274.70684356563,281.75060878526,310.07474405997,317.68818643644,343.38355445704,372.08969287196,392.4383479509,408.78994578219,482.37213602298,523.2511306012],description:"Portugese bagpipe tuning 2"},prelleur:{frequencies:[261.6255653006,276.42153822591,293.20376052703,310.91918875105,328.72923110101,349.43408698743,368.89538496172,391.53834819612,414.55891854195,438.90564190541,466.17878415199,492.19384741628,523.2511306012],description:"Peter Prelleur's well temperament (1731)"},preston:{frequencies:[261.6255653006,276.24946721727,293.45376109391,311.26733605541,328.91048112005,349.30075403587,368.79929095641,391.73834630677,413.67420227347,439.48064068428,466.20100528964,492.6657196346,523.2511306012],description:"Preston's equal beating temperament (1785)"},preston2:{frequencies:[261.6255653006,276.2302000593,293.37610901672,311.58628319174,328.97985807656,349.39999567988,368.9044325484,391.80273191286,413.67420227347,439.35140993827,466.62242981045,492.67053466508,523.2511306012],description:"Preston's theoretically correct well temperament"},prime_10:{frequencies:[261.6255653006,277.97716313189,310.68035879446,327.03195662575,359.73515228832,376.08675011961,392.4383479509,425.14154361347,457.84473927605,474.19633710734,523.2511306012],description:"First 10 prime numbers reduced by 2/1"},prime_5:{frequencies:[261.6255653006,294.32876096318,327.03195662575,392.4383479509,436.04260883433,523.2511306012],description:'What Lou Harrison calls "the Prime Pentatonic", a widely used scale'},primes6:{frequencies:[261.6255653006,523.2511306012,784.8766959018,1308.127826503,1831.3789571042,2877.8812183066,3401.1323489078],description:"First 6 primes"},prinz:{frequencies:[261.6255653006,275.62199471997,292.50627485027,310.07474405997,327.03195662575,348.83408706747,367.49599295996,391.22147055517,413.43299207996,437.39890198442,465.11211608996,490.54793493862,523.2511306012],description:"Prinz well-tempermament (1808)"},prinz2:{frequencies:[261.6255653006,275.62199471997,291.81313052759,310.07474405997,327.03195662575,348.83408706747,367.49599295996,390.42584360243,413.43299207996,436.71344361716,465.11211608996,490.54793493862,523.2511306012],description:"Prinz equal beating temperament (1808)"},"prod13-2":{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,343.38355445704,345.42750418595,359.73515228832,371.99885066179,392.4383479509,400.61414686654,408.78994578219,425.14154361347,449.66894036041,457.84473927605,490.54793493862,494.63583439645,523.2511306012],description:"13-limit binary products [1 3 5 7 11 13]"},prod13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,286.15296204753,292.28481123426,294.32876096318,314.76825825228,318.85615771011,327.03195662575,331.11985608357,343.38355445704,345.42750418595,359.73515228832,367.91095120397,371.99885066179,392.4383479509,400.61414686654,404.70204632437,408.78994578219,425.14154361347,441.49314144476,449.66894036041,457.84473927605,478.28423656516,490.54793493862,494.63583439645,515.07533168556,523.2511306012],description:"13-limit binary products [1 3 5 7 9 11 13]"},prod7d:{frequencies:[261.6255653006,265.7783520514,267.90457886781,273.37201925287,279.06726965397,286.15296204753,294.32876096318,299.00064605783,300.46061014991,306.59245933664,310.07474405997,318.93402246168,327.03195662575,334.88072358477,341.71502406609,343.38355445704,348.83408706747,350.53737850823,357.69120255941,367.91095120397,372.08969287196,382.72082695402,390.53145607553,392.4383479509,398.6675280771,400.61414686654,408.78994578219,418.60090448096,429.2294430713,441.49314144476,446.50763144636,455.62003208812,457.84473927605,465.11211608996,478.40103369253,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Double Cubic Corner 7-limit. Chalmers '96"},prod7s:{frequencies:[261.6255653006,286.15296204753,294.32876096318,300.46061014991,306.59245933664,327.03195662575,343.38355445704,350.53737850823,357.69120255941,367.91095120397,392.4383479509,400.61414686654,408.78994578219,429.2294430713,441.49314144476,457.84473927605,490.54793493862,500.76768358318,510.98743222773,515.07533168556,523.2511306012],description:"Single Cubic Corner 7-limit"},prodq13:{frequencies:[261.6255653006,265.71346475842,269.80136421624,276.76092858245,279.06726965397,286.15296204753,292.28481123426,294.32876096318,299.00064605783,304.4370214407,314.76825825228,318.85615771011,322.00069575458,327.03195662575,334.88072358477,341.71502406609,343.38355445704,345.42750418595,348.83408706747,359.73515228832,368.0007951481,371.99885066179,380.54627680087,392.4383479509,396.30854862103,400.61414686654,408.78994578219,418.60090448096,425.14154361347,429.33426100611,434.91003062957,449.66894036041,457.84473927605,465.11211608996,468.3646483703,478.40103369253,490.54793493862,494.63583439645,507.3950357345,515.20111320734,523.2511306012],description:"13-limit Binary products and quotients. Chalmers '96"},prog_ennea:{frequencies:[261.6255653006,269.29177952703,285.30470202322,311.12698372208,349.22823143301,391.99543598175,403.48177901006,427.47405410759,466.16376151809,523.2511306012],description:"Progressive Enneatonic, 50+100+150+200 cents in each half (500 cents)"},prog_ennea1:{frequencies:[261.6255653006,269.10058145205,285.40970760065,310.68035879446,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prog_ennea2:{frequencies:[261.6255653006,269.55361273395,285.40970760065,321.08592105074,348.83408706747,392.4383479509,404.33041910093,428.11456140098,481.6288815761,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+200+150 cents in each half (500 cents)"},prog_ennea3:{frequencies:[261.6255653006,269.55361273395,285.40970760065,310.07474405997,348.83408706747,392.4383479509,404.33041910093,428.11456140098,465.11211608996,523.2511306012],description:"Progressive Enneatonic, appr. 50+100+150+200 cents in each half (500 cents)"},prooijen1:{frequencies:[261.6255653006,339.14425131559,366.27579142084,436.04260883433,470.92601754108,610.45965236807,726.73768139056,784.8766959018],description:"Kees van Prooijen, major mode of Bohlen-Pierce"},prooijen2:{frequencies:[261.6255653006,311.45900631024,336.37572681506,436.04260883433,470.92601754108,560.62621135843,726.73768139056,784.8766959018],description:"Kees van Prooijen, minor mode of Bohlen-Pierce"},"ps-dorian":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 4 of p. 115 based on Archytas's Enharmonic"},"ps-enh":{frequencies:[261.6255653006,266.38239376061,279.06726965397,348.83408706747,392.4383479509,399.57359064092,418.60090448096,523.2511306012],description:"Dorian mode of an Enharmonic genus found in Ptolemy's Harmonics"},"ps-hypod":{frequencies:[261.6255653006,294.32876096318,367.91095120397,378.42269266694,392.4383479509,406.97310157871,418.60090448096,523.2511306012],description:"Complex 7 of p. 115 based on Archytas's Enharmonic"},"ps-hypod2":{frequencies:[261.6255653006,294.32876096318,305.22982618403,313.95067836072,392.4383479509,490.54793493862,504.56359022259,523.2511306012],description:"Complex 8 of p. 115 based on Archytas's Enharmonic"},"ps-mixol":{frequencies:[261.6255653006,271.31540105247,279.06726965397,348.83408706747,436.04260883433,448.50096908674,465.11211608996,523.2511306012],description:"Complex 3 of p. 115 based on Archytas's Enharmonic"},ptolemy:{frequencies:[261.6255653006,294.32876096318,327.03195662575,348.83408706747,392.4383479509,436.04260883433,490.54793493862,523.2511306012],description:"Intense Diatonic Syntonon, also Zarlino's scale"},ptolemy_chrom:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,436.04260883433,523.2511306012],description:"Ptolemy Soft Chromatic"},ptolemy_ddiat:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,413.43299207996,465.11211608996,523.2511306012],description:"Lyra tuning, Dorian mode, comb. of diatonon toniaion & diatonon ditoniaion"},ptolemy_diat:{frequencies:[261.6255653006,290.69507255622,313.95067836072,348.83408706747,392.4383479509,436.04260883433,470.92601754108,523.2511306012],description:"Ptolemy's Diatonon Ditoniaion & Archytas' Diatonic, also Lyra tuning"},ptolemy_diat2:{frequencies:[261.6255653006,271.31540105247,305.22982618403,348.83408706747,392.4383479509,406.97310157871,457.84473927605,523.2511306012],description:"Dorian mode of a permutation of Ptolemy's Tonic Diatonic"},ptolemy_diat3:{frequencies:[261.6255653006,294.32876096318,313.95067836072,348.83408706747,392.4383479509,441.49314144476,470.92601754108,523.2511306012],description:"Dorian mode of the remaining permutation of Ptolemy's Intense Diatonic"},ptolemy_diat4:{frequencies:[261.6255653006,299.00064605783,310.07474405997,348.83408706747,392.4383479509,448.50096908674,465.11211608996,523.2511306012],description:"permuted Ptolemy's diatonic"},ptolemy_diat5:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Sterea lyra, Dorian, comb. of 2 Tonic Diatonic 4chords, also Archytas' diatonic"},ptolemy_diff:{frequencies:[261.6255653006,294.32876096318,327.03195662575,343.38355445704,392.4383479509,425.14154361347,490.54793493862,523.2511306012],description:"Difference tones of Intense Diatonic reduced by 2/1"},ptolemy_enh:{frequencies:[261.6255653006,267.43946675172,279.06726965397,348.83408706747,392.4383479509,401.15920012759,418.60090448096,523.2511306012],description:"Dorian mode of Ptolemy's Enharmonic"},ptolemy_exp:{frequencies:[261.6255653006,272.52663052146,275.93321340298,287.4304306281,290.69507255622,294.32876096318,306.59245933664,327.03195662575,340.65828815182,344.91651675372,348.83408706747,363.36884069528,367.91095120397,383.2405741708,392.4383479509,408.78994578219,413.89982010446,431.14564594215,436.04260883433,441.49314144476,459.88868900496,490.54793493862,510.98743222773,517.37477513058,523.2511306012],description:"Intense Diatonic expanded: all interval combinations"},ptolemy_hom:{frequencies:[261.6255653006,285.40970760065,313.95067836072,348.83408706747,392.4383479509,428.11456140098,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Equable Diatonic or Diatonon Homalon"},ptolemy_iast:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Ptolemy's Iastia or Lydia tuning, mixture of Tonic Diatonic & Intense Diatonic"},ptolemy_iastaiol:{frequencies:[261.6255653006,271.31540105247,310.07474405997,348.83408706747,392.4383479509,441.49314144476,465.11211608996,523.2511306012],description:"Ptolemy's kithara tuning, mixture of Tonic Diatonic and Ditone Diatonic"},ptolemy_ichrom:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,411.12588832951,448.50096908674,523.2511306012],description:"Dorian mode of Ptolemy's Intense Chromatic"},ptolemy_idiat:{frequencies:[261.6255653006,279.06726965397,313.95067836072,348.83408706747,392.4383479509,418.60090448096,470.92601754108,523.2511306012],description:"Dorian mode of Ptolemy's Intense Diatonic (Diatonon Syntonon)"},ptolemy_imix:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,327.03195662575,348.83408706747,392.4383479509,418.60090448096,436.04260883433,465.11211608996,490.54793493862,523.2511306012],description:"Ptolemy Intense Diatonic mixed with its inverse"},ptolemy_malak:{frequencies:[261.6255653006,274.08392555301,299.00064605783,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Ptolemy's Malaka lyra tuning, a mixture of Intense Chrom. & Tonic Diatonic"},ptolemy_malak2:{frequencies:[261.6255653006,271.31540105247,290.69507255622,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Malaka lyra, mixture of his Soft Chromatic and Tonic Diatonic."},ptolemy_mdiat:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,412.06026534844,457.84473927605,523.2511306012],description:"Ptolemy soft diatonic"},ptolemy_mdiat2:{frequencies:[261.6255653006,290.69507255622,305.22982618403,348.83408706747,392.4383479509,436.04260883433,457.84473927605,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_mdiat3:{frequencies:[261.6255653006,299.00064605783,313.95067836072,348.83408706747,392.4383479509,448.50096908674,470.92601754108,523.2511306012],description:"permuted Ptolemy soft diatonic"},ptolemy_meta:{frequencies:[261.6255653006,274.70684356563,305.22982618403,348.83408706747,392.4383479509,406.97310157871,465.11211608996,523.2511306012],description:"Metabolika lyra tuning, mixture of Soft Diatonic & Tonic Diatonic"},ptolemy_mix:{frequencies:[261.6255653006,279.06726965397,290.69507255622,294.32876096318,310.07474405997,313.95067836072,327.03195662575,348.83408706747,353.19451315581,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,470.92601754108,490.54793493862,523.2511306012],description:"All modes of Ptolemy Intense Diatonic mixed"},ptolemy_prod:{frequencies:[261.6255653006,272.52663052146,275.93321340298,279.06726965397,290.69507255622,294.32876096318,313.95067836072,327.03195662575,331.11985608357,348.83408706747,363.36884069528,367.91095120397,372.08969287196,387.59343007496,392.4383479509,418.60090448096,436.04260883433,441.49314144476,465.11211608996,484.4917875937,490.54793493862,523.2511306012],description:"Product of Intense Diatonic with its intervals"},ptolemy_tree:{frequencies:[261.6255653006,294.32876096318,299.00064605783,305.22982618403,313.95067836072,327.03195662575,348.83408706747,392.4383479509,436.04260883433,457.84473927605,470.92601754108,479.64686971777,485.87604984397,490.54793493862,523.2511306012],description:"Intense Diatonic with all their Farey parent fractions"},pygmie:{frequencies:[261.6255653006,299.00064605783,343.38355445704,392.4383479509,457.84473927605,523.2511306012],description:"Pygmie scale"},pyle:{frequencies:[261.6255653006,277.19063644077,293.6461094938,311.15753660095,329.66944764997,349.23831768549,369.99228554622,391.93430587921,415.28070933274,439.96441988338,466.23108306565,493.99742571239,523.2511306012],description:"Howard Willet Pyle quasi equal temperament"},pyramid:{frequencies:[261.6255653006,294.32876096318,306.59245933664,327.03195662575,348.83408706747,367.91095120397,392.4383479509,408.78994578219,436.04260883433,441.49314144476,465.11211608996,490.54793493862,523.2511306012],description:'This scale may also be called the "Wedding Cake"'},pyramid_down:{frequencies:[261.6255653006,279.06726965397,294.32876096318,313.95067836072,334.88072358477,348.83408706747,392.4383479509,418.60090448096,441.49314144476,465.11211608996,470.92601754108,502.32108537715,523.2511306012],description:"Upside-Down Wedding Cake (divorce cake)"},pyth_12:{frequencies:[261.6255653006,279.38237857051,294.32876096318,310.07474405997,331.11985608357,348.83408706747,372.50983809402,392.4383479509,419.07356785577,441.49314144476,465.11211608996,496.67978412536,523.2511306012],description:"12-tone Pythagorean scale"},pyth_12s:{frequencies:[261.6255653006,279.38237857051,294.32876096318,314.30517589183,326.6631048533,348.83408706747,367.49599295996,392.4383479509,419.07356785577,435.55080647107,471.45776383774,489.99465727995,523.2511306012],description:"Scale with major thirds flat by a schisma"},pyth_17:{frequencies:[261.6255653006,275.62199471997,279.38237857051,294.32876096318,310.07474405997,314.30517589183,331.11985608357,348.83408706747,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,441.49314144476,465.11211608996,471.45776383774,496.67978412536,523.2511306012],description:"17-tone Pythagorean scale"},pyth_17s:{frequencies:[261.6255653006,275.62199471997,279.06726965397,294.32876096318,310.07474405997,313.95067836072,331.11985608357,348.83408706747,367.49599295996,372.08969287196,392.4383479509,413.43299207996,418.60090448096,441.49314144476,465.11211608996,470.92601754108,496.67978412536,523.2511306012],description:"Schismatically altered 17-tone Pythagorean scale"},pyth_22:{frequencies:[261.6255653006,275.62199471997,279.38237857051,290.36720431405,294.32876096318,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,392.4383479509,413.43299207996,419.07356785577,435.55080647107,441.49314144476,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"Pythagorean shrutis"},pyth_27:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,290.36720431405,294.32876096318,298.34436617857,310.07474405997,314.30517589183,326.6631048533,331.11985608357,348.83408706747,353.59332287831,367.49599295996,372.50983809402,387.15627241873,392.4383479509,397.79248823809,413.43299207996,419.07356785577,435.55080647107,441.49314144476,447.51654926786,465.11211608996,471.45776383774,489.99465727995,496.67978412536,523.2511306012],description:"27-tone Pythagorean scale"},pyth_31:{frequencies:[261.6255653006,265.19499215873,275.62199471997,279.38237857051,283.19406633357,294.32876096318,298.34436617857,310.07474405997,314.30517589183,318.59332496145,326.6631048533,331.11985608357,335.63741195089,348.83408706747,353.59332287831,367.49599295996,372.50983809402,377.59208844475,392.4383479509,397.79248823809,413.43299207996,419.07356785577,424.79110016094,441.49314144476,447.51654926786,465.11211608996,471.45776383774,477.8899872033,489.99465727995,496.67978412536,503.45611792634,523.2511306012],description:"31-tone Pythagorean scale"},pyth_7a:{frequencies:[261.6255653006,277.97716313189,294.32876096318,312.72430852337,331.11985608357,348.83408706747,370.63621750918,392.4383479509,416.96574469783,441.49314144476,469.08646278506,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided arithmetically"},pyth_7h:{frequencies:[261.6255653006,277.01530443593,294.32876096318,311.64221749042,331.11985608357,348.83408706747,369.35373924791,392.4383479509,415.52295665389,441.49314144476,467.46332623563,496.67978412536,523.2511306012],description:"Pythagorean 7-tone with whole tones divided harmonically"},pyth_chrom:{frequencies:[261.6255653006,275.62199471997,294.32876096318,348.83408706747,392.4383479509,413.43299207996,441.49314144476,465.11211608996,523.2511306012],description:"Dorian mode of the so-called Pythagorean chromatic, recorded by Gaudentius"},pyth_sev:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,291.47537246454,299.00064605783,306.7202061947,314.63906894008,322.76237975718,333.11471138804,341.71502406609,350.53737850823,359.58750736009,368.87129039875,380.70252730062,390.53145607553,400.61414686654,410.95715126868,421.56719060242,435.08860262928,446.32166408632,457.84473927605,469.66531573563,481.7910743145,497.2441172906,510.08190181294,523.2511306012],description:"26-tone Pythagorean scale based on 7/4"},pyth_sev_16:{frequencies:[261.6255653006,268.38018042036,275.30918532257,282.41708286353,306.7202061947,314.63906894008,322.76237975718,350.53737850823,359.58750736009,368.87129039875,400.61414686654,410.95715126868,421.56719060242,457.84473927605,469.66531573563,481.7910743145,523.2511306012],description:'16-tone Pythagorean scale based on 7/4, "Armodue"'},pyth_third:{frequencies:[261.6255653006,267.90457886781,274.33428876064,280.9183116909,287.66035117148,290.46272611903,297.43383186155,304.57224382623,311.88197767806,319.36714514233,327.03195662575,334.88072358477,342.9178609508,351.14788961362,359.57543896435,363.07840893547,371.79228894479,380.71530478279,389.85247209758,399.20893142792,408.78994578219,418.60090448096,428.6473261885,438.93486201703,449.46929870544,453.84801015616,464.74036282794,475.89413097849,487.31559012197,499.0111642849,510.98743222773,523.2511306012],description:"Cycle of 5/4 thirds"}};o.prototype._tune=function(i,n=220){const e=new t;if(!e.isValidScale(i))throw new Error('not a valid tune.js scale name: "'+i+'". See http://abbernie.github.io/tune/scales.html');return e.loadScale(i),e.tonicize(n),this._asNumber()._withHap(r=>r.withValue(()=>e.note(r.value)).setContext({...r.context,type:"frequency"}))};o.prototype.define("tune",(i,n)=>n.tune(i),{composable:!0,patternified:!0}); diff --git a/packages/react/examples/nano-repl/dist/assets/index.75f8960b.css b/packages/react/examples/nano-repl/dist/assets/index.75f8960b.css deleted file mode 100644 index 61ea9b3d..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.75f8960b.css +++ /dev/null @@ -1 +0,0 @@ -.cm-editor{background-color:transparent!important;height:100%;z-index:11;font-size:16px}.cm-theme-light{width:100%}.cm-line>*{background:#00000095}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.bottom-0{bottom:0px}.z-\[12\]{z-index:12}.flex{display:flex}.w-full{width:100%}.justify-center{justify-content:center}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.px-2{padding-left:.5rem;padding-right:.5rem}body{background:#123} diff --git a/packages/react/examples/nano-repl/dist/assets/index.bb9bb2c4.js b/packages/react/examples/nano-repl/dist/assets/index.bb9bb2c4.js deleted file mode 100644 index f1e6bb65..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.bb9bb2c4.js +++ /dev/null @@ -1,8 +0,0 @@ -import{b as ut,d as Se,e as pt}from"./index.ec9f9930.js";function gt(a,c){function r(){this.constructor=a}r.prototype=c.prototype,a.prototype=new r}function D(a,c,r,_){var p=Error.call(this,a);return Object.setPrototypeOf&&Object.setPrototypeOf(p,D.prototype),p.expected=c,p.found=r,p.location=_,p.name="SyntaxError",p}gt(D,Error);function U(a,c,r){return r=r||" ",a.length>c?a:(c-=a.length,r+=r.repeat(c),a+r.slice(0,c))}D.prototype.format=function(a){var c="Error: "+this.message;if(this.location){var r=null,_;for(_=0;_ `+$+` -`+A+` | -`+p.line+" | "+E+` -`+A+" | "+U("",p.column-1," ")+U("",h,"^")}else c+=` - at `+$}return c};D.buildMessage=function(a,c){var r={literal:function(m){return'"'+p(m.text)+'"'},class:function(m){var h=m.parts.map(function(b){return Array.isArray(b)?$(b[0])+"-"+$(b[1]):$(b)});return"["+(m.inverted?"^":"")+h.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(m){return m.description}};function _(m){return m.charCodeAt(0).toString(16).toUpperCase()}function p(m){return m.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(h){return"\\x0"+_(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+_(h)})}function $(m){return m.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(h){return"\\x0"+_(h)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(h){return"\\x"+_(h)})}function w(m){return r[m.type](m)}function A(m){var h=m.map(w),b,F;if(h.sort(),h.length>0){for(b=1,F=1;b",Me="@",We="!",Ze="(",Ge=")",Ue="/",Xe="*",He="%",Je="?",V="struct",Y="target",ee="euclid",re="slow",se="rotL",te="rotR",ne="fast",ae="scale",ie="//",fe="cat",Ke="$",oe="setcps",ce="setbpm",le="hush",Qe=/^[1-9]/,Ve=/^[eE]/,Ye=/^[0-9]/,ue=/^[ \n\r\t]/,er=/^[0-9a-zA-Z~]/,pe=/^[^\n]/,rr=Ae("number"),ge=g(".",!1),sr=j([["1","9"]],!1,!1),tr=j(["e","E"],!1,!1),ve=g("-",!1),nr=g("+",!1),ar=g("0",!1),ir=j([["0","9"]],!1,!1),fr=Ae("whitespace"),$e=j([" ",` -`,"\r"," "],!1,!1),or=g(",",!1),cr=g("|",!1),lr=g('"',!1),ur=g("'",!1),pr=j([["0","9"],["a","z"],["A","Z"],"~"],!1,!1),gr=g("#",!1),vr=g("^",!1),$r=g("_",!1),hr=g(":",!1),he=g("[",!1),me=g("]",!1),mr=g("<",!1),_r=g(">",!1),dr=g("@",!1),Ar=g("!",!1),wr=g("(",!1),yr=g(")",!1),br=g("/",!1),Cr=g("*",!1),xr=g("%",!1),Er=g("?",!1),Fr=g("struct",!1),jr=g("target",!1),Sr=g("euclid",!1),Rr=g("slow",!1),Pr=g("rotL",!1),Or=g("rotR",!1),qr=g("fast",!1),Ir=g("scale",!1),Dr=g("//",!1),_e=j([` -`],!0,!1),kr=g("cat",!1),Nr=g("$",!1),Br=g("setcps",!1),Tr=g("setbpm",!1),zr=g("hush",!1),Lr=function(){return parseFloat(As())},Mr=function(e){return e.join("")},Wr=function(e){return e},Zr=function(e){return e.arguments_.alignment="t",e},Gr=function(e){return{weight:e}},Ur=function(e){return{replicate:e}},Xr=function(e,t,n){return{operator:{type_:"bjorklund",arguments_:{pulse:e,step:t,rotation:n||0}}}},Hr=function(e){return{operator:{type_:"stretch",arguments_:{amount:e}}}},Jr=function(e){return{operator:{type_:"stretch",arguments_:{amount:"1/"+e}}}},Kr=function(e){return{operator:{type_:"fixed-step",arguments_:{amount:e}}}},Qr=function(e){return{operator:{type_:"degradeBy",arguments_:{amount:e||.5}}}},Vr=function(e,t){return new lt(e,t)},Yr=function(e){return new Z(e,"h")},es=function(e){return{alignment:"v",list:e}},rs=function(e){return{alignment:"r",list:e}},ss=function(e,t){return t&&t.list.length>0?new Z([e,...t.list],t.alignment):e},ts=function(e){return e},ns=function(e){return{name:"struct",args:{sequence:e}}},as=function(e){return{name:"target",args:{name:e}}},is=function(e,t,n){return{name:"bjorklund",args:{pulse:parseInt(e),step:parseInt(t)}}},fs=function(e){return{name:"stretch",args:{amount:e}}},os=function(e){return{name:"shift",args:{amount:"-"+e}}},cs=function(e){return{name:"shift",args:{amount:e}}},ls=function(e){return{name:"stretch",args:{amount:"1/"+e}}},us=function(e){return{name:"scale",args:{scale:e.join("")}}},de=function(e,t){return t},ps=function(e,t){return t.unshift(e),new Z(t,"t")},gs=function(e){return e},vs=function(e,t){return new ct(e.name,e.args,t)},$s=function(e){return e},hs=function(e){return e},ms=function(e){return new G("setcps",{value:e})},_s=function(e){return new G("setcps",{value:e/120/2})},ds=function(){return new G("hush")},s=0,v=0,N=[{line:1,column:1}],x=0,L=[],f=0,B;if("startRule"in c){if(!(c.startRule in p))throw new Error(`Can't start parsing from rule "`+c.startRule+'".');$=p[c.startRule]}function As(){return a.substring(v,s)}function ws(){return M(v,s)}function g(e,t){return{type:"literal",text:e,ignoreCase:t}}function j(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function ys(){return{type:"end"}}function Ae(e){return{type:"other",description:e}}function we(e){var t=N[e],n;if(t)return t;for(n=e-1;!N[n];)n--;for(t=N[n],t={line:t.line,column:t.column};nx&&(x=s,L=[]),L.push(e))}function bs(e,t,n){return new D(D.buildMessage(e,t),e,t,n)}function ye(){var e;return e=ot(),e}function y(){var e,t;return f++,e=s,be(),t=T(),t!==r?(js(),Fs(),v=e,e=Lr()):(s=e,e=r),f--,e===r&&f===0&&o(rr),e}function Cs(){var e;return a.charCodeAt(s)===46?(e=w,s++):(e=r,f===0&&o(ge)),e}function xs(){var e;return Qe.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(sr)),e}function Es(){var e;return Ve.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(tr)),e}function Fs(){var e,t,n,i,l;if(e=s,t=Es(),t!==r){if(n=be(),n===r&&(n=Ss()),n===r&&(n=null),i=[],l=S(),l!==r)for(;l!==r;)i.push(l),l=S();else i=r;i!==r?(t=[t,n,i],e=t):(s=e,e=r)}else s=e,e=r;return e}function js(){var e,t,n,i;if(e=s,t=Cs(),t!==r){if(n=[],i=S(),i!==r)for(;i!==r;)n.push(i),i=S();else n=r;n!==r?(t=[t,n],e=t):(s=e,e=r)}else s=e,e=r;return e}function T(){var e,t,n,i;if(e=Rs(),e===r)if(e=s,t=xs(),t!==r){for(n=[],i=S();i!==r;)n.push(i),i=S();t=[t,n],e=t}else s=e,e=r;return e}function be(){var e;return a.charCodeAt(s)===45?(e=A,s++):(e=r,f===0&&o(ve)),e}function Ss(){var e;return a.charCodeAt(s)===43?(e=E,s++):(e=r,f===0&&o(nr)),e}function Rs(){var e;return a.charCodeAt(s)===48?(e=m,s++):(e=r,f===0&&o(ar)),e}function S(){var e;return Ye.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(ir)),e}function u(){var e,t;for(f++,e=[],ue.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,f===0&&o($e));t!==r;)e.push(t),ue.test(a.charAt(s))?(t=a.charAt(s),s++):(t=r,f===0&&o($e));return f--,t=r,f===0&&o(fr),e}function R(){var e,t,n,i;return e=s,t=u(),a.charCodeAt(s)===44?(n=h,s++):(n=r,f===0&&o(or)),n!==r?(i=u(),t=[t,n,i],e=t):(s=e,e=r),e}function Ce(){var e,t,n,i;return e=s,t=u(),a.charCodeAt(s)===124?(n=b,s++):(n=r,f===0&&o(cr)),n!==r?(i=u(),t=[t,n,i],e=t):(s=e,e=r),e}function P(){var e;return a.charCodeAt(s)===34?(e=F,s++):(e=r,f===0&&o(lr)),e===r&&(a.charCodeAt(s)===39?(e=De,s++):(e=r,f===0&&o(ur))),e}function z(){var e;return er.test(a.charAt(s))?(e=a.charAt(s),s++):(e=r,f===0&&o(pr)),e===r&&(a.charCodeAt(s)===45?(e=A,s++):(e=r,f===0&&o(ve)),e===r&&(a.charCodeAt(s)===35?(e=ke,s++):(e=r,f===0&&o(gr)),e===r&&(a.charCodeAt(s)===46?(e=w,s++):(e=r,f===0&&o(ge)),e===r&&(a.charCodeAt(s)===94?(e=Ne,s++):(e=r,f===0&&o(vr)),e===r&&(a.charCodeAt(s)===95?(e=Be,s++):(e=r,f===0&&o($r)),e===r&&(a.charCodeAt(s)===58?(e=Te,s++):(e=r,f===0&&o(hr)))))))),e}function xe(){var e,t,n;if(e=s,u(),t=[],n=z(),n!==r)for(;n!==r;)t.push(n),n=z();else t=r;return t!==r?(n=u(),v=e,e=Mr(t)):(s=e,e=r),e}function Ps(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===91?(t=K,s++):(t=r,f===0&&o(he)),t!==r?(u(),n=Fe(),n!==r?(u(),a.charCodeAt(s)===93?(i=Q,s++):(i=r,f===0&&o(me)),i!==r?(u(),v=e,e=Wr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Os(){var e,t,n,i;return e=s,u(),a.charCodeAt(s)===60?(t=ze,s++):(t=r,f===0&&o(mr)),t!==r?(u(),n=O(),n!==r?(u(),a.charCodeAt(s)===62?(i=Le,s++):(i=r,f===0&&o(_r)),i!==r?(u(),v=e,e=Zr(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function qs(){var e;return e=xe(),e===r&&(e=Ps(),e===r&&(e=Os())),e}function Is(){var e;return e=Ds(),e===r&&(e=Ns(),e===r&&(e=Bs(),e===r&&(e=Ts(),e===r&&(e=zs(),e===r&&(e=ks(),e===r&&(e=Ls())))))),e}function Ds(){var e,t,n;return e=s,a.charCodeAt(s)===64?(t=Me,s++):(t=r,f===0&&o(dr)),t!==r?(n=y(),n!==r?(v=e,e=Gr(n)):(s=e,e=r)):(s=e,e=r),e}function ks(){var e,t,n;return e=s,a.charCodeAt(s)===33?(t=We,s++):(t=r,f===0&&o(Ar)),t!==r?(n=y(),n!==r?(v=e,e=Ur(n)):(s=e,e=r)):(s=e,e=r),e}function Ns(){var e,t,n,i,l,d,C;return e=s,a.charCodeAt(s)===40?(t=Ze,s++):(t=r,f===0&&o(wr)),t!==r?(u(),n=y(),n!==r?(u(),i=R(),i!==r?(u(),l=y(),l!==r?(u(),R(),u(),d=y(),d===r&&(d=null),u(),a.charCodeAt(s)===41?(C=Ge,s++):(C=r,f===0&&o(yr)),C!==r?(v=e,e=Xr(n,l,d)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Bs(){var e,t,n;return e=s,a.charCodeAt(s)===47?(t=Ue,s++):(t=r,f===0&&o(br)),t!==r?(n=y(),n!==r?(v=e,e=Hr(n)):(s=e,e=r)):(s=e,e=r),e}function Ts(){var e,t,n;return e=s,a.charCodeAt(s)===42?(t=Xe,s++):(t=r,f===0&&o(Cr)),t!==r?(n=y(),n!==r?(v=e,e=Jr(n)):(s=e,e=r)):(s=e,e=r),e}function zs(){var e,t,n;return e=s,a.charCodeAt(s)===37?(t=He,s++):(t=r,f===0&&o(xr)),t!==r?(n=y(),n!==r?(v=e,e=Kr(n)):(s=e,e=r)):(s=e,e=r),e}function Ls(){var e,t,n;return e=s,a.charCodeAt(s)===63?(t=Je,s++):(t=r,f===0&&o(Er)),t!==r?(n=y(),n===r&&(n=null),v=e,e=Qr(n)):(s=e,e=r),e}function Ee(){var e,t,n;return e=s,t=qs(),t!==r?(n=Is(),n===r&&(n=null),v=e,e=Vr(t,n)):(s=e,e=r),e}function O(){var e,t,n;if(e=s,t=[],n=Ee(),n!==r)for(;n!==r;)t.push(n),n=Ee();else t=r;return t!==r&&(v=e,t=Yr(t)),e=t,e}function Ms(){var e,t,n,i,l;if(e=s,t=[],n=s,i=R(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=R(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=es(t)),e=t,e}function Ws(){var e,t,n,i,l;if(e=s,t=[],n=s,i=Ce(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r),n!==r)for(;n!==r;)t.push(n),n=s,i=Ce(),i!==r?(l=O(),l!==r?n=l:(s=n,n=r)):(s=n,n=r);else t=r;return t!==r&&(v=e,t=rs(t)),e=t,e}function Fe(){var e,t,n;return e=s,t=O(),t!==r?(n=Ms(),n===r&&(n=Ws()),n===r&&(n=null),v=e,e=ss(t,n)):(s=e,e=r),e}function Zs(){var e,t,n,i;return e=s,u(),t=P(),t!==r?(n=Fe(),n!==r?(i=P(),i!==r?(v=e,e=ts(n)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Gs(){var e;return e=Ys(),e===r&&(e=Js(),e===r&&(e=Vs(),e===r&&(e=Xs(),e===r&&(e=Hs(),e===r&&(e=Us(),e===r&&(e=Qs(),e===r&&(e=Ks()))))))),e}function Us(){var e,t,n;return e=s,a.substr(s,6)===V?(t=V,s+=6):(t=r,f===0&&o(Fr)),t!==r?(u(),n=q(),n!==r?(v=e,e=ns(n)):(s=e,e=r)):(s=e,e=r),e}function Xs(){var e,t,n,i,l;return e=s,a.substr(s,6)===Y?(t=Y,s+=6):(t=r,f===0&&o(jr)),t!==r?(u(),n=P(),n!==r?(i=xe(),i!==r?(l=P(),l!==r?(v=e,e=as(i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Hs(){var e,t,n,i;return e=s,a.substr(s,6)===ee?(t=ee,s+=6):(t=r,f===0&&o(Sr)),t!==r?(u(),n=T(),n!==r?(u(),i=T(),i!==r?(u(),T(),v=e,e=is(n,i)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r),e}function Js(){var e,t,n;return e=s,a.substr(s,4)===re?(t=re,s+=4):(t=r,f===0&&o(Rr)),t!==r?(u(),n=y(),n!==r?(v=e,e=fs(n)):(s=e,e=r)):(s=e,e=r),e}function Ks(){var e,t,n;return e=s,a.substr(s,4)===se?(t=se,s+=4):(t=r,f===0&&o(Pr)),t!==r?(u(),n=y(),n!==r?(v=e,e=os(n)):(s=e,e=r)):(s=e,e=r),e}function Qs(){var e,t,n;return e=s,a.substr(s,4)===te?(t=te,s+=4):(t=r,f===0&&o(Or)),t!==r?(u(),n=y(),n!==r?(v=e,e=cs(n)):(s=e,e=r)):(s=e,e=r),e}function Vs(){var e,t,n;return e=s,a.substr(s,4)===ne?(t=ne,s+=4):(t=r,f===0&&o(qr)),t!==r?(u(),n=y(),n!==r?(v=e,e=ls(n)):(s=e,e=r)):(s=e,e=r),e}function Ys(){var e,t,n,i,l;if(e=s,a.substr(s,5)===ae?(t=ae,s+=5):(t=r,f===0&&o(Ir)),t!==r)if(u(),n=P(),n!==r){if(i=[],l=z(),l!==r)for(;l!==r;)i.push(l),l=z();else i=r;i!==r?(l=P(),l!==r?(v=e,e=us(i)):(s=e,e=r)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;return e}function W(){var e,t,n,i;if(e=s,a.substr(s,2)===ie?(t=ie,s+=2):(t=r,f===0&&o(Dr)),t!==r){for(n=[],pe.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,f===0&&o(_e));i!==r;)n.push(i),pe.test(a.charAt(s))?(i=a.charAt(s),s++):(i=r,f===0&&o(_e));t=[t,n],e=t}else s=e,e=r;return e}function et(){var e,t,n,i,l,d,C,I;if(e=s,a.substr(s,3)===fe?(t=fe,s+=3):(t=r,f===0&&o(kr)),t!==r)if(u(),a.charCodeAt(s)===91?(n=K,s++):(n=r,f===0&&o(he)),n!==r)if(u(),i=q(),i!==r){for(l=[],d=s,C=R(),C!==r?(I=q(),I!==r?(v=d,d=de(i,I)):(s=d,d=r)):(s=d,d=r);d!==r;)l.push(d),d=s,C=R(),C!==r?(I=q(),I!==r?(v=d,d=de(i,I)):(s=d,d=r)):(s=d,d=r);d=u(),a.charCodeAt(s)===93?(C=Q,s++):(C=r,f===0&&o(me)),C!==r?(v=e,e=ps(i,l)):(s=e,e=r)}else s=e,e=r;else s=e,e=r;else s=e,e=r;return e}function rt(){var e;return e=et(),e===r&&(e=Zs()),e}function q(){var e,t,n,i,l;if(e=s,t=rt(),t!==r){for(u(),n=[],i=W();i!==r;)n.push(i),i=W();v=e,e=gs(t)}else s=e,e=r;return e===r&&(e=s,t=Gs(),t!==r?(u(),a.charCodeAt(s)===36?(n=Ke,s++):(n=r,f===0&&o(Nr)),n!==r?(i=u(),l=q(),l!==r?(v=e,e=vs(t,l)):(s=e,e=r)):(s=e,e=r)):(s=e,e=r)),e}function st(){var e,t;return e=s,t=q(),t!==r&&(v=e,t=$s(t)),e=t,e===r&&(e=W()),e}function tt(){var e;return e=st(),e}function nt(){var e,t;return e=s,u(),t=at(),t===r&&(t=it(),t===r&&(t=ft())),t!==r?(u(),v=e,e=hs(t)):(s=e,e=r),e}function at(){var e,t,n;return e=s,a.substr(s,6)===oe?(t=oe,s+=6):(t=r,f===0&&o(Br)),t!==r?(u(),n=y(),n!==r?(v=e,e=ms(n)):(s=e,e=r)):(s=e,e=r),e}function it(){var e,t,n;return e=s,a.substr(s,6)===ce?(t=ce,s+=6):(t=r,f===0&&o(Tr)),t!==r?(u(),n=y(),n!==r?(v=e,e=_s(n)):(s=e,e=r)):(s=e,e=r),e}function ft(){var e,t;return e=s,a.substr(s,4)===le?(t=le,s+=4):(t=r,f===0&&o(zr)),t!==r&&(v=e,t=ds()),e=t,e}function ot(){var e;return e=tt(),e===r&&(e=nt()),e}var Z=function(e,t){this.type_="pattern",this.arguments_={alignment:t},this.source_=e},ct=function(e,t,n){this.type_=e,this.arguments_=t,this.source_=n},lt=function(e,t){this.type_="element",this.source_=e,this.options_=t,this.location_=ws()},G=function(e,t){this.type_="command",this.name_=e,this.options_=t};if(B=$(),B!==r&&s===a.length)return B;throw B!==r&&s(c,r)=>{const p=a.source_[r].options_,$=p==null?void 0:p.operator;if($){switch($.type_){case"stretch":const A=Pe($.arguments_.amount).inverse();return X(c).fast(A);case"bjorklund":return c.euclid($.arguments_.pulse,$.arguments_.step,$.arguments_.rotation);case"degradeBy":return X(c)._degradeByWith(Se.early(qe*Ie()).segment(1),$.arguments_.amount)}console.warn(`operator "${$.type_}" not implemented`)}if(p!=null&&p.weight)return c;const w=Object.keys(p||{}).filter(A=>A!=="operator");return w.length&&console.warn(`option${w.length>1?"s":""} ${w.map(A=>`"${A}"`).join(", ")} not implemented`),c};function At(a){a.source_=a.source_.map(c=>{const{replicate:r,..._}=c.options_||{};return r?{...c,options_:{..._,weight:r},source_:{type_:"pattern",arguments_:{alignment:"h"},source_:[{type_:"element",source_:c.source_,location_:c.location_,options_:{operator:{type_:"stretch",arguments_:{amount:Pe(r).inverse().toString()}}}}]}}:c})}function k(a){switch(a.type_){case"pattern":At(a);const c=a.source_.map(k).map(dt(a)),r=a.arguments_.alignment;if(r==="v")return $t(...c);if(r==="r")return ut(Se.early(qe*Ie()).segment(1),c);const _=a.source_.some(p=>{var $;return!!(($=p.options_)!=null&&$.weight)});if(!_&&r==="t")return ht(...c);if(_){const p=mt(...a.source_.map(($,w)=>{var A;return[((A=$.options_)==null?void 0:A.weight)||1,c[w]]}));if(r==="t"){const $=a.source_.reduce((w,A)=>{var E;return w+(((E=A.options_)==null?void 0:E.weight)||1)},0);return p._slow($)}return p}return Oe(...c);case"element":if(a.source_==="~")return je;if(typeof a.source_!="object"){if(!a.location_)return console.warn("no location for",a),a.source_;const{start:p,end:$}=a.location_,w=isNaN(Number(a.source_))?a.source_:Number(a.source_);return vt(w).withLocation([p.line,p.column,p.offset],[$.line,$.column,$.offset])}return k(a.source_);case"stretch":return k(a.source_).slow(a.arguments_.amount);default:return console.warn(`node type "${a.type_}" not implemented -> returning silence`),je}}const J=(...a)=>{const c=a.map(r=>{const _=Re(`"${r}"`);return k(_)});return Oe(...c)},wt=a=>{const c=Re(a);return k(c)};H.prototype.define("mini",J,{composable:!0});H.prototype.define("m",J,{composable:!0});H.prototype.define("h",wt,{composable:!0});function bt(a){return typeof a=="string"?J(a):X(a)}export{D as SyntaxError,wt as h,J as mini,bt as minify,Re as parse,k as patternifyAST}; diff --git a/packages/react/examples/nano-repl/dist/assets/index.cc0b04cf.js b/packages/react/examples/nano-repl/dist/assets/index.cc0b04cf.js deleted file mode 100644 index 3e833bfc..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.cc0b04cf.js +++ /dev/null @@ -1 +0,0 @@ -import{P as Pattern}from"./index.ec9f9930.js";let loadCache={};async function loadFont(name){if(loadCache[name])return loadCache[name];const load=async()=>{const url=`https://felixroos.github.io/webaudiofontdata/sound/${name}.js`;console.log("load font",name,url);const preset=await fetch(url).then(h=>h.text());let[_,data]=preset.split("={");return eval("{"+data)};return loadCache[name]=load(),loadCache[name]}async function getFontBufferSource(h,y,S){typeof y=="string"&&(y=toMidi(y));const{buffer:n,zone:e}=await getFontPitch(h,y,S),f=S.createBufferSource();f.buffer=n;const i=e.originalPitch-100*e.coarseTune-e.fineTune,l=1*Math.pow(2,(100*y-i)/1200);return f.playbackRate.value=l,e.loopStart>1&&e.loopStart{const f=await loadFont(h);if(!f)throw new Error(`Could not load soundfont ${h}`);const i=findZone(f,y);if(!i)throw new Error("no soundfont zone found for preset ",h,"pitch",y);const l=await getBuffer(i,S);if(!l)throw new Error(`no soundfont buffer found for preset ${h}, pitch: ${y}`);return{buffer:l,zone:i}};return bufferCache[n]=e(),bufferCache[n]}function findZone(h,y){return h.find(S=>S.keyRangeLow<=y&&S.keyRangeHigh+1>=y)}async function getBuffer(h,y){if(h.sample){console.warn("zone.sample untested!");const n=atob(h.sample);h.buffer=y.createBuffer(1,n.length/2,h.sampleRate);const e=h.buffer.getChannelData(0);let f,i,l;for(var S=0;S=65536/2&&(l=l-65536),e[S]=l/65536}else if(h.file){const n=h.file.length,e=new ArrayBuffer(n),f=new Uint8Array(e),i=atob(h.file);let l;for(let t=0;ty.decodeAudioData(e,t))}}const instruments=["0000_JCLive_sf2_file","0000_Aspirin_sf2_file","0000_Chaos_sf2_file","0000_FluidR3_GM_sf2_file","0000_GeneralUserGS_sf2_file","0000_SBLive_sf2","0000_SoundBlasterOld_sf2","0001_FluidR3_GM_sf2_file","0001_GeneralUserGS_sf2_file","0002_GeneralUserGS_sf2_file","0003_GeneralUserGS_sf2_file","0010_Aspirin_sf2_file","0010_Chaos_sf2_file","0010_FluidR3_GM_sf2_file","0010_GeneralUserGS_sf2_file","0010_JCLive_sf2_file","0010_SBLive_sf2","0010_SoundBlasterOld_sf2","0011_Aspirin_sf2_file","0011_FluidR3_GM_sf2_file","0011_GeneralUserGS_sf2_file","0012_GeneralUserGS_sf2_file","0020_Aspirin_sf2_file","0020_Chaos_sf2_file","0020_FluidR3_GM_sf2_file","0020_GeneralUserGS_sf2_file","0020_JCLive_sf2_file","0020_SBLive_sf2","0020_SoundBlasterOld_sf2","0021_Aspirin_sf2_file","0021_GeneralUserGS_sf2_file","0022_Aspirin_sf2_file","0030_Aspirin_sf2_file","0030_Chaos_sf2_file","0030_FluidR3_GM_sf2_file","0030_GeneralUserGS_sf2_file","0030_JCLive_sf2_file","0030_SBLive_sf2","0030_SoundBlasterOld_sf2","0031_Aspirin_sf2_file","0031_FluidR3_GM_sf2_file","0031_GeneralUserGS_sf2_file","0031_SoundBlasterOld_sf2","0040_Aspirin_sf2_file","0040_Chaos_sf2_file","0040_FluidR3_GM_sf2_file","0040_GeneralUserGS_sf2_file","0040_JCLive_sf2_file","0040_SBLive_sf2","0040_SoundBlasterOld_sf2","0041_FluidR3_GM_sf2_file","0041_GeneralUserGS_sf2_file","0041_SoundBlasterOld_sf2","0042_GeneralUserGS_sf2_file","0043_GeneralUserGS_sf2_file","0044_GeneralUserGS_sf2_file","0045_GeneralUserGS_sf2_file","0046_GeneralUserGS_sf2_file","0050_Aspirin_sf2_file","0050_Chaos_sf2_file","0050_FluidR3_GM_sf2_file","0050_GeneralUserGS_sf2_file","0050_JCLive_sf2_file","0050_SBLive_sf2","0050_SoundBlasterOld_sf2","0051_FluidR3_GM_sf2_file","0051_GeneralUserGS_sf2_file","0052_GeneralUserGS_sf2_file","0053_GeneralUserGS_sf2_file","0054_GeneralUserGS_sf2_file","0060_Aspirin_sf2_file","0060_Chaos_sf2_file","0060_FluidR3_GM_sf2_file","0060_GeneralUserGS_sf2_file","0060_JCLive_sf2_file","0060_SBLive_sf2","0060_SoundBlasterOld_sf2","0061_Aspirin_sf2_file","0061_GeneralUserGS_sf2_file","0061_SoundBlasterOld_sf2","0062_GeneralUserGS_sf2_file","0070_Aspirin_sf2_file","0070_Chaos_sf2_file","0070_FluidR3_GM_sf2_file","0070_GeneralUserGS_sf2_file","0070_JCLive_sf2_file","0070_SBLive_sf2","0070_SoundBlasterOld_sf2","0071_GeneralUserGS_sf2_file","0080_Aspirin_sf2_file","0080_Chaos_sf2_file","0080_FluidR3_GM_sf2_file","0080_GeneralUserGS_sf2_file","0080_JCLive_sf2_file","0080_SBLive_sf2","0080_SoundBlasterOld_sf2","0081_FluidR3_GM_sf2_file","0081_GeneralUserGS_sf2_file","0081_SoundBlasterOld_sf2","0090_Aspirin_sf2_file","0090_Chaos_sf2_file","0090_FluidR3_GM_sf2_file","0090_GeneralUserGS_sf2_file","0090_JCLive_sf2_file","0090_SBLive_sf2","0090_SoundBlasterOld_sf2","0091_SoundBlasterOld_sf2","0100_Aspirin_sf2_file","0100_Chaos_sf2_file","0100_FluidR3_GM_sf2_file","0100_GeneralUserGS_sf2_file","0100_JCLive_sf2_file","0100_SBLive_sf2","0100_SoundBlasterOld_sf2","0101_GeneralUserGS_sf2_file","0101_SoundBlasterOld_sf2","0110_Aspirin_sf2_file","0110_Chaos_sf2_file","0110_FluidR3_GM_sf2_file","0110_GeneralUserGS_sf2_file","0110_JCLive_sf2_file","0110_SBLive_sf2","0110_SoundBlasterOld_sf2","0111_FluidR3_GM_sf2_file","0120_Aspirin_sf2_file","0120_Chaos_sf2_file","0120_FluidR3_GM_sf2_file","0120_GeneralUserGS_sf2_file","0120_JCLive_sf2_file","0120_SBLive_sf2","0120_SoundBlasterOld_sf2","0121_FluidR3_GM_sf2_file","0121_GeneralUserGS_sf2_file","0130_Aspirin_sf2_file","0130_Chaos_sf2_file","0130_FluidR3_GM_sf2_file","0130_GeneralUserGS_sf2_file","0130_JCLive_sf2_file","0130_SBLive_sf2","0130_SoundBlasterOld_sf2","0131_FluidR3_GM_sf2_file","0140_Aspirin_sf2_file","0140_Chaos_sf2_file","0140_FluidR3_GM_sf2_file","0140_GeneralUserGS_sf2_file","0140_JCLive_sf2_file","0140_SBLive_sf2","0140_SoundBlasterOld_sf2","0141_FluidR3_GM_sf2_file","0141_GeneralUserGS_sf2_file","0142_GeneralUserGS_sf2_file","0143_GeneralUserGS_sf2_file","0150_Aspirin_sf2_file","0150_Chaos_sf2_file","0150_FluidR3_GM_sf2_file","0150_GeneralUserGS_sf2_file","0150_JCLive_sf2_file","0150_SBLive_sf2","0150_SoundBlasterOld_sf2","0151_FluidR3_GM_sf2_file","0160_Aspirin_sf2_file","0160_Chaos_sf2_file","0160_FluidR3_GM_sf2_file","0160_GeneralUserGS_sf2_file","0160_JCLive_sf2_file","0160_SBLive_sf2","0160_SoundBlasterOld_sf2","0161_Aspirin_sf2_file","0161_FluidR3_GM_sf2_file","0161_SoundBlasterOld_sf2","0170_Aspirin_sf2_file","0170_Chaos_sf2_file","0170_FluidR3_GM_sf2_file","0170_GeneralUserGS_sf2_file","0170_JCLive_sf2_file","0170_SBLive_sf2","0170_SoundBlasterOld_sf2","0171_FluidR3_GM_sf2_file","0171_GeneralUserGS_sf2_file","0172_FluidR3_GM_sf2_file","0180_Aspirin_sf2_file","0180_Chaos_sf2_file","0180_FluidR3_GM_sf2_file","0180_GeneralUserGS_sf2_file","0180_JCLive_sf2_file","0180_SBLive_sf2","0180_SoundBlasterOld_sf2","0181_Aspirin_sf2_file","0181_GeneralUserGS_sf2_file","0181_SoundBlasterOld_sf2","0190_Aspirin_sf2_file","0190_Chaos_sf2_file","0190_FluidR3_GM_sf2_file","0190_GeneralUserGS_sf2_file","0190_JCLive_sf2_file","0190_SBLive_sf2","0190_SoundBlasterOld_sf2","0191_Aspirin_sf2_file","0191_GeneralUserGS_sf2_file","0191_SoundBlasterOld_sf2","0200_Aspirin_sf2_file","0200_Chaos_sf2_file","0200_FluidR3_GM_sf2_file","0200_GeneralUserGS_sf2_file","0200_JCLive_sf2_file","0200_SBLive_sf2","0200_SoundBlasterOld_sf2","0201_Aspirin_sf2_file","0201_FluidR3_GM_sf2_file","0201_GeneralUserGS_sf2_file","0201_SoundBlasterOld_sf2","0210_Aspirin_sf2_file","0210_Chaos_sf2_file","0210_FluidR3_GM_sf2_file","0210_GeneralUserGS_sf2_file","0210_JCLive_sf2_file","0210_SBLive_sf2","0210_SoundBlasterOld_sf2","0211_Aspirin_sf2_file","0211_FluidR3_GM_sf2_file","0211_GeneralUserGS_sf2_file","0211_SoundBlasterOld_sf2","0212_GeneralUserGS_sf2_file","0220_Aspirin_sf2_file","0220_Chaos_sf2_file","0220_FluidR3_GM_sf2_file","0220_GeneralUserGS_sf2_file","0220_JCLive_sf2_file","0220_SBLive_sf2","0220_SoundBlasterOld_sf2","0221_FluidR3_GM_sf2_file","0230_Aspirin_sf2_file","0230_Chaos_sf2_file","0230_FluidR3_GM_sf2_file","0230_GeneralUserGS_sf2_file","0230_JCLive_sf2_file","0230_SBLive_sf2","0230_SoundBlasterOld_sf2","0231_FluidR3_GM_sf2_file","0231_GeneralUserGS_sf2_file","0231_JCLive_sf2_file","0231_SoundBlasterOld_sf2","0232_FluidR3_GM_sf2_file","0233_FluidR3_GM_sf2_file","0240_Aspirin_sf2_file","0240_Chaos_sf2_file","0240_FluidR3_GM_sf2_file","0240_GeneralUserGS_sf2_file","0240_JCLive_sf2_file","0240_LK_Godin_Nylon_SF2_file","0240_SBLive_sf2","0240_SoundBlasterOld_sf2","0241_GeneralUserGS_sf2_file","0241_JCLive_sf2_file","0242_JCLive_sf2_file","0243_JCLive_sf2_file","0253_Acoustic_Guitar_sf2_file","0250_Aspirin_sf2_file","0250_Chaos_sf2_file","0250_FluidR3_GM_sf2_file","0250_GeneralUserGS_sf2_file","0250_JCLive_sf2_file","0250_LK_AcousticSteel_SF2_file","0250_SBLive_sf2","0250_SoundBlasterOld_sf2","0251_Acoustic_Guitar_sf2_file","0251_GeneralUserGS_sf2_file","0252_Acoustic_Guitar_sf2_file","0252_GeneralUserGS_sf2_file","0253_Acoustic_Guitar_sf2_file","0253_GeneralUserGS_sf2_file","0254_Acoustic_Guitar_sf2_file","0254_GeneralUserGS_sf2_file","0255_GeneralUserGS_sf2_file","0260_Aspirin_sf2_file","0260_Chaos_sf2_file","0260_FluidR3_GM_sf2_file","0260_GeneralUserGS_sf2_file","0260_JCLive_sf2_file","0260_SBLive_sf2","0260_SoundBlasterOld_sf2","0260_Stratocaster_sf2_file","0261_GeneralUserGS_sf2_file","0261_SoundBlasterOld_sf2","0261_Stratocaster_sf2_file","0262_Stratocaster_sf2_file","0270_Aspirin_sf2_file","0270_Chaos_sf2_file","0270_FluidR3_GM_sf2_file","0270_GeneralUserGS_sf2_file","0270_Gibson_Les_Paul_sf2_file","0270_JCLive_sf2_file","0270_SBAWE32_sf2_file","0270_SBLive_sf2","0270_SoundBlasterOld_sf2","0270_Stratocaster_sf2_file","0271_GeneralUserGS_sf2_file","0271_Stratocaster_sf2_file","0272_Stratocaster_sf2_file","0280_Aspirin_sf2_file","0280_Chaos_sf2_file","0280_FluidR3_GM_sf2_file","0280_GeneralUserGS_sf2_file","0280_JCLive_sf2_file","0280_LesPaul_sf2","0280_LesPaul_sf2_file","0280_SBAWE32_sf2_file","0280_SBLive_sf2","0280_SoundBlasterOld_sf2","0281_Aspirin_sf2_file","0281_FluidR3_GM_sf2_file","0281_GeneralUserGS_sf2_file","0282_FluidR3_GM_sf2_file","0282_GeneralUserGS_sf2_file","0283_GeneralUserGS_sf2_file","0290_Aspirin_sf2_file","0290_Chaos_sf2_file","0290_FluidR3_GM_sf2_file","0290_GeneralUserGS_sf2_file","0290_JCLive_sf2_file","0290_LesPaul_sf2","0290_LesPaul_sf2_file","0290_SBAWE32_sf2_file","0290_SBLive_sf2","0290_SoundBlasterOld_sf2","0291_Aspirin_sf2_file","0291_LesPaul_sf2","0291_LesPaul_sf2_file","0291_SBAWE32_sf2_file","0291_SoundBlasterOld_sf2","0292_Aspirin_sf2_file","0292_LesPaul_sf2","0292_LesPaul_sf2_file","0300_Aspirin_sf2_file","0300_Chaos_sf2_file","0300_FluidR3_GM_sf2_file","0300_GeneralUserGS_sf2_file","0300_JCLive_sf2_file","0300_LesPaul_sf2","0300_LesPaul_sf2_file","0300_SBAWE32_sf2_file","0300_SBLive_sf2","0300_SoundBlasterOld_sf2","0301_Aspirin_sf2_file","0301_FluidR3_GM_sf2_file","0301_GeneralUserGS_sf2_file","0301_JCLive_sf2_file","0301_LesPaul_sf2","0301_LesPaul_sf2_file","0302_Aspirin_sf2_file","0302_GeneralUserGS_sf2_file","0302_JCLive_sf2_file","0303_Aspirin_sf2_file","0304_Aspirin_sf2_file","0310_Aspirin_sf2_file","0310_Chaos_sf2_file","0310_FluidR3_GM_sf2_file","0310_GeneralUserGS_sf2_file","0310_JCLive_sf2_file","0310_LesPaul_sf2","0310_LesPaul_sf2_file","0310_SBAWE32_sf2_file","0310_SBLive_sf2","0310_SoundBlasterOld_sf2","0311_FluidR3_GM_sf2_file","0311_GeneralUserGS_sf2_file","0320_Aspirin_sf2_file","0320_Chaos_sf2_file","0320_FluidR3_GM_sf2_file","0320_GeneralUserGS_sf2_file","0320_JCLive_sf2_file","0320_SBLive_sf2","0320_SoundBlasterOld_sf2","0321_GeneralUserGS_sf2_file","0322_GeneralUserGS_sf2_file","0330_Aspirin_sf2_file","0330_Chaos_sf2_file","0330_FluidR3_GM_sf2_file","0330_GeneralUserGS_sf2_file","0330_JCLive_sf2_file","0330_SBLive_sf2","0330_SoundBlasterOld_sf2","0331_GeneralUserGS_sf2_file","0332_GeneralUserGS_sf2_file","0340_Aspirin_sf2_file","0340_Chaos_sf2_file","0340_FluidR3_GM_sf2_file","0340_GeneralUserGS_sf2_file","0340_JCLive_sf2_file","0340_SBLive_sf2","0340_SoundBlasterOld_sf2","0341_Aspirin_sf2_file","0341_GeneralUserGS_sf2_file","0350_Aspirin_sf2_file","0350_Chaos_sf2_file","0350_FluidR3_GM_sf2_file","0350_GeneralUserGS_sf2_file","0350_JCLive_sf2_file","0350_SBLive_sf2","0350_SoundBlasterOld_sf2","0351_GeneralUserGS_sf2_file","0360_Aspirin_sf2_file","0360_Chaos_sf2_file","0360_FluidR3_GM_sf2_file","0360_GeneralUserGS_sf2_file","0360_JCLive_sf2_file","0360_SBLive_sf2","0360_SoundBlasterOld_sf2","0361_GeneralUserGS_sf2_file","0370_Aspirin_sf2_file","0370_Chaos_sf2_file","0370_FluidR3_GM_sf2_file","0370_GeneralUserGS_sf2_file","0370_JCLive_sf2_file","0370_SBLive_sf2","0370_SoundBlasterOld_sf2","0371_GeneralUserGS_sf2_file","0372_GeneralUserGS_sf2_file","0385_GeneralUserGS_sf2_file","0380_Aspirin_sf2_file","0380_Chaos_sf2_file","0380_FluidR3_GM_sf2_file","0380_GeneralUserGS_sf2_file","0380_JCLive_sf2_file","0380_SBLive_sf2","0380_SoundBlasterOld_sf2","0381_FluidR3_GM_sf2_file","0381_GeneralUserGS_sf2_file","0382_FluidR3_GM_sf2_file","0382_GeneralUserGS_sf2_file","0383_GeneralUserGS_sf2_file","0384_GeneralUserGS_sf2_file","0386_GeneralUserGS_sf2_file","0387_GeneralUserGS_sf2_file","0390_Aspirin_sf2_file","0390_Chaos_sf2_file","0390_FluidR3_GM_sf2_file","0390_GeneralUserGS_sf2_file","0390_JCLive_sf2_file","0390_SBLive_sf2","0390_SoundBlasterOld_sf2","0391_FluidR3_GM_sf2_file","0391_GeneralUserGS_sf2_file","0391_SoundBlasterOld_sf2","0392_FluidR3_GM_sf2_file","0392_GeneralUserGS_sf2_file","0393_GeneralUserGS_sf2_file","0400_Aspirin_sf2_file","0400_Chaos_sf2_file","0400_FluidR3_GM_sf2_file","0400_GeneralUserGS_sf2_file","0400_JCLive_sf2_file","0400_SBLive_sf2","0400_SoundBlasterOld_sf2","0401_Aspirin_sf2_file","0401_FluidR3_GM_sf2_file","0401_GeneralUserGS_sf2_file","0402_GeneralUserGS_sf2_file","0410_Aspirin_sf2_file","0410_Chaos_sf2_file","0410_FluidR3_GM_sf2_file","0410_GeneralUserGS_sf2_file","0410_JCLive_sf2_file","0410_SBLive_sf2","0410_SoundBlasterOld_sf2","0411_FluidR3_GM_sf2_file","0420_Aspirin_sf2_file","0420_Chaos_sf2_file","0420_FluidR3_GM_sf2_file","0420_GeneralUserGS_sf2_file","0420_JCLive_sf2_file","0420_SBLive_sf2","0420_SoundBlasterOld_sf2","0421_FluidR3_GM_sf2_file","0421_GeneralUserGS_sf2_file","0430_Aspirin_sf2_file","0430_Chaos_sf2_file","0430_FluidR3_GM_sf2_file","0430_GeneralUserGS_sf2_file","0430_JCLive_sf2_file","0430_SBLive_sf2","0430_SoundBlasterOld_sf2","0431_FluidR3_GM_sf2_file","0440_Aspirin_sf2_file","0440_Chaos_sf2_file","0440_FluidR3_GM_sf2_file","0440_GeneralUserGS_sf2_file","0440_JCLive_sf2_file","0440_SBLive_sf2","0440_SoundBlasterOld_sf2","0441_GeneralUserGS_sf2_file","0442_GeneralUserGS_sf2_file","0450_Aspirin_sf2_file","0450_Chaos_sf2_file","0450_FluidR3_GM_sf2_file","0450_GeneralUserGS_sf2_file","0450_JCLive_sf2_file","0450_SBLive_sf2","0450_SoundBlasterOld_sf2","0451_FluidR3_GM_sf2_file","0460_Aspirin_sf2_file","0460_Chaos_sf2_file","0460_FluidR3_GM_sf2_file","0460_GeneralUserGS_sf2_file","0460_JCLive_sf2_file","0460_SBLive_sf2","0460_SoundBlasterOld_sf2","0461_FluidR3_GM_sf2_file","0470_Aspirin_sf2_file","0470_Chaos_sf2_file","0470_FluidR3_GM_sf2_file","0470_GeneralUserGS_sf2_file","0470_JCLive_sf2_file","0470_SBLive_sf2","0470_SoundBlasterOld_sf2","0471_FluidR3_GM_sf2_file","0471_GeneralUserGS_sf2_file","0480_Aspirin_sf2_file","0480_Chaos_sf2_file","0480_FluidR3_GM_sf2_file","0480_GeneralUserGS_sf2_file","0480_JCLive_sf2_file","0480_SBLive_sf2","0480_SoundBlasterOld_sf2","04810_GeneralUserGS_sf2_file","04811_GeneralUserGS_sf2_file","04812_GeneralUserGS_sf2_file","04813_GeneralUserGS_sf2_file","04814_GeneralUserGS_sf2_file","04815_GeneralUserGS_sf2_file","04816_GeneralUserGS_sf2_file","04817_GeneralUserGS_sf2_file","0481_Aspirin_sf2_file","0481_FluidR3_GM_sf2_file","0481_GeneralUserGS_sf2_file","0482_Aspirin_sf2_file","0482_GeneralUserGS_sf2_file","0483_GeneralUserGS_sf2_file","0484_GeneralUserGS_sf2_file","0485_GeneralUserGS_sf2_file","0486_GeneralUserGS_sf2_file","0487_GeneralUserGS_sf2_file","0488_GeneralUserGS_sf2_file","0489_GeneralUserGS_sf2_file","0490_Aspirin_sf2_file","0490_Chaos_sf2_file","0490_FluidR3_GM_sf2_file","0490_GeneralUserGS_sf2_file","0490_JCLive_sf2_file","0490_SBLive_sf2","0490_SoundBlasterOld_sf2","0491_GeneralUserGS_sf2_file","0492_GeneralUserGS_sf2_file","0500_Aspirin_sf2_file","0500_Chaos_sf2_file","0500_FluidR3_GM_sf2_file","0500_GeneralUserGS_sf2_file","0500_JCLive_sf2_file","0500_SBLive_sf2","0500_SoundBlasterOld_sf2","0501_FluidR3_GM_sf2_file","0501_GeneralUserGS_sf2_file","0502_FluidR3_GM_sf2_file","0502_GeneralUserGS_sf2_file","0503_FluidR3_GM_sf2_file","0504_FluidR3_GM_sf2_file","0505_FluidR3_GM_sf2_file","0510_Aspirin_sf2_file","0510_Chaos_sf2_file","0510_FluidR3_GM_sf2_file","0510_GeneralUserGS_sf2_file","0510_JCLive_sf2_file","0510_SBLive_sf2","0510_SoundBlasterOld_sf2","0511_GeneralUserGS_sf2_file","0511_SoundBlasterOld_sf2","0520_Aspirin_sf2_file","0520_Chaos_sf2_file","0520_FluidR3_GM_sf2_file","0520_GeneralUserGS_sf2_file","0520_JCLive_sf2_file","0520_SBLive_sf2","0520_Soul_Ahhs_sf2_file","0520_SoundBlasterOld_sf2","0521_FluidR3_GM_sf2_file","0521_Soul_Ahhs_sf2_file","0521_SoundBlasterOld_sf2","0522_Soul_Ahhs_sf2_file","0530_Aspirin_sf2_file","0530_Chaos_sf2_file","0530_FluidR3_GM_sf2_file","0530_GeneralUserGS_sf2_file","0530_JCLive_sf2_file","0530_SBLive_sf2","0530_Soul_Ahhs_sf2_file","0530_SoundBlasterOld_sf2","0531_FluidR3_GM_sf2_file","0531_GeneralUserGS_sf2_file","0531_JCLive_sf2_file","0531_SoundBlasterOld_sf2","0540_Aspirin_sf2_file","0540_Chaos_sf2_file","0540_FluidR3_GM_sf2_file","0540_GeneralUserGS_sf2_file","0540_JCLive_sf2_file","0540_SBLive_sf2","0540_SoundBlasterOld_sf2","0541_FluidR3_GM_sf2_file","0550_Aspirin_sf2_file","0550_Chaos_sf2_file","0550_FluidR3_GM_sf2_file","0550_GeneralUserGS_sf2_file","0550_JCLive_sf2_file","0550_SBLive_sf2","0550_SoundBlasterOld_sf2","0551_Aspirin_sf2_file","0551_FluidR3_GM_sf2_file","0560_Aspirin_sf2_file","0560_Chaos_sf2_file","0560_FluidR3_GM_sf2_file","0560_GeneralUserGS_sf2_file","0560_JCLive_sf2_file","0560_SBLive_sf2","0560_SoundBlasterOld_sf2","0570_Aspirin_sf2_file","0570_Chaos_sf2_file","0570_FluidR3_GM_sf2_file","0570_GeneralUserGS_sf2_file","0570_JCLive_sf2_file","0570_SBLive_sf2","0570_SoundBlasterOld_sf2","0571_GeneralUserGS_sf2_file","0580_Aspirin_sf2_file","0580_Chaos_sf2_file","0580_FluidR3_GM_sf2_file","0580_GeneralUserGS_sf2_file","0580_JCLive_sf2_file","0580_SBLive_sf2","0580_SoundBlasterOld_sf2","0581_GeneralUserGS_sf2_file","0590_Aspirin_sf2_file","0590_Chaos_sf2_file","0590_FluidR3_GM_sf2_file","0590_GeneralUserGS_sf2_file","0590_JCLive_sf2_file","0590_SBLive_sf2","0590_SoundBlasterOld_sf2","0591_GeneralUserGS_sf2_file","0600_Aspirin_sf2_file","0600_Chaos_sf2_file","0600_FluidR3_GM_sf2_file","0600_GeneralUserGS_sf2_file","0600_JCLive_sf2_file","0600_SBLive_sf2","0600_SoundBlasterOld_sf2","0601_FluidR3_GM_sf2_file","0601_GeneralUserGS_sf2_file","0602_GeneralUserGS_sf2_file","0603_GeneralUserGS_sf2_file","0610_Aspirin_sf2_file","0610_Chaos_sf2_file","0610_FluidR3_GM_sf2_file","0610_GeneralUserGS_sf2_file","0610_JCLive_sf2_file","0610_SBLive_sf2","0610_SoundBlasterOld_sf2","0611_GeneralUserGS_sf2_file","0612_GeneralUserGS_sf2_file","0613_GeneralUserGS_sf2_file","0614_GeneralUserGS_sf2_file","0615_GeneralUserGS_sf2_file","0620_Aspirin_sf2_file","0620_Chaos_sf2_file","0620_FluidR3_GM_sf2_file","0620_GeneralUserGS_sf2_file","0620_JCLive_sf2_file","0620_SBLive_sf2","0620_SoundBlasterOld_sf2","0621_Aspirin_sf2_file","0621_FluidR3_GM_sf2_file","0621_GeneralUserGS_sf2_file","0622_FluidR3_GM_sf2_file","0622_GeneralUserGS_sf2_file","0630_Aspirin_sf2_file","0630_Chaos_sf2_file","0630_FluidR3_GM_sf2_file","0630_GeneralUserGS_sf2_file","0630_JCLive_sf2_file","0630_SBLive_sf2","0630_SoundBlasterOld_sf2","0631_Aspirin_sf2_file","0631_FluidR3_GM_sf2_file","0631_GeneralUserGS_sf2_file","0632_FluidR3_GM_sf2_file","0633_FluidR3_GM_sf2_file","0640_Aspirin_sf2_file","0640_Chaos_sf2_file","0640_FluidR3_GM_sf2_file","0640_GeneralUserGS_sf2_file","0640_JCLive_sf2_file","0640_SBLive_sf2","0640_SoundBlasterOld_sf2","0641_FluidR3_GM_sf2_file","0650_Aspirin_sf2_file","0650_Chaos_sf2_file","0650_FluidR3_GM_sf2_file","0650_GeneralUserGS_sf2_file","0650_JCLive_sf2_file","0650_SBLive_sf2","0650_SoundBlasterOld_sf2","0651_Aspirin_sf2_file","0651_FluidR3_GM_sf2_file","0660_Aspirin_sf2_file","0660_Chaos_sf2_file","0660_FluidR3_GM_sf2_file","0660_GeneralUserGS_sf2_file","0660_JCLive_sf2_file","0660_SBLive_sf2","0660_SoundBlasterOld_sf2","0661_FluidR3_GM_sf2_file","0661_GeneralUserGS_sf2_file","0670_Aspirin_sf2_file","0670_Chaos_sf2_file","0670_FluidR3_GM_sf2_file","0670_GeneralUserGS_sf2_file","0670_JCLive_sf2_file","0670_SBLive_sf2","0670_SoundBlasterOld_sf2","0671_FluidR3_GM_sf2_file","0680_Aspirin_sf2_file","0680_Chaos_sf2_file","0680_FluidR3_GM_sf2_file","0680_GeneralUserGS_sf2_file","0680_JCLive_sf2_file","0680_SBLive_sf2","0680_SoundBlasterOld_sf2","0681_FluidR3_GM_sf2_file","0690_Aspirin_sf2_file","0690_Chaos_sf2_file","0690_FluidR3_GM_sf2_file","0690_GeneralUserGS_sf2_file","0690_JCLive_sf2_file","0690_SBLive_sf2","0690_SoundBlasterOld_sf2","0691_FluidR3_GM_sf2_file","0700_Aspirin_sf2_file","0700_Chaos_sf2_file","0700_FluidR3_GM_sf2_file","0700_GeneralUserGS_sf2_file","0700_JCLive_sf2_file","0700_SBLive_sf2","0700_SoundBlasterOld_sf2","0701_FluidR3_GM_sf2_file","0701_GeneralUserGS_sf2_file","0710_Aspirin_sf2_file","0710_Chaos_sf2_file","0710_FluidR3_GM_sf2_file","0710_GeneralUserGS_sf2_file","0710_JCLive_sf2_file","0710_SBLive_sf2","0710_SoundBlasterOld_sf2","0711_FluidR3_GM_sf2_file","0720_Aspirin_sf2_file","0720_Chaos_sf2_file","0720_FluidR3_GM_sf2_file","0720_GeneralUserGS_sf2_file","0720_JCLive_sf2_file","0720_SBLive_sf2","0720_SoundBlasterOld_sf2","0721_FluidR3_GM_sf2_file","0721_SoundBlasterOld_sf2","0730_Aspirin_sf2_file","0730_Chaos_sf2_file","0730_FluidR3_GM_sf2_file","0730_GeneralUserGS_sf2_file","0730_JCLive_sf2_file","0730_SBLive_sf2","0730_SoundBlasterOld_sf2","0731_Aspirin_sf2_file","0731_FluidR3_GM_sf2_file","0731_SoundBlasterOld_sf2","0740_Aspirin_sf2_file","0740_Chaos_sf2_file","0740_FluidR3_GM_sf2_file","0740_GeneralUserGS_sf2_file","0740_JCLive_sf2_file","0740_SBLive_sf2","0740_SoundBlasterOld_sf2","0741_GeneralUserGS_sf2_file","0750_Aspirin_sf2_file","0750_Chaos_sf2_file","0750_FluidR3_GM_sf2_file","0750_GeneralUserGS_sf2_file","0750_JCLive_sf2_file","0750_SBLive_sf2","0750_SoundBlasterOld_sf2","0751_Aspirin_sf2_file","0751_FluidR3_GM_sf2_file","0751_GeneralUserGS_sf2_file","0751_SoundBlasterOld_sf2","0760_Aspirin_sf2_file","0760_Chaos_sf2_file","0760_FluidR3_GM_sf2_file","0760_GeneralUserGS_sf2_file","0760_JCLive_sf2_file","0760_SBLive_sf2","0760_SoundBlasterOld_sf2","0761_FluidR3_GM_sf2_file","0761_GeneralUserGS_sf2_file","0761_SoundBlasterOld_sf2","0762_GeneralUserGS_sf2_file","0770_Aspirin_sf2_file","0770_Chaos_sf2_file","0770_FluidR3_GM_sf2_file","0770_GeneralUserGS_sf2_file","0770_JCLive_sf2_file","0770_SBLive_sf2","0770_SoundBlasterOld_sf2","0771_FluidR3_GM_sf2_file","0771_GeneralUserGS_sf2_file","0772_GeneralUserGS_sf2_file","0780_Aspirin_sf2_file","0780_Chaos_sf2_file","0780_FluidR3_GM_sf2_file","0780_GeneralUserGS_sf2_file","0780_JCLive_sf2_file","0780_SBLive_sf2","0780_SoundBlasterOld_sf2","0781_GeneralUserGS_sf2_file","0790_Aspirin_sf2_file","0790_Chaos_sf2_file","0790_FluidR3_GM_sf2_file","0790_GeneralUserGS_sf2_file","0790_JCLive_sf2_file","0790_SBLive_sf2","0790_SoundBlasterOld_sf2","0791_GeneralUserGS_sf2_file","0800_Aspirin_sf2_file","0800_Chaos_sf2_file","0800_FluidR3_GM_sf2_file","0800_GeneralUserGS_sf2_file","0800_JCLive_sf2_file","0800_SBLive_sf2","0800_SoundBlasterOld_sf2","0801_FluidR3_GM_sf2_file","0801_GeneralUserGS_sf2_file","0810_Aspirin_sf2_file","0810_Chaos_sf2_file","0810_FluidR3_GM_sf2_file","0810_GeneralUserGS_sf2_file","0810_JCLive_sf2_file","0810_SBLive_sf2","0810_SoundBlasterOld_sf2","0811_Aspirin_sf2_file","0811_GeneralUserGS_sf2_file","0811_SoundBlasterOld_sf2","0820_Aspirin_sf2_file","0820_Chaos_sf2_file","0820_FluidR3_GM_sf2_file","0820_GeneralUserGS_sf2_file","0820_JCLive_sf2_file","0820_SBLive_sf2","0820_SoundBlasterOld_sf2","0821_FluidR3_GM_sf2_file","0821_GeneralUserGS_sf2_file","0821_SoundBlasterOld_sf2","0822_GeneralUserGS_sf2_file","0823_GeneralUserGS_sf2_file","0830_Aspirin_sf2_file","0830_Chaos_sf2_file","0830_FluidR3_GM_sf2_file","0830_GeneralUserGS_sf2_file","0830_JCLive_sf2_file","0830_SBLive_sf2","0830_SoundBlasterOld_sf2","0831_FluidR3_GM_sf2_file","0831_GeneralUserGS_sf2_file","0831_SoundBlasterOld_sf2","0840_Aspirin_sf2_file","0840_Chaos_sf2_file","0840_FluidR3_GM_sf2_file","0840_GeneralUserGS_sf2_file","0840_JCLive_sf2_file","0840_SBLive_sf2","0840_SoundBlasterOld_sf2","0841_Aspirin_sf2_file","0841_Chaos_sf2_file","0841_FluidR3_GM_sf2_file","0841_GeneralUserGS_sf2_file","0841_JCLive_sf2_file","0841_SoundBlasterOld_sf2","0842_FluidR3_GM_sf2_file","0850_Aspirin_sf2_file","0850_Chaos_sf2_file","0850_FluidR3_GM_sf2_file","0850_GeneralUserGS_sf2_file","0850_JCLive_sf2_file","0850_SBLive_sf2","0850_SoundBlasterOld_sf2","0851_FluidR3_GM_sf2_file","0851_GeneralUserGS_sf2_file","0851_JCLive_sf2_file","0851_SoundBlasterOld_sf2","0860_Aspirin_sf2_file","0860_Chaos_sf2_file","0860_FluidR3_GM_sf2_file","0860_GeneralUserGS_sf2_file","0860_JCLive_sf2_file","0860_SBLive_sf2","0860_SoundBlasterOld_sf2","0861_Aspirin_sf2_file","0861_FluidR3_GM_sf2_file","0861_SoundBlasterOld_sf2","0870_Aspirin_sf2_file","0870_Chaos_sf2_file","0870_FluidR3_GM_sf2_file","0870_GeneralUserGS_sf2_file","0870_JCLive_sf2_file","0870_SBLive_sf2","0870_SoundBlasterOld_sf2","0871_GeneralUserGS_sf2_file","0872_GeneralUserGS_sf2_file","0873_GeneralUserGS_sf2_file","0880_Aspirin_sf2_file","0880_Chaos_sf2_file","0880_FluidR3_GM_sf2_file","0880_GeneralUserGS_sf2_file","0880_JCLive_sf2_file","0880_SBLive_sf2","0880_SoundBlasterOld_sf2","0881_Aspirin_sf2_file","0881_FluidR3_GM_sf2_file","0881_GeneralUserGS_sf2_file","0881_SoundBlasterOld_sf2","0882_Aspirin_sf2_file","0882_FluidR3_GM_sf2_file","0882_GeneralUserGS_sf2_file","0883_GeneralUserGS_sf2_file","0884_GeneralUserGS_sf2_file","0885_GeneralUserGS_sf2_file","0886_GeneralUserGS_sf2_file","0887_GeneralUserGS_sf2_file","0888_GeneralUserGS_sf2_file","0889_GeneralUserGS_sf2_file","0890_Aspirin_sf2_file","0890_Chaos_sf2_file","0890_FluidR3_GM_sf2_file","0890_GeneralUserGS_sf2_file","0890_JCLive_sf2_file","0890_SBLive_sf2","0890_SoundBlasterOld_sf2","0891_Aspirin_sf2_file","0891_FluidR3_GM_sf2_file","0891_GeneralUserGS_sf2_file","0900_Aspirin_sf2_file","0900_Chaos_sf2_file","0900_FluidR3_GM_sf2_file","0900_GeneralUserGS_sf2_file","0900_JCLive_sf2_file","0900_SBLive_sf2","0900_SoundBlasterOld_sf2","0901_Aspirin_sf2_file","0901_FluidR3_GM_sf2_file","0901_GeneralUserGS_sf2_file","0901_SoundBlasterOld_sf2","0910_Aspirin_sf2_file","0910_Chaos_sf2_file","0910_FluidR3_GM_sf2_file","0910_GeneralUserGS_sf2_file","0910_JCLive_sf2_file","0910_SBLive_sf2","0910_SoundBlasterOld_sf2","0911_Aspirin_sf2_file","0911_GeneralUserGS_sf2_file","0911_JCLive_sf2_file","0911_SoundBlasterOld_sf2","0920_Aspirin_sf2_file","0920_Chaos_sf2_file","0920_FluidR3_GM_sf2_file","0920_GeneralUserGS_sf2_file","0920_JCLive_sf2_file","0920_SBLive_sf2","0920_SoundBlasterOld_sf2","0921_Aspirin_sf2_file","0921_GeneralUserGS_sf2_file","0921_SoundBlasterOld_sf2","0930_Aspirin_sf2_file","0930_Chaos_sf2_file","0930_FluidR3_GM_sf2_file","0930_GeneralUserGS_sf2_file","0930_JCLive_sf2_file","0930_SBLive_sf2","0930_SoundBlasterOld_sf2","0931_Aspirin_sf2_file","0931_FluidR3_GM_sf2_file","0931_GeneralUserGS_sf2_file","0931_SoundBlasterOld_sf2","0940_Aspirin_sf2_file","0940_Chaos_sf2_file","0940_FluidR3_GM_sf2_file","0940_GeneralUserGS_sf2_file","0940_JCLive_sf2_file","0940_SBLive_sf2","0940_SoundBlasterOld_sf2","0941_Aspirin_sf2_file","0941_FluidR3_GM_sf2_file","0941_GeneralUserGS_sf2_file","0941_JCLive_sf2_file","0950_Aspirin_sf2_file","0950_Chaos_sf2_file","0950_FluidR3_GM_sf2_file","0950_GeneralUserGS_sf2_file","0950_JCLive_sf2_file","0950_SBLive_sf2","0950_SoundBlasterOld_sf2","0951_FluidR3_GM_sf2_file","0951_GeneralUserGS_sf2_file","0960_Aspirin_sf2_file","0960_Chaos_sf2_file","0960_FluidR3_GM_sf2_file","0960_GeneralUserGS_sf2_file","0960_JCLive_sf2_file","0960_SBLive_sf2","0960_SoundBlasterOld_sf2","0961_Aspirin_sf2_file","0961_FluidR3_GM_sf2_file","0961_GeneralUserGS_sf2_file","0961_SoundBlasterOld_sf2","0962_GeneralUserGS_sf2_file","0970_Aspirin_sf2_file","0970_Chaos_sf2_file","0970_FluidR3_GM_sf2_file","0970_GeneralUserGS_sf2_file","0970_JCLive_sf2_file","0970_SBLive_sf2","0970_SoundBlasterOld_sf2","0971_FluidR3_GM_sf2_file","0971_GeneralUserGS_sf2_file","0971_SoundBlasterOld_sf2","0980_Aspirin_sf2_file","0980_Chaos_sf2_file","0980_FluidR3_GM_sf2_file","0980_GeneralUserGS_sf2_file","0980_JCLive_sf2_file","0980_SBLive_sf2","0980_SoundBlasterOld_sf2","0981_Aspirin_sf2_file","0981_FluidR3_GM_sf2_file","0981_GeneralUserGS_sf2_file","0981_SoundBlasterOld_sf2","0982_GeneralUserGS_sf2_file","0983_GeneralUserGS_sf2_file","0984_GeneralUserGS_sf2_file","0990_Aspirin_sf2_file","0990_Chaos_sf2_file","0990_FluidR3_GM_sf2_file","0990_GeneralUserGS_sf2_file","0990_JCLive_sf2_file","0990_SBLive_sf2","0990_SoundBlasterOld_sf2","0991_Aspirin_sf2_file","0991_FluidR3_GM_sf2_file","0991_GeneralUserGS_sf2_file","0991_JCLive_sf2_file","0991_SoundBlasterOld_sf2","0992_FluidR3_GM_sf2_file","0992_JCLive_sf2_file","0993_JCLive_sf2_file","0994_JCLive_sf2_file","1000_Aspirin_sf2_file","1000_Chaos_sf2_file","1000_FluidR3_GM_sf2_file","1000_GeneralUserGS_sf2_file","1000_JCLive_sf2_file","1000_SBLive_sf2","1000_SoundBlasterOld_sf2","1001_Aspirin_sf2_file","1001_FluidR3_GM_sf2_file","1001_GeneralUserGS_sf2_file","1001_JCLive_sf2_file","1001_SoundBlasterOld_sf2","1002_Aspirin_sf2_file","1002_FluidR3_GM_sf2_file","1002_GeneralUserGS_sf2_file","1010_Aspirin_sf2_file","1010_Chaos_sf2_file","1010_FluidR3_GM_sf2_file","1010_GeneralUserGS_sf2_file","1010_JCLive_sf2_file","1010_SBLive_sf2","1010_SoundBlasterOld_sf2","1011_Aspirin_sf2_file","1011_FluidR3_GM_sf2_file","1011_JCLive_sf2_file","1012_Aspirin_sf2_file","1020_Aspirin_sf2_file","1020_Chaos_sf2_file","1020_FluidR3_GM_sf2_file","1020_GeneralUserGS_sf2_file","1020_JCLive_sf2_file","1020_SBLive_sf2","1020_SoundBlasterOld_sf2","1021_Aspirin_sf2_file","1021_FluidR3_GM_sf2_file","1021_GeneralUserGS_sf2_file","1021_JCLive_sf2_file","1021_SoundBlasterOld_sf2","1022_GeneralUserGS_sf2_file","1030_Aspirin_sf2_file","1030_Chaos_sf2_file","1030_FluidR3_GM_sf2_file","1030_GeneralUserGS_sf2_file","1030_JCLive_sf2_file","1030_SBLive_sf2","1030_SoundBlasterOld_sf2","1031_Aspirin_sf2_file","1031_FluidR3_GM_sf2_file","1031_GeneralUserGS_sf2_file","1031_SoundBlasterOld_sf2","1032_FluidR3_GM_sf2_file","1040_Aspirin_sf2_file","1040_Chaos_sf2_file","1040_FluidR3_GM_sf2_file","1040_GeneralUserGS_sf2_file","1040_JCLive_sf2_file","1040_SBLive_sf2","1040_SoundBlasterOld_sf2","1041_FluidR3_GM_sf2_file","1041_GeneralUserGS_sf2_file","1050_Aspirin_sf2_file","1050_Chaos_sf2_file","1050_FluidR3_GM_sf2_file","1050_GeneralUserGS_sf2_file","1050_JCLive_sf2_file","1050_SBLive_sf2","1050_SoundBlasterOld_sf2","1051_GeneralUserGS_sf2_file","1060_Aspirin_sf2_file","1060_Chaos_sf2_file","1060_FluidR3_GM_sf2_file","1060_GeneralUserGS_sf2_file","1060_JCLive_sf2_file","1060_SBLive_sf2","1060_SoundBlasterOld_sf2","1061_FluidR3_GM_sf2_file","1061_GeneralUserGS_sf2_file","1061_SoundBlasterOld_sf2","1070_Aspirin_sf2_file","1070_Chaos_sf2_file","1070_FluidR3_GM_sf2_file","1070_GeneralUserGS_sf2_file","1070_JCLive_sf2_file","1070_SBLive_sf2","1070_SoundBlasterOld_sf2","1071_FluidR3_GM_sf2_file","1071_GeneralUserGS_sf2_file","1072_GeneralUserGS_sf2_file","1073_GeneralUserGS_sf2_file","1080_Aspirin_sf2_file","1080_Chaos_sf2_file","1080_FluidR3_GM_sf2_file","1080_GeneralUserGS_sf2_file","1080_JCLive_sf2_file","1080_SBLive_sf2","1080_SoundBlasterOld_sf2","1081_SoundBlasterOld_sf2","1090_Aspirin_sf2_file","1090_Chaos_sf2_file","1090_FluidR3_GM_sf2_file","1090_GeneralUserGS_sf2_file","1090_JCLive_sf2_file","1090_SBLive_sf2","1090_SoundBlasterOld_sf2","1091_SoundBlasterOld_sf2","1100_Aspirin_sf2_file","1100_Chaos_sf2_file","1100_FluidR3_GM_sf2_file","1100_GeneralUserGS_sf2_file","1100_JCLive_sf2_file","1100_SBLive_sf2","1100_SoundBlasterOld_sf2","1101_Aspirin_sf2_file","1101_FluidR3_GM_sf2_file","1101_GeneralUserGS_sf2_file","1102_GeneralUserGS_sf2_file","1110_Aspirin_sf2_file","1110_Chaos_sf2_file","1110_FluidR3_GM_sf2_file","1110_GeneralUserGS_sf2_file","1110_JCLive_sf2_file","1110_SBLive_sf2","1110_SoundBlasterOld_sf2","1120_Aspirin_sf2_file","1120_Chaos_sf2_file","1120_FluidR3_GM_sf2_file","1120_GeneralUserGS_sf2_file","1120_JCLive_sf2_file","1120_SBLive_sf2","1120_SoundBlasterOld_sf2","1121_SoundBlasterOld_sf2","1130_Aspirin_sf2_file","1130_Chaos_sf2_file","1130_FluidR3_GM_sf2_file","1130_GeneralUserGS_sf2_file","1130_JCLive_sf2_file","1130_SBLive_sf2","1130_SoundBlasterOld_sf2","1131_FluidR3_GM_sf2_file","1131_SoundBlasterOld_sf2","1140_Aspirin_sf2_file","1140_Chaos_sf2_file","1140_FluidR3_GM_sf2_file","1140_GeneralUserGS_sf2_file","1140_JCLive_sf2_file","1140_SBLive_sf2","1140_SoundBlasterOld_sf2","1141_FluidR3_GM_sf2_file","1150_Aspirin_sf2_file","1150_Chaos_sf2_file","1150_FluidR3_GM_sf2_file","1150_GeneralUserGS_sf2_file","1150_JCLive_sf2_file","1150_SBLive_sf2","1150_SoundBlasterOld_sf2","1151_FluidR3_GM_sf2_file","1151_GeneralUserGS_sf2_file","1152_FluidR3_GM_sf2_file","1152_GeneralUserGS_sf2_file","1160_Aspirin_sf2_file","1160_Chaos_sf2_file","1160_FluidR3_GM_sf2_file","1160_GeneralUserGS_sf2_file","1160_JCLive_sf2_file","1160_SBLive_sf2","1160_SoundBlasterOld_sf2","1161_FluidR3_GM_sf2_file","1161_GeneralUserGS_sf2_file","1161_SoundBlasterOld_sf2","1162_FluidR3_GM_sf2_file","1162_GeneralUserGS_sf2_file","1163_FluidR3_GM_sf2_file","1170_Aspirin_sf2_file","1170_Chaos_sf2_file","1170_FluidR3_GM_sf2_file","1170_GeneralUserGS_sf2_file","1170_JCLive_sf2_file","1170_SBLive_sf2","1170_SoundBlasterOld_sf2","1171_FluidR3_GM_sf2_file","1171_GeneralUserGS_sf2_file","1172_FluidR3_GM_sf2_file","1173_FluidR3_GM_sf2_file","1180_Aspirin_sf2_file","1180_Chaos_sf2_file","1180_FluidR3_GM_sf2_file","1180_GeneralUserGS_sf2_file","1180_JCLive_sf2_file","1180_SBLive_sf2","1180_SoundBlasterOld_sf2","1181_FluidR3_GM_sf2_file","1181_GeneralUserGS_sf2_file","1181_SoundBlasterOld_sf2","1190_Aspirin_sf2_file","1190_Chaos_sf2_file","1190_FluidR3_GM_sf2_file","1190_GeneralUserGS_sf2_file","1190_JCLive_sf2_file","1190_SBLive_sf2","1190_SoundBlasterOld_sf2","1191_GeneralUserGS_sf2_file","1192_GeneralUserGS_sf2_file","1193_GeneralUserGS_sf2_file","1194_GeneralUserGS_sf2_file","1200_Aspirin_sf2_file","1200_Chaos_sf2_file","1200_FluidR3_GM_sf2_file","1200_GeneralUserGS_sf2_file","1200_JCLive_sf2_file","1200_SBLive_sf2","1200_SoundBlasterOld_sf2","1201_Aspirin_sf2_file","1201_GeneralUserGS_sf2_file","1202_GeneralUserGS_sf2_file","1210_Aspirin_sf2_file","1210_Chaos_sf2_file","1210_FluidR3_GM_sf2_file","1210_GeneralUserGS_sf2_file","1210_JCLive_sf2_file","1210_SBLive_sf2","1210_SoundBlasterOld_sf2","1211_Aspirin_sf2_file","1211_GeneralUserGS_sf2_file","1212_GeneralUserGS_sf2_file","1220_Aspirin_sf2_file","1220_Chaos_sf2_file","1220_FluidR3_GM_sf2_file","1220_GeneralUserGS_sf2_file","1220_JCLive_sf2_file","1220_SBLive_sf2","1220_SoundBlasterOld_sf2","1221_Aspirin_sf2_file","1221_GeneralUserGS_sf2_file","1221_JCLive_sf2_file","1222_Aspirin_sf2_file","1222_GeneralUserGS_sf2_file","1223_Aspirin_sf2_file","1223_GeneralUserGS_sf2_file","1224_Aspirin_sf2_file","1224_GeneralUserGS_sf2_file","1225_GeneralUserGS_sf2_file","1226_GeneralUserGS_sf2_file","1230_Aspirin_sf2_file","1230_Chaos_sf2_file","1230_FluidR3_GM_sf2_file","1230_GeneralUserGS_sf2_file","1230_JCLive_sf2_file","1230_SBLive_sf2","1230_SoundBlasterOld_sf2","1231_Aspirin_sf2_file","1231_GeneralUserGS_sf2_file","1232_Aspirin_sf2_file","1232_GeneralUserGS_sf2_file","1233_GeneralUserGS_sf2_file","1234_GeneralUserGS_sf2_file","1240_Aspirin_sf2_file","1240_Chaos_sf2_file","1240_FluidR3_GM_sf2_file","1240_GeneralUserGS_sf2_file","1240_JCLive_sf2_file","1240_SBLive_sf2","1240_SoundBlasterOld_sf2","1241_Aspirin_sf2_file","1241_GeneralUserGS_sf2_file","1242_Aspirin_sf2_file","1242_GeneralUserGS_sf2_file","1243_Aspirin_sf2_file","1243_GeneralUserGS_sf2_file","1244_Aspirin_sf2_file","1244_GeneralUserGS_sf2_file","1250_Aspirin_sf2_file","1250_Chaos_sf2_file","1250_FluidR3_GM_sf2_file","1250_GeneralUserGS_sf2_file","1250_JCLive_sf2_file","1250_SBLive_sf2","1250_SoundBlasterOld_sf2","1251_Aspirin_sf2_file","1251_FluidR3_GM_sf2_file","1251_GeneralUserGS_sf2_file","1252_Aspirin_sf2_file","1252_FluidR3_GM_sf2_file","1252_GeneralUserGS_sf2_file","1253_Aspirin_sf2_file","1253_GeneralUserGS_sf2_file","1254_Aspirin_sf2_file","1254_GeneralUserGS_sf2_file","1255_Aspirin_sf2_file","1255_GeneralUserGS_sf2_file","1256_Aspirin_sf2_file","1256_GeneralUserGS_sf2_file","1257_Aspirin_sf2_file","1257_GeneralUserGS_sf2_file","1258_Aspirin_sf2_file","1258_GeneralUserGS_sf2_file","1259_GeneralUserGS_sf2_file","1260_Aspirin_sf2_file","1260_Chaos_sf2_file","1260_FluidR3_GM_sf2_file","1260_GeneralUserGS_sf2_file","1260_JCLive_sf2_file","1260_SBLive_sf2","1260_SoundBlasterOld_sf2","1261_Aspirin_sf2_file","1261_GeneralUserGS_sf2_file","1262_Aspirin_sf2_file","1262_GeneralUserGS_sf2_file","1263_Aspirin_sf2_file","1263_GeneralUserGS_sf2_file","1264_Aspirin_sf2_file","1264_GeneralUserGS_sf2_file","1265_Aspirin_sf2_file","1265_GeneralUserGS_sf2_file","1270_Aspirin_sf2_file","1270_Chaos_sf2_file","1270_FluidR3_GM_sf2_file","1270_GeneralUserGS_sf2_file","1270_JCLive_sf2_file","1270_SBLive_sf2","1270_SoundBlasterOld_sf2","1271_Aspirin_sf2_file","1271_GeneralUserGS_sf2_file","1272_Aspirin_sf2_file","1272_GeneralUserGS_sf2_file","1273_GeneralUserGS_sf2_file","1274_GeneralUserGS_sf2_file"],drums=["35_0_Chaos_sf2_file","35_12_JCLive_sf2_file","35_16_JCLive_sf2_file","35_18_JCLive_sf2_file","35_4_Chaos_sf2_file","36_0_SBLive_sf2","36_12_JCLive_sf2_file","36_16_JCLive_sf2_file","36_18_JCLive_sf2_file","36_4_Chaos_sf2_file","37_0_SBLive_sf2","37_12_JCLive_sf2_file","37_16_JCLive_sf2_file","37_18_JCLive_sf2_file","37_4_Chaos_sf2_file","38_0_SBLive_sf2","38_12_JCLive_sf2_file","38_16_JCLive_sf2_file","38_18_JCLive_sf2_file","38_4_Chaos_sf2_file","39_0_SBLive_sf2","39_12_JCLive_sf2_file","39_16_JCLive_sf2_file","39_18_JCLive_sf2_file","39_4_Chaos_sf2_file","40_0_SBLive_sf2","40_12_JCLive_sf2_file","40_16_JCLive_sf2_file","40_18_JCLive_sf2_file","40_4_Chaos_sf2_file","41_0_SBLive_sf2","41_12_JCLive_sf2_file","41_16_JCLive_sf2_file","41_18_JCLive_sf2_file","41_4_Chaos_sf2_file","42_0_SBLive_sf2","42_12_JCLive_sf2_file","42_16_JCLive_sf2_file","42_18_JCLive_sf2_file","42_4_Chaos_sf2_file","43_0_SBLive_sf2","43_12_JCLive_sf2_file","43_16_JCLive_sf2_file","43_18_JCLive_sf2_file","43_4_Chaos_sf2_file","44_0_SBLive_sf2","44_12_JCLive_sf2_file","44_16_JCLive_sf2_file","44_18_JCLive_sf2_file","44_4_Chaos_sf2_file","45_0_SBLive_sf2","45_12_JCLive_sf2_file","45_16_JCLive_sf2_file","45_18_JCLive_sf2_file","45_4_Chaos_sf2_file","46_0_SBLive_sf2","46_12_JCLive_sf2_file","46_16_JCLive_sf2_file","46_18_JCLive_sf2_file","46_4_Chaos_sf2_file","47_0_SBLive_sf2","47_12_JCLive_sf2_file","47_16_JCLive_sf2_file","47_18_JCLive_sf2_file","47_4_Chaos_sf2_file","48_0_SBLive_sf2","48_12_JCLive_sf2_file","48_16_JCLive_sf2_file","48_18_JCLive_sf2_file","48_4_Chaos_sf2_file","49_0_SBLive_sf2","49_12_JCLive_sf2_file","49_16_JCLive_sf2_file","49_18_JCLive_sf2_file","49_4_Chaos_sf2_file","50_0_SBLive_sf2","50_12_JCLive_sf2_file","50_16_JCLive_sf2_file","50_18_JCLive_sf2_file","50_4_Chaos_sf2_file","51_0_SBLive_sf2","51_12_JCLive_sf2_file","51_16_JCLive_sf2_file","51_18_JCLive_sf2_file","51_4_Chaos_sf2_file","52_0_SBLive_sf2","52_12_JCLive_sf2_file","52_16_JCLive_sf2_file","52_18_JCLive_sf2_file","52_4_Chaos_sf2_file","53_0_SBLive_sf2","53_12_JCLive_sf2_file","53_16_JCLive_sf2_file","53_18_JCLive_sf2_file","53_4_Chaos_sf2_file","54_0_SBLive_sf2","54_12_JCLive_sf2_file","54_16_JCLive_sf2_file","54_18_JCLive_sf2_file","54_4_Chaos_sf2_file","55_0_SBLive_sf2","55_12_JCLive_sf2_file","55_16_JCLive_sf2_file","55_18_JCLive_sf2_file","55_4_Chaos_sf2_file","56_0_SBLive_sf2","56_12_JCLive_sf2_file","56_16_JCLive_sf2_file","56_18_JCLive_sf2_file","56_4_Chaos_sf2_file","57_0_SBLive_sf2","57_12_JCLive_sf2_file","57_16_JCLive_sf2_file","57_18_JCLive_sf2_file","57_4_Chaos_sf2_file","58_0_SBLive_sf2","58_12_JCLive_sf2_file","58_16_JCLive_sf2_file","58_18_JCLive_sf2_file","58_4_Chaos_sf2_file","59_0_SBLive_sf2","59_12_JCLive_sf2_file","59_16_JCLive_sf2_file","59_18_JCLive_sf2_file","59_4_Chaos_sf2_file","60_0_SBLive_sf2","60_12_JCLive_sf2_file","60_16_JCLive_sf2_file","60_18_JCLive_sf2_file","60_4_Chaos_sf2_file","61_0_SBLive_sf2","61_12_JCLive_sf2_file","61_16_JCLive_sf2_file","61_18_JCLive_sf2_file","61_4_Chaos_sf2_file","62_0_SBLive_sf2","62_12_JCLive_sf2_file","62_16_JCLive_sf2_file","62_18_JCLive_sf2_file","62_4_Chaos_sf2_file","63_0_SBLive_sf2","63_12_JCLive_sf2_file","63_16_JCLive_sf2_file","63_18_JCLive_sf2_file","63_4_Chaos_sf2_file","64_0_SBLive_sf2","64_12_JCLive_sf2_file","64_16_JCLive_sf2_file","64_18_JCLive_sf2_file","64_4_Chaos_sf2_file","65_0_SBLive_sf2","65_12_JCLive_sf2_file","65_16_JCLive_sf2_file","65_18_JCLive_sf2_file","65_4_Chaos_sf2_file","66_0_SBLive_sf2","66_12_JCLive_sf2_file","66_16_JCLive_sf2_file","66_18_JCLive_sf2_file","66_4_Chaos_sf2_file","67_0_SBLive_sf2","67_12_JCLive_sf2_file","67_16_JCLive_sf2_file","67_18_JCLive_sf2_file","67_4_Chaos_sf2_file","68_0_SBLive_sf2","68_12_JCLive_sf2_file","68_16_JCLive_sf2_file","68_18_JCLive_sf2_file","68_4_Chaos_sf2_file","69_0_SBLive_sf2","69_12_JCLive_sf2_file","69_16_JCLive_sf2_file","69_18_JCLive_sf2_file","69_4_Chaos_sf2_file","70_0_SBLive_sf2","70_12_JCLive_sf2_file","70_16_JCLive_sf2_file","70_18_JCLive_sf2_file","70_4_Chaos_sf2_file","71_0_SBLive_sf2","71_12_JCLive_sf2_file","71_16_JCLive_sf2_file","71_18_JCLive_sf2_file","71_4_Chaos_sf2_file","72_0_SBLive_sf2","72_12_JCLive_sf2_file","72_16_JCLive_sf2_file","72_18_JCLive_sf2_file","72_4_Chaos_sf2_file","73_0_SBLive_sf2","73_12_JCLive_sf2_file","73_16_JCLive_sf2_file","73_18_JCLive_sf2_file","73_4_Chaos_sf2_file","74_0_SBLive_sf2","74_12_JCLive_sf2_file","74_16_JCLive_sf2_file","74_18_JCLive_sf2_file","74_4_Chaos_sf2_file","75_0_SBLive_sf2","75_12_JCLive_sf2_file","75_16_JCLive_sf2_file","75_18_JCLive_sf2_file","75_4_Chaos_sf2_file","76_0_SBLive_sf2","76_12_JCLive_sf2_file","76_16_JCLive_sf2_file","76_18_JCLive_sf2_file","76_4_Chaos_sf2_file","77_0_SBLive_sf2","77_12_JCLive_sf2_file","77_16_JCLive_sf2_file","77_18_JCLive_sf2_file","77_4_Chaos_sf2_file","78_0_SBLive_sf2","78_12_JCLive_sf2_file","78_16_JCLive_sf2_file","78_18_JCLive_sf2_file","78_4_Chaos_sf2_file","79_0_SBLive_sf2","79_12_JCLive_sf2_file","79_16_JCLive_sf2_file","79_18_JCLive_sf2_file","79_4_Chaos_sf2_file","80_0_SBLive_sf2","80_12_JCLive_sf2_file","80_16_JCLive_sf2_file","80_18_JCLive_sf2_file","80_4_Chaos_sf2_file","81_0_SBLive_sf2","81_12_JCLive_sf2_file","81_16_JCLive_sf2_file","81_18_JCLive_sf2_file","81_4_Chaos_sf2_file"],instrumentNames=[];instrumentNames[0]="Acoustic Grand Piano: Piano";instrumentNames[1]="Bright Acoustic Piano: Piano";instrumentNames[2]="Electric Grand Piano: Piano";instrumentNames[3]="Honky-tonk Piano: Piano";instrumentNames[4]="Electric Piano 1: Piano";instrumentNames[5]="Electric Piano 2: Piano";instrumentNames[6]="Harpsichord: Piano";instrumentNames[7]="Clavinet: Piano";instrumentNames[8]="Celesta: Chromatic Percussion";instrumentNames[9]="Glockenspiel: Chromatic Percussion";instrumentNames[10]="Music Box: Chromatic Percussion";instrumentNames[11]="Vibraphone: Chromatic Percussion";instrumentNames[12]="Marimba: Chromatic Percussion";instrumentNames[13]="Xylophone: Chromatic Percussion";instrumentNames[14]="Tubular Bells: Chromatic Percussion";instrumentNames[15]="Dulcimer: Chromatic Percussion";instrumentNames[16]="Drawbar Organ: Organ";instrumentNames[17]="Percussive Organ: Organ";instrumentNames[18]="Rock Organ: Organ";instrumentNames[19]="Church Organ: Organ";instrumentNames[20]="Reed Organ: Organ";instrumentNames[21]="Accordion: Organ";instrumentNames[22]="Harmonica: Organ";instrumentNames[23]="Tango Accordion: Organ";instrumentNames[24]="Acoustic Guitar (nylon): Guitar";instrumentNames[25]="Acoustic Guitar (steel): Guitar";instrumentNames[26]="Electric Guitar (jazz): Guitar";instrumentNames[27]="Electric Guitar (clean): Guitar";instrumentNames[28]="Electric Guitar (muted): Guitar";instrumentNames[29]="Overdriven Guitar: Guitar";instrumentNames[30]="Distortion Guitar: Guitar";instrumentNames[31]="Guitar Harmonics: Guitar";instrumentNames[32]="Acoustic Bass: Bass";instrumentNames[33]="Electric Bass (finger): Bass";instrumentNames[34]="Electric Bass (pick): Bass";instrumentNames[35]="Fretless Bass: Bass";instrumentNames[36]="Slap Bass 1: Bass";instrumentNames[37]="Slap Bass 2: Bass";instrumentNames[38]="Synth Bass 1: Bass";instrumentNames[39]="Synth Bass 2: Bass";instrumentNames[40]="Violin: Strings";instrumentNames[41]="Viola: Strings";instrumentNames[42]="Cello: Strings";instrumentNames[43]="Contrabass: Strings";instrumentNames[44]="Tremolo Strings: Strings";instrumentNames[45]="Pizzicato Strings: Strings";instrumentNames[46]="Orchestral Harp: Strings";instrumentNames[47]="Timpani: Strings";instrumentNames[48]="String Ensemble 1: Ensemble";instrumentNames[49]="String Ensemble 2: Ensemble";instrumentNames[50]="Synth Strings 1: Ensemble";instrumentNames[51]="Synth Strings 2: Ensemble";instrumentNames[52]="Choir Aahs: Ensemble";instrumentNames[53]="Voice Oohs: Ensemble";instrumentNames[54]="Synth Choir: Ensemble";instrumentNames[55]="Orchestra Hit: Ensemble";instrumentNames[56]="Trumpet: Brass";instrumentNames[57]="Trombone: Brass";instrumentNames[58]="Tuba: Brass";instrumentNames[59]="Muted Trumpet: Brass";instrumentNames[60]="French Horn: Brass";instrumentNames[61]="Brass Section: Brass";instrumentNames[62]="Synth Brass 1: Brass";instrumentNames[63]="Synth Brass 2: Brass";instrumentNames[64]="Soprano Sax: Reed";instrumentNames[65]="Alto Sax: Reed";instrumentNames[66]="Tenor Sax: Reed";instrumentNames[67]="Baritone Sax: Reed";instrumentNames[68]="Oboe: Reed";instrumentNames[69]="English Horn: Reed";instrumentNames[70]="Bassoon: Reed";instrumentNames[71]="Clarinet: Reed";instrumentNames[72]="Piccolo: Pipe";instrumentNames[73]="Flute: Pipe";instrumentNames[74]="Recorder: Pipe";instrumentNames[75]="Pan Flute: Pipe";instrumentNames[76]="Blown bottle: Pipe";instrumentNames[77]="Shakuhachi: Pipe";instrumentNames[78]="Whistle: Pipe";instrumentNames[79]="Ocarina: Pipe";instrumentNames[80]="Lead 1 (square): Synth Lead";instrumentNames[81]="Lead 2 (sawtooth): Synth Lead";instrumentNames[82]="Lead 3 (calliope): Synth Lead";instrumentNames[83]="Lead 4 (chiff): Synth Lead";instrumentNames[84]="Lead 5 (charang): Synth Lead";instrumentNames[85]="Lead 6 (voice): Synth Lead";instrumentNames[86]="Lead 7 (fifths): Synth Lead";instrumentNames[87]="Lead 8 (bass + lead): Synth Lead";instrumentNames[88]="Pad 1 (new age): Synth Pad";instrumentNames[89]="Pad 2 (warm): Synth Pad";instrumentNames[90]="Pad 3 (polysynth): Synth Pad";instrumentNames[91]="Pad 4 (choir): Synth Pad";instrumentNames[92]="Pad 5 (bowed): Synth Pad";instrumentNames[93]="Pad 6 (metallic): Synth Pad";instrumentNames[94]="Pad 7 (halo): Synth Pad";instrumentNames[95]="Pad 8 (sweep): Synth Pad";instrumentNames[96]="FX 1 (rain): Synth Effects";instrumentNames[97]="FX 2 (soundtrack): Synth Effects";instrumentNames[98]="FX 3 (crystal): Synth Effects";instrumentNames[99]="FX 4 (atmosphere): Synth Effects";instrumentNames[100]="FX 5 (brightness): Synth Effects";instrumentNames[101]="FX 6 (goblins): Synth Effects";instrumentNames[102]="FX 7 (echoes): Synth Effects";instrumentNames[103]="FX 8 (sci-fi): Synth Effects";instrumentNames[104]="Sitar: Ethnic";instrumentNames[105]="Banjo: Ethnic";instrumentNames[106]="Shamisen: Ethnic";instrumentNames[107]="Koto: Ethnic";instrumentNames[108]="Kalimba: Ethnic";instrumentNames[109]="Bagpipe: Ethnic";instrumentNames[110]="Fiddle: Ethnic";instrumentNames[111]="Shanai: Ethnic";instrumentNames[112]="Tinkle Bell: Percussive";instrumentNames[113]="Agogo: Percussive";instrumentNames[114]="Steel Drums: Percussive";instrumentNames[115]="Woodblock: Percussive";instrumentNames[116]="Taiko Drum: Percussive";instrumentNames[117]="Melodic Tom: Percussive";instrumentNames[118]="Synth Drum: Percussive";instrumentNames[119]="Reverse Cymbal: Percussive";instrumentNames[120]="Guitar Fret Noise: Sound effects";instrumentNames[121]="Breath Noise: Sound effects";instrumentNames[122]="Seashore: Sound effects";instrumentNames[123]="Bird Tweet: Sound effects";instrumentNames[124]="Telephone Ring: Sound effects";instrumentNames[125]="Helicopter: Sound effects";instrumentNames[126]="Applause: Sound effects";instrumentNames[127]="Gunshot: Sound effects";const list=Object.freeze(Object.defineProperty({__proto__:null,instruments,drums,instrumentNames},Symbol.toStringTag,{value:"Module"}));var SoundFont2={exports:{}};(function(h,y){(function(S,n){h.exports=n()})(window,function(){return function(S){var n={};function e(f){if(n[f])return n[f].exports;var i=n[f]={i:f,l:!1,exports:{}};return S[f].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=S,e.c=n,e.d=function(f,i,l){e.o(f,i)||Object.defineProperty(f,i,{enumerable:!0,get:l})},e.r=function(f){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(f,"__esModule",{value:!0})},e.t=function(f,i){if(1&i&&(f=e(f)),8&i||4&i&&typeof f=="object"&&f&&f.__esModule)return f;var l=Object.create(null);if(e.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:f}),2&i&&typeof f!="string")for(var t in f)e.d(l,t,function(s){return f[s]}.bind(null,t));return l},e.n=function(f){var i=f&&f.__esModule?function(){return f.default}:function(){return f};return e.d(i,"a",i),i},e.o=function(f,i){return Object.prototype.hasOwnProperty.call(f,i)},e.p="",e(e.s="./src/index.ts")}({"./src/chunk.ts":function(S,n,e){e.r(n),e.d(n,"SF2Chunk",function(){return r});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=e("./src/chunks/index.ts");function t(u){return(t=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o})(u)}function s(u,o){for(var d=0;d>10&63,polarity:s>>9&1,direction:s>>8&1,palette:s>>7&1,index:127&s}},t=function(s,c){if(s.id!==c)throw new f.ParseError("Unexpected chunk ID","'".concat(c,"'"),"'".concat(s.id,"'"));if(s.length%i.SF_MODULATOR_SIZE)throw new f.ParseError("Invalid size for the '".concat(c,"' sub-chunk"));return s.iterate(function(v){return{source:l(v.getInt16BE()),id:v.getInt16BE(),value:v.getInt16BE(),valueSource:l(v.getInt16BE()),transform:v.getInt16BE()}})}},"./src/chunks/presets/headers.ts":function(S,n,e){e.r(n),e.d(n,"getPresetHeaders",function(){return l});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=function(t){if(t.id!=="phdr")throw new f.ParseError("Invalid chunk ID","'phdr'","'".concat(t.id,"'"));if(t.length%i.SF_PRESET_HEADER_SIZE)throw new f.ParseError("Invalid size for the 'phdr' sub-chunk");return t.iterate(function(s){return{name:s.getString(),preset:s.getInt16(),bank:s.getInt16(),bagIndex:s.getInt16(),library:s.getUInt32(),genre:s.getUInt32(),morphology:s.getUInt32()}})}},"./src/chunks/presets/index.ts":function(S,n,e){e.r(n);var f=e("./src/chunks/presets/headers.ts");e.d(n,"getPresetHeaders",function(){return f.getPresetHeaders})},"./src/chunks/samples/headers.ts":function(S,n,e){e.r(n),e.d(n,"getSampleHeaders",function(){return l});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=function(t){if(t.id!=="shdr")throw new f.ParseError("Unexpected chunk ID","'shdr'","'".concat(t.id,"'"));if(t.length%i.SF_SAMPLE_HEADER_SIZE)throw new f.ParseError("Invalid size for the 'shdr' sub-chunk");return t.iterate(function(s){return{name:s.getString(),start:s.getUInt32(),end:s.getUInt32(),startLoop:s.getUInt32(),endLoop:s.getUInt32(),sampleRate:s.getUInt32(),originalPitch:s.getByte(),pitchCorrection:s.getChar(),link:s.getInt16(),type:s.getInt16()}})}},"./src/chunks/samples/index.ts":function(S,n,e){e.r(n);var f=e("./src/chunks/samples/headers.ts");e.d(n,"getSampleHeaders",function(){return f.getSampleHeaders})},"./src/chunks/zones.ts":function(S,n,e){e.r(n),e.d(n,"getZones",function(){return t}),e.d(n,"getItemsInZone",function(){return s});var f=e("./src/riff/index.ts"),i=e("./src/constants.ts"),l=e("./src/types/index.ts"),t=function(r,u){if(r.id!==u)throw new f.ParseError("Unexpected chunk ID","'".concat(u,"'"),"'".concat(r.id,"'"));if(r.length%i.SF_BAG_SIZE)throw new f.ParseError("Invalid size for the '".concat(u,"' sub-chunk"));return r.iterate(function(o){return{generatorIndex:o.getInt16(),modulatorIndex:o.getInt16()}})},s=function(r,u,o,d,a,L){for(var g=[],U=0;U1&&arguments[1]!==void 0?arguments[1]:0;(function(u,o){if(!(u instanceof o))throw new TypeError("Cannot call a class as a function")})(this,s),l(this,"target",[]),l(this,"chunk",void 0),l(this,"position",0),this.chunk=p,this.position=r}var c,v;return c=s,(v=[{key:"iterate",value:function(p){for(;this.position0&&arguments[0]!==void 0?arguments[0]:20,r=Object(f.getStringFromBuffer)(this.getBuffer(this.position,p));return this.position+=p,r}},{key:"getInt16",value:function(){return this.chunk.buffer[this.position++]|this.chunk.buffer[this.position++]<<8}},{key:"getInt16BE",value:function(){return this.getInt16()<<16>>16}},{key:"getUInt32",value:function(){return(this.chunk.buffer[this.position++]|this.chunk.buffer[this.position++]<<8|this.chunk.buffer[this.position++]<<16|this.chunk.buffer[this.position++]<<24)>>>0}},{key:"getByte",value:function(){return this.chunk.buffer[this.position++]}},{key:"getChar",value:function(){return this.chunk.buffer[this.position++]<<24>>24}},{key:"skip",value:function(p){this.position+=p}},{key:"getBuffer",value:function(p,r){return this.chunk.buffer.subarray(p,p+r)}},{key:"currentPosition",get:function(){return this.position}}])&&i(c.prototype,v),s}()},"./src/riff/index.ts":function(S,n,e){e.r(n);var f=e("./src/riff/chunkIterator.ts");e.d(n,"ChunkIterator",function(){return f.ChunkIterator});var i=e("./src/riff/parseError.ts");e.d(n,"ParseError",function(){return i.ParseError});var l=e("./src/riff/parser.ts");e.d(n,"parseBuffer",function(){return l.parseBuffer}),e.d(n,"getChunk",function(){return l.getChunk}),e.d(n,"getChunkLength",function(){return l.getChunkLength}),e.d(n,"getSubChunks",function(){return l.getSubChunks}),e.d(n,"getChunkId",function(){return l.getChunkId});var t=e("./src/riff/riffChunk.ts");e.d(n,"RIFFChunk",function(){return t.RIFFChunk})},"./src/riff/parseError.ts":function(S,n,e){function f(p){return(f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(p)}function i(p,r){return!r||f(r)!=="object"&&typeof r!="function"?function(u){if(u===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return u}(p):r}function l(p){var r=typeof Map=="function"?new Map:void 0;return(l=function(u){if(u===null||(o=u,Function.toString.call(o).indexOf("[native code]")===-1))return u;var o;if(typeof u!="function")throw new TypeError("Super expression must either be null or a function");if(r!==void 0){if(r.has(u))return r.get(u);r.set(u,d)}function d(){return t(u,arguments,c(this).constructor)}return d.prototype=Object.create(u.prototype,{constructor:{value:d,enumerable:!1,writable:!0,configurable:!0}}),s(d,u)})(p)}function t(p,r,u){return(t=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}()?Reflect.construct:function(o,d,a){var L=[null];L.push.apply(L,d);var g=new(Function.bind.apply(o,L));return a&&s(g,a.prototype),g}).apply(null,arguments)}function s(p,r){return(s=Object.setPrototypeOf||function(u,o){return u.__proto__=o,u})(p,r)}function c(p){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)})(p)}e.r(n),e.d(n,"ParseError",function(){return v});var v=function(p){function r(u,o,d){return function(a,L){if(!(a instanceof L))throw new TypeError("Cannot call a class as a function")}(this,r),i(this,c(r).call(this,"".concat(u).concat(o&&d?", expected ".concat(o,", received ").concat(d):"")))}return function(u,o){if(typeof o!="function"&&o!==null)throw new TypeError("Super expression must either be null or a function");u.prototype=Object.create(o&&o.prototype,{constructor:{value:u,writable:!0,configurable:!0}}),o&&s(u,o)}(r,l(Error)),r}()},"./src/riff/parser.ts":function(S,n,e){e.r(n),e.d(n,"parseBuffer",function(){return t}),e.d(n,"getChunk",function(){return s}),e.d(n,"getChunkLength",function(){return c}),e.d(n,"getSubChunks",function(){return v}),e.d(n,"getChunkId",function(){return p});var f=e("./src/riff/parseError.ts"),i=e("./src/utils/buffer.ts"),l=e("./src/riff/riffChunk.ts"),t=function(r){var u=p(r);if(u!=="RIFF")throw new f.ParseError("Invalid file format","RIFF",u);var o=p(r,8);if(o!=="sfbk")throw new f.ParseError("Invalid signature","sfbk",o);var d=r.subarray(8),a=v(d.subarray(4));return new l.RIFFChunk(u,d.length,d,a)},s=function(r,u){var o=p(r,u),d=c(r,u+4),a=[];return o!=="RIFF"&&o!=="LIST"||(a=v(r.subarray(u+12))),new l.RIFFChunk(o,d,r.subarray(u+8),a)},c=function(r,u){return((r=r.subarray(u,u+4))[0]|r[1]<<8|r[2]<<16|r[3]<<24)>>>0},v=function(r){for(var u=[],o=0;o<=r.length-8;){var d=s(r,o);u.push(d),o=(o+=8+d.length)%2?o+1:o}return u},p=function(r){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Object(i.getStringFromBuffer)(r.subarray(u,u+4))}},"./src/riff/riffChunk.ts":function(S,n,e){e.r(n),e.d(n,"RIFFChunk",function(){return s});var f=e("./src/riff/chunkIterator.ts"),i=e("./src/utils/index.ts");function l(c,v){for(var p=0;p0&&arguments[0]!==void 0?arguments[0]:0,u=arguments.length>1?arguments[1]:void 0;return Object(i.getStringFromBuffer)(this.getBuffer(r,u||this.length-r))}},{key:"getInt16",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.buffer[r++]|this.buffer[r]<<8}},{key:"getUInt32",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return(this.buffer[r++]|this.buffer[r++]<<8|this.buffer[r++]<<16|this.buffer[r]<<24)>>>0}},{key:"getByte",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.buffer[r]}},{key:"getChar",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.buffer[r]<<24>>24}},{key:"iterator",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return new f.ChunkIterator(this,r)}},{key:"iterate",value:function(r){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=new f.ChunkIterator(this,u);return o.iterate(r),o.target}},{key:"getBuffer",value:function(r,u){return this.buffer.subarray(r,r+u)}}])&&l(v.prototype,p),c}()},"./src/soundFont2.ts":function(S,n,e){e.r(n),e.d(n,"SoundFont2",function(){return u});var f=e("./src/types/index.ts"),i=e("./src/chunk.ts"),l=e("./src/riff/index.ts"),t=e("./src/chunks/index.ts"),s=e("./src/utils/index.ts");function c(o){for(var d=1;d1&&arguments[1]!==void 0?arguments[1]:0,g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Object(s.memoize)(function(U,B,F){var M=a.banks[B];if(M){var O=M.presets[F];if(O){var R=O.zones.find(function(N){return a.isKeyInRange(N,U)});if(R){var E=R.instrument,A=E.zones.find(function(N){return a.isKeyInRange(N,U)});if(A){var k=A.sample,b=c({},R.generators,A.generators),P=c({},R.modulators,A.modulators);return{keyNumber:U,preset:O,instrument:E,sample:k,generators:b,modulators:P}}}}}return null})(d,L,g)}},{key:"isKeyInRange",value:function(d,a){return d.keyRange===void 0||d.keyRange.lo<=a&&d.keyRange.hi>=a}},{key:"getBanks",value:function(){return this.presets.reduce(function(d,a){var L=a.header.bank;return d[L]||(d[L]={presets:[]}),d[L].presets[a.header.preset]=a,d},[])}},{key:"getPresets",value:function(){var d=this.presetData,a=d.presetHeaders,L=d.presetZones,g=d.presetGenerators,U=d.presetModulators;return Object(t.getItemsInZone)(a,L,U,g,this.instruments,f.GeneratorType.Instrument).filter(function(B){return B.header.name!=="EOP"}).map(function(B){return{header:B.header,globalZone:B.globalZone,zones:B.zones.map(function(F){return{keyRange:F.keyRange,generators:F.generators,modulators:F.modulators,instrument:F.reference}})}})}},{key:"getInstruments",value:function(){var d=this.presetData,a=d.instrumentHeaders,L=d.instrumentZones,g=d.instrumentModulators,U=d.instrumentGenerators;return Object(t.getItemsInZone)(a,L,g,U,this.samples,f.GeneratorType.SampleId).filter(function(B){return B.header.name!=="EOI"}).map(function(B){return{header:B.header,globalZone:B.globalZone,zones:B.zones.map(function(F){return{keyRange:F.keyRange,generators:F.generators,modulators:F.modulators,sample:F.reference}})}})}},{key:"getSamples",value:function(){var d=this;return this.presetData.sampleHeaders.filter(function(a){return a.name!=="EOS"}).map(function(a){if(a.name!=="EOS"&&a.sampleRate<=0)throw new Error("Illegal sample rate of ".concat(a.sampleRate," hz in sample '").concat(a.name,"'"));return a.originalPitch>=128&&a.originalPitch<=254&&(a.originalPitch=60),a.startLoop-=a.start,a.endLoop-=a.start,{header:a,data:new Int16Array(new Uint8Array(d.sampleData.subarray(2*a.start,2*a.end)).buffer)}})}}]),o}()},"./src/types/bank.ts":function(S,n){},"./src/types/generator.ts":function(S,n,e){var f,i;function l(s,c,v){return c in s?Object.defineProperty(s,c,{value:v,enumerable:!0,configurable:!0,writable:!0}):s[c]=v,s}e.r(n),e.d(n,"GeneratorType",function(){return i}),e.d(n,"DEFAULT_GENERATOR_VALUES",function(){return t}),function(s){s[s.StartAddrsOffset=0]="StartAddrsOffset",s[s.EndAddrsOffset=1]="EndAddrsOffset",s[s.StartLoopAddrsOffset=2]="StartLoopAddrsOffset",s[s.EndLoopAddrsOffset=3]="EndLoopAddrsOffset",s[s.StartAddrsCoarseOffset=4]="StartAddrsCoarseOffset",s[s.ModLFOToPitch=5]="ModLFOToPitch",s[s.VibLFOToPitch=6]="VibLFOToPitch",s[s.ModEnvToPitch=7]="ModEnvToPitch",s[s.InitialFilterFc=8]="InitialFilterFc",s[s.InitialFilterQ=9]="InitialFilterQ",s[s.ModLFOToFilterFc=10]="ModLFOToFilterFc",s[s.ModEnvToFilterFc=11]="ModEnvToFilterFc",s[s.EndAddrsCoarseOffset=12]="EndAddrsCoarseOffset",s[s.ModLFOToVolume=13]="ModLFOToVolume",s[s.Unused1=14]="Unused1",s[s.ChorusEffectsSend=15]="ChorusEffectsSend",s[s.ReverbEffectsSend=16]="ReverbEffectsSend",s[s.Pan=17]="Pan",s[s.Unused2=18]="Unused2",s[s.Unused3=19]="Unused3",s[s.Unused4=20]="Unused4",s[s.DelayModLFO=21]="DelayModLFO",s[s.FreqModLFO=22]="FreqModLFO",s[s.DelayVibLFO=23]="DelayVibLFO",s[s.FreqVibLFO=24]="FreqVibLFO",s[s.DelayModEnv=25]="DelayModEnv",s[s.AttackModEnv=26]="AttackModEnv",s[s.HoldModEnv=27]="HoldModEnv",s[s.DecayModEnv=28]="DecayModEnv",s[s.SustainModEnv=29]="SustainModEnv",s[s.ReleaseModEnv=30]="ReleaseModEnv",s[s.KeyNumToModEnvHold=31]="KeyNumToModEnvHold",s[s.KeyNumToModEnvDecay=32]="KeyNumToModEnvDecay",s[s.DelayVolEnv=33]="DelayVolEnv",s[s.AttackVolEnv=34]="AttackVolEnv",s[s.HoldVolEnv=35]="HoldVolEnv",s[s.DecayVolEnv=36]="DecayVolEnv",s[s.SustainVolEnv=37]="SustainVolEnv",s[s.ReleaseVolEnv=38]="ReleaseVolEnv",s[s.KeyNumToVolEnvHold=39]="KeyNumToVolEnvHold",s[s.KeyNumToVolEnvDecay=40]="KeyNumToVolEnvDecay",s[s.Instrument=41]="Instrument",s[s.Reserved1=42]="Reserved1",s[s.KeyRange=43]="KeyRange",s[s.VelRange=44]="VelRange",s[s.StartLoopAddrsCoarseOffset=45]="StartLoopAddrsCoarseOffset",s[s.KeyNum=46]="KeyNum",s[s.Velocity=47]="Velocity",s[s.InitialAttenuation=48]="InitialAttenuation",s[s.Reserved2=49]="Reserved2",s[s.EndLoopAddrsCoarseOffset=50]="EndLoopAddrsCoarseOffset",s[s.CoarseTune=51]="CoarseTune",s[s.FineTune=52]="FineTune",s[s.SampleId=53]="SampleId",s[s.SampleModes=54]="SampleModes",s[s.Reserved3=55]="Reserved3",s[s.ScaleTuning=56]="ScaleTuning",s[s.ExclusiveClass=57]="ExclusiveClass",s[s.OverridingRootKey=58]="OverridingRootKey",s[s.Unused5=59]="Unused5",s[s.EndOper=60]="EndOper"}(i||(i={}));var t=(l(f={},i.StartAddrsOffset,0),l(f,i.EndAddrsOffset,0),l(f,i.StartLoopAddrsOffset,0),l(f,i.EndLoopAddrsOffset,0),l(f,i.StartAddrsCoarseOffset,0),l(f,i.ModLFOToPitch,0),l(f,i.VibLFOToPitch,0),l(f,i.ModEnvToPitch,0),l(f,i.InitialFilterFc,13500),l(f,i.InitialFilterQ,0),l(f,i.ModLFOToFilterFc,0),l(f,i.ModEnvToFilterFc,0),l(f,i.EndAddrsCoarseOffset,0),l(f,i.ModLFOToVolume,0),l(f,i.ChorusEffectsSend,0),l(f,i.ReverbEffectsSend,0),l(f,i.Pan,0),l(f,i.DelayModLFO,-12e3),l(f,i.FreqModLFO,0),l(f,i.DelayVibLFO,-12e3),l(f,i.FreqVibLFO,0),l(f,i.DelayModEnv,-12e3),l(f,i.AttackModEnv,-12e3),l(f,i.HoldModEnv,-12e3),l(f,i.DecayModEnv,-12e3),l(f,i.SustainModEnv,0),l(f,i.ReleaseModEnv,-12e3),l(f,i.KeyNumToModEnvHold,0),l(f,i.KeyNumToModEnvDecay,0),l(f,i.DelayVolEnv,-12e3),l(f,i.AttackVolEnv,-12e3),l(f,i.HoldVolEnv,-12e3),l(f,i.DecayVolEnv,-12e3),l(f,i.SustainVolEnv,0),l(f,i.ReleaseVolEnv,-12e3),l(f,i.KeyNumToVolEnvHold,0),l(f,i.KeyNumToVolEnvDecay,0),l(f,i.StartLoopAddrsCoarseOffset,0),l(f,i.KeyNum,-1),l(f,i.Velocity,-1),l(f,i.InitialAttenuation,0),l(f,i.EndLoopAddrsCoarseOffset,0),l(f,i.CoarseTune,0),l(f,i.FineTune,0),l(f,i.SampleModes,0),l(f,i.ScaleTuning,100),l(f,i.ExclusiveClass,0),l(f,i.OverridingRootKey,-1),f)},"./src/types/index.ts":function(S,n,e){e.r(n);var f=e("./src/types/bank.ts");for(var i in f)i!=="default"&&function(d){e.d(n,d,function(){return f[d]})}(i);var l=e("./src/types/generator.ts");e.d(n,"GeneratorType",function(){return l.GeneratorType}),e.d(n,"DEFAULT_GENERATOR_VALUES",function(){return l.DEFAULT_GENERATOR_VALUES});var t=e("./src/types/instrument.ts");for(var i in t)["GeneratorType","DEFAULT_GENERATOR_VALUES","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return t[a]})}(i);var s=e("./src/types/key.ts");for(var i in s)["GeneratorType","DEFAULT_GENERATOR_VALUES","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return s[a]})}(i);var c=e("./src/types/metaData.ts");for(var i in c)["GeneratorType","DEFAULT_GENERATOR_VALUES","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return c[a]})}(i);var v=e("./src/types/modulator.ts");e.d(n,"ControllerType",function(){return v.ControllerType}),e.d(n,"ControllerPolarity",function(){return v.ControllerPolarity}),e.d(n,"ControllerDirection",function(){return v.ControllerDirection}),e.d(n,"ControllerPalette",function(){return v.ControllerPalette}),e.d(n,"Controller",function(){return v.Controller}),e.d(n,"TransformType",function(){return v.TransformType}),e.d(n,"DEFAULT_INSTRUMENT_MODULATORS",function(){return v.DEFAULT_INSTRUMENT_MODULATORS});var p=e("./src/types/preset.ts");for(var i in p)["GeneratorType","DEFAULT_GENERATOR_VALUES","ControllerType","ControllerPolarity","ControllerDirection","ControllerPalette","Controller","TransformType","DEFAULT_INSTRUMENT_MODULATORS","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return p[a]})}(i);var r=e("./src/types/presetData.ts");for(var i in r)["GeneratorType","DEFAULT_GENERATOR_VALUES","ControllerType","ControllerPolarity","ControllerDirection","ControllerPalette","Controller","TransformType","DEFAULT_INSTRUMENT_MODULATORS","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return r[a]})}(i);var u=e("./src/types/sample.ts");e.d(n,"SampleType",function(){return u.SampleType});var o=e("./src/types/zone.ts");for(var i in o)["GeneratorType","DEFAULT_GENERATOR_VALUES","ControllerType","ControllerPolarity","ControllerDirection","ControllerPalette","Controller","TransformType","DEFAULT_INSTRUMENT_MODULATORS","SampleType","default"].indexOf(i)<0&&function(a){e.d(n,a,function(){return o[a]})}(i)},"./src/types/instrument.ts":function(S,n){},"./src/types/key.ts":function(S,n){},"./src/types/metaData.ts":function(S,n){},"./src/types/modulator.ts":function(S,n,e){e.r(n),e.d(n,"ControllerType",function(){return f}),e.d(n,"ControllerPolarity",function(){return i}),e.d(n,"ControllerDirection",function(){return l}),e.d(n,"ControllerPalette",function(){return t}),e.d(n,"Controller",function(){return s}),e.d(n,"TransformType",function(){return c}),e.d(n,"DEFAULT_INSTRUMENT_MODULATORS",function(){return p});var f,i,l,t,s,c,v=e("./src/types/generator.ts");(function(r){r[r.Linear=0]="Linear",r[r.Concave=1]="Concave",r[r.Convex=2]="Convex",r[r.Switch=3]="Switch"})(f||(f={})),function(r){r[r.Unipolar=0]="Unipolar",r[r.Bipolar=1]="Bipolar"}(i||(i={})),function(r){r[r.Increasing=0]="Increasing",r[r.Decreasing=1]="Decreasing"}(l||(l={})),function(r){r[r.GeneralController=0]="GeneralController",r[r.MidiController=1]="MidiController"}(t||(t={})),function(r){r[r.NoController=0]="NoController",r[r.NoteOnVelocity=2]="NoteOnVelocity",r[r.NoteOnKeyNumber=3]="NoteOnKeyNumber",r[r.PolyPressure=10]="PolyPressure",r[r.ChannelPressure=13]="ChannelPressure",r[r.PitchWheel=14]="PitchWheel",r[r.PitchWheelSensitivity=16]="PitchWheelSensitivity",r[r.Link=127]="Link"}(s||(s={})),function(r){r[r.Linear=0]="Linear",r[r.Absolute=2]="Absolute"}(c||(c={}));var p=[{id:v.GeneratorType.InitialAttenuation,source:{type:f.Concave,polarity:i.Unipolar,direction:l.Decreasing,palette:t.GeneralController,index:s.NoteOnVelocity},value:960,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.InitialFilterFc,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Decreasing,palette:t.GeneralController,index:s.NoteOnVelocity},value:-2400,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.VibLFOToPitch,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.ChannelPressure},value:50,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.VibLFOToPitch,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.MidiController,index:1},value:50,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.InitialAttenuation,source:{type:f.Concave,polarity:i.Unipolar,direction:l.Decreasing,palette:t.MidiController,index:7},value:960,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.InitialAttenuation,source:{type:f.Linear,polarity:i.Bipolar,direction:l.Increasing,palette:t.MidiController,index:10},value:1e3,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.InitialAttenuation,source:{type:f.Concave,polarity:i.Unipolar,direction:l.Decreasing,palette:t.MidiController,index:11},value:960,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.ReverbEffectsSend,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.MidiController,index:91},value:200,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.ChorusEffectsSend,source:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.MidiController,index:93},value:200,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.NoController},transform:c.Linear},{id:v.GeneratorType.CoarseTune,source:{type:f.Linear,polarity:i.Bipolar,direction:l.Increasing,palette:t.GeneralController,index:s.PitchWheel},value:12700,valueSource:{type:f.Linear,polarity:i.Unipolar,direction:l.Increasing,palette:t.GeneralController,index:s.PitchWheelSensitivity},transform:c.Linear}]},"./src/types/preset.ts":function(S,n){},"./src/types/presetData.ts":function(S,n){},"./src/types/sample.ts":function(S,n,e){var f;e.r(n),e.d(n,"SampleType",function(){return f}),function(i){i[i.EOS=0]="EOS",i[i.Mono=1]="Mono",i[i.Right=2]="Right",i[i.Left=4]="Left",i[i.Linked=8]="Linked",i[i.RomMono=32769]="RomMono",i[i.RomRight=32770]="RomRight",i[i.RomLeft=32772]="RomLeft",i[i.RomLinked=32776]="RomLinked"}(f||(f={}))},"./src/types/zone.ts":function(S,n){},"./src/utils/buffer.ts":function(S,n,e){e.r(n),e.d(n,"getStringFromBuffer",function(){return f});var f=function(i){return new TextDecoder("utf8").decode(i).split(/\0/)[0].trim()}},"./src/utils/index.ts":function(S,n,e){e.r(n);var f=e("./src/utils/buffer.ts");e.d(n,"getStringFromBuffer",function(){return f.getStringFromBuffer});var i=e("./src/utils/memoize.ts");e.d(n,"memoize",function(){return i.memoize})},"./src/utils/memoize.ts":function(S,n,e){e.r(n),e.d(n,"memoize",function(){return f});var f=function(i){var l={};return function(){for(var t=arguments.length,s=new Array(t),c=0;cMath.pow(2,h/1200),Q=h=>h/1e3,G=(h,y)=>{const S=Math.pow(10,y);return Math.round(h*S)/S};typeof AudioParam<"u"&&(AudioParam.prototype.dahdsr=function(h,y,S,n,e,f,i,l,t){e=Math.max(G(e,4),.001),i=Math.max(G(i,4),.001),t=G(t,4),y=Math.max(y,.001);let s=h;return this.setValueAtTime(y,s),this.setValueAtTime(y,s+=n),this.exponentialRampToValueAtTime(S,s+=e),this.setValueAtTime(S,s+=f),this.exponentialRampToValueAtTime(Math.max(l*S,.001),s+=i),(c,v)=>{this.cancelAndHoldAtTime(c);const p=Math.max(v!=null?v:y,.001);this.exponentialRampToValueAtTime(p,c+t)}});const T={0:"startAddrOffset",1:"endAddrOffset",2:"startloopAddrsOffset",3:"endloopAddrsOffset",4:"startAddrsCoarseOffset",5:"modLfoToPitch",6:"vibLfoToPitch",7:"modEnvToPitch",8:"initialFilterFc",9:"initialFilterQ",10:"modLfoToFilterFc",11:"modEnvToFilterFc",12:"endAddrsCoarseOffset",13:"modLfoToVolume",14:"unused1",15:"chorusEffectsSend",16:"reverbEffectsSend",17:"pan",18:"unused2",19:"unused3",20:"unused4",21:"delayModLFO",22:"freqModLFO",23:"delayVibLFO",24:"freqVibLFO",25:"delayModEnv",26:"attackModEnv",27:"holdModEnv",28:"decayModEnv",29:"sustainModEnv",30:"releaseModEnv",31:"keyNumToModEnvHold",32:"keyNumToModEnvDecay",33:"delayVolEnv",34:"attackVolEnv",35:"holdVolEnv",36:"decayVolEnv",37:"sustainVolEnv",38:"releaseVolEnv",39:"keyNumToVolEnvHold",40:"keyNumToVolEnvDecay",41:"instrument",42:"reserved1",43:"keyRange",44:"velRange",45:"startloopAddrsCoarseOffset",46:"keyNum",47:"velocity",48:"initialAttenuation",49:"reserved2",50:"endloopAddrsCoarseOffset",51:"coarseTune",52:"fineTune",53:"sampleID",54:"sampleModes",55:"reserved3",56:"scaleTuning",57:"exclusiveClass",58:"overridingRootKey",59:"unused5",60:"endOper"};Object.fromEntries(Object.entries(SoundFont2.exports.DEFAULT_GENERATOR_VALUES).map(([h,y])=>[T[h],y]));const D=(h,y,S,n,e)=>{var f,i,l,t,s,c,v;const p=SoundFont2.exports.DEFAULT_GENERATOR_VALUES[h];if(typeof p!="number")throw new Error(`no default value found for generator with index ${h}`);const r=y.generators[h],u=(i=(f=S.globalZone)==null?void 0:f.generators)==null?void 0:i[h],o=(l=n==null?void 0:n.generators)==null?void 0:l[h],d=(s=(t=e.globalZone)==null?void 0:t.generators)==null?void 0:s[h],a=r&&"value"in r?r.value:void 0,L=u&&"value"in u?u.value:void 0,g=o&&"value"in o?o.value:void 0,U=d&&"value"in d?d.value:void 0,B=(c=a!=null?a:L)!=null?c:p,F=(v=g!=null?g:U)!=null?v:0;return B+F},J=h=>SoundFont2.exports.DEFAULT_GENERATOR_VALUES[h]!==void 0,W=(h,y,S)=>{var n,e,f,i;return Object.fromEntries(Array.from(new Set([Object.keys((e=(n=S.globalZone)==null?void 0:n.generators)!=null?e:{}),Object.keys(y.generators),Object.keys((i=(f=y.instrument.globalZone)==null?void 0:f.generators)!=null?i:{}),Object.keys(h.generators)].flat())).filter(J).map(l=>[T[l],D(parseInt(l),h,y.instrument,y,S)]))};async function ae(h){const y=await fetch(h).then(n=>n.arrayBuffer()),S=new Uint8Array(y);return new SoundFont2.exports.SoundFont2(S)}function X(h,y,S){let{time:n=h.currentTime}=S;const{midi:e,start:f,velocity:i=.3,startLoop:l,endLoop:t,sampleRate:s,originalPitch:c,pitchCorrection:v,type:p,sampleModes:r=0,overridingRootKey:u,fineTune:o=0,startloopAddrsOffset:d=0,startloopAddrsCoarseOffset:a=0,endloopAddrsOffset:L=0,endloopAddrsCoarseOffset:g=0,delayVolEnv:U=-12e3,attackVolEnv:B=-12e3,holdVolEnv:F=-12e3,decayVolEnv:M=-12e3,sustainVolEnv:O=0,releaseVolEnv:R=-12e3,pan:E=0,...A}=S,k=100*(u!==void 0&&u!==-1?u:c)+v-o,b=e*100-k,P=1*Math.pow(2,b/1200);y.playbackRate.value=P;const N=l+d+a*32768,I=t+L+g*32768;I>N&&r===1?(y.loopStart=N/s,y.loopEnd=I/s,y.loop=!0):r===3&&console.warn("unimplemented sampleMode 3 (play till end on note off)"),Object.keys(A).filter(w=>!["name","instrument","keyRange","sampleID","end"].includes(w)).length;const V=h.createGain(),j=[n,0,i,m(U),m(B),m(F),m(M),O>=960?0:1-Q(O),m(R)],Z=V.gain.dahdsr(...j),H=h.createStereoPanner();return H.pan.value=E/1e3,V.connect(H),y.connect(V),H.connect(h.destination),y.start(n),(w=h.currentTime)=>{y.stop(w+m(R)),Z(w)}}function Y(h,y,S={}){const{header:n,data:e}=y,f=new Float32Array(e.length);for(let t=0;t!h.keyRange||h.keyRange.lo<=y&&y<=h.keyRange.hi,x=(h,y)=>h.zones.filter(S=>C(S,y)&&S.instrument).map(S=>S.instrument.zones.filter(n=>C(n,y)).map(n=>{const e=W(n,S,h);return{...n,mergedGenerators:e}})).flat(),ce=(h,y,S,n=h.currentTime)=>{const e=x(y,S).map(f=>Y(h,f.sample,{...f.mergedGenerators,midi:S,time:n}));return(f=h.currentTime)=>{e.forEach(i=>i(f))}};Pattern.prototype.soundfont=function(h,y=0){return this.onTrigger((S,n,e)=>{const f=getAudioContext(),i=getPlayableNoteValue(n),l=h.presets[y%h.presets.length],t=f.currentTime+S-e,s=[f,l,toMidi(i),t];ce(...s)(t+n.duration)})};const soundfontCache=new Map;function loadSoundfont(h){if(soundfontCache.get(h))return soundfontCache.get(h);const y=ae(h);return soundfontCache.set(h,y),y}export{getFontBufferSource,loadSoundfont,list as soundfontList,ce as startPresetNote}; diff --git a/packages/react/examples/nano-repl/dist/assets/index.e7ac54e9.js b/packages/react/examples/nano-repl/dist/assets/index.e7ac54e9.js deleted file mode 100644 index cf1d497e..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.e7ac54e9.js +++ /dev/null @@ -1 +0,0 @@ -import{f as s,i as t,h as o,j as d,q as f,l as p,k as u,p as i,o as l,n as r,w as g}from"./index.ec9f9930.js";export{s as getAudioContext,t as getCachedBuffer,o as getDestination,d as getLoadedBuffer,f as getLoadedSamples,p as loadBuffer,u as loadGithubSamples,i as panic,l as resetLoadedSamples,r as samples,g as webaudioOutput}; diff --git a/packages/react/examples/nano-repl/dist/assets/index.ec9f9930.js b/packages/react/examples/nano-repl/dist/assets/index.ec9f9930.js deleted file mode 100644 index de4a10a0..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.ec9f9930.js +++ /dev/null @@ -1,124 +0,0 @@ -var pn=Object.defineProperty;var fn=(o,e,s)=>e in o?pn(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s;var Rt=(o,e,s)=>(fn(o,typeof e!="symbol"?e+"":e,s),s);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))a(c);new MutationObserver(c=>{for(const h of c)if(h.type==="childList")for(const d of h.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&a(d)}).observe(document,{childList:!0,subtree:!0});function s(c){const h={};return c.integrity&&(h.integrity=c.integrity),c.referrerpolicy&&(h.referrerPolicy=c.referrerpolicy),c.crossorigin==="use-credentials"?h.credentials="include":c.crossorigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function a(c){if(c.ep)return;c.ep=!0;const h=s(c);fetch(c.href,h)}})();var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function getAugmentedNamespace(o){var e=o.default;if(typeof e=="function"){var s=function(){return e.apply(this,arguments)};s.prototype=e.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(o).forEach(function(a){var c=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(s,a,c.get?c:{enumerable:!0,get:function(){return o[a]}})}),s}var react={exports:{}},react_production_min={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var l$1=Symbol.for("react.element"),n$1=Symbol.for("react.portal"),p$3=Symbol.for("react.fragment"),q$1=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t$2=Symbol.for("react.provider"),u=Symbol.for("react.context"),v$1=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z$1=Symbol.iterator;function A$1(o){return o===null||typeof o!="object"?null:(o=z$1&&o[z$1]||o["@@iterator"],typeof o=="function"?o:null)}var B$1={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C$2=Object.assign,D$1={};function E$1(o,e,s){this.props=o,this.context=e,this.refs=D$1,this.updater=s||B$1}E$1.prototype.isReactComponent={};E$1.prototype.setState=function(o,e){if(typeof o!="object"&&typeof o!="function"&&o!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,o,e,"setState")};E$1.prototype.forceUpdate=function(o){this.updater.enqueueForceUpdate(this,o,"forceUpdate")};function F$1(){}F$1.prototype=E$1.prototype;function G$1(o,e,s){this.props=o,this.context=e,this.refs=D$1,this.updater=s||B$1}var H$1=G$1.prototype=new F$1;H$1.constructor=G$1;C$2(H$1,E$1.prototype);H$1.isPureReactComponent=!0;var I$2=Array.isArray,J=Object.prototype.hasOwnProperty,K$1={current:null},L$1={key:!0,ref:!0,__self:!0,__source:!0};function M$1(o,e,s){var a,c={},h=null,d=null;if(e!=null)for(a in e.ref!==void 0&&(d=e.ref),e.key!==void 0&&(h=""+e.key),e)J.call(e,a)&&!L$1.hasOwnProperty(a)&&(c[a]=e[a]);var g=arguments.length-2;if(g===1)c.children=s;else if(1>>1,Tt=dt[xt];if(0>>1;xtc(Bt,Ct))Ftc(Lt,Bt)?(dt[xt]=Lt,dt[Ft]=Ct,xt=Ft):(dt[xt]=Bt,dt[_t]=Ct,xt=_t);else if(Ftc(Lt,Ct))dt[xt]=Lt,dt[Ft]=Ct,xt=Ft;else break e}}return Dt}function c(dt,Dt){var Ct=dt.sortIndex-Dt.sortIndex;return Ct!==0?Ct:dt.id-Dt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var h=performance;o.unstable_now=function(){return h.now()}}else{var d=Date,g=d.now();o.unstable_now=function(){return d.now()-g}}var _=[],b=[],$=1,j=null,_e=3,et=!1,tt=!1,nt=!1,st=typeof setTimeout=="function"?setTimeout:null,rt=typeof clearTimeout=="function"?clearTimeout:null,it=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function at(dt){for(var Dt=s(b);Dt!==null;){if(Dt.callback===null)a(b);else if(Dt.startTime<=dt)a(b),Dt.sortIndex=Dt.expirationTime,e(_,Dt);else break;Dt=s(b)}}function ot(dt){if(nt=!1,at(dt),!tt)if(s(_)!==null)tt=!0,St(ut);else{var Dt=s(b);Dt!==null&&At(ot,Dt.startTime-dt)}}function ut(dt,Dt){tt=!1,nt&&(nt=!1,rt(lt),lt=-1),et=!0;var Ct=_e;try{for(at(Dt),j=s(_);j!==null&&(!(j.expirationTime>Dt)||dt&&!gt());){var xt=j.callback;if(typeof xt=="function"){j.callback=null,_e=j.priorityLevel;var Tt=xt(j.expirationTime<=Dt);Dt=o.unstable_now(),typeof Tt=="function"?j.callback=Tt:j===s(_)&&a(_),at(Dt)}else a(_);j=s(_)}if(j!==null)var kt=!0;else{var _t=s(b);_t!==null&&At(ot,_t.startTime-Dt),kt=!1}return kt}finally{j=null,_e=Ct,et=!1}}var ct=!1,ht=null,lt=-1,pt=5,ft=-1;function gt(){return!(o.unstable_now()-ftdt||125xt?(dt.sortIndex=Ct,e(b,dt),s(_)===null&&dt===s(b)&&(nt?(rt(lt),lt=-1):nt=!0,At(ot,Ct-xt))):(dt.sortIndex=Tt,e(_,dt),tt||et||(tt=!0,St(ut))),dt},o.unstable_shouldYield=gt,o.unstable_wrapCallback=function(dt){var Dt=_e;return function(){var Ct=_e;_e=Dt;try{return dt.apply(this,arguments)}finally{_e=Ct}}}})(scheduler_production_min);(function(o){o.exports=scheduler_production_min})(scheduler);/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var aa=react.exports,ca=scheduler.exports;function p$2(o){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+o,s=1;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,la={},ma={};function oa(o){return ja.call(ma,o)?!0:ja.call(la,o)?!1:ka.test(o)?ma[o]=!0:(la[o]=!0,!1)}function pa(o,e,s,a){if(s!==null&&s.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return a?!1:s!==null?!s.acceptsBooleans:(o=o.toLowerCase().slice(0,5),o!=="data-"&&o!=="aria-");default:return!1}}function qa(o,e,s,a){if(e===null||typeof e>"u"||pa(o,e,s,a))return!0;if(a)return!1;if(s!==null)switch(s.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function v(o,e,s,a,c,h,d){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=a,this.attributeNamespace=c,this.mustUseProperty=s,this.propertyName=o,this.type=e,this.sanitizeURL=h,this.removeEmptyString=d}var z={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(o){z[o]=new v(o,0,!1,o,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(o){var e=o[0];z[e]=new v(e,1,!1,o[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(o){z[o]=new v(o,2,!1,o.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(o){z[o]=new v(o,2,!1,o,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(o){z[o]=new v(o,3,!1,o.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(o){z[o]=new v(o,3,!0,o,null,!1,!1)});["capture","download"].forEach(function(o){z[o]=new v(o,4,!1,o,null,!1,!1)});["cols","rows","size","span"].forEach(function(o){z[o]=new v(o,6,!1,o,null,!1,!1)});["rowSpan","start"].forEach(function(o){z[o]=new v(o,5,!1,o.toLowerCase(),null,!1,!1)});var ra=/[\-:]([a-z])/g;function sa(o){return o[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(o){var e=o.replace(ra,sa);z[e]=new v(e,1,!1,o,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(o){var e=o.replace(ra,sa);z[e]=new v(e,1,!1,o,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(o){var e=o.replace(ra,sa);z[e]=new v(e,1,!1,o,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(o){z[o]=new v(o,1,!1,o.toLowerCase(),null,!1,!1)});z.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(o){z[o]=new v(o,1,!1,o.toLowerCase(),null,!0,!0)});function ta(o,e,s,a){var c=z.hasOwnProperty(e)?z[e]:null;(c!==null?c.type!==0:a||!(2g||c[d]!==h[g]){var _=` -`+c[d].replace(" at new "," at ");return o.displayName&&_.includes("")&&(_=_.replace("",o.displayName)),_}while(1<=d&&0<=g);break}}}finally{Na=!1,Error.prepareStackTrace=s}return(o=o?o.displayName||o.name:"")?Ma(o):""}function Pa(o){switch(o.tag){case 5:return Ma(o.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return o=Oa(o.type,!1),o;case 11:return o=Oa(o.type.render,!1),o;case 1:return o=Oa(o.type,!0),o;default:return""}}function Qa(o){if(o==null)return null;if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case Ca:return(o.displayName||"Context")+".Consumer";case Ba:return(o._context.displayName||"Context")+".Provider";case Da:var e=o.render;return o=o.displayName,o||(o=e.displayName||e.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case Ga:return e=o.displayName||null,e!==null?e:Qa(o.type)||"Memo";case Ha:e=o._payload,o=o._init;try{return Qa(o(e))}catch{}}return null}function Ra(o){var e=o.type;switch(o.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return o=e.render,o=o.displayName||o.name||"",e.displayName||(o!==""?"ForwardRef("+o+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(e);case 8:return e===za?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Sa(o){switch(typeof o){case"boolean":case"number":case"string":case"undefined":return o;case"object":return o;default:return""}}function Ta(o){var e=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Ua(o){var e=Ta(o)?"checked":"value",s=Object.getOwnPropertyDescriptor(o.constructor.prototype,e),a=""+o[e];if(!o.hasOwnProperty(e)&&typeof s<"u"&&typeof s.get=="function"&&typeof s.set=="function"){var c=s.get,h=s.set;return Object.defineProperty(o,e,{configurable:!0,get:function(){return c.call(this)},set:function(d){a=""+d,h.call(this,d)}}),Object.defineProperty(o,e,{enumerable:s.enumerable}),{getValue:function(){return a},setValue:function(d){a=""+d},stopTracking:function(){o._valueTracker=null,delete o[e]}}}}function Va(o){o._valueTracker||(o._valueTracker=Ua(o))}function Wa(o){if(!o)return!1;var e=o._valueTracker;if(!e)return!0;var s=e.getValue(),a="";return o&&(a=Ta(o)?o.checked?"true":"false":o.value),o=a,o!==s?(e.setValue(o),!0):!1}function Xa(o){if(o=o||(typeof document<"u"?document:void 0),typeof o>"u")return null;try{return o.activeElement||o.body}catch{return o.body}}function Ya(o,e){var s=e.checked;return A({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:s!=null?s:o._wrapperState.initialChecked})}function Za(o,e){var s=e.defaultValue==null?"":e.defaultValue,a=e.checked!=null?e.checked:e.defaultChecked;s=Sa(e.value!=null?e.value:s),o._wrapperState={initialChecked:a,initialValue:s,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function ab(o,e){e=e.checked,e!=null&&ta(o,"checked",e,!1)}function bb(o,e){ab(o,e);var s=Sa(e.value),a=e.type;if(s!=null)a==="number"?(s===0&&o.value===""||o.value!=s)&&(o.value=""+s):o.value!==""+s&&(o.value=""+s);else if(a==="submit"||a==="reset"){o.removeAttribute("value");return}e.hasOwnProperty("value")?cb(o,e.type,s):e.hasOwnProperty("defaultValue")&&cb(o,e.type,Sa(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(o.defaultChecked=!!e.defaultChecked)}function db(o,e,s){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var a=e.type;if(!(a!=="submit"&&a!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+o._wrapperState.initialValue,s||e===o.value||(o.value=e),o.defaultValue=e}s=o.name,s!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,s!==""&&(o.name=s)}function cb(o,e,s){(e!=="number"||Xa(o.ownerDocument)!==o)&&(s==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+s&&(o.defaultValue=""+s))}var eb=Array.isArray;function fb(o,e,s,a){if(o=o.options,e){e={};for(var c=0;c"+e.valueOf().toString()+"",e=mb.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;e.firstChild;)o.appendChild(e.firstChild)}});function ob(o,e){if(e){var s=o.firstChild;if(s&&s===o.lastChild&&s.nodeType===3){s.nodeValue=e;return}}o.textContent=e}var pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(o){qb.forEach(function(e){e=e+o.charAt(0).toUpperCase()+o.substring(1),pb[e]=pb[o]})});function rb(o,e,s){return e==null||typeof e=="boolean"||e===""?"":s||typeof e!="number"||e===0||pb.hasOwnProperty(o)&&pb[o]?(""+e).trim():e+"px"}function sb(o,e){o=o.style;for(var s in e)if(e.hasOwnProperty(s)){var a=s.indexOf("--")===0,c=rb(s,e[s],a);s==="float"&&(s="cssFloat"),a?o.setProperty(s,c):o[s]=c}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub(o,e){if(e){if(tb[o]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(p$2(137,o));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(p$2(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(p$2(61))}if(e.style!=null&&typeof e.style!="object")throw Error(p$2(62))}}function vb(o,e){if(o.indexOf("-")===-1)return typeof e.is=="string";switch(o){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb=null;function xb(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var yb=null,zb=null,Ab=null;function Bb(o){if(o=Cb(o)){if(typeof yb!="function")throw Error(p$2(280));var e=o.stateNode;e&&(e=Db(e),yb(o.stateNode,o.type,e))}}function Eb(o){zb?Ab?Ab.push(o):Ab=[o]:zb=o}function Fb(){if(zb){var o=zb,e=Ab;if(Ab=zb=null,Bb(o),e)for(o=0;o>>=0,o===0?32:31-(pc(o)/qc|0)|0}var rc=64,sc=4194304;function tc(o){switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return o&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return o}}function uc(o,e){var s=o.pendingLanes;if(s===0)return 0;var a=0,c=o.suspendedLanes,h=o.pingedLanes,d=s&268435455;if(d!==0){var g=d&~c;g!==0?a=tc(g):(h&=d,h!==0&&(a=tc(h)))}else d=s&~c,d!==0?a=tc(d):h!==0&&(a=tc(h));if(a===0)return 0;if(e!==0&&e!==a&&(e&c)===0&&(c=a&-a,h=e&-e,c>=h||c===16&&(h&4194240)!==0))return e;if((a&4)!==0&&(a|=s&16),e=o.entangledLanes,e!==0)for(o=o.entanglements,e&=a;0s;s++)e.push(o);return e}function Ac(o,e,s){o.pendingLanes|=e,e!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,e=31-oc(e),o[e]=s}function Bc(o,e){var s=o.pendingLanes&~e;o.pendingLanes=e,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=e,o.mutableReadLanes&=e,o.entangledLanes&=e,e=o.entanglements;var a=o.eventTimes;for(o=o.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;function ge(o,e){switch(o){case"keyup":return $d.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var ie$2=!1;function je(o,e){switch(o){case"compositionend":return he(e);case"keypress":return e.which!==32?null:(fe=!0,ee);case"textInput":return o=e.data,o===ee&&fe?null:o;default:return null}}function ke(o,e){if(ie$2)return o==="compositionend"||!ae&&ge(o,e)?(o=nd(),md=ld=kd=null,ie$2=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:s,offset:e-o};o=a}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Je(s)}}function Le(o,e){return o&&e?o===e?!0:o&&o.nodeType===3?!1:e&&e.nodeType===3?Le(o,e.parentNode):"contains"in o?o.contains(e):o.compareDocumentPosition?!!(o.compareDocumentPosition(e)&16):!1:!1}function Me(){for(var o=window,e=Xa();e instanceof o.HTMLIFrameElement;){try{var s=typeof e.contentWindow.location.href=="string"}catch{s=!1}if(s)o=e.contentWindow;else break;e=Xa(o.document)}return e}function Ne(o){var e=o&&o.nodeName&&o.nodeName.toLowerCase();return e&&(e==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||e==="textarea"||o.contentEditable==="true")}function Oe(o){var e=Me(),s=o.focusedElem,a=o.selectionRange;if(e!==s&&s&&s.ownerDocument&&Le(s.ownerDocument.documentElement,s)){if(a!==null&&Ne(s)){if(e=a.start,o=a.end,o===void 0&&(o=e),"selectionStart"in s)s.selectionStart=e,s.selectionEnd=Math.min(o,s.value.length);else if(o=(e=s.ownerDocument||document)&&e.defaultView||window,o.getSelection){o=o.getSelection();var c=s.textContent.length,h=Math.min(a.start,c);a=a.end===void 0?h:Math.min(a.end,c),!o.extend&&h>a&&(c=a,a=h,h=c),c=Ke(s,h);var d=Ke(s,a);c&&d&&(o.rangeCount!==1||o.anchorNode!==c.node||o.anchorOffset!==c.offset||o.focusNode!==d.node||o.focusOffset!==d.offset)&&(e=e.createRange(),e.setStart(c.node,c.offset),o.removeAllRanges(),h>a?(o.addRange(e),o.extend(d.node,d.offset)):(e.setEnd(d.node,d.offset),o.addRange(e)))}}for(e=[],o=s;o=o.parentNode;)o.nodeType===1&&e.push({element:o,left:o.scrollLeft,top:o.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;s=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;function Ue(o,e,s){var a=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;Te||Qe==null||Qe!==Xa(a)||(a=Qe,"selectionStart"in a&&Ne(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Se&&Ie(Se,a)||(Se=a,a=oe(Re,"onSelect"),0Tf||(o.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(o,e){Tf++,Sf[Tf]=o.current,o.current=e}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(o,e){var s=o.type.contextTypes;if(!s)return Vf;var a=o.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===e)return a.__reactInternalMemoizedMaskedChildContext;var c={},h;for(h in s)c[h]=e[h];return a&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=e,o.__reactInternalMemoizedMaskedChildContext=c),c}function Zf(o){return o=o.childContextTypes,o!=null}function $f(){E(Wf),E(H)}function ag(o,e,s){if(H.current!==Vf)throw Error(p$2(168));G(H,e),G(Wf,s)}function bg(o,e,s){var a=o.stateNode;if(e=e.childContextTypes,typeof a.getChildContext!="function")return s;a=a.getChildContext();for(var c in a)if(!(c in e))throw Error(p$2(108,Ra(o)||"Unknown",c));return A({},s,a)}function cg(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||Vf,Xf=H.current,G(H,o),G(Wf,Wf.current),!0}function dg(o,e,s){var a=o.stateNode;if(!a)throw Error(p$2(169));s?(o=bg(o,e,Xf),a.__reactInternalMemoizedMergedChildContext=o,E(Wf),E(H),G(H,o)):E(Wf),G(Wf,s)}var eg=null,fg=!1,gg=!1;function hg(o){eg===null?eg=[o]:eg.push(o)}function ig(o){fg=!0,hg(o)}function jg(){if(!gg&&eg!==null){gg=!0;var o=0,e=C$1;try{var s=eg;for(C$1=1;o>=d,c-=d,rg=1<<32-oc(e)+c|s<lt?(pt=ht,ht=null):pt=ht.sibling;var ft=_e(rt,ht,at[lt],ot);if(ft===null){ht===null&&(ht=pt);break}o&&ht&&ft.alternate===null&&e(rt,ht),it=h(ft,it,lt),ct===null?ut=ft:ct.sibling=ft,ct=ft,ht=pt}if(lt===at.length)return s(rt,ht),I$1&&tg(rt,lt),ut;if(ht===null){for(;ltlt?(pt=ht,ht=null):pt=ht.sibling;var gt=_e(rt,ht,ft.value,ot);if(gt===null){ht===null&&(ht=pt);break}o&&ht&>.alternate===null&&e(rt,ht),it=h(gt,it,lt),ct===null?ut=gt:ct.sibling=gt,ct=gt,ht=pt}if(ft.done)return s(rt,ht),I$1&&tg(rt,lt),ut;if(ht===null){for(;!ft.done;lt++,ft=at.next())ft=j(rt,ft.value,ot),ft!==null&&(it=h(ft,it,lt),ct===null?ut=ft:ct.sibling=ft,ct=ft);return I$1&&tg(rt,lt),ut}for(ht=a(rt,ht);!ft.done;lt++,ft=at.next())ft=et(ht,rt,lt,ft.value,ot),ft!==null&&(o&&ft.alternate!==null&&ht.delete(ft.key===null?lt:ft.key),it=h(ft,it,lt),ct===null?ut=ft:ct.sibling=ft,ct=ft);return o&&ht.forEach(function(yt){return e(rt,yt)}),I$1&&tg(rt,lt),ut}function st(rt,it,at,ot){if(typeof at=="object"&&at!==null&&at.type===ya&&at.key===null&&(at=at.props.children),typeof at=="object"&&at!==null){switch(at.$$typeof){case va:e:{for(var ut=at.key,ct=it;ct!==null;){if(ct.key===ut){if(ut=at.type,ut===ya){if(ct.tag===7){s(rt,ct.sibling),it=c(ct,at.props.children),it.return=rt,rt=it;break e}}else if(ct.elementType===ut||typeof ut=="object"&&ut!==null&&ut.$$typeof===Ha&&uh(ut)===ct.type){s(rt,ct.sibling),it=c(ct,at.props),it.ref=sh(rt,ct,at),it.return=rt,rt=it;break e}s(rt,ct);break}else e(rt,ct);ct=ct.sibling}at.type===ya?(it=Ah(at.props.children,rt.mode,ot,at.key),it.return=rt,rt=it):(ot=yh(at.type,at.key,at.props,null,rt.mode,ot),ot.ref=sh(rt,it,at),ot.return=rt,rt=ot)}return d(rt);case wa:e:{for(ct=at.key;it!==null;){if(it.key===ct)if(it.tag===4&&it.stateNode.containerInfo===at.containerInfo&&it.stateNode.implementation===at.implementation){s(rt,it.sibling),it=c(it,at.children||[]),it.return=rt,rt=it;break e}else{s(rt,it);break}else e(rt,it);it=it.sibling}it=zh(at,rt.mode,ot),it.return=rt,rt=it}return d(rt);case Ha:return ct=at._init,st(rt,it,ct(at._payload),ot)}if(eb(at))return tt(rt,it,at,ot);if(Ka(at))return nt(rt,it,at,ot);th(rt,at)}return typeof at=="string"&&at!==""||typeof at=="number"?(at=""+at,it!==null&&it.tag===6?(s(rt,it.sibling),it=c(it,at),it.return=rt,rt=it):(s(rt,it),it=xh(at,rt.mode,ot),it.return=rt,rt=it),d(rt)):s(rt,it)}return st}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(o){if(o===Dh)throw Error(p$2(174));return o}function Ih(o,e){switch(G(Gh,e),G(Fh,o),G(Eh,Dh),o=e.nodeType,o){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:lb(null,"");break;default:o=o===8?e.parentNode:e,e=o.namespaceURI||null,o=o.tagName,e=lb(e,o)}E(Eh),G(Eh,e)}function Jh(){E(Eh),E(Fh),E(Gh)}function Kh(o){Hh(Gh.current);var e=Hh(Eh.current),s=lb(e,o.type);e!==s&&(G(Fh,o),G(Eh,s))}function Lh(o){Fh.current===o&&(E(Eh),E(Fh))}var M=Uf(0);function Mh(o){for(var e=o;e!==null;){if(e.tag===13){var s=e.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||s.data==="$?"||s.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===o)break;for(;e.sibling===null;){if(e.return===null||e.return===o)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var Nh=[];function Oh(){for(var o=0;os?s:4,o(!0);var a=Qh.transition;Qh.transition={};try{o(!1),e()}finally{C$1=s,Qh.transition=a}}function Fi(){return di().memoizedState}function Gi(o,e,s){var a=lh(o);if(s={lane:a,action:s,hasEagerState:!1,eagerState:null,next:null},Hi(o))Ii(e,s);else if(s=Yg(o,e,s,a),s!==null){var c=L();mh(s,o,a,c),Ji(s,e,a)}}function ri(o,e,s){var a=lh(o),c={lane:a,action:s,hasEagerState:!1,eagerState:null,next:null};if(Hi(o))Ii(e,c);else{var h=o.alternate;if(o.lanes===0&&(h===null||h.lanes===0)&&(h=e.lastRenderedReducer,h!==null))try{var d=e.lastRenderedState,g=h(d,s);if(c.hasEagerState=!0,c.eagerState=g,He(g,d)){var _=e.interleaved;_===null?(c.next=c,Xg(e)):(c.next=_.next,_.next=c),e.interleaved=c;return}}catch{}finally{}s=Yg(o,e,c,a),s!==null&&(c=L(),mh(s,o,a,c),Ji(s,e,a))}}function Hi(o){var e=o.alternate;return o===N||e!==null&&e===N}function Ii(o,e){Th=Sh=!0;var s=o.pending;s===null?e.next=e:(e.next=s.next,s.next=e),o.pending=e}function Ji(o,e,s){if((s&4194240)!==0){var a=e.lanes;a&=o.pendingLanes,s|=a,e.lanes=s,Cc(o,s)}}var ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(o,e){return ci().memoizedState=[o,e===void 0?null:e],o},useContext:Vg,useEffect:vi,useImperativeHandle:function(o,e,s){return s=s!=null?s.concat([o]):null,ti(4194308,4,yi.bind(null,e,o),s)},useLayoutEffect:function(o,e){return ti(4194308,4,o,e)},useInsertionEffect:function(o,e){return ti(4,2,o,e)},useMemo:function(o,e){var s=ci();return e=e===void 0?null:e,o=o(),s.memoizedState=[o,e],o},useReducer:function(o,e,s){var a=ci();return e=s!==void 0?s(e):e,a.memoizedState=a.baseState=e,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:e},a.queue=o,o=o.dispatch=Gi.bind(null,N,o),[a.memoizedState,o]},useRef:function(o){var e=ci();return o={current:o},e.memoizedState=o},useState:qi,useDebugValue:Ai,useDeferredValue:function(o){return ci().memoizedState=o},useTransition:function(){var o=qi(!1),e=o[0];return o=Ei.bind(null,o[1]),ci().memoizedState=o,[e,o]},useMutableSource:function(){},useSyncExternalStore:function(o,e,s){var a=N,c=ci();if(I$1){if(s===void 0)throw Error(p$2(407));s=s()}else{if(s=e(),R===null)throw Error(p$2(349));(Rh&30)!==0||ni(a,e,s)}c.memoizedState=s;var h={value:s,getSnapshot:e};return c.queue=h,vi(ki.bind(null,a,h,o),[o]),a.flags|=2048,li(9,mi.bind(null,a,h,s,e),void 0,null),s},useId:function(){var o=ci(),e=R.identifierPrefix;if(I$1){var s=sg,a=rg;s=(a&~(1<<32-oc(a)-1)).toString(32)+s,e=":"+e+"R"+s,s=Uh++,0<\/script>",o=o.removeChild(o.firstChild)):typeof a.is=="string"?o=d.createElement(s,{is:a.is}):(o=d.createElement(s),s==="select"&&(d=o,a.multiple?d.multiple=!0:a.size&&(d.size=a.size))):o=d.createElementNS(o,s),o[Of]=e,o[Pf]=a,Aj(o,e,!1,!1),e.stateNode=o;e:{switch(d=vb(s,a),s){case"dialog":D("cancel",o),D("close",o),c=a;break;case"iframe":case"object":case"embed":D("load",o),c=a;break;case"video":case"audio":for(c=0;cHj&&(e.flags|=128,a=!0,Ej(h,!1),e.lanes=4194304)}else{if(!a)if(o=Mh(d),o!==null){if(e.flags|=128,a=!0,s=o.updateQueue,s!==null&&(e.updateQueue=s,e.flags|=4),Ej(h,!0),h.tail===null&&h.tailMode==="hidden"&&!d.alternate&&!I$1)return S(e),null}else 2*B()-h.renderingStartTime>Hj&&s!==1073741824&&(e.flags|=128,a=!0,Ej(h,!1),e.lanes=4194304);h.isBackwards?(d.sibling=e.child,e.child=d):(s=h.last,s!==null?s.sibling=d:e.child=d,h.last=d)}return h.tail!==null?(e=h.tail,h.rendering=e,h.tail=e.sibling,h.renderingStartTime=B(),e.sibling=null,s=M.current,G(M,a?s&1|2:s&1),e):(S(e),null);case 22:case 23:return Ij(),a=e.memoizedState!==null,o!==null&&o.memoizedState!==null!==a&&(e.flags|=8192),a&&(e.mode&1)!==0?(gj&1073741824)!==0&&(S(e),e.subtreeFlags&6&&(e.flags|=8192)):S(e),null;case 24:return null;case 25:return null}throw Error(p$2(156,e.tag))}function Jj(o,e){switch(wg(e),e.tag){case 1:return Zf(e.type)&&$f(),o=e.flags,o&65536?(e.flags=o&-65537|128,e):null;case 3:return Jh(),E(Wf),E(H),Oh(),o=e.flags,(o&65536)!==0&&(o&128)===0?(e.flags=o&-65537|128,e):null;case 5:return Lh(e),null;case 13:if(E(M),o=e.memoizedState,o!==null&&o.dehydrated!==null){if(e.alternate===null)throw Error(p$2(340));Ig()}return o=e.flags,o&65536?(e.flags=o&-65537|128,e):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(e.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=typeof WeakSet=="function"?WeakSet:Set,V=null;function Mj(o,e){var s=o.ref;if(s!==null)if(typeof s=="function")try{s(null)}catch(a){W(o,e,a)}else s.current=null}function Nj(o,e,s){try{s()}catch(a){W(o,e,a)}}var Oj=!1;function Pj(o,e){if(Cf=dd,o=Me(),Ne(o)){if("selectionStart"in o)var s={start:o.selectionStart,end:o.selectionEnd};else e:{s=(s=o.ownerDocument)&&s.defaultView||window;var a=s.getSelection&&s.getSelection();if(a&&a.rangeCount!==0){s=a.anchorNode;var c=a.anchorOffset,h=a.focusNode;a=a.focusOffset;try{s.nodeType,h.nodeType}catch{s=null;break e}var d=0,g=-1,_=-1,b=0,$=0,j=o,_e=null;t:for(;;){for(var et;j!==s||c!==0&&j.nodeType!==3||(g=d+c),j!==h||a!==0&&j.nodeType!==3||(_=d+a),j.nodeType===3&&(d+=j.nodeValue.length),(et=j.firstChild)!==null;)_e=j,j=et;for(;;){if(j===o)break t;if(_e===s&&++b===c&&(g=d),_e===h&&++$===a&&(_=d),(et=j.nextSibling)!==null)break;j=_e,_e=j.parentNode}j=et}s=g===-1||_===-1?null:{start:g,end:_}}else s=null}s=s||{start:0,end:0}}else s=null;for(Df={focusedElem:o,selectionRange:s},dd=!1,V=e;V!==null;)if(e=V,o=e.child,(e.subtreeFlags&1028)!==0&&o!==null)o.return=e,V=o;else for(;V!==null;){e=V;try{var tt=e.alternate;if((e.flags&1024)!==0)switch(e.tag){case 0:case 11:case 15:break;case 1:if(tt!==null){var nt=tt.memoizedProps,st=tt.memoizedState,rt=e.stateNode,it=rt.getSnapshotBeforeUpdate(e.elementType===e.type?nt:Lg(e.type,nt),st);rt.__reactInternalSnapshotBeforeUpdate=it}break;case 3:var at=e.stateNode.containerInfo;at.nodeType===1?at.textContent="":at.nodeType===9&&at.documentElement&&at.removeChild(at.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$2(163))}}catch(ot){W(e,e.return,ot)}if(o=e.sibling,o!==null){o.return=e.return,V=o;break}V=e.return}return tt=Oj,Oj=!1,tt}function Qj(o,e,s){var a=e.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var c=a=a.next;do{if((c.tag&o)===o){var h=c.destroy;c.destroy=void 0,h!==void 0&&Nj(e,s,h)}c=c.next}while(c!==a)}}function Rj(o,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var s=e=e.next;do{if((s.tag&o)===o){var a=s.create;s.destroy=a()}s=s.next}while(s!==e)}}function Sj(o){var e=o.ref;if(e!==null){var s=o.stateNode;switch(o.tag){case 5:o=s;break;default:o=s}typeof e=="function"?e(o):e.current=o}}function Tj(o){var e=o.alternate;e!==null&&(o.alternate=null,Tj(e)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(e=o.stateNode,e!==null&&(delete e[Of],delete e[Pf],delete e[of],delete e[Qf],delete e[Rf])),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function Uj(o){return o.tag===5||o.tag===3||o.tag===4}function Vj(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||Uj(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Wj(o,e,s){var a=o.tag;if(a===5||a===6)o=o.stateNode,e?s.nodeType===8?s.parentNode.insertBefore(o,e):s.insertBefore(o,e):(s.nodeType===8?(e=s.parentNode,e.insertBefore(o,s)):(e=s,e.appendChild(o)),s=s._reactRootContainer,s!=null||e.onclick!==null||(e.onclick=Bf));else if(a!==4&&(o=o.child,o!==null))for(Wj(o,e,s),o=o.sibling;o!==null;)Wj(o,e,s),o=o.sibling}function Xj(o,e,s){var a=o.tag;if(a===5||a===6)o=o.stateNode,e?s.insertBefore(o,e):s.appendChild(o);else if(a!==4&&(o=o.child,o!==null))for(Xj(o,e,s),o=o.sibling;o!==null;)Xj(o,e,s),o=o.sibling}var X=null,Yj=!1;function Zj(o,e,s){for(s=s.child;s!==null;)ak(o,e,s),s=s.sibling}function ak(o,e,s){if(lc&&typeof lc.onCommitFiberUnmount=="function")try{lc.onCommitFiberUnmount(kc,s)}catch{}switch(s.tag){case 5:U||Mj(s,e);case 6:var a=X,c=Yj;X=null,Zj(o,e,s),X=a,Yj=c,X!==null&&(Yj?(o=X,s=s.stateNode,o.nodeType===8?o.parentNode.removeChild(s):o.removeChild(s)):X.removeChild(s.stateNode));break;case 18:X!==null&&(Yj?(o=X,s=s.stateNode,o.nodeType===8?Kf(o.parentNode,s):o.nodeType===1&&Kf(o,s),bd(o)):Kf(X,s.stateNode));break;case 4:a=X,c=Yj,X=s.stateNode.containerInfo,Yj=!0,Zj(o,e,s),X=a,Yj=c;break;case 0:case 11:case 14:case 15:if(!U&&(a=s.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){c=a=a.next;do{var h=c,d=h.destroy;h=h.tag,d!==void 0&&((h&2)!==0||(h&4)!==0)&&Nj(s,e,d),c=c.next}while(c!==a)}Zj(o,e,s);break;case 1:if(!U&&(Mj(s,e),a=s.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=s.memoizedProps,a.state=s.memoizedState,a.componentWillUnmount()}catch(g){W(s,e,g)}Zj(o,e,s);break;case 21:Zj(o,e,s);break;case 22:s.mode&1?(U=(a=U)||s.memoizedState!==null,Zj(o,e,s),U=a):Zj(o,e,s);break;default:Zj(o,e,s)}}function bk(o){var e=o.updateQueue;if(e!==null){o.updateQueue=null;var s=o.stateNode;s===null&&(s=o.stateNode=new Lj),e.forEach(function(a){var c=ck.bind(null,o,a);s.has(a)||(s.add(a),a.then(c,c))})}}function dk(o,e){var s=e.deletions;if(s!==null)for(var a=0;ac&&(c=d),a&=~h}if(a=c,a=B()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*mk(a/1960))-a,10o?16:o,xk===null)var a=!1;else{if(o=xk,xk=null,yk=0,(K&6)!==0)throw Error(p$2(331));var c=K;for(K|=4,V=o.current;V!==null;){var h=V,d=h.child;if((V.flags&16)!==0){var g=h.deletions;if(g!==null){for(var _=0;_B()-gk?Lk(o,0):sk|=s),Ek(o,e)}function Zk(o,e){e===0&&((o.mode&1)===0?e=1:(e=sc,sc<<=1,(sc&130023424)===0&&(sc=4194304)));var s=L();o=Zg(o,e),o!==null&&(Ac(o,e,s),Ek(o,s))}function vj(o){var e=o.memoizedState,s=0;e!==null&&(s=e.retryLane),Zk(o,s)}function ck(o,e){var s=0;switch(o.tag){case 13:var a=o.stateNode,c=o.memoizedState;c!==null&&(s=c.retryLane);break;case 19:a=o.stateNode;break;default:throw Error(p$2(314))}a!==null&&a.delete(e),Zk(o,s)}var Wk;Wk=function(o,e,s){if(o!==null)if(o.memoizedProps!==e.pendingProps||Wf.current)Ug=!0;else{if((o.lanes&s)===0&&(e.flags&128)===0)return Ug=!1,zj(o,e,s);Ug=(o.flags&131072)!==0}else Ug=!1,I$1&&(e.flags&1048576)!==0&&ug(e,ng,e.index);switch(e.lanes=0,e.tag){case 2:var a=e.type;jj(o,e),o=e.pendingProps;var c=Yf(e,H.current);Tg(e,s),c=Xh(null,e,a,o,c,s);var h=bi();return e.flags|=1,typeof c=="object"&&c!==null&&typeof c.render=="function"&&c.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Zf(a)?(h=!0,cg(e)):h=!1,e.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,ah(e),c.updater=nh,e.stateNode=c,c._reactInternals=e,rh(e,a,o,s),e=kj(null,e,a,!0,h,s)):(e.tag=0,I$1&&h&&vg(e),Yi(null,e,c,s),e=e.child),e;case 16:a=e.elementType;e:{switch(jj(o,e),o=e.pendingProps,c=a._init,a=c(a._payload),e.type=a,c=e.tag=$k(a),o=Lg(a,o),c){case 0:e=dj(null,e,a,o,s);break e;case 1:e=ij(null,e,a,o,s);break e;case 11:e=Zi(null,e,a,o,s);break e;case 14:e=aj(null,e,a,Lg(a.type,o),s);break e}throw Error(p$2(306,a,""))}return e;case 0:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:Lg(a,c),dj(o,e,a,c,s);case 1:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:Lg(a,c),ij(o,e,a,c,s);case 3:e:{if(lj(e),o===null)throw Error(p$2(387));a=e.pendingProps,h=e.memoizedState,c=h.element,bh(o,e),gh(e,a,null,s);var d=e.memoizedState;if(a=d.element,h.isDehydrated)if(h={element:a,isDehydrated:!1,cache:d.cache,pendingSuspenseBoundaries:d.pendingSuspenseBoundaries,transitions:d.transitions},e.updateQueue.baseState=h,e.memoizedState=h,e.flags&256){c=Ki(Error(p$2(423)),e),e=mj(o,e,a,s,c);break e}else if(a!==c){c=Ki(Error(p$2(424)),e),e=mj(o,e,a,s,c);break e}else for(yg=Lf(e.stateNode.containerInfo.firstChild),xg=e,I$1=!0,zg=null,s=Ch(e,null,a,s),e.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(Ig(),a===c){e=$i(o,e,s);break e}Yi(o,e,a,s)}e=e.child}return e;case 5:return Kh(e),o===null&&Eg(e),a=e.type,c=e.pendingProps,h=o!==null?o.memoizedProps:null,d=c.children,Ef(a,c)?d=null:h!==null&&Ef(a,h)&&(e.flags|=32),hj(o,e),Yi(o,e,d,s),e.child;case 6:return o===null&&Eg(e),null;case 13:return pj(o,e,s);case 4:return Ih(e,e.stateNode.containerInfo),a=e.pendingProps,o===null?e.child=Bh(e,null,a,s):Yi(o,e,a,s),e.child;case 11:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:Lg(a,c),Zi(o,e,a,c,s);case 7:return Yi(o,e,e.pendingProps,s),e.child;case 8:return Yi(o,e,e.pendingProps.children,s),e.child;case 12:return Yi(o,e,e.pendingProps.children,s),e.child;case 10:e:{if(a=e.type._context,c=e.pendingProps,h=e.memoizedProps,d=c.value,G(Mg,a._currentValue),a._currentValue=d,h!==null)if(He(h.value,d)){if(h.children===c.children&&!Wf.current){e=$i(o,e,s);break e}}else for(h=e.child,h!==null&&(h.return=e);h!==null;){var g=h.dependencies;if(g!==null){d=h.child;for(var _=g.firstContext;_!==null;){if(_.context===a){if(h.tag===1){_=ch(-1,s&-s),_.tag=2;var b=h.updateQueue;if(b!==null){b=b.shared;var $=b.pending;$===null?_.next=_:(_.next=$.next,$.next=_),b.pending=_}}h.lanes|=s,_=h.alternate,_!==null&&(_.lanes|=s),Sg(h.return,s,e),g.lanes|=s;break}_=_.next}}else if(h.tag===10)d=h.type===e.type?null:h.child;else if(h.tag===18){if(d=h.return,d===null)throw Error(p$2(341));d.lanes|=s,g=d.alternate,g!==null&&(g.lanes|=s),Sg(d,s,e),d=h.sibling}else d=h.child;if(d!==null)d.return=h;else for(d=h;d!==null;){if(d===e){d=null;break}if(h=d.sibling,h!==null){h.return=d.return,d=h;break}d=d.return}h=d}Yi(o,e,c.children,s),e=e.child}return e;case 9:return c=e.type,a=e.pendingProps.children,Tg(e,s),c=Vg(c),a=a(c),e.flags|=1,Yi(o,e,a,s),e.child;case 14:return a=e.type,c=Lg(a,e.pendingProps),c=Lg(a.type,c),aj(o,e,a,c,s);case 15:return cj(o,e,e.type,e.pendingProps,s);case 17:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:Lg(a,c),jj(o,e),e.tag=1,Zf(a)?(o=!0,cg(e)):o=!1,Tg(e,s),ph(e,a,c),rh(e,a,c,s),kj(null,e,a,!0,o,s);case 19:return yj(o,e,s);case 22:return ej(o,e,s)}throw Error(p$2(156,e.tag))};function Gk(o,e){return ac(o,e)}function al(o,e,s,a){this.tag=o,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(o,e,s,a){return new al(o,e,s,a)}function bj(o){return o=o.prototype,!(!o||!o.isReactComponent)}function $k(o){if(typeof o=="function")return bj(o)?1:0;if(o!=null){if(o=o.$$typeof,o===Da)return 11;if(o===Ga)return 14}return 2}function wh(o,e){var s=o.alternate;return s===null?(s=Bg(o.tag,e,o.key,o.mode),s.elementType=o.elementType,s.type=o.type,s.stateNode=o.stateNode,s.alternate=o,o.alternate=s):(s.pendingProps=e,s.type=o.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=o.flags&14680064,s.childLanes=o.childLanes,s.lanes=o.lanes,s.child=o.child,s.memoizedProps=o.memoizedProps,s.memoizedState=o.memoizedState,s.updateQueue=o.updateQueue,e=o.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},s.sibling=o.sibling,s.index=o.index,s.ref=o.ref,s}function yh(o,e,s,a,c,h){var d=2;if(a=o,typeof o=="function")bj(o)&&(d=1);else if(typeof o=="string")d=5;else e:switch(o){case ya:return Ah(s.children,c,h,e);case za:d=8,c|=8;break;case Aa:return o=Bg(12,s,e,c|2),o.elementType=Aa,o.lanes=h,o;case Ea:return o=Bg(13,s,e,c),o.elementType=Ea,o.lanes=h,o;case Fa:return o=Bg(19,s,e,c),o.elementType=Fa,o.lanes=h,o;case Ia:return qj(s,c,h,e);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case Ba:d=10;break e;case Ca:d=9;break e;case Da:d=11;break e;case Ga:d=14;break e;case Ha:d=16,a=null;break e}throw Error(p$2(130,o==null?o:typeof o,""))}return e=Bg(d,s,e,c),e.elementType=o,e.type=a,e.lanes=h,e}function Ah(o,e,s,a){return o=Bg(7,o,a,e),o.lanes=s,o}function qj(o,e,s,a){return o=Bg(22,o,a,e),o.elementType=Ia,o.lanes=s,o.stateNode={isHidden:!1},o}function xh(o,e,s){return o=Bg(6,o,null,e),o.lanes=s,o}function zh(o,e,s){return e=Bg(4,o.children!==null?o.children:[],o.key,e),e.lanes=s,e.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},e}function bl(o,e,s,a,c){this.tag=e,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc(0),this.expirationTimes=zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc(0),this.identifierPrefix=a,this.onRecoverableError=c,this.mutableSourceEagerHydrationData=null}function cl(o,e,s,a,c,h,d,g,_){return o=new bl(o,e,s,g,_),e===1?(e=1,h===!0&&(e|=8)):e=0,h=Bg(3,null,null,e),o.current=h,h.stateNode=o,h.memoizedState={element:a,isDehydrated:s,cache:null,transitions:null,pendingSuspenseBoundaries:null},ah(h),o}function dl(o,e,s){var a=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(s){console.error(s)}}e(),o.exports=reactDom_production_min})(reactDom);var m$1=reactDom.exports;client.createRoot=m$1.createRoot,client.hydrateRoot=m$1.hydrateRoot;const scriptRel="modulepreload",assetsURL=function(o){return"/"+o},seen={},__vitePreload=function(e,s,a){return!s||s.length===0?e():Promise.all(s.map(c=>{if(c=assetsURL(c),c in seen)return;seen[c]=!0;const h=c.endsWith(".css"),d=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const g=document.createElement("link");if(g.rel=h?"stylesheet":scriptRel,h||(g.as="script",g.crossOrigin=""),g.href=c,document.head.appendChild(g),h)return new Promise((_,b)=>{g.addEventListener("load",_),g.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${c}`)))})})).then(()=>e())};var fraction$1={exports:{}};/** - * @license Fraction.js v4.2.0 05/03/2022 - * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ - * - * Copyright (c) 2021, Robert Eisele (robert@xarg.org) - * Dual licensed under the MIT or GPL Version 2 licenses. - **/(function(o,e){(function(s){var a=2e3,c={s:1,n:0,d:1};function h(tt,nt){if(isNaN(tt=parseInt(tt,10)))throw et.InvalidParameter;return tt*nt}function d(tt,nt){if(nt===0)throw et.DivisionByZero;var st=Object.create(et.prototype);st.s=tt<0?-1:1,tt=tt<0?-tt:tt;var rt=_e(tt,nt);return st.n=tt/rt,st.d=nt/rt,st}function g(tt){for(var nt={},st=tt,rt=2,it=4;it<=st;){for(;st%rt===0;)st/=rt,nt[rt]=(nt[rt]||0)+1;it+=1+2*rt++}return st!==tt?st>1&&(nt[st]=(nt[st]||0)+1):nt[tt]=(nt[tt]||0)+1,nt}var _=function(tt,nt){var st=0,rt=1,it=1,at=0,ot=0,ut=0,ct=1,ht=1,lt=0,pt=1,ft=1,gt=1,yt=1e7,mt;if(tt!=null)if(nt!==void 0){if(st=tt,rt=nt,it=st*rt,st%1!==0||rt%1!==0)throw et.NonIntegerParameter}else switch(typeof tt){case"object":{if("d"in tt&&"n"in tt)st=tt.n,rt=tt.d,"s"in tt&&(st*=tt.s);else if(0 in tt)st=tt[0],1 in tt&&(rt=tt[1]);else throw et.InvalidParameter;it=st*rt;break}case"number":{if(tt<0&&(it=tt,tt=-tt),tt%1===0)st=tt;else if(tt>0){for(tt>=1&&(ht=Math.pow(10,Math.floor(1+Math.log(tt)/Math.LN10)),tt/=ht);pt<=yt&><=yt;)if(mt=(lt+ft)/(pt+gt),tt===mt){pt+gt<=yt?(st=lt+ft,rt=pt+gt):gt>pt?(st=ft,rt=gt):(st=lt,rt=pt);break}else tt>mt?(lt+=ft,pt+=gt):(ft+=lt,gt+=pt),pt>yt?(st=ft,rt=gt):(st=lt,rt=pt);st*=ht}else(isNaN(tt)||isNaN(nt))&&(rt=st=NaN);break}case"string":{if(pt=tt.match(/\d+|./g),pt===null)throw et.InvalidParameter;if(pt[lt]==="-"?(it=-1,lt++):pt[lt]==="+"&<++,pt.length===lt+1?ot=h(pt[lt++],it):pt[lt+1]==="."||pt[lt]==="."?(pt[lt]!=="."&&(at=h(pt[lt++],it)),lt++,(lt+1===pt.length||pt[lt+1]==="("&&pt[lt+3]===")"||pt[lt+1]==="'"&&pt[lt+3]==="'")&&(ot=h(pt[lt],it),ct=Math.pow(10,pt[lt].length),lt++),(pt[lt]==="("&&pt[lt+2]===")"||pt[lt]==="'"&&pt[lt+2]==="'")&&(ut=h(pt[lt+1],it),ht=Math.pow(10,pt[lt+1].length)-1,lt+=3)):pt[lt+1]==="/"||pt[lt+1]===":"?(ot=h(pt[lt],it),ct=h(pt[lt+2],1),lt+=3):pt[lt+3]==="/"&&pt[lt+1]===" "&&(at=h(pt[lt],it),ot=h(pt[lt+2],it),ct=h(pt[lt+4],1),lt+=5),pt.length<=lt){rt=ct*ht,it=st=ut+rt*at+ht*ot;break}}default:throw et.InvalidParameter}if(rt===0)throw et.DivisionByZero;c.s=it<0?-1:1,c.n=Math.abs(st),c.d=Math.abs(rt)};function b(tt,nt,st){for(var rt=1;nt>0;tt=tt*tt%st,nt>>=1)nt&1&&(rt=rt*tt%st);return rt}function $(tt,nt){for(;nt%2===0;nt/=2);for(;nt%5===0;nt/=5);if(nt===1)return 0;for(var st=10%nt,rt=1;st!==1;rt++)if(st=st*10%nt,rt>a)return 0;return rt}function j(tt,nt,st){for(var rt=1,it=b(10,st,nt),at=0;at<300;at++){if(rt===it)return at;rt=rt*10%nt,it=it*10%nt}return 0}function _e(tt,nt){if(!tt)return nt;if(!nt)return tt;for(;;){if(tt%=nt,!tt)return nt;if(nt%=tt,!nt)return tt}}function et(tt,nt){if(_(tt,nt),this instanceof et)tt=_e(c.d,c.n),this.s=c.s,this.n=c.n/tt,this.d=c.d/tt;else return d(c.s*c.n,c.d)}et.DivisionByZero=new Error("Division by Zero"),et.InvalidParameter=new Error("Invalid argument"),et.NonIntegerParameter=new Error("Parameters must be integer"),et.prototype={s:1,n:0,d:1,abs:function(){return d(this.n,this.d)},neg:function(){return d(-this.s*this.n,this.d)},add:function(tt,nt){return _(tt,nt),d(this.s*this.n*c.d+c.s*this.d*c.n,this.d*c.d)},sub:function(tt,nt){return _(tt,nt),d(this.s*this.n*c.d-c.s*this.d*c.n,this.d*c.d)},mul:function(tt,nt){return _(tt,nt),d(this.s*c.s*this.n*c.n,this.d*c.d)},div:function(tt,nt){return _(tt,nt),d(this.s*c.s*this.n*c.d,this.d*c.n)},clone:function(){return d(this.s*this.n,this.d)},mod:function(tt,nt){if(isNaN(this.n)||isNaN(this.d))return new et(NaN);if(tt===void 0)return d(this.s*this.n%this.d,1);if(_(tt,nt),c.n===0&&this.d===0)throw et.DivisionByZero;return d(this.s*(c.d*this.n)%(c.n*this.d),c.d*this.d)},gcd:function(tt,nt){return _(tt,nt),d(_e(c.n,this.n)*_e(c.d,this.d),c.d*this.d)},lcm:function(tt,nt){return _(tt,nt),c.n===0&&this.n===0?d(0,1):d(c.n*this.n,_e(c.n,this.n)*_e(c.d,this.d))},ceil:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new et(NaN):d(Math.ceil(tt*this.s*this.n/this.d),tt)},floor:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new et(NaN):d(Math.floor(tt*this.s*this.n/this.d),tt)},round:function(tt){return tt=Math.pow(10,tt||0),isNaN(this.n)||isNaN(this.d)?new et(NaN):d(Math.round(tt*this.s*this.n/this.d),tt)},inverse:function(){return d(this.s*this.d,this.n)},pow:function(tt,nt){if(_(tt,nt),c.d===1)return c.s<0?d(Math.pow(this.s*this.d,c.n),Math.pow(this.n,c.n)):d(Math.pow(this.s*this.n,c.n),Math.pow(this.d,c.n));if(this.s<0)return null;var st=g(this.n),rt=g(this.d),it=1,at=1;for(var ot in st)if(ot!=="1"){if(ot==="0"){it=0;break}if(st[ot]*=c.n,st[ot]%c.d===0)st[ot]/=c.d;else return null;it*=Math.pow(ot,st[ot])}for(var ot in rt)if(ot!=="1"){if(rt[ot]*=c.n,rt[ot]%c.d===0)rt[ot]/=c.d;else return null;at*=Math.pow(ot,rt[ot])}return c.s<0?d(at,it):d(it,at)},equals:function(tt,nt){return _(tt,nt),this.s*this.n*c.d===c.s*c.n*this.d},compare:function(tt,nt){_(tt,nt);var st=this.s*this.n*c.d-c.s*c.n*this.d;return(0=0;at--)it=it.inverse().add(st[at]);if(it.sub(nt).abs().valueOf()0&&(st+=nt,st+=" ",rt%=it),st+=rt,st+="/",st+=it),st},toLatex:function(tt){var nt,st="",rt=this.n,it=this.d;return this.s<0&&(st+="-"),it===1?st+=rt:(tt&&(nt=Math.floor(rt/it))>0&&(st+=nt,rt%=it),st+="\\frac{",st+=rt,st+="}{",st+=it,st+="}"),st},toContinued:function(){var tt,nt=this.n,st=this.d,rt=[];if(isNaN(nt)||isNaN(st))return rt;do rt.push(Math.floor(nt/st)),tt=nt%st,nt=st,st=tt;while(nt!==1);return rt},toString:function(tt){var nt=this.n,st=this.d;if(isNaN(nt)||isNaN(st))return"NaN";tt=tt||15;var rt=$(nt,st),it=j(nt,st,rt),at=this.s<0?"-":"";if(at+=nt/st|0,nt%=st,nt*=10,nt&&(at+="."),rt){for(var ot=it;ot--;)at+=nt/st|0,nt%=st,nt*=10;at+="(";for(var ot=rt;ot--;)at+=nt/st|0,nt%=st,nt*=10;at+=")"}else for(var ot=tt;nt&&ot--;)at+=nt/st|0,nt%=st,nt*=10;return at}},Object.defineProperty(et,"__esModule",{value:!0}),et.default=et,et.Fraction=et,o.exports=et})()})(fraction$1);const Fraction=getDefaultExportFromCjs(fraction$1.exports);Fraction.prototype.sam=function(){return this.floor()};Fraction.prototype.nextSam=function(){return this.sam().add(1)};Fraction.prototype.wholeCycle=function(){return new TimeSpan(this.sam(),this.nextSam())};Fraction.prototype.cyclePos=function(){return this.sub(this.sam())};Fraction.prototype.lt=function(o){return this.compare(o)<0};Fraction.prototype.gt=function(o){return this.compare(o)>0};Fraction.prototype.lte=function(o){return this.compare(o)<=0};Fraction.prototype.gte=function(o){return this.compare(o)>=0};Fraction.prototype.eq=function(o){return this.compare(o)==0};Fraction.prototype.max=function(o){return this.gt(o)?this:o};Fraction.prototype.min=function(o){return this.lt(o)?this:o};Fraction.prototype.show=function(){return this.s*this.n+"/"+this.d};Fraction.prototype.or=function(o){return this.eq(0)?o:this};const fraction=o=>(typeof o=="number"&&(o=String(o)),Fraction(o)),gcd=(...o)=>o.reduce((e,s)=>e.gcd(s),fraction(1));fraction._original=Fraction;class TimeSpan{constructor(e,s){this.begin=fraction(e),this.end=fraction(s)}get spanCycles(){const e=[];var s=this.begin;const a=this.end,c=a.sam();for(;a.gt(s);){if(s.sam().equals(c)){e.push(new TimeSpan(s,this.end));break}const h=s.nextSam();e.push(new TimeSpan(s,h)),s=h}return e}get duration(){return this.end.sub(this.begin)}cycleArc(){const e=this.begin.cyclePos(),s=e.add(this.duration);return new TimeSpan(e,s)}withTime(e){return new TimeSpan(e(this.begin),e(this.end))}withEnd(e){return new TimeSpan(this.begin,e(this.end))}withCycle(e){const s=this.begin.sam(),a=s.add(e(this.begin.sub(s))),c=s.add(e(this.end.sub(s)));return new TimeSpan(a,c)}intersection(e){const s=this.begin.max(e.begin),a=this.end.min(e.end);if(!s.gt(a)&&!(s.equals(a)&&(s.equals(this.end)&&this.begin.lt(this.end)||s.equals(e.end)&&e.begin.lt(e.end))))return new TimeSpan(s,a)}intersection_e(e){const s=this.intersection(e);if(s==null)throw"TimeSpans do not intersect";return s}midpoint(){return this.begin.add(this.duration.div(fraction(2)))}equals(e){return this.begin.equals(e.begin)&&this.end.equals(e.end)}show(){return this.begin.show()+" -> "+this.end.show()}}class Hap{constructor(e,s,a,c={},h=!1){this.whole=e,this.part=s,this.value=a,this.context=c,this.stateful=h,h&&console.assert(typeof this.value=="function","Stateful values must be functions")}get duration(){return this.whole.end.sub(this.whole.begin)}wholeOrPart(){return this.whole?this.whole:this.part}withSpan(e){const s=this.whole?e(this.whole):void 0;return new Hap(s,e(this.part),this.value,this.context)}withValue(e){return new Hap(this.whole,this.part,e(this.value),this.context)}hasOnset(){return this.whole!=null&&this.whole.begin.equals(this.part.begin)}resolveState(e){if(this.stateful&&this.hasOnset()){console.log("stateful");const s=this.value,[a,c]=s(e);return[a,new Hap(this.whole,this.part,c,this.context,!1)]}return[e,this]}spanEquals(e){return this.whole==null&&e.whole==null||this.whole.equals(e.whole)}equals(e){return this.spanEquals(e)&&this.part.equals(e.part)&&this.value===e.value}show(){return"("+(this.whole==null?"~":this.whole.show())+", "+this.part.show()+", "+this.value+")"}showWhole(){return`${this.whole==null?"~":this.whole.show()}: ${typeof this.value=="object"?JSON.stringify(this.value):this.value}`}combineContext(e){const s=this;return{...s.context,...e.context,locations:(s.context.locations||[]).concat(e.context.locations||[])}}setContext(e){return new Hap(this.whole,this.part,this.value,e)}}class State{constructor(e,s={}){this.span=e,this.controls=s}setSpan(e){return new State(e,this.controls)}withSpan(e){return this.setSpan(e(this.span))}setControls(e){return new State(this.span,e)}}const isNote$1=o=>/^[a-gA-G][#b]*[0-9]$/.test(o),tokenizeNote=o=>{var c;if(typeof o!="string")return[];const[e,s="",a]=((c=o.match(/^([a-gA-G])([#bs]*)([0-9])?$/))==null?void 0:c.slice(1))||[];return e?[e,s,a?Number(a):void 0]:[]},toMidi=o=>{const[e,s,a]=tokenizeNote(o);if(!e)throw new Error('not a note: "'+o+'"');const c={c:0,d:2,e:4,f:5,g:7,a:9,b:11}[e.toLowerCase()],h=(s==null?void 0:s.split("").reduce((d,g)=>d+{"#":1,b:-1,s:1}[g],0))||0;return(Number(a)+1)*12+c+h},fromMidi=o=>Math.pow(2,(o-69)/12)*440,getFreq=o=>fromMidi(typeof o=="number"?o:toMidi(o)),midi2note=o=>{const e=Math.floor(o/12)-1;return["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"][o%12]+e},mod=(o,e)=>(o%e+e)%e,getPlayableNoteValue=o=>{let{value:e,context:s}=o;if(typeof e=="object"&&!Array.isArray(e)&&(e=e.note||e.n||e.value),typeof e=="number"&&s.type!=="frequency")e=fromMidi(o.value);else if(typeof e=="number"&&s.type==="frequency")e=o.value;else if(typeof e!="string"||!isNote$1(e))throw new Error("not a note: "+JSON.stringify(e));return e},getFrequency=o=>{let{value:e,context:s}=o;if(typeof e=="object")return e.freq?e.freq:getFreq(e.note||e.n||e.value);if(typeof e=="number"&&s.type!=="frequency")e=fromMidi(o.value);else if(typeof e=="string"&&isNote$1(e))e=fromMidi(toMidi(o.value));else if(typeof e!="number")throw new Error("not a note or frequency:"+e);return e},rotate=(o,e)=>o.slice(e).concat(o.slice(0,e)),pipe=(...o)=>o.reduce((e,s)=>(...a)=>e(s(...a)),e=>e),compose=(...o)=>pipe(...o.reverse()),removeUndefineds=o=>o.filter(e=>e!=null),flatten$1=o=>[].concat(...o),id$1=o=>o,constant=(o,e)=>o,listRange=(o,e)=>Array.from({length:e-o+1},(s,a)=>a+o);function curry(o,e){const s=function a(...c){if(c.length>=o.length)return o.apply(this,c);{const h=function(...d){return a.apply(this,c.concat(d))};return e&&e(h,c),h}};return e&&e(s,[]),s}function unionWithObj(o,e,s){const a=Object.keys(o).filter(c=>Object.keys(e).includes(c));return Object.assign({},o,e,Object.fromEntries(a.map(c=>[c,s(o[c],e[c])])))}curry((o,e)=>o*e);curry((o,e)=>e.map(o));function drawLine(o,e=60){let s=0,a=fraction(0),c=[""],h="";for(;c[0].length$.hasOnset()).map($=>$.duration),_=gcd(...g),b=_.inverse();c=c.map($=>$+"|"),h+="|";for(let $=0;$nt.whole.begin.lte(j)&&nt.whole.end.gte(_e)),tt=et.length-c.length;tt>0&&(c=c.concat(Array(tt).fill(h))),c=c.map((nt,st)=>{const rt=et[st];if(rt){const at=rt.whole.begin.eq(j)?""+rt.value:"-";return nt+at}return nt+"."}),h+=".",a=a.add(_)}s++}return c.join(` -`)}class Pattern$3{constructor(e){Rt(this,"_Pattern",!0);this.query=e}queryArc(e,s){return this.query(new State(new TimeSpan(e,s)))}_splitQueries(){const e=this,s=a=>flatten$1(a.span.spanCycles.map(c=>e.query(a.setSpan(c))));return new Pattern$3(s)}withQuerySpan(e){return new Pattern$3(s=>this.query(s.withSpan(e)))}withQueryTime(e){return new Pattern$3(s=>this.query(s.withSpan(a=>a.withTime(e))))}withHapSpan(e){return new Pattern$3(s=>this.query(s).map(a=>a.withSpan(e)))}withHapTime(e){return this.withHapSpan(s=>s.withTime(e))}_withHaps(e){return new Pattern$3(s=>e(this.query(s)))}_withHap(e){return this._withHaps(s=>s.map(e))}_setContext(e){return this._withHap(s=>s.setContext(e))}_withContext(e){return this._withHap(s=>s.setContext(e(s.context)))}_stripContext(){return this._withHap(e=>e.setContext({}))}withLocation(e,s){const a={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{const h=(c.locations||[]).concat([a]);return{...c,locations:h}})}withMiniLocation(e,s){const a={start:{line:e[0],column:e[1],offset:e[2]},end:{line:s[0],column:s[1],offset:s[2]}};return this._withContext(c=>{let h=c.locations||[];return h=h.map(({start:d,end:g})=>{const _=d.line===1?a.start.column:0;return{start:{...d,line:d.line-1+(a.start.line-1)+1,column:d.column-1+_},end:{...g,line:g.line-1+(a.start.line-1)+1,column:g.column-1+_}}}),{...c,locations:h}})}withValue(e){return new Pattern$3(s=>this.query(s).map(a=>a.withValue(e)))}fmap(e){return this.withValue(e)}_filterHaps(e){return new Pattern$3(s=>this.query(s).filter(e))}_filterValues(e){return new Pattern$3(s=>this.query(s).filter(a=>e(a.value)))}_removeUndefineds(){return this._filterValues(e=>e!=null)}onsetsOnly(){return this._filterHaps(e=>e.hasOnset())}discreteOnly(){return this._filterHaps(e=>e.whole)}_appWhole(e,s){const a=this,c=function(h){const d=a.query(h),g=s.query(h),_=function(b,$){const j=b.part.intersection($.part);if(j!=null)return new Hap(e(b.whole,$.whole),j,b.value($.value),$.combineContext(b))};return flatten$1(d.map(b=>removeUndefineds(g.map($=>_(b,$)))))};return new Pattern$3(c)}appBoth(e){const s=function(a,c){if(!(a==null||c==null))return a.intersection_e(c)};return this._appWhole(s,e)}appLeft(e){const s=this,a=function(c){const h=[];for(const d of s.query(c)){const g=e.query(c.setSpan(d.wholeOrPart()));for(const _ of g){const b=d.whole,$=d.part.intersection(_.part);if($){const j=d.value(_.value),_e=_.combineContext(d),et=new Hap(b,$,j,_e);h.push(et)}}}return h};return new Pattern$3(a)}appRight(e){const s=this,a=function(c){const h=[];for(const d of e.query(c)){const g=s.query(c.setSpan(d.wholeOrPart()));for(const _ of g){const b=d.whole,$=_.part.intersection(d.part);if($){const j=_.value(d.value),_e=d.combineContext(_),et=new Hap(b,$,j,_e);h.push(et)}}}return h};return new Pattern$3(a)}firstCycle(e=!1){var s=this;return e||(s=s._stripContext()),s.query(new State(new TimeSpan(fraction(0),fraction(1))))}get _firstCycleValues(){return this.firstCycle().map(e=>e.value)}get _showFirstCycle(){return this.firstCycle().map(e=>`${e.value}: ${e.whole.begin.toFraction()} - ${e.whole.end.toFraction()}`)}_sortHapsByPart(){return this._withHaps(e=>e.sort((s,a)=>s.part.begin.sub(a.part.begin).or(s.part.end.sub(a.part.end)).or(s.whole.begin.sub(a.whole.begin).or(s.whole.end.sub(a.whole.end)))))}_opIn(e,s){return this.fmap(s).appLeft(reify$1(e))}_opOut(e,s){return this.fmap(s).appRight(reify$1(e))}_opMix(e,s){return this.fmap(s).appBoth(reify$1(e))}_opSqueeze(e,s){const a=reify$1(e);return this.fmap(c=>a.fmap(h=>s(c)(h)))._squeezeJoin()}_opSqueezeOut(e,s){const a=this;return reify$1(e).fmap(h=>a.fmap(d=>s(d)(h)))._squeezeJoin()}_opTrig(e,s){return reify$1(e).fmap(c=>this.fmap(h=>s(h)(c)))._trigJoin()}_opTrigzero(e,s){return reify$1(e).fmap(c=>this.fmap(h=>s(h)(c)))._TrigzeroJoin()}_asNumber(e=!1,s=!1){return this._withHap(a=>{const c=Number(a.value);if(!isNaN(c))return a.withValue(()=>c);const h={e:Math.E,pi:Math.PI}[a.value];if(typeof h<"u")return a.withValue(()=>h);if(isNote$1(a.value))return new Hap(a.whole,a.part,toMidi(a.value),{...a.context,type:"midi"});if(!e){if(s)return a;throw new Error('cannot parse as number: "'+a.value+'"')}})}round(){return this._asNumber().fmap(e=>Math.round(e))}floor(){return this._asNumber().fmap(e=>Math.floor(e))}ceil(){return this._asNumber().fmap(e=>Math.ceil(e))}_toBipolar(){return this.fmap(e=>e*2-1)}_fromBipolar(){return this.fmap(e=>(e+1)/2)}range(e,s){return this.mul(s-e).add(e)}rangex(e,s){return this.range(Math.log(e),Math.log(s)).fmap(Math.exp)}range2(e,s){return this._fromBipolar().range(e,s)}_bindWhole(e,s){const a=this,c=function(h){const d=function(_,b){return new Hap(e(_.whole,b.whole),b.part,b.value,Object.assign({},_.context,b.context,{locations:(_.context.locations||[]).concat(b.context.locations||[])}))},g=function(_){return s(_.value).query(h.setSpan(_.part)).map(b=>d(_,b))};return flatten$1(a.query(h).map(_=>g(_)))};return new Pattern$3(c)}bind(e){const s=function(a,c){if(!(a==null||c==null))return a.intersection_e(c)};return this._bindWhole(s,e)}join(){return this.bind(id$1)}outerBind(e){return this._bindWhole((s,a)=>s,e)}outerJoin(){return this.outerBind(id$1)}innerBind(e){return this._bindWhole((s,a)=>a,e)}innerJoin(){return this.innerBind(id$1)}_trigJoin(e=!1){const s=this;return new Pattern$3(a=>s.discreteOnly().query(a).map(c=>c.value.late(e?c.whole.begin:c.whole.begin.cyclePos()).query(a).map(h=>new Hap(h.whole?h.whole.intersection(c.whole):void 0,h.part.intersection(c.part),h.value).setContext(c.combineContext(h))).filter(h=>h.part)).flat())}_TrigzeroJoin(){return this._trigJoin(!0)}_squeezeJoin(){const e=this;function s(a){const c=e.discreteOnly().query(a);function h(g){const b=g.value._compressSpan(g.wholeOrPart().cycleArc()).query(a.setSpan(g.part));function $(j,_e){let et;if(_e.whole&&j.whole&&(et=_e.whole.intersection(j.whole),!et))return;const tt=_e.part.intersection(j.part);if(!tt)return;const nt=_e.combineContext(j);return new Hap(et,tt,_e.value,nt)}return b.map(j=>$(g,j))}return flatten$1(c.map(h)).filter(g=>g)}return new Pattern$3(s)}_squeezeBind(e){return this.fmap(e)._squeezeJoin()}_apply(e){return e(this)}layer(...e){return stack(...e.map(s=>s(this)))}_patternify(e){const s=this;return function(...c){return c=c.map(d=>isPattern$1(d)?d.fmap(g=>g.value||g):d),sequence(...c).fmap(d=>e.call(s,d)).innerJoin()}}_fastGap(e){const s=function(c){const h=c.begin.sam(),d=h.add(c.begin.sub(h).mul(e).min(1)),g=h.add(c.end.sub(h).mul(e).min(1));return new TimeSpan(d,g)},a=function(c){const h=c.begin.sam(),d=h.add(c.begin.sub(h).div(e).min(1)),g=h.add(c.end.sub(h).div(e).min(1));return new TimeSpan(d,g)};return this.withQuerySpan(s).withHapSpan(a)._splitQueries()}_compress(e,s){return e.gt(s)||e.gt(1)||s.gt(1)||e.lt(0)||s.lt(0)?silence:this._fastGap(fraction(1).div(s.sub(e)))._late(e)}_compressSpan(e){return this._compress(e.begin,e.end)}_fast(e){return this.withQueryTime(a=>a.mul(e)).withHapTime(a=>a.div(e))}_slow(e){return this._fast(fraction(1).div(e))}_inside(e,s){return s(this._slow(e))._fast(e)}_outside(e,s){return s(this._fast(e))._slow(e)}_ply(e){return this.fmap(s=>pure(s)._fast(e))._squeezeJoin()}_chop(e){const a=Array.from({length:e},(h,d)=>d).map(h=>({begin:h/e,end:(h+1)/e})),c=function(h){return sequence(a.map(d=>Object.assign({},h,d)))};return this._squeezeBind(c)}_striate(e){const a=Array.from({length:e},(h,d)=>d).map(h=>({begin:h/e,end:(h+1)/e})),c=slowcat(...a);return this.set(c)._fast(e)}_cpm(e){return this._fast(e/60)}_early(e){return e=fraction(e),this.withQueryTime(s=>s.add(e)).withHapTime(s=>s.sub(e))}_late(e){return e=fraction(e),this._early(fraction(0).sub(e))}_zoom(e,s){s=fraction(s),e=fraction(e);const a=s.sub(e);return this.withQuerySpan(c=>c.withCycle(h=>h.mul(a).add(e))).withHapSpan(c=>c.withCycle(h=>h.sub(e).div(a)))._splitQueries()}_zoomArc(e){return this.zoom(e.begin,e.end)}_linger(e){return e==0?silence:e<0?this._zoom(e.add(1),1)._slow(e):this._zoom(0,e)._slow(e)}_color(e){return this._withContext(s=>({...s,color:e}))}log(){return this._withHap(e=>{var s;return e.setContext({...e.context,logs:(((s=e.context)==null?void 0:s.logs)||[]).concat([e.show()])})})}drawLine(){return console.log(drawLine(this)),this}_segment(e){return this.struct(pure(!0)._fast(e))}invert(){return this.fmap(e=>!e)}inv(){return this.invert()}when(e,s){const a=e._filterValues(id$1),c=e._filterValues(g=>!g),h=a.fmap(g=>_=>_).appRight(s(this)),d=c.fmap(g=>_=>_).appRight(this);return stack(h,d)}off(e,s){return stack(this,s(this.late(e)))}every(e,s){const a=this,c=Array(e-1).fill(a);return c.unshift(s(a)),slowcatPrime(...c)}brak(){return this.when(slowcat(!1,!0),e=>fastcat(e,silence)._late(.25))}rev(){const e=this,s=function(a){const c=a.span,h=c.begin.sam(),d=c.begin.nextSam(),g=function(b){const $=b.withTime(_e=>h.add(d.sub(_e))),j=$.begin;return $.begin=$.end,$.end=j,$};return e.query(a.setSpan(g(c))).map(b=>b.withSpan(g))};return new Pattern$3(s)._splitQueries()}palindrome(){return this.every(2,rev)}juxBy(e,s){e/=2;const a=function(d,g,_){return g in d?d[g]:_},c=this.withValue(d=>Object.assign({},d,{pan:a(d,"pan",.5)-e})),h=this.withValue(d=>Object.assign({},d,{pan:a(d,"pan",.5)+e}));return stack(c,s(h))}_jux(e){return this.juxBy(1,e)}stack(...e){return stack(this,...e)}sequence(...e){return sequence(this,...e)}seq(...e){return sequence(this,...e)}cat(...e){return cat(this,...e)}fastcat(...e){return fastcat(this,...e)}slowcat(...e){return slowcat(this,...e)}superimpose(...e){return this.stack(...e.map(s=>s(this)))}stutWith(e,s,a){return stack(...listRange(0,e-1).map(c=>a(this.late(fraction(s).mul(c)),c)))}stut(e,s,a){return this.stutWith(e,a,(c,h)=>c.velocity(Math.pow(s,h)))}_echoWith(e,s,a){return stack(...listRange(0,e-1).map(c=>a(this.late(fraction(s).mul(c)),c)))}_echo(e,s,a){return this._echoWith(e,s,(c,h)=>c.velocity(Math.pow(a,h)))}iter(e,s=!1){return slowcat(...listRange(0,e-1).map(a=>s?this.late(a/e):this.early(a/e)))}iterBack(e){return this.iter(e,!0)}_chunk(e,s,a=!1){const c=Array(e-1).fill(!1);c.unshift(!0);const h=sequence(...c).iter(e,a);return this.when(h,s)}_chunkBack(e,s){return this._chunk(e,s,!0)}_bypass(e){return e=Boolean(parseInt(e)),e?silence:this}hush(){return silence}_duration(e){return this.withHapSpan(s=>new TimeSpan(s.begin,s.begin.add(e)))}_legato(e){return this.withHapSpan(s=>new TimeSpan(s.begin,s.begin.add(s.end.sub(s.begin).mul(e))))}_velocity(e){return this._withContext(s=>({...s,velocity:(s.velocity||1)*e}))}_loopAt(e,s=1){return this.speed(1/e*s).unit("c").slow(e)}onTrigger(e){return this._withHap(s=>s.setContext({...s.context,onTrigger:e}))}log(e=id$1){return this._withHap(s=>s.setContext({...s.context,onTrigger:(...a)=>{s.context.onTrigger&&s.context.onTrigger(...a),console.log(e(...a))}}))}logValues(e=id$1){return this.log((s,a)=>e(a.value))}}function _composeOp(o,e,s){function a(c){return c instanceof Object&&!(c instanceof Function)}return a(o)||a(e)?(a(o)||(o={value:o}),a(e)||(e={value:e}),unionWithObj(o,e,s)):s(o,e)}(function(){const o=a=>a._asNumber(),s={set:[(a,c)=>c],keep:[(a,c)=>a],keepif:[(a,c)=>c?a:void 0],add:[(a,c)=>a+c,a=>a._asNumber(!1,!0)],sub:[(a,c)=>a-c,o],mul:[(a,c)=>a*c,o],div:[(a,c)=>a/c,o],mod:[mod,o],pow:[Math.pow,o],_and:[(a,c)=>a&c,o],_or:[(a,c)=>a|c,o],_xor:[(a,c)=>a^c,o],_lshift:[(a,c)=>a<a>>c,o],lt:[(a,c)=>aa>c],lte:[(a,c)=>a<=c],gte:[(a,c)=>a>=c],eq:[(a,c)=>a==c],eqt:[(a,c)=>a===c],ne:[(a,c)=>a!=c],net:[(a,c)=>a!==c],and:[(a,c)=>a&&c],or:[(a,c)=>a||c],func:[(a,c)=>c(a)]};for(const[a,[c,h]]of Object.entries(s))for(const d of["In","Out","Mix","Squeeze","SqueezeOut","Trig","Trigzero"])Pattern$3.prototype[a+d]=function(...g){var _=this;g=sequence(g),h&&(_=h(_),g=h(g));var b=_["_op"+d](g,$=>j=>_composeOp($,j,c));return a==="keepif"&&(b=b._removeUndefineds()),b},d==="Squeeze"&&(Pattern$3.prototype[a+"SqueezeIn"]=Pattern$3.prototype[a+d]),d==="In"?Pattern$3.prototype[a]=Pattern$3.prototype[a+d]:a==="set"&&(Pattern$3.prototype[d.toLowerCase()]=Pattern$3.prototype[a+d]);Pattern$3.prototype.struct=Pattern$3.prototype.keepifOut,Pattern$3.prototype.structAll=Pattern$3.prototype.keepOut,Pattern$3.prototype.mask=Pattern$3.prototype.keepifIn,Pattern$3.prototype.maskAll=Pattern$3.prototype.keepIn,Pattern$3.prototype.reset=Pattern$3.prototype.keepifTrig,Pattern$3.prototype.resetAll=Pattern$3.prototype.keepTrig,Pattern$3.prototype.restart=Pattern$3.prototype.keepifTrigzero,Pattern$3.prototype.restartAll=Pattern$3.prototype.keepTrigzero})();Pattern$3.prototype.patternified=["apply","chop","color","cpm","duration","early","fast","jux","late","legato","linger","ply","segment","striate","slow","velocity"];Pattern$3.prototype.factories={pure,stack,slowcat,fastcat,cat,timeCat,sequence,seq:seq$2,polymeter,pm,polyrhythm,pr};const silence=new Pattern$3(o=>[]);function pure(o){function e(s){return s.span.spanCycles.map(a=>new Hap(fraction(a.begin).wholeCycle(),a,o))}return new Pattern$3(e)}function isPattern$1(o){const e=o instanceof Pattern$3||(o==null?void 0:o._Pattern);return!o instanceof Pattern$3&&console.warn(`Found Pattern that fails "instanceof Pattern" check. - This may happen if you are using multiple versions of @strudel.cycles/core. - Please check by running "npm ls @strudel.cycles/core".`),e}function reify$1(o){return isPattern$1(o)?o:pure(o)}function stack(...o){o=o.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=s=>flatten$1(o.map(a=>a.query(s)));return new Pattern$3(e)}function slowcat(...o){o=o.map(s=>Array.isArray(s)?sequence(...s):reify$1(s));const e=function(s){const a=s.span,c=mod(a.begin.sam(),o.length),h=o[c];if(!h)return[];const d=a.begin.floor().sub(a.begin.div(o.length).floor());return h.withHapTime(g=>g.add(d)).query(s.setSpan(a.withTime(g=>g.sub(d))))};return new Pattern$3(e)._splitQueries()}function slowcatPrime(...o){o=o.map(reify$1);const e=function(s){const a=Math.floor(s.span.begin)%o.length,c=o[a];return(c==null?void 0:c.query(s))||[]};return new Pattern$3(e)._splitQueries()}function fastcat(...o){return slowcat(...o)._fast(o.length)}function cat(...o){return slowcat(...o)}function timeCat(...o){const e=o.map(c=>c[0]).reduce((c,h)=>c.add(h),fraction(0));let s=fraction(0);const a=[];for(const[c,h]of o){const d=s.add(c);a.push(reify$1(h)._compress(s.div(e),d.div(e))),s=d}return stack(...a)}function sequence(...o){return fastcat(...o)}function seq$2(...o){return fastcat(...o)}function _sequenceCount(o){return Array.isArray(o)?o.length==0?[silence,0]:o.length==1?_sequenceCount(o[0]):[fastcat(...o.map(e=>_sequenceCount(e)[0])),o.length]:[reify$1(o),1]}function polymeterSteps(o,...e){const s=e.map(c=>_sequenceCount(c));if(s.length==0)return silence;o==0&&(o=s[0][1]);const a=[];for(const c of s)c[1]==0&&next,o==c[1]?a.push(c[0]):a.push(c[0]._fast(fraction(o).div(fraction(c[1]))));return stack(...a)}function polymeter(...o){return polymeterSteps(0,...o)}function pm(...o){polymeter(...o)}function polyrhythm(...o){const e=o.map(s=>sequence(s));return e.length==0?silence:stack(...e)}function pr(o){polyrhythm(o)}const add$1=curry((o,e)=>e.add(o)),chop=curry((o,e)=>e.chop(o)),chunk=curry((o,e)=>e.chunk(o)),chunkBack=curry((o,e)=>e.chunkBack(o)),div=curry((o,e)=>e.div(o)),early=curry((o,e)=>e.early(o)),echo=curry((o,e,s,a)=>a.echo(o,e,s)),every=curry((o,e,s)=>s.every(o,e)),fast=curry((o,e)=>e.fast(o)),inv=o=>o.inv(),invert=o=>o.invert(),iter=curry((o,e)=>e.iter(o)),iterBack=curry((o,e)=>e.iter(o)),jux=curry((o,e)=>e.jux(o)),juxBy=curry((o,e,s)=>s.juxBy(o,e)),late=curry((o,e)=>e.late(o)),linger=curry((o,e)=>e.linger(o)),mask=curry((o,e)=>e.mask(o)),mul=curry((o,e)=>e.mul(o)),off=curry((o,e,s)=>s.off(o,e)),ply=curry((o,e)=>e.ply(o)),range=curry((o,e,s)=>s.range(o,e)),range2=curry((o,e,s)=>s.range2(o,e)),rev=o=>o.rev(),slow=curry((o,e)=>e.slow(o)),struct=curry((o,e)=>e.struct(o)),sub=curry((o,e)=>e.sub(o)),superimpose=curry((o,e)=>e.superimpose(...o)),set=curry((o,e)=>e.set(o)),when=curry((o,e,s)=>s.when(o,e));Pattern$3.prototype.composable={fast,slow,early,late,superimpose};function makeComposable(o){return Object.entries(Pattern$3.prototype.composable).forEach(([e,s])=>{o[e]=(...a)=>{const c=compose(o,s(...a));return makeComposable(c)}}),o}const patternify2=o=>(e,s,a)=>e.fmap(c=>h=>o.call(a,c,h)).appLeft(s).innerJoin(),patternify3=o=>(e,s,a,c)=>e.fmap(h=>d=>g=>o.call(c,h,d,g)).appLeft(s).appLeft(a).innerJoin(),patternify4=o=>(e,s,a,c,h)=>e.fmap(d=>g=>_=>b=>o.call(h,d,g,_,b)).appLeft(s).appLeft(a).appLeft(c).innerJoin();Pattern$3.prototype.echo=function(...o){return o=o.map(reify$1),patternify3(Pattern$3.prototype._echo)(...o,this)};Pattern$3.prototype.echoWith=function(...o){return o=o.map(reify$1),patternify3(Pattern$3.prototype._echoWith)(...o,this)};Pattern$3.prototype.chunk=function(...o){return o=o.map(reify$1),patternify2(Pattern$3.prototype._chunk)(...o,this)};Pattern$3.prototype.chunkBack=function(...o){return o=o.map(reify$1),patternify2(Pattern$3.prototype._chunkBack)(...o,this)};Pattern$3.prototype.loopAt=function(...o){return o=o.map(reify$1),patternify2(Pattern$3.prototype._loopAt)(...o,this)};Pattern$3.prototype.zoom=function(...o){return o=o.map(reify$1),patternify2(Pattern$3.prototype._zoom)(...o,this)};Pattern$3.prototype.compress=function(...o){return o=o.map(reify$1),patternify2(Pattern$3.prototype._compress)(...o,this)};Pattern$3.prototype.outside=function(...o){return o=o.map(reify$1),patternify2(Pattern$3.prototype._outside)(...o,this)};Pattern$3.prototype.inside=function(...o){return o=o.map(reify$1),patternify2(Pattern$3.prototype._inside)(...o,this)};Pattern$3.prototype.bootstrap=function(){const o=Object.fromEntries(Object.entries(Pattern$3.prototype.composable).map(([e,s])=>(Pattern$3.prototype[e]&&(Pattern$3.prototype[e]=makeComposable(Pattern$3.prototype[e])),[e,curry(s,makeComposable)])));return this.patternified.forEach(e=>{Pattern$3.prototype[e]=function(...s){return this._patternify(Pattern$3.prototype["_"+e])(...s)}}),o};Pattern$3.prototype.define=(o,e,s={})=>{s.composable&&(Pattern$3.prototype.composable[o]=e),s.patternified&&(Pattern$3.prototype.patternified=Pattern$3.prototype.patternified.concat([o])),Pattern$3.prototype.bootstrap()};Pattern$3.prototype.define("hush",o=>o.hush(),{patternified:!1,composable:!0});Pattern$3.prototype.define("bypass",o=>o.bypass(on),{patternified:!0,composable:!0});const controls={},generic_params=[["s","s","sound"],["f","n","The note or sample number to choose for a synth or sampleset"],["f","note","The note or pitch to play a sound or synth with"],["f","accelerate","a pattern of numbers that speed up (or slow down) samples while they play."],["f","gain","a pattern of numbers that specify volume. Values less than 1 make the sound quieter. Values greater than 1 make the sound louder. For the linear equivalent, see @amp@."],["f","amp","like @gain@, but linear."],["f","attack","a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample."],["f","decay",""],["f","sustain",""],["f","release","a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample."],["f","hold","a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if `attack` and `release` are also specified."],["f","bandf","A pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter."],["f","bandq","a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter."],["f","begin","a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample."],["f","end","the same as `begin`, but cuts the end off samples, shortening them; e.g. `0.75` to cut off the last quarter of each sample."],["f","loop","loops the sample (from `begin` to `end`) the specified number of times."],["f","legato","controls the amount of overlap between two adjacent sounds"],["f","crush","bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction)."],["f","coarse","fake-resampling, a pattern of numbers for lowering the sample rate, i.e. 1 for original 2 for half, 3 for a third and so on."],["i","channel","choose the channel the pattern is sent to in superdirt"],["i","cut","In the style of classic drum-machines, `cut` will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open."],["f","cutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter."],["f","hcutoff","a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias @hpf@"],["f","hresonance","a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias @hpq@"],["f","resonance","a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter."],["f","djf","DJ filter, below 0.5 is low pass filter, above is high pass filter."],["f","delay","a pattern of numbers from 0 to 1. Sets the level of the delay signal."],["f","delayfeedback","a pattern of numbers from 0 to 1. Sets the amount of delay feedback."],["f","delaytime","a pattern of numbers from 0 to 1. Sets the length of the delay."],["f","lock","A pattern of numbers. Specifies whether delaytime is calculated relative to cps. When set to 1, delaytime is a direct multiple of a cycle."],["f","detune",""],["f","dry","when set to `1` will disable all reverb for this pattern. See `room` and `size` for more information about reverb."],["f","fadeTime","Used when using begin/end or chop/striate and friends, to change the fade out time of the 'grain' envelope."],["f","fadeInTime","As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample."],["f","freq",""],["f","gate",""],["f","leslie",""],["f","lrate",""],["f","lsize",""],["f","degree",""],["f","mtranspose",""],["f","ctranspose",""],["f","harmonic",""],["f","stepsPerOctave",""],["f","octaveR",""],["f","nudge","Nudges events into the future by the specified number of seconds. Negative numbers work up to a point as well (due to internal latency)"],["i","octave",""],["f","offset",""],["i","orbit","a pattern of numbers. An `orbit` is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around."],["f","overgain",""],["f","overshape",""],["f","pan","a pattern of numbers between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)"],["f","panspan","a pattern of numbers between -inf and inf, which controls how much multichannel output is fanned out (negative is backwards ordering)"],["f","pansplay","a pattern of numbers between 0.0 and 1.0, which controls the multichannel spread range (multichannel only)"],["f","panwidth","a pattern of numbers between 0.0 and inf, which controls how much each channel is distributed over neighbours (multichannel only)"],["f","panorient","a pattern of numbers between -1.0 and 1.0, which controls the relative position of the centre pan in a pair of adjacent speakers (multichannel only)"],["f","rate","used in SuperDirt softsynths as a control rate or 'speed'"],["f","slide",""],["f","semitone",""],["f","velocity",""],["f","voice",""],["f","room","a pattern of numbers from 0 to 1. Sets the level of reverb."],["f","size","a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the `room` to be used in reverb."],["f","shape","wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion."],["f","speed","a pattern of numbers which changes the speed of sample playback, i.e. a cheap way of changing pitch. Negative values will play the sample backwards!"],["s","unit",'used in conjunction with `speed`, accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using `unit "c"` means `speed` will be interpreted in units of cycles, e.g. `speed "1"` means samples will be stretched to fill a cycle. Using `unit "s"` means the playback speed will be adjusted so that the duration is the number of seconds specified by `speed`.'],["f","squiz",""],["f","stutterdepth",""],["f","stuttertime",""],["f","timescale",""],["f","timescalewin",""],["s","vowel","formant filter to make things sound like vowels, a pattern of either `a`, `e`, `i`, `o` or `u`. Use a rest (`~`) for no effect."],["f","waveloss",""],["f","dur",""],["f","expression",""],["f","sustainpedal",""],["f","tremolodepth","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","tremolorate","Tremolo Audio DSP effect | params are 'tremolorate' and 'tremolodepth'"],["f","phaserdepth","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","phaserrate","Phaser Audio DSP effect | params are 'phaserrate' and 'phaserdepth'"],["f","fshift","frequency shifter"],["f","fshiftnote","frequency shifter"],["f","fshiftphase","frequency shifter"],["f","triode","tube distortion"],["f","krush","shape/bass enhancer"],["f","kcutoff",""],["f","octer","octaver effect"],["f","octersub","octaver effect"],["f","octersubsub","octaver effect"],["f","ring","ring modulation"],["f","ringf","ring modulation"],["f","ringdf","ring modulation"],["f","distort","noisy fuzzy distortion"],["f","freeze","Spectral freeze"],["f","xsdelay",""],["f","tsdelay",""],["f","real","Spectral conform"],["f","imag",""],["f","enhance","Spectral enhance"],["f","partials",""],["f","comb","Spectral comb"],["f","smear","Spectral smear"],["f","scram","Spectral scramble"],["f","binshift","Spectral binshift"],["f","hbrick","High pass sort of spectral filter"],["f","lbrick","Low pass sort of spectral filter"],["f","midichan",""],["f","control",""],["f","ccn",""],["f","ccv",""],["f","polyTouch",""],["f","midibend",""],["f","miditouch",""],["f","ctlNum",""],["f","frameRate",""],["f","frames",""],["f","hours",""],["s","midicmd",""],["f","minutes",""],["f","progNum",""],["f","seconds",""],["f","songPtr",""],["f","uid",""],["f","val",""],["f","cps",""],["f","clip",""]],_name=(o,...e)=>sequence(...e).withValue(s=>({[o]:s})),_setter=(o,e)=>function(...s){return s.length?this.set(o(...s)):this.fmap(a=>({[e]:a}))};generic_params.forEach(([o,e,s])=>{controls[e]=(...a)=>_name(e,...a),Pattern$3.prototype[e]=_setter(controls[e],e)});controls.createParam=o=>{const e=(...s)=>_name(o,...s);return Pattern$3.prototype[o]=_setter(e,o),(...s)=>_name(o,...s)};controls.createParams=(...o)=>o.reduce((e,s)=>Object.assign(e,{[s]:createParam(s)}),{});var dist$7={},tokenizer={},utils$1={},unicode$2={};Object.defineProperty(unicode$2,"__esModule",{value:!0});unicode$2.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$2.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$2.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$2.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$2.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$2.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(utils$1,"__esModule",{value:!0});utils$1.isStrictModeReservedWord=isStrictModeReservedWord;utils$1.isWhiteSpace=isWhiteSpace;utils$1.isLineTerminator=isLineTerminator;utils$1.isIdentifierStart=isIdentifierStart$1;utils$1.isIdentifierPart=isIdentifierPart$1;utils$1.isDecimalDigit=isDecimalDigit;utils$1.getHexValue=getHexValue;var _unicode$2=unicode$2,strictReservedWords=["null","true","false","implements","interface","package","private","protected","public","static","let","if","in","do","var","for","new","try","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];function isStrictModeReservedWord(o){return strictReservedWords.indexOf(o)!==-1}function isWhiteSpace(o){return o<128?_unicode$2.whitespaceBool[o]:o===160||o>5759&&_unicode$2.whitespaceArray.indexOf(o)!==-1}function isLineTerminator(o){return o===10||o===13||o===8232||o===8233}function isIdentifierStart$1(o){return o<128?_unicode$2.idStartBool[o]:_unicode$2.idStartLargeRegex.test(String.fromCodePoint(o))}function isIdentifierPart$1(o){return o<128?_unicode$2.idContinueBool[o]:_unicode$2.idContinueLargeRegex.test(String.fromCodePoint(o))}function isDecimalDigit(o){return o>=48&&o<=57}function getHexValue(o){return o>="0"&&o<="9"?o.charCodeAt(0)-48:o>="a"&&o<="f"?o.charCodeAt(0)-87:o>="A"&&o<="F"?o.charCodeAt(0)-55:-1}var errors={};Object.defineProperty(errors,"__esModule",{value:!0});errors.ErrorMessages={UNEXPECTED_TOKEN:function(e){return"Unexpected token "+JSON.stringify(e)},UNEXPECTED_ILLEGAL_TOKEN:function(e){return"Unexpected "+JSON.stringify(e)},UNEXPECTED_ESCAPED_KEYWORD:"Unexpected escaped keyword",UNEXPECTED_NUMBER:"Unexpected number",UNEXPECTED_STRING:"Unexpected string",UNEXPECTED_IDENTIFIER:"Unexpected identifier",UNEXPECTED_RESERVED_WORD:"Unexpected reserved word",UNEXPECTED_TEMPLATE:"Unexpected template",UNEXPECTED_EOS:"Unexpected end of input",UNEXPECTED_LINE_TERMINATOR:"Unexpected line terminator",UNEXPECTED_COMMA_AFTER_REST:"Unexpected comma after rest",UNEXPECTED_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",NEWLINE_AFTER_THROW:"Illegal newline after throw",UNTERMINATED_REGEXP:"Invalid regular expression: missing /",INVALID_LAST_REST_PARAMETER:"Rest parameter must be last formal parameter",INVALID_REST_PARAMETERS_INITIALIZATION:"Rest parameter may not have a default initializer",INVALID_REGEXP_FLAGS:"Invalid regular expression flags",INVALID_REGEX:"Invalid regular expression",INVALID_LHS_IN_ASSIGNMENT:"Invalid left-hand side in assignment",INVALID_LHS_IN_BINDING:"Invalid left-hand side in binding",INVALID_LHS_IN_FOR_IN:"Invalid left-hand side in for-in",INVALID_LHS_IN_FOR_OF:"Invalid left-hand side in for-of",INVALID_LHS_IN_FOR_AWAIT:"Invalid left-hand side in for-await",INVALID_UPDATE_OPERAND:"Increment/decrement target must be an identifier or member expression",INVALID_EXPONENTIATION_LHS:"Unary expressions as the left operand of an exponentation expression must be disambiguated with parentheses",MULTIPLE_DEFAULTS_IN_SWITCH:"More than one default clause in switch statement",NO_CATCH_OR_FINALLY:"Missing catch or finally after try",ILLEGAL_RETURN:"Illegal return statement",ILLEGAL_ARROW_FUNCTION_PARAMS:"Illegal arrow function parameter list",INVALID_ASYNC_PARAMS:"Async function parameters must not contain await expressions",INVALID_VAR_INIT_FOR_IN:"Invalid variable declaration in for-in statement",INVALID_VAR_INIT_FOR_OF:"Invalid variable declaration in for-of statement",INVALID_VAR_INIT_FOR_AWAIT:"Invalid variable declaration in for-await statement",UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT:"Binding pattern appears without initializer in for statement init",ILLEGAL_PROPERTY:"Illegal property initializer",INVALID_ID_BINDING_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in binding position in strict mode"},INVALID_ID_IN_LABEL_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in label position in strict mode"},INVALID_ID_IN_EXPRESSION_STRICT_MODE:function(e){return"The identifier "+JSON.stringify(e)+" must not be in expression position in strict mode"},INVALID_CALL_TO_SUPER:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',INVALID_DELETE_STRICT_MODE:"Identifier expressions must not be deleted in strict mode",DUPLICATE_BINDING:function(e){return"Duplicate binding "+JSON.stringify(e)},ILLEGAL_ID_IN_LEXICAL_DECLARATION:function(e){return"Lexical declarations must not have a binding named "+JSON.stringify(e)},UNITIALIZED_CONST:"Constant lexical declarations must have an initialiser",ILLEGAL_LABEL_IN_BODY:function(e){return"The body of a "+e+" statement must not be a labeled function declaration"},ILLEGEAL_LABEL_IN_IF:"The consequent of an if statement must not be a labeled function declaration",ILLEGAL_LABEL_IN_ELSE:"The alternate of an if statement must not be a labeled function declaration",ILLEGAL_CONTINUE_WITHOUT_ITERATION_WITH_ID:function(e){return"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e)},ILLEGAL_CONTINUE_WITHOUT_ITERATION:"Continue statement must be nested within an iteration statement",ILLEGAL_BREAK_WITHOUT_ITERATION_OR_SWITCH:"Break statement must be nested within an iteration statement or a switch statement",ILLEGAL_WITH_STRICT_MODE:"Strict mode code must not include a with statement",ILLEGAL_ACCESS_SUPER_MEMBER:"Member access on super must be in a method",ILLEGAL_SUPER_CALL:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',DUPLICATE_LABEL_DECLARATION:function(e){return"Label "+JSON.stringify(e)+" has already been declared"},ILLEGAL_BREAK_WITHIN_LABEL:function(e){return"Break statement must be nested within a statement with label "+JSON.stringify(e)},ILLEGAL_YIELD_EXPRESSIONS:function(e){return e+" parameters must not contain yield expressions"},ILLEGAL_YIELD_IDENTIFIER:'"yield" may not be used as an identifier in this context',ILLEGAL_AWAIT_IDENTIFIER:'"await" may not be used as an identifier in this context',DUPLICATE_CONSTRUCTOR:"Duplicate constructor method in class",ILLEGAL_CONSTRUCTORS:"Constructors cannot be async, generators, getters or setters",ILLEGAL_STATIC_CLASS_NAME:'Static class methods cannot be named "prototype"',NEW_TARGET_ERROR:"new.target must be within function (but not arrow expression) code",DUPLICATE_EXPORT:function(e){return"Duplicate export "+JSON.stringify(e)},UNDECLARED_BINDING:function(e){return"Exported binding "+JSON.stringify(e)+" is not declared"},DUPLICATE_PROPTO_PROP:"Duplicate __proto__ property in object literal not allowed",ILLEGAL_LABEL_FUNC_DECLARATION:"Labeled FunctionDeclarations are disallowed in strict mode",ILLEGAL_FUNC_DECL_IF:"FunctionDeclarations in IfStatements are disallowed in strict mode",ILLEGAL_USE_STRICT:'Functions with non-simple parameter lists may not contain a "use strict" directive',ILLEGAL_EXPORTED_NAME:"Names of variables used in an export specifier from the current module must be identifiers",NO_OCTALS_IN_TEMPLATES:"Template literals may not contain octal escape sequences",NO_AWAIT_IN_ASYNC_PARAMS:'Async arrow parameters may not contain "await"'};Object.defineProperty(tokenizer,"__esModule",{value:!0});tokenizer.JsError=tokenizer.TokenType=tokenizer.TokenClass=void 0;var _slicedToArray=function(){function o(e,s){var a=[],c=!0,h=!1,d=void 0;try{for(var g=e[Symbol.iterator](),_;!(c=(_=g.next()).done)&&(a.push(_.value),!(s&&a.length===s));c=!0);}catch(b){h=!0,d=b}finally{try{!c&&g.return&&g.return()}finally{if(h)throw d}}return a}return function(e,s){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return o(e,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_createClass$e=function(){function o(e,s){for(var a=0;a"},Ident:{name:"Identifier",isIdentifierName:!0},Keyword:{name:"Keyword",isIdentifierName:!0},NumericLiteral:{name:"Numeric"},TemplateElement:{name:"Template"},Punctuator:{name:"Punctuator"},StringLiteral:{name:"String"},RegularExpression:{name:"RegularExpression"},Illegal:{name:"Illegal"}},TokenType=tokenizer.TokenType={EOS:{klass:TokenClass.Eof,name:"EOS"},LPAREN:{klass:TokenClass.Punctuator,name:"("},RPAREN:{klass:TokenClass.Punctuator,name:")"},LBRACK:{klass:TokenClass.Punctuator,name:"["},RBRACK:{klass:TokenClass.Punctuator,name:"]"},LBRACE:{klass:TokenClass.Punctuator,name:"{"},RBRACE:{klass:TokenClass.Punctuator,name:"}"},COLON:{klass:TokenClass.Punctuator,name:":"},SEMICOLON:{klass:TokenClass.Punctuator,name:";"},PERIOD:{klass:TokenClass.Punctuator,name:"."},ELLIPSIS:{klass:TokenClass.Punctuator,name:"..."},ARROW:{klass:TokenClass.Punctuator,name:"=>"},CONDITIONAL:{klass:TokenClass.Punctuator,name:"?"},INC:{klass:TokenClass.Punctuator,name:"++"},DEC:{klass:TokenClass.Punctuator,name:"--"},ASSIGN:{klass:TokenClass.Punctuator,name:"="},ASSIGN_BIT_OR:{klass:TokenClass.Punctuator,name:"|="},ASSIGN_BIT_XOR:{klass:TokenClass.Punctuator,name:"^="},ASSIGN_BIT_AND:{klass:TokenClass.Punctuator,name:"&="},ASSIGN_SHL:{klass:TokenClass.Punctuator,name:"<<="},ASSIGN_SHR:{klass:TokenClass.Punctuator,name:">>="},ASSIGN_SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>="},ASSIGN_ADD:{klass:TokenClass.Punctuator,name:"+="},ASSIGN_SUB:{klass:TokenClass.Punctuator,name:"-="},ASSIGN_MUL:{klass:TokenClass.Punctuator,name:"*="},ASSIGN_DIV:{klass:TokenClass.Punctuator,name:"/="},ASSIGN_MOD:{klass:TokenClass.Punctuator,name:"%="},ASSIGN_EXP:{klass:TokenClass.Punctuator,name:"**="},COMMA:{klass:TokenClass.Punctuator,name:","},OR:{klass:TokenClass.Punctuator,name:"||"},AND:{klass:TokenClass.Punctuator,name:"&&"},BIT_OR:{klass:TokenClass.Punctuator,name:"|"},BIT_XOR:{klass:TokenClass.Punctuator,name:"^"},BIT_AND:{klass:TokenClass.Punctuator,name:"&"},SHL:{klass:TokenClass.Punctuator,name:"<<"},SHR:{klass:TokenClass.Punctuator,name:">>"},SHR_UNSIGNED:{klass:TokenClass.Punctuator,name:">>>"},ADD:{klass:TokenClass.Punctuator,name:"+"},SUB:{klass:TokenClass.Punctuator,name:"-"},MUL:{klass:TokenClass.Punctuator,name:"*"},DIV:{klass:TokenClass.Punctuator,name:"/"},MOD:{klass:TokenClass.Punctuator,name:"%"},EXP:{klass:TokenClass.Punctuator,name:"**"},EQ:{klass:TokenClass.Punctuator,name:"=="},NE:{klass:TokenClass.Punctuator,name:"!="},EQ_STRICT:{klass:TokenClass.Punctuator,name:"==="},NE_STRICT:{klass:TokenClass.Punctuator,name:"!=="},LT:{klass:TokenClass.Punctuator,name:"<"},GT:{klass:TokenClass.Punctuator,name:">"},LTE:{klass:TokenClass.Punctuator,name:"<="},GTE:{klass:TokenClass.Punctuator,name:">="},INSTANCEOF:{klass:TokenClass.Keyword,name:"instanceof"},IN:{klass:TokenClass.Keyword,name:"in"},NOT:{klass:TokenClass.Punctuator,name:"!"},BIT_NOT:{klass:TokenClass.Punctuator,name:"~"},ASYNC:{klass:TokenClass.Keyword,name:"async"},AWAIT:{klass:TokenClass.Keyword,name:"await"},ENUM:{klass:TokenClass.Keyword,name:"enum"},DELETE:{klass:TokenClass.Keyword,name:"delete"},TYPEOF:{klass:TokenClass.Keyword,name:"typeof"},VOID:{klass:TokenClass.Keyword,name:"void"},BREAK:{klass:TokenClass.Keyword,name:"break"},CASE:{klass:TokenClass.Keyword,name:"case"},CATCH:{klass:TokenClass.Keyword,name:"catch"},CLASS:{klass:TokenClass.Keyword,name:"class"},CONTINUE:{klass:TokenClass.Keyword,name:"continue"},DEBUGGER:{klass:TokenClass.Keyword,name:"debugger"},DEFAULT:{klass:TokenClass.Keyword,name:"default"},DO:{klass:TokenClass.Keyword,name:"do"},ELSE:{klass:TokenClass.Keyword,name:"else"},EXPORT:{klass:TokenClass.Keyword,name:"export"},EXTENDS:{klass:TokenClass.Keyword,name:"extends"},FINALLY:{klass:TokenClass.Keyword,name:"finally"},FOR:{klass:TokenClass.Keyword,name:"for"},FUNCTION:{klass:TokenClass.Keyword,name:"function"},IF:{klass:TokenClass.Keyword,name:"if"},IMPORT:{klass:TokenClass.Keyword,name:"import"},LET:{klass:TokenClass.Keyword,name:"let"},NEW:{klass:TokenClass.Keyword,name:"new"},RETURN:{klass:TokenClass.Keyword,name:"return"},SUPER:{klass:TokenClass.Keyword,name:"super"},SWITCH:{klass:TokenClass.Keyword,name:"switch"},THIS:{klass:TokenClass.Keyword,name:"this"},THROW:{klass:TokenClass.Keyword,name:"throw"},TRY:{klass:TokenClass.Keyword,name:"try"},VAR:{klass:TokenClass.Keyword,name:"var"},WHILE:{klass:TokenClass.Keyword,name:"while"},WITH:{klass:TokenClass.Keyword,name:"with"},NULL:{klass:TokenClass.Keyword,name:"null"},TRUE:{klass:TokenClass.Keyword,name:"true"},FALSE:{klass:TokenClass.Keyword,name:"false"},YIELD:{klass:TokenClass.Keyword,name:"yield"},NUMBER:{klass:TokenClass.NumericLiteral,name:""},STRING:{klass:TokenClass.StringLiteral,name:""},REGEXP:{klass:TokenClass.RegularExpression,name:""},IDENTIFIER:{klass:TokenClass.Ident,name:""},CONST:{klass:TokenClass.Keyword,name:"const"},TEMPLATE:{klass:TokenClass.TemplateElement,name:""},ESCAPED_KEYWORD:{klass:TokenClass.Keyword,name:""},ILLEGAL:{klass:TokenClass.Illegal,name:""}},TT=TokenType,I=TT.ILLEGAL,F=!1,T=!0,ONE_CHAR_PUNCTUATOR=[I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.NOT,I,I,I,TT.MOD,TT.BIT_AND,I,TT.LPAREN,TT.RPAREN,TT.MUL,TT.ADD,TT.COMMA,TT.SUB,TT.PERIOD,TT.DIV,I,I,I,I,I,I,I,I,I,I,TT.COLON,TT.SEMICOLON,TT.LT,TT.ASSIGN,TT.GT,TT.CONDITIONAL,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACK,I,TT.RBRACK,TT.BIT_XOR,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,TT.LBRACE,TT.BIT_OR,TT.RBRACE,TT.BIT_NOT],PUNCTUATOR_START=[F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,F,F,T,T,F,T,T,T,T,T,T,F,T,F,F,F,F,F,F,F,F,F,F,T,T,T,T,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,F,T,T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,T,T,T,T,F],JsError=tokenizer.JsError=function(o){_inherits$8(e,o);function e(s,a,c,h){_classCallCheck$i(this,e);var d=_possibleConstructorReturn$8(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,h));d.index=s;try{d.line=a,d.column=c}catch{}return d.parseErrorLine=a,d.parseErrorColumn=c,d.description=h,d.message="["+a+":"+c+"]: "+h,d}return e}(Error);function fromCodePoint$1(o){if(o<=65535)return String.fromCharCode(o);var e=String.fromCharCode(Math.floor((o-65536)/1024)+55296),s=String.fromCharCode((o-65536)%1024+56320);return e+s}function decodeUtf16(o,e){return(o-55296)*1024+(e-56320)+65536}var Tokenizer=function(){function o(e){_classCallCheck$i(this,o),this.source=e,this.index=0,this.line=0,this.lineStart=0,this.startIndex=0,this.startLine=0,this.startLineStart=0,this.lastIndex=0,this.lastLine=0,this.lastLineStart=0,this.hasLineTerminatorBeforeNext=!1,this.tokenIndex=0}return _createClass$e(o,[{key:"saveLexerState",value:function(){return{source:this.source,index:this.index,line:this.line,lineStart:this.lineStart,startIndex:this.startIndex,startLine:this.startLine,startLineStart:this.startLineStart,lastIndex:this.lastIndex,lastLine:this.lastLine,lastLineStart:this.lastLineStart,lookahead:this.lookahead,hasLineTerminatorBeforeNext:this.hasLineTerminatorBeforeNext,tokenIndex:this.tokenIndex}}},{key:"restoreLexerState",value:function(s){this.source=s.source,this.index=s.index,this.line=s.line,this.lineStart=s.lineStart,this.startIndex=s.startIndex,this.startLine=s.startLine,this.startLineStart=s.startLineStart,this.lastIndex=s.lastIndex,this.lastLine=s.lastLine,this.lastLineStart=s.lastLineStart,this.lookahead=s.lookahead,this.hasLineTerminatorBeforeNext=s.hasLineTerminatorBeforeNext,this.tokenIndex=s.tokenIndex}},{key:"createILLEGAL",value:function(){return this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.index1?c-1:0),d=1;d10)return TokenType.IDENTIFIER;switch(s.length){case 2:switch(s.charAt(0)){case"i":switch(s.charAt(1)){case"f":return TokenType.IF;case"n":return TokenType.IN}break;case"d":if(s.charAt(1)==="o")return TokenType.DO;break}break;case 3:switch(s.charAt(0)){case"v":if(o.cse2(s,"a","r"))return TokenType.VAR;break;case"f":if(o.cse2(s,"o","r"))return TokenType.FOR;break;case"n":if(o.cse2(s,"e","w"))return TokenType.NEW;break;case"t":if(o.cse2(s,"r","y"))return TokenType.TRY;break;case"l":if(o.cse2(s,"e","t"))return TokenType.LET;break}break;case 4:switch(s.charAt(0)){case"t":if(o.cse3(s,"h","i","s"))return TokenType.THIS;if(o.cse3(s,"r","u","e"))return TokenType.TRUE;break;case"n":if(o.cse3(s,"u","l","l"))return TokenType.NULL;break;case"e":if(o.cse3(s,"l","s","e"))return TokenType.ELSE;if(o.cse3(s,"n","u","m"))return TokenType.ENUM;break;case"c":if(o.cse3(s,"a","s","e"))return TokenType.CASE;break;case"v":if(o.cse3(s,"o","i","d"))return TokenType.VOID;break;case"w":if(o.cse3(s,"i","t","h"))return TokenType.WITH;break}break;case 5:switch(s.charAt(0)){case"a":if(o.cse4(s,"s","y","n","c"))return TokenType.ASYNC;if(o.cse4(s,"w","a","i","t"))return TokenType.AWAIT;break;case"w":if(o.cse4(s,"h","i","l","e"))return TokenType.WHILE;break;case"b":if(o.cse4(s,"r","e","a","k"))return TokenType.BREAK;break;case"f":if(o.cse4(s,"a","l","s","e"))return TokenType.FALSE;break;case"c":if(o.cse4(s,"a","t","c","h"))return TokenType.CATCH;if(o.cse4(s,"o","n","s","t"))return TokenType.CONST;if(o.cse4(s,"l","a","s","s"))return TokenType.CLASS;break;case"t":if(o.cse4(s,"h","r","o","w"))return TokenType.THROW;break;case"y":if(o.cse4(s,"i","e","l","d"))return TokenType.YIELD;break;case"s":if(o.cse4(s,"u","p","e","r"))return TokenType.SUPER;break}break;case 6:switch(s.charAt(0)){case"r":if(o.cse5(s,"e","t","u","r","n"))return TokenType.RETURN;break;case"t":if(o.cse5(s,"y","p","e","o","f"))return TokenType.TYPEOF;break;case"d":if(o.cse5(s,"e","l","e","t","e"))return TokenType.DELETE;break;case"s":if(o.cse5(s,"w","i","t","c","h"))return TokenType.SWITCH;break;case"e":if(o.cse5(s,"x","p","o","r","t"))return TokenType.EXPORT;break;case"i":if(o.cse5(s,"m","p","o","r","t"))return TokenType.IMPORT;break}break;case 7:switch(s.charAt(0)){case"d":if(o.cse6(s,"e","f","a","u","l","t"))return TokenType.DEFAULT;break;case"f":if(o.cse6(s,"i","n","a","l","l","y"))return TokenType.FINALLY;break;case"e":if(o.cse6(s,"x","t","e","n","d","s"))return TokenType.EXTENDS;break}break;case 8:switch(s.charAt(0)){case"f":if(o.cse7(s,"u","n","c","t","i","o","n"))return TokenType.FUNCTION;break;case"c":if(o.cse7(s,"o","n","t","i","n","u","e"))return TokenType.CONTINUE;break;case"d":if(o.cse7(s,"e","b","u","g","g","e","r"))return TokenType.DEBUGGER;break}break;case 10:if(s==="instanceof")return TokenType.INSTANCEOF;break}return TokenType.IDENTIFIER}},{key:"skipSingleLineComment",value:function(s){for(this.index+=s;this.index=a)break;if(c=this.source.charCodeAt(this.index+1),c===47)this.skipSingleLineComment(2),s=!0;else if(c===42)s=this.skipMultiLineComment()||s;else break}else if(!this.moduleIsTheGoalSymbol&&s&&c===45){if(this.index+2>=a)break;if(this.source.charAt(this.index+1)==="-"&&this.source.charAt(this.index+2)===">")this.skipSingleLineComment(3);else break}else if(!this.moduleIsTheGoalSymbol&&c===60)if(this.source.slice(this.index+1,this.index+4)==="!--")this.skipSingleLineComment(4),s=!0;else break;else break}}},{key:"scanHexEscape2",value:function(){if(this.index+2>this.source.length)return-1;var s=(0,_utils$1.getHexValue)(this.source.charAt(this.index));if(s===-1)return-1;var a=(0,_utils$1.getHexValue)(this.source.charAt(this.index+1));return a===-1?-1:(this.index+=2,s<<4|a)}},{key:"scanUnicode",value:function(){if(this.source.charAt(this.index)==="{"){for(var s=this.index+1,a=0,c=void 0;s1114111)throw this.createILLEGAL();s++}if(c!=="}")throw this.createILLEGAL();if(s===this.index+1)throw++this.index,this.createILLEGAL();return this.index=s+1,a}if(this.index+4>this.source.length)return-1;var d=(0,_utils$1.getHexValue)(this.source.charAt(this.index));if(d===-1)return-1;var g=(0,_utils$1.getHexValue)(this.source.charAt(this.index+1));if(g===-1)return-1;var _=(0,_utils$1.getHexValue)(this.source.charAt(this.index+2));if(_===-1)return-1;var b=(0,_utils$1.getHexValue)(this.source.charAt(this.index+3));return b===-1?-1:(this.index+=4,d<<12|g<<8|_<<4|b)}},{key:"getEscapedIdentifier",value:function(){for(var s="",a=_utils$1.isIdentifierStart;this.index=this.source.length)throw this.createILLEGAL();if(this.source.charAt(this.index)!=="u")throw this.createILLEGAL();if(++this.index,h=this.scanUnicode(),h<0)throw this.createILLEGAL();c=fromCodePoint$1(h)}else if(h>=55296&&h<=56319){if(this.index>=this.source.length)throw this.createILLEGAL();var g=this.source.charCodeAt(this.index);if(++this.index,!(g>=56320&&g<=57343))throw this.createILLEGAL();h=decodeUtf16(h,g),c=fromCodePoint$1(h)}if(!a(h)){if(s.length<1)throw this.createILLEGAL();return this.index=d,s}a=_utils$1.isIdentifierPart,s+=c}return s}},{key:"getIdentifier",value:function(){for(var s=this.index,a=this.source.length,c=this.index,h=_utils$1.isIdentifierStart;c=55296&&g<=56319)return this.index=s,this.getEscapedIdentifier();if(!h(g))return this.index=c,this.source.slice(s,c);++c,h=_utils$1.isIdentifierPart}return this.index=c,this.source.slice(s,c)}},{key:"scanIdentifier",value:function(){var s=this.getLocation(),a=this.index,c=this.source.charAt(this.index)==="\\"?this.getEscapedIdentifier():this.getIdentifier(),h=this.getSlice(a,s);h.text=c;var d=this.index-a!==c.length,g=this.getKeyword(c);return d&&g!==TokenType.IDENTIFIER&&(g=TokenType.ESCAPED_KEYWORD),{type:g,value:c,slice:h,escaped:d}}},{key:"getLocation",value:function(){return{line:this.startLine+1,column:this.startIndex-this.startLineStart,offset:this.startIndex}}},{key:"getLastTokenEndLocation",value:function(){return{line:this.lastLine+1,column:this.lastIndex-this.lastLineStart,offset:this.lastIndex}}},{key:"getSlice",value:function(s,a){return{text:this.source.slice(s,this.index),start:s,startLocation:a,end:this.index}}},{key:"scanPunctuatorHelper",value:function(){var s=this.source.charAt(this.index);switch(s){case".":{var a=this.source.charAt(this.index+1);if(a!==".")return TokenType.PERIOD;var c=this.source.charAt(this.index+2);return c!=="."?TokenType.PERIOD:TokenType.ELLIPSIS}case"(":return TokenType.LPAREN;case")":case";":case",":return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)];case"{":return TokenType.LBRACE;case"}":case"[":case"]":case":":case"?":case"~":return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)];default:if(this.index+1":return TokenType.GTE;case"/":return TokenType.ASSIGN_DIV;case"%":return TokenType.ASSIGN_MOD;case"^":return TokenType.ASSIGN_BIT_XOR;case"&":return TokenType.ASSIGN_BIT_AND}}if(this.index+1"&&d===">")return this.index+3"&&d==="=")return TokenType.ASSIGN_SHR;if(s==="*"&&d==="=")return TokenType.ASSIGN_EXP}switch(s){case"*":return TokenType.EXP;case"+":return TokenType.INC;case"-":return TokenType.DEC;case"<":return TokenType.SHL;case">":return TokenType.SHR;case"&":return TokenType.AND;case"|":return TokenType.OR}}else if(s==="="&&h===">")return TokenType.ARROW}return ONE_CHAR_PUNCTUATOR[s.charCodeAt(0)]}},{key:"scanPunctuator",value:function(){var s=this.getLocation(),a=this.index,c=this.scanPunctuatorHelper();return this.index+=c.name.length,{type:c,value:c.name,slice:this.getSlice(a,s)}}},{key:"scanHexLiteral",value:function(s,a){for(var c=this.index;c="0"&&c<="7")this.index++;else{if((0,_utils$1.isIdentifierPart)(c.charCodeAt(0)))throw this.createILLEGAL();break}}if(this.index-s===2)throw this.createILLEGAL();return{type:TokenType.NUMBER,value:parseInt(this.getSlice(s,a).text.substr(2),8),slice:this.getSlice(s,a),octal:!1,noctal:!1}}},{key:"scanLegacyOctalLiteral",value:function(s,a){for(var c=!0;this.index="0"&&h<="7")this.index++;else if(h==="8"||h==="9")c=!1,this.index++;else{if((0,_utils$1.isIdentifierPart)(h.charCodeAt(0)))throw this.createILLEGAL();break}}var d=this.getSlice(s,a);return c?{type:TokenType.NUMBER,slice:d,value:parseInt(d.text.substr(1),8),octal:!0,noctal:!c}:(this.eatDecimalLiteralSuffix(),{type:TokenType.NUMBER,slice:d,value:+d.text,octal:!0,noctal:!c})}},{key:"scanNumericLiteral",value:function(){var s=this.source.charAt(this.index),a=this.getLocation(),c=this.index;if(s==="0")if(this.index++,this.index="0"&&s<="9")return this.scanLegacyOctalLiteral(c,a)}else{var h=this.getSlice(c,a);return{type:TokenType.NUMBER,value:+h.text,slice:h,octal:!1,noctal:!1}}else if(s!==".")for(s=this.source.charAt(this.index);s>="0"&&s<="9";){if(this.index++,this.index===this.source.length){var d=this.getSlice(c,a);return{type:TokenType.NUMBER,value:+d.text,slice:d,octal:!1,noctal:!1}}s=this.source.charAt(this.index)}if(this.eatDecimalLiteralSuffix(),this.index!==this.source.length&&(0,_utils$1.isIdentifierStart)(this.source.charCodeAt(this.index)))throw this.createILLEGAL();var g=this.getSlice(c,a);return{type:TokenType.NUMBER,value:+g.text,slice:g,octal:!1,noctal:!1}}},{key:"eatDecimalLiteralSuffix",value:function(){var s=this.source.charAt(this.index);if(s==="."){if(this.index++,this.index===this.source.length)return;for(s=this.source.charAt(this.index);s>="0"&&s<="9";){if(this.index++,this.index===this.source.length)return;s=this.source.charAt(this.index)}}if(s==="e"||s==="E"){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();if(s=this.source.charAt(this.index),s==="+"||s==="-"){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();s=this.source.charAt(this.index)}if(s>="0"&&s<="9")for(;s>="0"&&s<="9"&&(this.index++,this.index!==this.source.length);)s=this.source.charAt(this.index);else throw this.createILLEGAL()}}},{key:"scanStringEscape",value:function(s,a){if(this.index++,this.index===this.source.length)throw this.createILLEGAL();var c=this.source.charAt(this.index);if((0,_utils$1.isLineTerminator)(c.charCodeAt(0)))this.index++,c==="\r"&&this.source.charAt(this.index)===` -`&&this.index++,this.lineStart=this.index,this.line++;else switch(c){case"n":s+=` -`,this.index++;break;case"r":s+="\r",this.index++;break;case"t":s+=" ",this.index++;break;case"u":case"x":{var h=void 0;if(this.index++,this.index>=this.source.length)throw this.createILLEGAL();if(h=c==="u"?this.scanUnicode():this.scanHexEscape2(),h<0)throw this.createILLEGAL();s+=fromCodePoint$1(h);break}case"b":s+="\b",this.index++;break;case"f":s+="\f",this.index++;break;case"v":s+="\v",this.index++;break;default:if(c>="0"&&c<="7"){var d=this.index,g=1;c>="0"&&c<="3"&&(g=0);for(var _=0;g<3&&c>="0"&&c<="7";){if(this.index++,(g>0||c!=="0")&&(a=this.source.slice(d,this.index)),_*=8,_+=c-"0",g++,this.index===this.source.length)throw this.createILLEGAL();c=this.source.charAt(this.index)}_===0&&g===1&&(c==="8"||c==="9")&&(a=this.source.slice(d,this.index+1)),s+=String.fromCharCode(_)}else{if(c==="8"||c==="9")throw this.createILLEGAL();s+=c,this.index++}}return[s,a]}},{key:"scanStringLiteral",value:function(){var s="",a=this.source.charAt(this.index),c=this.getLocation(),h=this.index;this.index++;for(var d=null;this.index=this.source.length)return{type:TokenType.EOS,slice:this.getSlice(this.index,s)};var a=this.source.charCodeAt(this.index);if(a<128){if(PUNCTUATOR_START[a])return this.scanPunctuator();if((0,_utils$1.isIdentifierStart)(a)||a===92)return this.scanIdentifier();if(a===46)return this.index+1=48&&a<=57)return this.scanNumericLiteral();throw this.createILLEGAL()}else{if((0,_utils$1.isIdentifierStart)(a)||a>=55296&&a<=56319)return this.scanIdentifier();throw this.createILLEGAL()}}},{key:"eof",value:function(){return this.lookahead.type===TokenType.EOS}},{key:"lex",value:function(){var s=this.lookahead;return this.lookahead=this.advance(),this.tokenIndex++,s}}],[{key:"cse2",value:function(s,a,c){return s.charAt(1)===a&&s.charAt(2)===c}},{key:"cse3",value:function(s,a,c,h){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===h}},{key:"cse4",value:function(s,a,c,h,d){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===h&&s.charAt(4)===d}},{key:"cse5",value:function(s,a,c,h,d,g){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===h&&s.charAt(4)===d&&s.charAt(5)===g}},{key:"cse6",value:function(s,a,c,h,d,g,_){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===h&&s.charAt(4)===d&&s.charAt(5)===g&&s.charAt(6)===_}},{key:"cse7",value:function(s,a,c,h,d,g,_,b){return s.charAt(1)===a&&s.charAt(2)===c&&s.charAt(3)===h&&s.charAt(4)===d&&s.charAt(5)===g&&s.charAt(6)===_&&s.charAt(7)===b}}]),o}();tokenizer.default=Tokenizer;var parser$1={},dist$6={},mappings=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Copt","Coptic"],["Qaac","Coptic"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Ugar","Ugaritic"],["Vaii","Vai"],["Wara","Warang_Citi"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Coptic","Coptic"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Warang_Citi","Warang_Citi"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]]);const propertyToValueAliases=mappings,matchPropertyValue=function(o,e){const s=propertyToValueAliases.get(o);if(!s)throw new Error(`Unknown property \`${o}\`.`);const a=s.get(e);if(a)return a;throw new Error(`Unknown value \`${e}\` for property \`${o}\`.`)};var unicodeMatchPropertyValueEcmascript=matchPropertyValue,unicodeCanonicalPropertyNamesEcmascript=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]),unicodePropertyAliasesEcmascript=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["Ext","Extender"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]]);const canonicalProperties=unicodeCanonicalPropertyNamesEcmascript,propertyAliases=unicodePropertyAliasesEcmascript,matchProperty=function(o){if(canonicalProperties.has(o))return o;if(propertyAliases.has(o))return propertyAliases.get(o);throw new Error(`Unknown property: ${o}`)};var unicodeMatchPropertyEcmascript=matchProperty,unicode$1={};Object.defineProperty(unicode$1,"__esModule",{value:!0});unicode$1.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode$1.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode$1.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode$1.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode$1.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode$1.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(dist$6,"__esModule",{value:!0});var _createClass$d=function(){function o(e,s){for(var a=0;a=this.pattern.length}},{key:"backreference",value:function(s){s>this.largestBackreference&&(this.largestBackreference=s)}},{key:"nextCodePoint",value:function(){return this.empty()?null:this.unicode?String.fromCodePoint(this.pattern.codePointAt(this.index)):this.pattern.charAt(this.index)}},{key:"skipCodePoint",value:function(){this.index+=this.nextCodePoint().length}},{key:"eat",value:function(s){return this.index+s.length>this.pattern.length||this.pattern.slice(this.index,this.index+s.length)!==s?!1:(this.index+=s.length,!0)}},{key:"eatIdentifierCodePoint",value:function(){var s=void 0,a=this.index,c=void 0;if(this.match("\\u")){if(this.skipCodePoint(),s=acceptUnicodeEscape(this),!s.matched)return this.index=a,null;s=s.value,c=String.fromCodePoint(s)}else{if(c=this.nextCodePoint(),c==null)return this.index=a,null;this.index+=c.length,s=c.codePointAt(0)}return{character:c,characterValue:s}}},{key:"eatIdentifierStart",value:function(){var s=this.index,a=this.eatIdentifierCodePoint();return a===null?(this.index=s,null):a.character==="_"||a.character==="$"||isIdentifierStart(a.characterValue)?a.character:(this.index=s,null)}},{key:"eatIdentifierPart",value:function(){var s=this.index,a=this.eatIdentifierCodePoint();return a===null?(this.index=s,null):a.character==="\u200C"||a.character==="\u200D"||a.character==="$"||isIdentifierPart(a.characterValue)?a.character:(this.index=s,null)}},{key:"eatAny",value:function(){for(var s=arguments.length,a=Array(s),c=0;c1&&arguments[1]!==void 0?arguments[1]:{},s=e.unicode,a=s===void 0?!1:s,c=new PatternAcceptorState(o,a),h=acceptDisjunction(c);if(h.matched){if(c.unicode&&c.largestBackreference>c.capturingGroups)return!1;if(c.groupingNames.length>0||c.unicode){var d=!0,g=!1,_=void 0;try{for(var b=c.backreferenceNames[Symbol.iterator](),$;!(d=($=b.next()).done);d=!0){var j=$.value;if(c.groupingNames.indexOf(j)===-1)return!1}}catch(_e){g=!0,_=_e}finally{try{!d&&b.return&&b.return()}finally{if(g)throw _}}}}return h.matched};var backtrackOnFailure=function(e){return function(s){var a=s.index,c=s.largestBackreference,h=s.capturingGroups,d=e(s);return d.matched||(s.index=a,s.largestBackreference=c,s.capturingGroups=h),d}},acceptUnicodeEscape=backtrackOnFailure(function(o){if(!o.eat("u"))return{matched:!1};if(o.unicode&&o.eat("{")){for(var e=[];!o.eat("}");){var s=o.eatAny.apply(o,_toConsumableArray$6(hexDigits));if(s===null)return{matched:!1};e.push(s)}var a=parseInt(e.join(""),16);return a>1114111?{matched:!1}:{matched:!0,value:a}}var c=[0,0,0,0].map(function(){return o.eatAny.apply(o,_toConsumableArray$6(hexDigits))});if(c.some(function(g){return g===null}))return{matched:!1};var h=parseInt(c.join(""),16);if(o.unicode&&h>=55296&&h<=56319){var d=backtrackOnFailure(function(g){if(!g.eat("\\u"))return{matched:!1};var _=[0,0,0,0].map(function(){return g.eatAny.apply(g,_toConsumableArray$6(hexDigits))});if(_.some(function($){return $===null}))return{matched:!1};var b=parseInt(_.join(""),16);return b<56320||b>=57344?{matched:!1}:{matched:!0,value:65536+((h&1023)<<10)+(b&1023)}})(o);if(d.matched)return d}return{matched:!0,value:h}}),acceptDisjunction=function(e,s){do{if(s!==void 0&&e.eat(s))return{matched:!0};if(e.match("|"))continue;if(!acceptAlternative(e,s).matched)return{matched:!1}}while(e.eat("|"));return{matched:s===void 0||!!e.eat(s)}},acceptAlternative=function(e,s){for(;!e.match("|")&&!e.empty()&&(s===void 0||!e.match(s));)if(!acceptTerm(e).matched)return{matched:!1};return{matched:!0}},anyOf=function(){for(var e=arguments.length,s=Array(e),a=0;aparseInt(d))return{matched:!1}}return c.eat("}")?(c.eat("?"),{matched:!0}):{matched:!1}})(s);return a.matched?a:{matched:!s.unicode}}else s.eatAny("*","+","?")&&s.eat("?");return{matched:!0}})},acceptCharacterExcept=function(e){return function(s){var a=s.nextCodePoint();return a===null||e.indexOf(a)!==-1?{matched:!1}:(s.skipCodePoint(),{matched:!0})}},acceptPatternCharacter=acceptCharacterExcept(syntaxCharacters),acceptExtendedPatternCharacter=acceptCharacterExcept(extendedSyntaxCharacters),acceptInvalidBracedQuantifier=function(e){return backtrackOnFailure(function(s){return{matched:!!(s.eat("{")&&acceptDecimal(s).matched&&(!s.eat(",")||s.match("}")||acceptDecimal(s).matched)&&s.eat("}"))}})(e)},acceptAtom=function(e){if(e.unicode)return anyOf(acceptPatternCharacter,function(a){return{matched:!!a.eat(".")}},backtrackOnFailure(function(a){return a.eat("\\")?acceptAtomEscape(a):{matched:!1}}),acceptCharacterClass,acceptLabeledGroup(function(a){return a.eat("?:")}),acceptGrouping)(e);var s=anyOf(function(a){return{matched:!!a.eat(".")}},backtrackOnFailure(function(a){return a.eat("\\")?acceptAtomEscape(a):{matched:!1}}),backtrackOnFailure(function(a){return{matched:a.eat("\\")&&a.match("c")}}),acceptCharacterClass,acceptLabeledGroup(function(a){return a.eat("?:")}),acceptGrouping)(e);return!s.matched&&acceptInvalidBracedQuantifier(e).matched?{matched:!1}:s.matched?s:acceptExtendedPatternCharacter(e)},acceptGrouping=backtrackOnFailure(function(o){if(!o.eat("("))return{matched:!1};var e=backtrackOnFailure(function(s){return o.eat("?")?acceptGroupName(s):{matched:!1}})(o);if(!acceptDisjunction(o,")").matched)return{matched:!1};if(e.matched){if(o.groupingNames.indexOf(e.data)!==-1)return{matched:!1};o.groupingNames.push(e.data)}return o.capturingGroups++,{matched:!0}}),acceptDecimalEscape=backtrackOnFailure(function(o){var e=o.eatAny.apply(o,_toConsumableArray$6(decimalDigits));return e===null?{matched:!1}:e==="0"?{matched:!0}:(o.backreference(parseInt(e+(o.eatNaturalNumber()||""))),{matched:!0})}),acceptCharacterClassEscape=function(e){return e.eatAny("d","D","s","S","w","W")?{matched:!0}:e.unicode?backtrackOnFailure(function(s){return!s.eat("p{")&&!s.eat("P{")?{matched:!1}:acceptUnicodePropertyValueExpression(s).matched?{matched:!!s.eat("}")}:{matched:!1}})(e):{matched:!1}},acceptUnicodePropertyName=function(e){for(var s=[],a=void 0;a=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(["_"]));)s.push(a);return{matched:s.length>0,data:s.join("")}},acceptUnicodePropertyValue=function(e){for(var s=[],a=void 0;a=e.eatAny.apply(e,_toConsumableArray$6(controlCharacters).concat(_toConsumableArray$6(decimalDigits),["_"]));)s.push(a);return{matched:s.length>0,data:s.join("")}},illegalLoneUnicodePropertyNames=["General_Category","Script","Script_Extensions","scx","sc","gc"],generalCategoryValues=_mappings2.default.get("General_Category"),acceptLoneUnicodePropertyNameOrValue=function(e){var s=acceptUnicodePropertyValue(e);return!s.matched||illegalLoneUnicodePropertyNames.includes(s.data)?{matched:!1}:{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyEcmascript2.default)(s.data)})||generalCategoryValues.get(s.data)!=null}},acceptUnicodePropertyValueExpression=function(e){return anyOf(backtrackOnFailure(function(s){var a=acceptUnicodePropertyName(s);if(!a.matched||!s.eat("="))return{matched:!1};var c=acceptUnicodePropertyValue(s);return c.matched?{matched:catchIsFalse(function(){return(0,_unicodeMatchPropertyValueEcmascript2.default)(_unicodePropertyAliasesEcmascript2.default.get(a.data)||a.data,c.data)})}:{matched:!1}}),backtrackOnFailure(acceptLoneUnicodePropertyNameOrValue))(e)},acceptCharacterEscape=anyOf(function(o){var e=o.eatAny.apply(o,_toConsumableArray$6(controlEscapeCharacters));return e===null?{matched:!1}:{matched:!0,value:controlEscapeCharacterValues[e]}},backtrackOnFailure(function(o){if(!o.eat("c"))return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(controlCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)%32}}),backtrackOnFailure(function(o){return!o.eat("0")||o.eatAny.apply(o,_toConsumableArray$6(decimalDigits))?{matched:!1}:{matched:!0,value:0}}),backtrackOnFailure(function(o){if(!o.eat("x"))return{matched:!1};var e=[0,0].map(function(){return o.eatAny.apply(o,_toConsumableArray$6(hexDigits))});return e.some(function(s){return s===null})?{matched:!1}:{matched:!0,value:parseInt(e.join(""),16)}}),acceptUnicodeEscape,backtrackOnFailure(function(o){if(o.unicode)return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(octalDigits));if(e===null)return{matched:!1};var s=parseInt(e,8);if(octalDigits.indexOf(o.nextCodePoint())===-1)return{matched:!0,value:s};var a=o.eatAny.apply(o,_toConsumableArray$6(octalDigits)),c=parseInt(a,8);if(s<4){if(octalDigits.indexOf(o.nextCodePoint())===-1)return{matched:!0,value:s<<3|c};var h=o.eatAny.apply(o,_toConsumableArray$6(octalDigits)),d=parseInt(h,8);return{matched:!0,value:s<<6|c<<3|d}}return{matched:!0,value:s<<3|c}}),backtrackOnFailure(function(o){if(!o.unicode)return{matched:!1};var e=o.eatAny.apply(o,_toConsumableArray$6(syntaxCharacters));return e===null?{matched:!1}:{matched:!0,value:e.charCodeAt(0)}}),function(o){return!o.unicode||!o.eat("/")?{matched:!1}:{matched:!0,value:"/".charCodeAt(0)}},backtrackOnFailure(function(o){if(o.unicode)return{matched:!1};var e=o.nextCodePoint();return e!==null&&e!=="c"&&e!=="k"?(o.skipCodePoint(),{matched:!0,value:e.codePointAt(0)}):{matched:!1}})),acceptGroupNameBackreference=backtrackOnFailure(function(o){if(!o.eat("k"))return{matched:!1};var e=acceptGroupName(o);return e.matched?(o.backreferenceNames.push(e.data),{matched:!0}):(o.backreferenceNames.push(INVALID_NAMED_BACKREFERENCE_SENTINEL),{matched:!0})}),acceptGroupName=backtrackOnFailure(function(o){if(!o.eat("<"))return{matched:!1};var e=[],s=o.eatIdentifierStart();if(!s)return{matched:!1};e.push(s);for(var a=void 0;a=o.eatIdentifierPart();)e.push(a);return o.eat(">")?{matched:e.length>0,data:e.join("")}:{matched:!1}}),acceptAtomEscape=anyOf(acceptDecimalEscape,acceptCharacterClassEscape,acceptCharacterEscape,acceptGroupNameBackreference),acceptCharacterClass=backtrackOnFailure(function(o){if(!o.eat("["))return{matched:!1};o.eat("^");var e=anyOf(function(_){return{matched:!!_.eat("b"),value:8}},function(_){return{matched:_.unicode&&!!_.eat("-"),value:"-".charCodeAt(0)}},backtrackOnFailure(function(_){if(_.unicode||!_.eat("c"))return{matched:!1};var b=_.eatAny.apply(_,_toConsumableArray$6(decimalDigits).concat(["_"]));return b===null?{matched:!1}:{matched:!0,value:b.charCodeAt(0)%32}}),acceptCharacterClassEscape,acceptCharacterEscape,function(_){return{matched:!_.unicode&&!!_.eat("k"),value:107}}),s=function(b){var $=b.nextCodePoint();if($==="]"||$==="-"||$===null)return{matched:!1};if($!=="\\")return b.skipCodePoint(),{matched:!0,value:$.codePointAt(0)};b.eat("\\");var j=e(b);return!j.matched&&b.nextCodePoint()==="c"&&!b.unicode?{matched:!0,value:"\\".charCodeAt(0)}:j},a=function(b){return b.eat("-")?{matched:!0,value:"-".charCodeAt(0)}:s(b)},c=function(b,$){var j=function(tt){return tt.value===void 0&&tt.matched};if(b.eat("-")){if(b.match("]"))return{matched:!0};var _e=a(b);return _e.matched?b.unicode&&(j($)||j(_e))?{matched:!1}:!(!b.unicode&&(j($)||j(_e)))&&$.value>_e.value?{matched:!1}:b.match("]")?{matched:!0}:h(b):{matched:!1}}return b.match("]")?{matched:!0}:d(b)},h=function(b){var $=a(b);return $.matched?c(b,$):{matched:!1}},d=function(b){var $=s(b);return $.matched?c(b,$):{matched:!1}};if(o.eat("]"))return{matched:!0};var g=h(o);return g.matched&&o.eat("]"),g}),dist$5={};Object.defineProperty(dist$5,"__esModule",{value:!0});function _classCallCheck$g(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}dist$5.ArrayAssignmentTarget=function o(e){var s=e.elements,a=e.rest;_classCallCheck$g(this,o),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=a};dist$5.ArrayBinding=function o(e){var s=e.elements,a=e.rest;_classCallCheck$g(this,o),this.type="ArrayBinding",this.elements=s,this.rest=a};dist$5.ArrayExpression=function o(e){var s=e.elements;_classCallCheck$g(this,o),this.type="ArrayExpression",this.elements=s};dist$5.ArrowExpression=function o(e){var s=e.isAsync,a=e.params,c=e.body;_classCallCheck$g(this,o),this.type="ArrowExpression",this.isAsync=s,this.params=a,this.body=c};dist$5.AssignmentExpression=function o(e){var s=e.binding,a=e.expression;_classCallCheck$g(this,o),this.type="AssignmentExpression",this.binding=s,this.expression=a};dist$5.AssignmentTargetIdentifier=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="AssignmentTargetIdentifier",this.name=s};dist$5.AssignmentTargetPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=a};dist$5.AssignmentTargetPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=a};dist$5.AssignmentTargetWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=a};dist$5.AwaitExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="AwaitExpression",this.expression=s};dist$5.BinaryExpression=function o(e){var s=e.left,a=e.operator,c=e.right;_classCallCheck$g(this,o),this.type="BinaryExpression",this.left=s,this.operator=a,this.right=c};dist$5.BindingIdentifier=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="BindingIdentifier",this.name=s};dist$5.BindingPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="BindingPropertyIdentifier",this.binding=s,this.init=a};dist$5.BindingPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="BindingPropertyProperty",this.name=s,this.binding=a};dist$5.BindingWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="BindingWithDefault",this.binding=s,this.init=a};dist$5.Block=function o(e){var s=e.statements;_classCallCheck$g(this,o),this.type="Block",this.statements=s};dist$5.BlockStatement=function o(e){var s=e.block;_classCallCheck$g(this,o),this.type="BlockStatement",this.block=s};dist$5.BreakStatement=function o(e){var s=e.label;_classCallCheck$g(this,o),this.type="BreakStatement",this.label=s};dist$5.CallExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$g(this,o),this.type="CallExpression",this.callee=s,this.arguments=a};dist$5.CatchClause=function o(e){var s=e.binding,a=e.body;_classCallCheck$g(this,o),this.type="CatchClause",this.binding=s,this.body=a};dist$5.ClassDeclaration=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$g(this,o),this.type="ClassDeclaration",this.name=s,this.super=a,this.elements=c};dist$5.ClassElement=function o(e){var s=e.isStatic,a=e.method;_classCallCheck$g(this,o),this.type="ClassElement",this.isStatic=s,this.method=a};dist$5.ClassExpression=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$g(this,o),this.type="ClassExpression",this.name=s,this.super=a,this.elements=c};dist$5.CompoundAssignmentExpression=function o(e){var s=e.binding,a=e.operator,c=e.expression;_classCallCheck$g(this,o),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=a,this.expression=c};dist$5.ComputedMemberAssignmentTarget=function o(e){var s=e.object,a=e.expression;_classCallCheck$g(this,o),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=a};dist$5.ComputedMemberExpression=function o(e){var s=e.object,a=e.expression;_classCallCheck$g(this,o),this.type="ComputedMemberExpression",this.object=s,this.expression=a};dist$5.ComputedPropertyName=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ComputedPropertyName",this.expression=s};dist$5.ConditionalExpression=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$g(this,o),this.type="ConditionalExpression",this.test=s,this.consequent=a,this.alternate=c};dist$5.ContinueStatement=function o(e){var s=e.label;_classCallCheck$g(this,o),this.type="ContinueStatement",this.label=s};dist$5.DataProperty=function o(e){var s=e.name,a=e.expression;_classCallCheck$g(this,o),this.type="DataProperty",this.name=s,this.expression=a};dist$5.DebuggerStatement=function o(){_classCallCheck$g(this,o),this.type="DebuggerStatement"};dist$5.Directive=function o(e){var s=e.rawValue;_classCallCheck$g(this,o),this.type="Directive",this.rawValue=s};dist$5.DoWhileStatement=function o(e){var s=e.body,a=e.test;_classCallCheck$g(this,o),this.type="DoWhileStatement",this.body=s,this.test=a};dist$5.EmptyStatement=function o(){_classCallCheck$g(this,o),this.type="EmptyStatement"};dist$5.Export=function o(e){var s=e.declaration;_classCallCheck$g(this,o),this.type="Export",this.declaration=s};dist$5.ExportAllFrom=function o(e){var s=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$5.ExportDefault=function o(e){var s=e.body;_classCallCheck$g(this,o),this.type="ExportDefault",this.body=s};dist$5.ExportFrom=function o(e){var s=e.namedExports,a=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=a};dist$5.ExportFromSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$g(this,o),this.type="ExportFromSpecifier",this.name=s,this.exportedName=a};dist$5.ExportLocalSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$g(this,o),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=a};dist$5.ExportLocals=function o(e){var s=e.namedExports;_classCallCheck$g(this,o),this.type="ExportLocals",this.namedExports=s};dist$5.ExpressionStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ExpressionStatement",this.expression=s};dist$5.ForAwaitStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForAwaitStatement",this.left=s,this.right=a,this.body=c};dist$5.ForInStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForInStatement",this.left=s,this.right=a,this.body=c};dist$5.ForOfStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$g(this,o),this.type="ForOfStatement",this.left=s,this.right=a,this.body=c};dist$5.ForStatement=function o(e){var s=e.init,a=e.test,c=e.update,h=e.body;_classCallCheck$g(this,o),this.type="ForStatement",this.init=s,this.test=a,this.update=c,this.body=h};dist$5.FormalParameters=function o(e){var s=e.items,a=e.rest;_classCallCheck$g(this,o),this.type="FormalParameters",this.items=s,this.rest=a};dist$5.FunctionBody=function o(e){var s=e.directives,a=e.statements;_classCallCheck$g(this,o),this.type="FunctionBody",this.directives=s,this.statements=a};dist$5.FunctionDeclaration=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,h=e.params,d=e.body;_classCallCheck$g(this,o),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=h,this.body=d};dist$5.FunctionExpression=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,h=e.params,d=e.body;_classCallCheck$g(this,o),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=h,this.body=d};dist$5.Getter=function o(e){var s=e.name,a=e.body;_classCallCheck$g(this,o),this.type="Getter",this.name=s,this.body=a};dist$5.IdentifierExpression=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="IdentifierExpression",this.name=s};dist$5.IfStatement=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$g(this,o),this.type="IfStatement",this.test=s,this.consequent=a,this.alternate=c};dist$5.Import=function o(e){var s=e.defaultBinding,a=e.namedImports,c=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="Import",this.defaultBinding=s,this.namedImports=a,this.moduleSpecifier=c};dist$5.ImportNamespace=function o(e){var s=e.defaultBinding,a=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$g(this,o),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=a,this.moduleSpecifier=c};dist$5.ImportSpecifier=function o(e){var s=e.name,a=e.binding;_classCallCheck$g(this,o),this.type="ImportSpecifier",this.name=s,this.binding=a};dist$5.LabeledStatement=function o(e){var s=e.label,a=e.body;_classCallCheck$g(this,o),this.type="LabeledStatement",this.label=s,this.body=a};dist$5.LiteralBooleanExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralBooleanExpression",this.value=s};dist$5.LiteralInfinityExpression=function o(){_classCallCheck$g(this,o),this.type="LiteralInfinityExpression"};dist$5.LiteralNullExpression=function o(){_classCallCheck$g(this,o),this.type="LiteralNullExpression"};dist$5.LiteralNumericExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralNumericExpression",this.value=s};dist$5.LiteralRegExpExpression=function o(e){var s=e.pattern,a=e.global,c=e.ignoreCase,h=e.multiLine,d=e.dotAll,g=e.unicode,_=e.sticky;_classCallCheck$g(this,o),this.type="LiteralRegExpExpression",this.pattern=s,this.global=a,this.ignoreCase=c,this.multiLine=h,this.dotAll=d,this.unicode=g,this.sticky=_};dist$5.LiteralStringExpression=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="LiteralStringExpression",this.value=s};dist$5.Method=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,h=e.params,d=e.body;_classCallCheck$g(this,o),this.type="Method",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=h,this.body=d};dist$5.Module=function o(e){var s=e.directives,a=e.items;_classCallCheck$g(this,o),this.type="Module",this.directives=s,this.items=a};dist$5.NewExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$g(this,o),this.type="NewExpression",this.callee=s,this.arguments=a};dist$5.NewTargetExpression=function o(){_classCallCheck$g(this,o),this.type="NewTargetExpression"};dist$5.ObjectAssignmentTarget=function o(e){var s=e.properties,a=e.rest;_classCallCheck$g(this,o),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=a};dist$5.ObjectBinding=function o(e){var s=e.properties,a=e.rest;_classCallCheck$g(this,o),this.type="ObjectBinding",this.properties=s,this.rest=a};dist$5.ObjectExpression=function o(e){var s=e.properties;_classCallCheck$g(this,o),this.type="ObjectExpression",this.properties=s};dist$5.ReturnStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ReturnStatement",this.expression=s};dist$5.Script=function o(e){var s=e.directives,a=e.statements;_classCallCheck$g(this,o),this.type="Script",this.directives=s,this.statements=a};dist$5.Setter=function o(e){var s=e.name,a=e.param,c=e.body;_classCallCheck$g(this,o),this.type="Setter",this.name=s,this.param=a,this.body=c};dist$5.ShorthandProperty=function o(e){var s=e.name;_classCallCheck$g(this,o),this.type="ShorthandProperty",this.name=s};dist$5.SpreadElement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="SpreadElement",this.expression=s};dist$5.SpreadProperty=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="SpreadProperty",this.expression=s};dist$5.StaticMemberAssignmentTarget=function o(e){var s=e.object,a=e.property;_classCallCheck$g(this,o),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=a};dist$5.StaticMemberExpression=function o(e){var s=e.object,a=e.property;_classCallCheck$g(this,o),this.type="StaticMemberExpression",this.object=s,this.property=a};dist$5.StaticPropertyName=function o(e){var s=e.value;_classCallCheck$g(this,o),this.type="StaticPropertyName",this.value=s};dist$5.Super=function o(){_classCallCheck$g(this,o),this.type="Super"};dist$5.SwitchCase=function o(e){var s=e.test,a=e.consequent;_classCallCheck$g(this,o),this.type="SwitchCase",this.test=s,this.consequent=a};dist$5.SwitchDefault=function o(e){var s=e.consequent;_classCallCheck$g(this,o),this.type="SwitchDefault",this.consequent=s};dist$5.SwitchStatement=function o(e){var s=e.discriminant,a=e.cases;_classCallCheck$g(this,o),this.type="SwitchStatement",this.discriminant=s,this.cases=a};dist$5.SwitchStatementWithDefault=function o(e){var s=e.discriminant,a=e.preDefaultCases,c=e.defaultCase,h=e.postDefaultCases;_classCallCheck$g(this,o),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=a,this.defaultCase=c,this.postDefaultCases=h};dist$5.TemplateElement=function o(e){var s=e.rawValue;_classCallCheck$g(this,o),this.type="TemplateElement",this.rawValue=s};dist$5.TemplateExpression=function o(e){var s=e.tag,a=e.elements;_classCallCheck$g(this,o),this.type="TemplateExpression",this.tag=s,this.elements=a};dist$5.ThisExpression=function o(){_classCallCheck$g(this,o),this.type="ThisExpression"};dist$5.ThrowStatement=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="ThrowStatement",this.expression=s};dist$5.TryCatchStatement=function o(e){var s=e.body,a=e.catchClause;_classCallCheck$g(this,o),this.type="TryCatchStatement",this.body=s,this.catchClause=a};dist$5.TryFinallyStatement=function o(e){var s=e.body,a=e.catchClause,c=e.finalizer;_classCallCheck$g(this,o),this.type="TryFinallyStatement",this.body=s,this.catchClause=a,this.finalizer=c};dist$5.UnaryExpression=function o(e){var s=e.operator,a=e.operand;_classCallCheck$g(this,o),this.type="UnaryExpression",this.operator=s,this.operand=a};dist$5.UpdateExpression=function o(e){var s=e.isPrefix,a=e.operator,c=e.operand;_classCallCheck$g(this,o),this.type="UpdateExpression",this.isPrefix=s,this.operator=a,this.operand=c};dist$5.VariableDeclaration=function o(e){var s=e.kind,a=e.declarators;_classCallCheck$g(this,o),this.type="VariableDeclaration",this.kind=s,this.declarators=a};dist$5.VariableDeclarationStatement=function o(e){var s=e.declaration;_classCallCheck$g(this,o),this.type="VariableDeclarationStatement",this.declaration=s};dist$5.VariableDeclarator=function o(e){var s=e.binding,a=e.init;_classCallCheck$g(this,o),this.type="VariableDeclarator",this.binding=s,this.init=a};dist$5.WhileStatement=function o(e){var s=e.test,a=e.body;_classCallCheck$g(this,o),this.type="WhileStatement",this.test=s,this.body=a};dist$5.WithStatement=function o(e){var s=e.object,a=e.body;_classCallCheck$g(this,o),this.type="WithStatement",this.object=s,this.body=a};dist$5.YieldExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="YieldExpression",this.expression=s};dist$5.YieldGeneratorExpression=function o(e){var s=e.expression;_classCallCheck$g(this,o),this.type="YieldGeneratorExpression",this.expression=s};Object.defineProperty(parser$1,"__esModule",{value:!0});parser$1.GenericParser=void 0;var _createClass$c=function(){function o(e,s){for(var a=0;a":Precedence$1.Relational,"<=":Precedence$1.Relational,">=":Precedence$1.Relational,in:Precedence$1.Relational,instanceof:Precedence$1.Relational,"<<":Precedence$1.BitwiseSHIFT,">>":Precedence$1.BitwiseSHIFT,">>>":Precedence$1.BitwiseSHIFT,"+":Precedence$1.Additive,"-":Precedence$1.Additive,"*":Precedence$1.Multiplicative,"%":Precedence$1.Multiplicative,"/":Precedence$1.Multiplicative};function isValidSimpleAssignmentTarget(o){if(o==null)return!1;switch(o.type){case"IdentifierExpression":case"ComputedMemberExpression":case"StaticMemberExpression":return!0}return!1}function isPrefixOperator(o){switch(o.type){case _tokenizer.TokenType.INC:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TYPEOF:return!0}return!1}function isUpdateOperator(o){return o.type===_tokenizer.TokenType.INC||o.type===_tokenizer.TokenType.DEC}parser$1.GenericParser=function(o){_inherits$7(e,o);function e(s){_classCallCheck$f(this,e);var a=_possibleConstructorReturn$7(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,s));return a.allowIn=!0,a.inFunctionBody=!1,a.inParameter=!1,a.allowYieldExpression=!1,a.allowAwaitExpression=!1,a.firstAwaitLocation=null,a.module=!1,a.moduleIsTheGoalSymbol=!1,a.strict=!1,a.isBindingElement=!0,a.isAssignmentTarget=!0,a.firstExprError=null,a}return _createClass$c(e,[{key:"match",value:function(a){return this.lookahead.type===a}},{key:"matchIdentifier",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IDENTIFIER:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.YIELD:case _tokenizer.TokenType.ASYNC:return!0;case _tokenizer.TokenType.AWAIT:return this.moduleIsTheGoalSymbol?!1:(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0);case _tokenizer.TokenType.ESCAPED_KEYWORD:return this.lookahead.value==="await"&&!this.moduleIsTheGoalSymbol?(this.firstAwaitLocation===null&&(this.firstAwaitLocation=this.getLocation()),!0):this.lookahead.value==="let"||this.lookahead.value==="yield"||this.lookahead.value==="async"}return!1}},{key:"eat",value:function(a){return this.lookahead.type===a?this.lex():null}},{key:"expect",value:function(a){if(this.lookahead.type===a)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"matchContextualKeyword",value:function(a){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a}},{key:"expectContextualKeyword",value:function(a){if(this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a)return this.lex();throw this.createUnexpected(this.lookahead)}},{key:"eatContextualKeyword",value:function(a){return this.lookahead.type===_tokenizer.TokenType.IDENTIFIER&&!this.lookahead.escaped&&this.lookahead.value===a?this.lex():null}},{key:"consumeSemicolon",value:function(){if(!this.eat(_tokenizer.TokenType.SEMICOLON)&&!this.hasLineTerminatorBeforeNext&&!this.eof()&&!this.match(_tokenizer.TokenType.RBRACE))throw this.createUnexpected(this.lookahead)}},{key:"startNode",value:function(a){return a}},{key:"copyNode",value:function(a,c){return c}},{key:"finishNode",value:function(a){return a}},{key:"parseModule",value:function(){this.moduleIsTheGoalSymbol=this.module=this.strict=!0,this.lookahead=this.advance();var a=this.startNode(),c=this.parseBody(),h=c.directives,d=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Module({directives:h,items:d}),a)}},{key:"parseScript",value:function(){this.lookahead=this.advance();var a=this.startNode(),c=this.parseBody(),h=c.directives,d=c.statements;if(!this.match(_tokenizer.TokenType.EOS))throw this.createUnexpected(this.lookahead);return this.finishNode(new AST.Script({directives:h,statements:d}),a)}},{key:"parseFunctionBody",value:function(){var a=this.inFunctionBody,c=this.module,h=this.strict;this.inFunctionBody=!0,this.module=!1;var d=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);var g=new AST.FunctionBody(this.parseBody());return this.expect(_tokenizer.TokenType.RBRACE),g=this.finishNode(g,d),this.inFunctionBody=a,this.module=c,this.strict=h,g}},{key:"parseBody",value:function(){for(var a=[],c=[],h=!0,d=null;!(this.eof()||this.match(_tokenizer.TokenType.RBRACE));){var g=this.lookahead,_=g.slice.text,b=g.type===_tokenizer.TokenType.STRING,$=this.module,j=this.getLocation(),_e=this.startNode(),et=$?this.parseModuleItem():this.parseStatementListItem();if(h)if(b&&et.type==="ExpressionStatement"&&et.expression.type==="LiteralStringExpression"){!d&&g.octal&&(d=this.createErrorWithLocation(j,"Unexpected legacy octal escape sequence: \\"+g.octal));var tt=_.slice(1,-1);tt==="use strict"&&(this.strict=!0),a.push(this.finishNode(new AST.Directive({rawValue:tt}),_e))}else{if(h=!1,d&&this.strict)throw d;c.push(et)}else c.push(et)}if(d&&this.strict)throw d;return{directives:a,statements:c}}},{key:"parseImportSpecifier",value:function(){var a=this.startNode(),c=void 0;if(this.matchIdentifier()){if(c=this.parseIdentifier(),!this.eatContextualKeyword("as"))return this.finishNode(new AST.ImportSpecifier({name:null,binding:this.finishNode(new AST.BindingIdentifier({name:c}),a)}),a)}else this.lookahead.type.klass.isIdentifierName&&(c=this.parseIdentifierName(),this.expectContextualKeyword("as"));return this.finishNode(new AST.ImportSpecifier({name:c,binding:this.parseBindingIdentifier()}),a)}},{key:"parseNameSpaceBinding",value:function(){return this.expect(_tokenizer.TokenType.MUL),this.expectContextualKeyword("as"),this.parseBindingIdentifier()}},{key:"parseNamedImports",value:function(){var a=[];for(this.expect(_tokenizer.TokenType.LBRACE);!this.eat(_tokenizer.TokenType.RBRACE);)if(a.push(this.parseImportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return a}},{key:"parseFromClause",value:function(){this.expectContextualKeyword("from");var a=this.expect(_tokenizer.TokenType.STRING).str;return a}},{key:"parseImportDeclaration",value:function(){var a=this.startNode(),c=null,h=void 0;if(this.expect(_tokenizer.TokenType.IMPORT),this.match(_tokenizer.TokenType.STRING))return h=this.lex().str,this.consumeSemicolon(),this.finishNode(new AST.Import({defaultBinding:null,namedImports:[],moduleSpecifier:h}),a);if(this.matchIdentifier()&&(c=this.parseBindingIdentifier(),!this.eat(_tokenizer.TokenType.COMMA))){var d=new AST.Import({defaultBinding:c,namedImports:[],moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(d,a)}if(this.match(_tokenizer.TokenType.MUL)){var g=new AST.ImportNamespace({defaultBinding:c,namespaceBinding:this.parseNameSpaceBinding(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(g,a)}else if(this.match(_tokenizer.TokenType.LBRACE)){var _=new AST.Import({defaultBinding:c,namedImports:this.parseNamedImports(),moduleSpecifier:this.parseFromClause()});return this.consumeSemicolon(),this.finishNode(_,a)}throw this.createUnexpected(this.lookahead)}},{key:"parseExportSpecifier",value:function(){var a=this.startNode(),c=this.finishNode({type:EXPORT_UNKNOWN_SPECIFIER,isIdentifier:this.matchIdentifier(),value:this.parseIdentifierName()},a);if(this.eatContextualKeyword("as")){var h=this.parseIdentifierName();return this.finishNode({name:c,exportedName:h},a)}return this.finishNode({name:c,exportedName:null},a)}},{key:"parseExportClause",value:function(){this.expect(_tokenizer.TokenType.LBRACE);for(var a=[];!this.eat(_tokenizer.TokenType.RBRACE);)if(a.push(this.parseExportSpecifier()),!this.eat(_tokenizer.TokenType.COMMA)){this.expect(_tokenizer.TokenType.RBRACE);break}return a}},{key:"parseExportDeclaration",value:function(){var a=this,c=this.startNode(),h=void 0;switch(this.expect(_tokenizer.TokenType.EXPORT),this.lookahead.type){case _tokenizer.TokenType.MUL:this.lex(),h=new AST.ExportAllFrom({moduleSpecifier:this.parseFromClause()}),this.consumeSemicolon();break;case _tokenizer.TokenType.LBRACE:{var d=this.parseExportClause(),g=null;this.matchContextualKeyword("from")?(g=this.parseFromClause(),h=new AST.ExportFrom({namedExports:d.map(function(j){return a.copyNode(j,new AST.ExportFromSpecifier({name:j.name.value,exportedName:j.exportedName}))}),moduleSpecifier:g})):(d.forEach(function(j){var _e=j.name;if(!_e.isIdentifier)throw a.createError(_errors$1.ErrorMessages.ILLEGAL_EXPORTED_NAME)}),h=new AST.ExportLocals({namedExports:d.map(function(j){return a.copyNode(j,new AST.ExportLocalSpecifier({name:a.copyNode(j.name,new AST.IdentifierExpression({name:j.name.value})),exportedName:j.exportedName}))})})),this.consumeSemicolon();break}case _tokenizer.TokenType.CLASS:h=new AST.Export({declaration:this.parseClass({isExpr:!1,inDefault:!1})});break;case _tokenizer.TokenType.FUNCTION:h=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.ASYNC:{var _=this.startNode();this.lex(),h=new AST.Export({declaration:this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:_})});break}case _tokenizer.TokenType.DEFAULT:switch(this.lex(),this.lookahead.type){case _tokenizer.TokenType.FUNCTION:h=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!0,isAsync:!1})});break;case _tokenizer.TokenType.CLASS:h=new AST.ExportDefault({body:this.parseClass({isExpr:!1,inDefault:!0})});break;case _tokenizer.TokenType.ASYNC:{var b=this.startNode(),$=this.saveLexerState();if(this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)){h=new AST.ExportDefault({body:this.parseFunction({isExpr:!1,inDefault:!0,allowGenerator:!1,isAsync:!0,startState:b})});break}this.restoreLexerState($)}default:h=new AST.ExportDefault({body:this.parseAssignmentExpression()}),this.consumeSemicolon();break}break;case _tokenizer.TokenType.VAR:case _tokenizer.TokenType.LET:case _tokenizer.TokenType.CONST:h=new AST.Export({declaration:this.parseVariableDeclaration(!0)}),this.consumeSemicolon();break;default:throw this.createUnexpected(this.lookahead)}return this.finishNode(h,c)}},{key:"parseModuleItem",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.IMPORT:return this.parseImportDeclaration();case _tokenizer.TokenType.EXPORT:return this.parseExportDeclaration();default:return this.parseStatementListItem()}}},{key:"lookaheadLexicalDeclaration",value:function(){if(this.match(_tokenizer.TokenType.LET)||this.match(_tokenizer.TokenType.CONST)){var a=this.saveLexerState();if(this.lex(),this.matchIdentifier()||this.match(_tokenizer.TokenType.LBRACE)||this.match(_tokenizer.TokenType.LBRACK))return this.restoreLexerState(a),!0;this.restoreLexerState(a)}return!1}},{key:"parseStatementListItem",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.FUNCTION:return this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!1});case _tokenizer.TokenType.CLASS:return this.parseClass({isExpr:!1,inDefault:!1});case _tokenizer.TokenType.ASYNC:{var a=this.getLocation(),c=this.saveLexerState();return this.lex(),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!0,isAsync:!0,startState:a}):(this.restoreLexerState(c),this.parseStatement())}default:if(this.lookaheadLexicalDeclaration()){var h=this.startNode();return this.finishNode(this.parseVariableDeclarationStatement(),h)}return this.parseStatement()}}},{key:"parseStatement",value:function(){var a=this.startNode(),c=this.isolateCoverGrammar(this.parseStatementHelper);return this.finishNode(c,a)}},{key:"parseStatementHelper",value:function(){if(this.eof())throw this.createUnexpected(this.lookahead);switch(this.lookahead.type){case _tokenizer.TokenType.SEMICOLON:return this.parseEmptyStatement();case _tokenizer.TokenType.LBRACE:return this.parseBlockStatement();case _tokenizer.TokenType.LPAREN:return this.parseExpressionStatement();case _tokenizer.TokenType.BREAK:return this.parseBreakStatement();case _tokenizer.TokenType.CONTINUE:return this.parseContinueStatement();case _tokenizer.TokenType.DEBUGGER:return this.parseDebuggerStatement();case _tokenizer.TokenType.DO:return this.parseDoWhileStatement();case _tokenizer.TokenType.FOR:return this.parseForStatement();case _tokenizer.TokenType.IF:return this.parseIfStatement();case _tokenizer.TokenType.RETURN:return this.parseReturnStatement();case _tokenizer.TokenType.SWITCH:return this.parseSwitchStatement();case _tokenizer.TokenType.THROW:return this.parseThrowStatement();case _tokenizer.TokenType.TRY:return this.parseTryStatement();case _tokenizer.TokenType.VAR:return this.parseVariableDeclarationStatement();case _tokenizer.TokenType.WHILE:return this.parseWhileStatement();case _tokenizer.TokenType.WITH:return this.parseWithStatement();case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.CLASS:throw this.createUnexpected(this.lookahead);default:{var a=this.saveLexerState();if(this.eat(_tokenizer.TokenType.LET)){if(this.match(_tokenizer.TokenType.LBRACK))throw this.restoreLexerState(a),this.createUnexpected(this.lookahead);this.restoreLexerState(a)}else if(this.eat(_tokenizer.TokenType.ASYNC)){if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION))throw this.createUnexpected(this.lookahead);this.restoreLexerState(a)}var c=this.parseExpression();if(c.type==="IdentifierExpression"&&this.eat(_tokenizer.TokenType.COLON)){var h=this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement();return new AST.LabeledStatement({label:c.name,body:h})}return this.consumeSemicolon(),new AST.ExpressionStatement({expression:c})}}}},{key:"parseEmptyStatement",value:function(){return this.lex(),new AST.EmptyStatement}},{key:"parseBlockStatement",value:function(){return new AST.BlockStatement({block:this.parseBlock()})}},{key:"parseExpressionStatement",value:function(){var a=this.parseExpression();return this.consumeSemicolon(),new AST.ExpressionStatement({expression:a})}},{key:"parseBreakStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.BreakStatement({label:null});var a=null;return this.matchIdentifier()&&(a=this.parseIdentifier()),this.consumeSemicolon(),new AST.BreakStatement({label:a})}},{key:"parseContinueStatement",value:function(){if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ContinueStatement({label:null});var a=null;return this.matchIdentifier()&&(a=this.parseIdentifier()),this.consumeSemicolon(),new AST.ContinueStatement({label:a})}},{key:"parseDebuggerStatement",value:function(){return this.lex(),this.consumeSemicolon(),new AST.DebuggerStatement}},{key:"parseDoWhileStatement",value:function(){this.lex();var a=this.parseStatement();this.expect(_tokenizer.TokenType.WHILE),this.expect(_tokenizer.TokenType.LPAREN);var c=this.parseExpression();return this.expect(_tokenizer.TokenType.RPAREN),this.eat(_tokenizer.TokenType.SEMICOLON),new AST.DoWhileStatement({body:a,test:c})}},{key:"parseForStatement",value:function(){this.lex();var a=this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT);this.expect(_tokenizer.TokenType.LPAREN);var c=null,h=null;if(a&&this.match(_tokenizer.TokenType.SEMICOLON))throw this.createUnexpected(this.lookahead);if(this.eat(_tokenizer.TokenType.SEMICOLON))return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(h=this.parseExpression()),new AST.ForStatement({init:null,test:c,update:h,body:this.getIteratorStatementEpilogue()});var d=this.match(_tokenizer.TokenType.LET),g=this.lookaheadLexicalDeclaration(),_=this.startNode();if(this.match(_tokenizer.TokenType.VAR)||g){var b=this.allowIn;this.allowIn=!1;var $=this.parseVariableDeclaration(!1);if(this.allowIn=b,$.declarators.length===1&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){var j=void 0,_e=$.declarators[0];if(this.match(_tokenizer.TokenType.IN)){if(a)throw this.createUnexpected(this.lookahead);if(_e.init!==null&&(this.strict||$.kind!=="var"||_e.binding.type!=="BindingIdentifier"))throw this.createError(_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_IN);j=AST.ForInStatement,this.lex(),h=this.parseExpression()}else{if(_e.init!==null)throw this.createError(a?_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_VAR_INIT_FOR_OF);a?j=AST.ForAwaitStatement:j=AST.ForOfStatement,this.lex(),h=this.parseAssignmentExpression()}var et=this.getIteratorStatementEpilogue();return new j({left:$,right:h,body:et})}else if(a)throw this.createUnexpected(this.lookahead);if(this.expect(_tokenizer.TokenType.SEMICOLON),$.declarators.some(function(it){return it.binding.type!=="BindingIdentifier"&&it.init===null}))throw this.createError(_errors$1.ErrorMessages.UNINITIALIZED_BINDINGPATTERN_IN_FOR_INIT);return this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(h=this.parseExpression()),new AST.ForStatement({init:$,test:c,update:h,body:this.getIteratorStatementEpilogue()})}var tt=this.allowIn;this.allowIn=!1;var nt=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(this.allowIn=tt,this.isAssignmentTarget&&nt.type!=="AssignmentExpression"&&(this.match(_tokenizer.TokenType.IN)||this.matchContextualKeyword("of"))){if((nt.type==="ObjectAssignmentTarget"||nt.type==="ArrayAssignmentTarget")&&(this.firstExprError=null),d&&this.matchContextualKeyword("of"))throw this.createError(a?_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT:_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);var st=void 0;if(this.match(_tokenizer.TokenType.IN)){if(a)throw this.createUnexpected(this.lookahead);st=AST.ForInStatement,this.lex(),h=this.parseExpression()}else a?st=AST.ForAwaitStatement:st=AST.ForOfStatement,this.lex(),h=this.parseAssignmentExpression();return new st({left:this.transformDestructuring(nt),right:h,body:this.getIteratorStatementEpilogue()})}else if(a)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_AWAIT);if(this.firstExprError)throw this.firstExprError;for(;this.eat(_tokenizer.TokenType.COMMA);){var rt=this.parseAssignmentExpression();nt=this.finishNode(new AST.BinaryExpression({left:nt,operator:",",right:rt}),_)}if(this.match(_tokenizer.TokenType.IN))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_IN);if(this.matchContextualKeyword("of"))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_FOR_OF);return this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.SEMICOLON)||(c=this.parseExpression()),this.expect(_tokenizer.TokenType.SEMICOLON),this.match(_tokenizer.TokenType.RPAREN)||(h=this.parseExpression()),new AST.ForStatement({init:nt,test:c,update:h,body:this.getIteratorStatementEpilogue()})}},{key:"getIteratorStatementEpilogue",value:function(){this.expect(_tokenizer.TokenType.RPAREN);var a=this.parseStatement();return a}},{key:"parseIfStatementChild",value:function(){return this.match(_tokenizer.TokenType.FUNCTION)?this.parseFunction({isExpr:!1,inDefault:!1,allowGenerator:!1,isAsync:!1}):this.parseStatement()}},{key:"parseIfStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseIfStatementChild(),h=null;return this.eat(_tokenizer.TokenType.ELSE)&&(h=this.parseIfStatementChild()),new AST.IfStatement({test:a,consequent:c,alternate:h})}},{key:"parseReturnStatement",value:function(){if(!this.inFunctionBody)throw this.createError(_errors$1.ErrorMessages.ILLEGAL_RETURN);if(this.lex(),this.eat(_tokenizer.TokenType.SEMICOLON)||this.hasLineTerminatorBeforeNext)return new AST.ReturnStatement({expression:null});var a=null;return!this.match(_tokenizer.TokenType.RBRACE)&&!this.eof()&&(a=this.parseExpression()),this.consumeSemicolon(),new AST.ReturnStatement({expression:a})}},{key:"parseSwitchStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();if(this.expect(_tokenizer.TokenType.RPAREN),this.expect(_tokenizer.TokenType.LBRACE),this.eat(_tokenizer.TokenType.RBRACE))return new AST.SwitchStatement({discriminant:a,cases:[]});var c=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT)){var h=this.parseSwitchDefault(),d=this.parseSwitchCases();if(this.match(_tokenizer.TokenType.DEFAULT))throw this.createError(_errors$1.ErrorMessages.MULTIPLE_DEFAULTS_IN_SWITCH);return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatementWithDefault({discriminant:a,preDefaultCases:c,defaultCase:h,postDefaultCases:d})}return this.expect(_tokenizer.TokenType.RBRACE),new AST.SwitchStatement({discriminant:a,cases:c})}},{key:"parseSwitchCases",value:function(){for(var a=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT));)a.push(this.parseSwitchCase());return a}},{key:"parseSwitchCase",value:function(){var a=this.startNode();return this.expect(_tokenizer.TokenType.CASE),this.finishNode(new AST.SwitchCase({test:this.parseExpression(),consequent:this.parseSwitchCaseBody()}),a)}},{key:"parseSwitchDefault",value:function(){var a=this.startNode();return this.expect(_tokenizer.TokenType.DEFAULT),this.finishNode(new AST.SwitchDefault({consequent:this.parseSwitchCaseBody()}),a)}},{key:"parseSwitchCaseBody",value:function(){return this.expect(_tokenizer.TokenType.COLON),this.parseStatementListInSwitchCaseBody()}},{key:"parseStatementListInSwitchCaseBody",value:function(){for(var a=[];!(this.eof()||this.match(_tokenizer.TokenType.RBRACE)||this.match(_tokenizer.TokenType.DEFAULT)||this.match(_tokenizer.TokenType.CASE));)a.push(this.parseStatementListItem());return a}},{key:"parseThrowStatement",value:function(){var a=this.lex();if(this.hasLineTerminatorBeforeNext)throw this.createErrorWithLocation(a,_errors$1.ErrorMessages.NEWLINE_AFTER_THROW);var c=this.parseExpression();return this.consumeSemicolon(),new AST.ThrowStatement({expression:c})}},{key:"parseTryStatement",value:function(){this.lex();var a=this.parseBlock();if(this.match(_tokenizer.TokenType.CATCH)){var c=this.parseCatchClause();if(this.eat(_tokenizer.TokenType.FINALLY)){var h=this.parseBlock();return new AST.TryFinallyStatement({body:a,catchClause:c,finalizer:h})}return new AST.TryCatchStatement({body:a,catchClause:c})}if(this.eat(_tokenizer.TokenType.FINALLY)){var d=this.parseBlock();return new AST.TryFinallyStatement({body:a,catchClause:null,finalizer:d})}throw this.createError(_errors$1.ErrorMessages.NO_CATCH_OR_FINALLY)}},{key:"parseVariableDeclarationStatement",value:function(){var a=this.parseVariableDeclaration(!0);return this.consumeSemicolon(),new AST.VariableDeclarationStatement({declaration:a})}},{key:"parseWhileStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression(),c=this.getIteratorStatementEpilogue();return new AST.WhileStatement({test:a,body:c})}},{key:"parseWithStatement",value:function(){this.lex(),this.expect(_tokenizer.TokenType.LPAREN);var a=this.parseExpression();this.expect(_tokenizer.TokenType.RPAREN);var c=this.parseStatement();return new AST.WithStatement({object:a,body:c})}},{key:"parseCatchClause",value:function(){var a=this.startNode();if(this.lex(),this.expect(_tokenizer.TokenType.LPAREN),this.match(_tokenizer.TokenType.RPAREN)||this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var c=this.parseBindingTarget();this.expect(_tokenizer.TokenType.RPAREN);var h=this.parseBlock();return this.finishNode(new AST.CatchClause({binding:c,body:h}),a)}},{key:"parseBlock",value:function(){var a=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);for(var c=[];!this.match(_tokenizer.TokenType.RBRACE);)c.push(this.parseStatementListItem());return this.expect(_tokenizer.TokenType.RBRACE),this.finishNode(new AST.Block({statements:c}),a)}},{key:"parseVariableDeclaration",value:function(a){var c=this.startNode(),h=this.lex(),d=h.type===_tokenizer.TokenType.VAR?"var":h.type===_tokenizer.TokenType.CONST?"const":"let",g=this.parseVariableDeclaratorList(a);return this.finishNode(new AST.VariableDeclaration({kind:d,declarators:g}),c)}},{key:"parseVariableDeclaratorList",value:function(a){var c=[];do c.push(this.parseVariableDeclarator(a));while(this.eat(_tokenizer.TokenType.COMMA));return c}},{key:"parseVariableDeclarator",value:function(a){var c=this.startNode();if(this.match(_tokenizer.TokenType.LPAREN))throw this.createUnexpected(this.lookahead);var h=this.allowIn;this.allowIn=!0;var d=this.parseBindingTarget();this.allowIn=h,a&&d.type!=="BindingIdentifier"&&!this.match(_tokenizer.TokenType.ASSIGN)&&this.expect(_tokenizer.TokenType.ASSIGN);var g=null;return this.eat(_tokenizer.TokenType.ASSIGN)&&(g=this.parseAssignmentExpression()),this.finishNode(new AST.VariableDeclarator({binding:d,init:g}),c)}},{key:"isolateCoverGrammar",value:function(a){var c=this.isBindingElement,h=this.isAssignmentTarget,d=this.firstExprError,g=void 0;if(this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,g=a.call(this),this.firstExprError!==null)throw this.firstExprError;return this.isBindingElement=c,this.isAssignmentTarget=h,this.firstExprError=d,g}},{key:"inheritCoverGrammar",value:function(a){var c=this.isBindingElement,h=this.isAssignmentTarget,d=this.firstExprError,g=void 0;return this.isBindingElement=this.isAssignmentTarget=!0,this.firstExprError=null,g=a.call(this),this.isBindingElement=this.isBindingElement&&c,this.isAssignmentTarget=this.isAssignmentTarget&&h,this.firstExprError=d||this.firstExprError,g}},{key:"parseExpression",value:function(){var a=this.startNode(),c=this.parseAssignmentExpression();if(this.match(_tokenizer.TokenType.COMMA))for(;!this.eof()&&this.match(_tokenizer.TokenType.COMMA);){this.lex();var h=this.parseAssignmentExpression();c=this.finishNode(new AST.BinaryExpression({left:c,operator:",",right:h}),a)}return c}},{key:"finishArrowParams",value:function(a){var c=a.params,h=c===void 0?null:c,d=a.rest,g=d===void 0?null:d;if(a.type!==ARROW_EXPRESSION_PARAMS)if(a.type==="IdentifierExpression")h=[this.targetToBinding(this.transformDestructuring(a))];else throw this.createUnexpected(this.lookahead);return this.copyNode(a,new AST.FormalParameters({items:h,rest:g}))}},{key:"parseArrowExpressionTail",value:function(a,c,h){this.expect(_tokenizer.TokenType.ARROW);var d=this.allowYieldExpression,g=this.allowAwaitExpression,_=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=c,this.firstAwaitLocation=null;var b=void 0;if(this.match(_tokenizer.TokenType.LBRACE)){var $=this.allowIn;this.allowIn=!0,b=this.parseFunctionBody(),this.allowIn=$}else b=this.parseAssignmentExpression();return this.allowYieldExpression=d,this.allowAwaitExpression=g,this.firstAwaitLocation=_,this.finishNode(new AST.ArrowExpression({isAsync:c,params:a,body:b}),h)}},{key:"parseAssignmentExpression",value:function(){return this.isolateCoverGrammar(this.parseAssignmentExpressionOrTarget)}},{key:"parseAssignmentExpressionOrTarget",value:function(){var a=this.startNode();if(this.allowYieldExpression&&this.match(_tokenizer.TokenType.YIELD))return this.isBindingElement=this.isAssignmentTarget=!1,this.parseYieldExpression();var c=this.parseConditionalExpression();if(!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){this.isBindingElement=this.isAssignmentTarget=!1,this.firstExprError=null;var h=c.type===ARROW_EXPRESSION_PARAMS&&c.isAsync;return this.parseArrowExpressionTail(this.finishArrowParams(c),h,a)}var d=!1,g=this.lookahead;switch(g.type){case _tokenizer.TokenType.ASSIGN_BIT_OR:case _tokenizer.TokenType.ASSIGN_BIT_XOR:case _tokenizer.TokenType.ASSIGN_BIT_AND:case _tokenizer.TokenType.ASSIGN_SHL:case _tokenizer.TokenType.ASSIGN_SHR:case _tokenizer.TokenType.ASSIGN_SHR_UNSIGNED:case _tokenizer.TokenType.ASSIGN_ADD:case _tokenizer.TokenType.ASSIGN_SUB:case _tokenizer.TokenType.ASSIGN_MUL:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.ASSIGN_MOD:case _tokenizer.TokenType.ASSIGN_EXP:d=!0;break}if(d){if(!this.isAssignmentTarget||!isValidSimpleAssignmentTarget(c))throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else if(g.type===_tokenizer.TokenType.ASSIGN){if(!this.isAssignmentTarget)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_ASSIGNMENT);c=this.transformDestructuring(c)}else return c;this.lex();var _=this.parseAssignmentExpression();this.firstExprError=null;var b=void 0;return g.type===_tokenizer.TokenType.ASSIGN?b=new AST.AssignmentExpression({binding:c,expression:_}):(b=new AST.CompoundAssignmentExpression({binding:c,operator:g.type.name,expression:_}),this.isBindingElement=this.isAssignmentTarget=!1),this.finishNode(b,a)}},{key:"targetToBinding",value:function(a){var c=this;if(a===null)return null;switch(a.type){case"AssignmentTargetIdentifier":return this.copyNode(a,new AST.BindingIdentifier({name:a.name}));case"ArrayAssignmentTarget":return this.copyNode(a,new AST.ArrayBinding({elements:a.elements.map(function(h){return c.targetToBinding(h)}),rest:this.targetToBinding(a.rest)}));case"ObjectAssignmentTarget":return this.copyNode(a,new AST.ObjectBinding({properties:a.properties.map(function(h){return c.targetToBinding(h)}),rest:this.targetToBinding(a.rest)}));case"AssignmentTargetPropertyIdentifier":return this.copyNode(a,new AST.BindingPropertyIdentifier({binding:this.targetToBinding(a.binding),init:a.init}));case"AssignmentTargetPropertyProperty":return this.copyNode(a,new AST.BindingPropertyProperty({name:a.name,binding:this.targetToBinding(a.binding)}));case"AssignmentTargetWithDefault":return this.copyNode(a,new AST.BindingWithDefault({binding:this.targetToBinding(a.binding),init:a.init}))}throw new Error("Not reached")}},{key:"transformDestructuring",value:function(a){var c=this;switch(a.type){case"DataProperty":return this.copyNode(a,new AST.AssignmentTargetPropertyProperty({name:a.name,binding:this.transformDestructuringWithDefault(a.expression)}));case"ShorthandProperty":return this.copyNode(a,new AST.AssignmentTargetPropertyIdentifier({binding:this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.name.name})),init:null}));case"ObjectExpression":{var h=a.properties.length>0?a.properties[a.properties.length-1]:void 0;return h!=null&&h.type==="SpreadProperty"?this.copyNode(a,new AST.ObjectAssignmentTarget({properties:a.properties.slice(0,-1).map(function(g){return g&&c.transformDestructuringWithDefault(g)}),rest:this.transformDestructuring(h.expression)})):this.copyNode(a,new AST.ObjectAssignmentTarget({properties:a.properties.map(function(g){return g&&c.transformDestructuringWithDefault(g)}),rest:null}))}case"ArrayExpression":{var d=a.elements[a.elements.length-1];return d!=null&&d.type==="SpreadElement"?this.copyNode(a,new AST.ArrayAssignmentTarget({elements:a.elements.slice(0,-1).map(function(g){return g&&c.transformDestructuringWithDefault(g)}),rest:this.copyNode(d.expression,this.transformDestructuring(d.expression))})):this.copyNode(a,new AST.ArrayAssignmentTarget({elements:a.elements.map(function(g){return g&&c.transformDestructuringWithDefault(g)}),rest:null}))}case"IdentifierExpression":return this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.name}));case"StaticPropertyName":return this.copyNode(a,new AST.AssignmentTargetIdentifier({name:a.value}));case"ComputedMemberExpression":return this.copyNode(a,new AST.ComputedMemberAssignmentTarget({object:a.object,expression:a.expression}));case"StaticMemberExpression":return this.copyNode(a,new AST.StaticMemberAssignmentTarget({object:a.object,property:a.property}));case"ArrayAssignmentTarget":case"ObjectAssignmentTarget":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":case"AssignmentTargetIdentifier":case"AssignmentTargetPropertyIdentifier":case"AssignmentTargetPropertyProperty":case"AssignmentTargetWithDefault":return a}throw new Error("Not reached")}},{key:"transformDestructuringWithDefault",value:function(a){switch(a.type){case"AssignmentExpression":return this.copyNode(a,new AST.AssignmentTargetWithDefault({binding:this.transformDestructuring(a.binding),init:a.expression}))}return this.transformDestructuring(a)}},{key:"lookaheadAssignmentExpression",value:function(){if(this.matchIdentifier())return!0;switch(this.lookahead.type){case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.ASSIGN_DIV:case _tokenizer.TokenType.BIT_NOT:case _tokenizer.TokenType.CLASS:case _tokenizer.TokenType.DEC:case _tokenizer.TokenType.DELETE:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.FALSE:case _tokenizer.TokenType.FUNCTION:case _tokenizer.TokenType.INC:case _tokenizer.TokenType.LBRACE:case _tokenizer.TokenType.LBRACK:case _tokenizer.TokenType.LPAREN:case _tokenizer.TokenType.NEW:case _tokenizer.TokenType.NOT:case _tokenizer.TokenType.NULL:case _tokenizer.TokenType.NUMBER:case _tokenizer.TokenType.STRING:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.SUPER:case _tokenizer.TokenType.THIS:case _tokenizer.TokenType.TRUE:case _tokenizer.TokenType.TYPEOF:case _tokenizer.TokenType.VOID:case _tokenizer.TokenType.TEMPLATE:return!0}return!1}},{key:"parseYieldExpression",value:function(){var a=this.startNode();if(this.lex(),this.hasLineTerminatorBeforeNext)return this.finishNode(new AST.YieldExpression({expression:null}),a);var c=!!this.eat(_tokenizer.TokenType.MUL),h=null;(c||this.lookaheadAssignmentExpression())&&(h=this.parseAssignmentExpression());var d=c?AST.YieldGeneratorExpression:AST.YieldExpression;return this.finishNode(new d({expression:h}),a)}},{key:"parseConditionalExpression",value:function(){var a=this.startNode(),c=this.parseBinaryExpression();if(this.firstExprError)return c;if(this.eat(_tokenizer.TokenType.CONDITIONAL)){this.isBindingElement=this.isAssignmentTarget=!1;var h=this.allowIn;this.allowIn=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);this.allowIn=h,this.expect(_tokenizer.TokenType.COLON);var g=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finishNode(new AST.ConditionalExpression({test:c,consequent:d,alternate:g}),a)}return c}},{key:"isBinaryOperator",value:function(a){switch(a){case _tokenizer.TokenType.OR:case _tokenizer.TokenType.AND:case _tokenizer.TokenType.BIT_OR:case _tokenizer.TokenType.BIT_XOR:case _tokenizer.TokenType.BIT_AND:case _tokenizer.TokenType.EQ:case _tokenizer.TokenType.NE:case _tokenizer.TokenType.EQ_STRICT:case _tokenizer.TokenType.NE_STRICT:case _tokenizer.TokenType.LT:case _tokenizer.TokenType.GT:case _tokenizer.TokenType.LTE:case _tokenizer.TokenType.GTE:case _tokenizer.TokenType.INSTANCEOF:case _tokenizer.TokenType.SHL:case _tokenizer.TokenType.SHR:case _tokenizer.TokenType.SHR_UNSIGNED:case _tokenizer.TokenType.ADD:case _tokenizer.TokenType.SUB:case _tokenizer.TokenType.MUL:case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.MOD:return!0;case _tokenizer.TokenType.IN:return this.allowIn;default:return!1}}},{key:"parseBinaryExpression",value:function(){var a=this,c=this.startNode(),h=this.parseExponentiationExpression();if(this.firstExprError)return h;var d=this.lookahead.type;if(!this.isBinaryOperator(d))return h;this.isBindingElement=this.isAssignmentTarget=!1,this.lex();var g=[];g.push({startState:c,left:h,operator:d,precedence:BinaryPrecedence$1[d.name]}),c=this.startNode();var _=this.isolateCoverGrammar(this.parseExponentiationExpression);for(d=this.lookahead.type;this.isBinaryOperator(d);){for(var b=BinaryPrecedence$1[d.name];g.length&&b<=g[g.length-1].precedence;){var $=g[g.length-1],j=$.operator;h=$.left,g.pop(),c=$.startState,_=this.finishNode(new AST.BinaryExpression({left:h,operator:j.name,right:_}),c)}this.lex(),g.push({startState:c,left:_,operator:d,precedence:b}),c=this.startNode(),_=this.isolateCoverGrammar(this.parseExponentiationExpression),d=this.lookahead.type}return g.reduceRight(function(_e,et){return a.finishNode(new AST.BinaryExpression({left:et.left,operator:et.operator.name,right:_e}),et.startState)},_)}},{key:"parseExponentiationExpression",value:function(){var a=this.startNode(),c=this.lookahead.type===_tokenizer.TokenType.LPAREN,h=this.parseUnaryExpression();if(this.lookahead.type!==_tokenizer.TokenType.EXP)return h;if(h.type==="UnaryExpression"&&!c)throw this.createError(_errors$1.ErrorMessages.INVALID_EXPONENTIATION_LHS);this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var d=this.isolateCoverGrammar(this.parseExponentiationExpression);return this.finishNode(new AST.BinaryExpression({left:h,operator:"**",right:d}),a)}},{key:"parseUnaryExpression",value:function(){if(this.lookahead.type.klass!==_tokenizer.TokenClass.Punctuator&&this.lookahead.type.klass!==_tokenizer.TokenClass.Keyword)return this.parseUpdateExpression();var a=this.startNode();if(this.allowAwaitExpression&&this.eat(_tokenizer.TokenType.AWAIT)){this.isBindingElement=this.isAssignmentTarget=!1;var c=this.isolateCoverGrammar(this.parseUnaryExpression);return this.finishNode(new AST.AwaitExpression({expression:c}),a)}var h=this.lookahead;if(!isPrefixOperator(h))return this.parseUpdateExpression();this.lex(),this.isBindingElement=this.isAssignmentTarget=!1;var d=void 0;if(isUpdateOperator(h)){var g=this.getLocation(),_=this.isolateCoverGrammar(this.parseUnaryExpression);if(!isValidSimpleAssignmentTarget(_))throw this.createErrorWithLocation(g,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);_=this.transformDestructuring(_),d=new AST.UpdateExpression({isPrefix:!0,operator:h.value,operand:_})}else{var b=this.isolateCoverGrammar(this.parseUnaryExpression);d=new AST.UnaryExpression({operator:h.value,operand:b})}return this.finishNode(d,a)}},{key:"parseUpdateExpression",value:function(){var a=this.getLocation(),c=this.startNode(),h=this.parseLeftHandSideExpression({allowCall:!0});if(this.firstExprError||this.hasLineTerminatorBeforeNext)return h;var d=this.lookahead;if(!isUpdateOperator(d))return h;if(this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,!isValidSimpleAssignmentTarget(h))throw this.createErrorWithLocation(a,_errors$1.ErrorMessages.INVALID_UPDATE_OPERAND);return h=this.transformDestructuring(h),this.finishNode(new AST.UpdateExpression({isPrefix:!1,operator:d.value,operand:h}),c)}},{key:"parseLeftHandSideExpression",value:function(a){var c=this,h=a.allowCall,d=this.startNode(),g=this.allowIn;this.allowIn=!0;var _=void 0,b=this.lookahead;if(this.eat(_tokenizer.TokenType.SUPER))if(this.isBindingElement=!1,this.isAssignmentTarget=!1,_=this.finishNode(new AST.Super,d),this.match(_tokenizer.TokenType.LPAREN))if(h)_=this.finishNode(new AST.CallExpression({callee:_,arguments:this.parseArgumentList().args}),d);else throw this.createUnexpected(b);else if(this.match(_tokenizer.TokenType.LBRACK))_=this.finishNode(new AST.ComputedMemberExpression({object:_,expression:this.parseComputedMember()}),d),this.isAssignmentTarget=!0;else if(this.match(_tokenizer.TokenType.PERIOD))_=this.finishNode(new AST.StaticMemberExpression({object:_,property:this.parseStaticMember()}),d),this.isAssignmentTarget=!0;else throw this.createUnexpected(b);else if(this.match(_tokenizer.TokenType.NEW))this.isBindingElement=this.isAssignmentTarget=!1,_=this.parseNewExpression();else if(this.match(_tokenizer.TokenType.ASYNC)){if(_=this.parsePrimaryExpression(),_.type==="IdentifierExpression"&&h&&!this.hasLineTerminatorBeforeNext){if(this.matchIdentifier()){var $=this.startNode(),j=this.allowAwaitExpression;this.allowAwaitExpression=!0;var _e=this.parseBindingIdentifier();return this.allowAwaitExpression=j,this.ensureArrow(),this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[_e],rest:null,isAsync:!0},$)}if(this.match(_tokenizer.TokenType.LPAREN)){var et=this.startNode(),tt=this.firstAwaitLocation;this.firstAwaitLocation=null;var nt=this.parseArgumentList(),st=nt.args,rt=nt.locationFollowingFirstSpread;if(this.isBindingElement&&!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){if(rt!==null)throw this.createErrorWithLocation(rt,_errors$1.ErrorMessages.UNEXPECTED_TOKEN(","));if(this.firstAwaitLocation!==null)throw this.createErrorWithLocation(this.firstAwaitLocation,_errors$1.ErrorMessages.NO_AWAIT_IN_ASYNC_PARAMS);var it=null;if(st.length>0&&st[st.length-1].type==="SpreadElement"){if(it=this.targetToBinding(this.transformDestructuringWithDefault(st[st.length-1].expression)),it.init!=null)throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);st=st.slice(0,-1)}var at=st.map(function(ot){return c.targetToBinding(c.transformDestructuringWithDefault(ot))});return this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:at,rest:it,isAsync:!0},et)}this.firstAwaitLocation=tt||this.firstAwaitLocation,this.isBindingElement=this.isAssignmentTarget=!1,_=this.finishNode(new AST.CallExpression({callee:_,arguments:st}),d)}}}else if(_=this.parsePrimaryExpression(),this.firstExprError)return _;for(;;)if(h&&this.match(_tokenizer.TokenType.LPAREN))this.isBindingElement=this.isAssignmentTarget=!1,_=this.finishNode(new AST.CallExpression({callee:_,arguments:this.parseArgumentList().args}),d);else if(this.match(_tokenizer.TokenType.LBRACK))this.isBindingElement=!1,this.isAssignmentTarget=!0,_=this.finishNode(new AST.ComputedMemberExpression({object:_,expression:this.parseComputedMember()}),d);else if(this.match(_tokenizer.TokenType.PERIOD))this.isBindingElement=!1,this.isAssignmentTarget=!0,_=this.finishNode(new AST.StaticMemberExpression({object:_,property:this.parseStaticMember()}),d);else if(this.match(_tokenizer.TokenType.TEMPLATE))this.isBindingElement=this.isAssignmentTarget=!1,_=this.finishNode(new AST.TemplateExpression({tag:_,elements:this.parseTemplateElements()}),d);else break;return this.allowIn=g,_}},{key:"parseTemplateElements",value:function(){var a=this.startNode(),c=this.lookahead;if(c.tail)return this.lex(),[this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),a)];for(var h=[this.finishNode(new AST.TemplateElement({rawValue:this.lex().slice.text.slice(1,-2)}),a)];;){if(h.push(this.parseExpression()),!this.match(_tokenizer.TokenType.RBRACE))throw this.createILLEGAL();if(this.index=this.startIndex,this.line=this.startLine,this.lineStart=this.startLineStart,this.lookahead=this.scanTemplateElement(),a=this.startNode(),c=this.lex(),c.tail)return h.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-1)}),a)),h;h.push(this.finishNode(new AST.TemplateElement({rawValue:c.slice.text.slice(1,-2)}),a))}}},{key:"parseStaticMember",value:function(){if(this.lex(),this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseComputedMember",value:function(){this.lex();var a=this.parseExpression();return this.expect(_tokenizer.TokenType.RBRACK),a}},{key:"parseNewExpression",value:function(){var a=this,c=this.startNode();if(this.lex(),this.eat(_tokenizer.TokenType.PERIOD))return this.expectContextualKeyword("target"),this.finishNode(new AST.NewTargetExpression,c);var h=this.isolateCoverGrammar(function(){return a.parseLeftHandSideExpression({allowCall:!1})});return this.finishNode(new AST.NewExpression({callee:h,arguments:this.match(_tokenizer.TokenType.LPAREN)?this.parseArgumentList().args:[]}),c)}},{key:"parseRegexFlags",value:function(a){for(var c=!1,h=!1,d=!1,g=!1,_=!1,b=!1,$=0;$1?e-1:0),a=1;a1&&c.slice(1).forEach(function(h){a.addError(s(h))})}),this}},{key:"enforceConflictingLexicallyDeclaredNames",value:function(s,a){var c=this;return this.lexicallyDeclaredNames.forEachEntry(function(h,d){s.has(d)&&h.forEach(function(g){c.addError(a(g))})}),this}},{key:"observeFunctionDeclaration",value:function(){return this.observeVarBoundary(),addEach(this.functionDeclarationNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"functionDeclarationNamesAreLexical",value:function(){return addEach(this.lexicallyDeclaredNames,this.functionDeclarationNames),this.functionDeclarationNames=new _multimap2.default,this}},{key:"observeVarDeclaration",value:function(){return addEach(this.varDeclaredNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"recordForOfVars",value:function(){var s=this;return this.varDeclaredNames.forEach(function(a){s.forOfVarDeclaredNames.push(a)}),this}},{key:"observeVarBoundary",value:function(){return this.lexicallyDeclaredNames=new _multimap2.default,this.functionDeclarationNames=new _multimap2.default,this.varDeclaredNames=new _multimap2.default,this.forOfVarDeclaredNames=[],this}},{key:"exportName",value:function(s,a){return this.exportedNames.set(s,a),this}},{key:"exportDeclaredNames",value:function(){return addEach(this.exportedNames,this.lexicallyDeclaredNames,this.varDeclaredNames),addEach(this.exportedBindings,this.lexicallyDeclaredNames,this.varDeclaredNames),this}},{key:"exportBinding",value:function(s,a){return this.exportedBindings.set(s,a),this}},{key:"clearExportedBindings",value:function(){return this.exportedBindings=new _multimap2.default,this}},{key:"observeYieldExpression",value:function(s){return this.yieldExpressions.push(s),this}},{key:"clearYieldExpressions",value:function(){return this.yieldExpressions=[],this}},{key:"observeAwaitExpression",value:function(s){return this.awaitExpressions.push(s),this}},{key:"clearAwaitExpressions",value:function(){return this.awaitExpressions=[],this}},{key:"addError",value:function(s){return this.errors.push(s),this}},{key:"addStrictError",value:function(s){return this.strictErrors.push(s),this}},{key:"enforceStrictErrors",value:function(){return[].push.apply(this.errors,this.strictErrors),this.strictErrors=[],this}},{key:"concat",value:function(s){return this===identity?s:s===identity?this:([].push.apply(this.errors,s.errors),[].push.apply(this.strictErrors,s.strictErrors),[].push.apply(this.usedLabelNames,s.usedLabelNames),[].push.apply(this.freeBreakStatements,s.freeBreakStatements),[].push.apply(this.freeContinueStatements,s.freeContinueStatements),[].push.apply(this.freeLabeledBreakStatements,s.freeLabeledBreakStatements),[].push.apply(this.freeLabeledContinueStatements,s.freeLabeledContinueStatements),[].push.apply(this.newTargetExpressions,s.newTargetExpressions),addEach(this.boundNames,s.boundNames),addEach(this.lexicallyDeclaredNames,s.lexicallyDeclaredNames),addEach(this.functionDeclarationNames,s.functionDeclarationNames),addEach(this.varDeclaredNames,s.varDeclaredNames),[].push.apply(this.forOfVarDeclaredNames,s.forOfVarDeclaredNames),addEach(this.exportedNames,s.exportedNames),addEach(this.exportedBindings,s.exportedBindings),[].push.apply(this.superCallExpressions,s.superCallExpressions),[].push.apply(this.superCallExpressionsInConstructorMethod,s.superCallExpressionsInConstructorMethod),[].push.apply(this.superPropertyExpressions,s.superPropertyExpressions),[].push.apply(this.yieldExpressions,s.yieldExpressions),[].push.apply(this.awaitExpressions,s.awaitExpressions),this)}}],[{key:"empty",value:function(){return identity}}]),o}();identity=new EarlyErrorState;Object.getOwnPropertyNames(EarlyErrorState.prototype).forEach(function(o){o!=="constructor"&&Object.defineProperty(identity,o,{value:function(){return EarlyErrorState.prototype[o].apply(new EarlyErrorState,arguments)},enumerable:!1,writable:!0,configurable:!0})});earlyErrorState.EarlyError=function(o){_inherits$4(e,o);function e(s,a){_classCallCheck$7(this,e);var c=_possibleConstructorReturn$4(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a));return c.node=s,c.message=a,c}return e}(Error);Object.defineProperty(earlyErrors,"__esModule",{value:!0});earlyErrors.EarlyErrorChecker=void 0;var _createClass$5=function(){function o(e,s){for(var a=0;a1&&s.slice(1).forEach(function(a){e=e.addError(new _earlyErrorState.EarlyError(a,"Duplicate constructor method in class"))}),e}var SUPERCALL_ERROR=function(e){return new _earlyErrorState.EarlyError(e,_errors.ErrorMessages.ILLEGAL_SUPER_CALL)},SUPERPROPERTY_ERROR=function(e){return new _earlyErrorState.EarlyError(e,"Member access on super must be in a method")},DUPLICATE_BINDING=function(e){return new _earlyErrorState.EarlyError(e,"Duplicate binding "+JSON.stringify(e.name))},FREE_CONTINUE=function(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement")},UNBOUND_CONTINUE=function(e){return new _earlyErrorState.EarlyError(e,"Continue statement must be nested within an iteration statement with label "+JSON.stringify(e.label))},FREE_BREAK=function(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within an iteration statement or a switch statement")},UNBOUND_BREAK=function(e){return new _earlyErrorState.EarlyError(e,"Break statement must be nested within a statement with label "+JSON.stringify(e.label))};earlyErrors.EarlyErrorChecker=function(o){_inherits$3(e,o);function e(){return _classCallCheck$6(this,e),_possibleConstructorReturn$3(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,_earlyErrorState.EarlyErrorState))}return _createClass$5(e,[{key:"reduceAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceAssignmentTargetIdentifier",value:function(a){var c=this.identity;return(a.name==="eval"||a.name==="arguments"||(0,_utils.isStrictModeReservedWord)(a.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in binding position in strict mode"))),c}},{key:"reduceArrowExpression",value:function(a,c){var h=c.params,d=c.body,g=a.params.rest==null&&a.params.items.every(function(b){return b.type==="BindingIdentifier"});h=h.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a.body.type==="FunctionBody"&&(d=d.enforceConflictingLexicallyDeclaredNames(h.lexicallyDeclaredNames,DUPLICATE_BINDING),isStrictFunctionBody(a.body)&&(h=h.enforceStrictErrors(),d=d.enforceStrictErrors())),h.yieldExpressions.forEach(function(b){h=h.addError(new _earlyErrorState.EarlyError(b,"Arrow parameters must not contain yield expressions"))}),h.awaitExpressions.forEach(function(b){h=h.addError(new _earlyErrorState.EarlyError(b,"Arrow parameters must not contain await expressions"))});var _=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceArrowExpression",this).call(this,a,{params:h,body:d});return!g&&a.body.type==="FunctionBody"&&isStrictFunctionBody(a.body)&&(_=_.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),_=_.clearYieldExpressions(),_=_.clearAwaitExpressions(),_=_.observeVarBoundary(),_}},{key:"reduceAwaitExpression",value:function(a,c){var h=c.expression;return h.observeAwaitExpression(a)}},{key:"reduceBindingIdentifier",value:function(a){var c=this.identity;return(a.name==="eval"||a.name==="arguments"||(0,_utils.isStrictModeReservedWord)(a.name))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in binding position in strict mode"))),c=c.bindName(a.name,a),c}},{key:"reduceBlock",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBlock",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a=a.enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,DUPLICATE_BINDING),a=a.observeLexicalBoundary(),a}},{key:"reduceBreakStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceBreakStatement",this).apply(this,arguments);return c=a.label==null?c.addFreeBreakStatement(a):c.addFreeLabeledBreakStatement(a),c}},{key:"reduceCallExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCallExpression",this).apply(this,arguments);return a.callee.type==="Super"&&(c=c.observeSuperCallExpression(a)),c}},{key:"reduceCatchClause",value:function(a,c){var h=c.binding,d=c.body;h=h.observeLexicalDeclaration(),h=h.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),h=h.enforceConflictingLexicallyDeclaredNames(d.previousLexicallyDeclaredNames,DUPLICATE_BINDING),h.lexicallyDeclaredNames.forEachEntry(function(_,b){d.varDeclaredNames.has(b)&&d.varDeclaredNames.get(b).forEach(function($){d.forOfVarDeclaredNames.indexOf($)>=0&&(h=h.addError(DUPLICATE_BINDING($)))})});var g=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCatchClause",this).call(this,a,{binding:h,body:d});return g=g.observeLexicalBoundary(),g}},{key:"reduceClassDeclaration",value:function(a,c){var h=c.name,d=c.super,g=c.elements,_=h.enforceStrictErrors(),b=this.append.apply(this,_toConsumableArray$3(g));return b=b.enforceStrictErrors(),a.super!=null&&(d=d.enforceStrictErrors(),_=this.append(_,d),b=b.clearSuperCallExpressionsInConstructorMethod()),_=this.append(_,b),_=enforceDuplicateConstructorMethods(a,_),_=_.observeLexicalDeclaration(),_}},{key:"reduceClassElement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceClassElement",this).apply(this,arguments);return!a.isStatic&&isSpecialMethod(a.method)&&(c=c.addError(new _earlyErrorState.EarlyError(a,_errors.ErrorMessages.ILLEGAL_CONSTRUCTORS))),a.isStatic&&a.method.name.type==="StaticPropertyName"&&a.method.name.value==="prototype"&&(c=c.addError(new _earlyErrorState.EarlyError(a,'Static class methods cannot be named "prototype"'))),c}},{key:"reduceClassExpression",value:function(a,c){var h=c.name,d=c.super,g=c.elements,_=a.name==null?this.identity:h.enforceStrictErrors(),b=this.append.apply(this,_toConsumableArray$3(g));return b=b.enforceStrictErrors(),a.super!=null&&(d=d.enforceStrictErrors(),_=this.append(_,d),b=b.clearSuperCallExpressionsInConstructorMethod()),_=this.append(_,b),_=enforceDuplicateConstructorMethods(a,_),_=_.clearBoundNames(),_}},{key:"reduceCompoundAssignmentExpression",value:function(){return _get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceCompoundAssignmentExpression",this).apply(this,arguments).clearBoundNames()}},{key:"reduceComputedMemberExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceComputedMemberExpression",this).apply(this,arguments);return a.object.type==="Super"&&(c=c.observeSuperPropertyExpression(a)),c}},{key:"reduceContinueStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceContinueStatement",this).apply(this,arguments);return c=a.label==null?c.addFreeContinueStatement(a):c.addFreeLabeledContinueStatement(a),c}},{key:"reduceDoWhileStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceDoWhileStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a do-while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements(),c=c.clearFreeBreakStatements(),c}},{key:"reduceExport",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExport",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.exportDeclaredNames(),a}},{key:"reduceExportFrom",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFrom",this).apply(this,arguments);return a=a.clearExportedBindings(),a}},{key:"reduceExportFromSpecifier",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportFromSpecifier",this).apply(this,arguments);return c=c.exportName(a.exportedName||a.name,a),c=c.exportBinding(a.name,a),c}},{key:"reduceExportLocalSpecifier",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportLocalSpecifier",this).apply(this,arguments);return c=c.exportName(a.exportedName||a.name.name,a),c=c.exportBinding(a.name.name,a),c}},{key:"reduceExportDefault",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceExportDefault",this).apply(this,arguments);return c=c.functionDeclarationNamesAreLexical(),c=c.exportName("default",a),c}},{key:"reduceFormalParameters",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFormalParameters",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceForStatement",value:function(a,c){var h=c.init,d=c.test,g=c.update,_=c.body;h!=null&&(h=h.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),h=h.enforceConflictingLexicallyDeclaredNames(_.varDeclaredNames,DUPLICATE_BINDING));var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForStatement",this).call(this,a,{init:h,test:d,update:g,body:_});return a.init!=null&&a.init.type==="VariableDeclaration"&&a.init.kind==="const"&&a.init.declarators.forEach(function($){$.init==null&&(b=b.addError(new _earlyErrorState.EarlyError($,"Constant lexical declarations must have an initialiser")))}),isLabelledFunction(a.body)&&(b=b.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for statement must not be a labeled function declaration"))),b=b.clearFreeContinueStatements(),b=b.clearFreeBreakStatements(),b=b.observeLexicalBoundary(),b}},{key:"reduceForInStatement",value:function(a,c){var h=c.left,d=c.right,g=c.body;h=h.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),h=h.enforceConflictingLexicallyDeclaredNames(g.varDeclaredNames,DUPLICATE_BINDING);var _=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForInStatement",this).call(this,a,{left:h,right:d,body:g});return isLabelledFunction(a.body)&&(_=_.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-in statement must not be a labeled function declaration"))),_=_.clearFreeContinueStatements(),_=_.clearFreeBreakStatements(),_=_.observeLexicalBoundary(),_}},{key:"reduceForOfStatement",value:function(a,c){var h=c.left,d=c.right,g=c.body;h=h.recordForOfVars(),h=h.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),h=h.enforceConflictingLexicallyDeclaredNames(g.varDeclaredNames,DUPLICATE_BINDING);var _=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,a,{left:h,right:d,body:g});return isLabelledFunction(a.body)&&(_=_.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-of statement must not be a labeled function declaration"))),_=_.clearFreeContinueStatements(),_=_.clearFreeBreakStatements(),_=_.observeLexicalBoundary(),_}},{key:"reduceForAwaitStatement",value:function(a,c){var h=c.left,d=c.right,g=c.body;h=h.recordForOfVars(),h=h.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),h=h.enforceConflictingLexicallyDeclaredNames(g.varDeclaredNames,DUPLICATE_BINDING);var _=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceForOfStatement",this).call(this,a,{left:h,right:d,body:g});return isLabelledFunction(a.body)&&(_=_.addError(new _earlyErrorState.EarlyError(a.body,"The body of a for-await statement must not be a labeled function declaration"))),_=_.clearFreeContinueStatements(),_=_.clearFreeBreakStatements(),_=_.observeLexicalBoundary(),_}},{key:"reduceFunctionBody",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionBody",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.clearUsedLabelNames(),c=c.clearYieldExpressions(),c=c.clearAwaitExpressions(),isStrictFunctionBody(a)&&(c=c.enforceStrictErrors()),c}},{key:"reduceFunctionDeclaration",value:function(a,c){var h=c.name,d=c.params,g=c.body,_=a.params.rest==null&&a.params.items.every(function(j){return j.type==="BindingIdentifier"}),b=!_||a.isGenerator?"addError":"addStrictError";d.lexicallyDeclaredNames.forEachEntry(function(j){j.length>1&&j.slice(1).forEach(function(_e){d=d[b](DUPLICATE_BINDING(_e))})}),g=g.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),g=g.enforceSuperCallExpressions(SUPERCALL_ERROR),g=g.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),d=d.enforceSuperCallExpressions(SUPERCALL_ERROR),d=d.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a.isGenerator&&d.yieldExpressions.forEach(function(j){d=d.addError(new _earlyErrorState.EarlyError(j,"Generator parameters must not contain yield expressions"))}),a.isAsync&&d.awaitExpressions.forEach(function(j){d=d.addError(new _earlyErrorState.EarlyError(j,"Async function parameters must not contain await expressions"))}),d=d.clearNewTargetExpressions(),g=g.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(d=d.enforceStrictErrors(),g=g.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionDeclaration",this).call(this,a,{name:h,params:d,body:g});return!_&&isStrictFunctionBody(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.clearYieldExpressions(),$=$.clearAwaitExpressions(),$=$.observeFunctionDeclaration(),$}},{key:"reduceFunctionExpression",value:function(a,c){var h=c.name,d=c.params,g=c.body,_=a.params.rest==null&&a.params.items.every(function(j){return j.type==="BindingIdentifier"}),b=!_||a.isGenerator?"addError":"addStrictError";d.lexicallyDeclaredNames.forEachEntry(function(j,_e){j.length>1&&j.slice(1).forEach(function(et){d=d[b](new _earlyErrorState.EarlyError(et,"Duplicate binding "+JSON.stringify(_e)))})}),g=g.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),g=g.enforceSuperCallExpressions(SUPERCALL_ERROR),g=g.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),d=d.enforceSuperCallExpressions(SUPERCALL_ERROR),d=d.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a.isGenerator&&d.yieldExpressions.forEach(function(j){d=d.addError(new _earlyErrorState.EarlyError(j,"Generator parameters must not contain yield expressions"))}),a.isAsync&&d.awaitExpressions.forEach(function(j){d=d.addError(new _earlyErrorState.EarlyError(j,"Async function parameters must not contain await expressions"))}),d=d.clearNewTargetExpressions(),g=g.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(d=d.enforceStrictErrors(),g=g.enforceStrictErrors());var $=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceFunctionExpression",this).call(this,a,{name:h,params:d,body:g});return!_&&isStrictFunctionBody(a.body)&&($=$.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),$=$.clearBoundNames(),$=$.clearYieldExpressions(),$=$.clearAwaitExpressions(),$=$.observeVarBoundary(),$}},{key:"reduceGetter",value:function(a,c){var h=c.name,d=c.body;d=d.enforceSuperCallExpressions(SUPERCALL_ERROR),d=d.clearSuperPropertyExpressions(),d=d.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(d=d.enforceStrictErrors());var g=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceGetter",this).call(this,a,{name:h,body:d});return g=g.observeVarBoundary(),g}},{key:"reduceIdentifierExpression",value:function(a){var c=this.identity;return(0,_utils.isStrictModeReservedWord)(a.name)&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.name)+" must not be in expression position in strict mode"))),c}},{key:"reduceIfStatement",value:function(a,c){var h=c.test,d=c.consequent,g=c.alternate;return isLabelledFunction(a.consequent)&&(d=d.addError(new _earlyErrorState.EarlyError(a.consequent,"The consequent of an if statement must not be a labeled function declaration"))),a.alternate!=null&&isLabelledFunction(a.alternate)&&(g=g.addError(new _earlyErrorState.EarlyError(a.alternate,"The alternate of an if statement must not be a labeled function declaration"))),a.consequent.type==="FunctionDeclaration"&&(d=d.addStrictError(new _earlyErrorState.EarlyError(a.consequent,"FunctionDeclarations in IfStatements are disallowed in strict mode")),d=d.observeLexicalBoundary()),a.alternate!=null&&a.alternate.type==="FunctionDeclaration"&&(g=g.addStrictError(new _earlyErrorState.EarlyError(a.alternate,"FunctionDeclarations in IfStatements are disallowed in strict mode")),g=g.observeLexicalBoundary()),_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceIfStatement",this).call(this,a,{test:h,consequent:d,alternate:g})}},{key:"reduceImport",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImport",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceImportNamespace",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceImportNamespace",this).apply(this,arguments);return a=a.observeLexicalDeclaration(),a}},{key:"reduceLabeledStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceLabeledStatement",this).apply(this,arguments);return(a.label==="yield"||(0,_utils.isStrictModeReservedWord)(a.label))&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"The identifier "+JSON.stringify(a.label)+" must not be in label position in strict mode"))),c.usedLabelNames.indexOf(a.label)>=0&&(c=c.addError(new _earlyErrorState.EarlyError(a,"Label "+JSON.stringify(a.label)+" has already been declared"))),a.body.type==="FunctionDeclaration"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Labeled FunctionDeclarations are disallowed in strict mode"))),c=isIterationStatement(a.body)?c.observeIterationLabel(a.label):c.observeNonIterationLabel(a.label),c}},{key:"reduceLiteralRegExpExpression",value:function(){var a=this.identity;return a}},{key:"reduceMethod",value:function(a,c){var h=c.name,d=c.params,g=c.body,_=a.params.rest==null&&a.params.items.every(function($){return $.type==="BindingIdentifier"});d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),g=g.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),a.name.type==="StaticPropertyName"&&a.name.value==="constructor"?(g=g.observeConstructorMethod(),d=d.observeConstructorMethod()):(g=g.enforceSuperCallExpressions(SUPERCALL_ERROR),d=d.enforceSuperCallExpressions(SUPERCALL_ERROR)),a.isGenerator&&d.yieldExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Generator parameters must not contain yield expressions"))}),a.isAsync&&d.awaitExpressions.forEach(function($){d=d.addError(new _earlyErrorState.EarlyError($,"Async function parameters must not contain await expressions"))}),g=g.clearSuperPropertyExpressions(),d=d.clearSuperPropertyExpressions(),d=d.clearNewTargetExpressions(),g=g.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(d=d.enforceStrictErrors(),g=g.enforceStrictErrors());var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceMethod",this).call(this,a,{name:h,params:d,body:g});return!_&&isStrictFunctionBody(a.body)&&(b=b.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),b=b.clearYieldExpressions(),b=b.clearAwaitExpressions(),b=b.observeVarBoundary(),b}},{key:"reduceModule",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceModule",this).apply(this,arguments);return a=a.functionDeclarationNamesAreLexical(),a=a.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),a=a.enforceConflictingLexicallyDeclaredNames(a.varDeclaredNames,DUPLICATE_BINDING),a.exportedNames.forEachEntry(function(c,h){c.length>1&&c.slice(1).forEach(function(d){a=a.addError(new _earlyErrorState.EarlyError(d,"Duplicate export "+JSON.stringify(h)))})}),a.exportedBindings.forEachEntry(function(c,h){!a.lexicallyDeclaredNames.has(h)&&!a.varDeclaredNames.has(h)&&c.forEach(function(d){a=a.addError(new _earlyErrorState.EarlyError(d,"Exported binding "+JSON.stringify(h)+" is not declared"))})}),a.newTargetExpressions.forEach(function(c){a=a.addError(new _earlyErrorState.EarlyError(c,"new.target must be within function (but not arrow expression) code"))}),a=a.enforceFreeContinueStatementErrors(FREE_CONTINUE),a=a.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),a=a.enforceFreeBreakStatementErrors(FREE_BREAK),a=a.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),a=a.enforceSuperCallExpressions(SUPERCALL_ERROR),a=a.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),a=a.enforceStrictErrors(),a}},{key:"reduceNewTargetExpression",value:function(a){return this.identity.observeNewTargetExpression(a)}},{key:"reduceObjectExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceObjectExpression",this).apply(this,arguments);c=c.enforceSuperCallExpressionsInConstructorMethod(SUPERCALL_ERROR);var h=a.properties.filter(function(d){return d.type==="DataProperty"&&d.name.type==="StaticPropertyName"&&d.name.value==="__proto__"});return h.slice(1).forEach(function(d){c=c.addError(new _earlyErrorState.EarlyError(d,"Duplicate __proto__ property in object literal not allowed"))}),c}},{key:"reduceUpdateExpression",value:function(){var a=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUpdateExpression",this).apply(this,arguments);return a=a.clearBoundNames(),a}},{key:"reduceUnaryExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceUnaryExpression",this).apply(this,arguments);return a.operator==="delete"&&a.operand.type==="IdentifierExpression"&&(c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Identifier expressions must not be deleted in strict mode"))),c}},{key:"reduceScript",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceScript",this).apply(this,arguments);return c=c.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),c=c.enforceConflictingLexicallyDeclaredNames(c.varDeclaredNames,DUPLICATE_BINDING),c.newTargetExpressions.forEach(function(h){c=c.addError(new _earlyErrorState.EarlyError(h,"new.target must be within function (but not arrow expression) code"))}),c=c.enforceFreeContinueStatementErrors(FREE_CONTINUE),c=c.enforceFreeLabeledContinueStatementErrors(UNBOUND_CONTINUE),c=c.enforceFreeBreakStatementErrors(FREE_BREAK),c=c.enforceFreeLabeledBreakStatementErrors(UNBOUND_BREAK),c=c.enforceSuperCallExpressions(SUPERCALL_ERROR),c=c.enforceSuperPropertyExpressions(SUPERPROPERTY_ERROR),isStrictFunctionBody(a)&&(c=c.enforceStrictErrors()),c}},{key:"reduceSetter",value:function(a,c){var h=c.name,d=c.param,g=c.body,_=a.param.type==="BindingIdentifier";d=d.observeLexicalDeclaration(),d=d.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),g=g.enforceConflictingLexicallyDeclaredNames(d.lexicallyDeclaredNames,DUPLICATE_BINDING),d=d.enforceSuperCallExpressions(SUPERCALL_ERROR),g=g.enforceSuperCallExpressions(SUPERCALL_ERROR),d=d.clearSuperPropertyExpressions(),g=g.clearSuperPropertyExpressions(),d=d.clearNewTargetExpressions(),g=g.clearNewTargetExpressions(),isStrictFunctionBody(a.body)&&(d=d.enforceStrictErrors(),g=g.enforceStrictErrors());var b=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceSetter",this).call(this,a,{name:h,param:d,body:g});return!_&&isStrictFunctionBody(a.body)&&(b=b.addError(new _earlyErrorState.EarlyError(a,'Functions with non-simple parameter lists may not contain a "use strict" directive'))),b=b.observeVarBoundary(),b}},{key:"reduceStaticMemberExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceStaticMemberExpression",this).apply(this,arguments);return a.object.type==="Super"&&(c=c.observeSuperPropertyExpression(a)),c}},{key:"reduceSwitchStatement",value:function(a,c){var h=c.discriminant,d=c.cases,g=this.append.apply(this,_toConsumableArray$3(d));g=g.functionDeclarationNamesAreLexical(),g=g.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),g=g.enforceConflictingLexicallyDeclaredNames(g.varDeclaredNames,DUPLICATE_BINDING),g=g.observeLexicalBoundary();var _=this.append(h,g);return _=_.clearFreeBreakStatements(),_}},{key:"reduceSwitchStatementWithDefault",value:function(a,c){var h=c.discriminant,d=c.preDefaultCases,g=c.defaultCase,_=c.postDefaultCases,b=this.append.apply(this,[g].concat(_toConsumableArray$3(d),_toConsumableArray$3(_)));b=b.functionDeclarationNamesAreLexical(),b=b.enforceDuplicateLexicallyDeclaredNames(DUPLICATE_BINDING),b=b.enforceConflictingLexicallyDeclaredNames(b.varDeclaredNames,DUPLICATE_BINDING),b=b.observeLexicalBoundary();var $=this.append(h,b);return $=$.clearFreeBreakStatements(),$}},{key:"reduceVariableDeclaration",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclaration",this).apply(this,arguments);switch(a.kind){case"const":case"let":{c=c.observeLexicalDeclaration(),c.lexicallyDeclaredNames.has("let")&&c.lexicallyDeclaredNames.get("let").forEach(function(h){c=c.addError(new _earlyErrorState.EarlyError(h,'Lexical declarations must not have a binding named "let"'))});break}case"var":c=c.observeVarDeclaration();break}return c}},{key:"reduceVariableDeclarationStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceVariableDeclarationStatement",this).apply(this,arguments);return a.declaration.kind==="const"&&a.declaration.declarators.forEach(function(h){h.init==null&&(c=c.addError(new _earlyErrorState.EarlyError(h,"Constant lexical declarations must have an initialiser")))}),c}},{key:"reduceWhileStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWhileStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a while statement must not be a labeled function declaration"))),c=c.clearFreeContinueStatements().clearFreeBreakStatements(),c}},{key:"reduceWithStatement",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceWithStatement",this).apply(this,arguments);return isLabelledFunction(a.body)&&(c=c.addError(new _earlyErrorState.EarlyError(a.body,"The body of a with statement must not be a labeled function declaration"))),c=c.addStrictError(new _earlyErrorState.EarlyError(a,"Strict mode code must not include a with statement")),c}},{key:"reduceYieldExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldExpression",this).apply(this,arguments);return c=c.observeYieldExpression(a),c}},{key:"reduceYieldGeneratorExpression",value:function(a){var c=_get$1(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"reduceYieldGeneratorExpression",this).apply(this,arguments);return c=c.observeYieldExpression(a),c}}],[{key:"check",value:function(a){return(0,_shiftReducer2.default)(new e,a).errors}}]),e}(_shiftReducer$1.MonoidalReducer);(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.TokenType=o.TokenClass=o.Tokenizer=o.ParserWithLocation=o.GenericParser=o.EarlyErrorChecker=o.parseScriptWithLocation=o.parseModuleWithLocation=o.parseScript=o.parseModule=void 0;var e=function(){function nt(st,rt){for(var it=0;it1&&arguments[1]!==void 0?arguments[1]:{},at=it.earlyErrors,ot=at===void 0?!0:at,ut=new c.GenericParser(rt),ct=ut[nt]();if(ot){var ht=h.EarlyErrorChecker.check(ct);if(ht.length>0)throw new a.JsError(0,1,0,ht[0].message)}return ct}}function et(nt){return function(rt){var it=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=it.earlyErrors,ot=at===void 0?!0:at,ut=new j(rt),ct=ut[nt]();if(ot){var ht=h.EarlyErrorChecker.check(ct);if(ht.length>0){var lt=ht[0],pt=lt.node,ft=lt.message,gt=ut.locations.get(pt).start,yt=gt.offset,mt=gt.line,Et=gt.column;throw new a.JsError(yt,mt,Et,ft)}}return{tree:ct,locations:ut.locations,comments:ut.comments}}}o.parseModule=_e("parseModule");var tt=o.parseScript=_e("parseScript");o.parseModuleWithLocation=et("parseModule"),o.parseScriptWithLocation=et("parseScript"),o.default=tt,o.EarlyErrorChecker=h.EarlyErrorChecker,o.GenericParser=c.GenericParser,o.ParserWithLocation=j})(dist$7);var dist$2={};Object.defineProperty(dist$2,"__esModule",{value:!0});var _default=dist$2.default=function(){var o={},e={typeName:"Boolean"},s={typeName:"Number"},a={typeName:"String"};function c(Ut){return{typeName:"Maybe",argument:Ut}}function h(Ut){return{typeName:"List",argument:Ut}}function d(Ut){return{typeName:"Const",argument:Ut}}function g(){return{typeName:"Union",arguments:[].slice.call(arguments,0)}}var _={typeName:"Enum",values:["ArrayAssignmentTarget","ArrayBinding","ArrayExpression","ArrowExpression","AssignmentExpression","AssignmentTargetIdentifier","AssignmentTargetPropertyIdentifier","AssignmentTargetPropertyProperty","AssignmentTargetWithDefault","AwaitExpression","BinaryExpression","BindingIdentifier","BindingPropertyIdentifier","BindingPropertyProperty","BindingWithDefault","Block","BlockStatement","BreakStatement","CallExpression","CatchClause","ClassDeclaration","ClassElement","ClassExpression","CompoundAssignmentExpression","ComputedMemberAssignmentTarget","ComputedMemberExpression","ComputedPropertyName","ConditionalExpression","ContinueStatement","DataProperty","DebuggerStatement","Directive","DoWhileStatement","EmptyStatement","Export","ExportAllFrom","ExportDefault","ExportFrom","ExportFromSpecifier","ExportLocalSpecifier","ExportLocals","ExpressionStatement","ForAwaitStatement","ForInStatement","ForOfStatement","ForStatement","FormalParameters","FunctionBody","FunctionDeclaration","FunctionExpression","Getter","IdentifierExpression","IfStatement","Import","ImportNamespace","ImportSpecifier","LabeledStatement","LiteralBooleanExpression","LiteralInfinityExpression","LiteralNullExpression","LiteralNumericExpression","LiteralRegExpExpression","LiteralStringExpression","Method","Module","NewExpression","NewTargetExpression","ObjectAssignmentTarget","ObjectBinding","ObjectExpression","ReturnStatement","Script","Setter","ShorthandProperty","SpreadElement","SpreadProperty","StaticMemberAssignmentTarget","StaticMemberExpression","StaticPropertyName","Super","SwitchCase","SwitchDefault","SwitchStatement","SwitchStatementWithDefault","TemplateElement","TemplateExpression","ThisExpression","ThrowStatement","TryCatchStatement","TryFinallyStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarationStatement","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","YieldGeneratorExpression"]},b={typeName:"Enum",values:["==","!=","===","!==","<","<=",">",">=","in","instanceof","<<",">>",">>>","+","-","*","/","%","**",",","||","&&","|","^","&"]},$={typeName:"Enum",values:["+=","-=","*=","/=","%=","**=","<<=",">>=",">>>=","|=","^=","&="]},j={typeName:"Enum",values:["+","-","!","~","typeof","void","delete"]},_e={typeName:"Enum",values:["++","--"]},et={typeName:"Enum",values:["var","let","const"]},tt=o.ArrayAssignmentTarget={},nt=o.ArrayBinding={},st=o.ArrayExpression={},rt=o.ArrowExpression={},it=o.AssignmentExpression={},at=o.AssignmentTargetIdentifier={},ot=o.AssignmentTargetPropertyIdentifier={},ut=o.AssignmentTargetPropertyProperty={},ct=o.AssignmentTargetWithDefault={},ht=o.AwaitExpression={},lt=o.BinaryExpression={},pt=o.BindingIdentifier={},ft=o.BindingPropertyIdentifier={},gt=o.BindingPropertyProperty={},yt=o.BindingWithDefault={},mt=o.Block={},Et=o.BlockStatement={},Ot=o.BreakStatement={},St=o.CallExpression={},At=o.CatchClause={},dt=o.ClassDeclaration={},Dt=o.ClassElement={},Ct=o.ClassExpression={},xt=o.CompoundAssignmentExpression={},Tt=o.ComputedMemberAssignmentTarget={},kt=o.ComputedMemberExpression={},_t=o.ComputedPropertyName={},Bt=o.ConditionalExpression={},Ft=o.ContinueStatement={},Lt=o.DataProperty={},tr=o.DebuggerStatement={},Wt=o.Directive={},rr=o.DoWhileStatement={},nr=o.EmptyStatement={},ir=o.Export={},sr=o.ExportAllFrom={},ar=o.ExportDefault={},or=o.ExportFrom={},Xt=o.ExportFromSpecifier={},Ht=o.ExportLocalSpecifier={},ur=o.ExportLocals={},lr=o.ExpressionStatement={},cr=o.ForAwaitStatement={},hr=o.ForInStatement={},fr=o.ForOfStatement={},dr=o.ForStatement={},Qt=o.FormalParameters={},It=o.FunctionBody={},zt=o.FunctionDeclaration={},Zt=o.FunctionExpression={},mr=o.Getter={},Gt=o.IdentifierExpression={},gr=o.IfStatement={},yr=o.Import={},Er=o.ImportNamespace={},Yt=o.ImportSpecifier={},Dr=o.LabeledStatement={},Or=o.LiteralBooleanExpression={},Cr=o.LiteralInfinityExpression={},Sr=o.LiteralNullExpression={},Ar=o.LiteralNumericExpression={},vr=o.LiteralRegExpExpression={},xr=o.LiteralStringExpression={},Tr=o.Method={},kr=o.Module={},_r=o.NewExpression={},br=o.NewTargetExpression={},Pt=o.ObjectAssignmentTarget={},wt=o.ObjectBinding={},Fr=o.ObjectExpression={},Br=o.ReturnStatement={},wr=o.Script={},Pr=o.Setter={},$r=o.ShorthandProperty={},Vt=o.SpreadElement={},Rr=o.SpreadProperty={},Ir=o.StaticMemberAssignmentTarget={},Nr=o.StaticMemberExpression={},Lr=o.StaticPropertyName={},Mt=o.Super={},qt=o.SwitchCase={},Kt=o.SwitchDefault={},Mr=o.SwitchStatement={},Qr=o.SwitchStatementWithDefault={},Jt=o.TemplateElement={},jr=o.TemplateExpression={},Wr=o.ThisExpression={},zr=o.ThrowStatement={},Gr=o.TryCatchStatement={},Vr=o.TryFinallyStatement={},qr=o.UnaryExpression={},Ur=o.UpdateExpression={},Nt=o.VariableDeclaration={},Xr=o.VariableDeclarationStatement={},er=o.VariableDeclarator={},Hr=o.WhileStatement={},Zr=o.WithStatement={},Yr=o.YieldExpression={},Kr=o.YieldGeneratorExpression={},an=g(kt,Nr),Jr=g(ot,ut);g(dt,Ct);var en=g(ir,sr,ar,or,ur),jt=g(_t,Lr);g(zt,Zt);var tn=g(yr,Er),un=g(rr,cr,hr,fr,dr,Hr),$t=g(Tt,Ir),rn=g(ft,gt),nn=g(mr,Tr,Pr),ln=g(kr,wr),cn=g(at,pt,Gt),hn=g(Lt,nn),vt=g(st,rt,it,ht,lt,St,Ct,xt,Bt,Zt,Gt,Or,Cr,Sr,Ar,vr,xr,an,_r,br,Fr,jr,Wr,qr,Ur,Yr,Kr),bt=g(Et,Ot,dt,Ft,tr,nr,lr,zt,gr,un,Dr,Br,Mr,Qr,zr,Gr,Vr,Xr,Zr),sn=g(hn,$r,Rr);return g(tt,nt,Jr,ct,rn,yt,mt,At,Dt,Wt,en,Xt,Ht,vt,Qt,It,tn,Yt,$t,Pt,wt,sn,ln,jt,Vt,bt,Mt,qt,Kt,Jt,Nt,er,cn),tt.typeName="ArrayAssignmentTarget",tt.fields=[{name:"type",type:d(_),value:"ArrayAssignmentTarget"},{name:"elements",type:h(c(g(ct,g(g(tt,Pt),g(at,$t)))))},{name:"rest",type:c(g(g(tt,Pt),g(at,$t)))}],nt.typeName="ArrayBinding",nt.fields=[{name:"type",type:d(_),value:"ArrayBinding"},{name:"elements",type:h(c(g(yt,g(pt,g(nt,wt)))))},{name:"rest",type:c(g(pt,g(nt,wt)))}],st.typeName="ArrayExpression",st.fields=[{name:"type",type:d(_),value:"ArrayExpression"},{name:"elements",type:h(c(g(vt,Vt)))}],rt.typeName="ArrowExpression",rt.fields=[{name:"type",type:d(_),value:"ArrowExpression"},{name:"isAsync",type:e},{name:"params",type:Qt},{name:"body",type:g(vt,It)}],it.typeName="AssignmentExpression",it.fields=[{name:"type",type:d(_),value:"AssignmentExpression"},{name:"binding",type:g(g(tt,Pt),g(at,$t))},{name:"expression",type:vt}],at.typeName="AssignmentTargetIdentifier",at.fields=[{name:"type",type:d(_),value:"AssignmentTargetIdentifier"},{name:"name",type:a}],ot.typeName="AssignmentTargetPropertyIdentifier",ot.fields=[{name:"type",type:d(_),value:"AssignmentTargetPropertyIdentifier"},{name:"binding",type:at},{name:"init",type:c(vt)}],ut.typeName="AssignmentTargetPropertyProperty",ut.fields=[{name:"type",type:d(_),value:"AssignmentTargetPropertyProperty"},{name:"name",type:jt},{name:"binding",type:g(ct,g(g(tt,Pt),g(at,$t)))}],ct.typeName="AssignmentTargetWithDefault",ct.fields=[{name:"type",type:d(_),value:"AssignmentTargetWithDefault"},{name:"binding",type:g(g(tt,Pt),g(at,$t))},{name:"init",type:vt}],ht.typeName="AwaitExpression",ht.fields=[{name:"type",type:d(_),value:"AwaitExpression"},{name:"expression",type:vt}],lt.typeName="BinaryExpression",lt.fields=[{name:"type",type:d(_),value:"BinaryExpression"},{name:"left",type:vt},{name:"operator",type:b},{name:"right",type:vt}],pt.typeName="BindingIdentifier",pt.fields=[{name:"type",type:d(_),value:"BindingIdentifier"},{name:"name",type:a}],ft.typeName="BindingPropertyIdentifier",ft.fields=[{name:"type",type:d(_),value:"BindingPropertyIdentifier"},{name:"binding",type:pt},{name:"init",type:c(vt)}],gt.typeName="BindingPropertyProperty",gt.fields=[{name:"type",type:d(_),value:"BindingPropertyProperty"},{name:"name",type:jt},{name:"binding",type:g(yt,g(pt,g(nt,wt)))}],yt.typeName="BindingWithDefault",yt.fields=[{name:"type",type:d(_),value:"BindingWithDefault"},{name:"binding",type:g(pt,g(nt,wt))},{name:"init",type:vt}],mt.typeName="Block",mt.fields=[{name:"type",type:d(_),value:"Block"},{name:"statements",type:h(bt)}],Et.typeName="BlockStatement",Et.fields=[{name:"type",type:d(_),value:"BlockStatement"},{name:"block",type:mt}],Ot.typeName="BreakStatement",Ot.fields=[{name:"type",type:d(_),value:"BreakStatement"},{name:"label",type:c(a)}],St.typeName="CallExpression",St.fields=[{name:"type",type:d(_),value:"CallExpression"},{name:"callee",type:g(vt,Mt)},{name:"arguments",type:h(g(vt,Vt))}],At.typeName="CatchClause",At.fields=[{name:"type",type:d(_),value:"CatchClause"},{name:"binding",type:g(pt,g(nt,wt))},{name:"body",type:mt}],dt.typeName="ClassDeclaration",dt.fields=[{name:"type",type:d(_),value:"ClassDeclaration"},{name:"name",type:pt},{name:"super",type:c(vt)},{name:"elements",type:h(Dt)}],Dt.typeName="ClassElement",Dt.fields=[{name:"type",type:d(_),value:"ClassElement"},{name:"isStatic",type:e},{name:"method",type:nn}],Ct.typeName="ClassExpression",Ct.fields=[{name:"type",type:d(_),value:"ClassExpression"},{name:"name",type:c(pt)},{name:"super",type:c(vt)},{name:"elements",type:h(Dt)}],xt.typeName="CompoundAssignmentExpression",xt.fields=[{name:"type",type:d(_),value:"CompoundAssignmentExpression"},{name:"binding",type:g(at,$t)},{name:"operator",type:$},{name:"expression",type:vt}],Tt.typeName="ComputedMemberAssignmentTarget",Tt.fields=[{name:"type",type:d(_),value:"ComputedMemberAssignmentTarget"},{name:"object",type:g(vt,Mt)},{name:"expression",type:vt}],kt.typeName="ComputedMemberExpression",kt.fields=[{name:"type",type:d(_),value:"ComputedMemberExpression"},{name:"object",type:g(vt,Mt)},{name:"expression",type:vt}],_t.typeName="ComputedPropertyName",_t.fields=[{name:"type",type:d(_),value:"ComputedPropertyName"},{name:"expression",type:vt}],Bt.typeName="ConditionalExpression",Bt.fields=[{name:"type",type:d(_),value:"ConditionalExpression"},{name:"test",type:vt},{name:"consequent",type:vt},{name:"alternate",type:vt}],Ft.typeName="ContinueStatement",Ft.fields=[{name:"type",type:d(_),value:"ContinueStatement"},{name:"label",type:c(a)}],Lt.typeName="DataProperty",Lt.fields=[{name:"type",type:d(_),value:"DataProperty"},{name:"name",type:jt},{name:"expression",type:vt}],tr.typeName="DebuggerStatement",tr.fields=[{name:"type",type:d(_),value:"DebuggerStatement"}],Wt.typeName="Directive",Wt.fields=[{name:"type",type:d(_),value:"Directive"},{name:"rawValue",type:a}],rr.typeName="DoWhileStatement",rr.fields=[{name:"type",type:d(_),value:"DoWhileStatement"},{name:"body",type:bt},{name:"test",type:vt}],nr.typeName="EmptyStatement",nr.fields=[{name:"type",type:d(_),value:"EmptyStatement"}],ir.typeName="Export",ir.fields=[{name:"type",type:d(_),value:"Export"},{name:"declaration",type:g(dt,zt,Nt)}],sr.typeName="ExportAllFrom",sr.fields=[{name:"type",type:d(_),value:"ExportAllFrom"},{name:"moduleSpecifier",type:a}],ar.typeName="ExportDefault",ar.fields=[{name:"type",type:d(_),value:"ExportDefault"},{name:"body",type:g(dt,vt,zt)}],or.typeName="ExportFrom",or.fields=[{name:"type",type:d(_),value:"ExportFrom"},{name:"namedExports",type:h(Xt)},{name:"moduleSpecifier",type:a}],Xt.typeName="ExportFromSpecifier",Xt.fields=[{name:"type",type:d(_),value:"ExportFromSpecifier"},{name:"name",type:a},{name:"exportedName",type:c(a)}],Ht.typeName="ExportLocalSpecifier",Ht.fields=[{name:"type",type:d(_),value:"ExportLocalSpecifier"},{name:"name",type:Gt},{name:"exportedName",type:c(a)}],ur.typeName="ExportLocals",ur.fields=[{name:"type",type:d(_),value:"ExportLocals"},{name:"namedExports",type:h(Ht)}],lr.typeName="ExpressionStatement",lr.fields=[{name:"type",type:d(_),value:"ExpressionStatement"},{name:"expression",type:vt}],cr.typeName="ForAwaitStatement",cr.fields=[{name:"type",type:d(_),value:"ForAwaitStatement"},{name:"left",type:g(g(g(tt,Pt),g(at,$t)),Nt)},{name:"right",type:vt},{name:"body",type:bt}],hr.typeName="ForInStatement",hr.fields=[{name:"type",type:d(_),value:"ForInStatement"},{name:"left",type:g(g(g(tt,Pt),g(at,$t)),Nt)},{name:"right",type:vt},{name:"body",type:bt}],fr.typeName="ForOfStatement",fr.fields=[{name:"type",type:d(_),value:"ForOfStatement"},{name:"left",type:g(g(g(tt,Pt),g(at,$t)),Nt)},{name:"right",type:vt},{name:"body",type:bt}],dr.typeName="ForStatement",dr.fields=[{name:"type",type:d(_),value:"ForStatement"},{name:"init",type:c(g(vt,Nt))},{name:"test",type:c(vt)},{name:"update",type:c(vt)},{name:"body",type:bt}],Qt.typeName="FormalParameters",Qt.fields=[{name:"type",type:d(_),value:"FormalParameters"},{name:"items",type:h(g(yt,g(pt,g(nt,wt))))},{name:"rest",type:c(g(pt,g(nt,wt)))}],It.typeName="FunctionBody",It.fields=[{name:"type",type:d(_),value:"FunctionBody"},{name:"directives",type:h(Wt)},{name:"statements",type:h(bt)}],zt.typeName="FunctionDeclaration",zt.fields=[{name:"type",type:d(_),value:"FunctionDeclaration"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:pt},{name:"params",type:Qt},{name:"body",type:It}],Zt.typeName="FunctionExpression",Zt.fields=[{name:"type",type:d(_),value:"FunctionExpression"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:c(pt)},{name:"params",type:Qt},{name:"body",type:It}],mr.typeName="Getter",mr.fields=[{name:"type",type:d(_),value:"Getter"},{name:"name",type:jt},{name:"body",type:It}],Gt.typeName="IdentifierExpression",Gt.fields=[{name:"type",type:d(_),value:"IdentifierExpression"},{name:"name",type:a}],gr.typeName="IfStatement",gr.fields=[{name:"type",type:d(_),value:"IfStatement"},{name:"test",type:vt},{name:"consequent",type:bt},{name:"alternate",type:c(bt)}],yr.typeName="Import",yr.fields=[{name:"type",type:d(_),value:"Import"},{name:"defaultBinding",type:c(pt)},{name:"namedImports",type:h(Yt)},{name:"moduleSpecifier",type:a}],Er.typeName="ImportNamespace",Er.fields=[{name:"type",type:d(_),value:"ImportNamespace"},{name:"defaultBinding",type:c(pt)},{name:"namespaceBinding",type:pt},{name:"moduleSpecifier",type:a}],Yt.typeName="ImportSpecifier",Yt.fields=[{name:"type",type:d(_),value:"ImportSpecifier"},{name:"name",type:c(a)},{name:"binding",type:pt}],Dr.typeName="LabeledStatement",Dr.fields=[{name:"type",type:d(_),value:"LabeledStatement"},{name:"label",type:a},{name:"body",type:bt}],Or.typeName="LiteralBooleanExpression",Or.fields=[{name:"type",type:d(_),value:"LiteralBooleanExpression"},{name:"value",type:e}],Cr.typeName="LiteralInfinityExpression",Cr.fields=[{name:"type",type:d(_),value:"LiteralInfinityExpression"}],Sr.typeName="LiteralNullExpression",Sr.fields=[{name:"type",type:d(_),value:"LiteralNullExpression"}],Ar.typeName="LiteralNumericExpression",Ar.fields=[{name:"type",type:d(_),value:"LiteralNumericExpression"},{name:"value",type:s}],vr.typeName="LiteralRegExpExpression",vr.fields=[{name:"type",type:d(_),value:"LiteralRegExpExpression"},{name:"pattern",type:a},{name:"global",type:e},{name:"ignoreCase",type:e},{name:"multiLine",type:e},{name:"dotAll",type:e},{name:"unicode",type:e},{name:"sticky",type:e}],xr.typeName="LiteralStringExpression",xr.fields=[{name:"type",type:d(_),value:"LiteralStringExpression"},{name:"value",type:a}],Tr.typeName="Method",Tr.fields=[{name:"type",type:d(_),value:"Method"},{name:"isAsync",type:e},{name:"isGenerator",type:e},{name:"name",type:jt},{name:"params",type:Qt},{name:"body",type:It}],kr.typeName="Module",kr.fields=[{name:"type",type:d(_),value:"Module"},{name:"directives",type:h(Wt)},{name:"items",type:h(g(en,tn,bt))}],_r.typeName="NewExpression",_r.fields=[{name:"type",type:d(_),value:"NewExpression"},{name:"callee",type:vt},{name:"arguments",type:h(g(vt,Vt))}],br.typeName="NewTargetExpression",br.fields=[{name:"type",type:d(_),value:"NewTargetExpression"}],Pt.typeName="ObjectAssignmentTarget",Pt.fields=[{name:"type",type:d(_),value:"ObjectAssignmentTarget"},{name:"properties",type:h(Jr)},{name:"rest",type:c(g(g(tt,Pt),g(at,$t)))}],wt.typeName="ObjectBinding",wt.fields=[{name:"type",type:d(_),value:"ObjectBinding"},{name:"properties",type:h(rn)},{name:"rest",type:c(g(pt,g(nt,wt)))}],Fr.typeName="ObjectExpression",Fr.fields=[{name:"type",type:d(_),value:"ObjectExpression"},{name:"properties",type:h(sn)}],Br.typeName="ReturnStatement",Br.fields=[{name:"type",type:d(_),value:"ReturnStatement"},{name:"expression",type:c(vt)}],wr.typeName="Script",wr.fields=[{name:"type",type:d(_),value:"Script"},{name:"directives",type:h(Wt)},{name:"statements",type:h(bt)}],Pr.typeName="Setter",Pr.fields=[{name:"type",type:d(_),value:"Setter"},{name:"name",type:jt},{name:"param",type:g(yt,g(pt,g(nt,wt)))},{name:"body",type:It}],$r.typeName="ShorthandProperty",$r.fields=[{name:"type",type:d(_),value:"ShorthandProperty"},{name:"name",type:Gt}],Vt.typeName="SpreadElement",Vt.fields=[{name:"type",type:d(_),value:"SpreadElement"},{name:"expression",type:vt}],Rr.typeName="SpreadProperty",Rr.fields=[{name:"type",type:d(_),value:"SpreadProperty"},{name:"expression",type:vt}],Ir.typeName="StaticMemberAssignmentTarget",Ir.fields=[{name:"type",type:d(_),value:"StaticMemberAssignmentTarget"},{name:"object",type:g(vt,Mt)},{name:"property",type:a}],Nr.typeName="StaticMemberExpression",Nr.fields=[{name:"type",type:d(_),value:"StaticMemberExpression"},{name:"object",type:g(vt,Mt)},{name:"property",type:a}],Lr.typeName="StaticPropertyName",Lr.fields=[{name:"type",type:d(_),value:"StaticPropertyName"},{name:"value",type:a}],Mt.typeName="Super",Mt.fields=[{name:"type",type:d(_),value:"Super"}],qt.typeName="SwitchCase",qt.fields=[{name:"type",type:d(_),value:"SwitchCase"},{name:"test",type:vt},{name:"consequent",type:h(bt)}],Kt.typeName="SwitchDefault",Kt.fields=[{name:"type",type:d(_),value:"SwitchDefault"},{name:"consequent",type:h(bt)}],Mr.typeName="SwitchStatement",Mr.fields=[{name:"type",type:d(_),value:"SwitchStatement"},{name:"discriminant",type:vt},{name:"cases",type:h(qt)}],Qr.typeName="SwitchStatementWithDefault",Qr.fields=[{name:"type",type:d(_),value:"SwitchStatementWithDefault"},{name:"discriminant",type:vt},{name:"preDefaultCases",type:h(qt)},{name:"defaultCase",type:Kt},{name:"postDefaultCases",type:h(qt)}],Jt.typeName="TemplateElement",Jt.fields=[{name:"type",type:d(_),value:"TemplateElement"},{name:"rawValue",type:a}],jr.typeName="TemplateExpression",jr.fields=[{name:"type",type:d(_),value:"TemplateExpression"},{name:"tag",type:c(vt)},{name:"elements",type:h(g(vt,Jt))}],Wr.typeName="ThisExpression",Wr.fields=[{name:"type",type:d(_),value:"ThisExpression"}],zr.typeName="ThrowStatement",zr.fields=[{name:"type",type:d(_),value:"ThrowStatement"},{name:"expression",type:vt}],Gr.typeName="TryCatchStatement",Gr.fields=[{name:"type",type:d(_),value:"TryCatchStatement"},{name:"body",type:mt},{name:"catchClause",type:At}],Vr.typeName="TryFinallyStatement",Vr.fields=[{name:"type",type:d(_),value:"TryFinallyStatement"},{name:"body",type:mt},{name:"catchClause",type:c(At)},{name:"finalizer",type:mt}],qr.typeName="UnaryExpression",qr.fields=[{name:"type",type:d(_),value:"UnaryExpression"},{name:"operator",type:j},{name:"operand",type:vt}],Ur.typeName="UpdateExpression",Ur.fields=[{name:"type",type:d(_),value:"UpdateExpression"},{name:"isPrefix",type:e},{name:"operator",type:_e},{name:"operand",type:g(at,$t)}],Nt.typeName="VariableDeclaration",Nt.fields=[{name:"type",type:d(_),value:"VariableDeclaration"},{name:"kind",type:et},{name:"declarators",type:h(er)}],Xr.typeName="VariableDeclarationStatement",Xr.fields=[{name:"type",type:d(_),value:"VariableDeclarationStatement"},{name:"declaration",type:Nt}],er.typeName="VariableDeclarator",er.fields=[{name:"type",type:d(_),value:"VariableDeclarator"},{name:"binding",type:g(pt,g(nt,wt))},{name:"init",type:c(vt)}],Hr.typeName="WhileStatement",Hr.fields=[{name:"type",type:d(_),value:"WhileStatement"},{name:"test",type:vt},{name:"body",type:bt}],Zr.typeName="WithStatement",Zr.fields=[{name:"type",type:d(_),value:"WithStatement"},{name:"object",type:vt},{name:"body",type:bt}],Yr.typeName="YieldExpression",Yr.fields=[{name:"type",type:d(_),value:"YieldExpression"},{name:"expression",type:c(vt)}],Kr.typeName="YieldGeneratorExpression",Kr.fields=[{name:"type",type:d(_),value:"YieldGeneratorExpression"},{name:"expression",type:vt}],o}(),estraverse$1={};(function(o){(function e(s){var a,c,h,d,g,_;function b(ut){var ct={},ht,lt;for(ht in ut)ut.hasOwnProperty(ht)&&(lt=ut[ht],typeof lt=="object"&<!==null?ct[ht]=b(lt):ct[ht]=lt);return ct}function $(ut,ct){var ht,lt,pt,ft;for(lt=ut.length,pt=0;lt;)ht=lt>>>1,ft=pt+ht,ct(ut[ft])?lt=ht:(pt=ft+1,lt-=ht+1);return pt}a={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},h={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},d={},g={},_={},c={Break:d,Skip:g,Remove:_};function j(ut,ct){this.parent=ut,this.key=ct}j.prototype.replace=function(ct){this.parent[this.key]=ct},j.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function _e(ut,ct,ht,lt){this.node=ut,this.path=ct,this.wrap=ht,this.ref=lt}function et(){}et.prototype.path=function(){var ct,ht,lt,pt,ft,gt;function yt(mt,Et){if(Array.isArray(Et))for(lt=0,pt=Et.length;lt=0;--ht)if(ut[ht].node===ct)return!0;return!1}et.prototype.traverse=function(ct,ht){var lt,pt,ft,gt,yt,mt,Et,Ot,St,At,dt,Dt;for(this.__initialize(ct,ht),Dt={},lt=this.__worklist,pt=this.__leavelist,lt.push(new _e(ct,null,null,null)),pt.push(new _e(null,null,null,null));lt.length;){if(ft=lt.pop(),ft===Dt){if(ft=pt.pop(),mt=this.__execute(ht.leave,ft),this.__state===d||mt===d)return;continue}if(ft.node){if(mt=this.__execute(ht.enter,ft),this.__state===d||mt===d)return;if(lt.push(Dt),pt.push(ft),this.__state===g||mt===g)continue;if(gt=ft.node,yt=gt.type||ft.wrap,At=this.__keys[yt],!At)if(this.__fallback)At=this.__fallback(gt);else throw new Error("Unknown node type "+yt+".");for(Ot=At.length;(Ot-=1)>=0;)if(Et=At[Ot],dt=gt[Et],!!dt){if(Array.isArray(dt)){for(St=dt.length;(St-=1)>=0;)if(!!dt[St]&&!st(pt,dt[St])){if(nt(yt,At[Ot]))ft=new _e(dt[St],[Et,St],"Property",null);else if(tt(dt[St]))ft=new _e(dt[St],[Et,St],null,null);else continue;lt.push(ft)}}else if(tt(dt)){if(st(pt,dt))continue;lt.push(new _e(dt,Et,null,null))}}}}},et.prototype.replace=function(ct,ht){var lt,pt,ft,gt,yt,mt,Et,Ot,St,At,dt,Dt,Ct;function xt(Tt){var kt,_t,Bt,Ft;if(Tt.ref.remove()){for(_t=Tt.ref.key,Ft=Tt.ref.parent,kt=lt.length;kt--;)if(Bt=lt[kt],Bt.ref&&Bt.ref.parent===Ft){if(Bt.ref.key<_t)break;--Bt.ref.key}}}for(this.__initialize(ct,ht),dt={},lt=this.__worklist,pt=this.__leavelist,Dt={root:ct},mt=new _e(ct,null,null,new j(Dt,"root")),lt.push(mt),pt.push(mt);lt.length;){if(mt=lt.pop(),mt===dt){if(mt=pt.pop(),yt=this.__execute(ht.leave,mt),yt!==void 0&&yt!==d&&yt!==g&&yt!==_&&mt.ref.replace(yt),(this.__state===_||yt===_)&&xt(mt),this.__state===d||yt===d)return Dt.root;continue}if(yt=this.__execute(ht.enter,mt),yt!==void 0&&yt!==d&&yt!==g&&yt!==_&&(mt.ref.replace(yt),mt.node=yt),(this.__state===_||yt===_)&&(xt(mt),mt.node=null),this.__state===d||yt===d)return Dt.root;if(ft=mt.node,!!ft&&(lt.push(dt),pt.push(mt),!(this.__state===g||yt===g))){if(gt=ft.type||mt.wrap,St=this.__keys[gt],!St)if(this.__fallback)St=this.__fallback(ft);else throw new Error("Unknown node type "+gt+".");for(Et=St.length;(Et-=1)>=0;)if(Ct=St[Et],At=ft[Ct],!!At)if(Array.isArray(At)){for(Ot=At.length;(Ot-=1)>=0;)if(!!At[Ot]){if(nt(gt,St[Et]))mt=new _e(At[Ot],[Ct,Ot],"Property",new j(At,Ot));else if(tt(At[Ot]))mt=new _e(At[Ot],[Ct,Ot],null,new j(At,Ot));else continue;lt.push(mt)}}else tt(At)&<.push(new _e(At,Ct,null,new j(ft,Ct)))}}return Dt.root};function rt(ut,ct){var ht=new et;return ht.traverse(ut,ct)}function it(ut,ct){var ht=new et;return ht.replace(ut,ct)}function at(ut,ct){var ht;return ht=$(ct,function(pt){return pt.range[0]>ut.range[0]}),ut.extendedRange=[ut.range[0],ut.range[1]],ht!==ct.length&&(ut.extendedRange[1]=ct[ht].range[0]),ht-=1,ht>=0&&(ut.extendedRange[0]=ct[ht].range[1]),ut}function ot(ut,ct,ht){var lt=[],pt,ft,gt,yt;if(!ut.range)throw new Error("attachComments needs range information");if(!ht.length){if(ct.length){for(gt=0,ft=ct.length;gtmt.range[0]));)Et.extendedRange[1]===mt.range[0]?(mt.leadingComments||(mt.leadingComments=[]),mt.leadingComments.push(Et),lt.splice(yt,1)):yt+=1;if(yt===lt.length)return c.Break;if(lt[yt].extendedRange[0]>mt.range[1])return c.Skip}}),yt=0,rt(ut,{leave:function(mt){for(var Et;ytmt.range[1])return c.Skip}}),ut}return s.Syntax=a,s.traverse=rt,s.replace=it,s.attachComments=ot,s.VisitorKeys=h,s.VisitorOption=c,s.Controller=et,s.cloneEnvironment=function(){return e({})},s})(o)})(estraverse$1);const Spec=_default.default||_default,estraverse=estraverse$1.cloneEnvironment();Object.keys(estraverse.Syntax).filter(o=>o!=="Property").forEach(o=>{delete estraverse.Syntax[o],delete estraverse.VisitorKeys[o]});Object.assign(estraverse.Syntax,Object.keys(Spec).reduce((o,e)=>(o[e]=e,o),{}));Object.assign(estraverse.VisitorKeys,Object.keys(Spec).reduce((o,e)=>(o[e]=Spec[e].fields.map(s=>s.name),o),{}));var dist$1={},StaticMemberExpression_1,ReturnStatement_1,LiteralStringExpression_1,LiteralNumericExpression_1,IdentifierExpression_1,CallExpression_1,ArrayExpression_1;Object.defineProperty(dist$1,"__esModule",{value:!0});function _classCallCheck$5(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}dist$1.ArrayAssignmentTarget=function o(e){var s=e.elements,a=e.rest;_classCallCheck$5(this,o),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=a};dist$1.ArrayBinding=function o(e){var s=e.elements,a=e.rest;_classCallCheck$5(this,o),this.type="ArrayBinding",this.elements=s,this.rest=a};ArrayExpression_1=dist$1.ArrayExpression=function o(e){var s=e.elements;_classCallCheck$5(this,o),this.type="ArrayExpression",this.elements=s};dist$1.ArrowExpression=function o(e){var s=e.isAsync,a=e.params,c=e.body;_classCallCheck$5(this,o),this.type="ArrowExpression",this.isAsync=s,this.params=a,this.body=c};dist$1.AssignmentExpression=function o(e){var s=e.binding,a=e.expression;_classCallCheck$5(this,o),this.type="AssignmentExpression",this.binding=s,this.expression=a};dist$1.AssignmentTargetIdentifier=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="AssignmentTargetIdentifier",this.name=s};dist$1.AssignmentTargetPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=a};dist$1.AssignmentTargetPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=a};dist$1.AssignmentTargetWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=a};dist$1.AwaitExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="AwaitExpression",this.expression=s};dist$1.BinaryExpression=function o(e){var s=e.left,a=e.operator,c=e.right;_classCallCheck$5(this,o),this.type="BinaryExpression",this.left=s,this.operator=a,this.right=c};dist$1.BindingIdentifier=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="BindingIdentifier",this.name=s};dist$1.BindingPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="BindingPropertyIdentifier",this.binding=s,this.init=a};dist$1.BindingPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="BindingPropertyProperty",this.name=s,this.binding=a};dist$1.BindingWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="BindingWithDefault",this.binding=s,this.init=a};dist$1.Block=function o(e){var s=e.statements;_classCallCheck$5(this,o),this.type="Block",this.statements=s};dist$1.BlockStatement=function o(e){var s=e.block;_classCallCheck$5(this,o),this.type="BlockStatement",this.block=s};dist$1.BreakStatement=function o(e){var s=e.label;_classCallCheck$5(this,o),this.type="BreakStatement",this.label=s};CallExpression_1=dist$1.CallExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$5(this,o),this.type="CallExpression",this.callee=s,this.arguments=a};dist$1.CatchClause=function o(e){var s=e.binding,a=e.body;_classCallCheck$5(this,o),this.type="CatchClause",this.binding=s,this.body=a};dist$1.ClassDeclaration=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$5(this,o),this.type="ClassDeclaration",this.name=s,this.super=a,this.elements=c};dist$1.ClassElement=function o(e){var s=e.isStatic,a=e.method;_classCallCheck$5(this,o),this.type="ClassElement",this.isStatic=s,this.method=a};dist$1.ClassExpression=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$5(this,o),this.type="ClassExpression",this.name=s,this.super=a,this.elements=c};dist$1.CompoundAssignmentExpression=function o(e){var s=e.binding,a=e.operator,c=e.expression;_classCallCheck$5(this,o),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=a,this.expression=c};dist$1.ComputedMemberAssignmentTarget=function o(e){var s=e.object,a=e.expression;_classCallCheck$5(this,o),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=a};dist$1.ComputedMemberExpression=function o(e){var s=e.object,a=e.expression;_classCallCheck$5(this,o),this.type="ComputedMemberExpression",this.object=s,this.expression=a};dist$1.ComputedPropertyName=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ComputedPropertyName",this.expression=s};dist$1.ConditionalExpression=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$5(this,o),this.type="ConditionalExpression",this.test=s,this.consequent=a,this.alternate=c};dist$1.ContinueStatement=function o(e){var s=e.label;_classCallCheck$5(this,o),this.type="ContinueStatement",this.label=s};dist$1.DataProperty=function o(e){var s=e.name,a=e.expression;_classCallCheck$5(this,o),this.type="DataProperty",this.name=s,this.expression=a};dist$1.DebuggerStatement=function o(){_classCallCheck$5(this,o),this.type="DebuggerStatement"};dist$1.Directive=function o(e){var s=e.rawValue;_classCallCheck$5(this,o),this.type="Directive",this.rawValue=s};dist$1.DoWhileStatement=function o(e){var s=e.body,a=e.test;_classCallCheck$5(this,o),this.type="DoWhileStatement",this.body=s,this.test=a};dist$1.EmptyStatement=function o(){_classCallCheck$5(this,o),this.type="EmptyStatement"};dist$1.Export=function o(e){var s=e.declaration;_classCallCheck$5(this,o),this.type="Export",this.declaration=s};dist$1.ExportAllFrom=function o(e){var s=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$1.ExportDefault=function o(e){var s=e.body;_classCallCheck$5(this,o),this.type="ExportDefault",this.body=s};dist$1.ExportFrom=function o(e){var s=e.namedExports,a=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=a};dist$1.ExportFromSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$5(this,o),this.type="ExportFromSpecifier",this.name=s,this.exportedName=a};dist$1.ExportLocalSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$5(this,o),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=a};dist$1.ExportLocals=function o(e){var s=e.namedExports;_classCallCheck$5(this,o),this.type="ExportLocals",this.namedExports=s};dist$1.ExpressionStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ExpressionStatement",this.expression=s};dist$1.ForAwaitStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForAwaitStatement",this.left=s,this.right=a,this.body=c};dist$1.ForInStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForInStatement",this.left=s,this.right=a,this.body=c};dist$1.ForOfStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$5(this,o),this.type="ForOfStatement",this.left=s,this.right=a,this.body=c};dist$1.ForStatement=function o(e){var s=e.init,a=e.test,c=e.update,h=e.body;_classCallCheck$5(this,o),this.type="ForStatement",this.init=s,this.test=a,this.update=c,this.body=h};dist$1.FormalParameters=function o(e){var s=e.items,a=e.rest;_classCallCheck$5(this,o),this.type="FormalParameters",this.items=s,this.rest=a};dist$1.FunctionBody=function o(e){var s=e.directives,a=e.statements;_classCallCheck$5(this,o),this.type="FunctionBody",this.directives=s,this.statements=a};dist$1.FunctionDeclaration=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,h=e.params,d=e.body;_classCallCheck$5(this,o),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=h,this.body=d};dist$1.FunctionExpression=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,h=e.params,d=e.body;_classCallCheck$5(this,o),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=h,this.body=d};dist$1.Getter=function o(e){var s=e.name,a=e.body;_classCallCheck$5(this,o),this.type="Getter",this.name=s,this.body=a};IdentifierExpression_1=dist$1.IdentifierExpression=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="IdentifierExpression",this.name=s};dist$1.IfStatement=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$5(this,o),this.type="IfStatement",this.test=s,this.consequent=a,this.alternate=c};dist$1.Import=function o(e){var s=e.defaultBinding,a=e.namedImports,c=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="Import",this.defaultBinding=s,this.namedImports=a,this.moduleSpecifier=c};dist$1.ImportNamespace=function o(e){var s=e.defaultBinding,a=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$5(this,o),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=a,this.moduleSpecifier=c};dist$1.ImportSpecifier=function o(e){var s=e.name,a=e.binding;_classCallCheck$5(this,o),this.type="ImportSpecifier",this.name=s,this.binding=a};dist$1.LabeledStatement=function o(e){var s=e.label,a=e.body;_classCallCheck$5(this,o),this.type="LabeledStatement",this.label=s,this.body=a};dist$1.LiteralBooleanExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralBooleanExpression",this.value=s};dist$1.LiteralInfinityExpression=function o(){_classCallCheck$5(this,o),this.type="LiteralInfinityExpression"};dist$1.LiteralNullExpression=function o(){_classCallCheck$5(this,o),this.type="LiteralNullExpression"};LiteralNumericExpression_1=dist$1.LiteralNumericExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralNumericExpression",this.value=s};dist$1.LiteralRegExpExpression=function o(e){var s=e.pattern,a=e.global,c=e.ignoreCase,h=e.multiLine,d=e.dotAll,g=e.unicode,_=e.sticky;_classCallCheck$5(this,o),this.type="LiteralRegExpExpression",this.pattern=s,this.global=a,this.ignoreCase=c,this.multiLine=h,this.dotAll=d,this.unicode=g,this.sticky=_};LiteralStringExpression_1=dist$1.LiteralStringExpression=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="LiteralStringExpression",this.value=s};dist$1.Method=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,h=e.params,d=e.body;_classCallCheck$5(this,o),this.type="Method",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=h,this.body=d};dist$1.Module=function o(e){var s=e.directives,a=e.items;_classCallCheck$5(this,o),this.type="Module",this.directives=s,this.items=a};dist$1.NewExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$5(this,o),this.type="NewExpression",this.callee=s,this.arguments=a};dist$1.NewTargetExpression=function o(){_classCallCheck$5(this,o),this.type="NewTargetExpression"};dist$1.ObjectAssignmentTarget=function o(e){var s=e.properties,a=e.rest;_classCallCheck$5(this,o),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=a};dist$1.ObjectBinding=function o(e){var s=e.properties,a=e.rest;_classCallCheck$5(this,o),this.type="ObjectBinding",this.properties=s,this.rest=a};dist$1.ObjectExpression=function o(e){var s=e.properties;_classCallCheck$5(this,o),this.type="ObjectExpression",this.properties=s};ReturnStatement_1=dist$1.ReturnStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ReturnStatement",this.expression=s};dist$1.Script=function o(e){var s=e.directives,a=e.statements;_classCallCheck$5(this,o),this.type="Script",this.directives=s,this.statements=a};dist$1.Setter=function o(e){var s=e.name,a=e.param,c=e.body;_classCallCheck$5(this,o),this.type="Setter",this.name=s,this.param=a,this.body=c};dist$1.ShorthandProperty=function o(e){var s=e.name;_classCallCheck$5(this,o),this.type="ShorthandProperty",this.name=s};dist$1.SpreadElement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="SpreadElement",this.expression=s};dist$1.SpreadProperty=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="SpreadProperty",this.expression=s};dist$1.StaticMemberAssignmentTarget=function o(e){var s=e.object,a=e.property;_classCallCheck$5(this,o),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=a};StaticMemberExpression_1=dist$1.StaticMemberExpression=function o(e){var s=e.object,a=e.property;_classCallCheck$5(this,o),this.type="StaticMemberExpression",this.object=s,this.property=a};dist$1.StaticPropertyName=function o(e){var s=e.value;_classCallCheck$5(this,o),this.type="StaticPropertyName",this.value=s};dist$1.Super=function o(){_classCallCheck$5(this,o),this.type="Super"};dist$1.SwitchCase=function o(e){var s=e.test,a=e.consequent;_classCallCheck$5(this,o),this.type="SwitchCase",this.test=s,this.consequent=a};dist$1.SwitchDefault=function o(e){var s=e.consequent;_classCallCheck$5(this,o),this.type="SwitchDefault",this.consequent=s};dist$1.SwitchStatement=function o(e){var s=e.discriminant,a=e.cases;_classCallCheck$5(this,o),this.type="SwitchStatement",this.discriminant=s,this.cases=a};dist$1.SwitchStatementWithDefault=function o(e){var s=e.discriminant,a=e.preDefaultCases,c=e.defaultCase,h=e.postDefaultCases;_classCallCheck$5(this,o),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=a,this.defaultCase=c,this.postDefaultCases=h};dist$1.TemplateElement=function o(e){var s=e.rawValue;_classCallCheck$5(this,o),this.type="TemplateElement",this.rawValue=s};dist$1.TemplateExpression=function o(e){var s=e.tag,a=e.elements;_classCallCheck$5(this,o),this.type="TemplateExpression",this.tag=s,this.elements=a};dist$1.ThisExpression=function o(){_classCallCheck$5(this,o),this.type="ThisExpression"};dist$1.ThrowStatement=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="ThrowStatement",this.expression=s};dist$1.TryCatchStatement=function o(e){var s=e.body,a=e.catchClause;_classCallCheck$5(this,o),this.type="TryCatchStatement",this.body=s,this.catchClause=a};dist$1.TryFinallyStatement=function o(e){var s=e.body,a=e.catchClause,c=e.finalizer;_classCallCheck$5(this,o),this.type="TryFinallyStatement",this.body=s,this.catchClause=a,this.finalizer=c};dist$1.UnaryExpression=function o(e){var s=e.operator,a=e.operand;_classCallCheck$5(this,o),this.type="UnaryExpression",this.operator=s,this.operand=a};dist$1.UpdateExpression=function o(e){var s=e.isPrefix,a=e.operator,c=e.operand;_classCallCheck$5(this,o),this.type="UpdateExpression",this.isPrefix=s,this.operator=a,this.operand=c};dist$1.VariableDeclaration=function o(e){var s=e.kind,a=e.declarators;_classCallCheck$5(this,o),this.type="VariableDeclaration",this.kind=s,this.declarators=a};dist$1.VariableDeclarationStatement=function o(e){var s=e.declaration;_classCallCheck$5(this,o),this.type="VariableDeclarationStatement",this.declaration=s};dist$1.VariableDeclarator=function o(e){var s=e.binding,a=e.init;_classCallCheck$5(this,o),this.type="VariableDeclarator",this.binding=s,this.init=a};dist$1.WhileStatement=function o(e){var s=e.test,a=e.body;_classCallCheck$5(this,o),this.type="WhileStatement",this.test=s,this.body=a};dist$1.WithStatement=function o(e){var s=e.object,a=e.body;_classCallCheck$5(this,o),this.type="WithStatement",this.object=s,this.body=a};dist$1.YieldExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="YieldExpression",this.expression=s};dist$1.YieldGeneratorExpression=function o(e){var s=e.expression;_classCallCheck$5(this,o),this.type="YieldGeneratorExpression",this.expression=s};var dist={},minimalCodegen={};/* -object-assign -(c) Sindre Sorhus -@license MIT -*/var getOwnPropertySymbols=Object.getOwnPropertySymbols,hasOwnProperty=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(o){if(o==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(o)}function shouldUseNative(){try{if(!Object.assign)return!1;var o=new String("abc");if(o[5]="de",Object.getOwnPropertyNames(o)[0]==="5")return!1;for(var e={},s=0;s<10;s++)e["_"+String.fromCharCode(s)]=s;var a=Object.getOwnPropertyNames(e).map(function(h){return e[h]});if(a.join("")!=="0123456789")return!1;var c={};return"abcdefghijklmnopqrst".split("").forEach(function(h){c[h]=h}),Object.keys(Object.assign({},c)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var objectAssign=shouldUseNative()?Object.assign:function(o,e){for(var s,a=toObject(o),c,h=1;h=48&&st<=55}s=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function b(st){return st===32||st===9||st===11||st===12||st===160||st>=5760&&s.indexOf(st)>=0}function $(st){return st===10||st===13||st===8232||st===8233}function j(st){if(st<=65535)return String.fromCharCode(st);var rt=String.fromCharCode(Math.floor((st-65536)/1024)+55296),it=String.fromCharCode((st-65536)%1024+56320);return rt+it}for(a=new Array(128),h=0;h<128;++h)a[h]=h>=97&&h<=122||h>=65&&h<=90||h===36||h===95;for(c=new Array(128),h=0;h<128;++h)c[h]=h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===36||h===95;function _e(st){return st<128?a[st]:e.NonAsciiIdentifierStart.test(j(st))}function et(st){return st<128?c[st]:e.NonAsciiIdentifierPart.test(j(st))}function tt(st){return st<128?a[st]:o.NonAsciiIdentifierStart.test(j(st))}function nt(st){return st<128?c[st]:o.NonAsciiIdentifierPart.test(j(st))}code$1.exports={isDecimalDigit:d,isHexDigit:g,isOctalDigit:_,isWhiteSpace:b,isLineTerminator:$,isIdentifierStartES5:_e,isIdentifierPartES5:et,isIdentifierStartES6:tt,isIdentifierPartES6:nt}})();var keyword$1={exports:{}};(function(){var o=code$1.exports;function e(_e){switch(_e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function s(_e,et){return!et&&_e==="yield"?!1:a(_e,et)}function a(_e,et){if(et&&e(_e))return!0;switch(_e.length){case 2:return _e==="if"||_e==="in"||_e==="do";case 3:return _e==="var"||_e==="for"||_e==="new"||_e==="try";case 4:return _e==="this"||_e==="else"||_e==="case"||_e==="void"||_e==="with"||_e==="enum";case 5:return _e==="while"||_e==="break"||_e==="catch"||_e==="throw"||_e==="const"||_e==="yield"||_e==="class"||_e==="super";case 6:return _e==="return"||_e==="typeof"||_e==="delete"||_e==="switch"||_e==="export"||_e==="import";case 7:return _e==="default"||_e==="finally"||_e==="extends";case 8:return _e==="function"||_e==="continue"||_e==="debugger";case 10:return _e==="instanceof";default:return!1}}function c(_e,et){return _e==="null"||_e==="true"||_e==="false"||s(_e,et)}function h(_e,et){return _e==="null"||_e==="true"||_e==="false"||a(_e,et)}function d(_e){return _e==="eval"||_e==="arguments"}function g(_e){var et,tt,nt;if(_e.length===0||(nt=_e.charCodeAt(0),!o.isIdentifierStartES5(nt)))return!1;for(et=1,tt=_e.length;et=tt||(st=_e.charCodeAt(et),!(56320<=st&&st<=57343)))return!1;nt=_(nt,st)}if(!rt(nt))return!1;rt=o.isIdentifierPartES6}return!0}function $(_e,et){return g(_e)&&!c(_e,et)}function j(_e,et){return b(_e)&&!h(_e,et)}keyword$1.exports={isKeywordES5:s,isKeywordES6:a,isReservedWordES5:c,isReservedWordES6:h,isRestrictedWord:d,isIdentifierNameES5:g,isIdentifierNameES6:b,isIdentifierES5:$,isIdentifierES6:j}})();(function(){utils.ast=ast.exports,utils.code=code$1.exports,utils.keyword=keyword$1.exports})();var coderep={};Object.defineProperty(coderep,"__esModule",{value:!0});var _createClass$4=function(){function o(e,s){for(var a=0;a":Precedence.Relational,"<=":Precedence.Relational,">=":Precedence.Relational,in:Precedence.Relational,instanceof:Precedence.Relational,"<<":Precedence.BitwiseSHIFT,">>":Precedence.BitwiseSHIFT,">>>":Precedence.BitwiseSHIFT,"+":Precedence.Additive,"-":Precedence.Additive,"*":Precedence.Multiplicative,"%":Precedence.Multiplicative,"/":Precedence.Multiplicative,"**":Precedence.Exponential};function getPrecedence(o){switch(o.type){case"ArrayExpression":case"FunctionExpression":case"ClassExpression":case"IdentifierExpression":case"AssignmentTargetIdentifier":case"NewTargetExpression":case"Super":case"LiteralBooleanExpression":case"LiteralNullExpression":case"LiteralNumericExpression":case"LiteralInfinityExpression":case"LiteralRegExpExpression":case"LiteralStringExpression":case"ObjectExpression":case"ThisExpression":case"SpreadElement":case"FunctionBody":return Precedence.Primary;case"ArrowExpression":case"AssignmentExpression":case"CompoundAssignmentExpression":case"YieldExpression":case"YieldGeneratorExpression":return Precedence.Assignment;case"ConditionalExpression":return Precedence.Conditional;case"ComputedMemberExpression":case"StaticMemberExpression":case"ComputedMemberAssignmentTarget":case"StaticMemberAssignmentTarget":switch(o.object.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence(o.object);default:return Precedence.Member}case"TemplateExpression":if(o.tag==null)return Precedence.Member;switch(o.tag.type){case"CallExpression":case"ComputedMemberExpression":case"StaticMemberExpression":case"TemplateExpression":return getPrecedence(o.tag);default:return Precedence.Member}case"BinaryExpression":return BinaryPrecedence[o.operator];case"CallExpression":return Precedence.Call;case"NewExpression":return o.arguments.length===0?Precedence.New:Precedence.Member;case"UpdateExpression":return o.isPrefix?Precedence.Prefix:Precedence.Postfix;case"AwaitExpression":case"UnaryExpression":return Precedence.Prefix;default:throw new Error("unreachable: "+o.type)}}function escapeStringLiteral(o){for(var e="",s=0,a=0,c=0,h=o.length;cs?"'":'"';e+=g;for(var _=0;_1&&arguments[1]!==void 0?arguments[1]:!1;_classCallCheck$4(this,e);var c=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return c.token=s,c.isRegExp=a,c}return _createClass$4(e,[{key:"emit",value:function(a){a.put(this.token,this.isRegExp)}}]),e}(CodeRep);coderep.RawToken=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.token=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.putRaw(this.token)}}]),e}(CodeRep);coderep.NumberCodeRep=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.number=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.putNumber(this.number)}}]),e}(CodeRep);coderep.Paren=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.put("("),this.expr.emit(a,!1),a.put(")")}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.Bracket=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.put("["),this.expr.emit(a,!1),a.put("]")}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.Brace=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){a.put("{"),this.expr.emit(a,!1),a.put("}")}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.NoIn=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a){this.expr.emit(a,!0)}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.ContainsIn=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.expr=s,a}return _createClass$4(e,[{key:"emit",value:function(a,c){c?(a.put("("),this.expr.emit(a,!1),a.put(")")):this.expr.emit(a,!1)}},{key:"forEach",value:function(a){a(this),this.expr.forEach(a)}}]),e}(CodeRep);coderep.Seq=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.children=s,a}return _createClass$4(e,[{key:"emit",value:function(a,c){this.children.forEach(function(h){return h.emit(a,c)})}},{key:"forEach",value:function(a){a(this),this.children.forEach(function(c){return c.forEach(a)})}}]),e}(CodeRep);coderep.Semi=function(o){_inherits$2(e,o);function e(){return _classCallCheck$4(this,e),_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,";"))}return e}(Token);coderep.CommaSep=function(o){_inherits$2(e,o);function e(s){_classCallCheck$4(this,e);var a=_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return a.children=s,a}return _createClass$4(e,[{key:"emit",value:function(a,c){var h=!0;this.children.forEach(function(d){h?h=!1:a.put(","),d.emit(a,c)})}},{key:"forEach",value:function(a){a(this),this.children.forEach(function(c){return c.forEach(a)})}}]),e}(CodeRep);coderep.SemiOp=function(o){_inherits$2(e,o);function e(){return _classCallCheck$4(this,e),_possibleConstructorReturn$2(this,(e.__proto__||Object.getPrototypeOf(e)).call(this))}return _createClass$4(e,[{key:"emit",value:function(a){a.putOptionalSemi()}}]),e}(CodeRep);Object.defineProperty(minimalCodegen,"__esModule",{value:!0});var _createClass$3=function(){function o(e,s){for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:!1;return new _coderep$1.Token(o,e)}function paren(o){return new _coderep$1.Paren(o)}function brace(o){return new _coderep$1.Brace(o)}function bracket$1(o){return new _coderep$1.Bracket(o)}function noIn$1(o){return new _coderep$1.NoIn(o)}function markContainsIn$1(o){return o.containsIn?new _coderep$1.ContainsIn(o):o}function seq$1(){for(var o=arguments.length,e=Array(o),s=0;s0&&c[c.length-1]==null&&(h=seq$1(h,t$1(","))),bracket$1(h)}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return seq$1(t$1("await"),p$1(s.expression,(0,_coderep$1.getPrecedence)(s),c))}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return seq$1(t$1("..."),p$1(s.expression,_coderep$1.Precedence.Assignment,c))}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return seq$1(t$1("..."),getAssignmentExpr(c))}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,h=a.expression,d=c,g=h,_=h.containsIn,b=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_coderep$1.getPrecedence)(s.expression)<(0,_coderep$1.getPrecedence)(s)&&(g=paren(g),_=!1),(0,_objectAssign2$1.default)(seq$1(d,t$1("="),g),{containsIn:_,startsWithCurly:b,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){var a=t$1(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,h=a.init;return seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,h))}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,h=a.expression,d=c,g=h,_=h.containsIn,b=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_coderep$1.getPrecedence)(s.expression)<(0,_coderep$1.getPrecedence)(s)&&(g=paren(g),_=!1),(0,_objectAssign2$1.default)(seq$1(d,t$1(s.operator),g),{containsIn:_,startsWithCurly:b,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,h=a.right,d=c,g=c.startsWithCurly,_=c.startsWithLetSquareBracket,b=c.startsWithFunctionOrClass,$=c.containsIn,j=s.operator==="**";((0,_coderep$1.getPrecedence)(s.left)<(0,_coderep$1.getPrecedence)(s)||j&&((0,_coderep$1.getPrecedence)(s.left)===(0,_coderep$1.getPrecedence)(s)||s.left.type==="UnaryExpression"))&&(d=paren(d),g=!1,_=!1,b=!1,$=!1);var _e=h,et=h.containsIn;return((0,_coderep$1.getPrecedence)(s.right)<(0,_coderep$1.getPrecedence)(s)||!j&&(0,_coderep$1.getPrecedence)(s.right)===(0,_coderep$1.getPrecedence)(s))&&(_e=paren(_e),et=!1),(0,_objectAssign2$1.default)(seq$1(d,t$1(s.operator),_e),{containsIn:$||et||s.operator==="in",containsGroup:s.operator===",",startsWithCurly:g,startsWithLetSquareBracket:_,startsWithFunctionOrClass:b})}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,h=a.init;return seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,h))}},{key:"reduceBindingIdentifier",value:function(s){var a=t$1(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=a.elements,h=a.rest,d=void 0;return c.length===0?d=h==null?empty$2():seq$1(t$1("..."),h):(c=c.concat(h==null?[]:[seq$1(t$1("..."),h)]),d=commaSep(c.map(getAssignmentExpr)),c.length>0&&c[c.length-1]==null&&(d=seq$1(d,t$1(",")))),bracket$1(d)}},{key:"reduceArrayBinding",value:function(s,a){var c=a.elements,h=a.rest,d=void 0;return c.length===0?d=h==null?empty$2():seq$1(t$1("..."),h):(c=c.concat(h==null?[]:[seq$1(t$1("..."),h)]),d=commaSep(c.map(getAssignmentExpr)),c.length>0&&c[c.length-1]==null&&(d=seq$1(d,t$1(",")))),bracket$1(d)}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,h=a.rest,d=commaSep(c);c.length===0?d=h==null?empty$2():seq$1(t$1("..."),h):d=h==null?d:seq$1(d,t$1(","),t$1("..."),h);var g=brace(d);return g.startsWithCurly=!0,g}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,h=a.rest,d=commaSep(c);c.length===0?d=h==null?empty$2():seq$1(t$1("..."),h):d=h==null?d:seq$1(d,t$1(","),t$1("..."),h);var g=brace(d);return g.startsWithCurly=!0,g}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,h=a.init;return s.init==null?c:seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,h))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,h=a.binding;return seq$1(c,t$1(":"),h)}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,h=a.init;return s.init==null?c:seq$1(c,t$1("="),p$1(s.init,_coderep$1.Precedence.Assignment,h))}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,h=a.binding;return seq$1(c,t$1(":"),h)}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return brace(seq$1.apply(void 0,_toConsumableArray$2(c)))}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return c}},{key:"reduceBreakStatement",value:function(s){return seq$1(t$1("break"),s.label?t$1(s.label):empty$2(),semiOp())}},{key:"reduceCallExpression",value:function(s,a){var c=a.callee,h=a.arguments,d=h.map(function(g,_){return p$1(s.arguments[_],_coderep$1.Precedence.Assignment,g)});return(0,_objectAssign2$1.default)(seq$1(p$1(s.callee,(0,_coderep$1.getPrecedence)(s),c),paren(commaSep(d))),{startsWithCurly:c.startsWithCurly,startsWithLet:c.startsWithLet,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,h=a.body;return seq$1(t$1("catch"),paren(c),h)}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,h=a.super,d=a.elements,g=seq$1(t$1("class"),s.name.name==="*default*"?empty$2():c);return h!=null&&(g=seq$1(g,t$1("extends"),p$1(s.super,_coderep$1.Precedence.New,h))),g=seq$1.apply(void 0,[g,t$1("{")].concat(_toConsumableArray$2(d),[t$1("}")])),g}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,h=a.super,d=a.elements,g=t$1("class");return c!=null&&(g=seq$1(g,c)),h!=null&&(g=seq$1(g,t$1("extends"),p$1(s.super,_coderep$1.Precedence.New,h))),g=seq$1.apply(void 0,[g,t$1("{")].concat(_toConsumableArray$2(d),[t$1("}")])),g.startsWithFunctionOrClass=!0,g}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return s.isStatic?seq$1(t$1("static"),c):c}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,h=a.expression,d=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2$1.default)(seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),bracket$1(h)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:d,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,h=a.expression,d=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2$1.default)(seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),bracket$1(h)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:d,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return bracket$1(p$1(s.expression,_coderep$1.Precedence.Assignment,c))}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,h=a.consequent,d=a.alternate,g=c.containsIn||d.containsIn,_=c.startsWithCurly,b=c.startsWithLetSquareBracket,$=c.startsWithFunctionOrClass;return(0,_objectAssign2$1.default)(seq$1(p$1(s.test,_coderep$1.Precedence.LogicalOR,c),t$1("?"),p$1(s.consequent,_coderep$1.Precedence.Assignment,h),t$1(":"),p$1(s.alternate,_coderep$1.Precedence.Assignment,d)),{containsIn:g,startsWithCurly:_,startsWithLetSquareBracket:b,startsWithFunctionOrClass:$})}},{key:"reduceContinueStatement",value:function(s){return seq$1(t$1("continue"),s.label?t$1(s.label):empty$2(),semiOp())}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,h=a.expression;return seq$1(c,t$1(":"),getAssignmentExpr(h))}},{key:"reduceDebuggerStatement",value:function(){return seq$1(t$1("debugger"),semiOp())}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,h=a.test;return seq$1(t$1("do"),c,t$1("while"),paren(h),semiOp())}},{key:"reduceEmptyStatement",value:function(){return semi()}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression,h=c.startsWithCurly||c.startsWithLetSquareBracket||c.startsWithFunctionOrClass;return seq$1(h?paren(c):c,semiOp())}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,h=a.right,d=a.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("in"),h)),d),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,h=a.right,d=a.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("of"),p$1(s.right,_coderep$1.Precedence.Assignment,h))),d),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceForStatement",value:function(s,a){var c=a.init,h=a.test,d=a.update,g=a.body;return c&&(c.startsWithLetSquareBracket&&(c=paren(c)),c=noIn$1(markContainsIn$1(c))),(0,_objectAssign2$1.default)(seq$1(t$1("for"),paren(seq$1(c||empty$2(),semi(),h||empty$2(),semi(),d||empty$2())),g),{endsWithMissingElse:g.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,h=a.right,d=a.body;return c=s.left.type==="VariableDeclaration"?noIn$1(markContainsIn$1(c)):c,(0,_objectAssign2$1.default)(seq$1(t$1("for"),t$1("await"),paren(seq$1(c.startsWithLet?paren(c):c,t$1("of"),p$1(s.right,_coderep$1.Precedence.Assignment,h))),d),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,h=a.statements;return h.length&&(h[0]=this.parenToAvoidBeingDirective(s.statements[0],h[0])),brace(seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(h))))}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,h=a.params,d=a.body;return seq$1(s.isAsync?t$1("async"):empty$2(),t$1("function"),s.isGenerator?t$1("*"):empty$2(),s.name.name==="*default*"?empty$2():c,h,d)}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,h=a.params,d=a.body,g=seq$1(s.isAsync?t$1("async"):empty$2(),t$1("function"),s.isGenerator?t$1("*"):empty$2(),c||empty$2(),h,d);return g.startsWithFunctionOrClass=!0,g}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,h=a.rest;return paren(commaSep(c.concat(h==null?[]:[seq$1(t$1("..."),h)])))}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,h=a.body;c=this.regenerateArrowParams(s.params,c);var d=!1;return s.body.type!=="FunctionBody"&&(h.startsWithCurly?h=paren(h):h.containsIn&&(d=!0)),(0,_objectAssign2$1.default)(seq$1(s.isAsync?t$1("async"):empty$2(),c,t$1("=>"),p$1(s.body,_coderep$1.Precedence.Assignment,h)),{containsIn:d})}},{key:"reduceGetter",value:function(s,a){var c=a.name,h=a.body;return seq$1(t$1("get"),c,paren(empty$2()),h)}},{key:"reduceIdentifierExpression",value:function(s){var a=t$1(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,h=a.consequent,d=a.alternate;return d&&h.endsWithMissingElse&&(h=brace(h)),(0,_objectAssign2$1.default)(seq$1(t$1("if"),paren(c),h,d?seq$1(t$1("else"),d):empty$2()),{endsWithMissingElse:d?d.endsWithMissingElse:!0})}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,h=a.namedImports,d=[];return c!=null&&d.push(c),h.length>0&&d.push(brace(commaSep(h))),d.length===0?seq$1(t$1("import"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp()):seq$1(t$1("import"),commaSep(d),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,h=a.namespaceBinding;return seq$1(t$1("import"),c==null?empty$2():seq$1(c,t$1(",")),t$1("*"),t$1("as"),h,t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return s.name==null?c:seq$1(t$1(s.name),t$1("as"),c)}},{key:"reduceExportAllFrom",value:function(s){return seq$1(t$1("export"),t$1("*"),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return seq$1(t$1("export"),brace(commaSep(c)),t$1("from"),t$1((0,_coderep$1.escapeStringLiteral)(s.moduleSpecifier)),semiOp())}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return seq$1(t$1("export"),brace(commaSep(c)),semiOp())}},{key:"reduceExport",value:function(s,a){var c=a.declaration;switch(s.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:c=seq$1(c,semiOp())}return seq$1(t$1("export"),c)}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;switch(c=c.startsWithFunctionOrClass?paren(c):c,s.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq$1(t$1("export default"),c);default:return seq$1(t$1("export default"),p$1(s.body,_coderep$1.Precedence.Assignment,c),semiOp())}}},{key:"reduceExportFromSpecifier",value:function(s){return s.exportedName==null?t$1(s.name):seq$1(t$1(s.name),t$1("as"),t$1(s.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return s.exportedName==null?c:seq$1(c,t$1("as"),t$1(s.exportedName))}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return(0,_objectAssign2$1.default)(seq$1(t$1(s.label+":"),c),{endsWithMissingElse:c.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(s){return t$1(s.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return t$1("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return t$1("2e308")}},{key:"reduceLiteralNumericExpression",value:function(s){return new _coderep$1.NumberCodeRep(s.value)}},{key:"reduceLiteralRegExpExpression",value:function(s){return t$1("/"+s.pattern+"/"+(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiLine?"m":"")+(s.dotAll?"s":"")+(s.unicode?"u":"")+(s.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(s){return t$1((0,_coderep$1.escapeStringLiteral)(s.value))}},{key:"reduceMethod",value:function(s,a){var c=a.name,h=a.params,d=a.body;return seq$1(s.isAsync?t$1("async"):empty$2(),s.isGenerator?t$1("*"):empty$2(),c,h,d)}},{key:"reduceModule",value:function(s,a){var c=a.directives,h=a.items;return h.length&&(h[0]=this.parenToAvoidBeingDirective(s.items[0],h[0])),seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(h)))}},{key:"reduceNewExpression",value:function(s,a){var c=a.callee,h=a.arguments,d=h.map(function(_,b){return p$1(s.arguments[b],_coderep$1.Precedence.Assignment,_)}),g=(0,_coderep$1.getPrecedence)(s.callee)===_coderep$1.Precedence.Call?paren(c):p$1(s.callee,(0,_coderep$1.getPrecedence)(s),c);return seq$1(t$1("new"),g,h.length===0?empty$2():paren(commaSep(d)))}},{key:"reduceNewTargetExpression",value:function(){return t$1("new.target")}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties,h=brace(commaSep(c));return h.startsWithCurly=!0,h}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return s.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,_objectAssign2$1.default)(seq$1(p$1(s.operand,_coderep$1.Precedence.New,c),t$1(s.operator)),{startsWithCurly:c.startsWithCurly,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return seq$1(t$1(s.operator),p$1(s.operand,(0,_coderep$1.getPrecedence)(s),c))}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return seq$1(t$1("return"),c||empty$2(),semiOp())}},{key:"reduceScript",value:function(s,a){var c=a.directives,h=a.statements;return h.length&&(h[0]=this.parenToAvoidBeingDirective(s.statements[0],h[0])),seq$1.apply(void 0,_toConsumableArray$2(c).concat(_toConsumableArray$2(h)))}},{key:"reduceSetter",value:function(s,a){var c=a.name,h=a.param,d=a.body;return seq$1(t$1("set"),c,paren(h),d)}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object,h=seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),t$1("."),t$1(s.property));return h.startsWithLet=c.startsWithLet,h.startsWithCurly=c.startsWithCurly,h.startsWithLetSquareBracket=c.startsWithLetSquareBracket,h.startsWithFunctionOrClass=c.startsWithFunctionOrClass,h}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object,h=seq$1(p$1(s.object,(0,_coderep$1.getPrecedence)(s),c),t$1("."),t$1(s.property));return h.startsWithLet=c.startsWithLet,h.startsWithCurly=c.startsWithCurly,h.startsWithLetSquareBracket=c.startsWithLetSquareBracket,h.startsWithFunctionOrClass=c.startsWithFunctionOrClass,h}},{key:"reduceStaticPropertyName",value:function(s){if(_esutils$1.keyword.isIdentifierNameES6(s.value))return t$1(s.value);var a=parseFloat(s.value);return a>=0&&a.toString()===s.value?new _coderep$1.NumberCodeRep(a):t$1((0,_coderep$1.escapeStringLiteral)(s.value))}},{key:"reduceSuper",value:function(){return t$1("super")}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,h=a.consequent;return seq$1(t$1("case"),c,t$1(":"),seq$1.apply(void 0,_toConsumableArray$2(h)))}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return seq$1(t$1("default:"),seq$1.apply(void 0,_toConsumableArray$2(c)))}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,h=a.cases;return seq$1(t$1("switch"),paren(c),brace(seq$1.apply(void 0,_toConsumableArray$2(h))))}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,h=a.preDefaultCases,d=a.defaultCase,g=a.postDefaultCases;return seq$1(t$1("switch"),paren(c),brace(seq$1.apply(void 0,_toConsumableArray$2(h).concat([d],_toConsumableArray$2(g)))))}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,h=a.elements,d=s.tag==null?empty$2():p$1(s.tag,(0,_coderep$1.getPrecedence)(s),c);d=seq$1(d,t$1("`"));for(var g=0,_=s.elements.length;g<_;++g)s.elements[g].type==="TemplateElement"?d=seq$1(d,g>0?t$1("}"):empty$2(),h[g],g<_-1?t$1("${"):empty$2()):d=seq$1(d,h[g]);return d=seq$1(d,t$1("`")),s.tag!=null&&(d.startsWithCurly=c.startsWithCurly,d.startsWithLet=c.startsWithLet,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass),d}},{key:"reduceTemplateElement",value:function(s){return new _coderep$1.RawToken(s.rawValue)}},{key:"reduceThisExpression",value:function(){return t$1("this")}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return seq$1(t$1("throw"),c,semiOp())}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,h=a.catchClause;return seq$1(t$1("try"),c,h)}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=a.body,h=a.catchClause,d=a.finalizer;return seq$1(t$1("try"),c,h||empty$2(),t$1("finally"),d)}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return s.expression==null?t$1("yield"):(0,_objectAssign2$1.default)(seq$1(t$1("yield"),p$1(s.expression,(0,_coderep$1.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return(0,_objectAssign2$1.default)(seq$1(t$1("yield"),t$1("*"),p$1(s.expression,(0,_coderep$1.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceDirective",value:function(s){var a=s.rawValue.match(/(^|[^\\])(\\\\)*"/)?"'":'"';return seq$1(t$1(a+s.rawValue+a),semiOp())}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return seq$1(t$1(s.kind),commaSep(c))}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return seq$1(c,semiOp())}},{key:"reduceVariableDeclarator",value:function(s,a){var c=a.binding,h=a.init,d=h&&h.containsIn&&!h.containsGroup;return h&&(h.containsGroup?h=paren(h):h=markContainsIn$1(h)),(0,_objectAssign2$1.default)(h==null?c:seq$1(c,t$1("="),h),{containsIn:d})}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,h=a.body;return(0,_objectAssign2$1.default)(seq$1(t$1("while"),paren(c),h),{endsWithMissingElse:h.endsWithMissingElse})}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,h=a.body;return(0,_objectAssign2$1.default)(seq$1(t$1("with"),paren(c),h),{endsWithMissingElse:h.endsWithMissingElse})}}]),o}();minimalCodegen.default=MinimalCodeGen;var formattedCodegen={};Object.defineProperty(formattedCodegen,"__esModule",{value:!0});formattedCodegen.FormattedCodeGen=formattedCodegen.ExtensibleCodeGen=formattedCodegen.Sep=void 0;var _createClass$2=function(){function o(e,s){for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:!1;return new _coderep.Token(s,a)}},{key:"p",value:function(s,a,c){return(0,_coderep.getPrecedence)(s)0&&h[h.length-1]==null&&(d=seq(d,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA))),this.bracket(d,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL)}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return seq(this.t("await"),this.sep(Sep.AWAIT),this.p(s.expression,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.p(s.expression,_coderep.Precedence.Assignment,c))}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return seq(this.t("..."),this.sep(Sep.SPREAD),this.getAssignmentExpr(c))}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,h=a.expression,d=c,g=h,_=h.containsIn,b=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(g=this.paren(g,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),_=!1),(0,_objectAssign2.default)(seq(d,this.sep(Sep.BEFORE_ASSIGN_OP("=")),this.t("="),this.sep(Sep.AFTER_ASSIGN_OP("=")),g),{containsIn:_,startsWithCurly:b,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,h=a.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,h))}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,h=a.expression,d=c,g=h,_=h.containsIn,b=c.startsWithCurly,$=c.startsWithLetSquareBracket,j=c.startsWithFunctionOrClass;return(0,_coderep.getPrecedence)(s.expression)<(0,_coderep.getPrecedence)(s)&&(g=this.paren(g,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),_=!1),(0,_objectAssign2.default)(seq(d,this.sep(Sep.BEFORE_ASSIGN_OP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_ASSIGN_OP(s.operator)),g),{containsIn:_,startsWithCurly:b,startsWithLetSquareBracket:$,startsWithFunctionOrClass:j})}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,h=a.right,d=c,g=c.startsWithCurly,_=c.startsWithLetSquareBracket,b=c.startsWithFunctionOrClass,$=c.containsIn,j=s.operator==="**";((0,_coderep.getPrecedence)(s.left)<(0,_coderep.getPrecedence)(s)||j&&((0,_coderep.getPrecedence)(s.left)===(0,_coderep.getPrecedence)(s)||s.left.type==="UnaryExpression"))&&(d=this.paren(d,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),g=!1,_=!1,b=!1,$=!1);var _e=h,et=h.containsIn;return((0,_coderep.getPrecedence)(s.right)<(0,_coderep.getPrecedence)(s)||!j&&(0,_coderep.getPrecedence)(s.right)===(0,_coderep.getPrecedence)(s))&&(_e=this.paren(_e,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER),et=!1),(0,_objectAssign2.default)(seq(d,this.sep(Sep.BEFORE_BINOP(s.operator)),this.t(s.operator),this.sep(Sep.AFTER_BINOP(s.operator)),_e),{containsIn:$||et||s.operator==="in",containsGroup:s.operator===",",startsWithCurly:g,startsWithLetSquareBracket:_,startsWithFunctionOrClass:b})}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,h=a.init;return seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,h))}},{key:"reduceBindingIdentifier",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=this,h=a.elements,d=a.rest,g=void 0;return h.length===0?g=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(h=h.concat(d==null?[]:[seq(this.t("..."),this.sep(Sep.REST),d)]),g=this.commaSep(h.map(function(_){return c.getAssignmentExpr(_)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),h.length>0&&h[h.length-1]==null&&(g=seq(g,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(g,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceArrayBinding",value:function(s,a){var c=this,h=a.elements,d=a.rest,g=void 0;return h.length===0?g=d==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),d):(h=h.concat(d==null?[]:[seq(this.t("..."),this.sep(Sep.REST),d)]),g=this.commaSep(h.map(function(_){return c.getAssignmentExpr(_)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA),h.length>0&&h[h.length-1]==null&&(g=seq(g,this.sep(Sep.ARRAY_BEFORE_COMMA),this.t(","),this.sep(Sep.ARRAY_AFTER_COMMA)))),this.bracket(g,Sep.ARRAY_INITIAL,Sep.ARRAY_FINAL,Sep.ARRAY_EMPTY)}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,h=a.rest,d=void 0;c.length===0?d=h==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),h):(d=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),d=h==null?d:this.commaSep([d,seq(this.t("..."),this.sep(Sep.REST),h)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var g=this.brace(d,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return g.startsWithCurly=!0,g}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,h=a.rest,d=void 0;c.length===0?d=h==null?empty$1():seq(this.t("..."),this.sep(Sep.REST),h):(d=this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),d=h==null?d:this.commaSep([d,seq(this.t("..."),this.sep(Sep.REST),h)],Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA));var g=this.brace(d,s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return g.startsWithCurly=!0,g}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,h=a.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,h))}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,h=a.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),h)}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,h=a.init;return s.init==null?c:seq(c,this.sep(Sep.BEFORE_DEFAULT_EQUALS),this.t("="),this.sep(Sep.AFTER_DEFAULT_EQUALS),this.p(s.init,_coderep.Precedence.Assignment,h))}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,h=a.binding;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),h)}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return this.brace(seq.apply(void 0,_toConsumableArray$1(c)),s,Sep.BLOCK_BRACE_INITIAL,Sep.BLOCK_BRACE_FINAL,Sep.BLOCK_EMPTY)}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return seq(c,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceBreakStatement",value:function(s){return seq(this.t("break"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceCallExpression",value:function(s,a){var c=this,h=a.callee,d=a.arguments,g=d.map(function(_,b){return c.p(s.arguments[b],_coderep.Precedence.Assignment,_)});return(0,_objectAssign2.default)(seq(this.p(s.callee,(0,_coderep.getPrecedence)(s),h),this.sep(Sep.CALL),this.paren(this.commaSep(g,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.CALL_PAREN_BEFORE,Sep.CALL_PAREN_AFTER,Sep.CALL_PAREN_EMPTY)),{startsWithCurly:h.startsWithCurly,startsWithLet:h.startsWithLet,startsWithLetSquareBracket:h.startsWithLetSquareBracket,startsWithFunctionOrClass:h.startsWithFunctionOrClass})}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,h=a.body;return seq(this.t("catch"),this.sep(Sep.BEFORE_CATCH_BINDING),this.paren(c,Sep.CATCH_PAREN_BEFORE,Sep.CATCH_PAREN_AFTER),this.sep(Sep.AFTER_CATCH_BINDING),h)}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,h=a.super,d=a.elements,g=seq(this.t("class"),s.name.name==="*default*"?empty$1():seq(this.sep(Sep.BEFORE_CLASS_NAME),c));return h!=null&&(g=seq(g,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,h))),g=seq(g,this.sep(Sep.BEFORE_CLASS_DECLARATION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(d)),s,Sep.CLASS_BRACE_INITIAL,Sep.CLASS_BRACE_FINAL,Sep.CLASS_EMPTY),this.sep(Sep.AFTER_STATEMENT(s))),g}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,h=a.super,d=a.elements,g=this.t("class");return c!=null&&(g=seq(g,this.sep(Sep.BEFORE_CLASS_NAME),c)),h!=null&&(g=seq(g,this.sep(Sep.BEFORE_EXTENDS),this.t("extends"),this.sep(Sep.AFTER_EXTENDS),this.p(s.super,_coderep.Precedence.New,h))),g=seq(g,this.sep(Sep.BEFORE_CLASS_EXPRESSION_ELEMENTS),this.brace(seq.apply(void 0,_toConsumableArray$1(d)),s,Sep.CLASS_EXPRESSION_BRACE_INITIAL,Sep.CLASS_EXPRESSION_BRACE_FINAL,Sep.CLASS_EXPRESSION_BRACE_EMPTY)),g.startsWithFunctionOrClass=!0,g}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return c=seq(this.sep(Sep.BEFORE_CLASS_ELEMENT),c,this.sep(Sep.AFTER_CLASS_ELEMENT)),s.isStatic?seq(this.t("static"),this.sep(Sep.AFTER_STATIC),c):c}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,h=a.expression,d=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET),this.bracket(h,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:d,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,h=a.expression,d=c.startsWithLetSquareBracket||s.object.type==="IdentifierExpression"&&s.object.name==="let";return(0,_objectAssign2.default)(seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.COMPUTED_MEMBER_EXPRESSION),this.bracket(h,Sep.COMPUTED_MEMBER_BRACKET_INTIAL,Sep.COMPUTED_MEMBER_BRACKET_FINAL)),{startsWithLet:c.startsWithLet,startsWithLetSquareBracket:d,startsWithCurly:c.startsWithCurly,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return this.bracket(this.p(s.expression,_coderep.Precedence.Assignment,c),Sep.COMPUTED_PROPERTY_BRACKET_INTIAL,Sep.COMPUTED_PROPERTY_BRACKET_FINAL)}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,h=a.consequent,d=a.alternate,g=c.containsIn||d.containsIn,_=c.startsWithCurly,b=c.startsWithLetSquareBracket,$=c.startsWithFunctionOrClass;return(0,_objectAssign2.default)(seq(this.p(s.test,_coderep.Precedence.LogicalOR,c),this.sep(Sep.BEFORE_TERNARY_QUESTION),this.t("?"),this.sep(Sep.AFTER_TERNARY_QUESTION),this.p(s.consequent,_coderep.Precedence.Assignment,h),this.sep(Sep.BEFORE_TERNARY_COLON),this.t(":"),this.sep(Sep.AFTER_TERNARY_COLON),this.p(s.alternate,_coderep.Precedence.Assignment,d)),{containsIn:g,startsWithCurly:_,startsWithLetSquareBracket:b,startsWithFunctionOrClass:$})}},{key:"reduceContinueStatement",value:function(s){return seq(this.t("continue"),s.label?seq(this.sep(Sep.BEFORE_JUMP_LABEL),this.t(s.label)):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,h=a.expression;return seq(c,this.sep(Sep.BEFORE_PROP),this.t(":"),this.sep(Sep.AFTER_PROP),this.getAssignmentExpr(h))}},{key:"reduceDebuggerStatement",value:function(s){return seq(this.t("debugger"),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,h=a.test;return seq(this.t("do"),this.sep(Sep.AFTER_DO),c,this.sep(Sep.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(Sep.AFTER_DOWHILE_WHILE),this.paren(h,Sep.DO_WHILE_TEST_PAREN_BEFORE,Sep.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceEmptyStatement",value:function(s){return seq(this.t(";"),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression,h=c.startsWithCurly||c.startsWithLetSquareBracket||c.startsWithFunctionOrClass;return seq(h?this.paren(c,Sep.EXPRESSION_STATEMENT_PAREN_BEFORE,Sep.EXPRESSION_STATEMENT_PAREN_AFTER):c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,h=a.right,d=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FORIN_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_IN_LET_PAREN_BEFORE,Sep.FOR_IN_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FORIN_IN),this.t("in"),this.sep(Sep.AFTER_FORIN_FOR),h),Sep.FOR_IN_PAREN_BEFORE,Sep.FOR_IN_PAREN_AFTER),this.sep(Sep.BEFORE_FORIN_BODY),d,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,h=a.right,d=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,h)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),d,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceForStatement",value:function(s,a){var c=a.init,h=a.test,d=a.update,g=a.body;return c&&(c.startsWithLetSquareBracket&&(c=this.paren(c,Sep.FOR_LET_PAREN_BEFORE,Sep.FOR_LET_PAREN_AFTER)),c=noIn(markContainsIn(c))),(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOR_FOR),this.paren(seq(c?seq(this.sep(Sep.BEFORE_FOR_INIT),c,this.sep(Sep.AFTER_FOR_INIT)):this.sep(Sep.EMPTY_FOR_INIT),this.t(";"),h?seq(this.sep(Sep.BEFORE_FOR_TEST),h,this.sep(Sep.AFTER_FOR_TEST)):this.sep(Sep.EMPTY_FOR_TEST),this.t(";"),d?seq(this.sep(Sep.BEFORE_FOR_UPDATE),d,this.sep(Sep.AFTER_FOR_UPDATE)):this.sep(Sep.EMPTY_FOR_UPDATE))),this.sep(Sep.BEFORE_FOR_BODY),g,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:g.endsWithMissingElse})}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,h=a.right,d=a.body;return c=s.left.type==="VariableDeclaration"?noIn(markContainsIn(c)):c,(0,_objectAssign2.default)(seq(this.t("for"),this.sep(Sep.AFTER_FOROF_FOR),this.t("await"),this.sep(Sep.AFTER_FORAWAIT_AWAIT),this.paren(seq(c.startsWithLet?this.paren(c,Sep.FOR_OF_LET_PAREN_BEFORE,Sep.FOR_OF_LET_PAREN_AFTER):c,this.sep(Sep.BEFORE_FOROF_OF),this.t("of"),this.sep(Sep.AFTER_FOROF_FOR),this.p(s.right,_coderep.Precedence.Assignment,h)),Sep.FOR_OF_PAREN_BEFORE,Sep.FOR_OF_PAREN_AFTER),this.sep(Sep.BEFORE_FOROF_BODY),d,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,h=a.statements;return h.length&&(h[0]=this.parenToAvoidBeingDirective(s.statements[0],h[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_FUNCTION_DIRECTIVES):empty$1()],_toConsumableArray$1(h)))}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,h=a.params,d=a.body;return seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),s.name.name==="*default*"?empty$1():c,this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(h,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_DECLARATION_BODY),this.brace(d,s,Sep.FUNCTION_BRACE_INITIAL,Sep.FUNCTION_BRACE_FINAL,Sep.FUNCTION_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,h=a.params,d=a.body,g=seq(s.isAsync?this.t("async"):empty$1(),this.t("function"),s.isGenerator?seq(this.sep(Sep.BEFORE_GENERATOR_STAR),this.t("*"),this.sep(Sep.AFTER_GENERATOR_STAR)):empty$1(),this.sep(Sep.BEFORE_FUNCTION_NAME(s)),c||empty$1(),this.sep(Sep.BEFORE_FUNCTION_PARAMS),this.paren(h,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_FUNCTION_EXPRESSION_BODY),this.brace(d,s,Sep.FUNCTION_EXPRESSION_BRACE_INITIAL,Sep.FUNCTION_EXPRESSION_BRACE_FINAL,Sep.FUNCTION_EXPRESSION_EMPTY));return g.startsWithFunctionOrClass=!0,g}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,h=a.rest;return this.commaSep(c.concat(h==null?[]:[seq(this.t("..."),this.sep(Sep.REST),h)]),Sep.PARAMETER_BEFORE_COMMA,Sep.PARAMETER_AFTER_COMMA)}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,h=a.body;(s.params.rest!=null||s.params.items.length!==1||s.params.items[0].type!=="BindingIdentifier")&&(c=this.paren(c,Sep.ARROW_PARAMETERS_PAREN_BEFORE,Sep.ARROW_PARAMETERS_PAREN_AFTER,Sep.ARROW_PARAMETERS_PAREN_EMPTY));var d=!1;return s.body.type==="FunctionBody"?h=this.brace(h,s,Sep.ARROW_BRACE_INITIAL,Sep.ARROW_BRACE_FINAL,Sep.ARROW_BRACE_EMPTY):h.startsWithCurly?h=this.paren(h,Sep.ARROW_BODY_PAREN_BEFORE,Sep.ARROW_BODY_PAREN_AFTER):h.containsIn&&(d=!0),(0,_objectAssign2.default)(seq(s.isAsync?seq(this.t("async"),this.sep(Sep.BEFORE_ARROW_ASYNC_PARAMS)):empty$1(),c,this.sep(Sep.BEFORE_ARROW),this.t("=>"),this.sep(Sep.AFTER_ARROW),this.p(s.body,_coderep.Precedence.Assignment,h)),{containsIn:d})}},{key:"reduceGetter",value:function(s,a){var c=a.name,h=a.body;return seq(this.t("get"),this.sep(Sep.AFTER_GET),c,this.sep(Sep.BEFORE_GET_PARAMS),this.paren(empty$1(),null,null,Sep.GETTER_PARAMS),this.sep(Sep.BEFORE_GET_BODY),this.brace(h,s,Sep.GET_BRACE_INTIAL,Sep.GET_BRACE_FINAL,Sep.GET_BRACE_EMPTY))}},{key:"reduceIdentifierExpression",value:function(s){var a=this.t(s.name);return s.name==="let"&&(a.startsWithLet=!0),a}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,h=a.consequent,d=a.alternate;return d&&h.endsWithMissingElse&&(h=this.brace(h,s,Sep.MISSING_ELSE_INTIIAL,Sep.MISSING_ELSE_FINAL,Sep.MISSING_ELSE_EMPTY)),(0,_objectAssign2.default)(seq(this.t("if"),this.sep(Sep.AFTER_IF),this.paren(c,Sep.IF_PAREN_BEFORE,Sep.IF_PAREN_AFTER),this.sep(Sep.AFTER_IF_TEST),h,d?seq(this.sep(Sep.BEFORE_ELSE),this.t("else"),this.sep(Sep.AFTER_ELSE),d):empty$1(),this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:d?d.endsWithMissingElse:!0})}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,h=a.namedImports,d=[];return c!=null&&d.push(c),h.length>0&&d.push(this.brace(this.commaSep(h,Sep.NAMED_IMPORT_BEFORE_COMMA,Sep.NAMED_IMPORT_AFTER_COMMA),s,Sep.IMPORT_BRACE_INTIAL,Sep.IMPORT_BRACE_FINAL,Sep.IMPORT_BRACE_EMPTY)),d.length===0?seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_MODULE),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s))):seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_BINDINGS),this.commaSep(d,Sep.IMPORT_BEFORE_COMMA,Sep.IMPORT_AFTER_COMMA),this.sep(Sep.AFTER_IMPORT_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,h=a.namespaceBinding;return seq(this.t("import"),this.sep(Sep.BEFORE_IMPORT_NAMESPACE),c==null?empty$1():seq(c,this.sep(Sep.IMPORT_BEFORE_COMMA),this.t(","),this.sep(Sep.IMPORT_AFTER_COMMA)),this.sep(Sep.BEFORE_IMPORT_STAR),this.t("*"),this.sep(Sep.AFTER_IMPORT_STAR),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),h,this.sep(Sep.AFTER_NAMESPACE_BINDING),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return s.name==null?c:seq(this.t(s.name),this.sep(Sep.BEFORE_IMPORT_AS),this.t("as"),this.sep(Sep.AFTER_IMPORT_AS),c)}},{key:"reduceExportAllFrom",value:function(s){return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_STAR),this.t("*"),this.sep(Sep.AFTER_EXPORT_STAR),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_FROM_BINDINGS),this.t("from"),this.sep(Sep.AFTER_FROM),this.t((0,_coderep.escapeStringLiteral)(s.moduleSpecifier)),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return seq(this.t("export"),this.sep(Sep.BEFORE_EXPORT_BINDINGS),this.brace(this.commaSep(c,Sep.EXPORTS_BEFORE_COMMA,Sep.EXPORTS_AFTER_COMMA),s,Sep.EXPORT_BRACE_INITIAL,Sep.EXPORT_BRACE_FINAL,Sep.EXPORT_BRACE_EMPTY),this.sep(Sep.AFTER_EXPORT_LOCAL_BINDINGS),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceExport",value:function(s,a){var c=a.declaration;switch(s.declaration.type){case"FunctionDeclaration":case"ClassDeclaration":break;default:c=seq(c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}return seq(this.t("export"),this.sep(Sep.AFTER_EXPORT),c)}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;switch(c=c.startsWithFunctionOrClass?this.paren(c,Sep.EXPORT_PAREN_BEFORE,Sep.EXPORT_PAREN_AFTER):c,s.body.type){case"FunctionDeclaration":case"ClassDeclaration":return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),c);default:return seq(this.t("export"),this.sep(Sep.EXPORT_DEFAULT),this.t("default"),this.sep(Sep.AFTER_EXPORT_DEFAULT),this.p(s.body,_coderep.Precedence.Assignment,c),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}}},{key:"reduceExportFromSpecifier",value:function(s){return s.exportedName==null?this.t(s.name):seq(this.t(s.name),this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return s.exportedName==null?c:seq(c,this.sep(Sep.BEFORE_EXPORT_AS),this.t("as"),this.sep(Sep.AFTER_EXPORT_AS),this.t(s.exportedName))}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return(0,_objectAssign2.default)(seq(this.t(s.label),this.sep(Sep.BEFORE_LABEL_COLON),this.t(":"),this.sep(Sep.AFTER_LABEL_COLON),c),{endsWithMissingElse:c.endsWithMissingElse})}},{key:"reduceLiteralBooleanExpression",value:function(s){return this.t(s.value.toString())}},{key:"reduceLiteralNullExpression",value:function(){return this.t("null")}},{key:"reduceLiteralInfinityExpression",value:function(){return this.t("2e308")}},{key:"reduceLiteralNumericExpression",value:function(s){return new _coderep.NumberCodeRep(s.value)}},{key:"reduceLiteralRegExpExpression",value:function(s){return this.t("/"+s.pattern+"/"+(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiLine?"m":"")+(s.dotAll?"s":"")+(s.unicode?"u":"")+(s.sticky?"y":""),!0)}},{key:"reduceLiteralStringExpression",value:function(s){return this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceMethod",value:function(s,a){var c=a.name,h=a.params,d=a.body;return seq(s.isAsync?seq(this.t("async"),this.sep(Sep.AFTER_METHOD_ASYNC)):empty$1(),s.isGenerator?seq(this.t("*"),this.sep(Sep.AFTER_METHOD_GENERATOR_STAR)):empty$1(),c,this.sep(Sep.AFTER_METHOD_NAME),this.paren(h,Sep.PARAMETERS_PAREN_BEFORE,Sep.PARAMETERS_PAREN_AFTER,Sep.PARAMETERS_PAREN_EMPTY),this.sep(Sep.BEFORE_METHOD_BODY),this.brace(d,s,Sep.METHOD_BRACE_INTIAL,Sep.METHOD_BRACE_FINAL,Sep.METHOD_BRACE_EMPTY))}},{key:"reduceModule",value:function(s,a){var c=a.directives,h=a.items;return h.length&&(h[0]=this.parenToAvoidBeingDirective(s.items[0],h[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_MODULE_DIRECTIVES):empty$1()],_toConsumableArray$1(h)))}},{key:"reduceNewExpression",value:function(s,a){var c=this,h=a.callee,d=a.arguments,g=d.map(function(b,$){return c.p(s.arguments[$],_coderep.Precedence.Assignment,b)}),_=(0,_coderep.getPrecedence)(s.callee)===_coderep.Precedence.Call?this.paren(h,Sep.NEW_CALLEE_PAREN_BEFORE,Sep.NEW_CALLEE_PAREN_AFTER):this.p(s.callee,(0,_coderep.getPrecedence)(s),h);return seq(this.t("new"),this.sep(Sep.AFTER_NEW),_,d.length===0?this.sep(Sep.EMPTY_NEW_CALL):seq(this.sep(Sep.BEFORE_NEW_ARGS),this.paren(this.commaSep(g,Sep.ARGS_BEFORE_COMMA,Sep.ARGS_AFTER_COMMA),Sep.NEW_PAREN_BEFORE,Sep.NEW_PAREN_AFTER,Sep.NEW_PAREN_EMPTY)))}},{key:"reduceNewTargetExpression",value:function(){return seq(this.t("new"),this.sep(Sep.NEW_TARGET_BEFORE_DOT),this.t("."),this.sep(Sep.NEW_TARGET_AFTER_DOT),this.t("target"))}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties,h=this.brace(this.commaSep(c,Sep.OBJECT_BEFORE_COMMA,Sep.OBJECT_AFTER_COMMA),s,Sep.OBJECT_BRACE_INITIAL,Sep.OBJECT_BRACE_FINAL,Sep.OBJECT_EMPTY);return h.startsWithCurly=!0,h}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return s.isPrefix?this.reduceUnaryExpression.apply(this,arguments):(0,_objectAssign2.default)(seq(this.p(s.operand,_coderep.Precedence.New,c),this.sep(Sep.BEFORE_POSTFIX(s.operator)),this.t(s.operator)),{startsWithCurly:c.startsWithCurly,startsWithLetSquareBracket:c.startsWithLetSquareBracket,startsWithFunctionOrClass:c.startsWithFunctionOrClass})}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return seq(this.t(s.operator),this.sep(Sep.UNARY(s.operator)),this.p(s.operand,(0,_coderep.getPrecedence)(s),c))}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return seq(this.t("return"),c?seq(this.sep(Sep.RETURN),c):empty$1(),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceScript",value:function(s,a){var c=a.directives,h=a.statements;return h.length&&(h[0]=this.parenToAvoidBeingDirective(s.statements[0],h[0])),seq.apply(void 0,_toConsumableArray$1(c).concat([c.length?this.sep(Sep.AFTER_SCRIPT_DIRECTIVES):empty$1()],_toConsumableArray$1(h)))}},{key:"reduceSetter",value:function(s,a){var c=a.name,h=a.param,d=a.body;return seq(this.t("set"),this.sep(Sep.AFTER_SET),c,this.sep(Sep.BEFORE_SET_PARAMS),this.paren(h,Sep.SETTER_PARAM_BEFORE,Sep.SETTER_PARAM_AFTER),this.sep(Sep.BEFORE_SET_BODY),this.brace(d,s,Sep.SET_BRACE_INTIIAL,Sep.SET_BRACE_FINAL,Sep.SET_BRACE_EMPTY))}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object,h=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT),this.t(s.property));return h.startsWithLet=c.startsWithLet,h.startsWithCurly=c.startsWithCurly,h.startsWithLetSquareBracket=c.startsWithLetSquareBracket,h.startsWithFunctionOrClass=c.startsWithFunctionOrClass,h}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object,h=seq(this.p(s.object,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.BEFORE_STATIC_MEMBER_DOT),this.t("."),this.sep(Sep.AFTER_STATIC_MEMBER_DOT),this.t(s.property));return h.startsWithLet=c.startsWithLet,h.startsWithCurly=c.startsWithCurly,h.startsWithLetSquareBracket=c.startsWithLetSquareBracket,h.startsWithFunctionOrClass=c.startsWithFunctionOrClass,h}},{key:"reduceStaticPropertyName",value:function(s){if(_esutils.keyword.isIdentifierNameES6(s.value))return this.t(s.value);var a=parseFloat(s.value);return a>=0&&a.toString()===s.value?new _coderep.NumberCodeRep(a):this.t((0,_coderep.escapeStringLiteral)(s.value))}},{key:"reduceSuper",value:function(){return this.t("super")}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,h=a.consequent;return seq(this.t("case"),this.sep(Sep.BEFORE_CASE_TEST),c,this.sep(Sep.AFTER_CASE_TEST),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(h)),this.sep(Sep.AFTER_CASE_BODY))}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return seq(this.t("default"),this.sep(Sep.DEFAULT),this.t(":"),this.sep(Sep.BEFORE_CASE_BODY),seq.apply(void 0,_toConsumableArray$1(c)),this.sep(Sep.AFTER_DEFAULT_BODY))}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,h=a.cases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(h)),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,h=a.preDefaultCases,d=a.defaultCase,g=a.postDefaultCases;return seq(this.t("switch"),this.sep(Sep.BEFORE_SWITCH_DISCRIM),this.paren(c,Sep.SWITCH_DISCRIM_PAREN_BEFORE,Sep.SWITCH_DISCRIM_PAREN_AFTER),this.sep(Sep.BEFORE_SWITCH_BODY),this.brace(seq.apply(void 0,_toConsumableArray$1(h).concat([d],_toConsumableArray$1(g))),s,Sep.SWITCH_BRACE_INTIAL,Sep.SWITCH_BRACE_FINAL,Sep.SWITCH_BRACE_EMPTY),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,h=a.elements,d=s.tag==null?empty$1():seq(this.p(s.tag,(0,_coderep.getPrecedence)(s),c),this.sep(Sep.TEMPLATE_TAG));d=seq(d,this.t("`"));for(var g=0,_=s.elements.length;g<_;++g)if(s.elements[g].type==="TemplateElement"){var b="";g>0&&(b+="}"),b+=s.elements[g].rawValue,g<_-1&&(b+="${"),d=seq(d,this.t(b))}else d=seq(d,this.sep(Sep.BEFORE_TEMPLATE_EXPRESSION),h[g],this.sep(Sep.AFTER_TEMPLATE_EXPRESSION));return d=seq(d,this.t("`")),s.tag!=null&&(d.startsWithCurly=c.startsWithCurly,d.startsWithLet=c.startsWithLet,d.startsWithLetSquareBracket=c.startsWithLetSquareBracket,d.startsWithFunctionOrClass=c.startsWithFunctionOrClass),d}},{key:"reduceTemplateElement",value:function(s){return this.t(s.rawValue)}},{key:"reduceThisExpression",value:function(){return this.t("this")}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return seq(this.t("throw"),this.sep(Sep.THROW),c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,h=a.catchClause;return seq(this.t("try"),this.sep(Sep.AFTER_TRY),c,this.sep(Sep.BEFORE_CATCH),h,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=a.body,h=a.catchClause,d=a.finalizer;return seq(this.t("try"),this.sep(Sep.AFTER_TRY),c,h?seq(this.sep(Sep.BEFORE_CATCH),h):empty$1(),this.sep(Sep.BEFORE_FINALLY),this.t("finally"),this.sep(Sep.AFTER_FINALLY),d,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return s.expression==null?this.t("yield"):(0,_objectAssign2.default)(seq(this.t("yield"),this.sep(Sep.YIELD),this.p(s.expression,(0,_coderep.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return(0,_objectAssign2.default)(seq(this.t("yield"),this.sep(Sep.BEFORE_YIELD_STAR),this.t("*"),this.sep(Sep.AFTER_YIELD_STAR),this.p(s.expression,(0,_coderep.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceDirective",value:function(s){var a=s.rawValue.match(/(^|[^\\])(\\\\)*"/)?"'":'"';return seq(this.t(a+s.rawValue+a),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return seq(this.t(s.kind),this.sep(Sep.VARIABLE_DECLARATION),this.commaSep(c,Sep.DECLARATORS_BEFORE_COMMA,Sep.DECLARATORS_AFTER_COMMA))}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return seq(c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceVariableDeclarator",value:function(s,a){var c=a.binding,h=a.init,d=h&&h.containsIn&&!h.containsGroup;return h&&(h.containsGroup?h=this.paren(h,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER):h=markContainsIn(h)),(0,_objectAssign2.default)(h==null?c:seq(c,this.sep(Sep.BEFORE_INIT_EQUALS),this.t("="),this.sep(Sep.AFTER_INIT_EQUALS),h),{containsIn:d})}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,h=a.body;return(0,_objectAssign2.default)(seq(this.t("while"),this.sep(Sep.AFTER_WHILE),this.paren(c,Sep.WHILE_TEST_PAREN_BEFORE,Sep.WHILE_TEST_PAREN_AFTER),this.sep(Sep.BEFORE_WHILE_BODY),h,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:h.endsWithMissingElse})}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,h=a.body;return(0,_objectAssign2.default)(seq(this.t("with"),this.sep(Sep.AFTER_WITH),this.paren(c,Sep.WITH_PAREN_BEFORE,Sep.WITH_PAREN_AFTER),this.sep(Sep.BEFORE_WITH_BODY),h,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:h.endsWithMissingElse})}}]),o}();function withoutTrailingLinebreak(o){if(o&&o instanceof _coderep.Seq){for(var e=o.children[o.children.length-1];e instanceof _coderep.Empty;)o.children.pop(),e=o.children[o.children.length-1];e instanceof _coderep.Seq?withoutTrailingLinebreak(e):e instanceof Linebreak&&o.children.pop()}return o}function indent(o,e){var s=void 0;function a(c){c instanceof Linebreak&&(s=c,++c.indentation)}return o.forEach(a),e||--s.indentation,o}formattedCodegen.FormattedCodeGen=function(o){_inherits$1(e,o);function e(){return _classCallCheck$2(this,e),_possibleConstructorReturn$1(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return _createClass$2(e,[{key:"parenToAvoidBeingDirective",value:function(a,c){return a&&a.type==="ExpressionStatement"&&a.expression.type==="LiteralStringExpression"?seq(this.paren(c.children[0],Sep.PAREN_AVOIDING_DIRECTIVE_BEFORE,Sep.PAREN_AVOIDING_DIRECTIVE_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(a))):c}},{key:"brace",value:function(a,c){if(isEmpty(a))return this.t("{}");switch(c.type){case"ObjectAssignmentTarget":case"ObjectBinding":case"Import":case"ExportFrom":case"ExportLocals":case"ObjectExpression":return new _coderep.Brace(a)}return a=seq(new Linebreak,a),indent(a,!1),new _coderep.Brace(a)}},{key:"reduceDoWhileStatement",value:function(a,c){var h=c.body,d=c.test;return seq(this.t("do"),this.sep(Sep.AFTER_DO),withoutTrailingLinebreak(h),this.sep(Sep.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(Sep.AFTER_DOWHILE_WHILE),this.paren(d,Sep.DO_WHILE_TEST_PAREN_BEFORE,Sep.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(a)))}},{key:"reduceIfStatement",value:function(a,c){var h=c.test,d=c.consequent,g=c.alternate;return g&&d.endsWithMissingElse&&(d=this.brace(d,a)),(0,_objectAssign2.default)(seq(this.t("if"),this.sep(Sep.AFTER_IF),this.paren(h,Sep.IF_PAREN_BEFORE,Sep.IF_PAREN_AFTER),this.sep(Sep.AFTER_IF_TEST),withoutTrailingLinebreak(d),g?seq(this.sep(Sep.BEFORE_ELSE),this.t("else"),this.sep(Sep.AFTER_ELSE),withoutTrailingLinebreak(g)):empty$1(),this.sep(Sep.AFTER_STATEMENT(a))),{endsWithMissingElse:g?g.endsWithMissingElse:!0})}},{key:"reduceSwitchCase",value:function(a,c){var h=c.test,d=c.consequent;return d=indent(withoutTrailingLinebreak(seq.apply(void 0,[this.sep(Sep.BEFORE_CASE_BODY)].concat(_toConsumableArray$1(d)))),!0),seq(this.t("case"),this.sep(Sep.BEFORE_CASE_TEST),h,this.sep(Sep.AFTER_CASE_TEST),this.t(":"),d,this.sep(Sep.AFTER_CASE_BODY))}},{key:"reduceSwitchDefault",value:function(a,c){var h=c.consequent;return h=indent(withoutTrailingLinebreak(seq.apply(void 0,[this.sep(Sep.BEFORE_CASE_BODY)].concat(_toConsumableArray$1(h)))),!0),seq(this.t("default"),this.sep(Sep.DEFAULT),this.t(":"),h,this.sep(Sep.AFTER_DEFAULT_BODY))}},{key:"sep",value:function(a){switch(a.type){case"AWAIT":case"AFTER_FORAWAIT_AWAIT":case"ARRAY_AFTER_COMMA":case"OBJECT_AFTER_COMMA":case"ARGS_AFTER_COMMA":case"PARAMETER_AFTER_COMMA":case"DECLARATORS_AFTER_COMMA":case"NAMED_IMPORT_AFTER_COMMA":case"IMPORT_AFTER_COMMA":case"BEFORE_DEFAULT_EQUALS":case"AFTER_DEFAULT_EQUALS":case"AFTER_PROP":case"BEFORE_JUMP_LABEL":case"BEFORE_CATCH_BINDING":case"AFTER_CATCH_BINDING":case"BEFORE_CLASS_NAME":case"BEFORE_EXTENDS":case"AFTER_EXTENDS":case"BEFORE_CLASS_DECLARATION_ELEMENTS":case"BEFORE_CLASS_EXPRESSION_ELEMENTS":case"AFTER_STATIC":case"BEFORE_TERNARY_QUESTION":case"AFTER_TERNARY_QUESTION":case"BEFORE_TERNARY_COLON":case"AFTER_TERNARY_COLON":case"AFTER_DO":case"BEFORE_DOWHILE_WHILE":case"AFTER_DOWHILE_WHILE":case"AFTER_FORIN_FOR":case"BEFORE_FORIN_IN":case"BEFORE_FORIN_BODY":case"BEFORE_FOROF_OF":case"AFTER_FOROF_FOR":case"BEFORE_FOROF_BODY":case"AFTER_FOR_FOR":case"BEFORE_FOR_TEST":case"BEFORE_FOR_UPDATE":case"BEFORE_FOR_BODY":case"BEFORE_FUNCTION_DECLARATION_BODY":case"BEFORE_FUNCTION_EXPRESSION_BODY":case"BEFORE_ARROW":case"AFTER_ARROW":case"BEFORE_ARROW_ASYNC_PARAMS":case"AFTER_GET":case"BEFORE_GET_BODY":case"AFTER_IF":case"AFTER_IF_TEST":case"BEFORE_ELSE":case"AFTER_ELSE":case"BEFORE_IMPORT_BINDINGS":case"BEFORE_IMPORT_MODULE":case"AFTER_IMPORT_BINDINGS":case"AFTER_FROM":case"BEFORE_IMPORT_NAMESPACE":case"BEFORE_IMPORT_STAR":case"AFTER_IMPORT_STAR":case"AFTER_NAMESPACE_BINDING":case"BEFORE_IMPORT_AS":case"AFTER_IMPORT_AS":case"EXPORTS_AFTER_COMMA":case"BEFORE_EXPORT_STAR":case"AFTER_EXPORT_STAR":case"BEFORE_EXPORT_BINDINGS":case"AFTER_EXPORT_FROM_BINDINGS":case"AFTER_EXPORT":case"AFTER_EXPORT_DEFAULT":case"BEFORE_EXPORT_AS":case"AFTER_EXPORT_AS":case"AFTER_LABEL_COLON":case"AFTER_METHOD_ASYNC":case"BEFORE_METHOD_BODY":case"AFTER_NEW":case"RETURN":case"AFTER_SET":case"BEFORE_SET_BODY":case"BEFORE_SET_PARAMS":case"BEFORE_CASE_TEST":case"BEFORE_SWITCH_DISCRIM":case"BEFORE_SWITCH_BODY":case"THROW":case"AFTER_TRY":case"BEFORE_CATCH":case"BEFORE_FINALLY":case"AFTER_FINALLY":case"VARIABLE_DECLARATION":case"YIELD":case"AFTER_YIELD_STAR":case"BEFORE_INIT_EQUALS":case"AFTER_INIT_EQUALS":case"AFTER_WHILE":case"BEFORE_WHILE_BODY":case"AFTER_WITH":case"BEFORE_WITH_BODY":case"BEFORE_FUNCTION_NAME":case"AFTER_BINOP":case"BEFORE_ASSIGN_OP":case"AFTER_ASSIGN_OP":return this.t(" ");case"AFTER_STATEMENT":switch(a.node.type){case"ForInStatement":case"ForOfStatement":case"ForStatement":case"WhileStatement":case"WithStatement":return empty$1();default:return new Linebreak}case"AFTER_CLASS_ELEMENT":case"BEFORE_CASE_BODY":case"AFTER_CASE_BODY":case"AFTER_DEFAULT_BODY":return new Linebreak;case"BEFORE_BINOP":return a.op===","?empty$1():this.t(" ");case"UNARY":return a.op==="delete"||a.op==="void"||a.op==="typeof"?this.t(" "):empty$1();default:return empty$1()}}}]),e}(ExtensibleCodeGen);var withLocation={},tokenStream={},unicode={};Object.defineProperty(unicode,"__esModule",{value:!0});unicode.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode.whitespaceBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1];unicode.idStartLargeRegex=/^[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]$/;unicode.idStartBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];unicode.idContinueLargeRegex=/^[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]$/;unicode.idContinueBool=[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!0,!1,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!1,!1,!1,!1,!1];Object.defineProperty(tokenStream,"__esModule",{value:!0});tokenStream.TokenStream=void 0;var _createClass$1=function(){function o(e,s){for(var a=0;a=1e3&&o%10===0?(e=o.toString(10),/[eE]/.test(e)?e.replace(/[eE]\+/,"e"):o.toString(10).replace(/0{3,}$/,function(s){return"e"+s.length})):o%1===0?o>1e15&&o<1e20?"0x"+o.toString(16).toUpperCase():o.toString(10).replace(/[eE]\+/,"e"):o.toString(10).replace(/^0\./,".").replace(/[eE]\+/,"e")}tokenStream.TokenStream=function(){function o(){_classCallCheck$1(this,o),this.result="",this.lastNumber=null,this.lastCodePoint=null,this.lastTokenStr="",this.optionalSemi=!1,this.previousWasRegExp=!1,this.partialHtmlComment=!1}return _createClass$1(o,[{key:"putNumber",value:function(s){var a=renderNumber(s);this.put(a),this.lastNumber=a}},{key:"putOptionalSemi",value:function(){this.optionalSemi=!0}},{key:"putRaw",value:function(s){this.result+=s,this.lastTokenStr=s}},{key:"put",value:function(s,a){if(this.optionalSemi&&(this.optionalSemi=!1,s!=="}"&&(this.result+=";",this.lastCodePoint=";",this.previousWasRegExp=!1)),this.lastNumber!==null&&s.length===1&&s==="."){this.result+=needsDoubleDot(this.lastNumber)?"..":".",this.lastNumber=null,this.lastCodePoint=".";return}var c=[].concat(_toConsumableArray(s)).length;if(c>0){this.lastNumber=null;var h=String.fromCodePoint(s.codePointAt(0)),d=this.lastCodePoint;this.lastCodePoint=String.fromCodePoint(s.codePointAt(c-1));var g=this.previousWasRegExp;this.previousWasRegExp=a,d&&((d==="+"||d==="-")&&d===h||isIdentifierPartES6(d)&&isIdentifierPartES6(h)||d==="/"&&h==="/"||g&&h==="i"||this.partialHtmlComment&&s.startsWith("--"))&&(this.result+=" ")}this.partialHtmlComment=this.lastTokenStr.endsWith("<")&&s==="!",this.result+=s,this.lastTokenStr=s}}]),o}();Object.defineProperty(withLocation,"__esModule",{value:!0});var _createClass=function(){function o(e,s){for(var a=0;a1?c-1:0),d=1;d1?c-1:0),d=1;d1?c-1:0),d=1;d1&&arguments[1]!==void 0?arguments[1]:new _minimalCodegen2.default,s=new TokenStreamWithLocation,a=(0,_shiftReducer.reduce)(addLocationToReducer(e),o);return a.emit(s),{source:s.result,locations:s.locations}}(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.codeGenWithLocation=o.SemiOp=o.CommaSep=o.Semi=o.Seq=o.ContainsIn=o.NoIn=o.Brace=o.Bracket=o.Paren=o.NumberCodeRep=o.Token=o.Empty=o.CodeRep=o.escapeStringLiteral=o.getPrecedence=o.Precedence=o.Sep=o.FormattedCodeGen=o.ExtensibleCodeGen=o.MinimalCodeGen=void 0,o.default=$;var e=minimalCodegen;Object.defineProperty(o,"MinimalCodeGen",{enumerable:!0,get:function(){return b(e).default}});var s=formattedCodegen;Object.defineProperty(o,"ExtensibleCodeGen",{enumerable:!0,get:function(){return s.ExtensibleCodeGen}}),Object.defineProperty(o,"FormattedCodeGen",{enumerable:!0,get:function(){return s.FormattedCodeGen}}),Object.defineProperty(o,"Sep",{enumerable:!0,get:function(){return s.Sep}});var a=coderep;Object.defineProperty(o,"Precedence",{enumerable:!0,get:function(){return a.Precedence}}),Object.defineProperty(o,"getPrecedence",{enumerable:!0,get:function(){return a.getPrecedence}}),Object.defineProperty(o,"escapeStringLiteral",{enumerable:!0,get:function(){return a.escapeStringLiteral}}),Object.defineProperty(o,"CodeRep",{enumerable:!0,get:function(){return a.CodeRep}}),Object.defineProperty(o,"Empty",{enumerable:!0,get:function(){return a.Empty}}),Object.defineProperty(o,"Token",{enumerable:!0,get:function(){return a.Token}}),Object.defineProperty(o,"NumberCodeRep",{enumerable:!0,get:function(){return a.NumberCodeRep}}),Object.defineProperty(o,"Paren",{enumerable:!0,get:function(){return a.Paren}}),Object.defineProperty(o,"Bracket",{enumerable:!0,get:function(){return a.Bracket}}),Object.defineProperty(o,"Brace",{enumerable:!0,get:function(){return a.Brace}}),Object.defineProperty(o,"NoIn",{enumerable:!0,get:function(){return a.NoIn}}),Object.defineProperty(o,"ContainsIn",{enumerable:!0,get:function(){return a.ContainsIn}}),Object.defineProperty(o,"Seq",{enumerable:!0,get:function(){return a.Seq}}),Object.defineProperty(o,"Semi",{enumerable:!0,get:function(){return a.Semi}}),Object.defineProperty(o,"CommaSep",{enumerable:!0,get:function(){return a.CommaSep}}),Object.defineProperty(o,"SemiOp",{enumerable:!0,get:function(){return a.SemiOp}});var c=withLocation;Object.defineProperty(o,"codeGenWithLocation",{enumerable:!0,get:function(){return b(c).default}});var h=dist$4,d=b(h),g=tokenStream,_=b(e);function b(j){return j&&j.__esModule?j:{default:j}}function $(j){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new _.default,et=new g.TokenStream,tt=(0,d.default)(_e,j);return tt.emit(et),et.result}})(dist);const shiftCodegen=getDefaultExportFromCjs(dist);function bjorklund(o,e){for(var s=[],a=[],c=[e],h=o-e,d=0,g=function(_){if(_==-1)s.push(0);else if(_==-2)s.push(1);else{for(var b=0;b1;)a.push(Math.floor(h/c[d])),c.push(h%c[d]),h=c[d],d++;return a.push(h),g(d),s.reverse()}var bjork=function(o,e){return o>e?bjorklund(o,e):bjorklund(e,o)};const euclid=(o,e,s=0)=>{const a=bjork(e,o);return s?rotate(a,-s):a};Pattern$3.prototype.euclid=function(o,e,s=0){return this.struct(euclid(o,e,s))};Pattern$3.prototype.euclidLegato=function(o,e,s=0){const a=euclid(o,e,s),c=a.indexOf(1),h=rotate(a,c).join("").split("1").slice(1).map(d=>[d.length+1,!0]);return this.struct(timeCat(...h)).late(fraction(c).div(e))};function steady(o){return new Pattern$3(e=>[new Hap(void 0,e.span,o)])}const signal=o=>{const e=s=>[new Hap(void 0,s.span,o(s.span.midpoint()))];return new Pattern$3(e)},isaw=signal(o=>1-o%1),isaw2=isaw._toBipolar(),saw=signal(o=>o%1),saw2=saw._toBipolar(),sine2=signal(o=>Math.sin(Math.PI*2*o)),sine=sine2._fromBipolar(),cosine=sine._early(fraction(1).div(4)),cosine2=sine2._early(fraction(1).div(4)),square=signal(o=>Math.floor(o*2%2)),square2=square._toBipolar(),tri=fastcat(isaw,saw),tri2=fastcat(isaw2,saw2),time=signal(id$1),xorwise=o=>{const e=o<<13^o,s=e>>17^e;return s<<5^s},_frac=o=>o-Math.trunc(o),timeToIntSeed=o=>xorwise(Math.trunc(_frac(o/300)*536870912)),intSeedToRand=o=>o%536870912/536870912,timeToRand=o=>Math.abs(intSeedToRand(timeToIntSeed(o))),rand=signal(timeToRand),rand2=rand._toBipolar(),_brandBy=o=>rand.fmap(e=>ereify$1(o).fmap(_brandBy).innerJoin(),brand=_brandBy(.5),_irand=o=>rand.fmap(e=>Math.trunc(e*o)),irand=o=>reify$1(o).fmap(_irand).innerJoin(),__chooseWith=(o,e)=>(e=e.map(reify$1),e.length==0?silence:o.range(0,e.length).fmap(s=>e[Math.floor(s)])),chooseWith=(o,e)=>__chooseWith(o,e).outerJoin(),chooseInWith=(o,e)=>__chooseWith(o,e).innerJoin(),choose=(...o)=>chooseWith(rand,o);Pattern$3.prototype.choose=function(...o){return chooseWith(this,o)};Pattern$3.prototype.choose2=function(...o){return chooseWith(this._fromBipolar(),o)};const chooseCycles=(...o)=>chooseInWith(rand.segment(1),o),randcat=chooseCycles,_wchooseWith=function(o,...e){const s=e.map(g=>reify$1(g[0])),a=[];let c=0;for(const g of e)c+=g[1],a.push(c);const h=c,d=function(g){const _=g*h;return s[a.findIndex(b=>b>_,a)]};return o.fmap(d)},wchooseWith=(...o)=>_wchooseWith(...o).outerJoin(),wchoose=(...o)=>wchooseWith(rand,...o),wchooseCycles=(...o)=>_wchooseWith(rand,...o).innerJoin(),perlinWith=o=>{const e=o.fmap(Math.floor),s=o.fmap(h=>Math.floor(h)+1),a=h=>6*h**5-15*h**4+10*h**3,c=h=>d=>g=>d+a(h)*(g-d);return o.sub(e).fmap(c).appBoth(e.fmap(timeToRand)).appBoth(s.fmap(timeToRand))},perlin=perlinWith(time);Pattern$3.prototype._degradeByWith=function(o,e){return this.fmap(s=>a=>s).appLeft(o._filterValues(s=>s>e))};Pattern$3.prototype._degradeBy=function(o){return this._degradeByWith(rand,o)};Pattern$3.prototype.degrade=function(){return this._degradeBy(.5)};Pattern$3.prototype._undegradeBy=function(o){return this._degradeByWith(rand.fmap(e=>1-e),o)};Pattern$3.prototype.undegrade=function(){return this._undegradeBy(.5)};Pattern$3.prototype._sometimesBy=function(o,e){return stack(this._degradeBy(o),e(this._undegradeBy(1-o)))};Pattern$3.prototype.sometimesBy=function(o,e){const s=this;return reify$1(o).fmap(a=>s._sometimesBy(a,e)).innerJoin()};Pattern$3.prototype._sometimesByPre=function(o,e){return stack(this._degradeBy(o),e(this).undegradeBy(1-o))};Pattern$3.prototype.sometimesByPre=function(o,e){const s=this;return reify$1(o).fmap(a=>s._sometimesByPre(a,e)).innerJoin()};Pattern$3.prototype.sometimes=function(o){return this._sometimesBy(.5,o)};Pattern$3.prototype.sometimesPre=function(o){return this._sometimesByPre(.5,o)};Pattern$3.prototype._someCyclesBy=function(o,e){return stack(this._degradeByWith(rand._segment(1),o),e(this._degradeByWith(rand.fmap(s=>1-s)._segment(1),1-o)))};Pattern$3.prototype.someCyclesBy=function(o,e){const s=this;return reify$1(o).fmap(a=>s._someCyclesBy(a,e)).innerJoin()};Pattern$3.prototype.someCycles=function(o){return this._someCyclesBy(.5,o)};Pattern$3.prototype.often=function(o){return this.sometimesBy(.75,o)};Pattern$3.prototype.rarely=function(o){return this.sometimesBy(.25,o)};Pattern$3.prototype.almostNever=function(o){return this.sometimesBy(.1,o)};Pattern$3.prototype.almostAlways=function(o){return this.sometimesBy(.9,o)};Pattern$3.prototype.never=function(o){return this};Pattern$3.prototype.always=function(o){return o(this)};Pattern$3.prototype.patternified.push("degradeBy","undegradeBy");let synth;try{synth=window==null?void 0:window.speechSynthesis}catch{console.warn("cannot use window: not in browser?")}let allVoices=synth==null?void 0:synth.getVoices();function speak(o,e,s){synth.cancel();const a=new SpeechSynthesisUtterance(o);a.lang=e,allVoices=synth.getVoices();const c=allVoices.filter(h=>h.lang.includes(e));typeof s=="number"?a.voice=c[s%c.length]:typeof s=="string"&&(a.voice=c.find(h=>h.name===h)),speechSynthesis.speak(a)}Pattern$3.prototype._speak=function(o,e){return this._withHap(s=>{const a=(c,h)=>{speak(h.value,o,e)};return s.setContext({...s.context,onTrigger:a})})};Pattern$3.prototype.speak=function(o,e){return patternify2(Pattern$3.prototype._speak)(reify(o),reify(e),this)};const stringifyFunction=o=>"("+o+")();",urlifyFunction=o=>URL.createObjectURL(new Blob([stringifyFunction(o)],{type:"text/javascript"})),createWorker=o=>new Worker(urlifyFunction(o));class ClockWorker{constructor(e,s){Rt(this,"worker");Rt(this,"interval",1/20);Rt(this,"tick",0);this.interval=s||this.interval,this.worker=createWorker(()=>{let a,c=null;const h=()=>{c&&(clearInterval(c),c=null)},d=()=>{if(h(),!a)throw new Error("no interval set! call worker.postMessage({interval}) before starting.");postMessage("tick"),c=setInterval(()=>postMessage("tick"),a*1e3)};self.onmessage=function(g){g.data=="start"?d():g.data.interval?(a=g.data.interval,c&&d()):g.data=="stop"&&h()}}),this.setInterval(this.interval),this.worker.onmessage=a=>{a.data==="tick"&&e(this.tick++,this.interval)}}start(){this.worker.postMessage("start")}stop(){this.worker.postMessage("stop"),this.tick=0}setInterval(e){this.worker.postMessage({interval:e})}}class Scheduler{constructor({interval:e,onTrigger:s,onError:a,latency:c=.2,getTime:h}){Rt(this,"worker");Rt(this,"pattern");Rt(this,"started",!1);Rt(this,"phase",0);Rt(this,"cps",1);Rt(this,"getTime");Rt(this,"lastTime");this.worker=new ClockWorker((d,g)=>{try{const _=h();if(!this.lastTime){this.lastTime=_;return}const b=_-this.lastTime;this.lastTime=_;const $=this.phase,j=this.phase+b*this.cps;this.phase=j,this.pattern.queryArc($,j).forEach(et=>{var it,at;if(typeof((it=et.value)==null?void 0:it.cps)=="number"&&this.setCps((at=et.value)==null?void 0:at.cps),!et.part.begin.equals(et.whole.begin))return;const tt=_+(et.whole.begin-$)/this.cps-b+g+c,nt=et.duration/this.cps,st=h(),rt=tt-st;if(tth.hasOnset());console.log(`${e.toFixed(4)} - ${s.toFixed(4)} ${Array(c.length).fill("I").join("")}`)}}const gist=(route,cache=!0)=>fetch(`https://gist.githubusercontent.com/${route}?cachebust=${cache?"":Date.now()}`).then(o=>o.text()).then(code=>eval(code));console.log("%c // \u{1F300} @strudel.cycles/core loaded \u{1F300}","background-color: black;color:white;padding:4px;border-radius:15px");globalThis._strudelLoaded&&console.warn(`@strudel.cycles/core was loaded more than once... -This might happen when you have multiple versions of strudel installed. -Please check with "npm ls @strudel.cycles/core".`);globalThis._strudelLoaded=!0;const strudel=Object.freeze(Object.defineProperty({__proto__:null,Fraction:fraction,gist,Hap,Pattern:Pattern$3,silence,pure,isPattern:isPattern$1,reify:reify$1,stack,slowcat,slowcatPrime,fastcat,cat,timeCat,sequence,seq:seq$2,polymeterSteps,polymeter,pm,polyrhythm,pr,add:add$1,chop,chunk,chunkBack,div,early,echo,every,fast,inv,invert,iter,iterBack,jux,juxBy,late,linger,mask,mul,off,ply,range,range2,rev,slow,struct,sub,superimpose,set,when,makeComposable,patternify2,patternify3,patternify4,steady,signal,isaw,isaw2,saw,saw2,sine2,sine,cosine,cosine2,square,square2,tri,tri2,time,rand,rand2,_brandBy,brandBy,brand,_irand,irand,__chooseWith,chooseWith,chooseInWith,choose,chooseCycles,randcat,wchoose,wchooseCycles,perlinWith,perlin,State,TimeSpan,isNote:isNote$1,tokenizeNote,toMidi,fromMidi,getFreq,midi2note,mod,getPlayableNoteValue,getFrequency,rotate,pipe,compose,removeUndefineds,flatten:flatten$1,id:id$1,constant,listRange,curry,ClockWorker,Scheduler},Symbol.toStringTag,{value:"Module"})),{replace}=estraverse,codegen=shiftCodegen.default||shiftCodegen,{Pattern:Pattern$2}=strudel,isNote=o=>/^[a-gC-G][bs]?[0-9]$/.test(o),shapeshifter=o=>{const{code:e,addReturn:s}=wrapAsync(o),a=dist$7.parseScriptWithLocation(disguiseImports(e)),c=[],h=[],d=replace(a.tree,{enter(_,b){var et,tt,nt;if(h.push(b),h.some(st=>c.includes(st)))return _;if(isBackTickString(_))return minifyWithLocation(_,_,a.locations,c);if(((et=_.directives)==null?void 0:et.length)===1&&!((tt=_.statements)!=null&&tt.length)){const st=new LiteralStringExpression_1({value:_.directives[0].rawValue}),rt=minifyWithLocation(st,_.directives[0],a.locations,c);return{..._,directives:[],statements:[rt]}}if(isStringWithDoubleQuotes(_,a.locations,e))return minifyWithLocation(_,_,a.locations,c);const j={"*":"fast","/":"slow","&":"stack","&&":"append"};if(_.type==="BinaryExpression"&&j[_.operator]&&["LiteralNumericExpression","LiteralStringExpression","IdentifierExpression"].includes((nt=_.right)==null?void 0:nt.type)&&canBeOverloaded(_.left)){let st=_.left;return _.left.type==="IdentifierExpression"&&(st=wrapFunction("reify",_.left)),new CallExpression_1({callee:new StaticMemberExpression_1({property:j[_.operator],object:wrapFunction("reify",st)}),arguments:[_.right]})}const _e=isPatternArg(h)||hasModifierCall(b);if(_.type==="CallExpression"&&_.callee.name==="pure"){const st=_.arguments[0];return reifyWithLocation(st,_.arguments[0],a.locations,c)}if(_.type==="IdentifierExpression"){if(isNote(_.name)){const st=_.name[1]==="s"?_.name.replace("s","#"):_.name;return _e?reifyWithLocation(new LiteralStringExpression_1({value:st}),_,a.locations,c):new LiteralStringExpression_1({value:st})}if(_.name==="r")return new IdentifierExpression_1({name:"silence"})}return["LiteralStringExpression"].includes(_.type)&&_e?reifyWithLocation(_,_,a.locations,c):addMiniNotationLocations(_,a.locations,c)},leave(){h.pop()}});return s(d),undisguiseImports(codegen(d))};function disguiseImports(o){return o.replaceAll("import","_mport")}function undisguiseImports(o){return o.replaceAll("_mport","import")}function wrapAsync(o){return o=`(async () => { -${o} -})()`,{code:o,addReturn:s=>{const a=s.statements[0].expression.callee.body;a.statements=a.statements.slice(0,-1).concat([new ReturnStatement_1({expression:a.statements.slice(-1)[0]})])}}}function addMiniNotationLocations(o,e,s){const a=["mini","m"];if(o.type==="CallExpression"&&a.includes(o.callee.name)){if(o.arguments.length>1)return console.warn("multi arg mini locations not supported yet..."),o;const c=o.arguments[0];return minifyWithLocation(c,c,e,s)}return o.type==="StaticMemberExpression"&&a.includes(o.property)?minifyWithLocation(o.object,o,e,s):o}function wrapFunction(o,...e){return new CallExpression_1({callee:new IdentifierExpression_1({name:o}),arguments:e})}function isBackTickString(o){return o.type==="TemplateExpression"&&o.elements.length===1}function isStringWithDoubleQuotes(o,e,s){if(o.type!=="LiteralStringExpression")return!1;const a=e.get(o);return s.slice(a.start.offset,a.end.offset)[0]==='"'}function isPatternArg(o){if(!o.length)return!1;const e=o.slice(0,-1),s=o[o.length-1];return isPatternFactory(s)?!0:(s==null?void 0:s.type)==="ArrayExpression"?isPatternArg(e):!1}function hasModifierCall(o){return(o==null?void 0:o.type)==="StaticMemberExpression"&&Object.keys(Pattern$2.prototype.composable).includes(o.property)}const factories=Object.keys(Pattern$2.prototype.factories).concat(["mini"]);function isPatternFactory(o){return(o==null?void 0:o.type)==="CallExpression"&&factories.includes(o.callee.name)}function canBeOverloaded(o){return o.type==="IdentifierExpression"&&isNote(o.name)||isPatternFactory(o)}function reifyWithLocation(o,e,s,a){const c=getLocationArguments(e,s),h=new CallExpression_1({callee:new StaticMemberExpression_1({object:wrapFunction("reify",o),property:"withLocation"}),arguments:c});return a.push(h),h}function minifyWithLocation(o,e,s,a){const c=getLocationArguments(e,s),h=wrapFunction("mini",o),d=new CallExpression_1({callee:new StaticMemberExpression_1({object:h,property:"withMiniLocation"}),arguments:c});return a.push(d),d}function getLocationArguments(o,e){const s=e.get(o),a=-1;return[new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.start.line+a}),new LiteralNumericExpression_1({value:s.start.column}),new LiteralNumericExpression_1({value:s.start.offset})]}),new ArrayExpression_1({elements:[new LiteralNumericExpression_1({value:s.end.line+a}),new LiteralNumericExpression_1({value:s.end.column}),new LiteralNumericExpression_1({value:s.end.offset})]})]}const{isPattern,Pattern:Pattern$1}=strudel;let scoped=!1;const evalScope=async(...o)=>{scoped&&console.warn("@strudel.cycles/eval evalScope was called more than once."),scoped=!0;const e=await Promise.allSettled(o),s=e.filter(a=>a.status==="fulfilled").map(a=>a.value);e.forEach((a,c)=>{a.status==="rejected"&&console.warn(`evalScope: module with index ${c} could not be loaded:`,a.reason)}),Object.assign(globalThis,...s,Pattern$1.prototype.bootstrap())};function safeEval(o){return Function('"use strict";return ('+o+")")()}const evaluate=async o=>{scoped||await evalScope();const e=shapeshifter(o);let s=await safeEval(e);if(!isPattern(s)){console.log("evaluated",s);const a=`got "${typeof s}" instead of pattern`;throw new Error(a+(typeof s=="function"?", did you forget to call a function?":"."))}return{mode:"javascript",pattern:s}},bufferCache={},loadCache={},getCachedBuffer=o=>bufferCache[o],loadBuffer=(o,e)=>(loadCache[o]||(loadCache[o]=fetch(o).then(s=>s.arrayBuffer()).then(async s=>{const a=await e.decodeAudioData(s);return bufferCache[o]=a,a})),loadCache[o]),getLoadedBuffer=o=>bufferCache[o],githubCache={};let sampleCache={current:void 0};const loadGithubSamples=async(o,e)=>{const s="loadGithubSamples "+o,a=localStorage.getItem(s);if(a&&(console.log("[sampler]: loaded sample list from localstorage",o),githubCache[o]=JSON.parse(a)),githubCache[o])return sampleCache.current=githubCache[o],githubCache[o];console.log("[sampler]: fetching sample list from github",o);try{const[c,h,...d]=o.split("/"),g=`https://api.github.com/repos/${c}/${h}/contents`,_=await fetch(`${g}/${d.join("/")}`).then(b=>b.json());githubCache[o]=(await Promise.all(_.map(async({name:b,path:$})=>({name:b,content:await fetch(`${g}/${$}`).then(j=>j.json()).catch(j=>{console.error("could not load path",j)})})))).filter(({content:b})=>!!b).reduce((b,{name:$,content:j})=>({...b,[(e==null?void 0:e($))||$]:j.map(({download_url:_e})=>_e)}),{})}catch(c){console.error("[sampler]: failed to fetch sample list from github",c);return}return sampleCache.current=githubCache[o],localStorage.setItem(s,JSON.stringify(sampleCache.current)),console.log("[sampler]: loaded samples:",sampleCache.current),githubCache[o]},samples=(o,e=o._base||"")=>{sampleCache.current={...sampleCache.current,...Object.fromEntries(Object.entries(o).map(([s,a])=>{if(typeof a=="string"&&(a=[a]),typeof a!="object")throw new Error("wrong sample map format for "+s);e=a._base||e;const c=h=>(e+h).replace("github:","https://raw.githubusercontent.com/");return Array.isArray(a)?[s,a.map(c)]:[s,Object.fromEntries(Object.entries(a).map(([h,d])=>[h,(typeof d=="string"?[d]:d).map(c)]))]}))}},resetLoadedSamples=()=>{sampleCache.current=void 0},getLoadedSamples$1=()=>sampleCache.current,{Pattern}=strudel;let audioContext;const getAudioContext=()=>(audioContext||(audioContext=new AudioContext),audioContext);let destination;const getDestination=()=>{const o=getAudioContext();return destination||(destination=o.createGain(),destination.connect(o.destination)),destination},panic=()=>{getDestination().gain.linearRampToValueAtTime(0,getAudioContext().currentTime+.01),destination=null},getFilter=(o,e,s)=>{const a=getAudioContext().createBiquadFilter();return a.type=o,a.frequency.value=e,a.Q.value=s,a},getADSR=(o,e,s,a,c,h,d)=>{const g=getAudioContext().createGain();return g.gain.setValueAtTime(0,h),g.gain.linearRampToValueAtTime(c,h+o),g.gain.linearRampToValueAtTime(s*c,h+o+e),g.gain.setValueAtTime(s*c,d),g.gain.linearRampToValueAtTime(0,d+a),g},getOscillator=({s:o,freq:e,t:s,duration:a,release:c})=>{const h=getAudioContext().createOscillator();return h.type=o||"triangle",h.frequency.value=Number(e),h.start(s),h.stop(s+a+c),h},getSoundfontKey=o=>{var a,c,h,d;if(!globalThis.soundfontList)return!1;if((c=(a=globalThis.soundfontList)==null?void 0:a.instruments)!=null&&c.includes(o))return o;const e=(d=(h=globalThis.soundfontList)==null?void 0:h.instrumentNames)==null?void 0:d.indexOf(o),s=e<10?`00${e}`:e<100?`0${e}`:e;if(e!==-1)return globalThis.soundfontList.instruments.find(g=>g.startsWith(s))},getSampleBufferSource=async(o,e,s)=>{let a=0;s&&(a=toMidi(s)-36);const c=getAudioContext(),h=getLoadedSamples();if(!h)throw new Error("no samples loaded");const d=h==null?void 0:h[o];if(!d)throw new Error(`sample not found: "${o}", try one of ${Object.keys(h).join(", ")}`);if(typeof d!="object")throw new Error("wrong format for sample bank:",o);let g;if(Array.isArray(d))g=d[e%d.length];else{if(!s)throw new Error("no note(...) set for sound",o);const j=et=>toMidi(et)-toMidi(s),_e=Object.keys(d).filter(et=>!et.startsWith("_")).reduce((et,tt,nt)=>!et||Math.abs(j(tt)){if(!o.includes(":"))return[o,e];let[s,a]=o.split(":");return isNaN(Number(a))?[o,e]:[s,a]},webaudioOutput=async(o,e,s)=>{try{const a=getAudioContext();if(typeof o.value!="object")throw new Error(`hap.value ${o.value} is not supported by webaudio output. Hint: append .note() or .s() to the end`);const c=a.currentTime+e;let{freq:h,s:d,sf:g,clip:_=0,n:b=0,note:$,gain:j=1,cutoff:_e,resonance:et=1,hcutoff:tt,hresonance:nt=1,bandf:st,bandq:rt=1,pan:it,attack:at=.001,decay:ot=.05,sustain:ut=.5,release:ct=.001,speed:ht=1,begin:lt=0,end:pt=1}=o.value;const{velocity:ft=1}=o.context;j*=ft;const gt=[];if(typeof d=="string"&&([d,b]=splitSN(d,b)),typeof $=="string"&&([$,b]=splitSN($,b)),!d||["sine","square","triangle","sawtooth"].includes(d)){b=$||b,typeof b=="string"&&(b=toMidi(b)),!h&&typeof b=="number"&&(h=fromMidi(b));const mt=getOscillator({t:c,s:d,freq:h,duration:s,release:ct});gt.push(mt);const Et=a.createGain();Et.gain.value=.3,gt.push(Et);const Ot=getADSR(at,ot,ut,ct,1,c,c+s);gt.push(Ot)}else{if(ht===0)return;if(!d){console.warn("no sample specified");return}const mt=getSoundfontKey(d);let Et;try{mt?Et=await globalThis.getFontBufferSource(mt,$||b,a):Et=await getSampleBufferSource(d,b,$)}catch(At){console.warn(At);return}if(a.currentTime>c){console.warn("sample still loading:",d,b);return}if(!Et){console.warn("no buffer source");return}Et.playbackRate.value=Math.abs(ht)*Et.playbackRate.value;let Ot=mt||_?s:Et.buffer.duration;const St=lt*Ot;if(Ot=(pt-lt)*Ot/Math.abs(ht),mt||_?Et.start(c,St):Et.start(c,St,Ot),gt.push(Et),mt||_){const At=a.createGain(),dt=.1;At.gain.value=.6,At.gain.setValueAtTime(At.gain.value,c+Ot),At.gain.linearRampToValueAtTime(0,c+Ot+dt),gt.push(At),Et.stop(c+Ot+dt)}else Et.stop(c+Ot)}const yt=a.createGain();if(yt.gain.value=j,gt.push(yt),_e!==void 0&>.push(getFilter("lowpass",_e,et)),tt!==void 0&>.push(getFilter("highpass",tt,nt)),st!==void 0&>.push(getFilter("bandpass",st,rt)),it!==void 0){const mt=a.createStereoPanner();mt.pan.value=2*it-1,gt.push(mt)}gt.push(getDestination()),gt.slice(1).reduce((mt,Et)=>mt.connect(Et),gt[0])}catch(a){console.warn(".out error:",a)}};Pattern.prototype.out=function(){return this.onTrigger((o,e,s,a)=>webaudioOutput(e,o-s,e.duration/a))};function _extends(){return _extends=Object.assign?Object.assign.bind():function(o){for(var e=1;e=0)&&(s[c]=o[c]);return s}class Text{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,s,a){let c=[];return this.decompose(0,e,c,2),a.length&&a.decompose(0,a.length,c,3),this.decompose(s,this.length,c,1),TextNode.from(c,this.length-(s-e)+a.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,s=this.length){let a=[];return this.decompose(e,s,a,0),TextNode.from(a,s-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let s=this.scanIdentical(e,1),a=this.length-this.scanIdentical(e,-1),c=new RawTextCursor(this),h=new RawTextCursor(e);for(let d=s,g=s;;){if(c.next(d),h.next(d),d=0,c.lineBreak!=h.lineBreak||c.done!=h.done||c.value!=h.value)return!1;if(g+=c.value.length,c.done||g>=a)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,s=this.length){return new PartialTextCursor(this,e,s)}iterLines(e,s){let a;if(e==null)a=this.iter();else{s==null&&(s=this.lines+1);let c=this.line(e).from;a=this.iterRange(c,Math.max(c,s==this.lines+1?this.length:s<=1?0:this.line(s-1).to))}return new LineCursor(a)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Text.empty:e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[]))}}class TextLeaf extends Text{constructor(e,s=textLength(e)){super(),this.text=e,this.length=s}get lines(){return this.text.length}get children(){return null}lineInner(e,s,a,c){for(let h=0;;h++){let d=this.text[h],g=c+d.length;if((s?a:g)>=e)return new Line(c,g,a,d);c=g+1,a++}}decompose(e,s,a,c){let h=e<=0&&s>=this.length?this:new TextLeaf(sliceText(this.text,e,s),Math.min(s,this.length)-Math.max(0,e));if(c&1){let d=a.pop(),g=appendText(h.text,d.text.slice(),0,h.length);if(g.length<=32)a.push(new TextLeaf(g,d.length+h.length));else{let _=g.length>>1;a.push(new TextLeaf(g.slice(0,_)),new TextLeaf(g.slice(_)))}}else a.push(h)}replace(e,s,a){if(!(a instanceof TextLeaf))return super.replace(e,s,a);let c=appendText(this.text,appendText(a.text,sliceText(this.text,0,e)),s),h=this.length+a.length-(s-e);return c.length<=32?new TextLeaf(c,h):TextNode.from(TextLeaf.split(c,[]),h)}sliceString(e,s=this.length,a=` -`){let c="";for(let h=0,d=0;h<=s&&de&&d&&(c+=a),e<_&&s>h&&(c+=g.slice(Math.max(0,e-h),s-h)),h=_+1}return c}flatten(e){for(let s of this.text)e.push(s)}scanIdentical(){return 0}static split(e,s){let a=[],c=-1;for(let h of e)a.push(h),c+=h.length+1,a.length==32&&(s.push(new TextLeaf(a,c)),a=[],c=-1);return c>-1&&s.push(new TextLeaf(a,c)),s}}class TextNode extends Text{constructor(e,s){super(),this.children=e,this.length=s,this.lines=0;for(let a of e)this.lines+=a.lines}lineInner(e,s,a,c){for(let h=0;;h++){let d=this.children[h],g=c+d.length,_=a+d.lines-1;if((s?_:g)>=e)return d.lineInner(e,s,a,c);c=g+1,a=_+1}}decompose(e,s,a,c){for(let h=0,d=0;d<=s&&h=d){let b=c&((d<=e?1:0)|(_>=s?2:0));d>=e&&_<=s&&!b?a.push(g):g.decompose(e-d,s-d,a,b)}d=_+1}}replace(e,s,a){if(a.lines=h&&s<=g){let _=d.replace(e-h,s-h,a),b=this.lines-d.lines+_.lines;if(_.lines>5-1&&_.lines>b>>5+1){let $=this.children.slice();return $[c]=_,new TextNode($,this.length-(s-e)+a.length)}return super.replace(h,g,_)}h=g+1}return super.replace(e,s,a)}sliceString(e,s=this.length,a=` -`){let c="";for(let h=0,d=0;he&&h&&(c+=a),e<_&&s>d&&(c+=g.sliceString(e-d,s-d,a)),d=_+1}return c}flatten(e){for(let s of this.children)s.flatten(e)}scanIdentical(e,s){if(!(e instanceof TextNode))return 0;let a=0,[c,h,d,g]=s>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;c+=s,h+=s){if(c==d||h==g)return a;let _=this.children[c],b=e.children[h];if(_!=b)return a+_.scanIdentical(b,s);a+=_.length+1}}static from(e,s=e.reduce((a,c)=>a+c.length+1,-1)){let a=0;for(let et of e)a+=et.lines;if(a<32){let et=[];for(let tt of e)tt.flatten(et);return new TextLeaf(et,s)}let c=Math.max(32,a>>5),h=c<<1,d=c>>1,g=[],_=0,b=-1,$=[];function j(et){let tt;if(et.lines>h&&et instanceof TextNode)for(let nt of et.children)j(nt);else et.lines>d&&(_>d||!_)?(_e(),g.push(et)):et instanceof TextLeaf&&_&&(tt=$[$.length-1])instanceof TextLeaf&&et.lines+tt.lines<=32?(_+=et.lines,b+=et.length+1,$[$.length-1]=new TextLeaf(tt.text.concat(et.text),tt.length+1+et.length)):(_+et.lines>c&&_e(),_+=et.lines,b+=et.length+1,$.push(et))}function _e(){_!=0&&(g.push($.length==1?$[0]:TextNode.from($,b)),b=-1,_=$.length=0)}for(let et of e)j(et);return _e(),g.length==1?g[0]:new TextNode(g,s)}}Text.empty=new TextLeaf([""],0);function textLength(o){let e=-1;for(let s of o)e+=s.length+1;return e}function appendText(o,e,s=0,a=1e9){for(let c=0,h=0,d=!0;h=s&&(_>a&&(g=g.slice(0,a-c)),c0?1:(e instanceof TextLeaf?e.text.length:e.children.length)<<1]}nextInner(e,s){for(this.done=this.lineBreak=!1;;){let a=this.nodes.length-1,c=this.nodes[a],h=this.offsets[a],d=h>>1,g=c instanceof TextLeaf?c.text.length:c.children.length;if(d==(s>0?g:0)){if(a==0)return this.done=!0,this.value="",this;s>0&&this.offsets[a-1]++,this.nodes.pop(),this.offsets.pop()}else if((h&1)==(s>0?0:1)){if(this.offsets[a]+=s,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(c instanceof TextLeaf){let _=c.text[d+(s<0?-1:0)];if(this.offsets[a]+=s,_.length>Math.max(0,e))return this.value=e==0?_:s>0?_.slice(e):_.slice(0,_.length-e),this;e-=_.length}else{let _=c.children[d+(s<0?-1:0)];e>_.length?(e-=_.length,this.offsets[a]+=s):(s<0&&this.offsets[a]--,this.nodes.push(_),this.offsets.push(s>0?1:(_ instanceof TextLeaf?_.text.length:_.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class PartialTextCursor{constructor(e,s,a){this.value="",this.done=!1,this.cursor=new RawTextCursor(e,s>a?-1:1),this.pos=s>a?e.length:0,this.from=Math.min(s,a),this.to=Math.max(s,a)}nextInner(e,s){if(s<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,s<0?this.pos-this.to:this.from-this.pos);let a=s<0?this.pos-this.from:this.to-this.pos;e>a&&(e=a),a-=e;let{value:c}=this.cursor.next(e);return this.pos+=(c.length+e)*s,this.value=c.length<=a?c:s<0?c.slice(c.length-a):c.slice(0,a),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:s,lineBreak:a,value:c}=this.inner.next(e);return s?(this.done=!0,this.value=""):a?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=c,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});class Line{constructor(e,s,a,c){this.from=e,this.to=s,this.number=a,this.text=c}get length(){return this.to-this.from}}let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(o=>o?parseInt(o,36):1);for(let o=1;oo)return extend[e-1]<=o;return!1}function isRegionalIndicator(o){return o>=127462&&o<=127487}const ZWJ=8205;function findClusterBreak(o,e,s=!0,a=!0){return(s?nextClusterBreak:prevClusterBreak)(o,e,a)}function nextClusterBreak(o,e,s){if(e==o.length)return e;e&&surrogateLow(o.charCodeAt(e))&&surrogateHigh(o.charCodeAt(e-1))&&e--;let a=codePointAt(o,e);for(e+=codePointSize(a);e=0&&isRegionalIndicator(codePointAt(o,d));)h++,d-=2;if(h%2==0)break;e+=2}else break}return e}function prevClusterBreak(o,e,s){for(;e>0;){let a=nextClusterBreak(o,e-2,s);if(a=56320&&o<57344}function surrogateHigh(o){return o>=55296&&o<56320}function codePointAt(o,e){let s=o.charCodeAt(e);if(!surrogateHigh(s)||e+1==o.length)return s;let a=o.charCodeAt(e+1);return surrogateLow(a)?(s-55296<<10)+(a-56320)+65536:s}function fromCodePoint(o){return o<=65535?String.fromCharCode(o):(o-=65536,String.fromCharCode((o>>10)+55296,(o&1023)+56320))}function codePointSize(o){return o<65536?1:2}const DefaultSplit=/\r\n?|\n/;var MapMode=function(o){return o[o.Simple=0]="Simple",o[o.TrackDel=1]="TrackDel",o[o.TrackBefore=2]="TrackBefore",o[o.TrackAfter=3]="TrackAfter",o}(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e}get length(){let e=0;for(let s=0;se)return h+(e-c);h+=g}else{if(a!=MapMode.Simple&&b>=e&&(a==MapMode.TrackDel&&ce||a==MapMode.TrackBefore&&ce))return null;if(b>e||b==e&&s<0&&!g)return e==c||s<0?h:h+_;h+=_}c=b}if(e>c)throw new RangeError(`Position ${e} is out of range for changeset of length ${c}`);return h}touchesRange(e,s=e){for(let a=0,c=0;a=0&&c<=s&&g>=e)return cs?"cover":!0;c=g}return!1}toString(){let e="";for(let s=0;s=0?":"+c:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(s=>typeof s!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}static create(e){return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,s){super(e),this.inserted=s}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(s,a,c,h,d)=>e=e.replace(c,c+(a-s),d),!1),e}mapDesc(e,s=!1){return mapSet(this,e,s,!0)}invert(e){let s=this.sections.slice(),a=[];for(let c=0,h=0;c=0){s[c]=g,s[c+1]=d;let _=c>>1;for(;a.length<_;)a.push(Text.empty);a.push(d?e.slice(h,h+d):Text.empty)}h+=d}return new ChangeSet(s,a)}compose(e){return this.empty?e:e.empty?this:composeSets(this,e,!0)}map(e,s=!1){return e.empty?this:mapSet(this,e,s,!0)}iterChanges(e,s=!1){iterChanges(this,e,s)}get desc(){return ChangeDesc.create(this.sections)}filter(e){let s=[],a=[],c=[],h=new SectionIter(this);e:for(let d=0,g=0;;){let _=d==e.length?1e9:e[d++];for(;g<_||g==_&&h.len==0;){if(h.done)break e;let $=Math.min(h.len,_-g);addSection(c,$,-1);let j=h.ins==-1?-1:h.off==0?h.ins:0;addSection(s,$,j),j>0&&addInsert(a,s,h.text),h.forward($),g+=$}let b=e[d++];for(;g>1].toJSON()))}return e}static of(e,s,a){let c=[],h=[],d=0,g=null;function _($=!1){if(!$&&!c.length)return;d_e||j<0||_e>s)throw new RangeError(`Invalid change range ${j} to ${_e} (in doc of length ${s})`);let tt=et?typeof et=="string"?Text.of(et.split(a||DefaultSplit)):et:Text.empty,nt=tt.length;if(j==_e&&nt==0)return;jd&&addSection(c,j-d,-1),addSection(c,_e-j,nt),addInsert(h,c,tt),d=_e}}return b(e),_(!g),g}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let s=[],a=[];for(let c=0;cg&&typeof d!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(h.length==1)s.push(h[0],0);else{for(;a.length=0&&s<=0&&s==o[c+1]?o[c]+=e:e==0&&o[c]==0?o[c+1]+=s:a?(o[c]+=e,o[c+1]+=s):o.push(e,s)}function addInsert(o,e,s){if(s.length==0)return;let a=e.length-2>>1;if(a>1])),!(s||d==o.sections.length||o.sections[d+1]<0);)g=o.sections[d++],_=o.sections[d++];e(c,b,h,$,j),c=b,h=$}}}function mapSet(o,e,s,a=!1){let c=[],h=a?[]:null,d=new SectionIter(o),g=new SectionIter(e);for(let _=-1;;)if(d.ins==-1&&g.ins==-1){let b=Math.min(d.len,g.len);addSection(c,b,-1),d.forward(b),g.forward(b)}else if(g.ins>=0&&(d.ins<0||_==d.i||d.off==0&&(g.len=0&&_=0){let b=0,$=d.len;for(;$;)if(g.ins==-1){let j=Math.min($,g.len);b+=j,$-=j,g.forward(j)}else if(g.ins==0&&g.len<$)$-=g.len,g.next();else break;addSection(c,b,__||d.ins>=0&&d.len>_)&&(g||a.length>b),h.forward2(_),d.forward(_)}}}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return s>=e.length?Text.empty:e[s]}textBit(e){let{inserted:s}=this.set,a=this.i-2>>1;return a>=s.length&&!e?Text.empty:s[a].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class SelectionRange{constructor(e,s,a){this.from=e,this.to=s,this.flags=a}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,s=-1){let a,c;return this.empty?a=c=e.mapPos(this.from,s):(a=e.mapPos(this.from,1),c=e.mapPos(this.to,-1)),a==this.from&&c==this.to?this:new SelectionRange(a,c,this.flags)}extend(e,s=e){if(e<=this.anchor&&s>=this.anchor)return EditorSelection.range(e,s);let a=Math.abs(e-this.anchor)>Math.abs(s-this.anchor)?e:s;return EditorSelection.range(this.anchor,a)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}static create(e,s,a){return new SelectionRange(e,s,a)}}class EditorSelection{constructor(e,s){this.ranges=e,this.mainIndex=s}map(e,s=-1){return e.empty?this:EditorSelection.create(this.ranges.map(a=>a.map(e,s)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let s=0;se.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(s=>SelectionRange.fromJSON(s)),e.main)}static single(e,s=e){return new EditorSelection([EditorSelection.range(e,s)],0)}static create(e,s=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let a=0,c=0;ce?4:0))}static normalized(e,s=0){let a=e[s];e.sort((c,h)=>c.from-h.from),s=e.indexOf(a);for(let c=1;ch.head?EditorSelection.range(_,g):EditorSelection.range(g,_))}}return new EditorSelection(e,s)}}function checkSelection(o,e){for(let s of o.ranges)if(s.to>e)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,s,a,c,h){this.combine=e,this.compareInput=s,this.compare=a,this.isStatic=c,this.id=nextID++,this.default=e([]),this.extensions=typeof h=="function"?h(this):h}static define(e={}){return new Facet(e.combine||(s=>s),e.compareInput||((s,a)=>s===a),e.compare||(e.combine?(s,a)=>s===a:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,s)}computeN(e,s){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,s)}from(e,s){return s||(s=a=>a),this.compute([e],a=>s(a.field(e)))}}function sameArray$1(o,e){return o==e||o.length==e.length&&o.every((s,a)=>s===e[a])}class FacetProvider{constructor(e,s,a,c){this.dependencies=e,this.facet=s,this.type=a,this.value=c,this.id=nextID++}dynamicSlot(e){var s;let a=this.value,c=this.facet.compareInput,h=this.id,d=e[h]>>1,g=this.type==2,_=!1,b=!1,$=[];for(let j of this.dependencies)j=="doc"?_=!0:j=="selection"?b=!0:(((s=e[j.id])!==null&&s!==void 0?s:1)&1)==0&&$.push(e[j.id]);return{create(j){return j.values[d]=a(j),1},update(j,_e){if(_&&_e.docChanged||b&&(_e.docChanged||_e.selection)||ensureAll(j,$)){let et=a(j);if(g?!compareArray(et,j.values[d],c):!c(et,j.values[d]))return j.values[d]=et,1}return 0},reconfigure:(j,_e)=>{let et=a(j),tt=_e.config.address[h];if(tt!=null){let nt=getAddr(_e,tt);if(this.dependencies.every(st=>st instanceof Facet?_e.facet(st)===j.facet(st):st instanceof StateField?_e.field(st,!1)==j.field(st,!1):!0)||(g?compareArray(et,nt,c):c(et,nt)))return j.values[d]=nt,0}return j.values[d]=et,1}}}}function compareArray(o,e,s){if(o.length!=e.length)return!1;for(let a=0;ao[_.id]),c=s.map(_=>_.type),h=a.filter(_=>!(_&1)),d=o[e.id]>>1;function g(_){let b=[];for(let $=0;$a===c),e);return e.provide&&(s.provides=e.provide(s)),s}create(e){let s=e.facet(initField).find(a=>a.field==this);return((s==null?void 0:s.create)||this.createF)(e)}slot(e){let s=e[this.id]>>1;return{create:a=>(a.values[s]=this.create(a),1),update:(a,c)=>{let h=a.values[s],d=this.updateF(h,c);return this.compareF(h,d)?0:(a.values[s]=d,1)},reconfigure:(a,c)=>c.config.address[this.id]!=null?(a.values[s]=c.field(this),0):(a.values[s]=this.create(a),1)}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(o){return e=>new PrecExtension(e,o)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(e,s){this.inner=e,this.prec=s}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,s){this.compartment=e,this.inner=s}}class Configuration{constructor(e,s,a,c,h,d){for(this.base=e,this.compartments=s,this.dynamicSlots=a,this.address=c,this.staticValues=h,this.facets=d,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,s,a){let c=[],h=Object.create(null),d=new Map;for(let _e of flatten(e,s,d))_e instanceof StateField?c.push(_e):(h[_e.facet.id]||(h[_e.facet.id]=[])).push(_e);let g=Object.create(null),_=[],b=[];for(let _e of c)g[_e.id]=b.length<<1,b.push(et=>_e.slot(et));let $=a==null?void 0:a.config.facets;for(let _e in h){let et=h[_e],tt=et[0].facet,nt=$&&$[_e]||[];if(et.every(st=>st.type==0))if(g[tt.id]=_.length<<1|1,sameArray$1(nt,et))_.push(a.facet(tt));else{let st=tt.combine(et.map(rt=>rt.value));_.push(a&&tt.compare(st,a.facet(tt))?a.facet(tt):st)}else{for(let st of et)st.type==0?(g[st.id]=_.length<<1|1,_.push(st.value)):(g[st.id]=b.length<<1,b.push(rt=>st.dynamicSlot(rt)));g[tt.id]=b.length<<1,b.push(st=>dynamicFacetSlot(st,tt,et))}}let j=b.map(_e=>_e(g));return new Configuration(e,d,j,g,_,h)}}function flatten(o,e,s){let a=[[],[],[],[],[]],c=new Map;function h(d,g){let _=c.get(d);if(_!=null){if(_<=g)return;let b=a[_].indexOf(d);b>-1&&a[_].splice(b,1),d instanceof CompartmentInstance&&s.delete(d.compartment)}if(c.set(d,g),Array.isArray(d))for(let b of d)h(b,g);else if(d instanceof CompartmentInstance){if(s.has(d.compartment))throw new RangeError("Duplicate use of compartment in extensions");let b=e.get(d.compartment)||d.inner;s.set(d.compartment,b),h(b,g)}else if(d instanceof PrecExtension)h(d.inner,d.prec);else if(d instanceof StateField)a[g].push(d),d.provides&&h(d.provides,g);else if(d instanceof FacetProvider)a[g].push(d),d.facet.extensions&&h(d.facet.extensions,Prec_.default);else{let b=d.extension;if(!b)throw new Error(`Unrecognized extension value in extension set (${d}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);h(b,g)}}return h(o,Prec_.default),a.reduce((d,g)=>d.concat(g))}function ensureAddr(o,e){if(e&1)return 2;let s=e>>1,a=o.status[s];if(a==4)throw new Error("Cyclic dependency between fields and/or facets");if(a&2)return a;o.status[s]=4;let c=o.computeSlot(o,o.config.dynamicSlots[s]);return o.status[s]=2|c}function getAddr(o,e){return e&1?o.config.staticValues[e>>1]:o.values[e>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:o=>o.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:o=>o.length?o[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly=Facet.define({combine:o=>o.length?o[0]:!1});class Annotation{constructor(e,s){this.type=e,this.value=s}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,s){this.type=e,this.value=s}map(e){let s=this.type.map(this.value,e);return s===void 0?void 0:s==this.value?this:new StateEffect(this.type,s)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(s=>s))}static mapEffects(e,s){if(!e.length)return e;let a=[];for(let c of e){let h=c.map(s);h&&a.push(h)}return a}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,s,a,c,h,d){this.startState=e,this.changes=s,this.selection=a,this.effects=c,this.annotations=h,this.scrollIntoView=d,this._doc=null,this._state=null,a&&checkSelection(a,s.newLength),h.some(g=>g.type==Transaction.time)||(this.annotations=h.concat(Transaction.time.of(Date.now())))}static create(e,s,a,c,h,d){return new Transaction(e,s,a,c,h,d)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let s of this.annotations)if(s.type==e)return s.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let s=this.annotation(Transaction.userEvent);return!!(s&&(s==e||s.length>e.length&&s.slice(0,e.length)==e&&s[e.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(o,e){let s=[];for(let a=0,c=0;;){let h,d;if(a=o[a]))h=o[a++],d=o[a++];else if(c=0;c--){let h=a[c](o);h instanceof Transaction?o=h:Array.isArray(h)&&h.length==1&&h[0]instanceof Transaction?o=h[0]:o=resolveTransaction(e,asArray$1(h),!1)}return o}function extendTransaction(o){let e=o.startState,s=e.facet(transactionExtender),a=o;for(let c=s.length-1;c>=0;c--){let h=s[c](o);h&&Object.keys(h).length&&(a=mergeTransaction(o,resolveTransactionInner(e,h,o.changes.newLength),!0))}return a==o?o:Transaction.create(e,o.changes,o.selection,a.effects,a.annotations,a.scrollIntoView)}const none$2=[];function asArray$1(o){return o==null?none$2:Array.isArray(o)?o:[o]}var CharCategory=function(o){return o[o.Word=0]="Word",o[o.Space=1]="Space",o[o.Other=2]="Other",o}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(o){}function hasWordChar(o){if(wordChar)return wordChar.test(o);for(let e=0;e"\x80"&&(s.toUpperCase()!=s.toLowerCase()||nonASCIISingleCaseWordChar.test(s)))return!0}return!1}function makeCategorizer(o){return e=>{if(!/\S/.test(e))return CharCategory.Space;if(hasWordChar(e))return CharCategory.Word;for(let s=0;s-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,s,a,c,h,d){this.config=e,this.doc=s,this.selection=a,this.values=c,this.status=e.statusTemplate.slice(),this.computeSlot=h,d&&(d._state=this);for(let g=0;gc.set(_,g)),s=null),c.set(d.value.compartment,d.value.extension)):d.is(StateEffect.reconfigure)?(s=null,a=d.value):d.is(StateEffect.appendConfig)&&(s=null,a=asArray$1(a).concat(d.value));let h;s?h=e.startState.values.slice():(s=Configuration.resolve(a,c,this),h=new EditorState(s,this.doc,this.selection,s.dynamicSlots.map(()=>null),(g,_)=>_.reconfigure(g,this),null).values),new EditorState(s,e.newDoc,e.newSelection,h,(d,g)=>g.update(d,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(s=>({changes:{from:s.from,to:s.to,insert:e},range:EditorSelection.cursor(s.from+e.length)}))}changeByRange(e){let s=this.selection,a=e(s.ranges[0]),c=this.changes(a.changes),h=[a.range],d=asArray$1(a.effects);for(let g=1;gd.spec.fromJSON(g,_)))}}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:s.extensions?c.concat([s.extensions]):c})}static create(e={}){let s=Configuration.resolve(e.extensions||[],new Map),a=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(s.staticFacet(EditorState.lineSeparator)||DefaultSplit)),c=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(c,a.length),s.staticFacet(allowMultipleSelections)||(c=c.asSingle()),new EditorState(s,a,c,s.dynamicSlots.map(()=>null),(h,d)=>d.create(h),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||` -`}get readOnly(){return this.facet(readOnly)}phrase(e,...s){for(let a of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(a,e)){e=a[e];break}return s.length&&(e=e.replace(/\$(\$|\d*)/g,(a,c)=>{if(c=="$")return"$";let h=+(c||1);return!h||h>s.length?a:s[h-1]})),e}languageDataAt(e,s,a=-1){let c=[];for(let h of this.facet(languageData))for(let d of h(this,s,a))Object.prototype.hasOwnProperty.call(d,e)&&c.push(d[e]);return c}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:s,from:a,length:c}=this.doc.lineAt(e),h=this.charCategorizer(e),d=e-a,g=e-a;for(;d>0;){let _=findClusterBreak(s,d,!1);if(h(s.slice(_,d))!=CharCategory.Word)break;d=_}for(;go.length?o[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define({compare(o,e){let s=Object.keys(o),a=Object.keys(e);return s.length==a.length&&s.every(c=>o[c]==e[c])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();function combineConfig(o,e,s={}){let a={};for(let c of o)for(let h of Object.keys(c)){let d=c[h],g=a[h];if(g===void 0)a[h]=d;else if(!(g===d||d===void 0))if(Object.hasOwnProperty.call(s,h))a[h]=s[h](g,d);else throw new Error("Config merge conflict for field "+h)}for(let c in e)a[c]===void 0&&(a[c]=e[c]);return a}class RangeValue{eq(e){return this==e}range(e,s=e){return Range$1.create(e,s,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=!1;RangeValue.prototype.mapMode=MapMode.TrackDel;class Range$1{constructor(e,s,a){this.from=e,this.to=s,this.value=a}static create(e,s,a){return new Range$1(e,s,a)}}function cmpRange(o,e){return o.from-e.from||o.value.startSide-e.value.startSide}class Chunk{constructor(e,s,a,c){this.from=e,this.to=s,this.value=a,this.maxPoint=c}get length(){return this.to[this.to.length-1]}findIndex(e,s,a,c=0){let h=a?this.to:this.from;for(let d=c,g=h.length;;){if(d==g)return d;let _=d+g>>1,b=h[_]-e||(a?this.value[_].endSide:this.value[_].startSide)-s;if(_==d)return b>=0?d:g;b>=0?g=_:d=_+1}}between(e,s,a,c){for(let h=this.findIndex(s,-1e9,!0),d=this.findIndex(a,1e9,!1,h);het||_e==et&&b.startSide>0&&b.endSide<=0)continue;(et-_e||b.endSide-b.startSide)<0||(d<0&&(d=_e),b.point&&(g=Math.max(g,et-_e)),a.push(b),c.push(_e-d),h.push(et-d))}return{mapped:a.length?new Chunk(c,h,a,g):null,pos:d}}}class RangeSet{constructor(e,s,a,c){this.chunkPos=e,this.chunk=s,this.nextLayer=a,this.maxPoint=c}static create(e,s,a,c){return new RangeSet(e,s,a,c)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let s of this.chunk)e+=s.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:s=[],sort:a=!1,filterFrom:c=0,filterTo:h=this.length}=e,d=e.filter;if(s.length==0&&!d)return this;if(a&&(s=s.slice().sort(cmpRange)),this.isEmpty)return s.length?RangeSet.of(s):this;let g=new LayerCursor(this,null,-1).goto(0),_=0,b=[],$=new RangeSetBuilder;for(;g.value||_=0){let j=s[_++];$.addInner(j.from,j.to,j.value)||b.push(j)}else g.rangeIndex==1&&g.chunkIndexthis.chunkEnd(g.chunkIndex)||hg.to||h=h&&e<=h+d.length&&d.between(h,e-h,s-h,a)===!1)return}this.nextLayer.between(e,s,a)}}iter(e=0){return HeapCursor.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,s=0){return HeapCursor.from(e).goto(s)}static compare(e,s,a,c,h=-1){let d=e.filter(j=>j.maxPoint>0||!j.isEmpty&&j.maxPoint>=h),g=s.filter(j=>j.maxPoint>0||!j.isEmpty&&j.maxPoint>=h),_=findSharedChunks(d,g,a),b=new SpanCursor(d,_,h),$=new SpanCursor(g,_,h);a.iterGaps((j,_e,et)=>compare(b,j,$,_e,et,c)),a.empty&&a.length==0&&compare(b,0,$,0,0,c)}static eq(e,s,a=0,c){c==null&&(c=1e9);let h=e.filter($=>!$.isEmpty&&s.indexOf($)<0),d=s.filter($=>!$.isEmpty&&e.indexOf($)<0);if(h.length!=d.length)return!1;if(!h.length)return!0;let g=findSharedChunks(h,d),_=new SpanCursor(h,g,0).goto(a),b=new SpanCursor(d,g,0).goto(a);for(;;){if(_.to!=b.to||!sameValues(_.active,b.active)||_.point&&(!b.point||!_.point.eq(b.point)))return!1;if(_.to>c)return!0;_.next(),b.next()}}static spans(e,s,a,c,h=-1){let d=new SpanCursor(e,null,h).goto(s),g=s,_=d.openStart;for(;;){let b=Math.min(d.to,a);if(d.point?(c.point(g,b,d.point,d.activeForPoint(d.to),_,d.pointRank),_=d.openEnd(b)+(d.to>b?1:0)):b>g&&(c.span(g,b,d.active,_),_=d.openEnd(b)),d.to>a)break;g=d.to,d.next()}return _}static of(e,s=!1){let a=new RangeSetBuilder;for(let c of e instanceof Range$1?[e]:s?lazySort(e):e)a.add(c.from,c.to,c.value);return a.finish()}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(o){if(o.length>1)for(let e=o[0],s=1;s0)return o.slice().sort(cmpRange);e=a}return o}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,s,a){this.addInner(e,s,a)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,s,a)}addInner(e,s,a){let c=e-this.lastTo||a.startSide-this.last.endSide;if(c<=0&&(e-this.lastFrom||a.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return c<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(s-this.chunkStart),this.last=a,this.lastFrom=e,this.lastTo=s,this.value.push(a),a.point&&(this.maxPoint=Math.max(this.maxPoint,s-e)),!0)}addChunk(e,s){if((e-this.lastTo||s.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,s.maxPoint),this.chunks.push(s),this.chunkPos.push(e);let a=s.value.length-1;return this.last=s.value[a],this.lastFrom=s.from[a]+e,this.lastTo=s.to[a]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let s=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,s}}function findSharedChunks(o,e,s){let a=new Map;for(let h of o)for(let d=0;d=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=a&&c.push(new LayerCursor(d,s,a,h));return c.length==1?c[0]:new HeapCursor(c)}get startSide(){return this.value?this.value.startSide:0}goto(e,s=-1e9){for(let a of this.heap)a.goto(e,s);for(let a=this.heap.length>>1;a>=0;a--)heapBubble(this.heap,a);return this.next(),this}forward(e,s){for(let a of this.heap)a.forward(e,s);for(let a=this.heap.length>>1;a>=0;a--)heapBubble(this.heap,a);(this.to-e||this.value.endSide-s)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(o,e){for(let s=o[e];;){let a=(e<<1)+1;if(a>=o.length)break;let c=o[a];if(a+1=0&&(c=o[a+1],a++),s.compare(c)<0)break;o[a]=s,o[e]=c,e=a}}class SpanCursor{constructor(e,s,a){this.minPoint=a,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=HeapCursor.from(e,s,a)}goto(e,s=-1e9){return this.cursor.goto(e,s),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=s,this.openStart=-1,this.next(),this}forward(e,s){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-s)<0;)this.removeActive(this.minActive);this.cursor.forward(e,s)}removeActive(e){remove(this.active,e),remove(this.activeTo,e),remove(this.activeRank,e),this.minActive=findMinIndex(this.active,this.activeTo)}addActive(e){let s=0,{value:a,to:c,rank:h}=this.cursor;for(;s-1&&(this.activeTo[h]-this.cursor.from||this.active[h].endSide-this.cursor.startSide)<0){if(this.activeTo[h]>e){this.to=this.activeTo[h],this.endSide=this.active[h].endSide;break}this.removeActive(h),a&&remove(a,h)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let d=this.cursor.value;if(!d.point)this.addActive(a),this.cursor.frome&&c++,this.cursor.next();else if(s&&this.cursor.to==this.to&&this.cursor.from=0&&!(this.activeRank[a]e||this.activeTo[a]==e&&this.active[a].endSide>=this.point.endSide)&&s.push(this.active[a]);return s.reverse()}openEnd(e){let s=0;for(let a=this.activeTo.length-1;a>=0&&this.activeTo[a]>e;a--)s++;return s}}function compare(o,e,s,a,c,h){o.goto(e),s.goto(a);let d=a+c,g=a,_=a-e;for(;;){let b=o.to+_-s.to||o.endSide-s.endSide,$=b<0?o.to+_:s.to,j=Math.min($,d);if(o.point||s.point?o.point&&s.point&&(o.point==s.point||o.point.eq(s.point))&&sameValues(o.activeForPoint(o.to+_),s.activeForPoint(s.to))||h.comparePoint(g,j,o.point,s.point):j>g&&!sameValues(o.active,s.active)&&h.compareRange(g,j,o.active,s.active),$>d)break;g=$,b<=0&&o.next(),b>=0&&s.next()}}function sameValues(o,e){if(o.length!=e.length)return!1;for(let s=0;s=e;a--)o[a+1]=o[a];o[e]=s}function findMinIndex(o,e){let s=-1,a=1e9;for(let c=0;c=e)return c;if(c==o.length)break;h+=o.charCodeAt(c)==9?s-h%s:1,c=findClusterBreak(o,c)}return a===!0?-1:o.length}const C="\u037C",COUNT=typeof Symbol>"u"?"__"+C:Symbol.for(C),SET=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),top=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class StyleModule{constructor(e,s){this.rules=[];let{finish:a}=s||{};function c(d){return/^@/.test(d)?[d]:d.split(/,\s*/)}function h(d,g,_,b){let $=[],j=/^@(\w+)\b/.exec(d[0]),_e=j&&j[1]=="keyframes";if(j&&g==null)return _.push(d[0]+";");for(let et in g){let tt=g[et];if(/&/.test(et))h(et.split(/,\s*/).map(nt=>d.map(st=>nt.replace(/&/,st))).reduce((nt,st)=>nt.concat(st)),tt,_);else if(tt&&typeof tt=="object"){if(!j)throw new RangeError("The value of a property ("+et+") should be a primitive value.");h(c(et),tt,$,_e)}else tt!=null&&$.push(et.replace(/_.*/,"").replace(/[A-Z]/g,nt=>"-"+nt.toLowerCase())+": "+tt+";")}($.length||_e)&&_.push((a&&!j&&!b?d.map(a):d).join(", ")+" {"+$.join(" ")+"}")}for(let d in e)h(c(d),e[d],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=top[COUNT]||1;return top[COUNT]=e+1,C+e.toString(36)}static mount(e,s){(e[SET]||new StyleSet(e)).mount(Array.isArray(s)?s:[s])}}let adoptedSet=null;class StyleSet{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet<"u"){if(adoptedSet)return e.adoptedStyleSheets=[adoptedSet.sheet].concat(e.adoptedStyleSheets),e[SET]=adoptedSet;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),adoptedSet=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let s=e.head||e;s.insertBefore(this.styleTag,s.firstChild)}this.modules=[],e[SET]=this}mount(e){let s=this.sheet,a=0,c=0;for(let h=0;h-1&&(this.modules.splice(g,1),c--,g=-1),g==-1){if(this.modules.splice(c++,0,d),s)for(let _=0;_",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},chrome$1=typeof navigator<"u"&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1=typeof navigator<"u"&&/Apple Computer/.test(navigator.vendor),gecko$1=typeof navigator<"u"&&/Gecko\/\d+/.test(navigator.userAgent),mac=typeof navigator<"u"&&/Mac/.test(navigator.platform),ie$1=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac;for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(var code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(o){var e=brokenModifierNames&&(o.ctrlKey||o.altKey||o.metaKey)||(safari$1||ie$1)&&o.shiftKey&&o.key&&o.key.length==1,s=!e&&o.key||(o.shiftKey?shift:base)[o.keyCode]||o.key||"Unidentified";return s=="Esc"&&(s="Escape"),s=="Del"&&(s="Delete"),s=="Left"&&(s="ArrowLeft"),s=="Up"&&(s="ArrowUp"),s=="Right"&&(s="ArrowRight"),s=="Down"&&(s="ArrowDown"),s}function getSelection(o){let e;return o.nodeType==11?e=o.getSelection?o:o.ownerDocument:e=o,e.getSelection()}function contains(o,e){return e?o==e||o.contains(e.nodeType!=1?e.parentNode:e):!1}function deepActiveElement(){let o=document.activeElement;for(;o&&o.shadowRoot;)o=o.shadowRoot.activeElement;return o}function hasSelection(o,e){if(!e.anchorNode)return!1;try{return contains(o,e.anchorNode)}catch{return!1}}function clientRectsFor(o){return o.nodeType==3?textRange(o,0,o.nodeValue.length).getClientRects():o.nodeType==1?o.getClientRects():[]}function isEquivalentPosition(o,e,s,a){return s?scanFor(o,e,s,a,-1)||scanFor(o,e,s,a,1):!1}function domIndex(o){for(var e=0;;e++)if(o=o.previousSibling,!o)return e}function scanFor(o,e,s,a,c){for(;;){if(o==s&&e==a)return!0;if(e==(c<0?0:maxOffset(o))){if(o.nodeName=="DIV")return!1;let h=o.parentNode;if(!h||h.nodeType!=1)return!1;e=domIndex(o)+(c<0?0:1),o=h}else if(o.nodeType==1){if(o=o.childNodes[e+(c<0?-1:0)],o.nodeType==1&&o.contentEditable=="false")return!1;e=c<0?maxOffset(o):0}else return!1}}function maxOffset(o){return o.nodeType==3?o.nodeValue.length:o.childNodes.length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(o,e){let s=e?o.left:o.right;return{left:s,right:s,top:o.top,bottom:o.bottom}}function windowRect(o){return{left:0,right:o.innerWidth,top:0,bottom:o.innerHeight}}function scrollRectIntoView(o,e,s,a,c,h,d,g){let _=o.ownerDocument,b=_.defaultView;for(let $=o;$;)if($.nodeType==1){let j,_e=$==_.body;if(_e)j=windowRect(b);else{if($.scrollHeight<=$.clientHeight&&$.scrollWidth<=$.clientWidth){$=$.parentNode;continue}let nt=$.getBoundingClientRect();j={left:nt.left,right:nt.left+$.clientWidth,top:nt.top,bottom:nt.top+$.clientHeight}}let et=0,tt=0;if(c=="nearest")e.top0&&e.bottom>j.bottom+tt&&(tt=e.bottom-j.bottom+tt+d)):e.bottom>j.bottom&&(tt=e.bottom-j.bottom+d,s<0&&e.top-tt0&&e.right>j.right+et&&(et=e.right-j.right+et+h)):e.right>j.right&&(et=e.right-j.right+h,s<0&&e.lefts)return j.domBoundsAround(e,s,b);if(_e>=e&&c==-1&&(c=_,h=b),b>s&&j.dom.parentNode==this.dom){d=_,g=$;break}$=_e,b=_e+j.breakAfter}return{from:h,to:g<0?a+this.length:g,startDOM:(c?this.children[c-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:d=0?this.children[d].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let s=this.parent;s;s=s.parent){if(e&&(s.dirty|=2),s.dirty&1)return;s.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let s=e.parent;if(!s)return e;e=s}}replaceChildren(e,s,a=noChildren){this.markDirty();for(let c=e;cthis.pos||e==this.pos&&(s>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let a=this.children[--this.i];this.pos-=a.length+a.breakAfter}}}function replaceRange(o,e,s,a,c,h,d,g,_){let{children:b}=o,$=b.length?b[e]:null,j=h.length?h[h.length-1]:null,_e=j?j.breakAfter:d;if(!(e==a&&$&&!d&&!_e&&h.length<2&&$.merge(s,c,h.length?j:null,s==0,g,_))){if(a0&&(!d&&h.length&&$.merge(s,$.length,h[0],!1,g,0)?$.breakAfter=h.shift().breakAfter:(s<$.length||$.children.length&&$.children[$.children.length-1].length==0)&&$.merge(s,$.length,null,!1,g,0),e++));e2);var browser={mac:ios||/Mac/.test(nav.platform),windows:/Win/.test(nav.platform),linux:/Linux|X11/.test(nav.platform),ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/Android\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const MaxJoinLen=256;class TextView extends ContentView{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,s,a){return a&&(!(a instanceof TextView)||this.length-(s-e)+a.length>MaxJoinLen)?!1:(this.text=this.text.slice(0,e)+(a?a.text:"")+this.text.slice(s),this.markDirty(),!0)}split(e){let s=new TextView(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),s}localPosFromDOM(e,s){return e==this.dom?s:s?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,s,a){return{from:a,to:a+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,s){return textCoords(this.dom,e,s)}}class MarkView extends ContentView{constructor(e,s=[],a=0){super(),this.mark=e,this.children=s,this.length=a;for(let c of s)c.setParent(this)}setAttrs(e){if(clearAttributes(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let s in this.mark.attrs)e.setAttribute(s,this.mark.attrs[s]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,s,a,c,h,d){return a&&(!(a instanceof MarkView&&a.mark.eq(this.mark))||e&&h<=0||se&&s.push(a=e&&(c=h),a=_,h++}let d=this.length-e;return this.length=e,c>-1&&(this.children.length=c,this.markDirty()),new MarkView(this.mark,s,d)}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}coordsAt(e,s){return coordsInChildren(this,e,s)}}function textCoords(o,e,s){let a=o.nodeValue.length;e>a&&(e=a);let c=e,h=e,d=0;e==0&&s<0||e==a&&s>=0?browser.chrome||browser.gecko||(e?(c--,d=1):h=0)?0:g.length-1];return browser.safari&&!d&&_.width==0&&(_=Array.prototype.find.call(g,b=>b.width)||_),d?flattenRect(_,d<0):_||null}class WidgetView extends ContentView{constructor(e,s,a){super(),this.widget=e,this.length=s,this.side=a,this.prevWidget=null}static create(e,s,a){return new(e.customView||WidgetView)(e,s,a)}split(e){let s=WidgetView.create(this.widget,this.length-e,this.side);return this.length-=e,s}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,s,a,c,h,d){return a&&(!(a instanceof WidgetView)||!this.widget.compare(a.widget)||e>0&&h<=0||s0?a.length-1:0;c=a[h],!(e>0?h==0:h==a.length-1||c.top0?-1:1);return e==0&&s>0||e==this.length&&s<=0?c:flattenRect(c,e==0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class CompositionView extends WidgetView{domAtPos(e){let{topView:s,text:a}=this.widget;return s?scanCompositionTree(e,0,s,a,(c,h)=>c.domAtPos(h),c=>new DOMPos(a,Math.min(c,a.nodeValue.length))):new DOMPos(a,Math.min(e,a.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,s){let{topView:a,text:c}=this.widget;return a?posFromDOMInCompositionTree(e,s,a,c):Math.min(s,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,s){let{topView:a,text:c}=this.widget;return a?scanCompositionTree(e,s,a,c,(h,d,g)=>h.coordsAt(d,g),(h,d)=>textCoords(c,h,d)):textCoords(c,e,s)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}}function scanCompositionTree(o,e,s,a,c,h){if(s instanceof MarkView){for(let d of s.children){let g=contains(d.dom,a),_=g?a.nodeValue.length:d.length;if(o<_||o==_&&d.getSide()<=0)return g?scanCompositionTree(o,e,d,a,c,h):c(d,o,e);o-=_}return c(s,s.length,-1)}else return s.dom==a?h(o,e):c(s,o,e)}function posFromDOMInCompositionTree(o,e,s,a){if(s instanceof MarkView)for(let c of s.children){let h=0,d=contains(c.dom,a);if(contains(c.dom,o))return h+(d?posFromDOMInCompositionTree(o,e,c,a):c.localPosFromDOM(o,e));h+=d?a.nodeValue.length:c.length}else if(s.dom==a)return Math.min(e,a.nodeValue.length);return s.localPosFromDOM(o,e)}class WidgetBufferView extends ContentView{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof WidgetBufferView&&e.side==this.side}split(){return new WidgetBufferView(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return DOMPos.before(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){let s=this.dom.getBoundingClientRect(),a=inlineSiblingRect(this,this.side>0?-1:1);return a&&a.tops.top?{left:s.left,right:s.right,top:a.top,bottom:a.bottom}:s}get overrideDOMText(){return Text.empty}}TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineSiblingRect(o,e){let s=o.parent,a=s?s.children.indexOf(o):-1;for(;s&&a>=0;)if(e<0?a>0:ac&&s0;a--){let c=e[a-1].dom;if(c.parentNode==o)return DOMPos.after(c)}return new DOMPos(o,0)}function joinInlineInto(o,e,s){let a,{children:c}=o;s>0&&e instanceof MarkView&&c.length&&(a=c[c.length-1])instanceof MarkView&&a.mark.eq(e.mark)?joinInlineInto(a,e.children[0],s-1):(c.push(e),e.setParent(o)),o.length+=e.length}function coordsInChildren(o,e,s){for(let h=0,d=0;d0?_>=e:_>e)&&(e<_||d+1==o.children.length||(b=o.children[d+1]).length||b.getSide()>0)){let $=0;if(_==h){if(g.getSide()<=0)continue;$=s=-g.getSide()}let j=g.coordsAt(Math.max(0,e-h),s);return $&&j?flattenRect(j,s<0):j}h=_}let a=o.dom.lastChild;if(!a)return o.dom.getBoundingClientRect();let c=clientRectsFor(a);return c[c.length-1]||null}function combineAttrs(o,e){for(let s in o)s=="class"&&e.class?e.class+=" "+o.class:s=="style"&&e.style?e.style+=";"+o.style:e[s]=o[s];return e}function attrsEq(o,e){if(o==e)return!0;if(!o||!e)return!1;let s=Object.keys(o),a=Object.keys(e);if(s.length!=a.length)return!1;for(let c of s)if(a.indexOf(c)==-1||o[c]!==e[c])return!1;return!0}function updateAttrs(o,e,s){let a=null;if(e)for(let c in e)s&&c in s||o.removeAttribute(a=c);if(s)for(let c in s)e&&e[c]==s[c]||o.setAttribute(a=c,s[c]);return!!a}class WidgetType{eq(e){return!1}updateDOM(e){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}ignoreEvent(e){return!0}get customView(){return null}destroy(e){}}var BlockType=function(o){return o[o.Text=0]="Text",o[o.WidgetBefore=1]="WidgetBefore",o[o.WidgetAfter=2]="WidgetAfter",o[o.WidgetRange=3]="WidgetRange",o}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(e,s,a,c){super(),this.startSide=e,this.endSide=s,this.widget=a,this.spec=c}get heightRelevant(){return!1}static mark(e){return new MarkDecoration(e)}static widget(e){let s=e.side||0,a=!!e.block;return s+=a?s>0?3e8:-4e8:s>0?1e8:-1e8,new PointDecoration(e,s,s,a,e.widget||null,!1)}static replace(e){let s=!!e.block,a,c;if(e.isBlockGap)a=-5e8,c=4e8;else{let{start:h,end:d}=getInclusive(e,s);a=(h?s?-3e8:-1:5e8)-1,c=(d?s?2e8:1:-6e8)+1}return new PointDecoration(e,a,c,s,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,s=!1){return RangeSet.of(e,s)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:s,end:a}=getInclusive(e);super(s?-1:5e8,a?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&this.class==e.class&&attrsEq(this.attrs,e.attrs)}range(e,s=e){if(e>=s)throw new RangeError("Mark decorations may not be empty");return super.range(e,s)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof LineDecoration&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,s=e){if(s!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,s)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,s,a,c,h,d){super(s,a,h,e),this.block=c,this.isReplace=d,this.mapMode=c?s<=0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,s=e){if(this.isReplace&&(e>s||e==s&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&s!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,s)}}PointDecoration.prototype.point=!0;function getInclusive(o,e=!1){let{inclusiveStart:s,inclusiveEnd:a}=o;return s==null&&(s=o.inclusive),a==null&&(a=o.inclusive),{start:s!=null?s:e,end:a!=null?a:e}}function widgetsEq(o,e){return o==e||!!(o&&e&&o.compare(e))}function addRange(o,e,s,a=0){let c=s.length-1;c>=0&&s[c]+a>=o?s[c]=Math.max(s[c],e):s.push(o,e)}class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,s,a,c,h,d){if(a){if(!(a instanceof LineView))return!1;this.dom||a.transferDOM(this)}return c&&this.setDeco(a?a.attrs:null),mergeChildrenInto(this,e,s,a?a.children:[],h,d),!0}split(e){let s=new LineView;if(s.breakAfter=this.breakAfter,this.length==0)return s;let{i:a,off:c}=this.childPos(e);c&&(s.append(this.children[a].split(c),0),this.children[a].merge(c,this.children[a].length,null,!1,0,0),a++);for(let h=a;h0&&this.children[a-1].length==0;)this.children[--a].destroy();return this.children.length=a,this.markDirty(),this.length=e,s}transferDOM(e){!this.dom||(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,s){joinInlineInto(this,e,s)}addLineDeco(e){let s=e.spec.attributes,a=e.spec.class;s&&(this.attrs=combineAttrs(s,this.attrs||{})),a&&(this.attrs=combineAttrs({class:a},this.attrs||{}))}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e){var s;this.dom?this.dirty&4&&(clearAttributes(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let a=this.dom.lastChild;for(;a&&ContentView.get(a)instanceof MarkView;)a=a.lastChild;if(!a||!this.length||a.nodeName!="BR"&&((s=ContentView.get(a))===null||s===void 0?void 0:s.isEditable)==!1&&(!browser.ios||!this.children.some(c=>c instanceof TextView))){let c=document.createElement("BR");c.cmIgnore=!0,this.dom.appendChild(c)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let s of this.children){if(!(s instanceof TextView)||/[^ -~]/.test(s.text))return null;let a=clientRectsFor(s.dom);if(a.length!=1)return null;e+=a[0].width}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}:null}coordsAt(e,s){return coordsInChildren(this,e,s)}become(e){return!1}get type(){return BlockType.Text}static find(e,s){for(let a=0,c=0;a=s){if(h instanceof LineView)return h;if(d>s)break}c=d+h.breakAfter}return null}}class BlockWidgetView extends ContentView{constructor(e,s,a){super(),this.widget=e,this.length=s,this.type=a,this.breakAfter=0,this.prevWidget=null}merge(e,s,a,c,h,d){return a&&(!(a instanceof BlockWidgetView)||!this.widget.compare(a.widget)||e>0&&h<=0||s0;){if(this.textOff==this.text.length){let{value:h,lineBreak:d,done:g}=this.cursor.next(this.skip);if(this.skip=0,g)throw new Error("Ran out of text content when drawing inline views");if(d){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}else this.text=h,this.textOff=0}let c=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(s.slice(0,a)),this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+c)),s),a),this.atCursorPos=!0,this.textOff+=c,e-=c,a=0}}span(e,s,a,c){this.buildText(s-e,a,c),this.pos=s,this.openStart<0&&(this.openStart=c)}point(e,s,a,c,h,d){if(this.disallowBlockEffectsFor[d]&&a instanceof PointDecoration){if(a.block)throw new RangeError("Block decorations may not be specified via plugins");if(s>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let g=s-e;if(a instanceof PointDecoration)if(a.block){let{type:_}=a;_==BlockType.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new BlockWidgetView(a.widget||new NullWidget("div"),g,_))}else{let _=WidgetView.create(a.widget||new NullWidget("span"),g,a.startSide),b=this.atCursorPos&&!_.isEditable&&h<=c.length&&(e0),$=!_.isEditable&&(eo.some(e=>e)});class ScrollTarget{constructor(e,s="nearest",a="nearest",c=5,h=5){this.range=e,this.y=s,this.x=a,this.yMargin=c,this.xMargin=h}map(e){return e.empty?this:new ScrollTarget(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const scrollIntoView$1=StateEffect.define({map:(o,e)=>o.map(e)});function logException(o,e,s){let a=o.facet(exceptionSink);a.length?a[0](e):window.onerror?window.onerror(String(e),s,void 0,void 0,e):s?console.error(s+":",e):console.error(e)}const editable=Facet.define({combine:o=>o.length?o[0]:!0});let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,s,a,c){this.id=e,this.create=s,this.domEventHandlers=a,this.extension=c(this)}static define(e,s){const{eventHandlers:a,provide:c,decorations:h}=s||{};return new ViewPlugin(nextPluginID++,e,a,d=>{let g=[viewPlugin.of(d)];return h&&g.push(decorations.of(_=>{let b=_.plugin(d);return b?h(b):Decoration.none})),c&&g.push(c(d)),g})}static fromClass(e,s){return ViewPlugin.define(a=>new e(a),s)}}class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let s=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(s)}catch(a){if(logException(s.state,a,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(s){logException(e.state,s,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var s;if(!((s=this.value)===null||s===void 0)&&s.destroy)try{this.value.destroy()}catch(a){logException(e.state,a,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define(),contentAttributes=Facet.define(),decorations=Facet.define(),atomicRanges=Facet.define(),scrollMargins=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,s,a,c){this.fromA=e,this.toA=s,this.fromB=a,this.toB=c}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let s=e.length,a=this;for(;s>0;s--){let c=e[s-1];if(!(c.fromA>a.toA)){if(c.toA$)break;h+=2}if(!_)return a;new ChangedRange(_.fromA,_.toA,_.fromB,_.toB).addToSet(a),d=_.toA,g=_.toB}}}class ViewUpdate{constructor(e,s,a){this.view=e,this.state=s,this.transactions=a,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let d of a)this.changes=this.changes.compose(d.changes);let c=[];this.changes.iterChangedRanges((d,g,_,b)=>c.push(new ChangedRange(d,g,_,b))),this.changedRanges=c;let h=e.hasFocus;h!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=h,this.flags|=1)}static create(e,s,a){return new ViewUpdate(e,s,a)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var Direction=function(o){return o[o.LTR=0]="LTR",o[o.RTL=1]="RTL",o}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(o){let e=[];for(let s=0;s=s){if(g.level==a)return d;(h<0||(c!=0?c<0?g.froms:e[h].level>g.level))&&(h=d)}}if(h<0)throw new RangeError("Index out of range");return h}}const types=[];function computeOrder(o,e){let s=o.length,a=e==LTR?1:2,c=e==LTR?2:1;if(!o||a==1&&!BidiRE.test(o))return trivialOrder(s);for(let d=0,g=a,_=a;d=0;_e-=3)if(BracketStack[_e+1]==-$){let et=BracketStack[_e+2],tt=et&2?a:et&4?et&1?c:a:0;tt&&(types[d]=types[BracketStack[_e]]=tt),g=_e;break}}else{if(BracketStack.length==189)break;BracketStack[g++]=d,BracketStack[g++]=b,BracketStack[g++]=_}else if((j=types[d])==2||j==1){let _e=j==a;_=_e?0:1;for(let et=g-3;et>=0;et-=3){let tt=BracketStack[et+2];if(tt&2)break;if(_e)BracketStack[et+2]|=2;else{if(tt&4)break;BracketStack[et+2]|=4}}}for(let d=0;dg;){let $=b,j=types[--b]!=2;for(;b>g&&j==(types[b-1]!=2);)b--;h.push(new BidiSpan(b,$,j?2:1))}else h.push(new BidiSpan(g,d,0))}else for(let d=0;d1)for(let _ of this.points)_.node==e&&_.pos>this.text.length&&(_.pos-=d-1);a=h+d}}readNode(e){if(e.cmIgnore)return;let s=ContentView.get(e),a=s&&s.overrideDOMText;if(a!=null){this.findPointInside(e,a.length);for(let c=a.iter();!c.next().done;)c.lineBreak?this.lineBreak():this.append(c.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,s){for(let a of this.points)a.node==e&&e.childNodes[a.offset]==s&&(a.pos=this.text.length)}findPointInside(e,s){for(let a of this.points)(e.nodeType==3?a.node==e:e.contains(a.node))&&(a.pos=this.text.length+Math.min(s,a.offset))}}function isBlockElement(o){return o.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(o.nodeName)}class DOMPoint{constructor(e,s){this.node=e,this.offset=s,this.pos=-1}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],0)}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let s=e.changedRanges;this.minWidth>0&&s.length&&(s.every(({fromA:d,toA:g})=>gthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes)),(browser.ie||browser.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=this.decorations,c=this.updateDeco(),h=findChangedDeco(a,c,e.changes);return s=ChangedRange.extendWithRanges(s,h),this.dirty==0&&s.length==0?!1:(this.updateInner(s,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,s){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,s);let{observer:a}=this.view;a.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let h=browser.chrome||browser.ios?{node:a.selectionRange.focusNode,written:!1}:void 0;this.sync(h),this.dirty=0,h&&(h.written||a.selectionRange.focusNode!=h.node)&&(this.forceSelection=!0),this.dom.style.height=""});let c=[];if(this.view.viewport.from||this.view.viewport.to=0?e[c]:null;if(!h)break;let{fromA:d,toA:g,fromB:_,toB:b}=h,{content:$,breakAtStart:j,openStart:_e,openEnd:et}=ContentBuilder.build(this.view.state.doc,_,b,this.decorations,this.dynamicDecorationMap),{i:tt,off:nt}=a.findPos(g,1),{i:st,off:rt}=a.findPos(d,-1);replaceRange(this,st,rt,tt,nt,$,j,_e,et)}}updateSelection(e=!1,s=!1){if((e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange(),!(s||this.mayControlSelection())||browser.ios&&this.view.inputState.rapidCompositionStart)return;let a=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,h=this.domAtPos(c.anchor),d=c.empty?h:this.domAtPos(c.head);if(browser.gecko&&c.empty&&betweenUneditable(h)){let _=document.createTextNode("");this.view.observer.ignore(()=>h.node.insertBefore(_,h.node.childNodes[h.offset]||null)),h=d=new DOMPos(_,0),a=!0}let g=this.view.observer.selectionRange;(a||!g.focusNode||!isEquivalentPosition(h.node,h.offset,g.anchorNode,g.anchorOffset)||!isEquivalentPosition(d.node,d.offset,g.focusNode,g.focusOffset))&&(this.view.observer.ignore(()=>{browser.android&&browser.chrome&&this.dom.contains(g.focusNode)&&inUneditable(g.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let _=getSelection(this.view.root);if(_)if(c.empty){if(browser.gecko){let b=nextToUneditable(h.node,h.offset);if(b&&b!=3){let $=nearbyTextNode(h.node,h.offset,b==1?1:-1);$&&(h=new DOMPos($,b==1?0:$.nodeValue.length))}}_.collapse(h.node,h.offset),c.bidiLevel!=null&&g.cursorBidiLevel!=null&&(g.cursorBidiLevel=c.bidiLevel)}else if(_.extend)_.collapse(h.node,h.offset),_.extend(d.node,d.offset);else{let b=document.createRange();c.anchor>c.head&&([h,d]=[d,h]),b.setEnd(d.node,d.offset),b.setStart(h.node,h.offset),_.removeAllRanges(),_.addRange(b)}}),this.view.observer.setSelectionRange(h,d)),this.impreciseAnchor=h.precise?null:new DOMPos(g.anchorNode,g.anchorOffset),this.impreciseHead=d.precise?null:new DOMPos(g.focusNode,g.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let e=this.view.state.selection.main,s=getSelection(this.view.root);if(!s||!e.empty||!e.assoc||!s.modify)return;let a=LineView.find(this,e.head);if(!a)return;let c=a.posAtStart;if(e.head==c||e.head==c+a.length)return;let h=this.coordsAt(e.head,-1),d=this.coordsAt(e.head,1);if(!h||!d||h.bottom>d.top)return;let g=this.domAtPos(e.head+e.assoc);s.collapse(g.node,g.offset),s.modify("move",e.assoc<0?"forward":"backward","lineboundary")}mayControlSelection(){let e=this.view.root.activeElement;return e==this.dom||hasSelection(this.dom,this.view.observer.selectionRange)&&!(e&&this.dom.contains(e))}nearest(e){for(let s=e;s;){let a=ContentView.get(s);if(a&&a.rootView==this)return a;s=s.parentNode}return null}posFromDOM(e,s){let a=this.nearest(e);if(!a)throw new RangeError("Trying to find position for a DOM position outside of the document");return a.localPosFromDOM(e,s)+a.posAtStart}domAtPos(e){let{i:s,off:a}=this.childCursor().findPos(e,-1);for(;sd||e==d&&h.type!=BlockType.WidgetBefore&&h.type!=BlockType.WidgetAfter&&(!c||s==2||this.children[c-1].breakAfter||this.children[c-1].type==BlockType.WidgetBefore&&s>-2))return h.coordsAt(e-d,s);a=d}}measureVisibleLineHeights(e){let s=[],{from:a,to:c}=e,h=this.view.contentDOM.clientWidth,d=h>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,g=-1,_=this.view.textDirection==Direction.LTR;for(let b=0,$=0;$c)break;if(b>=a){let et=j.dom.getBoundingClientRect();if(s.push(et.height),d){let tt=j.dom.lastChild,nt=tt?clientRectsFor(tt):[];if(nt.length){let st=nt[nt.length-1],rt=_?st.right-et.left:et.right-st.left;rt>g&&(g=rt,this.minWidth=h,this.minWidthFrom=b,this.minWidthTo=_e)}}}b=_e+j.breakAfter}return s}textDirectionAt(e){let{i:s}=this.childPos(e,1);return getComputedStyle(this.children[s].dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){for(let c of this.children)if(c instanceof LineView){let h=c.measureTextSize();if(h)return h}let e=document.createElement("div"),s,a;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let c=clientRectsFor(e.firstChild)[0];s=e.getBoundingClientRect().height,a=c?c.width/27:7,e.remove()}),{lineHeight:s,charWidth:a}}childCursor(e=this.length){let s=this.children.length;return s&&(e-=this.children[--s].length),new ChildCursor(this.children,e,s)}computeBlockGapDeco(){let e=[],s=this.view.viewState;for(let a=0,c=0;;c++){let h=c==s.viewports.length?null:s.viewports[c],d=h?h.from-1:this.length;if(d>a){let g=s.lineBlockAt(d).bottom-s.lineBlockAt(a).top;e.push(Decoration.replace({widget:new BlockGapWidget(g),block:!0,inclusive:!0,isBlockGap:!0}).range(a,d))}if(!h)break;a=h.to+1}return Decoration.set(e)}updateDeco(){let e=this.view.state.facet(decorations).map((s,a)=>(this.dynamicDecorationMap[a]=typeof s=="function")?s(this.view):s);for(let s=e.length;ss.anchor?-1:1),c;if(!a)return;!s.empty&&(c=this.coordsAt(s.anchor,s.anchor>s.head?-1:1))&&(a={left:Math.min(a.left,c.left),top:Math.min(a.top,c.top),right:Math.max(a.right,c.right),bottom:Math.max(a.bottom,c.bottom)});let h=0,d=0,g=0,_=0;for(let $ of this.view.state.facet(scrollMargins).map(j=>j(this.view)))if($){let{left:j,right:_e,top:et,bottom:tt}=$;j!=null&&(h=Math.max(h,j)),_e!=null&&(d=Math.max(d,_e)),et!=null&&(g=Math.max(g,et)),tt!=null&&(_=Math.max(_,tt))}let b={left:a.left-h,top:a.top-g,right:a.right+d,bottom:a.bottom+_};scrollRectIntoView(this.view.scrollDOM,b,s.head0&&s<=0)o=o.childNodes[e-1],e=maxOffset(o);else if(o.nodeType==1&&e=0)o=o.childNodes[e],e=0;else return null}}function nextToUneditable(o,e){return o.nodeType!=1?0:(e&&o.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let b=findClusterBreak(c.text,d,!1);if(a(c.text.slice(b,d))!=_)break;d=b}for(;go?e.left-o:Math.max(0,o-e.right)}function getdy(o,e){return e.top>o?e.top-o:Math.max(0,o-e.bottom)}function yOverlap(o,e){return o.tope.top+1}function upTop(o,e){return eo.bottom?{top:o.top,left:o.left,right:o.right,bottom:e}:o}function domPosAtCoords(o,e,s){let a,c,h,d,g=!1,_,b,$,j;for(let tt=o.firstChild;tt;tt=tt.nextSibling){let nt=clientRectsFor(tt);for(let st=0;stat||d==at&&h>it)&&(a=tt,c=rt,h=it,d=at,g=!it||(it>0?st0)),it==0?s>rt.bottom&&(!$||$.bottomrt.top)&&(b=tt,j=rt):$&&yOverlap($,rt)?$=upBot($,rt.bottom):j&&yOverlap(j,rt)&&(j=upTop(j,rt.top))}}if($&&$.bottom>=s?(a=_,c=$):j&&j.top<=s&&(a=b,c=j),!a)return{node:o,offset:0};let _e=Math.max(c.left,Math.min(c.right,e));if(a.nodeType==3)return domPosInText(a,_e,s);if(g&&a.contentEditable!="false")return domPosAtCoords(a,_e,s);let et=Array.prototype.indexOf.call(o.childNodes,a)+(e>=(c.left+c.right)/2?1:0);return{node:o,offset:et}}function domPosInText(o,e,s){let a=o.nodeValue.length,c=-1,h=1e9,d=0;for(let g=0;gs?$.top-s:s-$.bottom)-1;if($.left-1<=e&&$.right+1>=e&&j=($.left+$.right)/2,et=_e;if((browser.chrome||browser.gecko)&&textRange(o,g).getBoundingClientRect().left==$.right&&(et=!_e),j<=0)return{node:o,offset:g+(et?1:0)};c=g+(et?1:0),h=j}}}return{node:o,offset:c>-1?c:d>0?o.nodeValue.length:0}}function posAtCoords(o,{x:e,y:s},a,c=-1){var h;let d=o.contentDOM.getBoundingClientRect(),g=d.top+o.viewState.paddingTop,_,{docHeight:b}=o.viewState,$=s-g;if($<0)return 0;if($>b)return o.state.doc.length;for(let rt=o.defaultLineHeight/2,it=!1;_=o.elementAtHeight($),_.type!=BlockType.Text;)for(;$=c>0?_.bottom+rt:_.top-rt,!($>=0&&$<=b);){if(it)return a?null:0;it=!0,c=-c}s=g+$;let j=_.from;if(jo.viewport.to)return o.viewport.to==o.state.doc.length?o.state.doc.length:a?null:posAtCoordsImprecise(o,d,_,e,s);let _e=o.dom.ownerDocument,et=o.root.elementFromPoint?o.root:_e,tt=et.elementFromPoint(e,s);tt&&!o.contentDOM.contains(tt)&&(tt=null),tt||(e=Math.max(d.left+1,Math.min(d.right-1,e)),tt=et.elementFromPoint(e,s),tt&&!o.contentDOM.contains(tt)&&(tt=null));let nt,st=-1;if(tt&&((h=o.docView.nearest(tt))===null||h===void 0?void 0:h.isEditable)!=!1){if(_e.caretPositionFromPoint){let rt=_e.caretPositionFromPoint(e,s);rt&&({offsetNode:nt,offset:st}=rt)}else if(_e.caretRangeFromPoint){let rt=_e.caretRangeFromPoint(e,s);rt&&({startContainer:nt,startOffset:st}=rt,(!o.contentDOM.contains(nt)||browser.safari&&isSuspiciousSafariCaretResult(nt,st,e)||browser.chrome&&isSuspiciousChromeCaretResult(nt,st,e))&&(nt=void 0))}}if(!nt||!o.docView.dom.contains(nt)){let rt=LineView.find(o.docView,j);if(!rt)return $>_.top+_.height/2?_.to:_.from;({node:nt,offset:st}=domPosAtCoords(rt.dom,e,s))}return o.docView.posFromDOM(nt,st)}function posAtCoordsImprecise(o,e,s,a,c){let h=Math.round((a-e.left)*o.defaultCharacterWidth);o.lineWrapping&&s.height>o.defaultLineHeight*1.5&&(h+=Math.floor((c-s.top)/o.defaultLineHeight)*o.viewState.heightOracle.lineLength);let d=o.state.sliceDoc(s.from,s.to);return s.from+findColumn(d,h,o.state.tabSize)}function isSuspiciousSafariCaretResult(o,e,s){let a;if(o.nodeType!=3||e!=(a=o.nodeValue.length))return!1;for(let c=o.nextSibling;c;c=c.nextSibling)if(c.nodeType!=1||c.nodeName!="BR")return!1;return textRange(o,a-1,a).getBoundingClientRect().left>s}function isSuspiciousChromeCaretResult(o,e,s){if(e!=0)return!1;for(let c=o;;){let h=c.parentNode;if(!h||h.nodeType!=1||h.firstChild!=c)return!1;if(h.classList.contains("cm-line"))break;c=h}let a=o.nodeType==1?o.getBoundingClientRect():textRange(o,0,Math.max(o.nodeValue.length,1)).getBoundingClientRect();return s-a.left>5}function moveToLineBoundary(o,e,s,a){let c=o.state.doc.lineAt(e.head),h=!a||!o.lineWrapping?null:o.coordsAtPos(e.assoc<0&&e.head>c.from?e.head-1:e.head);if(h){let _=o.dom.getBoundingClientRect(),b=o.textDirectionAt(c.from),$=o.posAtCoords({x:s==(b==Direction.LTR)?_.right-1:_.left+1,y:(h.top+h.bottom)/2});if($!=null)return EditorSelection.cursor($,s?-1:1)}let d=LineView.find(o.docView,e.head),g=d?s?d.posAtEnd:d.posAtStart:s?c.to:c.from;return EditorSelection.cursor(g,s?-1:1)}function moveByChar(o,e,s,a){let c=o.state.doc.lineAt(e.head),h=o.bidiSpans(c),d=o.textDirectionAt(c.from);for(let g=e,_=null;;){let b=moveVisually(c,h,d,g,s),$=movedOver;if(!b){if(c.number==(s?o.state.doc.lines:1))return g;$=` -`,c=o.state.doc.line(c.number+(s?1:-1)),h=o.bidiSpans(c),b=EditorSelection.cursor(s?c.from:c.to)}if(_){if(!_($))return g}else{if(!a)return b;_=a($)}g=b}}function byGroup(o,e,s){let a=o.state.charCategorizer(e),c=a(s);return h=>{let d=a(h);return c==CharCategory.Space&&(c=d),c==d}}function moveVertically(o,e,s,a){let c=e.head,h=s?1:-1;if(c==(s?o.state.doc.length:0))return EditorSelection.cursor(c,e.assoc);let d=e.goalColumn,g,_=o.contentDOM.getBoundingClientRect(),b=o.coordsAtPos(c),$=o.documentTop;if(b)d==null&&(d=b.left-_.left),g=h<0?b.top:b.bottom;else{let et=o.viewState.lineBlockAt(c);d==null&&(d=Math.min(_.right-_.left,o.defaultCharacterWidth*(c-et.from))),g=(h<0?et.top:et.bottom)+$}let j=_.left+d,_e=a!=null?a:o.defaultLineHeight>>1;for(let et=0;;et+=10){let tt=g+(_e+et)*h,nt=posAtCoords(o,{x:j,y:tt},!1,h);if(tt<_.top||tt>_.bottom||(h<0?ntc))return EditorSelection.cursor(nt,e.assoc,void 0,d)}}function skipAtoms(o,e,s){let a=o.state.facet(atomicRanges).map(c=>c(o));for(;;){let c=!1;for(let h of a)h.between(s.from-1,s.from+1,(d,g,_)=>{s.from>d&&s.froms.from?EditorSelection.cursor(d,1):EditorSelection.cursor(g,-1),c=!0)});if(!c)return s}}class InputState{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let s in handlers){let a=handlers[s];e.contentDOM.addEventListener(s,c=>{!eventBelongsToEditor(e,c)||this.ignoreDuringComposition(c)||s=="keydown"&&this.keydown(e,c)||(this.mustFlushObserver(c)&&e.observer.forceFlush(),this.runCustomHandlers(s,e,c)?c.preventDefault():a(e,c))},handlerOptions[s]),this.registeredEvents.push(s)}browser.chrome&&browser.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,browser.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,s){var a;let c;this.customHandlers=[];for(let h of s)if(c=(a=h.update(e).spec)===null||a===void 0?void 0:a.domEventHandlers){this.customHandlers.push({plugin:h.value,handlers:c});for(let d in c)this.registeredEvents.indexOf(d)<0&&d!="scroll"&&(this.registeredEvents.push(d),e.contentDOM.addEventListener(d,g=>{!eventBelongsToEditor(e,g)||this.runCustomHandlers(d,e,g)&&g.preventDefault()}))}}runCustomHandlers(e,s,a){for(let c of this.customHandlers){let h=c.handlers[e];if(h)try{if(h.call(c.plugin,a,s)||a.defaultPrevented)return!0}catch(d){logException(s.state,d)}}return!1}runScrollHandlers(e,s){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let a of this.customHandlers){let c=a.handlers.scroll;if(c)try{c.call(a.plugin,s,e)}catch(h){logException(e.state,h)}}}keydown(e,s){if(this.lastKeyCode=s.keyCode,this.lastKeyTime=Date.now(),s.keyCode==9&&Date.now()c.keyCode==s.keyCode))&&!(s.ctrlKey||s.altKey||s.metaKey)&&!s.synthetic?(this.pendingIOSKey=a,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let s=this.pendingIOSKey;return s?(this.pendingIOSKey=void 0,dispatchKey(e.contentDOM,s.key,s.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:browser.safari&&!browser.ios&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229||e.type=="compositionend"&&!browser.ios}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],modifierCodes=[16,17,18,20,91,92,224,225];class MouseSelection{constructor(e,s,a,c){this.view=e,this.style=a,this.mustSelect=c,this.lastEvent=s;let h=e.contentDOM.ownerDocument;h.addEventListener("mousemove",this.move=this.move.bind(this)),h.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=s.shiftKey,this.multiple=e.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(e,s),this.dragMove=dragMovesSelection(e,s),this.dragging=isInPrimarySelection(e,s)&&getClickType(s)==1?null:!1,this.dragging===!1&&(s.preventDefault(),this.select(s))}move(e){if(e.buttons==0)return this.destroy();this.dragging===!1&&this.select(this.lastEvent=e)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}select(e){let s=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!s.eq(this.view.state.selection)||s.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:s,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(o,e){let s=o.state.facet(clickAddsSelectionRange);return s.length?s[0](e):browser.mac?e.metaKey:e.ctrlKey}function dragMovesSelection(o,e){let s=o.state.facet(dragMovesSelection$1);return s.length?s[0](e):browser.mac?!e.altKey:!e.ctrlKey}function isInPrimarySelection(o,e){let{main:s}=o.state.selection;if(s.empty)return!1;let a=getSelection(o.root);if(!a||a.rangeCount==0)return!0;let c=a.getRangeAt(0).getClientRects();for(let h=0;h=e.clientX&&d.top<=e.clientY&&d.bottom>=e.clientY)return!0}return!1}function eventBelongsToEditor(o,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let s=e.target,a;s!=o.contentDOM;s=s.parentNode)if(!s||s.nodeType==11||(a=ContentView.get(s))&&a.ignoreEvent(e))return!1;return!0}const handlers=Object.create(null),handlerOptions=Object.create(null),brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(o){let e=o.dom.parentNode;if(!e)return;let s=e.appendChild(document.createElement("textarea"));s.style.cssText="position: fixed; left: -10000px; top: 10px",s.focus(),setTimeout(()=>{o.focus(),s.remove(),doPaste(o,s.value)},50)}function doPaste(o,e){let{state:s}=o,a,c=1,h=s.toText(e),d=h.lines==s.selection.ranges.length;if(lastLinewiseCopy!=null&&s.selection.ranges.every(_=>_.empty)&&lastLinewiseCopy==h.toString()){let _=-1;a=s.changeByRange(b=>{let $=s.doc.lineAt(b.from);if($.from==_)return{range:b};_=$.from;let j=s.toText((d?h.line(c++).text:e)+s.lineBreak);return{changes:{from:$.from,insert:j},range:EditorSelection.cursor(b.from+j.length)}})}else d?a=s.changeByRange(_=>{let b=h.line(c++);return{changes:{from:_.from,to:_.to,insert:b.text},range:EditorSelection.cursor(_.from+b.length)}}):a=s.replaceSelection(h);o.dispatch(a,{userEvent:"input.paste",scrollIntoView:!0})}handlers.keydown=(o,e)=>{o.inputState.setSelectionOrigin("select"),e.keyCode==27?o.inputState.lastEscPress=Date.now():modifierCodes.indexOf(e.keyCode)<0&&(o.inputState.lastEscPress=0)};handlers.touchstart=(o,e)=>{o.inputState.lastTouchTime=Date.now(),o.inputState.setSelectionOrigin("select.pointer")};handlers.touchmove=o=>{o.inputState.setSelectionOrigin("select.pointer")};handlerOptions.touchstart=handlerOptions.touchmove={passive:!0};handlers.mousedown=(o,e)=>{if(o.observer.flush(),o.inputState.lastTouchTime>Date.now()-2e3&&getClickType(e)==1)return;let s=null;for(let a of o.state.facet(mouseSelectionStyle))if(s=a(o,e),s)break;if(!s&&e.button==0&&(s=basicMouseSelection(o,e)),s){let a=o.root.activeElement!=o.contentDOM;a&&o.observer.ignore(()=>focusPreventScroll(o.contentDOM)),o.inputState.startMouseSelection(new MouseSelection(o,e,s,a))}};function rangeForClick(o,e,s,a){if(a==1)return EditorSelection.cursor(e,s);if(a==2)return groupAt(o.state,e,s);{let c=LineView.find(o.docView,e),h=o.state.doc.lineAt(c?c.posAtEnd:e),d=c?c.posAtStart:h.from,g=c?c.posAtEnd:h.to;return go>=e.top&&o<=e.bottom,inside=(o,e,s)=>insideY(e,s)&&o>=s.left&&o<=s.right;function findPositionSide(o,e,s,a){let c=LineView.find(o.docView,e);if(!c)return 1;let h=e-c.posAtStart;if(h==0)return 1;if(h==c.length)return-1;let d=c.coordsAt(h,-1);if(d&&inside(s,a,d))return-1;let g=c.coordsAt(h,1);return g&&inside(s,a,g)?1:d&&insideY(a,d)?-1:1}function queryPos(o,e){let s=o.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:s,bias:findPositionSide(o,s,e.clientX,e.clientY)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(o){if(!BadMouseDetail)return o.detail;let e=lastMouseDown,s=lastMouseDownTime;return lastMouseDown=o,lastMouseDownTime=Date.now(),lastMouseDownCount=!e||s>Date.now()-400&&Math.abs(e.clientX-o.clientX)<2&&Math.abs(e.clientY-o.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(o,e){let s=queryPos(o,e),a=getClickType(e),c=o.state.selection,h=s,d=e;return{update(g){g.docChanged&&(s&&(s.pos=g.changes.mapPos(s.pos)),c=c.map(g.changes),d=null)},get(g,_,b){let $;if(d&&g.clientX==d.clientX&&g.clientY==d.clientY?$=h:($=h=queryPos(o,g),d=g),!$||!s)return c;let j=rangeForClick(o,$.pos,$.bias,a);if(s.pos!=$.pos&&!_){let _e=rangeForClick(o,s.pos,s.bias,a),et=Math.min(_e.from,j.from),tt=Math.max(_e.to,j.to);j=et1&&c.ranges.some(_e=>_e.eq(j))?removeRange(c,j):b?c.addRange(j):EditorSelection.create([j])}}}function removeRange(o,e){for(let s=0;;s++)if(o.ranges[s].eq(e))return EditorSelection.create(o.ranges.slice(0,s).concat(o.ranges.slice(s+1)),o.mainIndex==s?0:o.mainIndex-(o.mainIndex>s?1:0))}handlers.dragstart=(o,e)=>{let{selection:{main:s}}=o.state,{mouseSelection:a}=o.inputState;a&&(a.dragging=s),e.dataTransfer&&(e.dataTransfer.setData("Text",o.state.sliceDoc(s.from,s.to)),e.dataTransfer.effectAllowed="copyMove")};function dropText(o,e,s,a){if(!s)return;let c=o.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:h}=o.inputState,d=a&&h&&h.dragging&&h.dragMove?{from:h.dragging.from,to:h.dragging.to}:null,g={from:c,insert:s},_=o.state.changes(d?[d,g]:g);o.focus(),o.dispatch({changes:_,selection:{anchor:_.mapPos(c,-1),head:_.mapPos(c,1)},userEvent:d?"move.drop":"input.drop"})}handlers.drop=(o,e)=>{if(!e.dataTransfer)return;if(o.state.readOnly)return e.preventDefault();let s=e.dataTransfer.files;if(s&&s.length){e.preventDefault();let a=Array(s.length),c=0,h=()=>{++c==s.length&&dropText(o,e,a.filter(d=>d!=null).join(o.state.lineBreak),!1)};for(let d=0;d{/[\x00-\x08\x0e-\x1f]{2}/.test(g.result)||(a[d]=g.result),h()},g.readAsText(s[d])}}else dropText(o,e,e.dataTransfer.getData("Text"),!0)};handlers.paste=(o,e)=>{if(o.state.readOnly)return e.preventDefault();o.observer.flush();let s=brokenClipboardAPI?null:e.clipboardData;s?(doPaste(o,s.getData("text/plain")),e.preventDefault()):capturePaste(o)};function captureCopy(o,e){let s=o.dom.parentNode;if(!s)return;let a=s.appendChild(document.createElement("textarea"));a.style.cssText="position: fixed; left: -10000px; top: 10px",a.value=e,a.focus(),a.selectionEnd=e.length,a.selectionStart=0,setTimeout(()=>{a.remove(),o.focus()},50)}function copiedRange(o){let e=[],s=[],a=!1;for(let c of o.selection.ranges)c.empty||(e.push(o.sliceDoc(c.from,c.to)),s.push(c));if(!e.length){let c=-1;for(let{from:h}of o.selection.ranges){let d=o.doc.lineAt(h);d.number>c&&(e.push(d.text),s.push({from:d.from,to:Math.min(o.doc.length,d.to+1)})),c=d.number}a=!0}return{text:e.join(o.lineBreak),ranges:s,linewise:a}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(o,e)=>{let{text:s,ranges:a,linewise:c}=copiedRange(o.state);if(!s&&!c)return;lastLinewiseCopy=c?s:null;let h=brokenClipboardAPI?null:e.clipboardData;h?(e.preventDefault(),h.clearData(),h.setData("text/plain",s)):captureCopy(o,s),e.type=="cut"&&!o.state.readOnly&&o.dispatch({changes:a,scrollIntoView:!0,userEvent:"delete.cut"})};function updateForFocusChange(o){setTimeout(()=>{o.hasFocus!=o.inputState.notifiedFocused&&o.update([])},10)}handlers.focus=o=>{o.inputState.lastFocusTime=Date.now(),!o.scrollDOM.scrollTop&&(o.inputState.lastScrollTop||o.inputState.lastScrollLeft)&&(o.scrollDOM.scrollTop=o.inputState.lastScrollTop,o.scrollDOM.scrollLeft=o.inputState.lastScrollLeft),updateForFocusChange(o)};handlers.blur=o=>{o.observer.clearSelectionRange(),updateForFocusChange(o)};function forceClearComposition(o,e){if(o.docView.compositionDeco.size){o.inputState.rapidCompositionStart=e;try{o.update([])}finally{o.inputState.rapidCompositionStart=!1}}}handlers.compositionstart=handlers.compositionupdate=o=>{o.inputState.compositionFirstChange==null&&(o.inputState.compositionFirstChange=!0),o.inputState.composing<0&&(o.inputState.composing=0,o.docView.compositionDeco.size&&(o.observer.flush(),forceClearComposition(o,!0)))};handlers.compositionend=o=>{o.inputState.composing=-1,o.inputState.compositionEndedAt=Date.now(),o.inputState.compositionFirstChange=null,setTimeout(()=>{o.inputState.composing<0&&forceClearComposition(o,!1)},50)};handlers.contextmenu=o=>{o.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(o,e)=>{var s;let a;if(browser.chrome&&browser.android&&(a=PendingKeys.find(c=>c.inputType==e.inputType))&&(o.observer.delayAndroidKey(a.key,a.keyCode),a.key=="Backspace"||a.key=="Delete")){let c=((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0;setTimeout(()=>{var h;(((h=window.visualViewport)===null||h===void 0?void 0:h.height)||0)>c+10&&o.hasFocus&&(o.contentDOM.blur(),o.focus())},100)}};const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,s){let a=this.doc.lineAt(s).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(a+=Math.ceil((s-e-a*this.lineLength*.5)/this.lineLength)),this.lineHeight*a}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return wrappingWhiteSpace.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let s=!1;for(let a=0;a-1,g=Math.round(s)!=Math.round(this.lineHeight)||this.lineWrapping!=d;if(this.lineWrapping=d,this.lineHeight=s,this.charWidth=a,this.lineLength=c,g){this.heightSamples={};for(let _=0;_0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,s){this.height!=s&&(Math.abs(this.height-s)>Epsilon&&(e.heightChanged=!0),this.height=s)}replace(e,s,a){return HeightMap.of(a)}decomposeLeft(e,s){s.push(this)}decomposeRight(e,s){s.push(this)}applyChanges(e,s,a,c){let h=this;for(let d=c.length-1;d>=0;d--){let{fromA:g,toA:_,fromB:b,toB:$}=c[d],j=h.lineAt(g,QueryType$1.ByPosNoHeight,s,0,0),_e=j.to>=_?j:h.lineAt(_,QueryType$1.ByPosNoHeight,s,0,0);for($+=_e.to-_,_=_e.to;d>0&&j.from<=c[d-1].toA;)g=c[d-1].fromA,b=c[d-1].fromB,d--,gh*2){let g=e[s-1];g.break?e.splice(--s,1,g.left,null,g.right):e.splice(--s,1,g.left,g.right),a+=1+g.break,c-=g.size}else if(h>c*2){let g=e[a];g.break?e.splice(a,1,g.left,null,g.right):e.splice(a,1,g.left,g.right),a+=2+g.break,h-=g.size}else break;else if(c=h&&d(this.blockAt(0,a,c,h))}updateHeight(e,s=0,a=!1,c){return c&&c.from<=s&&c.more&&this.setHeight(e,c.heights[c.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(e,s){super(e,s,BlockType.Text),this.collapsed=0,this.widgetHeight=0}replace(e,s,a){let c=a[0];return a.length==1&&(c instanceof HeightMapText||c instanceof HeightMapGap&&c.flags&4)&&Math.abs(this.length-c.length)<10?(c instanceof HeightMapGap?c=new HeightMapText(c.length,this.height):c.height=this.height,this.outdated||(c.outdated=!1),c):HeightMap.of(a)}updateHeight(e,s=0,a=!1,c){return c&&c.from<=s&&c.more?this.setHeight(e,c.heights[c.index++]):(a||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class HeightMapGap extends HeightMap{constructor(e){super(e,0)}lines(e,s){let a=e.lineAt(s).number,c=e.lineAt(s+this.length).number;return{firstLine:a,lastLine:c,lineHeight:this.height/(c-a+1)}}blockAt(e,s,a,c){let{firstLine:h,lastLine:d,lineHeight:g}=this.lines(s,c),_=Math.max(0,Math.min(d-h,Math.floor((e-a)/g))),{from:b,length:$}=s.line(h+_);return new BlockInfo(b,$,a+g*_,g,BlockType.Text)}lineAt(e,s,a,c,h){if(s==QueryType$1.ByHeight)return this.blockAt(e,a,c,h);if(s==QueryType$1.ByPosNoHeight){let{from:j,to:_e}=a.lineAt(e);return new BlockInfo(j,_e-j,0,0,BlockType.Text)}let{firstLine:d,lineHeight:g}=this.lines(a,h),{from:_,length:b,number:$}=a.lineAt(e);return new BlockInfo(_,b,c+g*($-d),g,BlockType.Text)}forEachLine(e,s,a,c,h,d){let{firstLine:g,lineHeight:_}=this.lines(a,h);for(let b=Math.max(e,h),$=Math.min(h+this.length,s);b<=$;){let j=a.lineAt(b);b==e&&(c+=_*(j.number-g)),d(new BlockInfo(j.from,j.length,c,_,BlockType.Text)),c+=_,b=j.to+1}}replace(e,s,a){let c=this.length-s;if(c>0){let h=a[a.length-1];h instanceof HeightMapGap?a[a.length-1]=new HeightMapGap(h.length+c):a.push(null,new HeightMapGap(c-1))}if(e>0){let h=a[0];h instanceof HeightMapGap?a[0]=new HeightMapGap(e+h.length):a.unshift(new HeightMapGap(e-1),null)}return HeightMap.of(a)}decomposeLeft(e,s){s.push(new HeightMapGap(e-1),null)}decomposeRight(e,s){s.push(null,new HeightMapGap(this.length-e-1))}updateHeight(e,s=0,a=!1,c){let h=s+this.length;if(c&&c.from<=s+this.length&&c.more){let d=[],g=Math.max(s,c.from),_=-1,b=e.heightChanged;for(c.from>s&&d.push(new HeightMapGap(c.from-s-1).updateHeight(e,s));g<=h&&c.more;){let j=e.doc.lineAt(g).length;d.length&&d.push(null);let _e=c.heights[c.index++];_==-1?_=_e:Math.abs(_e-_)>=Epsilon&&(_=-2);let et=new HeightMapText(j,_e);et.outdated=!1,d.push(et),g+=j+1}g<=h&&d.push(null,new HeightMapGap(h-g).updateHeight(e,g));let $=HeightMap.of(d);return e.heightChanged=b||_<0||Math.abs($.height-this.height)>=Epsilon||Math.abs(_-this.lines(e.doc,s).lineHeight)>=Epsilon,$}else(a||this.outdated)&&(this.setHeight(e,e.heightForGap(s,s+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,s,a){super(e.length+s+a.length,e.height+a.height,s|(e.outdated||a.outdated?2:0)),this.left=e,this.right=a,this.size=e.size+a.size}get break(){return this.flags&1}blockAt(e,s,a,c){let h=a+this.left.height;return eg))return b;let $=s==QueryType$1.ByPosNoHeight?QueryType$1.ByPosNoHeight:QueryType$1.ByPos;return _?b.join(this.right.lineAt(g,$,a,d,g)):this.left.lineAt(g,$,a,c,h).join(b)}forEachLine(e,s,a,c,h,d){let g=c+this.left.height,_=h+this.left.length+this.break;if(this.break)e<_&&this.left.forEachLine(e,s,a,c,h,d),s>=_&&this.right.forEachLine(e,s,a,g,_,d);else{let b=this.lineAt(_,QueryType$1.ByPos,a,c,h);e=e&&b.from<=s&&d(b),s>b.to&&this.right.forEachLine(b.to+1,s,a,g,_,d)}}replace(e,s,a){let c=this.left.length+this.break;if(sthis.left.length)return this.balanced(this.left,this.right.replace(e-c,s-c,a));let h=[];e>0&&this.decomposeLeft(e,h);let d=h.length;for(let g of a)h.push(g);if(e>0&&mergeGaps(h,d-1),s=a&&s.push(null)),e>a&&this.right.decomposeLeft(e-a,s)}decomposeRight(e,s){let a=this.left.length,c=a+this.break;if(e>=c)return this.right.decomposeRight(e-c,s);e2*s.size||s.size>2*e.size?HeightMap.of(this.break?[e,null,s]:[e,s]):(this.left=e,this.right=s,this.height=e.height+s.height,this.outdated=e.outdated||s.outdated,this.size=e.size+s.size,this.length=e.length+this.break+s.length,this)}updateHeight(e,s=0,a=!1,c){let{left:h,right:d}=this,g=s+h.length+this.break,_=null;return c&&c.from<=s+h.length&&c.more?_=h=h.updateHeight(e,s,a,c):h.updateHeight(e,s,a),c&&c.from<=g+d.length&&c.more?_=d=d.updateHeight(e,g,a,c):d.updateHeight(e,g,a),_?this.balanced(h,d):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(o,e){let s,a;o[e]==null&&(s=o[e-1])instanceof HeightMapGap&&(a=o[e+1])instanceof HeightMapGap&&o.splice(e-1,3,new HeightMapGap(s.length+1+a.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,s){this.pos=e,this.oracle=s,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,s){if(this.lineStart>-1){let a=Math.min(s,this.lineEnd),c=this.nodes[this.nodes.length-1];c instanceof HeightMapText?c.length+=a-this.pos:(a>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(a-this.pos,-1)),this.writtenTo=a,s>a&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=s}point(e,s,a){if(e=relevantWidgetHeight)&&this.addLineDeco(c,h)}else s>e&&this.span(e,s);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:s}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=s,this.writtenToe&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,s){let a=new HeightMapGap(s-e);return this.oracle.doc.lineAt(e).to==s&&(a.flags|=4),a}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let s=new HeightMapText(0,-1);return this.nodes.push(s),s}addBlock(e){this.enterLine(),e.type==BlockType.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,s){let a=this.ensureLine();a.length+=s,a.collapsed+=s,a.widgetHeight=Math.max(a.widgetHeight,e),this.writtenTo=this.pos=this.pos+s}finish(e){let s=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(s instanceof HeightMapText)&&!this.isCovered?this.nodes.push(new HeightMapText(0,-1)):(this.writtenTob.clientHeight||b.scrollWidth>b.clientWidth)&&$.overflow!="visible"){let j=b.getBoundingClientRect();a=Math.max(a,j.left),c=Math.min(c,j.right),h=Math.max(h,j.top),d=_==o.parentNode?j.bottom:Math.min(d,j.bottom)}_=$.position=="absolute"||$.position=="fixed"?b.offsetParent:b.parentNode}else if(_.nodeType==11)_=_.host;else break;return{left:a-s.left,right:Math.max(a,c)-s.left,top:h-(s.top+e),bottom:Math.max(h,d)-(s.top+e)}}function fullPixelRange(o,e){let s=o.getBoundingClientRect();return{left:0,right:s.right-s.left,top:e,bottom:s.bottom-(s.top+e)}}class LineGap{constructor(e,s,a){this.from=e,this.to=s,this.size=a}static same(e,s){if(e.length!=s.length)return!1;for(let a=0;atypeof s!="function"),this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(e.doc),[new ChangedRange(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Decoration.set(this.lineGaps.map(s=>s.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:s}=this.state.selection;for(let a=0;a<=1;a++){let c=a?s.head:s.anchor;if(!e.some(({from:h,to:d})=>c>=h&&c<=d)){let{from:h,to:d}=this.lineBlockAt(c);e.push(new Viewport(h,d))}}this.viewports=e.sort((a,c)=>a.from-c.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:scaleBlock(e,this.scaler))})}update(e,s=null){this.state=e.state;let a=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter(b=>typeof b!="function");let c=e.changedRanges,h=ChangedRange.extendWithRanges(c,heightRelevantDecoChanges(a,this.stateDeco,e?e.changes:ChangeSet.empty(this.state.doc.length))),d=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),h),this.heightMap.height!=d&&(e.flags|=2);let g=h.length?this.mapViewport(this.viewport,e.changes):this.viewport;(s&&(s.range.headg.to)||!this.viewportIsAppropriate(g))&&(g=this.getViewport(0,s));let _=!e.changes.empty||e.flags&2||g.from!=this.viewport.from||g.to!=this.viewport.to;this.viewport=g,this.updateForViewport(),_&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),s&&(this.scrollTarget=s),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}measure(e){let s=e.contentDOM,a=window.getComputedStyle(s),c=this.heightOracle,h=a.whiteSpace;this.defaultTextDirection=a.direction=="rtl"?Direction.RTL:Direction.LTR;let d=this.heightOracle.mustRefreshForWrapping(h),g=d||this.mustMeasureContent||this.contentDOMHeight!=s.clientHeight;this.contentDOMHeight=s.clientHeight,this.mustMeasureContent=!1;let _=0,b=0,$=parseInt(a.paddingTop)||0,j=parseInt(a.paddingBottom)||0;(this.paddingTop!=$||this.paddingBottom!=j)&&(this.paddingTop=$,this.paddingBottom=j,_|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(c.lineWrapping&&(g=!0),this.editorWidth=e.scrollDOM.clientWidth,_|=8);let _e=(this.printing?fullPixelRange:visiblePixelRange)(s,this.paddingTop),et=_e.top-this.pixelViewport.top,tt=_e.bottom-this.pixelViewport.bottom;this.pixelViewport=_e;let nt=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(nt!=this.inView&&(this.inView=nt,nt&&(g=!0)),!this.inView)return 0;let st=s.clientWidth;if((this.contentDOMWidth!=st||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=st,this.editorHeight=e.scrollDOM.clientHeight,_|=8),g){let it=e.docView.measureVisibleLineHeights(this.viewport);if(c.mustRefreshForHeights(it)&&(d=!0),d||c.lineWrapping&&Math.abs(st-this.contentDOMWidth)>c.charWidth){let{lineHeight:at,charWidth:ot}=e.docView.measureTextSize();d=c.refresh(h,at,ot,st/ot,it),d&&(e.docView.minWidth=0,_|=8)}et>0&&tt>0?b=Math.max(et,tt):et<0&&tt<0&&(b=Math.min(et,tt)),c.heightChanged=!1;for(let at of this.viewports){let ot=at.from==this.viewport.from?it:e.docView.measureVisibleLineHeights(at);this.heightMap=this.heightMap.updateHeight(c,0,d,new MeasuredHeights(at.from,ot))}c.heightChanged&&(_|=2)}let rt=!this.viewportIsAppropriate(this.viewport,b)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return rt&&(this.viewport=this.getViewport(b,this.scrollTarget)),this.updateForViewport(),(_&2||rt)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(d?[]:this.lineGaps)),_|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),_}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,s){let a=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),c=this.heightMap,h=this.state.doc,{visibleTop:d,visibleBottom:g}=this,_=new Viewport(c.lineAt(d-a*1e3,QueryType$1.ByHeight,h,0,0).from,c.lineAt(g+(1-a)*1e3,QueryType$1.ByHeight,h,0,0).to);if(s){let{head:b}=s.range;if(b<_.from||b>_.to){let $=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),j=c.lineAt(b,QueryType$1.ByPos,h,0,0),_e;s.y=="center"?_e=(j.top+j.bottom)/2-$/2:s.y=="start"||s.y=="nearest"&&b<_.from?_e=j.top:_e=j.bottom-$,_=new Viewport(c.lineAt(_e-1e3/2,QueryType$1.ByHeight,h,0,0).from,c.lineAt(_e+$+1e3/2,QueryType$1.ByHeight,h,0,0).to)}}return _}mapViewport(e,s){let a=s.mapPos(e.from,-1),c=s.mapPos(e.to,1);return new Viewport(this.heightMap.lineAt(a,QueryType$1.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(c,QueryType$1.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:e,to:s},a=0){if(!this.inView)return!0;let{top:c}=this.heightMap.lineAt(e,QueryType$1.ByPos,this.state.doc,0,0),{bottom:h}=this.heightMap.lineAt(s,QueryType$1.ByPos,this.state.doc,0,0),{visibleTop:d,visibleBottom:g}=this;return(e==0||c<=d-Math.max(10,Math.min(-a,250)))&&(s==this.state.doc.length||h>=g+Math.max(10,Math.min(a,250)))&&c>d-2*1e3&&ha.from&&g.push({from:a.from,to:h}),d=a.from&&_.from<=a.to&&cutRange(g,_.from-10,_.from+10),!_.empty&&_.to>=a.from&&_.to<=a.to&&cutRange(g,_.to-10,_.to+10);for(let{from:b,to:$}of g)$-b>1e3&&s.push(find(e,j=>j.from>=a.from&&j.to<=a.to&&Math.abs(j.from-b)<1e3&&Math.abs(j.to-$)<1e3)||new LineGap(b,$,this.gapSize(a,b,$,c)))}return s}gapSize(e,s,a,c){let h=findFraction(c,a)-findFraction(c,s);return this.heightOracle.lineWrapping?e.height*h:c.total*this.heightOracle.charWidth*h}updateLineGaps(e){LineGap.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Decoration.set(e.map(s=>s.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let s=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(c,h){s.push({from:c,to:h})},point(){}},20);let a=s.length!=this.visibleRanges.length||this.visibleRanges.some((c,h)=>c.from!=s[h].from||c.to!=s[h].to);return this.visibleRanges=s,a?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(s=>s.from<=e&&s.to>=e)||scaleBlock(this.heightMap.lineAt(e,QueryType$1.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e),QueryType$1.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(e,s){this.from=e,this.to=s}}function lineStructure(o,e,s){let a=[],c=o,h=0;return RangeSet.spans(s,o,e,{span(){},point(d,g){d>c&&(a.push({from:c,to:d}),h+=d-c),c=g}},20),c=1)return e[e.length-1].to;let a=Math.floor(o*s);for(let c=0;;c++){let{from:h,to:d}=e[c],g=d-h;if(a<=g)return h+a;a-=g}}function findFraction(o,e){let s=0;for(let{from:a,to:c}of o.ranges){if(e<=c){s+=e-a;break}s+=c-a}return s/o.total}function cutRange(o,e,s){for(let a=0;ae){let h=[];c.froms&&h.push({from:s,to:c.to}),o.splice(a,1,...h),a+=h.length-1}}}function find(o,e){for(let s of o)if(e(s))return s}const IdScaler={toDOM(o){return o},fromDOM(o){return o},scale:1};class BigScaler{constructor(e,s,a){let c=0,h=0,d=0;this.viewports=a.map(({from:g,to:_})=>{let b=s.lineAt(g,QueryType$1.ByPos,e,0,0).top,$=s.lineAt(_,QueryType$1.ByPos,e,0,0).bottom;return c+=$-b,{from:g,to:_,top:b,bottom:$,domTop:0,domBottom:0}}),this.scale=(7e6-c)/(s.height-c);for(let g of this.viewports)g.domTop=d+(g.top-h)*this.scale,d=g.domBottom=g.domTop+(g.bottom-g.top),h=g.bottom}toDOM(e){for(let s=0,a=0,c=0;;s++){let h=sscaleBlock(c,e)):o.type)}const theme=Facet.define({combine:o=>o.join(" ")}),darkTheme=Facet.define({combine:o=>o.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(o,e,s){return new StyleModule(e,{finish(a){return/&/.test(a)?a.replace(/&\w*/,c=>{if(c=="&")return o;if(!s||!s[c])throw new RangeError(`Unsupported selector: ${c}`);return s[c]}):o+" "+a}})}const baseTheme$1$3=buildTheme("."+baseThemeID,{"&.cm-editor":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(e,s,a){this.view=e,this.onChange=s,this.onScrollChanged=a,this.active=!1,this.selectionRange=new DOMSelectionState,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(c=>{for(let h of c)this.queue.push(h);(browser.ie&&browser.ie_version<=11||browser.ios&&e.composing)&&c.some(h=>h.type=="childList"&&h.removedNodes.length||h.type=="characterData"&&h.oldValue.length>h.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=c=>{this.queue.push({target:c.target,type:"characterData",oldValue:c.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resize=new ResizeObserver(()=>{this.view.docView.lastUpdate{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),c.length>0&&c[c.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(c=>{c.length>0&&c[c.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((s,a)=>s!=e[a]))){this.gapIntersection.disconnect();for(let s of e)this.gapIntersection.observe(s);this.gaps=e}}onSelectionChange(e){if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:s}=this,a=this.selectionRange;if(s.state.facet(editable)?s.root.activeElement!=this.dom:!hasSelection(s.dom,a))return;let c=a.anchorNode&&s.docView.nearest(a.anchorNode);c&&c.ignoreEvent(e)||((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!s.state.selection.main.empty&&a.focusNode&&isEquivalentPosition(a.focusNode,a.focusOffset,a.anchorNode,a.anchorOffset)?this.flushSoon():this.flush(!1))}readSelectionRange(){let{view:e}=this,s=browser.safari&&e.root.nodeType==11&&deepActiveElement()==this.dom&&safariSelectionRangeHack(this.view)||getSelection(e.root);if(!s||this.selectionRange.eq(s))return!1;let a=hasSelection(this.dom,s);return a&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let a=this.delayedAndroidKey;this.delayedAndroidKey=null,this.delayedFlush=-1,this.flush()||dispatchKey(this.dom,a.key,a.keyCode)}),(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:s})}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=window.setTimeout(()=>{this.delayedFlush=-1,this.flush()},20))}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1),this.flush()}processRecords(){let e=this.queue;for(let h of this.observer.takeRecords())e.push(h);e.length&&(this.queue=[]);let s=-1,a=-1,c=!1;for(let h of e){let d=this.readMutation(h);!d||(d.typeOver&&(c=!0),s==-1?{from:s,to:a}=d:(s=Math.min(d.from,s),a=Math.max(d.to,a)))}return{from:s,to:a,typeOver:c}}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return;e&&this.readSelectionRange();let{from:s,to:a,typeOver:c}=this.processRecords(),h=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(s<0&&!h)return;this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let d=this.view.state,g=this.onChange(s,a,c);return this.view.state==d&&this.view.update([]),g}readMutation(e){let s=this.view.docView.nearest(e.target);if(!s||s.ignoreMutation(e))return null;if(s.markDirty(e.type=="attributes"),e.type=="attributes"&&(s.dirty|=4),e.type=="childList"){let a=findChild(s,e.previousSibling||e.target.previousSibling,-1),c=findChild(s,e.nextSibling||e.target.nextSibling,1);return{from:a?s.posAfter(a):s.posAtStart,to:c?s.posBefore(c):s.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:s.posAtStart,to:s.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,s,a;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(s=this.gapIntersection)===null||s===void 0||s.disconnect(),(a=this.resize)===null||a===void 0||a.disconnect();for(let c of this.scrollTargets)c.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout)}}function findChild(o,e,s){for(;e;){let a=ContentView.get(e);if(a&&a.parent==o)return a;let c=e.parentNode;e=c!=o.dom?c:s>0?e.nextSibling:e.previousSibling}return null}function safariSelectionRangeHack(o){let e=null;function s(_){_.preventDefault(),_.stopImmediatePropagation(),e=_.getTargetRanges()[0]}if(o.contentDOM.addEventListener("beforeinput",s,!0),document.execCommand("indent"),o.contentDOM.removeEventListener("beforeinput",s,!0),!e)return null;let a=e.startContainer,c=e.startOffset,h=e.endContainer,d=e.endOffset,g=o.docView.domAtPos(o.state.selection.main.anchor);return isEquivalentPosition(g.node,g.offset,h,d)&&([a,c,h,d]=[h,d,a,c]),{anchorNode:a,anchorOffset:c,focusNode:h,focusOffset:d}}function applyDOMChange(o,e,s,a){let c,h,d=o.state.selection.main;if(e>-1){let g=o.docView.domBoundsAround(e,s,0);if(!g||o.state.readOnly)return!1;let{from:_,to:b}=g,$=o.docView.impreciseHead||o.docView.impreciseAnchor?[]:selectionPoints(o),j=new DOMReader($,o.state);j.readRange(g.startDOM,g.endDOM);let _e=d.from,et=null;(o.inputState.lastKeyCode===8&&o.inputState.lastKeyTime>Date.now()-100||browser.android&&j.text.length=d.from&&c.to<=d.to&&(c.from!=d.from||c.to!=d.to)&&d.to-d.from-(c.to-c.from)<=4?c={from:d.from,to:d.to,insert:o.state.doc.slice(d.from,c.from).append(c.insert).append(o.state.doc.slice(c.to,d.to))}:(browser.mac||browser.android)&&c&&c.from==c.to&&c.from==d.head-1&&c.insert.toString()=="."&&(c={from:d.from,to:d.to,insert:Text.of([" "])}),c){let g=o.state;if(browser.ios&&o.inputState.flushIOSKey(o)||browser.android&&(c.from==d.from&&c.to==d.to&&c.insert.length==1&&c.insert.lines==2&&dispatchKey(o.contentDOM,"Enter",13)||c.from==d.from-1&&c.to==d.to&&c.insert.length==0&&dispatchKey(o.contentDOM,"Backspace",8)||c.from==d.from&&c.to==d.to+1&&c.insert.length==0&&dispatchKey(o.contentDOM,"Delete",46)))return!0;let _=c.insert.toString();if(o.state.facet(inputHandler$1).some(j=>j(o,c.from,c.to,_)))return!0;o.inputState.composing>=0&&o.inputState.composing++;let b;if(c.from>=d.from&&c.to<=d.to&&c.to-c.from>=(d.to-d.from)/3&&(!h||h.main.empty&&h.main.from==c.from+c.insert.length)&&o.inputState.composing<0){let j=d.fromc.to?g.sliceDoc(c.to,d.to):"";b=g.replaceSelection(o.state.toText(j+c.insert.sliceString(0,void 0,o.state.lineBreak)+_e))}else{let j=g.changes(c),_e=h&&!g.selection.main.eq(h.main)&&h.main.to<=j.newLength?h.main:void 0;if(g.selection.ranges.length>1&&o.inputState.composing>=0&&c.to<=d.to&&c.to>=d.to-10){let et=o.state.sliceDoc(c.from,c.to),tt=compositionSurroundingNode(o)||o.state.doc.lineAt(d.head),nt=d.to-c.to,st=d.to-d.from;b=g.changeByRange(rt=>{if(rt.from==d.from&&rt.to==d.to)return{changes:j,range:_e||rt.map(j)};let it=rt.to-nt,at=it-et.length;if(rt.to-rt.from!=st||o.state.sliceDoc(at,it)!=et||tt&&rt.to>=tt.from&&rt.from<=tt.to)return{range:rt};let ot=g.changes({from:at,to:it,insert:c.insert}),ut=rt.to-d.to;return{changes:ot,range:_e?EditorSelection.range(Math.max(0,_e.anchor+ut),Math.max(0,_e.head+ut)):rt.map(ot)}})}else b={changes:j,selection:_e&&g.selection.replaceRange(_e)}}let $="input.type";return o.composing&&($+=".compose",o.inputState.compositionFirstChange&&($+=".start",o.inputState.compositionFirstChange=!1)),o.dispatch(b,{scrollIntoView:!0,userEvent:$}),!0}else if(h&&!h.main.eq(d)){let g=!1,_="select";return o.inputState.lastSelectionTime>Date.now()-50&&(o.inputState.lastSelectionOrigin=="select"&&(g=!0),_=o.inputState.lastSelectionOrigin),o.dispatch({selection:h,scrollIntoView:g,userEvent:_}),!0}else return!1}function findDiff(o,e,s,a){let c=Math.min(o.length,e.length),h=0;for(;h0&&g>0&&o.charCodeAt(d-1)==e.charCodeAt(g-1);)d--,g--;if(a=="end"){let _=Math.max(0,h-Math.min(d,g));s-=d+_-h}return d=d?h-s:0,g=h+(g-d),d=h):g=g?h-s:0,d=h+(d-g),g=h),{from:h,toA:d,toB:g}}function selectionPoints(o){let e=[];if(o.root.activeElement!=o.contentDOM)return e;let{anchorNode:s,anchorOffset:a,focusNode:c,focusOffset:h}=o.observer.selectionRange;return s&&(e.push(new DOMPoint(s,a)),(c!=s||h!=a)&&e.push(new DOMPoint(c,h))),e}function selectionFromPoints(o,e){if(o.length==0)return null;let s=o[0].pos,a=o.length==2?o[1].pos:s;return s>-1&&a>-1?EditorSelection.single(s+e,a+e):null}class EditorView{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(s=>this.update([s])),this.dispatch=this.dispatch.bind(this),this._root=e.root||getRoot(e.parent)||document,this.viewState=new ViewState(e.state||EditorState.create(e)),this.plugins=this.state.facet(viewPlugin).map(s=>new PluginInstance(s));for(let s of this.plugins)s.update(this);this.observer=new DOMObserver(this,(s,a,c)=>applyDOMChange(this,s,a,c),s=>{this.inputState.runScrollHandlers(this,s),this.observer.intersecting&&this.measure()}),this.inputState=new InputState(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof Transaction?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let s=!1,a=!1,c,h=this.state;for(let g of e){if(g.startState!=h)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");h=g.state}if(this.destroyed){this.viewState.state=h;return}if(this.observer.clear(),h.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(h);c=ViewUpdate.create(this,h,e);let d=this.viewState.scrollTarget;try{this.updateState=2;for(let g of e){if(d&&(d=d.map(g.changes)),g.scrollIntoView){let{main:_}=g.state.selection;d=new ScrollTarget(_.empty?_:EditorSelection.cursor(_.head,_.head>_.anchor?-1:1))}for(let _ of g.effects)_.is(scrollIntoView$1)&&(d=_.value)}this.viewState.update(c,d),this.bidiCache=CachedOrder.update(this.bidiCache,c.changes),c.empty||(this.updatePlugins(c),this.inputState.update(c)),s=this.docView.update(c),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),a=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(s,e.some(g=>g.isUserEvent("select.pointer")))}finally{this.updateState=0}if(c.startState.facet(theme)!=c.state.facet(theme)&&(this.viewState.mustMeasureContent=!0),(s||a||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!c.empty)for(let g of this.state.facet(updateListener))g(c)}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let s=this.hasFocus;try{for(let a of this.plugins)a.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(a=>new PluginInstance(a)),this.pluginMap.clear();for(let a of this.plugins)a.update(this);this.docView=new DocView(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}s&&this.focus(),this.requestMeasure()}updatePlugins(e){let s=e.startState.facet(viewPlugin),a=e.state.facet(viewPlugin);if(s!=a){let c=[];for(let h of a){let d=s.indexOf(h);if(d<0)c.push(new PluginInstance(h));else{let g=this.plugins[d];g.mustUpdate=e,c.push(g)}}for(let h of this.plugins)h.mustUpdate!=e&&h.destroy(this);this.plugins=c,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let c of this.plugins)c.mustUpdate=e;for(let c=0;c-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let s=null,{scrollHeight:a,scrollTop:c,clientHeight:h}=this.scrollDOM,d=c>a-h-4?a:c;try{for(let g=0;;g++){this.updateState=1;let _=this.viewport,b=this.viewState.lineBlockAtHeight(d),$=this.viewState.measure(this);if(!$&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(g>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let j=[];$&4||([this.measureRequests,j]=[j,this.measureRequests]);let _e=j.map(st=>{try{return st.read(this)}catch(rt){return logException(this.state,rt),BadMeasure}}),et=ViewUpdate.create(this,this.state,[]),tt=!1,nt=!1;et.flags|=$,s?s.flags|=$:s=et,this.updateState=2,et.empty||(this.updatePlugins(et),this.inputState.update(et),this.updateAttrs(),tt=this.docView.update(et));for(let st=0;st1||st<-1)&&(this.scrollDOM.scrollTop+=st,nt=!0)}if(tt&&this.docView.updateSelection(!0),this.viewport.from==_.from&&this.viewport.to==_.to&&!nt&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(s&&!s.empty)for(let g of this.state.facet(updateListener))g(s)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let e=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),s={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(editable)?"true":"false",class:"cm-content",style:`${browser.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(s["aria-readonly"]="true"),attrsFromFacet(this,contentAttributes,s);let a=this.observer.ignore(()=>{let c=updateAttrs(this.contentDOM,this.contentAttrs,s),h=updateAttrs(this.dom,this.editorAttrs,e);return c||h});return this.editorAttrs=e,this.contentAttrs=s,a}showAnnouncements(e){let s=!0;for(let a of e)for(let c of a.effects)if(c.is(EditorView.announce)){s&&(this.announceDOM.textContent=""),s=!1;let h=this.announceDOM.appendChild(document.createElement("div"));h.textContent=c.value}}mountStyles(){this.styleModules=this.state.facet(styleModule),StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1$3).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame(()=>this.measure())),e){if(e.key!=null){for(let s=0;sa.spec==e)||null),s&&s.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,s,a){return skipAtoms(this,e,moveByChar(this,e,s,a))}moveByGroup(e,s){return skipAtoms(this,e,moveByChar(this,e,s,a=>byGroup(this,e.head,a)))}moveToLineBoundary(e,s,a=!0){return moveToLineBoundary(this,e,s,a)}moveVertically(e,s,a){return skipAtoms(this,e,moveVertically(this,e,s,a))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,s=0){return this.docView.posFromDOM(e,s)}posAtCoords(e,s=!0){return this.readMeasured(),posAtCoords(this,e,s)}coordsAtPos(e,s=1){this.readMeasured();let a=this.docView.coordsAt(e,s);if(!a||a.left==a.right)return a;let c=this.state.doc.lineAt(e),h=this.bidiSpans(c),d=h[BidiSpan.find(h,e-c.from,-1,s)];return flattenRect(a,d.dir==Direction.LTR==s>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(perLineTextDirection)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let s=this.textDirectionAt(e.from);for(let c of this.bidiCache)if(c.from==e.from&&c.dir==s)return c.order;let a=computeOrder(e.text,s);return this.bidiCache.push(new CachedOrder(e.from,e.to,s,a)),a}get hasFocus(){var e;return(document.hasFocus()||browser.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,s={}){return scrollIntoView$1.of(new ScrollTarget(typeof e=="number"?EditorSelection.cursor(e):e,s.y,s.x,s.yMargin,s.xMargin))}static domEventHandlers(e){return ViewPlugin.define(()=>({}),{eventHandlers:e})}static theme(e,s){let a=StyleModule.newName(),c=[theme.of(a),styleModule.of(buildTheme(`.${a}`,e))];return s&&s.dark&&c.push(darkTheme.of(!0)),c}static baseTheme(e){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}static findFromDOM(e){var s;let a=e.querySelector(".cm-content"),c=a&&ContentView.get(a)||ContentView.get(e);return((s=c==null?void 0:c.rootView)===null||s===void 0?void 0:s.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler$1;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.atomicRanges=atomicRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096,BadMeasure={};class CachedOrder{constructor(e,s,a,c){this.from=e,this.to=s,this.dir=a,this.order=c}static update(e,s){if(s.empty)return e;let a=[],c=e.length?e[e.length-1].dir:Direction.LTR;for(let h=Math.max(0,e.length-10);h=0;c--){let h=a[c],d=typeof h=="function"?h(o):h;d&&combineAttrs(d,s)}return s}const currentPlatform=browser.mac?"mac":browser.windows?"win":browser.linux?"linux":"key";function normalizeKeyName(o,e){const s=o.split(/-(?!$)/);let a=s[s.length-1];a=="Space"&&(a=" ");let c,h,d,g;for(let _=0;_a.concat(c),[]))),s}function runScopeHandlers(o,e,s){return runHandlers(getKeymap(o.state),e,o,s)}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(o,e=currentPlatform){let s=Object.create(null),a=Object.create(null),c=(d,g)=>{let _=a[d];if(_==null)a[d]=g;else if(_!=g)throw new Error("Key binding "+d+" is used both as a regular binding and as a multi-stroke prefix")},h=(d,g,_,b)=>{let $=s[d]||(s[d]=Object.create(null)),j=g.split(/ (?!$)/).map(tt=>normalizeKeyName(tt,e));for(let tt=1;tt{let rt=storedPrefix={view:st,prefix:nt,scope:d};return setTimeout(()=>{storedPrefix==rt&&(storedPrefix=null)},PrefixTimeout),!0}]})}let _e=j.join(" ");c(_e,!1);let et=$[_e]||($[_e]={preventDefault:!1,commands:[]});et.commands.push(_),b&&(et.preventDefault=!0)};for(let d of o){let g=d[e]||d.key;if(!!g)for(let _ of d.scope?d.scope.split(" "):["editor"])h(_,g,d.run,d.preventDefault),d.shift&&h(_,"Shift-"+g,d.shift,d.preventDefault)}return s}function runHandlers(o,e,s,a){let c=keyName(e),h=codePointAt(c,0),d=codePointSize(h)==c.length&&c!=" ",g="",_=!1;storedPrefix&&storedPrefix.view==s&&storedPrefix.scope==a&&(g=storedPrefix.prefix+" ",(_=modifierCodes.indexOf(e.keyCode)<0)&&(storedPrefix=null));let b=_e=>{if(_e){for(let et of _e.commands)if(et(s))return!0;_e.preventDefault&&(_=!0)}return!1},$=o[a],j;if($){if(b($[g+modifiers(c,e,!d)]))return!0;if(d&&(e.shiftKey||e.altKey||e.metaKey||h>127)&&(j=base[e.keyCode])&&j!=c){if(b($[g+modifiers(j,e,!0)]))return!0;if(e.shiftKey&&shift[e.keyCode]!=j&&b($[g+modifiers(shift[e.keyCode],e,!1)]))return!0}else if(d&&e.shiftKey&&b($[g+modifiers(c,e,!0)]))return!0}return _}const CanHidePrimary=!browser.ios,selectionConfig=Facet.define({combine(o){return combineConfig(o,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,s)=>Math.min(e,s),drawRangeCursor:(e,s)=>e||s})}});function drawSelection(o={}){return[selectionConfig.of(o),drawSelectionPlugin,hideNativeSelection]}class Piece{constructor(e,s,a,c,h){this.left=e,this.top=s,this.width=a,this.height=c,this.className=h}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}const drawSelectionPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=o.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=o.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),o.requestMeasure(this.measureReq),this.setBlinkRate()}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(selectionConfig).cursorBlinkRate+"ms"}update(o){let e=o.startState.facet(selectionConfig)!=o.state.facet(selectionConfig);(e||o.selectionSet||o.geometryChanged||o.viewportChanged)&&this.view.requestMeasure(this.measureReq),o.transactions.some(s=>s.scrollIntoView)&&(this.cursorLayer.style.animationName=this.cursorLayer.style.animationName=="cm-blink"?"cm-blink2":"cm-blink"),e&&this.setBlinkRate()}readPos(){let{state:o}=this.view,e=o.facet(selectionConfig),s=o.selection.ranges.map(c=>c.empty?[]:measureRange(this.view,c)).reduce((c,h)=>c.concat(h)),a=[];for(let c of o.selection.ranges){let h=c==o.selection.main;if(c.empty?!h||CanHidePrimary:e.drawRangeCursor){let d=measureCursor(this.view,c,h);d&&a.push(d)}}return{rangePieces:s,cursors:a}}drawSel({rangePieces:o,cursors:e}){if(o.length!=this.rangePieces.length||o.some((s,a)=>!s.eq(this.rangePieces[a]))){this.selectionLayer.textContent="";for(let s of o)this.selectionLayer.appendChild(s.draw());this.rangePieces=o}if(e.length!=this.cursors.length||e.some((s,a)=>!s.eq(this.cursors[a]))){let s=this.cursorLayer.children;if(s.length!==e.length){this.cursorLayer.textContent="";for(const a of e)this.cursorLayer.appendChild(a.draw())}else e.forEach((a,c)=>a.adjust(s[c]));this.cursors=e}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove()}}),themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");const hideNativeSelection=Prec.highest(EditorView.theme(themeSpec));function getBase(o){let e=o.scrollDOM.getBoundingClientRect();return{left:(o.textDirection==Direction.LTR?e.left:e.right-o.scrollDOM.clientWidth)-o.scrollDOM.scrollLeft,top:e.top-o.scrollDOM.scrollTop}}function wrappedLine(o,e,s){let a=EditorSelection.cursor(e);return{from:Math.max(s.from,o.moveToLineBoundary(a,!1,!0).from),to:Math.min(s.to,o.moveToLineBoundary(a,!0,!0).from),type:BlockType.Text}}function blockAt(o,e){let s=o.lineBlockAt(e);if(Array.isArray(s.type)){for(let a of s.type)if(a.to>e||a.to==e&&(a.to==s.to||a.type==BlockType.Text))return a}return s}function measureRange(o,e){if(e.to<=o.viewport.from||e.from>=o.viewport.to)return[];let s=Math.max(e.from,o.viewport.from),a=Math.min(e.to,o.viewport.to),c=o.textDirection==Direction.LTR,h=o.contentDOM,d=h.getBoundingClientRect(),g=getBase(o),_=window.getComputedStyle(h.firstChild),b=d.left+parseInt(_.paddingLeft)+Math.min(0,parseInt(_.textIndent)),$=d.right-parseInt(_.paddingRight),j=blockAt(o,s),_e=blockAt(o,a),et=j.type==BlockType.Text?j:null,tt=_e.type==BlockType.Text?_e:null;if(o.lineWrapping&&(et&&(et=wrappedLine(o,s,et)),tt&&(tt=wrappedLine(o,a,tt))),et&&tt&&et.from==tt.from)return st(rt(e.from,e.to,et));{let at=et?rt(e.from,null,et):it(j,!1),ot=tt?rt(null,e.to,tt):it(_e,!0),ut=[];return(et||j).to<(tt||_e).from-1?ut.push(nt(b,at.bottom,$,ot.top)):at.bottomft&&yt.from=Et)break;dt>mt&&pt(Math.max(At,mt),at==null&&At<=ft,Math.min(dt,Et),ot==null&&dt>=gt,St.dir)}if(mt=Ot.to+1,mt>=Et)break}return lt.length==0&&pt(ft,at==null,gt,ot==null,o.textDirection),{top:ct,bottom:ht,horizontal:lt}}function it(at,ot){let ut=d.top+(ot?at.top:at.bottom);return{top:ut,bottom:ut,horizontal:[]}}}function measureCursor(o,e,s){let a=o.coordsAtPos(e.head,e.assoc||1);if(!a)return null;let c=getBase(o);return new Piece(a.left-c.left,a.top-c.top,-1,a.bottom-a.top,s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}const setDropCursorPos=StateEffect.define({map(o,e){return o==null?null:e.mapPos(o)}}),dropCursorPos=StateField.define({create(){return null},update(o,e){return o!=null&&(o=e.changes.mapPos(o)),e.effects.reduce((s,a)=>a.is(setDropCursorPos)?a.value:s,o)}}),drawDropCursor=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(o){var e;let s=o.state.field(dropCursorPos);s==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(o.startState.field(dropCursorPos)!=s||o.docChanged||o.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let o=this.view.state.field(dropCursorPos),e=o!=null&&this.view.coordsAtPos(o);if(!e)return null;let s=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-s.left+this.view.scrollDOM.scrollLeft,top:e.top-s.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(o){this.cursor&&(o?(this.cursor.style.left=o.left+"px",this.cursor.style.top=o.top+"px",this.cursor.style.height=o.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(o){this.view.state.field(dropCursorPos)!=o&&this.view.dispatch({effects:setDropCursorPos.of(o)})}},{eventHandlers:{dragover(o){this.setDropPos(this.view.posAtCoords({x:o.clientX,y:o.clientY}))},dragleave(o){(o.target==this.view.contentDOM||!this.view.contentDOM.contains(o.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function dropCursor(){return[dropCursorPos,drawDropCursor]}function iterMatches(o,e,s,a,c){e.lastIndex=0;for(let h=o.iterRange(s,a),d=s,g;!h.next().done;d+=h.value.length)if(!h.lineBreak)for(;g=e.exec(h.value);)c(d+g.index,g)}function matchRanges(o,e){let s=o.visibleRanges;if(s.length==1&&s[0].from==o.viewport.from&&s[0].to==o.viewport.to)return s;let a=[];for(let{from:c,to:h}of s)c=Math.max(o.state.doc.lineAt(c).from,c-e),h=Math.min(o.state.doc.lineAt(h).to,h+e),a.length&&a[a.length-1].to>=c?a[a.length-1].to=h:a.push({from:c,to:h});return a}class MatchDecorator{constructor(e){const{regexp:s,decoration:a,decorate:c,boundary:h,maxLength:d=1e3}=e;if(!s.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=s,c)this.addMatch=(g,_,b,$)=>c($,b,b+g[0].length,g,_);else if(a){let g=typeof a=="function"?a:()=>a;this.addMatch=(_,b,$,j)=>j($,$+_[0].length,g(_,b,$))}else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=h,this.maxLength=d}createDeco(e){let s=new RangeSetBuilder,a=s.add.bind(s);for(let{from:c,to:h}of matchRanges(e,this.maxLength))iterMatches(e.state.doc,this.regexp,c,h,(d,g)=>this.addMatch(g,e,d,a));return s.finish()}updateDeco(e,s){let a=1e9,c=-1;return e.docChanged&&e.changes.iterChanges((h,d,g,_)=>{_>e.view.viewport.from&&g1e3?this.createDeco(e.view):c>-1?this.updateRange(e.view,s.map(e.changes),a,c):s}updateRange(e,s,a,c){for(let h of e.visibleRanges){let d=Math.max(h.from,a),g=Math.min(h.to,c);if(g>d){let _=e.state.doc.lineAt(d),b=_.to_.from;d--)if(this.boundary.test(_.text[d-1-_.from])){$=d;break}for(;g_e.push(rt.range(nt,st));if(_==b)for(this.regexp.lastIndex=$-_.from;(et=this.regexp.exec(_.text))&&et.indexthis.addMatch(st,e,nt,tt));s=s.update({filterFrom:$,filterTo:j,filter:(nt,st)=>nt<$||st>j,add:_e})}}return s}}const UnicodeRegexpSupport=/x/.unicode!=null?"gu":"g",Specials=new RegExp(`[\0-\b --\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,UnicodeRegexpSupport),Names={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let _supportsTabSize=null;function supportsTabSize(){var o;if(_supportsTabSize==null&&typeof document<"u"&&document.body){let e=document.body.style;_supportsTabSize=((o=e.tabSize)!==null&&o!==void 0?o:e.MozTabSize)!=null}return _supportsTabSize||!1}const specialCharConfig=Facet.define({combine(o){let e=combineConfig(o,{render:null,specialChars:Specials,addSpecialChars:null});return(e.replaceTabs=!supportsTabSize())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,UnicodeRegexpSupport)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,UnicodeRegexpSupport)),e}});function highlightSpecialChars(o={}){return[specialCharConfig.of(o),specialCharPlugin()]}let _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.decorations=Decoration.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(o.state.facet(specialCharConfig)),this.decorations=this.decorator.createDeco(o)}makeDecorator(o){return new MatchDecorator({regexp:o.specialChars,decoration:(e,s,a)=>{let{doc:c}=s.state,h=codePointAt(e[0],0);if(h==9){let d=c.lineAt(a),g=s.state.tabSize,_=countColumn(d.text,g,a-d.from);return Decoration.replace({widget:new TabWidget((g-_%g)*this.view.defaultCharacterWidth)})}return this.decorationCache[h]||(this.decorationCache[h]=Decoration.replace({widget:new SpecialCharWidget(o,h)}))},boundary:o.replaceTabs?void 0:/[^]/})}update(o){let e=o.state.facet(specialCharConfig);o.startState.facet(specialCharConfig)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(o.view)):this.decorations=this.decorator.updateDeco(o,this.decorations)}},{decorations:o=>o.decorations}))}const DefaultPlaceholder="\u2022";function placeholder$1(o){return o>=32?DefaultPlaceholder:o==10?"\u2424":String.fromCharCode(9216+o)}class SpecialCharWidget extends WidgetType{constructor(e,s){super(),this.options=e,this.code=s}eq(e){return e.code==this.code}toDOM(e){let s=placeholder$1(this.code),a=e.state.phrase("Control character")+" "+(Names[this.code]||"0x"+this.code.toString(16)),c=this.options.render&&this.options.render(this.code,a,s);if(c)return c;let h=document.createElement("span");return h.textContent=s,h.title=a,h.setAttribute("aria-label",a),h.className="cm-specialChar",h}ignoreEvent(){return!1}}class TabWidget extends WidgetType{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function highlightActiveLine(){return activeLineHighlighter}const lineDeco=Decoration.line({class:"cm-activeLine"}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(o){this.decorations=this.getDeco(o)}update(o){(o.docChanged||o.selectionSet)&&(this.decorations=this.getDeco(o.view))}getDeco(o){let e=-1,s=[];for(let a of o.state.selection.ranges){if(!a.empty)return Decoration.none;let c=o.lineBlockAt(a.head);c.from>e&&(s.push(lineDeco.range(c.from)),e=c.from)}return Decoration.set(s)}},{decorations:o=>o.decorations});class Placeholder extends WidgetType{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function placeholder(o){return ViewPlugin.fromClass(class{constructor(e){this.view=e,this.placeholder=Decoration.set([Decoration.widget({widget:new Placeholder(o),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?Decoration.none:this.placeholder}},{decorations:e=>e.decorations})}const MaxOff=2e3;function rectangleFor(o,e,s){let a=Math.min(e.line,s.line),c=Math.max(e.line,s.line),h=[];if(e.off>MaxOff||s.off>MaxOff||e.col<0||s.col<0){let d=Math.min(e.off,s.off),g=Math.max(e.off,s.off);for(let _=a;_<=c;_++){let b=o.doc.line(_);b.length<=g&&h.push(EditorSelection.range(b.from+d,b.to+g))}}else{let d=Math.min(e.col,s.col),g=Math.max(e.col,s.col);for(let _=a;_<=c;_++){let b=o.doc.line(_),$=findColumn(b.text,d,o.tabSize,!0);if($>-1){let j=findColumn(b.text,g,o.tabSize);h.push(EditorSelection.range(b.from+$,b.from+j))}}}return h}function absoluteColumn(o,e){let s=o.coordsAtPos(o.viewport.from);return s?Math.round(Math.abs((s.left-e)/o.defaultCharacterWidth)):-1}function getPos(o,e){let s=o.posAtCoords({x:e.clientX,y:e.clientY},!1),a=o.state.doc.lineAt(s),c=s-a.from,h=c>MaxOff?-1:c==a.length?absoluteColumn(o,e.clientX):countColumn(a.text,o.state.tabSize,s-a.from);return{line:a.number,col:h,off:c}}function rectangleSelectionStyle(o,e){let s=getPos(o,e),a=o.state.selection;return s?{update(c){if(c.docChanged){let h=c.changes.mapPos(c.startState.doc.line(s.line).from),d=c.state.doc.lineAt(h);s={line:d.number,col:s.col,off:Math.min(s.off,d.length)},a=a.map(c.changes)}},get(c,h,d){let g=getPos(o,c);if(!g)return a;let _=rectangleFor(o.state,s,g);return _.length?d?EditorSelection.create(_.concat(a.ranges)):EditorSelection.create(_):a}}:null}function rectangularSelection(o){let e=(o==null?void 0:o.eventFilter)||(s=>s.altKey&&s.button==0);return EditorView.mouseSelectionStyle.of((s,a)=>e(a)?rectangleSelectionStyle(s,a):null)}const keys={Alt:[18,o=>o.altKey],Control:[17,o=>o.ctrlKey],Shift:[16,o=>o.shiftKey],Meta:[91,o=>o.metaKey]},showCrosshair={style:"cursor: crosshair"};function crosshairCursor(o={}){let[e,s]=keys[o.key||"Alt"],a=ViewPlugin.fromClass(class{constructor(c){this.view=c,this.isDown=!1}set(c){this.isDown!=c&&(this.isDown=c,this.view.update([]))}},{eventHandlers:{keydown(c){this.set(c.keyCode==e||s(c))},keyup(c){(c.keyCode==e||!s(c))&&this.set(!1)}}});return[a,EditorView.contentAttributes.of(c=>{var h;return!((h=c.plugin(a))===null||h===void 0)&&h.isDown?showCrosshair:null})]}const Outside="-10000px";class TooltipViewManager{constructor(e,s,a){this.facet=s,this.createTooltipView=a,this.input=e.state.facet(s),this.tooltips=this.input.filter(c=>c),this.tooltipViews=this.tooltips.map(a)}update(e){let s=e.state.facet(this.facet),a=s.filter(h=>h);if(s===this.input){for(let h of this.tooltipViews)h.update&&h.update(e);return!1}let c=[];for(let h=0;h{var e,s,a;return{position:browser.ios?"absolute":((e=o.find(c=>c.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((s=o.find(c=>c.parent))===null||s===void 0?void 0:s.parent)||null,tooltipSpace:((a=o.find(c=>c.tooltipSpace))===null||a===void 0?void 0:a.tooltipSpace)||windowSpace}}}),tooltipPlugin=ViewPlugin.fromClass(class{constructor(o){var e;this.view=o,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let s=o.state.facet(tooltipConfig);this.position=s.position,this.parent=s.parent,this.classes=o.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new TooltipViewManager(o,showTooltip,a=>this.createTooltip(a)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(a=>{Date.now()>this.lastTransaction-50&&a.length>0&&a[a.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),(e=o.dom.ownerDocument.defaultView)===null||e===void 0||e.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let o of this.manager.tooltipViews)this.intersectionObserver.observe(o.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(o){o.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(o);e&&this.observeIntersection();let s=e||o.geometryChanged,a=o.state.facet(tooltipConfig);if(a.position!=this.position){this.position=a.position;for(let c of this.manager.tooltipViews)c.dom.style.position=this.position;s=!0}if(a.parent!=this.parent){this.parent&&this.container.remove(),this.parent=a.parent,this.createContainer();for(let c of this.manager.tooltipViews)this.container.appendChild(c.dom);s=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);s&&this.maybeMeasure()}createTooltip(o){let e=o.create(this.view);if(e.dom.classList.add("cm-tooltip"),o.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",e.dom.appendChild(s)}return e.dom.style.position=this.position,e.dom.style.top=Outside,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var o,e;(o=this.view.dom.ownerDocument.defaultView)===null||o===void 0||o.removeEventListener("resize",this.measureSoon);for(let{dom:s}of this.manager.tooltipViews)s.remove();(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let o=this.view.dom.getBoundingClientRect();return{editor:o,parent:this.parent?this.container.getBoundingClientRect():o,pos:this.manager.tooltips.map((e,s)=>{let a=this.manager.tooltipViews[s];return a.getCoords?a.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)}}writeMeasure(o){let{editor:e,space:s}=o,a=[];for(let c=0;c=Math.min(e.bottom,s.bottom)||_.rightMath.min(e.right,s.right)+.1){g.style.top=Outside;continue}let $=h.arrow?d.dom.querySelector(".cm-tooltip-arrow"):null,j=$?7:0,_e=b.right-b.left,et=b.bottom-b.top,tt=d.offset||noOffset,nt=this.view.textDirection==Direction.LTR,st=b.width>s.right-s.left?nt?s.left:s.right-b.width:nt?Math.min(_.left-($?14:0)+tt.x,s.right-_e):Math.max(s.left,_.left-_e+($?14:0)-tt.x),rt=!!h.above;!h.strictSide&&(rt?_.top-(b.bottom-b.top)-tt.ys.bottom)&&rt==s.bottom-_.bottom>_.top-s.top&&(rt=!rt);let it=rt?_.top-et-j-tt.y:_.bottom+j+tt.y,at=st+_e;if(d.overlap!==!0)for(let ot of a)ot.leftst&&ot.topit&&(it=rt?ot.top-et-2-j:ot.bottom+j+2);this.position=="absolute"?(g.style.top=it-o.parent.top+"px",g.style.left=st-o.parent.left+"px"):(g.style.top=it+"px",g.style.left=st+"px"),$&&($.style.left=`${_.left+(nt?tt.x:-tt.x)-(st+14-7)}px`),d.overlap!==!0&&a.push({left:st,top:it,right:at,bottom:it+et}),g.classList.toggle("cm-tooltip-above",rt),g.classList.toggle("cm-tooltip-below",!rt),d.positioned&&d.positioned()}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let o of this.manager.tooltipViews)o.dom.style.top=Outside}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),baseTheme$4=EditorView.baseTheme({".cm-tooltip":{zIndex:100},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),noOffset={x:0,y:0},showTooltip=Facet.define({enables:[tooltipPlugin,baseTheme$4]}),showHoverTooltip=Facet.define();class HoverTooltipHost{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new TooltipViewManager(e,showHoverTooltip,s=>this.createHostedView(s))}static create(e){return new HoverTooltipHost(e)}createHostedView(e){let s=e.create(this.view);return s.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(s.dom),this.mounted&&s.mount&&s.mount(this.view),s}mount(e){for(let s of this.manager.tooltipViews)s.mount&&s.mount(e);this.mounted=!0}positioned(){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned()}update(e){this.manager.update(e)}}const showHoverTooltipHost=showTooltip.compute([showHoverTooltip],o=>{let e=o.facet(showHoverTooltip).filter(s=>s);return e.length===0?null:{pos:Math.min(...e.map(s=>s.pos)),end:Math.max(...e.filter(s=>s.end!=null).map(s=>s.end)),create:HoverTooltipHost.create,above:e[0].above,arrow:e.some(s=>s.arrow)}});class HoverPlugin{constructor(e,s,a,c,h){this.view=e,this.source=s,this.field=a,this.setHover=c,this.hoverTime=h,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ea.bottom||e.xa.right+this.view.defaultCharacterWidth)return;let c=this.view.bidiSpans(this.view.state.doc.lineAt(s)).find(g=>g.from<=s&&g.to>=s),h=c&&c.dir==Direction.RTL?-1:1,d=this.source(this.view,s,e.x{this.pending==g&&(this.pending=null,_&&this.view.dispatch({effects:this.setHover.of(_)}))},_=>logException(this.view.state,_,"hover tooltip"))}else d&&this.view.dispatch({effects:this.setHover.of(d)})}mousemove(e){var s;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let a=this.active;if(a&&!isInTooltip(this.lastMove.target)||this.pending){let{pos:c}=a||this.pending,h=(s=a==null?void 0:a.end)!==null&&s!==void 0?s:c;(c==h?this.view.posAtCoords(this.lastMove)!=c:!isOverRange(this.view,c,h,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function isInTooltip(o){for(let e=o;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function isOverRange(o,e,s,a,c,h){let d=document.createRange(),g=o.domAtPos(e),_=o.domAtPos(s);d.setEnd(_.node,_.offset),d.setStart(g.node,g.offset);let b=d.getClientRects();d.detach();for(let $=0;$showHoverTooltip.from(c)});return[a,ViewPlugin.define(c=>new HoverPlugin(c,o,a,s,e.hoverTime||300)),showHoverTooltipHost]}function getTooltip(o,e){let s=o.plugin(tooltipPlugin);if(!s)return null;let a=s.manager.tooltips.indexOf(e);return a<0?null:s.manager.tooltipViews[a]}const closeHoverTooltipEffect=StateEffect.define(),panelConfig=Facet.define({combine(o){let e,s;for(let a of o)e=e||a.topContainer,s=s||a.bottomContainer;return{topContainer:e,bottomContainer:s}}});function getPanel(o,e){let s=o.plugin(panelPlugin),a=s?s.specs.indexOf(e):-1;return a>-1?s.panels[a]:null}const panelPlugin=ViewPlugin.fromClass(class{constructor(o){this.input=o.state.facet(showPanel),this.specs=this.input.filter(s=>s),this.panels=this.specs.map(s=>s(o));let e=o.state.facet(panelConfig);this.top=new PanelGroup(o,!0,e.topContainer),this.bottom=new PanelGroup(o,!1,e.bottomContainer),this.top.sync(this.panels.filter(s=>s.top)),this.bottom.sync(this.panels.filter(s=>!s.top));for(let s of this.panels)s.dom.classList.add("cm-panel"),s.mount&&s.mount()}update(o){let e=o.state.facet(panelConfig);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new PanelGroup(o.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new PanelGroup(o.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let s=o.state.facet(showPanel);if(s!=this.input){let a=s.filter(_=>_),c=[],h=[],d=[],g=[];for(let _ of a){let b=this.specs.indexOf(_),$;b<0?($=_(o.view),g.push($)):($=this.panels[b],$.update&&$.update(o)),c.push($),($.top?h:d).push($)}this.specs=a,this.panels=c,this.top.sync(h),this.bottom.sync(d);for(let _ of g)_.dom.classList.add("cm-panel"),_.mount&&_.mount()}else for(let a of this.panels)a.update&&a.update(o)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:o=>EditorView.scrollMargins.of(e=>{let s=e.plugin(o);return s&&{top:s.top.scrollMargin(),bottom:s.bottom.scrollMargin()}})});class PanelGroup{constructor(e,s,a){this.view=e,this.top=s,this.container=a,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let s of this.panels)s.destroy&&e.indexOf(s)<0&&s.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let s=this.container||this.view.dom;s.insertBefore(this.dom,this.top?s.firstChild:null)}let e=this.dom.firstChild;for(let s of this.panels)if(s.dom.parentNode==this.dom){for(;e!=s.dom;)e=rm(e);e=e.nextSibling}else this.dom.insertBefore(s.dom,e);for(;e;)e=rm(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function rm(o){let e=o.nextSibling;return o.remove(),e}const showPanel=Facet.define({enables:panelPlugin});class GutterMarker extends RangeValue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=!0;const gutterLineClass=Facet.define(),defaults$1={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>RangeSet.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},activeGutters=Facet.define();function gutter(o){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults$1),o))]}const unfixGutters=Facet.define({combine:o=>o.some(e=>e)});function gutters(o){let e=[gutterView];return o&&o.fixed===!1&&e.push(unfixGutters.of(!0)),e}const gutterView=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.prevViewport=o.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=o.state.facet(activeGutters).map(e=>new SingleGutterView(o,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!o.state.facet(unfixGutters),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),o.scrollDOM.insertBefore(this.dom,o.contentDOM)}update(o){if(this.updateGutters(o)){let e=this.prevViewport,s=o.view.viewport,a=Math.min(e.to,s.to)-Math.max(e.from,s.from);this.syncGutters(a<(s.to-s.from)*.8)}o.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(unfixGutters)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=o.view.viewport}syncGutters(o){let e=this.dom.nextSibling;o&&this.dom.remove();let s=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from),a=[],c=this.gutters.map(h=>new UpdateContext(h,this.view.viewport,-this.view.documentPadding.top));for(let h of this.view.viewportLineBlocks){let d;if(Array.isArray(h.type)){for(let g of h.type)if(g.type==BlockType.Text){d=g;break}}else d=h.type==BlockType.Text?h:void 0;if(!!d){a.length&&(a=[]),advanceCursor(s,a,h.from);for(let g of c)g.line(this.view,d,a)}}for(let h of c)h.finish();o&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(o){let e=o.startState.facet(activeGutters),s=o.state.facet(activeGutters),a=o.docChanged||o.heightChanged||o.viewportChanged||!RangeSet.eq(o.startState.facet(gutterLineClass),o.state.facet(gutterLineClass),o.view.viewport.from,o.view.viewport.to);if(e==s)for(let c of this.gutters)c.update(o)&&(a=!0);else{a=!0;let c=[];for(let h of s){let d=e.indexOf(h);d<0?c.push(new SingleGutterView(this.view,h)):(this.gutters[d].update(o),c.push(this.gutters[d]))}for(let h of this.gutters)h.dom.remove(),c.indexOf(h)<0&&h.destroy();for(let h of c)this.dom.appendChild(h.dom);this.gutters=c}return a}destroy(){for(let o of this.gutters)o.destroy();this.dom.remove()}},{provide:o=>EditorView.scrollMargins.of(e=>{let s=e.plugin(o);return!s||s.gutters.length==0||!s.fixed?null:e.textDirection==Direction.LTR?{left:s.dom.offsetWidth}:{right:s.dom.offsetWidth}})});function asArray(o){return Array.isArray(o)?o:[o]}function advanceCursor(o,e,s){for(;o.value&&o.from<=s;)o.from==s&&e.push(o.value),o.next()}class UpdateContext{constructor(e,s,a){this.gutter=e,this.height=a,this.localMarkers=[],this.i=0,this.cursor=RangeSet.iter(e.markers,s.from)}line(e,s,a){this.localMarkers.length&&(this.localMarkers=[]),advanceCursor(this.cursor,this.localMarkers,s.from);let c=a.length?this.localMarkers.concat(a):this.localMarkers,h=this.gutter.config.lineMarker(e,s,c);h&&c.unshift(h);let d=this.gutter;if(c.length==0&&!d.config.renderEmptyElements)return;let g=s.top-this.height;if(this.i==d.elements.length){let _=new GutterElement(e,s.height,g,c);d.elements.push(_),d.dom.appendChild(_.dom)}else d.elements[this.i].update(e,s.height,g,c);this.height=s.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let s=e.elements.pop();e.dom.removeChild(s.dom),s.destroy()}}}class SingleGutterView{constructor(e,s){this.view=e,this.config=s,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let a in s.domEventHandlers)this.dom.addEventListener(a,c=>{let h=e.lineBlockAtHeight(c.clientY-e.documentTop);s.domEventHandlers[a](e,h,c)&&c.preventDefault()});this.markers=asArray(s.markers(e)),s.initialSpacer&&(this.spacer=new GutterElement(e,0,0,[s.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let s=this.markers;if(this.markers=asArray(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let c=this.config.updateSpacer(this.spacer.markers[0],e);c!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[c])}let a=e.view.viewport;return!RangeSet.eq(this.markers,s,a.from,a.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class GutterElement{constructor(e,s,a,c){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,s,a,c)}update(e,s,a,c){this.height!=s&&(this.dom.style.height=(this.height=s)+"px"),this.above!=a&&(this.dom.style.marginTop=(this.above=a)?a+"px":""),sameMarkers(this.markers,c)||this.setMarkers(e,c)}setMarkers(e,s){let a="cm-gutterElement",c=this.dom.firstChild;for(let h=0,d=0;;){let g=d,_=hh(g,_,b)||d(g,_,b):d}return a}})}});class NumberMarker extends GutterMarker{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function formatNumber(o,e){return o.state.facet(lineNumberConfig).formatNumber(e,o.state)}const lineNumberGutter=activeGutters.compute([lineNumberConfig],o=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(lineNumberMarkers)},lineMarker(e,s,a){return a.some(c=>c.toDOM)?null:new NumberMarker(formatNumber(e,e.state.doc.lineAt(s.from).number))},lineMarkerChange:e=>e.startState.facet(lineNumberConfig)!=e.state.facet(lineNumberConfig),initialSpacer(e){return new NumberMarker(formatNumber(e,maxLineNumber(e.state.doc.lines)))},updateSpacer(e,s){let a=formatNumber(s.view,maxLineNumber(s.view.state.doc.lines));return a==e.number?e:new NumberMarker(a)},domEventHandlers:o.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(o={}){return[lineNumberConfig.of(o),gutters(),lineNumberGutter]}function maxLineNumber(o){let e=9;for(;e{let e=[],s=-1;for(let a of o.selection.ranges)if(a.empty){let c=o.doc.lineAt(a.head).from;c>s&&(s=c,e.push(activeLineGutterMarker.range(c)))}return RangeSet.of(e)});function highlightActiveLineGutter(){return activeLineGutterHighlighter}const DefaultBufferLength=1024;let nextPropID=0;class Range{constructor(e,s){this.from=e,this.to=s}}class NodeProp{constructor(e={}){this.id=nextPropID++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=NodeType.match(e)),s=>{let a=e(s);return a===void 0?null:[this,a]}}}NodeProp.closedBy=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.group=new NodeProp({deserialize:o=>o.split(" ")});NodeProp.contextHash=new NodeProp({perNode:!0});NodeProp.lookAhead=new NodeProp({perNode:!0});NodeProp.mounted=new NodeProp({perNode:!0});const noProps=Object.create(null);class NodeType{constructor(e,s,a,c=0){this.name=e,this.props=s,this.id=a,this.flags=c}static define(e){let s=e.props&&e.props.length?Object.create(null):noProps,a=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),c=new NodeType(e.name||"",s,e.id,a);if(e.props){for(let h of e.props)if(Array.isArray(h)||(h=h(c)),h){if(h[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");s[h[0].id]=h[1]}}return c}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let s=this.prop(NodeProp.group);return s?s.indexOf(e)>-1:!1}return this.id==e}static match(e){let s=Object.create(null);for(let a in e)for(let c of a.split(" "))s[c]=e[a];return a=>{for(let c=a.prop(NodeProp.group),h=-1;h<(c?c.length:0);h++){let d=s[h<0?a.name:c[h]];if(d)return d}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let s=0;s=c&&(d.type.isAnonymous||s(d)!==!1)){if(d.firstChild())continue;g=!0}for(;g&&a&&!d.type.isAnonymous&&a(d),!d.nextSibling();){if(!d.parent())return;g=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let s in this.props)e.push([+s,this.props[s]]);return e}balance(e={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(s,a,c)=>new Tree(this.type,s,a,c,this.propValues),e.makeTree||((s,a,c)=>new Tree(NodeType.none,s,a,c)))}static build(e){return buildTree(e)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(e,s){this.buffer=e,this.index=s}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}class TreeBuffer{constructor(e,s,a){this.buffer=e,this.length=s,this.set=a}get type(){return NodeType.none}toString(){let e=[];for(let s=0;s0));_=d[_+3]);return g}slice(e,s,a,c){let h=this.buffer,d=new Uint16Array(s-e);for(let g=e,_=0;g=e&&se;case 1:return s<=e&&a>e;case 2:return a>e;case 4:return!0}}function enterUnfinishedNodesBefore(o,e){let s=o.childBefore(e);for(;s;){let a=s.lastChild;if(!a||a.to!=s.to)break;a.type.isError&&a.from==a.to?(o=s,s=a.prevSibling):s=a}return o}function resolveNode(o,e,s,a){for(var c;o.from==o.to||(s<1?o.from>=e:o.from>e)||(s>-1?o.to<=e:o.to0?g.length:-1;e!=b;e+=s){let $=g[e],j=_[e]+d.from;if(!!checkSide(c,a,j,j+$.length)){if($ instanceof TreeBuffer){if(h&IterMode.ExcludeBuffers)continue;let _e=$.findChild(0,$.buffer.length,s,a-j,c);if(_e>-1)return new BufferNode(new BufferContext(d,$,e,j),null,_e)}else if(h&IterMode.IncludeAnonymous||!$.type.isAnonymous||hasChild($)){let _e;if(!(h&IterMode.IgnoreMounts)&&$.props&&(_e=$.prop(NodeProp.mounted))&&!_e.overlay)return new TreeNode(_e.tree,j,e,d);let et=new TreeNode($,j,e,d);return h&IterMode.IncludeAnonymous||!et.type.isAnonymous?et:et.nextChild(s<0?$.children.length-1:0,s,a,c)}}}if(h&IterMode.IncludeAnonymous||!d.type.isAnonymous||(d.index>=0?e=d.index+s:e=s<0?-1:d._parent._tree.children.length,d=d._parent,!d))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,s,a=0){let c;if(!(a&IterMode.IgnoreOverlays)&&(c=this._tree.prop(NodeProp.mounted))&&c.overlay){let h=e-this.from;for(let{from:d,to:g}of c.overlay)if((s>0?d<=h:d=h:g>h))return new TreeNode(c.tree,c.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,s,a)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new TreeCursor(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}getChild(e,s=null,a=null){let c=getChildren(this,e,s,a);return c.length?c[0]:null}getChildren(e,s=null,a=null){return getChildren(this,e,s,a)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}function getChildren(o,e,s,a){let c=o.cursor(),h=[];if(!c.firstChild())return h;if(s!=null){for(;!c.type.is(s);)if(!c.nextSibling())return h}for(;;){if(a!=null&&c.type.is(a))return h;if(c.type.is(e)&&h.push(c.node),!c.nextSibling())return a==null?h:[]}}function matchNodeContext(o,e,s=e.length-1){for(let a=o.parent;s>=0;a=a.parent){if(!a)return!1;if(!a.type.isAnonymous){if(e[s]&&e[s]!=a.name)return!1;s--}}return!0}class BufferContext{constructor(e,s,a,c){this.parent=e,this.buffer=s,this.index=a,this.start=c}}class BufferNode{constructor(e,s,a){this.context=e,this._parent=s,this.index=a,this.type=e.buffer.set.types[e.buffer.buffer[a]]}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(e,s,a){let{buffer:c}=this.context,h=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.context.start,a);return h<0?null:new BufferNode(this.context,this,h)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,s,a=0){if(a&IterMode.ExcludeBuffers)return null;let{buffer:c}=this.context,h=c.findChild(this.index+4,c.buffer[this.index+3],s>0?1:-1,e-this.context.start,s);return h<0?null:new BufferNode(this.context,this,h)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,s=e.buffer[this.index+3];return s<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,s):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,s=this._parent?this._parent.index+4:0;return this.index==s?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(s,this.index,-1,0,4))}cursor(e=0){return new TreeCursor(this,e)}get tree(){return null}toTree(){let e=[],s=[],{buffer:a}=this.context,c=this.index+4,h=a.buffer[this.index+3];if(h>c){let d=a.buffer[this.index+1],g=a.buffer[this.index+2];e.push(a.slice(c,h,d,g)),s.push(0)}return new Tree(this.type,e,s,this.to-this.from)}resolve(e,s=0){return resolveNode(this,e,s,!1)}resolveInner(e,s=0){return resolveNode(this,e,s,!0)}enterUnfinishedNodesBefore(e){return enterUnfinishedNodesBefore(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,s=null,a=null){let c=getChildren(this,e,s,a);return c.length?c[0]:null}getChildren(e,s=null,a=null){return getChildren(this,e,s,a)}get node(){return this}matchContext(e){return matchNodeContext(this,e)}}class TreeCursor{constructor(e,s=0){if(this.mode=s,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let a=e._parent;a;a=a._parent)this.stack.unshift(a.index);this.bufferNode=e,this.yieldBuf(e.index)}}get name(){return this.type.name}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,s){this.index=e;let{start:a,buffer:c}=this.buffer;return this.type=s||c.set.types[c.buffer[e]],this.from=a+c.buffer[e+1],this.to=a+c.buffer[e+2],!0}yield(e){return e?e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,s,a){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,s,a,this.mode));let{buffer:c}=this.buffer,h=c.findChild(this.index+4,c.buffer[this.index+3],e,s-this.buffer.start,a);return h<0?!1:(this.stack.push(this.index),this.yieldBuf(h))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,s,a=this.mode){return this.buffer?a&IterMode.ExcludeBuffers?!1:this.enterChild(1,e,s):this.yield(this._tree.enter(e,s,a))}parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:s}=this.buffer,a=this.stack.length-1;if(e<0){let c=a<0?0:this.stack[a]+4;if(this.index!=c)return this.yieldBuf(s.findChild(c,this.index,-1,0,4))}else{let c=s.buffer[this.index+3];if(c<(a<0?s.buffer.length:s.buffer[this.stack[a]+3]))return this.yieldBuf(c)}return a<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let s,a,{buffer:c}=this;if(c){if(e>0){if(this.index-1)for(let h=s+e,d=e<0?-1:a._tree.children.length;h!=d;h+=e){let g=a._tree.children[h];if(this.mode&IterMode.IncludeAnonymous||g instanceof TreeBuffer||!g.type.isAnonymous||hasChild(g))return!1}return!0}move(e,s){if(s&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,s=0){for(;(this.from==this.to||(s<1?this.from>=e:this.from>e)||(s>-1?this.to<=e:this.to=0;){for(let d=e;d;d=d._parent)if(d.index==c){if(c==this.index)return d;s=d,a=h+1;break e}c=this.stack[--h]}}for(let c=a;c=0;h--){if(h<0)return matchNodeContext(this.node,e,c);let d=a[s.buffer[this.stack[h]]];if(!d.isAnonymous){if(e[c]&&e[c]!=d.name)return!1;c--}}return!0}}function hasChild(o){return o.children.some(e=>e instanceof TreeBuffer||!e.type.isAnonymous||hasChild(e))}function buildTree(o){var e;let{buffer:s,nodeSet:a,maxBufferLength:c=DefaultBufferLength,reused:h=[],minRepeatType:d=a.types.length}=o,g=Array.isArray(s)?new FlatBufferCursor(s,s.length):s,_=a.types,b=0,$=0;function j(ot,ut,ct,ht,lt){let{id:pt,start:ft,end:gt,size:yt}=g,mt=$;for(;yt<0;)if(g.next(),yt==-1){let dt=h[pt];ct.push(dt),ht.push(ft-ot);return}else if(yt==-3){b=pt;return}else if(yt==-4){$=pt;return}else throw new RangeError(`Unrecognized record size: ${yt}`);let Et=_[pt],Ot,St,At=ft-ot;if(gt-ft<=c&&(St=nt(g.pos-ut,lt))){let dt=new Uint16Array(St.size-St.skip),Dt=g.pos-St.size,Ct=dt.length;for(;g.pos>Dt;)Ct=st(St.start,dt,Ct);Ot=new TreeBuffer(dt,gt-St.start,a),At=St.start-ot}else{let dt=g.pos-yt;g.next();let Dt=[],Ct=[],xt=pt>=d?pt:-1,Tt=0,kt=gt;for(;g.pos>dt;)xt>=0&&g.id==xt&&g.size>=0?(g.end<=kt-c&&(et(Dt,Ct,ft,Tt,g.end,kt,xt,mt),Tt=Dt.length,kt=g.end),g.next()):j(ft,dt,Dt,Ct,xt);if(xt>=0&&Tt>0&&Tt-1&&Tt>0){let _t=_e(Et);Ot=balanceRange(Et,Dt,Ct,0,Dt.length,0,gt-ft,_t,_t)}else Ot=tt(Et,Dt,Ct,gt-ft,mt-gt)}ct.push(Ot),ht.push(At)}function _e(ot){return(ut,ct,ht)=>{let lt=0,pt=ut.length-1,ft,gt;if(pt>=0&&(ft=ut[pt])instanceof Tree){if(!pt&&ft.type==ot&&ft.length==ht)return ft;(gt=ft.prop(NodeProp.lookAhead))&&(lt=ct[pt]+ft.length+gt)}return tt(ot,ut,ct,ht,lt)}}function et(ot,ut,ct,ht,lt,pt,ft,gt){let yt=[],mt=[];for(;ot.length>ht;)yt.push(ot.pop()),mt.push(ut.pop()+ct-lt);ot.push(tt(a.types[ft],yt,mt,pt-lt,gt-pt)),ut.push(lt-ct)}function tt(ot,ut,ct,ht,lt=0,pt){if(b){let ft=[NodeProp.contextHash,b];pt=pt?[ft].concat(pt):[ft]}if(lt>25){let ft=[NodeProp.lookAhead,lt];pt=pt?[ft].concat(pt):[ft]}return new Tree(ot,ut,ct,ht,pt)}function nt(ot,ut){let ct=g.fork(),ht=0,lt=0,pt=0,ft=ct.end-c,gt={size:0,start:0,skip:0};e:for(let yt=ct.pos-ot;ct.pos>yt;){let mt=ct.size;if(ct.id==ut&&mt>=0){gt.size=ht,gt.start=lt,gt.skip=pt,pt+=4,ht+=4,ct.next();continue}let Et=ct.pos-mt;if(mt<0||Et=d?4:0,St=ct.start;for(ct.next();ct.pos>Et;){if(ct.size<0)if(ct.size==-3)Ot+=4;else break e;else ct.id>=d&&(Ot+=4);ct.next()}lt=St,ht+=mt,pt+=Ot}return(ut<0||ht==ot)&&(gt.size=ht,gt.start=lt,gt.skip=pt),gt.size>4?gt:void 0}function st(ot,ut,ct){let{id:ht,start:lt,end:pt,size:ft}=g;if(g.next(),ft>=0&&ht4){let yt=g.pos-(ft-4);for(;g.pos>yt;)ct=st(ot,ut,ct)}ut[--ct]=gt,ut[--ct]=pt-ot,ut[--ct]=lt-ot,ut[--ct]=ht}else ft==-3?b=ht:ft==-4&&($=ht);return ct}let rt=[],it=[];for(;g.pos>0;)j(o.start||0,o.bufferStart||0,rt,it,-1);let at=(e=o.length)!==null&&e!==void 0?e:rt.length?it[0]+rt[0].length:0;return new Tree(_[o.topID],rt.reverse(),it.reverse(),at)}const nodeSizeCache=new WeakMap;function nodeSize(o,e){if(!o.isAnonymous||e instanceof TreeBuffer||e.type!=o)return 1;let s=nodeSizeCache.get(e);if(s==null){s=1;for(let a of e.children){if(a.type!=o||!(a instanceof Tree)){s=1;break}s+=nodeSize(o,a)}nodeSizeCache.set(e,s)}return s}function balanceRange(o,e,s,a,c,h,d,g,_){let b=0;for(let tt=a;tt=$)break;ct+=ht}if(at==ot+1){if(ct>$){let ht=tt[ot];et(ht.children,ht.positions,0,ht.children.length,nt[ot]+it);continue}j.push(tt[ot])}else{let ht=nt[at-1]+tt[at-1].length-ut;j.push(balanceRange(o,tt,nt,ot,at,ut,ht,null,_))}_e.push(ut+it-h)}}return et(e,s,a,c,0),(g||_)(j,_e,d)}class NodeWeakMap{constructor(){this.map=new WeakMap}setBuffer(e,s,a){let c=this.map.get(e);c||this.map.set(e,c=new Map),c.set(s,a)}getBuffer(e,s){let a=this.map.get(e);return a&&a.get(s)}set(e,s){e instanceof BufferNode?this.setBuffer(e.context.buffer,e.index,s):e instanceof TreeNode&&this.map.set(e.tree,s)}get(e){return e instanceof BufferNode?this.getBuffer(e.context.buffer,e.index):e instanceof TreeNode?this.map.get(e.tree):void 0}cursorSet(e,s){e.buffer?this.setBuffer(e.buffer.buffer,e.index,s):this.map.set(e.tree,s)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class TreeFragment{constructor(e,s,a,c,h=!1,d=!1){this.from=e,this.to=s,this.tree=a,this.offset=c,this.open=(h?1:0)|(d?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,s=[],a=!1){let c=[new TreeFragment(0,e.length,e,0,!1,a)];for(let h of s)h.to>e.length&&c.push(h);return c}static applyChanges(e,s,a=128){if(!s.length)return e;let c=[],h=1,d=e.length?e[0]:null;for(let g=0,_=0,b=0;;g++){let $=g=a)for(;d&&d.from=_e.from||j<=_e.to||b){let et=Math.max(_e.from,_)-b,tt=Math.min(_e.to,j)-b;_e=et>=tt?null:new TreeFragment(et,tt,_e.tree,_e.offset+b,g>0,!!$)}if(_e&&c.push(_e),d.to>j)break;d=hnew Range(c.from,c.to)):[new Range(0,0)]:[new Range(0,e.length)],this.createParse(e,s||[],a)}parse(e,s,a){let c=this.startParse(e,s,a);for(;;){let h=c.advance();if(h)return h}}}class StringInput{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,s){return this.string.slice(e,s)}}new NodeProp({perNode:!0});let nextTagID=0;class Tag{constructor(e,s,a){this.set=e,this.base=s,this.modified=a,this.id=nextTagID++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let s=new Tag([],null,[]);if(s.set.push(s),e)for(let a of e.set)s.set.push(a);return s}static defineModifier(){let e=new Modifier;return s=>s.modified.indexOf(e)>-1?s:Modifier.get(s.base||s,s.modified.concat(e).sort((a,c)=>a.id-c.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(e,s){if(!s.length)return e;let a=s[0].instances.find(g=>g.base==e&&sameArray(s,g.modified));if(a)return a;let c=[],h=new Tag(c,e,s);for(let g of s)g.instances.push(h);let d=permute(s);for(let g of e.set)for(let _ of d)c.push(Modifier.get(g,_));return h}}function sameArray(o,e){return o.length==e.length&&o.every((s,a)=>s==e[a])}function permute(o){let e=[o];for(let s=0;s0&&j+3==c.length){d=1;break}let _e=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(g);if(!_e)throw new RangeError("Invalid path: "+c);if(h.push(_e[0]=="*"?"":_e[0][0]=='"'?JSON.parse(_e[0]):_e[0]),j+=_e[0].length,j==c.length)break;let et=c[j++];if(j==c.length&&et=="!"){d=0;break}if(et!="/")throw new RangeError("Invalid path: "+c);g=c.slice(j)}let _=h.length-1,b=h[_];if(!b)throw new RangeError("Invalid path: "+c);let $=new Rule(a,d,_>0?h.slice(0,_):null);e[b]=$.sort(e[b])}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp;class Rule{constructor(e,s,a,c){this.tags=e,this.mode=s,this.context=a,this.next=c}sort(e){return!e||e.depth{let d=c;for(let g of h)for(let _ of g.set){let b=s[_.id];if(b){d=d?d+" "+b:b;break}}return d},scope:a}}function highlightTags(o,e){let s=null;for(let a of o){let c=a.style(e);c&&(s=s?s+" "+c:c)}return s}function highlightTree(o,e,s,a=0,c=o.length){let h=new HighlightBuilder(a,Array.isArray(e)?e:[e],s);h.highlightRange(o.cursor(),a,c,"",h.highlighters),h.flush(c)}class HighlightBuilder{constructor(e,s,a){this.at=e,this.highlighters=s,this.span=a,this.class=""}startSpan(e,s){s!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=s)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,s,a,c,h){let{type:d,from:g,to:_}=e;if(g>=a||_<=s)return;d.isTop&&(h=this.highlighters.filter(et=>!et.scope||et.scope(d)));let b=c,$=d.prop(ruleNodeProp),j=!1;for(;$;){if(!$.context||e.matchContext($.context)){let et=highlightTags(h,$.tags);et&&(b&&(b+=" "),b+=et,$.mode==1?c+=(c?" ":"")+et:$.mode==0&&(j=!0));break}$=$.next}if(this.startSpan(e.from,b),j)return;let _e=e.tree&&e.tree.prop(NodeProp.mounted);if(_e&&_e.overlay){let et=e.node.enter(_e.overlay[0].from+g,1),tt=this.highlighters.filter(st=>!st.scope||st.scope(_e.tree.type)),nt=e.firstChild();for(let st=0,rt=g;;st++){let it=st<_e.overlay.length?_e.overlay[st]:null,at=it?it.from+g:_,ot=Math.max(s,rt),ut=Math.min(a,at);if(ot=at||!e.nextSibling())););if(!it||at>a)break;rt=it.to+g,rt>s&&(this.highlightRange(et.cursor(),Math.max(s,it.from+g),Math.min(a,rt),c,tt),this.startSpan(rt,b))}nt&&e.parent()}else if(e.firstChild()){do if(!(e.to<=s)){if(e.from>=a)break;this.highlightRange(e,s,a,c,h),this.startSpan(Math.min(a,e.to),b)}while(e.nextSibling());e.parent()}}}const t=Tag.define,comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags={comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name,variableName:t(name),typeName,tagName:t(typeName),propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal,string,docString:t(string),character:t(string),attributeValue:t(string),number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation,separator:t(punctuation),bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content,heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()};tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(o){return Facet.define({combine:o?e=>e.concat(o):void 0})}class Language{constructor(e,s,a=[]){this.data=e,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=s,this.extension=[language.of(this),EditorState.languageData.of((c,h,d)=>c.facet(languageDataFacetAt(c,h,d)))].concat(a)}isActiveAt(e,s,a=-1){return languageDataFacetAt(e,s,a)==this.data}findRegions(e){let s=e.facet(language);if((s==null?void 0:s.data)==this.data)return[{from:0,to:e.doc.length}];if(!s||!s.allowsNesting)return[];let a=[],c=(h,d)=>{if(h.prop(languageDataProp)==this.data){a.push({from:d,to:d+h.length});return}let g=h.prop(NodeProp.mounted);if(g){if(g.tree.prop(languageDataProp)==this.data){if(g.overlay)for(let _ of g.overlay)a.push({from:_.from+d,to:_.to+d});else a.push({from:d,to:d+h.length});return}else if(g.overlay){let _=a.length;if(c(g.tree,g.overlay[0].from+d),a.length>_)return}}for(let _=0;_a.isTop?s:void 0)]}))}configure(e){return new LRLanguage(this.data,this.parser.configure(e))}get allowsNesting(){return this.parser.hasWrappers()}}function syntaxTree(o){let e=o.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(e,s=e.length){this.doc=e,this.length=s,this.cursorPos=0,this.string="",this.cursor=e.iter()}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,s){let a=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,s):this.string.slice(e-a,s-a)}}let currentContext=null;class ParseContext{constructor(e,s,a=[],c,h,d,g,_){this.parser=e,this.state=s,this.fragments=a,this.tree=c,this.treeLen=h,this.viewport=d,this.skipped=g,this.scheduleOn=_,this.parse=null,this.tempSkipped=[]}static create(e,s,a){return new ParseContext(e,s,[],Tree.empty,0,a,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(e,s){return s!=null&&s>=this.state.doc.length&&(s=void 0),this.tree!=Tree.empty&&this.isDone(s!=null?s:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var a;if(typeof e=="number"){let c=Date.now()+e;e=()=>Date.now()>c}for(this.parse||(this.parse=this.startParse()),s!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>s)&&s=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(s=this.parse.advance()););}),this.treeLen=e,this.tree=s,this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let s=currentContext;currentContext=this;try{return e()}finally{currentContext=s}}withoutTempSkipped(e){for(let s;s=this.tempSkipped.pop();)e=cutFragments(e,s.from,s.to);return e}changes(e,s){let{fragments:a,tree:c,treeLen:h,viewport:d,skipped:g}=this;if(this.takeTree(),!e.empty){let _=[];if(e.iterChangedRanges((b,$,j,_e)=>_.push({fromA:b,toA:$,fromB:j,toB:_e})),a=TreeFragment.applyChanges(a,_),c=Tree.empty,h=0,d={from:e.mapPos(d.from,-1),to:e.mapPos(d.to,1)},this.skipped.length){g=[];for(let b of this.skipped){let $=e.mapPos(b.from,1),j=e.mapPos(b.to,-1);$e.from&&(this.fragments=cutFragments(this.fragments,c,h),this.skipped.splice(a--,1))}return this.skipped.length>=s?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,s){this.skipped.push({from:e,to:s})}static getSkippingParser(e){return new class extends Parser{createParse(s,a,c){let h=c[0].from,d=c[c.length-1].to;return{parsedPos:h,advance(){let _=currentContext;if(_){for(let b of c)_.tempSkipped.push(b);e&&(_.scheduleOn=_.scheduleOn?Promise.all([_.scheduleOn,e]):e)}return this.parsedPos=d,new Tree(NodeType.none,[],[],d-h)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let s=this.fragments;return this.treeLen>=e&&s.length&&s[0].from==0&&s[0].to>=e}static get(){return currentContext}}function cutFragments(o,e,s){return TreeFragment.applyChanges(o,[{fromA:e,toA:s,fromB:e,toB:s}])}class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let s=this.context.changes(e.changes,e.state),a=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),s.viewport.to);return s.work(20,a)||s.takeTree(),new LanguageState(s)}static init(e){let s=Math.min(3e3,e.doc.length),a=ParseContext.create(e.facet(language).parser,e,{from:0,to:s});return a.work(20,s)||a.takeTree(),new LanguageState(a)}}Language.state=StateField.define({create:LanguageState.init,update(o,e){for(let s of e.effects)if(s.is(Language.setState))return s.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):o.apply(e)}});let requestIdle=o=>{let e=setTimeout(()=>o(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(requestIdle=o=>{let e=-1,s=setTimeout(()=>{e=requestIdleCallback(o,{timeout:500-100})},100);return()=>e<0?clearTimeout(s):cancelIdleCallback(e)});const isInputPending=typeof navigator<"u"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null,parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let s=this.view.state.field(Language.state).context;(s.updateViewport(e.view.viewport)||this.view.viewport.to>s.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(s)}scheduleWork(){if(this.working)return;let{state:e}=this.view,s=e.field(Language.state);(s.tree!=s.context.tree||!s.context.isDone(e.doc.length))&&(this.working=requestIdle(this.work))}work(e){this.working=null;let s=Date.now();if(this.chunkEndc+1e3,_=h.context.work(()=>isInputPending&&isInputPending()||Date.now()>d,c+(g?0:1e5));this.chunkBudget-=Date.now()-s,(_||this.chunkBudget<=0)&&(h.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(h.context))})),this.chunkBudget>0&&!(_&&!g)&&this.scheduleWork(),this.checkAsyncSchedule(h.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(s=>logException(this.view.state,s)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(o){return o.length?o[0]:null},enables:[Language.state,parseWorker]});class LanguageSupport{constructor(e,s=[]){this.language=e,this.support=s,this.extension=[e,s]}}const indentService=Facet.define(),indentUnit=Facet.define({combine:o=>{if(!o.length)return" ";if(!/^(?: +|\t+)$/.test(o[0]))throw new Error("Invalid indent unit: "+JSON.stringify(o[0]));return o[0]}});function getIndentUnit(o){let e=o.facet(indentUnit);return e.charCodeAt(0)==9?o.tabSize*e.length:e.length}function indentString(o,e){let s="",a=o.tabSize;if(o.facet(indentUnit).charCodeAt(0)==9)for(;e>=a;)s+=" ",e-=a;for(let c=0;c=a.from&&c<=a.to?h&&c==e?{text:"",from:e}:(s<0?c-1&&(h+=d-this.countColumn(a,a.search(/\S|$/))),h}countColumn(e,s=e.length){return countColumn(e,this.state.tabSize,s)}lineIndent(e,s=1){let{text:a,from:c}=this.lineAt(e,s),h=this.options.overrideIndentation;if(h){let d=h(c);if(d>-1)return d}return this.countColumn(a,a.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const indentNodeProp=new NodeProp;function syntaxIndentation(o,e,s){return indentFrom(e.resolveInner(s).enterUnfinishedNodesBefore(s),s,o)}function ignoreClosed(o){return o.pos==o.options.simulateBreak&&o.options.simulateDoubleBreak}function indentStrategy(o){let e=o.type.prop(indentNodeProp);if(e)return e;let s=o.firstChild,a;if(s&&(a=s.type.prop(NodeProp.closedBy))){let c=o.lastChild,h=c&&a.indexOf(c.name)>-1;return d=>delimitedStrategy(d,!0,1,void 0,h&&!ignoreClosed(d)?c.from:void 0)}return o.parent==null?topIndent:null}function indentFrom(o,e,s){for(;o;o=o.parent){let a=indentStrategy(o);if(a)return a(TreeIndentContext.create(s,e,o))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,s,a){super(e.state,e.options),this.base=e,this.pos=s,this.node=a}static create(e,s,a){return new TreeIndentContext(e,s,a)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let s=this.node.resolve(e.from);for(;s.parent&&s.parent.from==s.from;)s=s.parent;if(isParent(s,this.node))break;e=this.state.doc.lineAt(s.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(o,e){for(let s=e;s;s=s.parent)if(o==s)return!0;return!1}function bracketedAligned(o){let e=o.node,s=e.childAfter(e.from),a=e.lastChild;if(!s)return null;let c=o.options.simulateBreak,h=o.state.doc.lineAt(s.from),d=c==null||c<=h.from?h.to:Math.min(h.to,c);for(let g=s.to;;){let _=e.childAfter(g);if(!_||_==a)return null;if(!_.type.isSkipped)return _.fromdelimitedStrategy(a,e,s,o)}function delimitedStrategy(o,e,s,a,c){let h=o.textAfter,d=h.match(/^\s*/)[0].length,g=a&&h.slice(d,d+a.length)==a||c==o.pos+d,_=e?bracketedAligned(o):null;return _?g?o.column(_.from):o.column(_.to):o.baseIndent+(g?0:o.unit*s)}const flatIndent=o=>o.baseIndent;function continuedIndent({except:o,units:e=1}={}){return s=>{let a=o&&o.test(s.textAfter);return s.baseIndent+(a?0:e*s.unit)}}const DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(o=>{if(!o.docChanged||!o.isUserEvent("input.type")&&!o.isUserEvent("input.complete"))return o;let e=o.startState.languageDataAt("indentOnInput",o.startState.selection.main.head);if(!e.length)return o;let s=o.newDoc,{head:a}=o.newSelection.main,c=s.lineAt(a);if(a>c.from+DontIndentBeyond)return o;let h=s.sliceString(c.from,a);if(!e.some(b=>b.test(h)))return o;let{state:d}=o,g=-1,_=[];for(let{head:b}of d.selection.ranges){let $=d.doc.lineAt(b);if($.from==g)continue;g=$.from;let j=getIndentation(d,$.from);if(j==null)continue;let _e=/^\s*/.exec($.text)[0],et=indentString(d,j);_e!=et&&_.push({from:$.from,to:$.from+_e.length,insert:et})}return _.length?[o,{changes:_,sequential:!0}]:o})}const foldService=Facet.define(),foldNodeProp=new NodeProp;function foldInside(o){let e=o.firstChild,s=o.lastChild;return e&&e.tos)continue;if(h&&d.from=e&&_.to>s&&(h=_)}}return h}function isUnfinished(o){let e=o.lastChild;return e&&e.to==o.to&&e.type.isError}function foldable(o,e,s){for(let a of o.facet(foldService)){let c=a(o,e,s);if(c)return c}return syntaxFolding(o,e,s)}function mapRange(o,e){let s=e.mapPos(o.from,1),a=e.mapPos(o.to,-1);return s>=a?void 0:{from:s,to:a}}const foldEffect=StateEffect.define({map:mapRange}),unfoldEffect=StateEffect.define({map:mapRange});function selectedLines(o){let e=[];for(let{head:s}of o.state.selection.ranges)e.some(a=>a.from<=s&&a.to>=s)||e.push(o.lineBlockAt(s));return e}const foldState=StateField.define({create(){return Decoration.none},update(o,e){o=o.map(e.changes);for(let s of e.effects)s.is(foldEffect)&&!foldExists(o,s.value.from,s.value.to)?o=o.update({add:[foldWidget.range(s.value.from,s.value.to)]}):s.is(unfoldEffect)&&(o=o.update({filter:(a,c)=>s.value.from!=a||s.value.to!=c,filterFrom:s.value.from,filterTo:s.value.to}));if(e.selection){let s=!1,{head:a}=e.selection.main;o.between(a,a,(c,h)=>{ca&&(s=!0)}),s&&(o=o.update({filterFrom:a,filterTo:a,filter:(c,h)=>h<=a||c>=a}))}return o},provide:o=>EditorView.decorations.from(o),toJSON(o,e){let s=[];return o.between(0,e.doc.length,(a,c)=>{s.push(a,c)}),s},fromJSON(o){if(!Array.isArray(o)||o.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let s=0;s{(!c||c.from>h)&&(c={from:h,to:d})}),c}function foldExists(o,e,s){let a=!1;return o.between(e,e,(c,h)=>{c==e&&h==s&&(a=!0)}),a}function maybeEnable(o,e){return o.field(foldState,!1)?e:e.concat(StateEffect.appendConfig.of(codeFolding()))}const foldCode=o=>{for(let e of selectedLines(o)){let s=foldable(o.state,e.from,e.to);if(s)return o.dispatch({effects:maybeEnable(o.state,[foldEffect.of(s),announceFold(o,s)])}),!0}return!1},unfoldCode=o=>{if(!o.state.field(foldState,!1))return!1;let e=[];for(let s of selectedLines(o)){let a=findFold(o.state,s.from,s.to);a&&e.push(unfoldEffect.of(a),announceFold(o,a,!1))}return e.length&&o.dispatch({effects:e}),e.length>0};function announceFold(o,e,s=!0){let a=o.state.doc.lineAt(e.from).number,c=o.state.doc.lineAt(e.to).number;return EditorView.announce.of(`${o.state.phrase(s?"Folded lines":"Unfolded lines")} ${a} ${o.state.phrase("to")} ${c}.`)}const foldAll=o=>{let{state:e}=o,s=[];for(let a=0;a{let e=o.state.field(foldState,!1);if(!e||!e.size)return!1;let s=[];return e.between(0,o.state.doc.length,(a,c)=>{s.push(unfoldEffect.of({from:a,to:c}))}),o.dispatch({effects:s}),!0},foldKeymap=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:foldCode},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:unfoldCode},{key:"Ctrl-Alt-[",run:foldAll},{key:"Ctrl-Alt-]",run:unfoldAll}],defaultConfig={placeholderDOM:null,placeholderText:"\u2026"},foldConfig=Facet.define({combine(o){return combineConfig(o,defaultConfig)}});function codeFolding(o){let e=[foldState,baseTheme$1$2];return o&&e.push(foldConfig.of(o)),e}const foldWidget=Decoration.replace({widget:new class extends WidgetType{toDOM(o){let{state:e}=o,s=e.facet(foldConfig),a=h=>{let d=o.lineBlockAt(o.posAtDOM(h.target)),g=findFold(o.state,d.from,d.to);g&&o.dispatch({effects:unfoldEffect.of(g)}),h.preventDefault()};if(s.placeholderDOM)return s.placeholderDOM(o,a);let c=document.createElement("span");return c.textContent=s.placeholderText,c.setAttribute("aria-label",e.phrase("folded code")),c.title=e.phrase("unfold"),c.className="cm-foldPlaceholder",c.onclick=a,c}}}),foldGutterDefaults={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class FoldMarker extends GutterMarker{constructor(e,s){super(),this.config=e,this.open=s}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let s=document.createElement("span");return s.textContent=this.open?this.config.openText:this.config.closedText,s.title=e.state.phrase(this.open?"Fold line":"Unfold line"),s}}function foldGutter(o={}){let e=Object.assign(Object.assign({},foldGutterDefaults),o),s=new FoldMarker(e,!0),a=new FoldMarker(e,!1),c=ViewPlugin.fromClass(class{constructor(d){this.from=d.viewport.from,this.markers=this.buildMarkers(d)}update(d){(d.docChanged||d.viewportChanged||d.startState.facet(language)!=d.state.facet(language)||d.startState.field(foldState,!1)!=d.state.field(foldState,!1)||syntaxTree(d.startState)!=syntaxTree(d.state)||e.foldingChanged(d))&&(this.markers=this.buildMarkers(d.view))}buildMarkers(d){let g=new RangeSetBuilder;for(let _ of d.viewportLineBlocks){let b=findFold(d.state,_.from,_.to)?a:foldable(d.state,_.from,_.to)?s:null;b&&g.add(_.from,_.from,b)}return g.finish()}}),{domEventHandlers:h}=e;return[c,gutter({class:"cm-foldGutter",markers(d){var g;return((g=d.plugin(c))===null||g===void 0?void 0:g.markers)||RangeSet.empty},initialSpacer(){return new FoldMarker(e,!1)},domEventHandlers:Object.assign(Object.assign({},h),{click:(d,g,_)=>{if(h.click&&h.click(d,g,_))return!0;let b=findFold(d.state,g.from,g.to);if(b)return d.dispatch({effects:unfoldEffect.of(b)}),!0;let $=foldable(d.state,g.from,g.to);return $?(d.dispatch({effects:foldEffect.of($)}),!0):!1}})}),codeFolding()]}const baseTheme$1$2=EditorView.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class HighlightStyle{constructor(e,s){let a;function c(g){let _=StyleModule.newName();return(a||(a=Object.create(null)))["."+_]=g,_}const h=typeof s.all=="string"?s.all:s.all?c(s.all):void 0,d=s.scope;this.scope=d instanceof Language?g=>g.prop(languageDataProp)==d.data:d?g=>g==d:void 0,this.style=tagHighlighter(e.map(g=>({tag:g.tag,class:g.class||c(Object.assign({},g,{tag:null}))})),{all:h}).style,this.module=a?new StyleModule(a):null,this.themeType=s.themeType}static define(e,s){return new HighlightStyle(e,s||{})}}const highlighterFacet=Facet.define(),fallbackHighlighter=Facet.define({combine(o){return o.length?[o[0]]:null}});function getHighlighters(o){let e=o.facet(highlighterFacet);return e.length?e:o.facet(fallbackHighlighter)}function syntaxHighlighting(o,e){let s=[treeHighlighter],a;return o instanceof HighlightStyle&&(o.module&&s.push(EditorView.styleModule.of(o.module)),a=o.themeType),e!=null&&e.fallback?s.push(fallbackHighlighter.of(o)):a?s.push(highlighterFacet.computeN([EditorView.darkTheme],c=>c.facet(EditorView.darkTheme)==(a=="dark")?[o]:[])):s.push(highlighterFacet.of(o)),s}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlighters(e.state))}update(e){let s=syntaxTree(e.state),a=getHighlighters(e.state),c=a!=getHighlighters(e.startState);s.length{a.add(d,g,this.markCache[_]||(this.markCache[_]=Decoration.mark({class:_})))},c,h);return a.finish()}}const treeHighlighter=Prec.high(ViewPlugin.fromClass(TreeHighlighter,{decorations:o=>o.decorations})),defaultHighlightStyle=HighlightStyle.define([{tag:tags.meta,color:"#7a757a"},{tag:tags.link,textDecoration:"underline"},{tag:tags.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strong,fontWeight:"bold"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.keyword,color:"#708"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:"#219"},{tag:[tags.literal,tags.inserted],color:"#164"},{tag:[tags.string,tags.deleted],color:"#a11"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],color:"#e40"},{tag:tags.definition(tags.variableName),color:"#00f"},{tag:tags.local(tags.variableName),color:"#30a"},{tag:[tags.typeName,tags.namespace],color:"#085"},{tag:tags.className,color:"#167"},{tag:[tags.special(tags.variableName),tags.macroName],color:"#256"},{tag:tags.definition(tags.propertyName),color:"#00c"},{tag:tags.comment,color:"#940"},{tag:tags.invalid,color:"#f00"}]),baseTheme$3=EditorView.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),DefaultScanDist=1e4,DefaultBrackets="()[]{}",bracketMatchingConfig=Facet.define({combine(o){return combineConfig(o,{afterCursor:!0,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch})}}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"});function defaultRenderMatch(o){let e=[],s=o.matched?matchingMark:nonmatchingMark;return e.push(s.range(o.start.from,o.start.to)),o.end&&e.push(s.range(o.end.from,o.end.to)),e}const bracketMatchingState=StateField.define({create(){return Decoration.none},update(o,e){if(!e.docChanged&&!e.selection)return o;let s=[],a=e.state.facet(bracketMatchingConfig);for(let c of e.state.selection.ranges){if(!c.empty)continue;let h=matchBrackets(e.state,c.head,-1,a)||c.head>0&&matchBrackets(e.state,c.head-1,1,a)||a.afterCursor&&(matchBrackets(e.state,c.head,1,a)||c.headEditorView.decorations.from(o)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$3];function bracketMatching(o={}){return[bracketMatchingConfig.of(o),bracketMatchingUnique]}function matchingNodes(o,e,s){let a=o.prop(e<0?NodeProp.openedBy:NodeProp.closedBy);if(a)return a;if(o.name.length==1){let c=s.indexOf(o.name);if(c>-1&&c%2==(e<0?1:0))return[s[c+e]]}return null}function matchBrackets(o,e,s,a={}){let c=a.maxScanDistance||DefaultScanDist,h=a.brackets||DefaultBrackets,d=syntaxTree(o),g=d.resolveInner(e,s);for(let _=g;_;_=_.parent){let b=matchingNodes(_.type,s,h);if(b&&_.from<_.to)return matchMarkedBrackets(o,e,s,_,b,h)}return matchPlainBrackets(o,e,s,d,g.type,c,h)}function matchMarkedBrackets(o,e,s,a,c,h){let d=a.parent,g={from:a.from,to:a.to},_=0,b=d==null?void 0:d.cursor();if(b&&(s<0?b.childBefore(a.from):b.childAfter(a.to)))do if(s<0?b.to<=a.from:b.from>=a.to){if(_==0&&c.indexOf(b.type.name)>-1&&b.from0)return null;let b={from:s<0?e-1:e,to:s>0?e+1:e},$=o.doc.iterRange(e,s>0?o.doc.length:0),j=0;for(let _e=0;!$.next().done&&_e<=h;){let et=$.value;s<0&&(_e+=et.length);let tt=e+_e*s;for(let nt=s>0?0:et.length-1,st=s>0?et.length:-1;nt!=st;nt+=s){let rt=d.indexOf(et[nt]);if(!(rt<0||a.resolveInner(tt+nt,1).type!=c))if(rt%2==0==s>0)j++;else{if(j==1)return{start:b,end:{from:tt+nt,to:tt+nt+1},matched:rt>>1==_>>1};j--}}s>0&&(_e+=et.length)}return $.done?{start:b,matched:!1}:null}const noTokens=Object.create(null),typeArray=[NodeType.none],warned=[],defaultTable=Object.create(null);for(let[o,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])defaultTable[o]=createTokenType(noTokens,e);function warnForPart(o,e){warned.indexOf(o)>-1||(warned.push(o),console.warn(e))}function createTokenType(o,e){let s=null;for(let h of e.split(".")){let d=o[h]||tags[h];d?typeof d=="function"?s?s=d(s):warnForPart(h,`Modifier ${h} used at start of tag`):s?warnForPart(h,`Tag ${h} used as modifier`):s=d:warnForPart(h,`Unknown highlighting tag ${h}`)}if(!s)return 0;let a=e.replace(/ /g,"_"),c=NodeType.define({id:typeArray.length,name:a,props:[styleTags({[a]:s})]});return typeArray.push(c),c.id}const toggleComment=o=>{let e=getConfig(o.state);return e.line?toggleLineComment(o):e.block?toggleBlockCommentByLine(o):!1};function command(o,e){return({state:s,dispatch:a})=>{if(s.readOnly)return!1;let c=o(e,s);return c?(a(s.update(c)),!0):!1}}const toggleLineComment=command(changeLineComment,0),toggleBlockComment=command(changeBlockComment,0),toggleBlockCommentByLine=command((o,e)=>changeBlockComment(o,e,selectedLineRanges(e)),0);function getConfig(o,e=o.selection.main.head){let s=o.languageDataAt("commentTokens",e);return s.length?s[0]:{}}const SearchMargin=50;function findBlockComment(o,{open:e,close:s},a,c){let h=o.sliceDoc(a-SearchMargin,a),d=o.sliceDoc(c,c+SearchMargin),g=/\s*$/.exec(h)[0].length,_=/^\s*/.exec(d)[0].length,b=h.length-g;if(h.slice(b-e.length,b)==e&&d.slice(_,_+s.length)==s)return{open:{pos:a-g,margin:g&&1},close:{pos:c+_,margin:_&&1}};let $,j;c-a<=2*SearchMargin?$=j=o.sliceDoc(a,c):($=o.sliceDoc(a,a+SearchMargin),j=o.sliceDoc(c-SearchMargin,c));let _e=/^\s*/.exec($)[0].length,et=/\s*$/.exec(j)[0].length,tt=j.length-et-s.length;return $.slice(_e,_e+e.length)==e&&j.slice(tt,tt+s.length)==s?{open:{pos:a+_e+e.length,margin:/\s/.test($.charAt(_e+e.length))?1:0},close:{pos:c-et-s.length,margin:/\s/.test(j.charAt(tt-1))?1:0}}:null}function selectedLineRanges(o){let e=[];for(let s of o.selection.ranges){let a=o.doc.lineAt(s.from),c=s.to<=a.to?a:o.doc.lineAt(s.to),h=e.length-1;h>=0&&e[h].to>a.from?e[h].to=c.to:e.push({from:a.from,to:c.to})}return e}function changeBlockComment(o,e,s=e.selection.ranges){let a=s.map(h=>getConfig(e,h.from).block);if(!a.every(h=>h))return null;let c=s.map((h,d)=>findBlockComment(e,a[d],h.from,h.to));if(o!=2&&!c.every(h=>h))return{changes:e.changes(s.map((h,d)=>c[d]?[]:[{from:h.from,insert:a[d].open+" "},{from:h.to,insert:" "+a[d].close}]))};if(o!=1&&c.some(h=>h)){let h=[];for(let d=0,g;dc&&(h==d||d>$.from)){c=$.from;let j=getConfig(e,b).line;if(!j)continue;let _e=/^\s*/.exec($.text)[0].length,et=_e==$.length,tt=$.text.slice(_e,_e+j.length)==j?_e:-1;_e<$.text.length&&_e<_&&(_=_e),a.push({line:$,comment:tt,token:j,indent:_e,empty:et,single:!1})}b=$.to+1}if(_<1e9)for(let b=g;bh.comment<0&&(!h.empty||h.single))){let h=[];for(let{line:g,token:_,indent:b,empty:$,single:j}of a)(j||!$)&&h.push({from:g.from+b,insert:_+" "});let d=e.changes(h);return{changes:d,selection:e.selection.map(d,1)}}else if(o!=1&&a.some(h=>h.comment>=0)){let h=[];for(let{line:d,comment:g,token:_}of a)if(g>=0){let b=d.from+g,$=b+_.length;d.text[$-d.from]==" "&&$++,h.push({from:b,to:$})}return{changes:h}}return null}const fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(o){return combineConfig(o,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function changeEnd(o){let e=0;return o.iterChangedRanges((s,a)=>e=a),e}const historyField_=StateField.define({create(){return HistoryState.empty},update(o,e){let s=e.state.facet(historyConfig),a=e.annotation(fromHistory);if(a){let _=e.docChanged?EditorSelection.single(changeEnd(e.changes)):void 0,b=HistEvent.fromTransaction(e,_),$=a.side,j=$==0?o.undone:o.done;return b?j=updateBranch(j,j.length,s.minDepth,b):j=addSelection(j,e.startState.selection),new HistoryState($==0?a.rest:j,$==0?j:a.rest)}let c=e.annotation(isolateHistory);if((c=="full"||c=="before")&&(o=o.isolate()),e.annotation(Transaction.addToHistory)===!1)return e.changes.empty?o:o.addMapping(e.changes.desc);let h=HistEvent.fromTransaction(e),d=e.annotation(Transaction.time),g=e.annotation(Transaction.userEvent);return h?o=o.addChanges(h,d,g,s.newGroupDelay,s.minDepth):e.selection&&(o=o.addSelection(e.startState.selection,d,g,s.newGroupDelay)),(c=="full"||c=="after")&&(o=o.isolate()),o},toJSON(o){return{done:o.done.map(e=>e.toJSON()),undone:o.undone.map(e=>e.toJSON())}},fromJSON(o){return new HistoryState(o.done.map(HistEvent.fromJSON),o.undone.map(HistEvent.fromJSON))}});function history(o={}){return[historyField_,historyConfig.of(o),EditorView.domEventHandlers({beforeinput(e,s){let a=e.inputType=="historyUndo"?undo:e.inputType=="historyRedo"?redo:null;return a?(e.preventDefault(),a(s)):!1}})]}function cmd(o,e){return function({state:s,dispatch:a}){if(!e&&s.readOnly)return!1;let c=s.field(historyField_,!1);if(!c)return!1;let h=c.pop(o,s,e);return h?(a(h),!0):!1}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,s,a,c,h){this.changes=e,this.effects=s,this.mapped=a,this.startSelection=c,this.selectionsAfter=h}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,s,a;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(s=this.mapped)===null||s===void 0?void 0:s.toJSON(),startSelection:(a=this.startSelection)===null||a===void 0?void 0:a.toJSON(),selectionsAfter:this.selectionsAfter.map(c=>c.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e,s){let a=none$1;for(let c of e.startState.facet(invertedEffects)){let h=c(e);h.length&&(a=a.concat(h))}return!a.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),a,void 0,s||e.startState.selection,none$1)}static selection(e){return new HistEvent(void 0,none$1,void 0,void 0,e)}}function updateBranch(o,e,s,a){let c=e+1>s+20?e-s-1:0,h=o.slice(c,e);return h.push(a),h}function isAdjacent(o,e){let s=[],a=!1;return o.iterChangedRanges((c,h)=>s.push(c,h)),e.iterChangedRanges((c,h,d,g)=>{for(let _=0;_=b&&d<=$&&(a=!0)}}),a}function eqSelectionShape(o,e){return o.ranges.length==e.ranges.length&&o.ranges.filter((s,a)=>s.empty!=e.ranges[a].empty).length===0}function conc(o,e){return o.length?e.length?o.concat(e):o:e}const none$1=[],MaxSelectionsPerEvent=200;function addSelection(o,e){if(o.length){let s=o[o.length-1],a=s.selectionsAfter.slice(Math.max(0,s.selectionsAfter.length-MaxSelectionsPerEvent));return a.length&&a[a.length-1].eq(e)?o:(a.push(e),updateBranch(o,o.length-1,1e9,s.setSelAfter(a)))}else return[HistEvent.selection([e])]}function popSelection(o){let e=o[o.length-1],s=o.slice();return s[o.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),s}function addMappingToBranch(o,e){if(!o.length)return o;let s=o.length,a=none$1;for(;s;){let c=mapEvent(o[s-1],e,a);if(c.changes&&!c.changes.empty||c.effects.length){let h=o.slice(0,s);return h[s-1]=c,h}else e=c.mapped,s--,a=c.selectionsAfter}return a.length?[HistEvent.selection(a)]:none$1}function mapEvent(o,e,s){let a=conc(o.selectionsAfter.length?o.selectionsAfter.map(g=>g.map(e)):none$1,s);if(!o.changes)return HistEvent.selection(a);let c=o.changes.map(e),h=e.mapDesc(o.changes,!0),d=o.mapped?o.mapped.composeDesc(h):h;return new HistEvent(c,StateEffect.mapEffects(o.effects,e),d,o.startSelection.map(h),a)}const joinableUserEvent=/^(input\.type|delete)($|\.)/;class HistoryState{constructor(e,s,a=0,c=void 0){this.done=e,this.undone=s,this.prevTime=a,this.prevUserEvent=c}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,s,a,c,h){let d=this.done,g=d[d.length-1];return g&&g.changes&&!g.changes.empty&&e.changes&&(!a||joinableUserEvent.test(a))&&(!g.selectionsAfter.length&&s-this.prevTime0&&s-this.prevTimes.empty?o.moveByChar(s,e):rangeEnd(s,e))}function ltrAtCursor(o){return o.textDirectionAt(o.state.selection.main.head)==Direction.LTR}const cursorCharLeft=o=>cursorByChar(o,!ltrAtCursor(o)),cursorCharRight=o=>cursorByChar(o,ltrAtCursor(o));function cursorByGroup(o,e){return moveSel(o,s=>s.empty?o.moveByGroup(s,e):rangeEnd(s,e))}const cursorGroupLeft=o=>cursorByGroup(o,!ltrAtCursor(o)),cursorGroupRight=o=>cursorByGroup(o,ltrAtCursor(o));function interestingNode(o,e,s){if(e.type.prop(s))return!0;let a=e.to-e.from;return a&&(a>2||/[^\s,.;:]/.test(o.sliceDoc(e.from,e.to)))||e.firstChild}function moveBySyntax(o,e,s){let a=syntaxTree(o).resolveInner(e.head),c=s?NodeProp.closedBy:NodeProp.openedBy;for(let _=e.head;;){let b=s?a.childAfter(_):a.childBefore(_);if(!b)break;interestingNode(o,b,c)?a=b:_=s?b.to:b.from}let h=a.type.prop(c),d,g;return h&&(d=s?matchBrackets(o,a.from,1):matchBrackets(o,a.to,-1))&&d.matched?g=s?d.end.to:d.end.from:g=s?a.to:a.from,EditorSelection.cursor(g,s?-1:1)}const cursorSyntaxLeft=o=>moveSel(o,e=>moveBySyntax(o.state,e,!ltrAtCursor(o))),cursorSyntaxRight=o=>moveSel(o,e=>moveBySyntax(o.state,e,ltrAtCursor(o)));function cursorByLine(o,e){return moveSel(o,s=>{if(!s.empty)return rangeEnd(s,e);let a=o.moveVertically(s,e);return a.head!=s.head?a:o.moveToLineBoundary(s,e)})}const cursorLineUp=o=>cursorByLine(o,!1),cursorLineDown=o=>cursorByLine(o,!0);function pageHeight(o){return Math.max(o.defaultLineHeight,Math.min(o.dom.clientHeight,innerHeight)-5)}function cursorByPage(o,e){let{state:s}=o,a=updateSel(s.selection,g=>g.empty?o.moveVertically(g,e,pageHeight(o)):rangeEnd(g,e));if(a.eq(s.selection))return!1;let c=o.coordsAtPos(s.selection.main.head),h=o.scrollDOM.getBoundingClientRect(),d;return c&&c.top>h.top&&c.bottomcursorByPage(o,!1),cursorPageDown=o=>cursorByPage(o,!0);function moveByLineBoundary(o,e,s){let a=o.lineBlockAt(e.head),c=o.moveToLineBoundary(e,s);if(c.head==e.head&&c.head!=(s?a.to:a.from)&&(c=o.moveToLineBoundary(e,s,!1)),!s&&c.head==a.from&&a.length){let h=/^\s*/.exec(o.state.sliceDoc(a.from,Math.min(a.from+100,a.to)))[0].length;h&&e.head!=a.from+h&&(c=EditorSelection.cursor(a.from+h))}return c}const cursorLineBoundaryForward=o=>moveSel(o,e=>moveByLineBoundary(o,e,!0)),cursorLineBoundaryBackward=o=>moveSel(o,e=>moveByLineBoundary(o,e,!1)),cursorLineStart=o=>moveSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).from,1)),cursorLineEnd=o=>moveSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).to,-1));function toMatchingBracket(o,e,s){let a=!1,c=updateSel(o.selection,h=>{let d=matchBrackets(o,h.head,-1)||matchBrackets(o,h.head,1)||h.head>0&&matchBrackets(o,h.head-1,1)||h.headtoMatchingBracket(o,e,!1);function extendSel(o,e){let s=updateSel(o.state.selection,a=>{let c=e(a);return EditorSelection.range(a.anchor,c.head,c.goalColumn)});return s.eq(o.state.selection)?!1:(o.dispatch(setSel(o.state,s)),!0)}function selectByChar(o,e){return extendSel(o,s=>o.moveByChar(s,e))}const selectCharLeft=o=>selectByChar(o,!ltrAtCursor(o)),selectCharRight=o=>selectByChar(o,ltrAtCursor(o));function selectByGroup(o,e){return extendSel(o,s=>o.moveByGroup(s,e))}const selectGroupLeft=o=>selectByGroup(o,!ltrAtCursor(o)),selectGroupRight=o=>selectByGroup(o,ltrAtCursor(o)),selectSyntaxLeft=o=>extendSel(o,e=>moveBySyntax(o.state,e,!ltrAtCursor(o))),selectSyntaxRight=o=>extendSel(o,e=>moveBySyntax(o.state,e,ltrAtCursor(o)));function selectByLine(o,e){return extendSel(o,s=>o.moveVertically(s,e))}const selectLineUp=o=>selectByLine(o,!1),selectLineDown=o=>selectByLine(o,!0);function selectByPage(o,e){return extendSel(o,s=>o.moveVertically(s,e,pageHeight(o)))}const selectPageUp=o=>selectByPage(o,!1),selectPageDown=o=>selectByPage(o,!0),selectLineBoundaryForward=o=>extendSel(o,e=>moveByLineBoundary(o,e,!0)),selectLineBoundaryBackward=o=>extendSel(o,e=>moveByLineBoundary(o,e,!1)),selectLineStart=o=>extendSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).from)),selectLineEnd=o=>extendSel(o,e=>EditorSelection.cursor(o.lineBlockAt(e.head).to)),cursorDocStart=({state:o,dispatch:e})=>(e(setSel(o,{anchor:0})),!0),cursorDocEnd=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.doc.length})),!0),selectDocStart=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.selection.main.anchor,head:0})),!0),selectDocEnd=({state:o,dispatch:e})=>(e(setSel(o,{anchor:o.selection.main.anchor,head:o.doc.length})),!0),selectAll=({state:o,dispatch:e})=>(e(o.update({selection:{anchor:0,head:o.doc.length},userEvent:"select"})),!0),selectLine=({state:o,dispatch:e})=>{let s=selectedLineBlocks(o).map(({from:a,to:c})=>EditorSelection.range(a,Math.min(c+1,o.doc.length)));return e(o.update({selection:EditorSelection.create(s),userEvent:"select"})),!0},selectParentSyntax=({state:o,dispatch:e})=>{let s=updateSel(o.selection,a=>{var c;let h=syntaxTree(o).resolveInner(a.head,1);for(;!(h.from=a.to||h.to>a.to&&h.from<=a.from||!(!((c=h.parent)===null||c===void 0)&&c.parent));)h=h.parent;return EditorSelection.range(h.to,h.from)});return e(setSel(o,s)),!0},simplifySelection=({state:o,dispatch:e})=>{let s=o.selection,a=null;return s.ranges.length>1?a=EditorSelection.create([s.main]):s.main.empty||(a=EditorSelection.create([EditorSelection.cursor(s.main.head)])),a?(e(setSel(o,a)),!0):!1};function deleteBy({state:o,dispatch:e},s){if(o.readOnly)return!1;let a="delete.selection",c=o.changeByRange(h=>{let{from:d,to:g}=h;if(d==g){let _=s(d);_d&&(a="delete.forward"),d=Math.min(d,_),g=Math.max(g,_)}return d==g?{range:h}:{changes:{from:d,to:g},range:EditorSelection.cursor(d)}});return c.changes.empty?!1:(e(o.update(c,{scrollIntoView:!0,userEvent:a,effects:a=="delete.selection"?EditorView.announce.of(o.phrase("Selection deleted")):void 0})),!0)}function skipAtomic(o,e,s){if(o instanceof EditorView)for(let a of o.state.facet(EditorView.atomicRanges).map(c=>c(o)))a.between(e,e,(c,h)=>{ce&&(e=s?h:c)});return e}const deleteByChar=(o,e)=>deleteBy(o,s=>{let{state:a}=o,c=a.doc.lineAt(s),h,d;if(!e&&s>c.from&&sdeleteByChar(o,!1),deleteCharForward=o=>deleteByChar(o,!0),deleteByGroup=(o,e)=>deleteBy(o,s=>{let a=s,{state:c}=o,h=c.doc.lineAt(a),d=c.charCategorizer(a);for(let g=null;;){if(a==(e?h.to:h.from)){a==s&&h.number!=(e?c.doc.lines:1)&&(a+=e?1:-1);break}let _=findClusterBreak(h.text,a-h.from,e)+h.from,b=h.text.slice(Math.min(a,_)-h.from,Math.max(a,_)-h.from),$=d(b);if(g!=null&&$!=g)break;(b!=" "||a!=s)&&(g=$),a=_}return skipAtomic(o,a,e)}),deleteGroupBackward=o=>deleteByGroup(o,!1),deleteGroupForward=o=>deleteByGroup(o,!0),deleteToLineEnd=o=>deleteBy(o,e=>{let s=o.lineBlockAt(e).to;return skipAtomic(o,edeleteBy(o,e=>{let s=o.lineBlockAt(e).from;return skipAtomic(o,e>s?s:Math.max(0,e-1),!1)}),splitLine=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=o.changeByRange(a=>({changes:{from:a.from,to:a.to,insert:Text.of(["",""])},range:EditorSelection.cursor(a.from)}));return e(o.update(s,{scrollIntoView:!0,userEvent:"input"})),!0},transposeChars=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=o.changeByRange(a=>{if(!a.empty||a.from==0||a.from==o.doc.length)return{range:a};let c=a.from,h=o.doc.lineAt(c),d=c==h.from?c-1:findClusterBreak(h.text,c-h.from,!1)+h.from,g=c==h.to?c+1:findClusterBreak(h.text,c-h.from,!0)+h.from;return{changes:{from:d,to:g,insert:o.doc.slice(c,g).append(o.doc.slice(d,c))},range:EditorSelection.cursor(g)}});return s.changes.empty?!1:(e(o.update(s,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function selectedLineBlocks(o){let e=[],s=-1;for(let a of o.selection.ranges){let c=o.doc.lineAt(a.from),h=o.doc.lineAt(a.to);if(!a.empty&&a.to==h.from&&(h=o.doc.lineAt(a.to-1)),s>=c.number){let d=e[e.length-1];d.to=h.to,d.ranges.push(a)}else e.push({from:c.from,to:h.to,ranges:[a]});s=h.number+1}return e}function moveLine(o,e,s){if(o.readOnly)return!1;let a=[],c=[];for(let h of selectedLineBlocks(o)){if(s?h.to==o.doc.length:h.from==0)continue;let d=o.doc.lineAt(s?h.to+1:h.from-1),g=d.length+1;if(s){a.push({from:h.to,to:d.to},{from:h.from,insert:d.text+o.lineBreak});for(let _ of h.ranges)c.push(EditorSelection.range(Math.min(o.doc.length,_.anchor+g),Math.min(o.doc.length,_.head+g)))}else{a.push({from:d.from,to:h.from},{from:h.to,insert:o.lineBreak+d.text});for(let _ of h.ranges)c.push(EditorSelection.range(_.anchor-g,_.head-g))}}return a.length?(e(o.update({changes:a,scrollIntoView:!0,selection:EditorSelection.create(c,o.selection.mainIndex),userEvent:"move.line"})),!0):!1}const moveLineUp=({state:o,dispatch:e})=>moveLine(o,e,!1),moveLineDown=({state:o,dispatch:e})=>moveLine(o,e,!0);function copyLine(o,e,s){if(o.readOnly)return!1;let a=[];for(let c of selectedLineBlocks(o))s?a.push({from:c.from,insert:o.doc.slice(c.from,c.to)+o.lineBreak}):a.push({from:c.to,insert:o.lineBreak+o.doc.slice(c.from,c.to)});return e(o.update({changes:a,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const copyLineUp=({state:o,dispatch:e})=>copyLine(o,e,!1),copyLineDown=({state:o,dispatch:e})=>copyLine(o,e,!0),deleteLine=o=>{if(o.state.readOnly)return!1;let{state:e}=o,s=e.changes(selectedLineBlocks(e).map(({from:c,to:h})=>(c>0?c--:ho.moveVertically(c,!0)).map(s);return o.dispatch({changes:s,selection:a,scrollIntoView:!0,userEvent:"delete.line"}),!0};function isBetweenBrackets(o,e){if(/\(\)|\[\]|\{\}/.test(o.sliceDoc(e-1,e+1)))return{from:e,to:e};let s=syntaxTree(o).resolveInner(e),a=s.childBefore(e),c=s.childAfter(e),h;return a&&c&&a.to<=e&&c.from>=e&&(h=a.type.prop(NodeProp.closedBy))&&h.indexOf(c.name)>-1&&o.doc.lineAt(a.to).from==o.doc.lineAt(c.from).from?{from:a.to,to:c.from}:null}const insertNewlineAndIndent=newlineAndIndent(!1),insertBlankLine=newlineAndIndent(!0);function newlineAndIndent(o){return({state:e,dispatch:s})=>{if(e.readOnly)return!1;let a=e.changeByRange(c=>{let{from:h,to:d}=c,g=e.doc.lineAt(h),_=!o&&h==d&&isBetweenBrackets(e,h);o&&(h=d=(d<=g.to?g:e.doc.lineAt(d)).to);let b=new IndentContext(e,{simulateBreak:h,simulateDoubleBreak:!!_}),$=getIndentation(b,h);for($==null&&($=/^\s*/.exec(e.doc.lineAt(h).text)[0].length);dg.from&&h{let c=[];for(let d=a.from;d<=a.to;){let g=o.doc.lineAt(d);g.number>s&&(a.empty||a.to>g.from)&&(e(g,c,a),s=g.number),d=g.to+1}let h=o.changes(c);return{changes:c,range:EditorSelection.range(h.mapPos(a.anchor,1),h.mapPos(a.head,1))}})}const indentSelection=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let s=Object.create(null),a=new IndentContext(o,{overrideIndentation:h=>{let d=s[h];return d==null?-1:d}}),c=changeBySelectedLine(o,(h,d,g)=>{let _=getIndentation(a,h.from);if(_==null)return;/\S/.test(h.text)||(_=0);let b=/^\s*/.exec(h.text)[0],$=indentString(o,_);(b!=$||g.fromo.readOnly?!1:(e(o.update(changeBySelectedLine(o,(s,a)=>{a.push({from:s.from,insert:o.facet(indentUnit)})}),{userEvent:"input.indent"})),!0),indentLess=({state:o,dispatch:e})=>o.readOnly?!1:(e(o.update(changeBySelectedLine(o,(s,a)=>{let c=/^\s*/.exec(s.text)[0];if(!c)return;let h=countColumn(c,o.tabSize),d=0,g=indentString(o,Math.max(0,h-getIndentUnit(o)));for(;d({mac:o.key,run:o.run,shift:o.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Mod-Enter",run:insertBlankLine},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket},{key:"Mod-/",run:toggleComment},{key:"Alt-A",run:toggleBlockComment}].concat(standardKeymap),indentWithTab={key:"Tab",run:indentMore,shift:indentLess};function crelt(){var o=arguments[0];typeof o=="string"&&(o=document.createElement(o));var e=1,s=arguments[1];if(s&&typeof s=="object"&&s.nodeType==null&&!Array.isArray(s)){for(var a in s)if(Object.prototype.hasOwnProperty.call(s,a)){var c=s[a];typeof c=="string"?o.setAttribute(a,c):c!=null&&(o[a]=c)}e++}for(;eo.normalize("NFKD"):o=>o;class SearchCursor{constructor(e,s,a=0,c=e.length,h){this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(a,c),this.bufferStart=a,this.normalize=h?d=>h(basicNormalize(d)):basicNormalize,this.query=this.normalize(s)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return codePointAt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let s=fromCodePoint(e),a=this.bufferStart+this.bufferPos;this.bufferPos+=codePointSize(e);let c=this.normalize(s);for(let h=0,d=a;;h++){let g=c.charCodeAt(h),_=this.match(g,d);if(_)return this.value=_,this;if(h==c.length-1)break;d==a&&hthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let s=this.matchPos<=this.to&&this.re.exec(this.curLine);if(s){let a=this.curLineStart+s.index,c=a+s[0].length;if(this.matchPos=c+(a==c?1:0),a==this.curLine.length&&this.nextLine(),athis.value.to)return this.value={from:a,to:c,match:s},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=a||c.to<=s){let g=new FlattenedDoc(s,e.sliceString(s,a));return flattened.set(e,g),g}if(c.from==s&&c.to==a)return c;let{text:h,from:d}=c;return d>s&&(h=e.sliceString(s,d)+h,d=s),c.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,s=this.re.exec(this.flat.text);if(s&&!s[0]&&s.index==e&&(this.re.lastIndex=e+1,s=this.re.exec(this.flat.text)),s&&this.flat.tothis.flat.text.length-10&&(s=null),s){let a=this.flat.from+s.index,c=a+s[0].length;return this.value={from:a,to:c,match:s},this.matchPos=c+(a==c?1:0),this}else{if(this.flat.to==this.to)return this.done=!0,this;this.flat=FlattenedDoc.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}}typeof Symbol<"u"&&(RegExpCursor.prototype[Symbol.iterator]=MultilineRegExpCursor.prototype[Symbol.iterator]=function(){return this});function validRegExp(o){try{return new RegExp(o,baseFlags),!0}catch{return!1}}function createLineDialog(o){let e=crelt("input",{class:"cm-textfield",name:"line"}),s=crelt("form",{class:"cm-gotoLine",onkeydown:c=>{c.keyCode==27?(c.preventDefault(),o.dispatch({effects:dialogEffect.of(!1)}),o.focus()):c.keyCode==13&&(c.preventDefault(),a())},onsubmit:c=>{c.preventDefault(),a()}},crelt("label",o.state.phrase("Go to line"),": ",e)," ",crelt("button",{class:"cm-button",type:"submit"},o.state.phrase("go")));function a(){let c=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!c)return;let{state:h}=o,d=h.doc.lineAt(h.selection.main.head),[,g,_,b,$]=c,j=b?+b.slice(1):0,_e=_?+_:d.number;if(_&&$){let tt=_e/100;g&&(tt=tt*(g=="-"?-1:1)+d.number/h.doc.lines),_e=Math.round(h.doc.lines*tt)}else _&&g&&(_e=_e*(g=="-"?-1:1)+d.number);let et=h.doc.line(Math.max(1,Math.min(h.doc.lines,_e)));o.dispatch({effects:dialogEffect.of(!1),selection:EditorSelection.cursor(et.from+Math.max(0,Math.min(j,et.length))),scrollIntoView:!0}),o.focus()}return{dom:s}}const dialogEffect=StateEffect.define(),dialogField=StateField.define({create(){return!0},update(o,e){for(let s of e.effects)s.is(dialogEffect)&&(o=s.value);return o},provide:o=>showPanel.from(o,e=>e?createLineDialog:null)}),gotoLine=o=>{let e=getPanel(o,createLineDialog);if(!e){let s=[dialogEffect.of(!0)];o.state.field(dialogField,!1)==null&&s.push(StateEffect.appendConfig.of([dialogField,baseTheme$1$1])),o.dispatch({effects:s}),e=getPanel(o,createLineDialog)}return e&&e.dom.querySelector("input").focus(),!0},baseTheme$1$1=EditorView.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),defaultHighlightOptions={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},highlightConfig=Facet.define({combine(o){return combineConfig(o,defaultHighlightOptions,{highlightWordAroundCursor:(e,s)=>e||s,minSelectionLength:Math.min,maxMatches:Math.min})}});function highlightSelectionMatches(o){let e=[defaultTheme,matchHighlighter];return o&&e.push(highlightConfig.of(o)),e}const matchDeco=Decoration.mark({class:"cm-selectionMatch"}),mainMatchDeco=Decoration.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function insideWordBoundaries(o,e,s,a){return(s==0||o(e.sliceDoc(s-1,s))!=CharCategory.Word)&&(a==e.doc.length||o(e.sliceDoc(a,a+1))!=CharCategory.Word)}function insideWord(o,e,s,a){return o(e.sliceDoc(s,s+1))==CharCategory.Word&&o(e.sliceDoc(a-1,a))==CharCategory.Word}const matchHighlighter=ViewPlugin.fromClass(class{constructor(o){this.decorations=this.getDeco(o)}update(o){(o.selectionSet||o.docChanged||o.viewportChanged)&&(this.decorations=this.getDeco(o.view))}getDeco(o){let e=o.state.facet(highlightConfig),{state:s}=o,a=s.selection;if(a.ranges.length>1)return Decoration.none;let c=a.main,h,d=null;if(c.empty){if(!e.highlightWordAroundCursor)return Decoration.none;let _=s.wordAt(c.head);if(!_)return Decoration.none;d=s.charCategorizer(c.head),h=s.sliceDoc(_.from,_.to)}else{let _=c.to-c.from;if(_200)return Decoration.none;if(e.wholeWords){if(h=s.sliceDoc(c.from,c.to),d=s.charCategorizer(c.head),!(insideWordBoundaries(d,s,c.from,c.to)&&insideWord(d,s,c.from,c.to)))return Decoration.none}else if(h=s.sliceDoc(c.from,c.to).trim(),!h)return Decoration.none}let g=[];for(let _ of o.visibleRanges){let b=new SearchCursor(s.doc,h,_.from,_.to);for(;!b.next().done;){let{from:$,to:j}=b.value;if((!d||insideWordBoundaries(d,s,$,j))&&(c.empty&&$<=c.from&&j>=c.to?g.push(mainMatchDeco.range($,j)):($>=c.to||j<=c.from)&&g.push(matchDeco.range($,j)),g.length>e.maxMatches))return Decoration.none}}return Decoration.set(g)}},{decorations:o=>o.decorations}),defaultTheme=EditorView.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),selectWord=({state:o,dispatch:e})=>{let{selection:s}=o,a=EditorSelection.create(s.ranges.map(c=>o.wordAt(c.head)||EditorSelection.cursor(c.head)),s.mainIndex);return a.eq(s)?!1:(e(o.update({selection:a})),!0)};function findNextOccurrence(o,e){let{main:s,ranges:a}=o.selection,c=o.wordAt(s.head),h=c&&c.from==s.from&&c.to==s.to;for(let d=!1,g=new SearchCursor(o.doc,e,a[a.length-1].to);;)if(g.next(),g.done){if(d)return null;g=new SearchCursor(o.doc,e,0,Math.max(0,a[a.length-1].from-1)),d=!0}else{if(d&&a.some(_=>_.from==g.value.from))continue;if(h){let _=o.wordAt(g.value.from);if(!_||_.from!=g.value.from||_.to!=g.value.to)continue}return g.value}}const selectNextOccurrence=({state:o,dispatch:e})=>{let{ranges:s}=o.selection;if(s.some(h=>h.from===h.to))return selectWord({state:o,dispatch:e});let a=o.sliceDoc(s[0].from,s[0].to);if(o.selection.ranges.some(h=>o.sliceDoc(h.from,h.to)!=a))return!1;let c=findNextOccurrence(o,a);return c?(e(o.update({selection:o.selection.addRange(EditorSelection.range(c.from,c.to),!1),effects:EditorView.scrollIntoView(c.to)})),!0):!1},searchConfigFacet=Facet.define({combine(o){var e;return{top:o.reduce((s,a)=>s!=null?s:a.top,void 0)||!1,caseSensitive:o.reduce((s,a)=>s!=null?s:a.caseSensitive,void 0)||!1,createPanel:((e=o.find(s=>s.createPanel))===null||e===void 0?void 0:e.createPanel)||(s=>new SearchPanel(s))}}});class SearchQuery{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||validRegExp(this.search)),this.unquoted=e.literal?this.search:this.search.replace(/\\([nrt\\])/g,(s,a)=>a=="n"?` -`:a=="r"?"\r":a=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new RegExpQuery(this):new StringQuery(this)}getCursor(e,s=0,a=e.length){return this.regexp?regexpCursor(this,e,s,a):stringCursor(this,e,s,a)}}class QueryType{constructor(e){this.spec=e}}function stringCursor(o,e,s,a){return new SearchCursor(e,o.unquoted,s,a,o.caseSensitive?void 0:c=>c.toLowerCase())}class StringQuery extends QueryType{constructor(e){super(e)}nextMatch(e,s,a){let c=stringCursor(this.spec,e,a,e.length).nextOverlapping();return c.done&&(c=stringCursor(this.spec,e,0,s).nextOverlapping()),c.done?null:c.value}prevMatchInRange(e,s,a){for(let c=a;;){let h=Math.max(s,c-1e4-this.spec.unquoted.length),d=stringCursor(this.spec,e,h,c),g=null;for(;!d.nextOverlapping().done;)g=d.value;if(g)return g;if(h==s)return null;c-=1e4}}prevMatch(e,s,a){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,a,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,s){let a=stringCursor(this.spec,e,0,e.length),c=[];for(;!a.next().done;){if(c.length>=s)return null;c.push(a.value)}return c}highlight(e,s,a,c){let h=stringCursor(this.spec,e,Math.max(0,s-this.spec.unquoted.length),Math.min(a+this.spec.unquoted.length,e.length));for(;!h.next().done;)c(h.value.from,h.value.to)}}function regexpCursor(o,e,s,a){return new RegExpCursor(e,o.search,o.caseSensitive?void 0:{ignoreCase:!0},s,a)}class RegExpQuery extends QueryType{nextMatch(e,s,a){let c=regexpCursor(this.spec,e,a,e.length).next();return c.done&&(c=regexpCursor(this.spec,e,0,s).next()),c.done?null:c.value}prevMatchInRange(e,s,a){for(let c=1;;c++){let h=Math.max(s,a-c*1e4),d=regexpCursor(this.spec,e,h,a),g=null;for(;!d.next().done;)g=d.value;if(g&&(h==s||g.from>h+10))return g;if(h==s)return null}}prevMatch(e,s,a){return this.prevMatchInRange(e,0,s)||this.prevMatchInRange(e,a,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(s,a)=>a=="$"?"$":a=="&"?e.match[0]:a!="0"&&+a=s)return null;c.push(a.value)}return c}highlight(e,s,a,c){let h=regexpCursor(this.spec,e,Math.max(0,s-250),Math.min(a+250,e.length));for(;!h.next().done;)c(h.value.from,h.value.to)}}const setSearchQuery=StateEffect.define(),togglePanel$1=StateEffect.define(),searchState=StateField.define({create(o){return new SearchState(defaultQuery(o).create(),null)},update(o,e){for(let s of e.effects)s.is(setSearchQuery)?o=new SearchState(s.value.create(),o.panel):s.is(togglePanel$1)&&(o=new SearchState(o.query,s.value?createSearchPanel:null));return o},provide:o=>showPanel.from(o,e=>e.panel)});class SearchState{constructor(e,s){this.query=e,this.panel=s}}const matchMark=Decoration.mark({class:"cm-searchMatch"}),selectedMatchMark=Decoration.mark({class:"cm-searchMatch cm-searchMatch-selected"}),searchHighlighter=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.decorations=this.highlight(o.state.field(searchState))}update(o){let e=o.state.field(searchState);(e!=o.startState.field(searchState)||o.docChanged||o.selectionSet||o.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:o,panel:e}){if(!e||!o.spec.valid)return Decoration.none;let{view:s}=this,a=new RangeSetBuilder;for(let c=0,h=s.visibleRanges,d=h.length;ch[c+1].from-2*250;)_=h[++c].to;o.highlight(s.state.doc,g,_,(b,$)=>{let j=s.state.selection.ranges.some(_e=>_e.from==b&&_e.to==$);a.add(b,$,j?selectedMatchMark:matchMark)})}return a.finish()}},{decorations:o=>o.decorations});function searchCommand(o){return e=>{let s=e.state.field(searchState,!1);return s&&s.query.spec.valid?o(e,s):openSearchPanel(e)}}const findNext=searchCommand((o,{query:e})=>{let{to:s}=o.state.selection.main,a=e.nextMatch(o.state.doc,s,s);return a?(o.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0,effects:announceMatch(o,a),userEvent:"select.search"}),!0):!1}),findPrevious=searchCommand((o,{query:e})=>{let{state:s}=o,{from:a}=s.selection.main,c=e.prevMatch(s.doc,a,a);return c?(o.dispatch({selection:{anchor:c.from,head:c.to},scrollIntoView:!0,effects:announceMatch(o,c),userEvent:"select.search"}),!0):!1}),selectMatches=searchCommand((o,{query:e})=>{let s=e.matchAll(o.state.doc,1e3);return!s||!s.length?!1:(o.dispatch({selection:EditorSelection.create(s.map(a=>EditorSelection.range(a.from,a.to))),userEvent:"select.search.matches"}),!0)}),selectSelectionMatches=({state:o,dispatch:e})=>{let s=o.selection;if(s.ranges.length>1||s.main.empty)return!1;let{from:a,to:c}=s.main,h=[],d=0;for(let g=new SearchCursor(o.doc,o.sliceDoc(a,c));!g.next().done;){if(h.length>1e3)return!1;g.value.from==a&&(d=h.length),h.push(EditorSelection.range(g.value.from,g.value.to))}return e(o.update({selection:EditorSelection.create(h,d),userEvent:"select.search.matches"})),!0},replaceNext=searchCommand((o,{query:e})=>{let{state:s}=o,{from:a,to:c}=s.selection.main;if(s.readOnly)return!1;let h=e.nextMatch(s.doc,a,a);if(!h)return!1;let d=[],g,_,b=[];if(h.from==a&&h.to==c&&(_=s.toText(e.getReplacement(h)),d.push({from:h.from,to:h.to,insert:_}),h=e.nextMatch(s.doc,h.from,h.to),b.push(EditorView.announce.of(s.phrase("replaced match on line $",s.doc.lineAt(a).number)+"."))),h){let $=d.length==0||d[0].from>=h.to?0:h.to-h.from-_.length;g={anchor:h.from-$,head:h.to-$},b.push(announceMatch(o,h))}return o.dispatch({changes:d,selection:g,scrollIntoView:!!g,effects:b,userEvent:"input.replace"}),!0}),replaceAll=searchCommand((o,{query:e})=>{if(o.state.readOnly)return!1;let s=e.matchAll(o.state.doc,1e9).map(c=>{let{from:h,to:d}=c;return{from:h,to:d,insert:e.getReplacement(c)}});if(!s.length)return!1;let a=o.state.phrase("replaced $ matches",s.length)+".";return o.dispatch({changes:s,effects:EditorView.announce.of(a),userEvent:"input.replace.all"}),!0});function createSearchPanel(o){return o.state.facet(searchConfigFacet).createPanel(o)}function defaultQuery(o,e){var s;let a=o.selection.main,c=a.empty||a.to>a.from+100?"":o.sliceDoc(a.from,a.to),h=(s=e==null?void 0:e.caseSensitive)!==null&&s!==void 0?s:o.facet(searchConfigFacet).caseSensitive;return e&&!c?e:new SearchQuery({search:c.replace(/\n/g,"\\n"),caseSensitive:h})}const openSearchPanel=o=>{let e=o.state.field(searchState,!1);if(e&&e.panel){let s=getPanel(o,createSearchPanel);if(!s)return!1;let a=s.dom.querySelector("[main-field]");if(a&&a!=o.root.activeElement){let c=defaultQuery(o.state,e.query.spec);c.valid&&o.dispatch({effects:setSearchQuery.of(c)}),a.focus(),a.select()}}else o.dispatch({effects:[togglePanel$1.of(!0),e?setSearchQuery.of(defaultQuery(o.state,e.query.spec)):StateEffect.appendConfig.of(searchExtensions)]});return!0},closeSearchPanel=o=>{let e=o.state.field(searchState,!1);if(!e||!e.panel)return!1;let s=getPanel(o,createSearchPanel);return s&&s.dom.contains(o.root.activeElement)&&o.focus(),o.dispatch({effects:togglePanel$1.of(!1)}),!0},searchKeymap=[{key:"Mod-f",run:openSearchPanel,scope:"editor search-panel"},{key:"F3",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:findNext,shift:findPrevious,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:closeSearchPanel,scope:"editor search-panel"},{key:"Mod-Shift-l",run:selectSelectionMatches},{key:"Alt-g",run:gotoLine},{key:"Mod-d",run:selectNextOccurrence,preventDefault:!0}];class SearchPanel{constructor(e){this.view=e;let s=this.query=e.state.field(searchState).query.spec;this.commit=this.commit.bind(this),this.searchField=crelt("input",{value:s.search,placeholder:phrase(e,"Find"),"aria-label":phrase(e,"Find"),class:"cm-textfield",name:"search","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=crelt("input",{value:s.replace,placeholder:phrase(e,"Replace"),"aria-label":phrase(e,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=crelt("input",{type:"checkbox",name:"case",checked:s.caseSensitive,onchange:this.commit}),this.reField=crelt("input",{type:"checkbox",name:"re",checked:s.regexp,onchange:this.commit});function a(c,h,d){return crelt("button",{class:"cm-button",name:c,onclick:h,type:"button"},d)}this.dom=crelt("div",{onkeydown:c=>this.keydown(c),class:"cm-search"},[this.searchField,a("next",()=>findNext(e),[phrase(e,"next")]),a("prev",()=>findPrevious(e),[phrase(e,"previous")]),a("select",()=>selectMatches(e),[phrase(e,"all")]),crelt("label",null,[this.caseField,phrase(e,"match case")]),crelt("label",null,[this.reField,phrase(e,"regexp")]),...e.state.readOnly?[]:[crelt("br"),this.replaceField,a("replace",()=>replaceNext(e),[phrase(e,"replace")]),a("replaceAll",()=>replaceAll(e),[phrase(e,"replace all")]),crelt("button",{name:"close",onclick:()=>closeSearchPanel(e),"aria-label":phrase(e,"close"),type:"button"},["\xD7"])]])}commit(){let e=new SearchQuery({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:setSearchQuery.of(e)}))}keydown(e){runScopeHandlers(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?findPrevious:findNext)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),replaceNext(this.view))}update(e){for(let s of e.transactions)for(let a of s.effects)a.is(setSearchQuery)&&!a.value.eq(this.query)&&this.setQuery(a.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(searchConfigFacet).top}}function phrase(o,e){return o.state.phrase(e)}const AnnounceMargin=30,Break=/[\s\.,:;?!]/;function announceMatch(o,{from:e,to:s}){let a=o.state.doc.lineAt(e),c=o.state.doc.lineAt(s).to,h=Math.max(a.from,e-AnnounceMargin),d=Math.min(c,s+AnnounceMargin),g=o.state.sliceDoc(h,d);if(h!=a.from){for(let _=0;_g.length-AnnounceMargin;_--)if(!Break.test(g[_-1])&&Break.test(g[_])){g=g.slice(0,_);break}}return EditorView.announce.of(`${o.state.phrase("current match")}. ${g} ${o.state.phrase("on line")} ${a.number}.`)}const baseTheme$2=EditorView.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),searchExtensions=[searchState,Prec.lowest(searchHighlighter),baseTheme$2];class CompletionContext{constructor(e,s,a){this.state=e,this.pos=s,this.explicit=a,this.abortListeners=[]}tokenBefore(e){let s=syntaxTree(this.state).resolveInner(this.pos,-1);for(;s&&e.indexOf(s.name)<0;)s=s.parent;return s?{from:s.from,to:this.pos,text:this.state.sliceDoc(s.from,this.pos),type:s.type}:null}matchBefore(e){let s=this.state.doc.lineAt(this.pos),a=Math.max(s.from,this.pos-250),c=s.text.slice(a-s.from,this.pos-s.from),h=c.search(ensureAnchor(e,!1));return h<0?null:{from:a+h,to:this.pos,text:c.slice(h)}}get aborted(){return this.abortListeners==null}addEventListener(e,s){e=="abort"&&this.abortListeners&&this.abortListeners.push(s)}}function toSet(o){let e=Object.keys(o).join(""),s=/\w/.test(e);return s&&(e=e.replace(/\w/g,"")),`[${s?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(o){let e=Object.create(null),s=Object.create(null);for(let{label:c}of o){e[c[0]]=!0;for(let h=1;htypeof c=="string"?{label:c}:c),[s,a]=e.every(c=>/^\w+$/.test(c.label))?[/\w*$/,/\w+$/]:prefixMatch(e);return c=>{let h=c.matchBefore(a);return h||c.explicit?{from:h?h.from:c.pos,options:e,validFor:s}:null}}function ifNotIn(o,e){return s=>{for(let a=syntaxTree(s.state).resolveInner(s.pos,-1);a;a=a.parent)if(o.indexOf(a.name)>-1)return null;return e(s)}}class Option{constructor(e,s,a){this.completion=e,this.source=s,this.match=a}}function cur(o){return o.selection.main.head}function ensureAnchor(o,e){var s;let{source:a}=o,c=e&&a[0]!="^",h=a[a.length-1]!="$";return!c&&!h?o:new RegExp(`${c?"^":""}(?:${a})${h?"$":""}`,(s=o.flags)!==null&&s!==void 0?s:o.ignoreCase?"i":"")}function insertCompletionText(o,e,s,a){return Object.assign(Object.assign({},o.changeByRange(c=>{if(c==o.selection.main)return{changes:{from:s,to:a,insert:e},range:EditorSelection.cursor(s+e.length)};let h=a-s;return!c.empty||h&&o.sliceDoc(c.from-h,c.from)!=o.sliceDoc(s,a)?{range:c}:{changes:{from:c.from-h,to:c.from,insert:e},range:EditorSelection.cursor(c.from-h+e.length)}})),{userEvent:"input.complete"})}function applyCompletion(o,e){const s=e.completion.apply||e.completion.label;let a=e.source;typeof s=="string"?o.dispatch(insertCompletionText(o.state,s,a.from,a.to)):s(o,e.completion,a.from,a.to)}const SourceCache=new WeakMap;function asSource(o){if(!Array.isArray(o))return o;let e=SourceCache.get(o);return e||SourceCache.set(o,e=completeFromList(o)),e}class FuzzyMatcher{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let s=0;s=48&&ut<=57||ut>=97&&ut<=122?2:ut>=65&&ut<=90?1:0:(ct=fromCodePoint(ut))!=ct.toLowerCase()?1:ct!=ct.toUpperCase()?2:0;(!it||ht==1&&st||ot==0&&ht!=0)&&(s[j]==ut||a[j]==ut&&(_e=!0)?d[j++]=it:d.length&&(rt=!1)),ot=ht,it+=codePointSize(ut)}return j==_&&d[0]==0&&rt?this.result(-100+(_e?-200:0),d,e):et==_&&tt==0?[-200-e.length,0,nt]:g>-1?[-700-e.length,g,g+this.pattern.length]:et==_?[-200+-700-e.length,tt,nt]:j==_?this.result(-100+(_e?-200:0)+-700+(rt?0:-1100),d,e):s.length==2?null:this.result((c[0]?-700:0)+-200+-1100,c,e)}result(e,s,a){let c=[e-a.length],h=1;for(let d of s){let g=d+(this.astral?codePointSize(codePointAt(a,d)):1);h>1&&c[h-1]==d?c[h-1]=g:(c[h++]=d,c[h++]=g)}return c}}const completionConfig=Facet.define({combine(o){return combineConfig(o,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,s)=>e.label.localeCompare(s.label)},{defaultKeymap:(e,s)=>e&&s,closeOnBlur:(e,s)=>e&&s,icons:(e,s)=>e&&s,optionClass:(e,s)=>a=>joinClass(e(a),s(a)),addToOptions:(e,s)=>e.concat(s)})}});function joinClass(o,e){return o?e?o+" "+e:o:e}function optionContent(o){let e=o.addToOptions.slice();return o.icons&&e.push({render(s){let a=document.createElement("div");return a.classList.add("cm-completionIcon"),s.type&&a.classList.add(...s.type.split(/\s+/g).map(c=>"cm-completionIcon-"+c)),a.setAttribute("aria-hidden","true"),a},position:20}),e.push({render(s,a,c){let h=document.createElement("span");h.className="cm-completionLabel";let{label:d}=s,g=0;for(let _=1;_g&&h.appendChild(document.createTextNode(d.slice(g,b)));let j=h.appendChild(document.createElement("span"));j.appendChild(document.createTextNode(d.slice(b,$))),j.className="cm-completionMatchedText",g=$}return gs.position-a.position).map(s=>s.render)}function rangeAroundSelected(o,e,s){if(o<=s)return{from:0,to:o};if(e<0&&(e=0),e<=o>>1){let c=Math.floor(e/s);return{from:c*s,to:(c+1)*s}}let a=Math.floor((o-e)/s);return{from:o-(a+1)*s,to:o-a*s}}class CompletionTooltip{constructor(e,s){this.view=e,this.stateField=s,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:g=>this.positionInfo(g),key:this};let a=e.state.field(s),{options:c,selected:h}=a.open,d=e.state.facet(completionConfig);this.optionContent=optionContent(d),this.optionClass=d.optionClass,this.range=rangeAroundSelected(c.length,h,d.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",g=>{for(let _=g.target,b;_&&_!=this.dom;_=_.parentNode)if(_.nodeName=="LI"&&(b=/-(\d+)$/.exec(_.id))&&+b[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){e.state.field(this.stateField)!=e.startState.field(this.stateField)&&this.updateSel()}positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),s=e.open;if((s.selected=this.range.to)&&(this.range=rangeAroundSelected(s.options.length,s.selected,this.view.state.facet(completionConfig).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(s.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(s.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:a}=s.options[s.selected],{info:c}=a;if(!c)return;let h=typeof c=="string"?document.createTextNode(c):c(a);if(!h)return;"then"in h?h.then(d=>{d&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(d)}).catch(d=>logException(this.view.state,d,"completion info")):this.addInfoPane(h)}}addInfoPane(e){let s=this.info=document.createElement("div");s.className="cm-tooltip cm-completionInfo",s.appendChild(e),this.dom.appendChild(s),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let s=null;for(let a=this.list.firstChild,c=this.range.from;a;a=a.nextSibling,c++)c==e?a.hasAttribute("aria-selected")||(a.setAttribute("aria-selected","true"),s=a):a.hasAttribute("aria-selected")&&a.removeAttribute("aria-selected");return s&&scrollIntoView(this.list,s),s}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let s=this.dom.getBoundingClientRect(),a=this.info.getBoundingClientRect(),c=e.getBoundingClientRect();if(c.top>Math.min(innerHeight,s.bottom)-10||c.bottomnew CompletionTooltip(e,o)}function scrollIntoView(o,e){let s=o.getBoundingClientRect(),a=e.getBoundingClientRect();a.tops.bottom&&(o.scrollTop+=a.bottom-s.bottom)}function score(o){return(o.boost||0)*100+(o.apply?10:0)+(o.info?5:0)+(o.type?1:0)}function sortOptions(o,e){let s=[],a=0;for(let g of o)if(g.hasResult())if(g.result.filter===!1){let _=g.result.getMatch;for(let b of g.result.options){let $=[1e9-a++];if(_)for(let j of _(b))$.push(j);s.push(new Option(b,g,$))}}else{let _=new FuzzyMatcher(e.sliceDoc(g.from,g.to)),b;for(let $ of g.result.options)(b=_.match($.label))&&($.boost!=null&&(b[0]+=$.boost),s.push(new Option($,g,b)))}let c=[],h=null,d=e.facet(completionConfig).compareCompletions;for(let g of s.sort((_,b)=>b.match[0]-_.match[0]||d(_.completion,b.completion)))!h||h.label!=g.completion.label||h.detail!=g.completion.detail||h.type!=null&&g.completion.type!=null&&h.type!=g.completion.type||h.apply!=g.completion.apply?c.push(g):score(g.completion)>score(h)&&(c[c.length-1]=g),h=g.completion;return c}class CompletionDialog{constructor(e,s,a,c,h){this.options=e,this.attrs=s,this.tooltip=a,this.timestamp=c,this.selected=h}setSelected(e,s){return e==this.selected||e>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(s,e),this.tooltip,this.timestamp,e)}static build(e,s,a,c,h){let d=sortOptions(e,s);if(!d.length)return null;let g=s.facet(completionConfig).selectOnOpen?0:-1;if(c&&c.selected!=g&&c.selected!=-1){let _=c.options[c.selected].completion;for(let b=0;bb.hasResult()?Math.min(_,b.from):_,1e8),create:completionTooltip(completionState),above:h.aboveCursor},c?c.timestamp:Date.now(),g)}map(e){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}}class CompletionState{constructor(e,s,a){this.active=e,this.id=s,this.open=a}static start(){return new CompletionState(none,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:s}=e,a=s.facet(completionConfig),h=(a.override||s.languageDataAt("autocomplete",cur(s)).map(asSource)).map(g=>(this.active.find(b=>b.source==g)||new ActiveSource(g,this.active.some(b=>b.state!=0)?1:0)).update(e,a));h.length==this.active.length&&h.every((g,_)=>g==this.active[_])&&(h=this.active);let d=e.selection||h.some(g=>g.hasResult()&&e.changes.touchesRange(g.from,g.to))||!sameResults(h,this.active)?CompletionDialog.build(h,s,this.id,this.open,a):this.open&&e.docChanged?this.open.map(e.changes):this.open;!d&&h.every(g=>g.state!=1)&&h.some(g=>g.hasResult())&&(h=h.map(g=>g.hasResult()?new ActiveSource(g.source,0):g));for(let g of e.effects)g.is(setSelectedEffect)&&(d=d&&d.setSelected(g.value,this.id));return h==this.active&&d==this.open?this:new CompletionState(h,this.id,d)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:baseAttrs}}function sameResults(o,e){if(o==e)return!0;for(let s=0,a=0;;){for(;s-1&&(s["aria-activedescendant"]=o+"-"+e),s}const none=[];function getUserEvent(o){return o.isUserEvent("input.type")?"input":o.isUserEvent("delete.backward")?"delete":null}class ActiveSource{constructor(e,s,a=-1){this.source=e,this.state=s,this.explicitPos=a}hasResult(){return!1}update(e,s){let a=getUserEvent(e),c=this;a?c=c.handleUserEvent(e,a,s):e.docChanged?c=c.handleChange(e):e.selection&&c.state!=0&&(c=new ActiveSource(c.source,0));for(let h of e.effects)if(h.is(startCompletionEffect))c=new ActiveSource(c.source,1,h.value?cur(e.state):-1);else if(h.is(closeCompletionEffect))c=new ActiveSource(c.source,0);else if(h.is(setActiveEffect))for(let d of h.value)d.source==c.source&&(c=d);return c}handleUserEvent(e,s,a){return s=="delete"||!a.activateOnTyping?this.map(e.changes):new ActiveSource(this.source,1)}handleChange(e){return e.changes.touchesRange(cur(e.startState))?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ActiveSource(this.source,this.state,e.mapPos(this.explicitPos))}}class ActiveResult extends ActiveSource{constructor(e,s,a,c,h){super(e,2,s),this.result=a,this.from=c,this.to=h}hasResult(){return!0}handleUserEvent(e,s,a){var c;let h=e.changes.mapPos(this.from),d=e.changes.mapPos(this.to,1),g=cur(e.state);if((this.explicitPos<0?g<=h:gd||s=="delete"&&cur(e.startState)==this.from)return new ActiveSource(this.source,s=="input"&&a.activateOnTyping?1:0);let _=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),b;return checkValid(this.result.validFor,e.state,h,d)?new ActiveResult(this.source,_,this.result,h,d):this.result.update&&(b=this.result.update(this.result,h,d,new CompletionContext(e.state,g,_>=0)))?new ActiveResult(this.source,_,b,b.from,(c=b.to)!==null&&c!==void 0?c:cur(e.state)):new ActiveSource(this.source,1,_)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ActiveSource(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new ActiveResult(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function checkValid(o,e,s,a){if(!o)return!1;let c=e.sliceDoc(s,a);return typeof o=="function"?o(c,s,a,e):ensureAnchor(o,!0).test(c)}const startCompletionEffect=StateEffect.define(),closeCompletionEffect=StateEffect.define(),setActiveEffect=StateEffect.define({map(o,e){return o.map(s=>s.map(e))}}),setSelectedEffect=StateEffect.define(),completionState=StateField.define({create(){return CompletionState.start()},update(o,e){return o.update(e)},provide:o=>[showTooltip.from(o,e=>e.tooltip),EditorView.contentAttributes.from(o,e=>e.attrs)]}),CompletionInteractMargin=75;function moveCompletionSelection(o,e="option"){return s=>{let a=s.state.field(completionState,!1);if(!a||!a.open||Date.now()-a.open.timestamp-1?a.open.selected+c*(o?1:-1):o?0:d-1;return g<0?g=e=="page"?0:d-1:g>=d&&(g=e=="page"?d-1:0),s.dispatch({effects:setSelectedEffect.of(g)}),!0}}const acceptCompletion=o=>{let e=o.state.field(completionState,!1);return o.state.readOnly||!e||!e.open||Date.now()-e.open.timestampo.state.field(completionState,!1)?(o.dispatch({effects:startCompletionEffect.of(!0)}),!0):!1,closeCompletion=o=>{let e=o.state.field(completionState,!1);return!e||!e.active.some(s=>s.state!=0)?!1:(o.dispatch({effects:closeCompletionEffect.of(null)}),!0)};class RunningQuery{constructor(e,s){this.active=e,this.context=s,this.time=Date.now(),this.updates=[],this.done=void 0}}const DebounceTime=50,MaxUpdateCount=50,MinAbortTime=1e3,completionPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of o.state.field(completionState).active)e.state==1&&this.startQuery(e)}update(o){let e=o.state.field(completionState);if(!o.selectionSet&&!o.docChanged&&o.startState.field(completionState)==e)return;let s=o.transactions.some(a=>(a.selection||a.docChanged)&&!getUserEvent(a));for(let a=0;aMaxUpdateCount&&Date.now()-c.time>MinAbortTime){for(let h of c.context.abortListeners)try{h()}catch(d){logException(this.view.state,d)}c.context.abortListeners=null,this.running.splice(a--,1)}else c.updates.push(...o.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(a=>a.state==1&&!this.running.some(c=>c.active.source==a.source))?setTimeout(()=>this.startUpdate(),DebounceTime):-1,this.composing!=0)for(let a of o.transactions)getUserEvent(a)=="input"?this.composing=2:this.composing==2&&a.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:o}=this.view,e=o.field(completionState);for(let s of e.active)s.state==1&&!this.running.some(a=>a.active.source==s.source)&&this.startQuery(s)}startQuery(o){let{state:e}=this.view,s=cur(e),a=new CompletionContext(e,s,o.explicitPos==s),c=new RunningQuery(o,a);this.running.push(c),Promise.resolve(o.source(a)).then(h=>{c.context.aborted||(c.done=h||null,this.scheduleAccept())},h=>{this.view.dispatch({effects:closeCompletionEffect.of(null)}),logException(this.view.state,h)})}scheduleAccept(){this.running.every(o=>o.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),DebounceTime))}accept(){var o;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],s=this.view.state.facet(completionConfig);for(let a=0;ad.source==c.active.source);if(h&&h.state==1)if(c.done==null){let d=new ActiveSource(c.active.source,0);for(let g of c.updates)d=d.update(g,s);d.state!=1&&e.push(d)}else this.startQuery(h)}e.length&&this.view.dispatch({effects:setActiveEffect.of(e)})}},{eventHandlers:{blur(){let o=this.view.state.field(completionState,!1);o&&o.tooltip&&this.view.state.facet(completionConfig).closeOnBlur&&this.view.dispatch({effects:closeCompletionEffect.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(!1)}),20),this.composing=0}}}),baseTheme$1=EditorView.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"300px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,s,a,c){this.field=e,this.line=s,this.from=a,this.to=c}}class FieldRange{constructor(e,s,a){this.field=e,this.from=s,this.to=a}map(e){let s=e.mapPos(this.from,-1,MapMode.TrackDel),a=e.mapPos(this.to,1,MapMode.TrackDel);return s==null||a==null?null:new FieldRange(this.field,s,a)}}class Snippet{constructor(e,s){this.lines=e,this.fieldPositions=s}instantiate(e,s){let a=[],c=[s],h=e.doc.lineAt(s),d=/^\s*/.exec(h.text)[0];for(let _ of this.lines){if(a.length){let b=d,$=/^\t*/.exec(_)[0].length;for(let j=0;j<$;j++)b+=e.facet(indentUnit);c.push(s+b.length-$),_=b+_.slice($)}a.push(_),s+=_.length+1}let g=this.fieldPositions.map(_=>new FieldRange(_.field,c[_.line]+_.from,c[_.line]+_.to));return{text:a,ranges:g}}static parse(e){let s=[],a=[],c=[],h;for(let d of e.split(/\r\n?|\n/)){for(;h=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(d);){let g=h[1]?+h[1]:null,_=h[2]||h[3]||"",b=-1;for(let $=0;$=b&&j.field++}c.push(new FieldPos(b,a.length,h.index,h.index+_.length)),d=d.slice(0,h.index)+_+d.slice(h.index+h[0].length)}for(let g;g=/([$#])\\{/.exec(d);){d=d.slice(0,g.index)+g[1]+"{"+d.slice(g.index+g[0].length);for(let _ of c)_.line==a.length&&_.from>g.index&&(_.from--,_.to--)}a.push(d)}return new Snippet(a,c)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let o=document.createElement("span");return o.className="cm-snippetFieldPosition",o}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,s){this.ranges=e,this.active=s,this.deco=Decoration.set(e.map(a=>(a.from==a.to?fieldMarker:fieldRange).range(a.from,a.to)))}map(e){let s=[];for(let a of this.ranges){let c=a.map(e);if(!c)return null;s.push(c)}return new ActiveSnippet(s,this.active)}selectionInsideField(e){return e.ranges.every(s=>this.ranges.some(a=>a.field==this.active&&a.from<=s.from&&a.to>=s.to))}}const setActive=StateEffect.define({map(o,e){return o&&o.map(e)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(o,e){for(let s of e.effects){if(s.is(setActive))return s.value;if(s.is(moveToField)&&o)return new ActiveSnippet(o.ranges,s.value)}return o&&e.docChanged&&(o=o.map(e.changes)),o&&e.selection&&!o.selectionInsideField(e.selection)&&(o=null),o},provide:o=>EditorView.decorations.from(o,e=>e?e.deco:Decoration.none)});function fieldSelection(o,e){return EditorSelection.create(o.filter(s=>s.field==e).map(s=>EditorSelection.range(s.from,s.to)))}function snippet(o){let e=Snippet.parse(o);return(s,a,c,h)=>{let{text:d,ranges:g}=e.instantiate(s.state,c),_={changes:{from:c,to:h,insert:Text.of(d)},scrollIntoView:!0};if(g.length&&(_.selection=fieldSelection(g,0)),g.length>1){let b=new ActiveSnippet(g,0),$=_.effects=[setActive.of(b)];s.state.field(snippetState,!1)===void 0&&$.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme$1]))}s.dispatch(s.state.update(_))}}function moveField(o){return({state:e,dispatch:s})=>{let a=e.field(snippetState,!1);if(!a||o<0&&a.active==0)return!1;let c=a.active+o,h=o>0&&!a.ranges.some(d=>d.field==c+o);return s(e.update({selection:fieldSelection(a.ranges,c),effects:setActive.of(h?null:new ActiveSnippet(a.ranges,c))})),!0}}const clearSnippet=({state:o,dispatch:e})=>o.field(snippetState,!1)?(e(o.update({effects:setActive.of(null)})),!0):!1,nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(o){return o.length?o[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.highest(keymap.compute([snippetKeymap],o=>o.facet(snippetKeymap)));function snippetCompletion(o,e){return Object.assign(Object.assign({},e),{apply:snippet(o)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(o,e){let s=e.state.field(snippetState,!1),a;if(!s||(a=e.posAtCoords({x:o.clientX,y:o.clientY}))==null)return!1;let c=s.ranges.find(h=>h.from<=a&&h.to>=a);return!c||c.field==s.active?!1:(e.dispatch({selection:fieldSelection(s.ranges,c.field),effects:setActive.of(s.ranges.some(h=>h.field>c.field)?new ActiveSnippet(s.ranges,c.field):null)}),!0)}}),defaults={brackets:["(","[","{","'",'"'],before:")]}:;>"},closeBracketEffect=StateEffect.define({map(o,e){let s=e.mapPos(o,-1,MapMode.TrackAfter);return s==null?void 0:s}}),skipBracketEffect=StateEffect.define({map(o,e){return e.mapPos(o)}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(o,e){if(e.selection){let s=e.state.doc.lineAt(e.selection.main.head).from,a=e.startState.doc.lineAt(e.startState.selection.main.head).from;s!=e.changes.mapPos(a,-1)&&(o=RangeSet.empty)}o=o.map(e.changes);for(let s of e.effects)s.is(closeBracketEffect)?o=o.update({add:[closedBracket.range(s.value,s.value+1)]}):s.is(skipBracketEffect)&&(o=o.update({filter:a=>a!=s.value}));return o}});function closeBrackets(){return[inputHandler,bracketState]}const definedClosing="()[]{}<>";function closing(o){for(let e=0;e{if((android$1?o.composing:o.compositionStarted)||o.state.readOnly)return!1;let c=o.state.selection.main;if(a.length>2||a.length==2&&codePointSize(codePointAt(a,0))==1||e!=c.from||s!=c.to)return!1;let h=insertBracket(o.state,a);return h?(o.dispatch(h),!0):!1}),deleteBracketPair=({state:o,dispatch:e})=>{if(o.readOnly)return!1;let a=config(o,o.selection.main.head).brackets||defaults.brackets,c=null,h=o.changeByRange(d=>{if(d.empty){let g=prevChar(o.doc,d.head);for(let _ of a)if(_==g&&nextChar(o.doc,d.head)==closing(codePointAt(_,0)))return{changes:{from:d.head-_.length,to:d.head+_.length},range:EditorSelection.cursor(d.head-_.length),userEvent:"delete.backward"}}return{range:c=d}});return c||e(o.update(h,{scrollIntoView:!0})),!c},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(o,e){let s=config(o,o.selection.main.head),a=s.brackets||defaults.brackets;for(let c of a){let h=closing(codePointAt(c,0));if(e==c)return h==c?handleSame(o,c,a.indexOf(c+c+c)>-1):handleOpen(o,c,h,s.before||defaults.before);if(e==h&&closedBracketAt(o,o.selection.main.from))return handleClose(o,c,h)}return null}function closedBracketAt(o,e){let s=!1;return o.field(bracketState).between(0,o.doc.length,a=>{a==e&&(s=!0)}),s}function nextChar(o,e){let s=o.sliceString(e,e+2);return s.slice(0,codePointSize(codePointAt(s,0)))}function prevChar(o,e){let s=o.sliceString(e-2,e);return codePointSize(codePointAt(s,0))==s.length?s:s.slice(1)}function handleOpen(o,e,s,a){let c=null,h=o.changeByRange(d=>{if(!d.empty)return{changes:[{insert:e,from:d.from},{insert:s,from:d.to}],effects:closeBracketEffect.of(d.to+e.length),range:EditorSelection.range(d.anchor+e.length,d.head+e.length)};let g=nextChar(o.doc,d.head);return!g||/\s/.test(g)||a.indexOf(g)>-1?{changes:{insert:e+s,from:d.head},effects:closeBracketEffect.of(d.head+e.length),range:EditorSelection.cursor(d.head+e.length)}:{range:c=d}});return c?null:o.update(h,{scrollIntoView:!0,userEvent:"input.type"})}function handleClose(o,e,s){let a=null,c=o.selection.ranges.map(h=>h.empty&&nextChar(o.doc,h.head)==s?EditorSelection.cursor(h.head+s.length):a=h);return a?null:o.update({selection:EditorSelection.create(c,o.selection.mainIndex),scrollIntoView:!0,effects:o.selection.ranges.map(({from:h})=>skipBracketEffect.of(h))})}function handleSame(o,e,s){let a=null,c=o.changeByRange(h=>{if(!h.empty)return{changes:[{insert:e,from:h.from},{insert:e,from:h.to}],effects:closeBracketEffect.of(h.to+e.length),range:EditorSelection.range(h.anchor+e.length,h.head+e.length)};let d=h.head,g=nextChar(o.doc,d);if(g==e){if(nodeStart(o,d))return{changes:{insert:e+e,from:d},effects:closeBracketEffect.of(d+e.length),range:EditorSelection.cursor(d+e.length)};if(closedBracketAt(o,d)){let _=s&&o.sliceDoc(d,d+e.length*3)==e+e+e;return{range:EditorSelection.cursor(d+e.length*(_?3:1)),effects:skipBracketEffect.of(d)}}}else{if(s&&o.sliceDoc(d-2*e.length,d)==e+e&&nodeStart(o,d-2*e.length))return{changes:{insert:e+e+e+e,from:d},effects:closeBracketEffect.of(d+e.length),range:EditorSelection.cursor(d+e.length)};if(o.charCategorizer(d)(g)!=CharCategory.Word){let _=o.sliceDoc(d-1,d);if(_!=e&&o.charCategorizer(d)(_)!=CharCategory.Word&&!probablyInString(o,d,e))return{changes:{insert:e+e,from:d},effects:closeBracketEffect.of(d+e.length),range:EditorSelection.cursor(d+e.length)}}}return{range:a=h}});return a?null:o.update(c,{scrollIntoView:!0,userEvent:"input.type"})}function nodeStart(o,e){let s=syntaxTree(o).resolveInner(e+1);return s.parent&&s.from==e}function probablyInString(o,e,s){let a=syntaxTree(o).resolveInner(e,-1);for(let c=0;c<5;c++){if(o.sliceDoc(a.from,a.from+s.length)==s){let d=a.firstChild;for(;d&&d.from==a.from&&d.to-d.from>s.length;){if(o.sliceDoc(d.to-s.length,d.to)==s)return!1;d=d.firstChild}return!0}let h=a.to==e&&a.parent;if(!h)break;a=h}return!1}function autocompletion(o={}){return[completionState,completionConfig.of(o),completionPlugin,completionKeymapExt,baseTheme$1]}const completionKeymap=[{key:"Ctrl-Space",run:startCompletion},{key:"Escape",run:closeCompletion},{key:"ArrowDown",run:moveCompletionSelection(!0)},{key:"ArrowUp",run:moveCompletionSelection(!1)},{key:"PageDown",run:moveCompletionSelection(!0,"page")},{key:"PageUp",run:moveCompletionSelection(!1,"page")},{key:"Enter",run:acceptCompletion}],completionKeymapExt=Prec.highest(keymap.computeN([completionConfig],o=>o.facet(completionConfig).defaultKeymap?[completionKeymap]:[]));class SelectedDiagnostic{constructor(e,s,a){this.from=e,this.to=s,this.diagnostic=a}}class LintState{constructor(e,s,a){this.diagnostics=e,this.panel=s,this.selected=a}static init(e,s,a){let c=e,h=a.facet(lintConfig).markerFilter;h&&(c=h(c));let d=Decoration.set(c.map(g=>g.from==g.to||g.from==g.to-1&&a.doc.lineAt(g.from).to==g.from?Decoration.widget({widget:new DiagnosticWidget(g),diagnostic:g}).range(g.from):Decoration.mark({attributes:{class:"cm-lintRange cm-lintRange-"+g.severity},diagnostic:g}).range(g.from,g.to)),!0);return new LintState(d,s,findDiagnostic(d))}}function findDiagnostic(o,e=null,s=0){let a=null;return o.between(s,1e9,(c,h,{spec:d})=>{if(!(e&&d.diagnostic!=e))return a=new SelectedDiagnostic(c,h,d.diagnostic),!1}),a}function hideTooltip(o,e){return!!(o.effects.some(s=>s.is(setDiagnosticsEffect))||o.changes.touchesRange(e.pos))}function maybeEnableLint(o,e){return o.field(lintState,!1)?e:e.concat(StateEffect.appendConfig.of([lintState,EditorView.decorations.compute([lintState],s=>{let{selected:a,panel:c}=s.field(lintState);return!a||!c||a.from==a.to?Decoration.none:Decoration.set([activeMark.range(a.from,a.to)])}),hoverTooltip(lintTooltip,{hideOn:hideTooltip}),baseTheme]))}function setDiagnostics(o,e){return{effects:maybeEnableLint(o,[setDiagnosticsEffect.of(e)])}}const setDiagnosticsEffect=StateEffect.define(),togglePanel=StateEffect.define(),movePanelSelection=StateEffect.define(),lintState=StateField.define({create(){return new LintState(Decoration.none,null,null)},update(o,e){if(e.docChanged){let s=o.diagnostics.map(e.changes),a=null;if(o.selected){let c=e.changes.mapPos(o.selected.from,1);a=findDiagnostic(s,o.selected.diagnostic,c)||findDiagnostic(s,null,c)}o=new LintState(s,o.panel,a)}for(let s of e.effects)s.is(setDiagnosticsEffect)?o=LintState.init(s.value,o.panel,e.state):s.is(togglePanel)?o=new LintState(o.diagnostics,s.value?LintPanel.open:null,o.selected):s.is(movePanelSelection)&&(o=new LintState(o.diagnostics,o.panel,s.value));return o},provide:o=>[showPanel.from(o,e=>e.panel),EditorView.decorations.from(o,e=>e.diagnostics)]}),activeMark=Decoration.mark({class:"cm-lintRange cm-lintRange-active"});function lintTooltip(o,e,s){let{diagnostics:a}=o.state.field(lintState),c=[],h=2e8,d=0;a.between(e-(s<0?1:0),e+(s>0?1:0),(_,b,{spec:$})=>{e>=_&&e<=b&&(_==b||(e>_||s>0)&&(erenderDiagnostic(o,s,!1)))}const openLintPanel=o=>{let e=o.state.field(lintState,!1);(!e||!e.panel)&&o.dispatch({effects:maybeEnableLint(o.state,[togglePanel.of(!0)])});let s=getPanel(o,LintPanel.open);return s&&s.dom.querySelector(".cm-panel-lint ul").focus(),!0},closeLintPanel=o=>{let e=o.state.field(lintState,!1);return!e||!e.panel?!1:(o.dispatch({effects:togglePanel.of(!1)}),!0)},nextDiagnostic=o=>{let e=o.state.field(lintState,!1);if(!e)return!1;let s=o.state.selection.main,a=e.diagnostics.iter(s.to+1);return!a.value&&(a=e.diagnostics.iter(0),!a.value||a.from==s.from&&a.to==s.to)?!1:(o.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0}),!0)},lintKeymap=[{key:"Mod-Shift-m",run:openLintPanel},{key:"F8",run:nextDiagnostic}],lintPlugin=ViewPlugin.fromClass(class{constructor(o){this.view=o,this.timeout=-1,this.set=!0;let{delay:e}=o.state.facet(lintConfig);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){let o=Date.now();if(oPromise.resolve(a(this.view)))).then(a=>{let c=a.reduce((h,d)=>h.concat(d));this.view.state.doc==e.doc&&this.view.dispatch(setDiagnostics(this.view.state,c))},a=>{logException(this.view.state,a)})}}update(o){let e=o.state.facet(lintConfig);(o.docChanged||e!=o.startState.facet(lintConfig))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),lintConfig=Facet.define({combine(o){return Object.assign({sources:o.map(e=>e.source)},combineConfig(o.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null}))},enables:lintPlugin});function assignKeys(o){let e=[];if(o)e:for(let{name:s}of o){for(let a=0;ah.toLowerCase()==c.toLowerCase())){e.push(c);continue e}}e.push("")}return e}function renderDiagnostic(o,e,s){var a;let c=s?assignKeys(e.actions):[];return crelt("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},crelt("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(a=e.actions)===null||a===void 0?void 0:a.map((h,d)=>{let g=j=>{j.preventDefault();let _e=findDiagnostic(o.state.field(lintState).diagnostics,e);_e&&h.apply(o,_e.from,_e.to)},{name:_}=h,b=c[d]?_.indexOf(c[d]):-1,$=b<0?_:[_.slice(0,b),crelt("u",_.slice(b,b+1)),_.slice(b+1)];return crelt("button",{type:"button",class:"cm-diagnosticAction",onclick:g,onmousedown:g,"aria-label":` Action: ${_}${b<0?"":` (access key "${c[d]})"`}.`},$)}),e.source&&crelt("div",{class:"cm-diagnosticSource"},e.source))}class DiagnosticWidget extends WidgetType{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return crelt("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class PanelItem{constructor(e,s){this.diagnostic=s,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=renderDiagnostic(e,s,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class LintPanel{constructor(e){this.view=e,this.items=[];let s=c=>{if(c.keyCode==27)closeLintPanel(this.view),this.view.focus();else if(c.keyCode==38||c.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(c.keyCode==40||c.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(c.keyCode==36)this.moveSelection(0);else if(c.keyCode==35)this.moveSelection(this.items.length-1);else if(c.keyCode==13)this.view.focus();else if(c.keyCode>=65&&c.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:h}=this.items[this.selectedIndex],d=assignKeys(h.actions);for(let g=0;g{for(let h=0;hcloseLintPanel(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(lintState).selected;if(!e)return-1;for(let s=0;s{let b=-1,$;for(let j=a;ja&&(this.items.splice(a,b-a),c=!0)),s&&$.diagnostic==s.diagnostic?$.dom.hasAttribute("aria-selected")||($.dom.setAttribute("aria-selected","true"),h=$):$.dom.hasAttribute("aria-selected")&&$.dom.removeAttribute("aria-selected"),a++});a({sel:h.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:d,panel:g})=>{d.topg.bottom&&(this.list.scrollTop+=d.bottom-g.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),c&&this.sync()}sync(){let e=this.list.firstChild;function s(){let a=e;e=a.nextSibling,a.remove()}for(let a of this.items)if(a.dom.parentNode==this.list){for(;e!=a.dom;)s();e=a.dom.nextSibling}else this.list.insertBefore(a.dom,e);for(;e;)s()}moveSelection(e){if(this.selectedIndex<0)return;let s=this.view.state.field(lintState),a=findDiagnostic(s.diagnostics,this.items[e].diagnostic);!a||this.view.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0,effects:movePanelSelection.of(a)})}static open(e){return new LintPanel(e)}}function svg(o,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(o)}')`}function underline(o){return svg(``,'width="6" height="3"')}const baseTheme=EditorView.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:underline("#d11")},".cm-lintRange-warning":{backgroundImage:underline("orange")},".cm-lintRange-info":{backgroundImage:underline("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});var basicSetup=function o(e){e===void 0&&(e={});var s=[];e.closeBracketsKeymap!==!1&&(s=s.concat(closeBracketsKeymap)),e.defaultKeymap!==!1&&(s=s.concat(defaultKeymap)),e.searchKeymap!==!1&&(s=s.concat(searchKeymap)),e.historyKeymap!==!1&&(s=s.concat(historyKeymap)),e.foldKeymap!==!1&&(s=s.concat(foldKeymap)),e.completionKeymap!==!1&&(s=s.concat(completionKeymap)),e.lintKeymap!==!1&&(s=s.concat(lintKeymap));var a=[];return e.lineNumbers!==!1&&a.push(lineNumbers()),e.highlightActiveLineGutter!==!1&&a.push(highlightActiveLineGutter()),e.highlightSpecialChars!==!1&&a.push(highlightSpecialChars()),e.history!==!1&&a.push(history()),e.foldGutter!==!1&&a.push(foldGutter()),e.drawSelection!==!1&&a.push(drawSelection()),e.dropCursor!==!1&&a.push(dropCursor()),e.allowMultipleSelections!==!1&&a.push(EditorState.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&a.push(indentOnInput()),e.syntaxHighlighting!==!1&&a.push(syntaxHighlighting(defaultHighlightStyle,{fallback:!0})),e.bracketMatching!==!1&&a.push(bracketMatching()),e.closeBrackets!==!1&&a.push(closeBrackets()),e.autocompletion!==!1&&a.push(autocompletion()),e.rectangularSelection!==!1&&a.push(rectangularSelection()),e.crosshairCursor!==!1&&a.push(crosshairCursor()),e.highlightActiveLine!==!1&&a.push(highlightActiveLine()),e.highlightSelectionMatches!==!1&&a.push(highlightSelectionMatches()),a.concat([keymap.of(s.flat())]).filter(Boolean)};const chalky="#e5c07b",coral="#e06c75",cyan="#56b6c2",invalid="#ffffff",ivory="#abb2bf",stone="#7d8799",malibu="#61afef",sage="#98c379",whiskey="#d19a66",violet="#c678dd",darkBackground="#21252b",highlightBackground="#2c313a",background="#282c34",tooltipBackground="#353a42",selection="#3E4451",cursor="#528bff",oneDarkTheme=EditorView.theme({"&":{color:ivory,backgroundColor:background},".cm-content":{caretColor:cursor},".cm-cursor, .cm-dropCursor":{borderLeftColor:cursor},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:selection},".cm-panels":{backgroundColor:darkBackground,color:ivory},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:highlightBackground},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{backgroundColor:background,color:stone,border:"none"},".cm-activeLineGutter":{backgroundColor:highlightBackground},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:tooltipBackground},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:highlightBackground,color:ivory}}},{dark:!0}),oneDarkHighlightStyle=HighlightStyle.define([{tag:tags.keyword,color:violet},{tag:[tags.name,tags.deleted,tags.character,tags.propertyName,tags.macroName],color:coral},{tag:[tags.function(tags.variableName),tags.labelName],color:malibu},{tag:[tags.color,tags.constant(tags.name),tags.standard(tags.name)],color:whiskey},{tag:[tags.definition(tags.name),tags.separator],color:ivory},{tag:[tags.typeName,tags.className,tags.number,tags.changed,tags.annotation,tags.modifier,tags.self,tags.namespace],color:chalky},{tag:[tags.operator,tags.operatorKeyword,tags.url,tags.escape,tags.regexp,tags.link,tags.special(tags.string)],color:cyan},{tag:[tags.meta,tags.comment],color:stone},{tag:tags.strong,fontWeight:"bold"},{tag:tags.emphasis,fontStyle:"italic"},{tag:tags.strikethrough,textDecoration:"line-through"},{tag:tags.link,color:stone,textDecoration:"underline"},{tag:tags.heading,fontWeight:"bold",color:coral},{tag:[tags.atom,tags.bool,tags.special(tags.variableName)],color:whiskey},{tag:[tags.processingInstruction,tags.string,tags.inserted],color:sage},{tag:tags.invalid,color:invalid}]),oneDark=[oneDarkTheme,syntaxHighlighting(oneDarkHighlightStyle)];var getStatistics=o=>({line:o.state.doc.lineAt(o.state.selection.main.from),lineCount:o.state.doc.lines,lineBreak:o.state.lineBreak,length:o.state.doc.length,readOnly:o.state.readOnly,tabSize:o.state.tabSize,selection:o.state.selection,selectionAsSingle:o.state.selection.asSingle().main,ranges:o.state.selection.ranges,selectionCode:o.state.sliceDoc(o.state.selection.main.from,o.state.selection.main.to),selections:o.state.selection.ranges.map(e=>o.state.sliceDoc(e.from,e.to)),selectedText:o.state.selection.ranges.some(e=>!e.empty)});function useCodeMirror(o){var{value:e,selection:s,onChange:a,onStatistics:c,onCreateEditor:h,onUpdate:d,extensions:g=[],autoFocus:_,theme:b="light",height:$="",minHeight:j="",maxHeight:_e="",placeholder:et="",width:tt="",minWidth:nt="",maxWidth:st="",editable:rt=!0,readOnly:it=!1,indentWithTab:at=!0,basicSetup:ot=!0,root:ut}=o,[ct,ht]=react.exports.useState(),[lt,pt]=react.exports.useState(),[ft,gt]=react.exports.useState(),yt=EditorView.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),mt=EditorView.theme({"&":{height:$,minHeight:j,maxHeight:_e,width:tt,minWidth:nt,maxWidth:st}}),Et=EditorView.updateListener.of(St=>{if(St.docChanged&&typeof a=="function"){var At=St.state.doc,dt=At.toString();a(dt,St)}c&&c(getStatistics(St))}),Ot=[Et,mt];switch(at&&Ot.unshift(keymap.of([indentWithTab])),ot&&(typeof ot=="boolean"?Ot.unshift(basicSetup()):Ot.unshift(basicSetup(ot))),et&&Ot.unshift(placeholder(et)),b){case"light":Ot.push(yt);break;case"dark":Ot.push(oneDark);break;default:Ot.push(b);break}return rt===!1&&Ot.push(EditorView.editable.of(!1)),it&&Ot.push(EditorState.readOnly.of(!0)),d&&typeof d=="function"&&Ot.push(EditorView.updateListener.of(d)),Ot=Ot.concat(g),react.exports.useEffect(()=>{if(ct&&!ft){var St=EditorState.create({doc:e,selection:s,extensions:Ot});if(gt(St),!lt){var At=new EditorView({state:St,parent:ct,root:ut});pt(At),h&&h(At,St)}}return()=>{lt&&(gt(void 0),pt(void 0))}},[ct,ft]),react.exports.useEffect(()=>ht(o.container),[o.container]),react.exports.useEffect(()=>()=>{lt&&(lt.destroy(),pt(void 0))},[lt]),react.exports.useEffect(()=>{_&<&<.focus()},[_,lt]),react.exports.useEffect(()=>{lt&<.dispatch({effects:StateEffect.reconfigure.of(Ot)})},[b,g,$,j,_e,tt,nt,st,et,rt,it,at,ot,a,d]),react.exports.useEffect(()=>{var St=lt?lt.state.doc.toString():"";lt&&e!==St&<.dispatch({changes:{from:0,to:St.length,insert:e||""}})},[e,lt]),{state:ft,setState:gt,view:lt,setView:pt,container:ct,setContainer:ht}}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var f=react.exports,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(o,e,s){var a,c={},h=null,d=null;s!==void 0&&(h=""+s),e.key!==void 0&&(h=""+e.key),e.ref!==void 0&&(d=e.ref);for(a in e)m.call(e,a)&&!p.hasOwnProperty(a)&&(c[a]=e[a]);if(o&&o.defaultProps)for(a in e=o.defaultProps,e)c[a]===void 0&&(c[a]=e[a]);return{$$typeof:k,type:o,key:h,ref:d,props:c,_owner:n.current}}reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;(function(o){o.exports=reactJsxRuntime_production_min})(jsxRuntime);const Fragment=jsxRuntime.exports.Fragment,jsx=jsxRuntime.exports.jsx,jsxs=jsxRuntime.exports.jsxs;var _excluded=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root"],ReactCodeMirror=react.exports.forwardRef((o,e)=>{var{className:s,value:a="",selection:c,extensions:h=[],onChange:d,onStatistics:g,onCreateEditor:_,onUpdate:b,autoFocus:$,theme:j="light",height:_e,minHeight:et,maxHeight:tt,width:nt,minWidth:st,maxWidth:rt,basicSetup:it,placeholder:at,indentWithTab:ot,editable:ut,readOnly:ct,root:ht}=o,lt=_objectWithoutPropertiesLoose(o,_excluded),pt=react.exports.useRef(null),{state:ft,view:gt,container:yt,setContainer:mt}=useCodeMirror({container:pt.current,root:ht,value:a,autoFocus:$,theme:j,height:_e,minHeight:et,maxHeight:tt,width:nt,minWidth:st,maxWidth:rt,basicSetup:it,placeholder:at,indentWithTab:ot,editable:ut,readOnly:ct,selection:c,onChange:d,onStatistics:g,onCreateEditor:_,onUpdate:b,extensions:h});if(react.exports.useImperativeHandle(e,()=>({editor:pt.current,state:ft,view:gt}),[pt,yt,ft,gt]),typeof a!="string")throw new Error("value must be typeof string but got "+typeof a);var Et=typeof j=="string"?"cm-theme-"+j:"cm-theme";return jsx("div",_extends({ref:pt,className:""+Et+(s?" "+s:"")},lt))});ReactCodeMirror.displayName="CodeMirror";class Stack{constructor(e,s,a,c,h,d,g,_,b,$=0,j){this.p=e,this.stack=s,this.state=a,this.reducePos=c,this.pos=h,this.score=d,this.buffer=g,this.bufferBase=_,this.curContext=b,this.lookAhead=$,this.parent=j}toString(){return`[${this.stack.filter((e,s)=>s%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,s,a=0){let c=e.parser.context;return new Stack(e,[],s,a,a,0,[],0,c?new StackContext(c,c.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,s){this.stack.push(this.state,s,this.bufferBase+this.buffer.length),this.state=e}reduce(e){let s=e>>19,a=e&65535,{parser:c}=this.p,h=c.dynamicPrecedence(a);if(h&&(this.score+=h),s==0){this.pushState(c.getGoto(this.state,a,!0),this.reducePos),ad;)this.stack.pop();this.reduceContext(a,g)}storeNode(e,s,a,c=4,h=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&d.buffer[g-4]==0&&d.buffer[g-1]>-1){if(s==a)return;if(d.buffer[g-2]>=s){d.buffer[g-2]=a;return}}}if(!h||this.pos==a)this.buffer.push(e,s,a,c);else{let d=this.buffer.length;if(d>0&&this.buffer[d-4]!=0)for(;d>0&&this.buffer[d-2]>a;)this.buffer[d]=this.buffer[d-4],this.buffer[d+1]=this.buffer[d-3],this.buffer[d+2]=this.buffer[d-2],this.buffer[d+3]=this.buffer[d-1],d-=4,c>4&&(c-=4);this.buffer[d]=e,this.buffer[d+1]=s,this.buffer[d+2]=a,this.buffer[d+3]=c}}shift(e,s,a){let c=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let h=e,{parser:d}=this.p;(a>this.pos||s<=d.maxNode)&&(this.pos=a,d.stateFlag(h,1)||(this.reducePos=a)),this.pushState(h,c),this.shiftContext(s,c),s<=d.maxNode&&this.buffer.push(s,c,a,4)}else this.pos=a,this.shiftContext(s,c),s<=this.p.parser.maxNode&&this.buffer.push(s,c,a,4)}apply(e,s,a){e&65536?this.reduce(e):this.shift(e,s,a)}useNode(e,s){let a=this.p.reused.length-1;(a<0||this.p.reused[a]!=e)&&(this.p.reused.push(e),a++);let c=this.pos;this.reducePos=this.pos=c+e.length,this.pushState(s,c),this.buffer.push(a,c,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,s=e.buffer.length;for(;s>0&&e.buffer[s-2]>e.reducePos;)s-=4;let a=e.buffer.slice(s),c=e.bufferBase+s;for(;e&&c==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,a,c,this.curContext,this.lookAhead,e)}recoverByDelete(e,s){let a=e<=this.p.parser.maxNode;a&&this.storeNode(e,this.pos,s,4),this.storeNode(0,this.pos,s,a?8:4),this.pos=this.reducePos=s,this.score-=190}canShift(e){for(let s=new SimulatedStack(this);;){let a=this.p.parser.stateSlot(s.state,4)||this.p.parser.hasAction(s.state,e);if((a&65536)==0)return!0;if(a==0)return!1;s.reduce(a)}}recoverByInsert(e){if(this.stack.length>=300)return[];let s=this.p.parser.nextStates(this.state);if(s.length>4<<1||this.stack.length>=120){let c=[];for(let h=0,d;h_&1&&g==d)||c.push(s[h],d)}s=c}let a=[];for(let c=0;c>19,c=e&65535,h=this.stack.length-a*3;if(h<0||s.getGoto(this.stack[h],c,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let s=0;sthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class StackContext{constructor(e,s){this.tracker=e,this.context=s,this.hash=e.strict?e.hash(s):0}}var Recover;(function(o){o[o.Insert=200]="Insert",o[o.Delete=190]="Delete",o[o.Reduce=100]="Reduce",o[o.MaxNext=4]="MaxNext",o[o.MaxInsertStackDepth=300]="MaxInsertStackDepth",o[o.DampenInsertStackDepth=120]="DampenInsertStackDepth"})(Recover||(Recover={}));class SimulatedStack{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let s=e&65535,a=e>>19;a==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(a-1)*3;let c=this.start.p.parser.getGoto(this.stack[this.base-3],s,!0);this.state=c}}class StackBufferCursor{constructor(e,s,a){this.stack=e,this.pos=s,this.index=a,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,s=e.bufferBase+e.buffer.length){return new StackBufferCursor(e,s,s-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class CachedToken{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const nullToken=new CachedToken;class InputStream{constructor(e,s){this.input=e,this.ranges=s,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=nullToken,this.rangeIndex=0,this.pos=this.chunkPos=s[0].from,this.range=s[0],this.end=s[s.length-1].to,this.readNext()}resolveOffset(e,s){let a=this.range,c=this.rangeIndex,h=this.pos+e;for(;ha.to:h>=a.to;){if(c==this.ranges.length-1)return null;let d=this.ranges[++c];h+=d.from-a.to,a=d}return h}peek(e){let s=this.chunkOff+e,a,c;if(s>=0&&s=this.chunk2Pos&&ag.to&&(this.chunk2=this.chunk2.slice(0,g.to-a)),c=this.chunk2.charCodeAt(0)}}return a>=this.token.lookAhead&&(this.token.lookAhead=a+1),c}acceptToken(e,s=0){let a=s?this.resolveOffset(s,-1):this.pos;if(a==null||a=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,s){if(s?(this.token=s,s.start=e,s.lookAhead=e+1,s.value=s.extended=-1):this.token=nullToken,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&s<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,s-this.chunkPos);if(e>=this.chunk2Pos&&s<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,s-this.chunk2Pos);if(e>=this.range.from&&s<=this.range.to)return this.input.read(e,s);let a="";for(let c of this.ranges){if(c.from>=s)break;c.to>e&&(a+=this.input.read(Math.max(c.from,e),Math.min(c.to,s)))}return a}}class TokenGroup{constructor(e,s){this.data=e,this.id=s}token(e,s){readToken(this.data,e,s,this.id)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,s={}){this.token=e,this.contextual=!!s.contextual,this.fallback=!!s.fallback,this.extend=!!s.extend}}function readToken(o,e,s,a){let c=0,h=1<0){let et=o[_e];if(g.allows(et)&&(e.token.value==-1||e.token.value==et||d.overrides(et,e.token.value))){e.acceptToken(et);break}}let b=e.next,$=0,j=o[c+2];if(e.next<0&&j>$&&o[_+j*3-3]==65535){c=o[_+j*3-1];continue e}for(;$>1,et=_+_e+(_e<<1),tt=o[et],nt=o[et+1];if(b=nt)$=_e+1;else{c=o[et+2],e.advance();continue e}}break}}function decodeArray(o,e=Uint16Array){if(typeof o!="string")return o;let s=null;for(let a=0,c=0;a=92&&d--,d>=34&&d--;let _=d-32;if(_>=46&&(_-=46,g=!0),h+=_,g)break;h*=46}s?s[c++]=h:s=new e(h)}return s}const verbose=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG);let stackIDs=null;var Safety;(function(o){o[o.Margin=25]="Margin"})(Safety||(Safety={}));function cutAt(o,e,s){let a=o.cursor(IterMode.IncludeAnonymous);for(a.moveTo(e);;)if(!(s<0?a.childBefore(e):a.childAfter(e)))for(;;){if((s<0?a.toe)&&!a.type.isError)return s<0?Math.max(0,Math.min(a.to-1,e-25)):Math.min(o.length,Math.max(a.from+1,e+25));if(s<0?a.prevSibling():a.nextSibling())break;if(!a.parent())return s<0?0:o.length}}class FragmentCursor{constructor(e,s){this.fragments=e,this.nodeSet=s,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=d,null;if(h instanceof Tree){if(d==e){if(d=Math.max(this.safeFrom,e)&&(this.trees.push(h),this.start.push(d),this.index.push(0))}else this.index[s]++,this.nextStart=d+h.length}}}class TokenCache{constructor(e,s){this.stream=s,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(a=>new CachedToken)}getActions(e){let s=0,a=null,{parser:c}=e.p,{tokenizers:h}=c,d=c.stateSlot(e.state,3),g=e.curContext?e.curContext.hash:0,_=0;for(let b=0;bj.end+25&&(_=Math.max(j.lookAhead,_)),j.value!=0)){let _e=s;if(j.extended>-1&&(s=this.addActions(e,j.extended,j.end,s)),s=this.addActions(e,j.value,j.end,s),!$.extend&&(a=j,s>_e))break}}for(;this.actions.length>s;)this.actions.pop();return _&&e.setLookAhead(_),!a&&e.pos==this.stream.end&&(a=new CachedToken,a.value=e.p.parser.eofTerm,a.start=a.end=e.pos,s=this.addActions(e,a.value,a.end,s)),this.mainToken=a,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let s=new CachedToken,{pos:a,p:c}=e;return s.start=a,s.end=Math.min(a+1,c.stream.end),s.value=a==c.stream.end?c.parser.eofTerm:0,s}updateCachedToken(e,s,a){if(s.token(this.stream.reset(a.pos,e),a),e.value>-1){let{parser:c}=a.p;for(let h=0;h=0&&a.p.parser.dialect.allows(d>>1)){(d&1)==0?e.value=d>>1:e.extended=d>>1;break}}}else e.value=0,e.end=Math.min(a.p.stream.end,a.pos+1)}putAction(e,s,a,c){for(let h=0;he.bufferLength*4?new FragmentCursor(a,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,s=this.minStackPos,a=this.stacks=[],c,h;for(let d=0;ds)a.push(g);else{if(this.advanceStack(g,a,e))continue;{c||(c=[],h=[]),c.push(g);let _=this.tokens.getMainToken(g);h.push(_.value,_.end)}}break}}if(!a.length){let d=c&&findFinished(c);if(d)return this.stackToTree(d);if(this.parser.strict)throw verbose&&c&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+s);this.recovering||(this.recovering=5)}if(this.recovering&&c){let d=this.stoppedAt!=null&&c[0].pos>this.stoppedAt?c[0]:this.runRecovery(c,h,a);if(d)return this.stackToTree(d.forceAll())}if(this.recovering){let d=this.recovering==1?1:this.recovering*3;if(a.length>d)for(a.sort((g,_)=>_.score-g.score);a.length>d;)a.pop();a.some(g=>g.reducePos>s)&&this.recovering--}else if(a.length>1){e:for(let d=0;d500&&b.buffer.length>500)if((g.score-b.score||g.buffer.length-b.buffer.length)>0)a.splice(_--,1);else{a.splice(d--,1);continue e}}}}this.minStackPos=a[0].pos;for(let d=1;d ":"";if(this.stoppedAt!=null&&c>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let b=e.curContext&&e.curContext.tracker.strict,$=b?e.curContext.hash:0;for(let j=this.fragments.nodeAt(c);j;){let _e=this.parser.nodeSet.types[j.type.id]==j.type?h.getGoto(e.state,j.type.id):-1;if(_e>-1&&j.length&&(!b||(j.prop(NodeProp.contextHash)||0)==$))return e.useNode(j,_e),verbose&&console.log(d+this.stackID(e)+` (via reuse of ${h.getName(j.type.id)})`),!0;if(!(j instanceof Tree)||j.children.length==0||j.positions[0]>0)break;let et=j.children[0];if(et instanceof Tree&&j.positions[0]==0)j=et;else break}}let g=h.stateSlot(e.state,4);if(g>0)return e.reduce(g),verbose&&console.log(d+this.stackID(e)+` (via always-reduce ${h.getName(g&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let _=this.tokens.getActions(e);for(let b=0;b<_.length;){let $=_[b++],j=_[b++],_e=_[b++],et=b==_.length||!a,tt=et?e:e.split();if(tt.apply($,j,_e),verbose&&console.log(d+this.stackID(tt)+` (via ${($&65536)==0?"shift":`reduce of ${h.getName($&65535)}`} for ${h.getName(j)} @ ${c}${tt==e?"":", split"})`),et)return!0;tt.pos>c?s.push(tt):a.push(tt)}return!1}advanceFully(e,s){let a=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>a)return pushStackDedup(e,s),!0}}runRecovery(e,s,a){let c=null,h=!1;for(let d=0;d ":"";if(g.deadEnd&&(h||(h=!0,g.restart(),verbose&&console.log($+this.stackID(g)+" (restarted)"),this.advanceFully(g,a))))continue;let j=g.split(),_e=$;for(let et=0;j.forceReduce()&&et<10&&(verbose&&console.log(_e+this.stackID(j)+" (via force-reduce)"),!this.advanceFully(j,a));et++)verbose&&(_e=this.stackID(j)+" -> ");for(let et of g.recoverByInsert(_))verbose&&console.log($+this.stackID(et)+" (via recover-insert)"),this.advanceFully(et,a);this.stream.end>g.pos?(b==g.pos&&(b++,_=0),g.recoverByDelete(_,b),verbose&&console.log($+this.stackID(g)+` (via recover-delete ${this.parser.getName(_)})`),pushStackDedup(g,a)):(!c||c.scoreo;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id,this.reduce=e.reduce||id,this.reuse=e.reuse||id,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class LRParser extends Parser{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (${14})`);let s=e.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let g=0;ge.topRules[g][1]),c=[];for(let g=0;g=0)h($,_,g[b++]);else{let j=g[b+-$];for(let _e=-$;_e>0;_e--)h(g[b++],_,j);b++}}}this.nodeSet=new NodeSet(s.map((g,_)=>NodeType.define({name:_>=this.minRepeatTerm?void 0:g,id:_,props:c[_],top:a.indexOf(_)>-1,error:_==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(_)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=DefaultBufferLength;let d=decodeArray(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let g=0;gtypeof g=="number"?new TokenGroup(d,g):g),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,s,a){let c=new Parse(this,e,s,a);for(let h of this.wrappers)c=h(c,e,s,a);return c}getGoto(e,s,a=!1){let c=this.goto;if(s>=c[0])return-1;for(let h=c[s+1];;){let d=c[h++],g=d&1,_=c[h++];if(g&&a)return _;for(let b=h+(d>>1);h0}validAction(e,s){if(s==this.stateSlot(e,4))return!0;for(let a=this.stateSlot(e,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=pair(this.data,a+2);else return!1;if(s==pair(this.data,a+1))return!0}}nextStates(e){let s=[];for(let a=this.stateSlot(e,1);;a+=3){if(this.data[a]==65535)if(this.data[a+1]==1)a=pair(this.data,a+2);else break;if((this.data[a+2]&1)==0){let c=this.data[a+1];s.some((h,d)=>d&1&&h==c)||s.push(this.data[a],c)}}return s}overrides(e,s){let a=findOffset(this.data,this.tokenPrecTable,s);return a<0||findOffset(this.data,this.tokenPrecTable,e){let c=e.tokenizers.find(h=>h.from==a);return c?c.to:a})),e.specializers&&(s.specializers=this.specializers.slice(),s.specializerSpecs=this.specializerSpecs.map((a,c)=>{let h=e.specializers.find(g=>g.from==a.external);if(!h)return a;let d=Object.assign(Object.assign({},a),{external:h.to});return s.specializers[c]=getSpecializer(d),d})),e.contextTracker&&(s.context=e.contextTracker),e.dialect&&(s.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(s.strict=e.strict),e.wrap&&(s.wrappers=s.wrappers.concat(e.wrap)),e.bufferLength!=null&&(s.bufferLength=e.bufferLength),s}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let s=this.dynamicPrecedences;return s==null?0:s[e]||0}parseDialect(e){let s=Object.keys(this.dialects),a=s.map(()=>!1);if(e)for(let h of e.split(" ")){let d=s.indexOf(h);d>=0&&(a[d]=!0)}let c=null;for(let h=0;ha)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.scoreo.external(s,a)<<1|e}return o.get}const TSExtends=1,noSemi=281,incdec=2,incdecPrefix=3,templateContent=282,InterpolationStart=4,templateEnd=283,insertSemi=284,spaces=286,newline=287,LineComment=5,BlockComment=6,Dialect_ts=1,space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],braceR=125,braceL=123,semicolon=59,slash=47,star=42,plus=43,minus=45,dollar=36,backtick=96,backslash=92,trackNewline=new ContextTracker({start:!1,shift(o,e){return e==LineComment||e==BlockComment||e==spaces?o:e==newline},strict:!1}),insertSemicolon=new ExternalTokenizer((o,e)=>{let{next:s}=o;(s==braceR||s==-1||e.context)&&e.canShift(insertSemi)&&o.acceptToken(insertSemi)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((o,e)=>{let{next:s}=o,a;space.indexOf(s)>-1||s==slash&&((a=o.peek(1))==slash||a==star)||s!=braceR&&s!=semicolon&&s!=-1&&!e.context&&e.canShift(noSemi)&&o.acceptToken(noSemi)},{contextual:!0}),incdecToken=new ExternalTokenizer((o,e)=>{let{next:s}=o;if((s==plus||s==minus)&&(o.advance(),s==o.next)){o.advance();let a=!e.context&&e.canShift(incdec);o.acceptToken(a?incdec:incdecPrefix)}},{contextual:!0}),template=new ExternalTokenizer(o=>{for(let e=!1,s=0;;s++){let{next:a}=o;if(a<0){s&&o.acceptToken(templateContent);break}else if(a==backtick){s?o.acceptToken(templateContent):o.acceptToken(templateEnd,1);break}else if(a==braceL&&e){s==1?o.acceptToken(InterpolationStart,1):o.acceptToken(templateContent,-1);break}else if(a==10&&s){o.advance(),o.acceptToken(templateContent);break}else a==backslash&&o.advance();e=a==dollar,o.advance()}}),tsExtends=new ExternalTokenizer((o,e)=>{if(!(o.next!=101||!e.dialectEnabled(Dialect_ts))){o.advance();for(let s=0;s<6;s++){if(o.next!="xtends".charCodeAt(s))return;o.advance()}o.next>=57&&o.next<=65||o.next>=48&&o.next<=90||o.next==95||o.next>=97&&o.next<=122||o.next>160||o.acceptToken(TSExtends)}}),jsHighlight=styleTags({"get set async static":tags.modifier,"for while do if else switch try catch finally return throw break continue default case":tags.controlKeyword,"in of await yield void typeof delete instanceof":tags.operatorKeyword,"let var const function class extends":tags.definitionKeyword,"import export from":tags.moduleKeyword,"with debugger as new":tags.keyword,TemplateString:tags.special(tags.string),super:tags.atom,BooleanLiteral:tags.bool,this:tags.self,null:tags.null,Star:tags.modifier,VariableName:tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":tags.function(tags.variableName),VariableDefinition:tags.definition(tags.variableName),Label:tags.labelName,PropertyName:tags.propertyName,PrivatePropertyName:tags.special(tags.propertyName),"CallExpression/MemberExpression/PropertyName":tags.function(tags.propertyName),"FunctionDeclaration/VariableDefinition":tags.function(tags.definition(tags.variableName)),"ClassDeclaration/VariableDefinition":tags.definition(tags.className),PropertyDefinition:tags.definition(tags.propertyName),PrivatePropertyDefinition:tags.definition(tags.special(tags.propertyName)),UpdateOp:tags.updateOperator,LineComment:tags.lineComment,BlockComment:tags.blockComment,Number:tags.number,String:tags.string,ArithOp:tags.arithmeticOperator,LogicOp:tags.logicOperator,BitOp:tags.bitwiseOperator,CompareOp:tags.compareOperator,RegExp:tags.regexp,Equals:tags.definitionOperator,Arrow:tags.function(tags.punctuation),": Spread":tags.punctuation,"( )":tags.paren,"[ ]":tags.squareBracket,"{ }":tags.brace,"InterpolationStart InterpolationEnd":tags.special(tags.brace),".":tags.derefOperator,", ;":tags.separator,TypeName:tags.typeName,TypeDefinition:tags.definition(tags.typeName),"type enum interface implements namespace module declare":tags.definitionKeyword,"abstract global Privacy readonly override":tags.modifier,"is keyof unique infer":tags.operatorKeyword,JSXAttributeValue:tags.attributeValue,JSXText:tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags.angleBracket,"JSXIdentifier JSXNameSpacedName":tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags.attributeName}),spec_identifier={__proto__:null,export:18,as:23,from:29,default:32,async:37,function:38,this:48,true:56,false:56,void:66,typeof:70,null:86,super:88,new:122,await:139,yield:141,delete:142,class:152,extends:154,public:197,private:197,protected:197,readonly:199,instanceof:220,in:222,const:224,import:256,keyof:307,unique:311,infer:317,is:351,abstract:371,implements:373,type:375,let:378,var:380,interface:387,enum:391,namespace:397,module:399,declare:403,global:407,for:428,of:437,while:440,with:444,do:448,if:452,else:454,switch:458,case:464,try:470,catch:474,finally:478,return:482,throw:486,break:490,continue:494,debugger:498},spec_word={__proto__:null,async:109,get:111,set:113,public:161,private:161,protected:161,static:163,abstract:165,override:167,readonly:173,new:355},spec_LessThan={__proto__:null,"<":129},parser=LRParser.deserialize({version:14,states:"$8SO`QdOOO'QQ(C|O'#ChO'XOWO'#DVO)dQdO'#D]O)tQdO'#DhO){QdO'#DrO-xQdO'#DxOOQO'#E]'#E]O.]Q`O'#E[O.bQ`O'#E[OOQ(C['#Ef'#EfO0aQ(C|O'#ItO2wQ(C|O'#IuO3eQ`O'#EzO3jQ!bO'#FaOOQ(C['#FS'#FSO3rO#tO'#FSO4QQ&jO'#FhO5bQ`O'#FgOOQ(C['#Iu'#IuOOQ(CW'#It'#ItOOQS'#J^'#J^O5gQ`O'#HpO5lQ(ChO'#HqOOQS'#Ih'#IhOOQS'#Hr'#HrQ`QdOOO){QdO'#DjO5tQ`O'#G[O5yQ&jO'#CmO6XQ`O'#EZO6dQ`O'#EgO6iQ,UO'#FRO7TQ`O'#G[O7YQ`O'#G`O7eQ`O'#G`O7sQ`O'#GcO7sQ`O'#GdO7sQ`O'#GfO5tQ`O'#GiO8dQ`O'#GlO9rQ`O'#CdO:SQ`O'#GyO:[Q`O'#HPO:[Q`O'#HRO`QdO'#HTO:[Q`O'#HVO:[Q`O'#HYO:aQ`O'#H`O:fQ(CjO'#HfO){QdO'#HhO:qQ(CjO'#HjO:|Q(CjO'#HlO5lQ(ChO'#HnO){QdO'#DWOOOW'#Ht'#HtO;XOWO,59qOOQ(C[,59q,59qO=jQtO'#ChO=tQdO'#HuO>XQ`O'#IvO@WQtO'#IvO'dQdO'#IvO@_Q`O,59wO@uQ7[O'#DbOAnQ`O'#E]OA{Q`O'#JROBWQ`O'#JQOBWQ`O'#JQOB`Q`O,5:yOBeQ`O'#JPOBlQaO'#DyO5yQ&jO'#EZOBzQ`O'#EZOCVQpO'#FROOQ(C[,5:S,5:SOC_QdO,5:SOE]Q(C|O,5:^OEyQ`O,5:dOFdQ(ChO'#JOO7YQ`O'#I}OFkQ`O'#I}OFsQ`O,5:xOFxQ`O'#I}OGWQdO,5:vOIWQ&jO'#EWOJeQ`O,5:vOKwQ&jO'#DlOLOQdO'#DqOLYQ7[O,5;PO){QdO,5;POOQS'#Er'#ErOOQS'#Et'#EtO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;RO){QdO,5;ROOQS'#Ex'#ExOLbQdO,5;cOOQ(C[,5;h,5;hOOQ(C[,5;i,5;iONbQ`O,5;iOOQ(C[,5;j,5;jO){QdO'#IPONgQ(ChO,5[OOQS'#Ik'#IkOOQS,5>],5>]OOQS-E;p-E;pO!+kQ(C|O,5:UOOQ(CX'#Cp'#CpO!,[Q&kO,5Q,5>QO){QdO,5>QO5lQ(ChO,5>SOOQS,5>U,5>UO!8cQ`O,5>UOOQS,5>W,5>WO!8cQ`O,5>WOOQS,5>Y,5>YO!8hQpO,59rOOOW-E;r-E;rOOQ(C[1G/]1G/]O!8mQtO,5>aO'dQdO,5>aOOQO,5>f,5>fO!8wQdO'#HuOOQO-E;s-E;sO!9UQ`O,5?bO!9^QtO,5?bO!9eQ`O,5?lOOQ(C[1G/c1G/cO!9mQ!bO'#DTOOQO'#Ix'#IxO){QdO'#IxO!:[Q!bO'#IxO!:yQ!bO'#DcO!;[Q7[O'#DcO!=gQdO'#DcO!=nQ`O'#IwO!=vQ`O,59|O!={Q`O'#EaO!>ZQ`O'#JSO!>cQ`O,5:zO!>yQ7[O'#DcO){QdO,5?mO!?TQ`O'#HzOOQO-E;x-E;xO!9eQ`O,5?lOOQ(CW1G0e1G0eO!@aQ7[O'#D|OOQ(C[,5:e,5:eO){QdO,5:eOIWQ&jO,5:eO!@hQaO,5:eO:aQ`O,5:uO!-OQ!bO,5:uO!-WQ&jO,5:uO5yQ&jO,5:uOOQ(C[1G/n1G/nOOQ(C[1G0O1G0OOOQ(CW'#EV'#EVO){QdO,5?jO!@sQ(ChO,5?jO!AUQ(ChO,5?jO!A]Q`O,5?iO!AeQ`O'#H|O!A]Q`O,5?iOOQ(CW1G0d1G0dO7YQ`O,5?iOOQ(C[1G0b1G0bO!BPQ(C|O1G0bO!CRQ(CyO,5:rOOQ(C]'#Fq'#FqO!CoQ(C}O'#IqOGWQdO1G0bO!EqQ,VO'#IyO!E{Q`O,5:WO!FQQtO'#IzO){QdO'#IzO!F[Q`O,5:]OOQ(C]'#DT'#DTOOQ(C[1G0k1G0kO!FaQ`O1G0kO!HrQ(C|O1G0mO!HyQ(C|O1G0mO!K^Q(C|O1G0mO!KeQ(C|O1G0mO!MlQ(C|O1G0mO!NPQ(C|O1G0mO#!pQ(C|O1G0mO#!wQ(C|O1G0mO#%[Q(C|O1G0mO#%cQ(C|O1G0mO#'WQ(C|O1G0mO#*QQMlO'#ChO#+{QMlO1G0}O#-vQMlO'#IuOOQ(C[1G1T1G1TO#.ZQ(C|O,5>kOOQ(CW-E;}-E;}O#.zQ(C}O1G0mOOQ(C[1G0m1G0mO#1PQ(C|O1G1QO#1pQ!bO,5;sO#1uQ!bO,5;tO#1zQ!bO'#F[O#2`Q`O'#FZOOQO'#JW'#JWOOQO'#H}'#H}O#2eQ!bO1G1]OOQ(C[1G1]1G1]OOOO1G1f1G1fO#2sQMlO'#ItO#2}Q`O,5;}OLbQdO,5;}OOOO-E;|-E;|OOQ(C[1G1Y1G1YOOQ(C[,5PQtO1G1VOOQ(C[1G1X1G1XO5tQ`O1G2}O#>WQ`O1G2}O#>]Q`O1G2}O#>bQ`O1G2}OOQS1G2}1G2}O#>gQ&kO1G2bO7YQ`O'#JQO7YQ`O'#EaO7YQ`O'#IWO#>xQ(ChO,5?yOOQS1G2f1G2fO!0VQ`O1G2lOIWQ&jO1G2iO#?TQ`O1G2iOOQS1G2j1G2jOIWQ&jO1G2jO#?YQaO1G2jO#?bQ7[O'#GhOOQS1G2l1G2lO!'VQ7[O'#IYO!0[QpO1G2oOOQS1G2o1G2oOOQS,5=Y,5=YO#?jQ&kO,5=[O5tQ`O,5=[O#6SQ`O,5=_O5bQ`O,5=_O!-OQ!bO,5=_O!-WQ&jO,5=_O5yQ&jO,5=_O#?{Q`O'#JaO#@WQ`O,5=`OOQS1G.j1G.jO#@]Q(ChO1G.jO#@hQ`O1G.jO#@mQ`O1G.jO5lQ(ChO1G.jO#@uQtO,5@OO#APQ`O,5@OO#A[QdO,5=gO#AcQ`O,5=gO7YQ`O,5@OOOQS1G3P1G3PO`QdO1G3POOQS1G3V1G3VOOQS1G3X1G3XO:[Q`O1G3ZO#AhQdO1G3]O#EcQdO'#H[OOQS1G3`1G3`O#EpQ`O'#HbO:aQ`O'#HdOOQS1G3f1G3fO#ExQdO1G3fO5lQ(ChO1G3lOOQS1G3n1G3nOOQ(CW'#Fx'#FxO5lQ(ChO1G3pO5lQ(ChO1G3rOOOW1G/^1G/^O#IvQpO,5aO#JYQ`O1G4|O#JbQ`O1G5WO#JjQ`O,5?dOLbQdO,5:{O7YQ`O,5:{O:aQ`O,59}OLbQdO,59}O!-OQ!bO,59}O#JoQMlO,59}OOQO,5:{,5:{O#JyQ7[O'#HvO#KaQ`O,5?cOOQ(C[1G/h1G/hO#KiQ7[O'#H{O#K}Q`O,5?nOOQ(CW1G0f1G0fO!;[Q7[O,59}O#LVQtO1G5XO7YQ`O,5>fOOQ(CW'#ES'#ESO#LaQ(DjO'#ETO!@XQ7[O'#D}OOQO'#Hy'#HyO#L{Q7[O,5:hOOQ(C[,5:h,5:hO#MSQ7[O'#D}O#MeQ7[O'#D}O#MlQ7[O'#EYO#MoQ7[O'#ETO#M|Q7[O'#ETO!@XQ7[O'#ETO#NaQ`O1G0PO#NfQqO1G0POOQ(C[1G0P1G0PO){QdO1G0POIWQ&jO1G0POOQ(C[1G0a1G0aO:aQ`O1G0aO!-OQ!bO1G0aO!-WQ&jO1G0aO#NmQ(C|O1G5UO){QdO1G5UO#N}Q(ChO1G5UO$ `Q`O1G5TO7YQ`O,5>hOOQO,5>h,5>hO$ hQ`O,5>hOOQO-E;z-E;zO$ `Q`O1G5TO$ vQ(C}O,59jO$#xQ(C}O,5m,5>mO$-rQ`O,5>mOOQ(C]1G2P1G2PP$-wQ`O'#IRPOQ(C]-Eo,5>oOOQO-Ep,5>pOOQO-Ex,5>xOOQO-E<[-E<[OOQ(C[7+&q7+&qO$6OQ`O7+(iO5lQ(ChO7+(iO5tQ`O7+(iO$6TQ`O7+(iO$6YQaO7+'|OOQ(CW,5>r,5>rOOQ(CW-Et,5>tOOQO-EO,5>OOOQS7+)Q7+)QOOQS7+)W7+)WOOQS7+)[7+)[OOQS7+)^7+)^OOQO1G5O1G5OO$:nQMlO1G0gO$:xQ`O1G0gOOQO1G/i1G/iO$;TQMlO1G/iO:aQ`O1G/iOLbQdO'#DcOOQO,5>b,5>bOOQO-E;t-E;tOOQO,5>g,5>gOOQO-E;y-E;yO!-OQ!bO1G/iO:aQ`O,5:iOOQO,5:o,5:oO){QdO,5:oO$;_Q(ChO,5:oO$;jQ(ChO,5:oO!-OQ!bO,5:iOOQO-E;w-E;wOOQ(C[1G0S1G0SO!@XQ7[O,5:iO$;xQ7[O,5:iO$PQ`O7+*oO$>XQ(C}O1G2[O$@^Q(C}O1G2^O$BcQ(C}O1G1yO$DnQ,VO,5>cOOQO-E;u-E;uO$DxQtO,5>dO){QdO,5>dOOQO-E;v-E;vO$ESQ`O1G5QO$E[QMlO1G0bO$GcQMlO1G0mO$GjQMlO1G0mO$IkQMlO1G0mO$IrQMlO1G0mO$KgQMlO1G0mO$KzQMlO1G0mO$NXQMlO1G0mO$N`QMlO1G0mO%!aQMlO1G0mO%!hQMlO1G0mO%$]QMlO1G0mO%$pQ(C|O<kOOOO7+'T7+'TOOOW1G/R1G/ROOQ(C]1G4X1G4XOJjQ&jO7+'zO%*VQ`O,5>lO5tQ`O,5>lOOQO-EnO%+dQ`O,5>nOIWQ&jO,5>nOOQO-Ew,5>wO%.vQ`O,5>wO%.{Q`O,5>wOOQO-EvOOQO-EqOOQO-EsOOQO-E{AN>{OOQOAN>uAN>uO%3rQ(C|OAN>{O:aQ`OAN>uO){QdOAN>{O!-OQ!bOAN>uO&)wQ(ChOAN>{O&*SQ(C}OG26lOOQ(CWG26bG26bOOQS!$( t!$( tOOQO<QQ`O'#E[O&>YQ`O'#EzO&>_Q`O'#EgO&>dQ`O'#JRO&>oQ`O'#JPO&>zQ`O,5:vO&?PQ,VO,5aO!O&PO~Ox&SO!W&^O!X&VO!Y&VO'^$dO~O]&TOk&TO!Q&WO'g&QO!S'kP!S'vP~P@dO!O'sX!R'sX!]'sX!c'sX'p'sX~O!{'sX#W#PX!S'sX~PA]O!{&_O!O'uX!R'uX~O!R&`O!O'tX~O!O&cO~O!{#eO~PA]OP&gO!T&dO!o&fO']$bO~Oc&lO!d$ZO']$bO~Ou$oO!d$nO~O!S&mO~P`Ou!{Ov!{Ox!|O!b!yO!d!zO'fQOQ!faZ!faj!fa!R!fa!a!fa!j!fa#[!fa#]!fa#^!fa#_!fa#`!fa#a!fa#b!fa#c!fa#e!fa#g!fa#i!fa#j!fa'p!fa'w!fa'x!fa~O_!fa'W!fa!O!fa!c!fan!fa!T!fa%Q!fa!]!fa~PCfO!c&nO~O!]!wO!{&pO'p&oO!R'rX_'rX'W'rX~O!c'rX~PFOO!R&tO!c'qX~O!c&vO~Ox$uO!T$vO#V&wO']$bO~OQTORTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O']9aO'fQO'oYO'|aO~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO']&{O'b$PO'f#sO~O#W&}O~O]#qOh$QOj#rOk#qOl#qOq$ROs$SOx#yO!T#zO!_$XO!d#vO#V$YO#t$VO$_$TO$a$UO$d$WO']&{O'b$PO'f#sO~O'a'mP~PJjO!Q'RO!c'nP~P){O'g'TO'oYO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O!d!zO~O!R#bO_$]a'W$]a!c$]a!O$]a!T$]a%Q$]a!]$]a~O#d'jO~PIWO!]'lO!T'yX#w'yX#z'yX$R'yX~Ou'mO~P! YOu'mO!T'yX#w'yX#z'yX$R'yX~O!T'oO#w'sO#z'nO$R'tO~O!Q'wO~PLbO#z#fO$R'zO~OP$eXu$eXx$eX!b$eX'w$eX'x$eX~OPfX!RfX!{fX'afX'a$eX~P!!rOk'|O~OS'}O'U(OO'V(QO~OP(ZOu(SOx(TO'w(VO'x(XO~O'a(RO~P!#{O'a([O~O]#qOh$QOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~O!Q(`O'](]O!c'}P~P!$jO#W(bO~O!d(cO~O!Q(hO'](eO!O(OP~P!$jOj(uOx(mO!W(sO!X(lO!Y(lO!d(cO!x(tO$w(oO'^$dO'g(jO~O!S(rO~P!&jO!b!yOP'eXu'eXx'eX'w'eX'x'eX!R'eX!{'eX~O'a'eX#m'eX~P!'cOP(xO!{(wO!R'dX'a'dX~O!R(yO'a'cX~O']${O'a'cP~O'](|O~O!d)RO~O']&{O~Ox$uO!Q!rO!T$vO#U!uO#V!rO']$bO!c'qP~O!]!wO#W)VO~OQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO#j#ZO'fQO'p#[O'w!}O'x#OO~O_!^a!R!^a'W!^a!O!^a!c!^an!^a!T!^a%Q!^a!]!^a~P!)wOP)_O!T&dO!o)^O%Q)]O'b$PO~O!])aO!T'`X_'`X!R'`X'W'`X~O!d$ZO'b$PO~O!d$ZO']$bO'b$PO~O!]!wO#W&}O~O])lO%R)mO'])iO!S(VP~O!R)nO^(UX~O'g'TO~OZ)rO~O^)sO~O!T$lO']$bO'^$dO^(UP~Ox$uO!Q)xO!R&`O!T$vO']$bO!O'tP~O]&ZOk&ZO!Q)yO'g'TO!S'vP~O!R)zO_(RX'W(RX~O!{*OO'b$PO~OP*RO!T#zO'b$PO~O!T*TO~Ou*VO!TSO~O!n*[O~Oc*aO~O'](|O!S(TP~Oc$jO~O%RtO']${O~P8wOZ*gO^*fO~OQTORTO]cObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#x^O%PqO'fQO'oYO'|aO~O!T!bO#t!lO']9aO~P!1_O^*fO_$^O'W$^O~O_*kO#d*mO%T*mO%U*mO~P){O!d%`O~O%t*rO~O!T*tO~O&V*vO&X*wOQ&SaR&SaX&Sa]&Sa_&Sab&Sac&Sah&Saj&Sak&Sal&Saq&Sas&Sax&Sa{&Sa|&Sa}&Sa!T&Sa!_&Sa!d&Sa!g&Sa!h&Sa!i&Sa!j&Sa!k&Sa!n&Sa#d&Sa#t&Sa#x&Sa%P&Sa%R&Sa%T&Sa%U&Sa%X&Sa%Z&Sa%^&Sa%_&Sa%a&Sa%n&Sa%t&Sa%v&Sa%x&Sa%z&Sa%}&Sa&T&Sa&Z&Sa&]&Sa&_&Sa&a&Sa&c&Sa'S&Sa']&Sa'f&Sa'o&Sa'|&Sa!S&Sa%{&Sa`&Sa&Q&Sa~O']*|O~On+PO~O!O&ia!R&ia~P!)wO!Q+TO!O&iX!R&iX~P){O!R%zO!O'ja~O!O'ja~P>aO!R&`O!O'ta~O!RwX!R!ZX!SwX!S!ZX!]wX!]!ZX!d!ZX!{wX'b!ZX~O!]+YO!{+XO!R#TX!R'lX!S#TX!S'lX!]'lX!d'lX'b'lX~O!]+[O!d$ZO'b$PO!R!VX!S!VX~O]&ROk&ROx&SO'g(jO~OQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!T!bO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O'fQO'oYO'|;^O~O']:SO~P!;jO!R+`O!S'kX~O!S+bO~O!]+YO!{+XO!R#TX!S#TX~O!R+cO!S'vX~O!S+eO~O]&ROk&ROx&SO'^$dO'g(jO~O!X+fO!Y+fO~P!>hOx$uO!Q+hO!T$vO']$bO!O&nX!R&nX~O_+lO!W+oO!X+kO!Y+kO!r+sO!s+qO!t+rO!u+pO!x+tO'^$dO'g(jO'o+iO~O!S+nO~P!?iOP+yO!T&dO!o+xO~O!{,PO!R'ra!c'ra_'ra'W'ra~O!]!wO~P!@sO!R&tO!c'qa~Ox$uO!Q,SO!T$vO#U,UO#V,SO']$bO!R&pX!c&pX~O_#Oi!R#Oi'W#Oi!O#Oi!c#Oin#Oi!T#Oi%Q#Oi!]#Oi~P!)wOP;tOu(SOx(TO'w(VO'x(XO~O#W!za!R!za!c!za!{!za!T!za_!za'W!za!O!za~P!BpO#W'eXQ'eXZ'eX_'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX'W'eX'f'eX'p'eX!c'eX!O'eX!T'eXn'eX%Q'eX!]'eX~P!'cO!R,_O'a'mX~P!#{O'a,aO~O!R,bO!c'nX~P!)wO!c,eO~O!O,fO~OQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zi_#Zij#Zi!R#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O#[#Zi~P!FfO#[#PO~P!FfOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO'fQOZ#Zi_#Zi!R#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~Oj#Zi~P!IQOj#RO~P!IQOQ#^Oj#ROu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO'fQO_#Zi!R#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'w#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P!KlOZ#dO!a#TO#a#TO#b#TO#c#TO~P!KlOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO'fQO_#Zi!R#Zi#g#Zi#i#Zi#j#Zi'W#Zi'p#Zi'x#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'w#Zi~P!NdO'w!}O~P!NdOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO'fQO'w!}O_#Zi!R#Zi#i#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~O'x#Zi~P##OO'x#OO~P##OOQ#^OZ#dOj#ROu!{Ov!{Ox!|O!a#TO!b!yO!d!zO!j#^O#[#PO#]#QO#^#QO#_#QO#`#SO#a#TO#b#TO#c#TO#e#UO#g#WO#i#YO'fQO'w!}O'x#OO~O_#Zi!R#Zi#j#Zi'W#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P#%jOQ[XZ[Xj[Xu[Xv[Xx[X!a[X!b[X!d[X!j[X!{[X#WdX#[[X#][X#^[X#_[X#`[X#a[X#b[X#c[X#e[X#g[X#i[X#j[X#o[X'f[X'p[X'w[X'x[X!R[X!S[X~O#m[X~P#'}OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO#j9oO'fQO'p#[O'w!}O'x#OO~O#m,hO~P#*XOQ'iXZ'iXj'iXu'iXv'iXx'iX!a'iX!b'iX!d'iX!j'iX#['iX#]'iX#^'iX#_'iX#`'iX#a'iX#b'iX#e'iX#g'iX#i'iX#j'iX'f'iX'p'iX'w'iX'x'iX!R'iX~O!{9sO#o9sO#c'iX#m'iX!S'iX~P#,SO_&sa!R&sa'W&sa!c&san&sa!O&sa!T&sa%Q&sa!]&sa~P!)wOQ#ZiZ#Zi_#Zij#Ziv#Zi!R#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi'W#Zi'f#Zi'p#Zi!O#Zi!c#Zin#Zi!T#Zi%Q#Zi!]#Zi~P!BpO_#ni!R#ni'W#ni!O#ni!c#nin#ni!T#ni%Q#ni!]#ni~P!)wO#z,jO~O#z,kO~O!]'lO!{,lO!T$OX#w$OX#z$OX$R$OX~O!Q,mO~O!T'oO#w,oO#z'nO$R,pO~O!R9pO!S'hX~P#*XO!S,qO~O$R,sO~OS'}O'U(OO'V,vO~O],yOk,yO!O,zO~O!RdX!]dX!cdX!c$eX'pdX~P!!rO!c-QO~P!BpO!R-RO!]!wO'p&oO!c'}X~O!c-WO~O!Q(`O']$bO!c'}P~O#W-YO~O!O$eX!R$eX!]$lX~P!!rO!R-ZO!O(OX~P!BpO!]-]O~O!O-_O~Oj-cO!]!wO!d$ZO'b$PO'p&oO~O!])aO~O_$^O!R-hO'W$^O~O!S-jO~P!&jO!X-kO!Y-kO'^$dO'g(jO~Ox-mO'g(jO~O!x-nO~O']${O!R&xX'a&xX~O!R(yO'a'ca~O'a-sO~Ou-tOv-tOx-uOPra'wra'xra!Rra!{ra~O'ara#mra~P#7pOu(SOx(TOP$^a'w$^a'x$^a!R$^a!{$^a~O'a$^a#m$^a~P#8fOu(SOx(TOP$`a'w$`a'x$`a!R$`a!{$`a~O'a$`a#m$`a~P#9XO]-vO~O#W-wO~O'a$na!R$na!{$na#m$na~P!#{O#W-zO~OP.TO!T&dO!o.SO%Q.RO~O]#qOj#rOk#qOl#qOq$ROs9tOx#yO!T#zO!_;eO!d#vO#V9}O#t$VO$_9wO$a9zO$d$WO'b$PO'f#sO~Oh.VO'].UO~P#:yO!])aO!T'`a_'`a!R'`a'W'`a~O#W.]O~OZ[X!RdX!SdX~O!R.^O!S(VX~O!S.`O~OZ.aO~O].cO'])iO~O!T$lO']$bO^'QX!R'QX~O!R)nO^(Ua~O!c.fO~P!)wO].hO~OZ.iO~O^.jO~OP.TO!T&dO!o.SO%Q.RO'b$PO~O!R)zO_(Ra'W(Ra~O!{.pO~OP.sO!T#zO~O'g'TO!S(SP~OP.}O!T.yO!o.|O%Q.{O'b$PO~OZ/XO!R/VO!S(TX~O!S/YO~O^/[O_$^O'W$^O~O]/]O~O]/^O'](|O~O#c/_O%r/`O~P0zO!{#eO#c/_O%r/`O~O_/aO~P){O_/cO~O%{/gOQ%yiR%yiX%yi]%yi_%yib%yic%yih%yij%yik%yil%yiq%yis%yix%yi{%yi|%yi}%yi!T%yi!_%yi!d%yi!g%yi!h%yi!i%yi!j%yi!k%yi!n%yi#d%yi#t%yi#x%yi%P%yi%R%yi%T%yi%U%yi%X%yi%Z%yi%^%yi%_%yi%a%yi%n%yi%t%yi%v%yi%x%yi%z%yi%}%yi&T%yi&Z%yi&]%yi&_%yi&a%yi&c%yi'S%yi']%yi'f%yi'o%yi'|%yi!S%yi`%yi&Q%yi~O`/mO!S/kO&Q/lO~P`O!TSO!d/oO~O&X*wOQ&SiR&SiX&Si]&Si_&Sib&Sic&Sih&Sij&Sik&Sil&Siq&Sis&Six&Si{&Si|&Si}&Si!T&Si!_&Si!d&Si!g&Si!h&Si!i&Si!j&Si!k&Si!n&Si#d&Si#t&Si#x&Si%P&Si%R&Si%T&Si%U&Si%X&Si%Z&Si%^&Si%_&Si%a&Si%n&Si%t&Si%v&Si%x&Si%z&Si%}&Si&T&Si&Z&Si&]&Si&_&Si&a&Si&c&Si'S&Si']&Si'f&Si'o&Si'|&Si!S&Si%{&Si`&Si&Q&Si~O!R#bOn$]a~O!O&ii!R&ii~P!)wO!R%zO!O'ji~O!R&`O!O'ti~O!O/uO~O!R!Va!S!Va~P#*XO]&ROk&RO!Q/{O'g(jO!R&jX!S&jX~P@dO!R+`O!S'ka~O]&ZOk&ZO!Q)yO'g'TO!R&oX!S&oX~O!R+cO!S'va~O!O'ui!R'ui~P!)wO_$^O!]!wO!d$ZO!j0VO!{0TO'W$^O'b$PO'p&oO~O!S0YO~P!?iO!X0ZO!Y0ZO'^$dO'g(jO'o+iO~O!W0[O~P#MSO!TSO!W0[O!u0^O!x0_O~P#MSO!W0[O!s0aO!t0aO!u0^O!x0_O~P#MSO!T&dO~O!T&dO~P!BpO!R'ri!c'ri_'ri'W'ri~P!)wO!{0jO!R'ri!c'ri_'ri'W'ri~O!R&tO!c'qi~Ox$uO!T$vO#V0lO']$bO~O#WraQraZra_rajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra'Wra'fra'pra!cra!Ora!Tranra%Qra!]ra~P#7pO#W$^aQ$^aZ$^a_$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a'W$^a'f$^a'p$^a!c$^a!O$^a!T$^an$^a%Q$^a!]$^a~P#8fO#W$`aQ$`aZ$`a_$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a'W$`a'f$`a'p$`a!c$`a!O$`a!T$`an$`a%Q$`a!]$`a~P#9XO#W$naQ$naZ$na_$naj$nav$na!R$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na'W$na'f$na'p$na!c$na!O$na!T$na!{$nan$na%Q$na!]$na~P!BpO_#Oq!R#Oq'W#Oq!O#Oq!c#Oqn#Oq!T#Oq%Q#Oq!]#Oq~P!)wO!R&kX'a&kX~PJjO!R,_O'a'ma~O!Q0tO!R&lX!c&lX~P){O!R,bO!c'na~O!R,bO!c'na~P!)wO#m!fa!S!fa~PCfO#m!^a!R!^a!S!^a~P#*XO!T1XO#x^O$P1YO~O!S1^O~On1_O~P!BpO_$Yq!R$Yq'W$Yq!O$Yq!c$Yqn$Yq!T$Yq%Q$Yq!]$Yq~P!)wO!O1`O~O],yOk,yO~Ou(SOx(TO'x(XOP$xi'w$xi!R$xi!{$xi~O'a$xi#m$xi~P$.POu(SOx(TOP$zi'w$zi'x$zi!R$zi!{$zi~O'a$zi#m$zi~P$.rO'p#[O~P!BpO!Q1cO']$bO!R&tX!c&tX~O!R-RO!c'}a~O!R-RO!]!wO!c'}a~O!R-RO!]!wO'p&oO!c'}a~O'a$gi!R$gi!{$gi#m$gi~P!#{O!Q1kO'](eO!O&vX!R&vX~P!$jO!R-ZO!O(Oa~O!R-ZO!O(Oa~P!BpO!]!wO~O!]!wO#c1sO~Oj1vO!]!wO'p&oO~O!R'di'a'di~P!#{O!{1yO!R'di'a'di~P!#{O!c1|O~O_$Zq!R$Zq'W$Zq!O$Zq!c$Zqn$Zq!T$Zq%Q$Zq!]$Zq~P!)wO!R2QO!T(PX~P!BpO!T&dO%Q2TO~O!T&dO%Q2TO~P!BpO!T$eX$u[X_$eX!R$eX'W$eX~P!!rO$u2XOPgXugXxgX!TgX'wgX'xgX_gX!RgX'WgX~O$u2XO~O]2_O%R2`O'])iO!R'PX!S'PX~O!R.^O!S(Va~OZ2dO~O^2eO~O]2hO~OP2jO!T&dO!o2iO%Q2TO~O_$^O'W$^O~P!BpO!T#zO~P!BpO!R2oO!{2qO!S(SX~O!S2rO~Ox;oO!W2{O!X2tO!Y2tO!r2zO!s2yO!t2yO!x2xO'^$dO'g(jO'o+iO~O!S2wO~P$7ZOP3SO!T.yO!o3RO%Q3QO~OP3SO!T.yO!o3RO%Q3QO'b$PO~O'](|O!R'OX!S'OX~O!R/VO!S(Ta~O]3^O'g3]O~O]3_O~O^3aO~O!c3dO~P){O_3fO~O_3fO~P){O#c3hO%r3iO~PFOO`/mO!S3mO&Q/lO~P`O!]3oO~O!R#Ti!S#Ti~P#*XO!{3qO!R#Ti!S#Ti~O!R!Vi!S!Vi~P#*XO_$^O!{3xO'W$^O~O_$^O!]!wO!{3xO'W$^O~O!X3|O!Y3|O'^$dO'g(jO'o+iO~O_$^O!]!wO!d$ZO!j3}O!{3xO'W$^O'b$PO'p&oO~O!W4OO~P$;xO!W4OO!u4RO!x4SO~P$;xO_$^O!]!wO!j3}O!{3xO'W$^O'p&oO~O!R'rq!c'rq_'rq'W'rq~P!)wO!R&tO!c'qq~O#W$xiQ$xiZ$xi_$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi'W$xi'f$xi'p$xi!c$xi!O$xi!T$xin$xi%Q$xi!]$xi~P$.PO#W$ziQ$ziZ$zi_$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi'W$zi'f$zi'p$zi!c$zi!O$zi!T$zin$zi%Q$zi!]$zi~P$.rO#W$giQ$giZ$gi_$gij$giv$gi!R$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi'W$gi'f$gi'p$gi!c$gi!O$gi!T$gi!{$gin$gi%Q$gi!]$gi~P!BpO!R&ka'a&ka~P!#{O!R&la!c&la~P!)wO!R,bO!c'ni~O#m#Oi!R#Oi!S#Oi~P#*XOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O'fQOZ#Zij#Zi!a#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~O#[#Zi~P$EiO#[9eO~P$EiOQ#^Ou!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO'fQOZ#Zi!a#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~Oj#Zi~P$GqOj9gO~P$GqOQ#^Oj9gOu!{Ov!{Ox!|O!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO'fQO#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'w#Zi'x#Zi!R#Zi!S#Zi~OZ#Zi!a#Zi#a#Zi#b#Zi#c#Zi~P$IyOZ9rO!a9iO#a9iO#b9iO#c9iO~P$IyOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO'fQO#g#Zi#i#Zi#j#Zi#m#Zi'p#Zi'x#Zi!R#Zi!S#Zi~O'w#Zi~P$L_O'w!}O~P$L_OQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO'fQO'w!}O#i#Zi#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~O'x#Zi~P$NgO'x#OO~P$NgOQ#^OZ9rOj9gOu!{Ov!{Ox!|O!a9iO!b!yO!d!zO!j#^O#[9eO#]9fO#^9fO#_9fO#`9hO#a9iO#b9iO#c9iO#e9jO#g9lO#i9nO'fQO'w!}O'x#OO~O#j#Zi#m#Zi'p#Zi!R#Zi!S#Zi~P%!oO_#ky!R#ky'W#ky!O#ky!c#kyn#ky!T#ky%Q#ky!]#ky~P!)wOP;vOu(SOx(TO'w(VO'x(XO~OQ#ZiZ#Zij#Ziv#Zi!a#Zi!b#Zi!d#Zi!j#Zi#[#Zi#]#Zi#^#Zi#_#Zi#`#Zi#a#Zi#b#Zi#c#Zi#e#Zi#g#Zi#i#Zi#j#Zi#m#Zi'f#Zi'p#Zi!R#Zi!S#Zi~P%%aO!b!yOP'eXu'eXx'eX'w'eX'x'eX!S'eX~OQ'eXZ'eXj'eXv'eX!a'eX!d'eX!j'eX#['eX#]'eX#^'eX#_'eX#`'eX#a'eX#b'eX#c'eX#e'eX#g'eX#i'eX#j'eX#m'eX'f'eX'p'eX!R'eX~P%'eO#m#ni!R#ni!S#ni~P#*XO!S4eO~O!R&sa!S&sa~P#*XO!]!wO'p&oO!R&ta!c&ta~O!R-RO!c'}i~O!R-RO!]!wO!c'}i~O'a$gq!R$gq!{$gq#m$gq~P!#{O!O&va!R&va~P!BpO!]4lO~O!R-ZO!O(Oi~P!BpO!R-ZO!O(Oi~O!O4pO~O!]!wO#c4uO~Oj4vO!]!wO'p&oO~O!O4xO~O'a$iq!R$iq!{$iq#m$iq~P!#{O_$Zy!R$Zy'W$Zy!O$Zy!c$Zyn$Zy!T$Zy%Q$Zy!]$Zy~P!)wO!R2QO!T(Pa~O!T&dO%Q4}O~O!T&dO%Q4}O~P!BpO_#Oy!R#Oy'W#Oy!O#Oy!c#Oyn#Oy!T#Oy%Q#Oy!]#Oy~P!)wOZ5QO~O]5SO'])iO~O!R.^O!S(Vi~O]5VO~O^5WO~O'g'TO!R&{X!S&{X~O!R2oO!S(Sa~O!S5eO~P$7ZOx;sO'g(jO'o+iO~O!W5hO!X5gO!Y5gO!x0_O'^$dO'g(jO'o+iO~O!s5iO!t5iO~P%0^O!X5gO!Y5gO'^$dO'g(jO'o+iO~O!T.yO~O!T.yO%Q5kO~O!T.yO%Q5kO~P!BpOP5pO!T.yO!o5oO%Q5kO~OZ5uO!R'Oa!S'Oa~O!R/VO!S(Ti~O]5xO~O!c5yO~O!c5zO~O!c5{O~O!c5{O~P){O_5}O~O!]6QO~O!c6RO~O!R'ui!S'ui~P#*XO_$^O'W$^O~P!)wO_$^O!{6WO'W$^O~O_$^O!]!wO!{6WO'W$^O~O!X6]O!Y6]O'^$dO'g(jO'o+iO~O_$^O!]!wO!j6^O!{6WO'W$^O'p&oO~O!d$ZO'b$PO~P%4xO!W6_O~P%4gO!R'ry!c'ry_'ry'W'ry~P!)wO#W$gqQ$gqZ$gq_$gqj$gqv$gq!R$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq'W$gq'f$gq'p$gq!c$gq!O$gq!T$gq!{$gqn$gq%Q$gq!]$gq~P!BpO#W$iqQ$iqZ$iq_$iqj$iqv$iq!R$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq'W$iq'f$iq'p$iq!c$iq!O$iq!T$iq!{$iqn$iq%Q$iq!]$iq~P!BpO!R&li!c&li~P!)wO#m#Oq!R#Oq!S#Oq~P#*XOu-tOv-tOx-uOPra'wra'xra!Sra~OQraZrajra!ara!bra!dra!jra#[ra#]ra#^ra#_ra#`ra#ara#bra#cra#era#gra#ira#jra#mra'fra'pra!Rra~P%;OOu(SOx(TOP$^a'w$^a'x$^a!S$^a~OQ$^aZ$^aj$^av$^a!a$^a!b$^a!d$^a!j$^a#[$^a#]$^a#^$^a#_$^a#`$^a#a$^a#b$^a#c$^a#e$^a#g$^a#i$^a#j$^a#m$^a'f$^a'p$^a!R$^a~P%=SOu(SOx(TOP$`a'w$`a'x$`a!S$`a~OQ$`aZ$`aj$`av$`a!a$`a!b$`a!d$`a!j$`a#[$`a#]$`a#^$`a#_$`a#`$`a#a$`a#b$`a#c$`a#e$`a#g$`a#i$`a#j$`a#m$`a'f$`a'p$`a!R$`a~P%?WOQ$naZ$naj$nav$na!a$na!b$na!d$na!j$na#[$na#]$na#^$na#_$na#`$na#a$na#b$na#c$na#e$na#g$na#i$na#j$na#m$na'f$na'p$na!R$na!S$na~P%%aO#m$Yq!R$Yq!S$Yq~P#*XO#m$Zq!R$Zq!S$Zq~P#*XO!S6hO~O#m6iO~P!#{O!]!wO!R&ti!c&ti~O!]!wO'p&oO!R&ti!c&ti~O!R-RO!c'}q~O!O&vi!R&vi~P!BpO!R-ZO!O(Oq~O!O6oO~P!BpO!O6oO~O!R'dy'a'dy~P!#{O!R&ya!T&ya~P!BpO!T$tq_$tq!R$tq'W$tq~P!BpOZ6vO~O!R.^O!S(Vq~O]6yO~O!T&dO%Q6zO~O!T&dO%Q6zO~P!BpO!{6{O!R&{a!S&{a~O!R2oO!S(Si~P#*XO!X7RO!Y7RO'^$dO'g(jO'o+iO~O!W7TO!x4SO~P%GXO!T.yO%Q7WO~O!T.yO%Q7WO~P!BpO]7_O'g7^O~O!R/VO!S(Tq~O!c7aO~O!c7aO~P){O!c7cO~O!c7dO~O!R#Ty!S#Ty~P#*XO_$^O!{7jO'W$^O~O_$^O!]!wO!{7jO'W$^O~O!X7mO!Y7mO'^$dO'g(jO'o+iO~O_$^O!]!wO!j7nO!{7jO'W$^O'p&oO~O#m#ky!R#ky!S#ky~P#*XOQ$giZ$gij$giv$gi!a$gi!b$gi!d$gi!j$gi#[$gi#]$gi#^$gi#_$gi#`$gi#a$gi#b$gi#c$gi#e$gi#g$gi#i$gi#j$gi#m$gi'f$gi'p$gi!R$gi!S$gi~P%%aOu(SOx(TO'x(XOP$xi'w$xi!S$xi~OQ$xiZ$xij$xiv$xi!a$xi!b$xi!d$xi!j$xi#[$xi#]$xi#^$xi#_$xi#`$xi#a$xi#b$xi#c$xi#e$xi#g$xi#i$xi#j$xi#m$xi'f$xi'p$xi!R$xi~P%LjOu(SOx(TOP$zi'w$zi'x$zi!S$zi~OQ$ziZ$zij$ziv$zi!a$zi!b$zi!d$zi!j$zi#[$zi#]$zi#^$zi#_$zi#`$zi#a$zi#b$zi#c$zi#e$zi#g$zi#i$zi#j$zi#m$zi'f$zi'p$zi!R$zi~P%NnO#m$Zy!R$Zy!S$Zy~P#*XO#m#Oy!R#Oy!S#Oy~P#*XO!]!wO!R&tq!c&tq~O!R-RO!c'}y~O!O&vq!R&vq~P!BpO!O7tO~P!BpO!R.^O!S(Vy~O!R2oO!S(Sq~O!X8QO!Y8QO'^$dO'g(jO'o+iO~O!T.yO%Q8TO~O!T.yO%Q8TO~P!BpO!c8WO~O_$^O!{8]O'W$^O~O_$^O!]!wO!{8]O'W$^O~OQ$gqZ$gqj$gqv$gq!a$gq!b$gq!d$gq!j$gq#[$gq#]$gq#^$gq#_$gq#`$gq#a$gq#b$gq#c$gq#e$gq#g$gq#i$gq#j$gq#m$gq'f$gq'p$gq!R$gq!S$gq~P%%aOQ$iqZ$iqj$iqv$iq!a$iq!b$iq!d$iq!j$iq#[$iq#]$iq#^$iq#_$iq#`$iq#a$iq#b$iq#c$iq#e$iq#g$iq#i$iq#j$iq#m$iq'f$iq'p$iq!R$iq!S$iq~P%%aO'a$|!Z!R$|!Z!{$|!Z#m$|!Z~P!#{O!R&{q!S&{q~P#*XO_$^O!{8oO'W$^O~O#W$|!ZQ$|!ZZ$|!Z_$|!Zj$|!Zv$|!Z!R$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z'W$|!Z'f$|!Z'p$|!Z!c$|!Z!O$|!Z!T$|!Z!{$|!Zn$|!Z%Q$|!Z!]$|!Z~P!BpOP;uOu(SOx(TO'w(VO'x(XO~O!S!za!W!za!X!za!Y!za!r!za!s!za!t!za!x!za'^!za'g!za'o!za~P&,_O!W'eX!X'eX!Y'eX!r'eX!s'eX!t'eX!x'eX'^'eX'g'eX'o'eX~P%'eOQ$|!ZZ$|!Zj$|!Zv$|!Z!a$|!Z!b$|!Z!d$|!Z!j$|!Z#[$|!Z#]$|!Z#^$|!Z#_$|!Z#`$|!Z#a$|!Z#b$|!Z#c$|!Z#e$|!Z#g$|!Z#i$|!Z#j$|!Z#m$|!Z'f$|!Z'p$|!Z!R$|!Z!S$|!Z~P%%aO!Wra!Xra!Yra!rra!sra!tra!xra'^ra'gra'ora~P%;OO!W$^a!X$^a!Y$^a!r$^a!s$^a!t$^a!x$^a'^$^a'g$^a'o$^a~P%=SO!W$`a!X$`a!Y$`a!r$`a!s$`a!t$`a!x$`a'^$`a'g$`a'o$`a~P%?WO!S$na!W$na!X$na!Y$na!r$na!s$na!t$na!x$na'^$na'g$na'o$na~P&,_O!W$xi!X$xi!Y$xi!r$xi!s$xi!t$xi!x$xi'^$xi'g$xi'o$xi~P%LjO!W$zi!X$zi!Y$zi!r$zi!s$zi!t$zi!x$zi'^$zi'g$zi'o$zi~P%NnO!S$gi!W$gi!X$gi!Y$gi!r$gi!s$gi!t$gi!x$gi'^$gi'g$gi'o$gi~P&,_O!S$gq!W$gq!X$gq!Y$gq!r$gq!s$gq!t$gq!x$gq'^$gq'g$gq'o$gq~P&,_O!S$iq!W$iq!X$iq!Y$iq!r$iq!s$iq!t$iq!x$iq'^$iq'g$iq'o$iq~P&,_O!S$|!Z!W$|!Z!X$|!Z!Y$|!Z!r$|!Z!s$|!Z!t$|!Z!x$|!Z'^$|!Z'g$|!Z'o$|!Z~P&,_On'hX~P.jOn[X!O[X!c[X%r[X!T[X%Q[X!][X~P$zO!]dX!c[X!cdX'pdX~P;dOQ9^OR9^O]cOb;`Oc!jOhcOj9^OkcOlcOq9^Os9^OxRO{cO|cO}cO!TSO!_9`O!dUO!g9^O!h9^O!i9^O!j9^O!k9^O!n!iO#t!lO#x^O']'cO'fQO'oYO'|;^O~O]#qOh$QOj#rOk#qOl#qOq$ROs9uOx#yO!T#zO!_;fO!d#vO#V:OO#t$VO$_9xO$a9{O$d$WO']&{O'b$PO'f#sO~O!R9pO!S$]a~O]#qOh$QOj#rOk#qOl#qOq$ROs9vOx#yO!T#zO!_;gO!d#vO#V:PO#t$VO$_9yO$a9|O$d$WO']&{O'b$PO'f#sO~O#d'jO~P&]P!AQ!AY!A^!A^P!>YP!Ab!AbP!DVP!DZ?Z?Z!Da!GT8SP8SP8S8SP!HW8S8S!Jf8S!M_8S# g8S8S#!T#$c#$c#$g#$c#$oP#$cP8S#%k8S#'X8S8S-zPPP#(yPP#)c#)cP#)cP#)x#)cPP#*OP#)uP#)u#*b!!X#)u#+P#+V#+Y([#+]([P#+d#+d#+dP([P([P([P([PP([P#+j#+mP#+m([P#+qP#+tP([P([P([P([P([P([([#+z#,U#,[#,b#,p#,v#,|#-W#-^#-m#-s#.R#.X#._#.m#/S#0z#1Y#1`#1f#1l#1r#1|#2S#2Y#2d#2v#2|PPPPPPPP#3SPP#3v#7OPP#8f#8m#8uPP#>a#@t#Fp#Fs#Fv#GR#GUPP#GX#G]#Gz#Hq#Hu#IZPP#I_#Ie#IiP#Il#Ip#Is#Jc#Jy#KO#KR#KU#K[#K_#Kc#KgmhOSj}!n$]%c%f%g%i*o*t/g/jQ$imQ$ppQ%ZyS&V!b+`Q&k!jS(l#z(qQ)g$jQ)t$rQ*`%TQ+f&^S+k&d+mQ+}&lQ-k(sQ/U*aY0Z+o+p+q+r+sS2t.y2vU3|0[0^0aU5g2y2z2{S6]4O4RS7R5h5iQ7m6_R8Q7T$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ(}$SQ)l$lQ*b%WQ*i%`Q,X9tQ.W)aQ.c)mQ/^*gQ2_.^Q3Z/VQ4^9vQ5S2`R8{9upeOSjy}!n$]%Y%c%f%g%i*o*t/g/jR*d%[&WVOSTjkn}!S!W!k!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%z&S&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;`;a[!cRU!]!`%x&WQ$clQ$hmS$mp$rv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ%PwQ&h!iQ&j!jS(_#v(cS)f$i$jQ)j$lQ)w$tQ*Z%RQ*_%TS+|&k&lQ-V(`Q.[)gQ.b)mQ.d)nQ.g)rQ/P*[S/T*`*aQ0h+}Q1b-RQ2^.^Q2b.aQ2g.iQ3Y/UQ4i1cQ5R2`Q5U2dQ6u5QR7w6vx#xa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k!Y$fm!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^Q)`$cQ*P$|Q*S$}Q*^%TQ.k)wQ/O*ZU/S*_*`*aQ3T/PS3X/T/UQ5b2sQ5t3YS7P5c5fS8O7Q7SQ8f8PQ8u8g#[;b!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd;c9d9x9{:O:V:Y:]:b:e:ke;d9r9y9|:P:W:Z:^:c:f:lW#}a$P(y;^S$|t%YQ$}uQ%OvR)}$z%P#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vT(O#s(PX)O$S9t9u9vU&Z!b$v+cQ'U!{Q)q$oQ.t*TQ1z-tR5^2o&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a$]#aZ!_!o$a%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,i,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|T!XQ!Y&_cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ&X!bR/|+`Y&R!b&V&^+`+fS(k#z(qS+j&d+mS-d(l(sQ-e(mQ-l(tQ.v*VU0W+k+o+pU0]+q+r+sS0b+t2xQ1u-kQ1w-mQ1x-nS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mQ8g8QQ;h;oR;m;slhOSj}!n$]%c%f%g%i*o*t/g/jQ%k!QS&x!v9cQ)d$gQ*X%PQ*Y%QQ+z&iS,]&}:RS-y)V:_Q.Y)eQ.x*WQ/n*vQ/p*wQ/x+ZQ0`+qQ0f+{S2P-z:gQ2Y.ZS2].]:hQ3r/zQ3u0RQ4U0gQ5P2ZQ6T3tQ6X3zQ6a4VQ7e6RQ7h6YQ8Y7iQ8l8[R8x8n$W#`Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|W(v#{&|1V8qT)Z$a,i$W#_Z!_!o%w%}&y'Q'W'X'Y'Z'[']'^'_'`'a'b'd'g'k'u)p+R+^+g,O,^,d,g,w-x/v/y0i0s0w0x0y0z0{0|0}1O1P1Q1R1S1T1W1]2O2[3s3v4W4[4]4b4c5`6S6V6b6f6g7g7z8Z8m8y9_:|Q'f#`S)Y$a,iR-{)Z&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ%f{Q%g|Q%i!OQ%j!PR/f*rQ&e!iQ)[$cQ+w&hS.Q)`)wS0c+u+vW2S-}.O.P.kS4T0d0eU4|2U2V2WU6s4{5Y5ZQ7v6tR8b7yT+l&d+mS+j&d+mU0W+k+o+pU0]+q+r+sS0b+t2xS2s.y2vU3{0Z0[0^Q4P0_Q4Q0aS5c2t2{S5f2y2zU6Z3|4O4RQ6`4SS7Q5g5hQ7S5iS7k6]6_S8P7R7TQ8^7mR8g8QS+l&d+mT2u.y2vS&r!q/dQ-U(_Q-b(kS0V+j2sQ1g-VS1p-c-lU3}0]0b5fQ4h1bS4s1v1xU6^4P4Q7SQ6k4iQ6r4vR7n6`Q!xXS&q!q/dQ)W$[Q)b$eQ)h$kQ,Q&rQ-T(_Q-a(kQ-f(nQ.X)cQ/Q*]S0U+j2sS1f-U-VS1o-b-lQ1r-eQ1t-gQ3V/RW3y0V0]0b5fQ4g1bQ4k1gS4o1p1xQ4t1wQ5r3WW6[3}4P4Q7SS6j4h4iS6n4p:iQ6p4sQ6}5aQ7[5sS7l6^6`Q7r6kS7s6o:mQ7u6rQ7|7OQ8V7]Q8_7nS8a7t:nQ8d7}Q8s8eQ9Q8tQ9X9RQ:u:pQ;T:zQ;U:{Q;V;hR;[;m$rWORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oS!xn!k!j:o#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:u;`$rXORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ$[b!Y$em!j$h$i$j&U&j&k&l(k)f)g+]+j+|+}-d.[0Q0W0]0h1u3{4Q6Z7k8^S$kn!kQ)c$fQ*]%TW/R*^*_*`*aU3W/S/T/UQ5a2sS5s3X3YU7O5b5c5fQ7]5tU7}7P7Q7SS8e8O8PS8t8f8gQ9R8u!j:p#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aQ:z;_R:{;`$f]OSTjk}!S!W!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oY!hRU!]!`%xv$wrs!r!u$Z$u&`&t&w)x)y)z*m+Y+h,S,U/o0lQ*j%`!h:q#]#k'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR:t&WS&[!b$vR0O+c$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!j'e#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aR*i%`$roORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8oQ'U!{!k:r#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a!h#VZ!_$a%w%}&y'Q'_'`'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_!R9k'd'u+^,i/v/y0w1P1Q1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!d#XZ!_$a%w%}&y'Q'a'b'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_}9m'd'u+^,i/v/y0w1R1S1W1]3s4]4b4c5`6S6b6f6g7z:|!`#]Z!_$a%w%}&y'Q'g'k)p+R+g,O,^,d,w-x0i0s1T2O2[3v4W4[6V7g8Z8m8y9_Q1a-Px;a'd'u+^,i/v/y0w1W1]3s4]4b4c5`6S6b6f6g7z:|Q;i;pQ;j;qR;k;r&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#l`#mR1Y,l&e_ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aS#g^#nT'n#i'rT#h^#nT'p#i'r&e`ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$]$n%[%_%`%c%e%f%g%i%m%x%z&S&W&_&f&p&}'R'w(R)V)^*k*o*t+T+X+[+x,P,b,h,l,m-u-z.S.].|/_/`/a/c/g/j/l/{0T0j0t1X2i2q3R3f3h3i3q3x5o5}6W6{7j8]8o9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;aT#l`#mQ#o`R'y#m$rbORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$]$n%[%_%`%c%e%f%g%i%m%x%z&S&_&f&p&}'R(R)V)^*k*o*t+T+x,P,b,h-u-z.S.].|/_/`/a/c/g/j/l0T0j0t2i3R3f3h3i3x5o5}6W7j8]8o!k;_#]#k&W'w+X+[,m/{1X2q3q6{9^9`9c9e9f9g9h9i9j9k9l9m9n9o9p9s:Q:R:T:_:`:g:h;a#RdOSUj}!S!W!n!|#k$]%[%_%`%c%e%f%g%i%m&S&f'w)^*k*o*t+x,m-u.S.|/_/`/a/c/g/j/l1X2i3R3f3h3i5o5}x#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vQ)S$WQ,x(Sd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:kx#wa!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;kQ(d#xS(n#z(qQ)T$XQ-g(o#[:w!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd:x9d9x9{:O:V:Y:]:b:e:kd:y9r9y9|:P:W:Z:^:c:f:lQ:};bQ;O;cQ;P;dQ;Q;eQ;R;fR;S;gx#{a!y$T$U$Y(W(Y(b(w(x,_-Y-w1a1y6i;^;i;j;k#[&|!w#d#v#y&g'}(Z(h)])_)a*O*R+y-Z-].R.T.p.s.{.}1k1s2Q2T2X2j3Q3S4l4u4}5k5p6z7W8T9w9z9}:U:X:[:a:d:j;l;n;t;u;vd1V9r9y9|:P:W:Z:^:c:f:le8q9d9x9{:O:V:Y:]:b:e:klfOSj}!n$]%c%f%g%i*o*t/g/jQ(g#yQ*}%pQ+O%rR1j-Z%O#|a!w!y#d#v#y$T$U$Y&g'}(W(Y(Z(b(h(w(x)])_)a*O*R+y,_-Y-Z-]-w.R.T.p.s.{.}1a1k1s1y2Q2T2X2j3Q3S4l4u4}5k5p6i6z7W8T9d9r9w9x9y9z9{9|9}:O:P:U:V:W:X:Y:Z:[:]:^:a:b:c:d:e:f:j:k:l;^;i;j;k;l;n;t;u;vQ*Q$}Q.r*SQ2m.qR5]2nT(p#z(qS(p#z(qT2u.y2vQ)b$eQ-f(nQ.X)cQ/Q*]Q3V/RQ5r3WQ6}5aQ7[5sQ7|7OQ8V7]Q8d7}Q8s8eQ9Q8tR9X9Rp(W#t'O)U-X-o-p0q1h1}4f4w7q:v;W;X;Y!n:U&z'i(^(f+v,[,t-P-^-|.P.o.q0e0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r[:V8p9O9V9Y9Z9]]:W1U4a6c7o7p8zr(Y#t'O)U,}-X-o-p0q1h1}4f4w7q:v;W;X;Y!p:X&z'i(^(f+v,[,t-P-^-|.P.o.q0e0n0p1i1m2W2l2n3O4Y4Z4m4q4y5O5Z5n6m6q7Y8`;Z;];p;q;r^:Y8p9O9T9V9Y9Z9]_:Z1U4a6c6d7o7p8zpeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ%VxR*k%`peOSjy}!n$]%Y%c%f%g%i*o*t/g/jR%VxQ*U%OR.n)}qeOSjy}!n$]%Y%c%f%g%i*o*t/g/jQ.z*ZS3P/O/PW5j2|2}3O3TU7V5l5m5nU8R7U7X7YQ8h8SR8v8iQ%^yR*e%YR3^/XR7_5uS$mp$rR.d)nQ%czR*o%dR*u%jT/h*t/jR*y%kQ*x%kR/q*yQjOQ!nST$`j!nQ(P#sR,u(PQ!YQR%u!YQ!^RU%{!^%|+UQ%|!_R+U%}Q+a&XR/}+aQ,`'OR0r,`Q,c'QS0u,c0vR0v,dQ+m&dR0X+mS!eR$uU&a!e&b+VQ&b!fR+V&OQ+d&[R0P+dQ&u!sQ,R&sU,V&u,R0mR0m,WQ'r#iR,n'rQ#m`R'x#mQ#cZU'h#c+Q9qQ+Q9_R9q'uQ-S(_W1d-S1e4j6lU1e-T-U-VS4j1f1gR6l4k$k(U#t&z'O'i(^(f)P)Q)U+v,Y,Z,[,t,}-O-P-X-^-o-p-|.P.o.q0e0n0o0p0q1U1h1i1m1}2W2l2n3O4Y4Z4_4`4a4f4m4q4w4y5O5Z5n6c6d6e6m6q7Y7o7p7q8`8p8z8|8}9O9T9U9V9Y9Z9]:v;W;X;Y;Z;];p;q;rQ-[(fU1l-[1n4nQ1n-^R4n1mQ(q#zR-i(qQ(z$OR-r(zQ2R-|R4z2RQ){$xR.m){Q2p.tS5_2p6|R6|5`Q*W%PR.w*WQ2v.yR5d2vQ/W*bS3[/W5vR5v3^Q._)jW2a._2c5T6wQ2c.bQ5T2bR6w5UQ)o$mR.e)oQ/j*tR3l/jWiOSj!nQ%h}Q)X$]Q*n%cQ*p%fQ*q%gQ*s%iQ/e*oS/h*t/jR3k/gQ$_gQ%l!RQ%o!TQ%q!UQ%s!VQ)v$sQ)|$yQ*d%^Q*{%nQ-h(pS/Z*e*hQ/r*zQ/s*}Q/t+OS0S+j2sQ2f.hQ2k.oQ3U/QQ3`/]Q3j/fY3w0U0V0]0b5fQ5X2hQ5[2lQ5q3VQ5w3_[6U3v3y3}4P4Q7SQ6x5VQ7Z5rQ7`5xW7f6V6[6^6`Q7x6yQ7{6}Q8U7[U8X7g7l7nQ8c7|Q8j8VS8k8Z8_Q8r8dQ8w8mQ9P8sQ9S8yQ9W9QR9[9XQ$gmQ&i!jU)e$h$i$jQ+Z&UU+{&j&k&lQ-`(kS.Z)f)gQ/z+]Q0R+jS0g+|+}Q1q-dQ2Z.[Q3t0QS3z0W0]Q4V0hQ4r1uS6Y3{4QQ7i6ZQ8[7kR8n8^S#ua;^R({$PU$Oa$P;^R-q(yQ#taS&z!w)aQ'O!yQ'i#dQ(^#vQ(f#yQ)P$TQ)Q$UQ)U$YQ+v&gQ,Y9wQ,Z9zQ,[9}Q,t'}Q,}(WQ-O(YQ-P(ZQ-X(bQ-^(hQ-o(wQ-p(xd-|)].R.{2T3Q4}5k6z7W8TQ.P)_Q.o*OQ.q*RQ0e+yQ0n:UQ0o:XQ0p:[Q0q,_Q1U9rQ1h-YQ1i-ZQ1m-]Q1}-wQ2W.TQ2l.pQ2n.sQ3O.}Q4Y:aQ4Z:dQ4_9yQ4`9|Q4a:PQ4f1aQ4m1kQ4q1sQ4w1yQ4y2QQ5O2XQ5Z2jQ5n3SQ6c:^Q6d:WQ6e:ZQ6m4lQ6q4uQ7Y5pQ7o:cQ7p:fQ7q6iQ8`:jQ8p9dQ8z:lQ8|9xQ8}9{Q9O:OQ9T:VQ9U:YQ9V:]Q9Y:bQ9Z:eQ9]:kQ:v;^Q;W;iQ;X;jQ;Y;kQ;Z;lQ;];nQ;p;tQ;q;uR;r;vlgOSj}!n$]%c%f%g%i*o*t/g/jS!pU%eQ%n!SQ%t!WQ'V!|Q'v#kS*h%[%_Q*l%`Q*z%mQ+W&SQ+u&fQ,r'wQ.O)^Q/b*kQ0d+xQ1[,mQ1{-uQ2V.SQ2}.|Q3b/_Q3c/`Q3e/aQ3g/cQ3n/lQ4d1XQ5Y2iQ5m3RQ5|3fQ6O3hQ6P3iQ7X5oR7b5}!vZOSUj}!S!n!|$]%[%_%`%c%e%f%g%i%m&S&f)^*k*o*t+x-u.S.|/_/`/a/c/g/j/l2i3R3f3h3i5o5}Q!_RQ!oTQ$akS%w!]%zQ%}!`Q&y!vQ'Q!zQ'W#PQ'X#QQ'Y#RQ'Z#SQ'[#TQ']#UQ'^#VQ'_#WQ'`#XQ'a#YQ'b#ZQ'd#]Q'g#bQ'k#eW'u#k'w,m1XQ)p$nS+R%x+TS+^&W/{Q+g&_Q,O&pQ,^&}Q,d'RQ,g9^Q,i9`Q,w(RQ-x)VQ/v+XQ/y+[Q0i,PQ0s,bQ0w9cQ0x9eQ0y9fQ0z9gQ0{9hQ0|9iQ0}9jQ1O9kQ1P9lQ1Q9mQ1R9nQ1S9oQ1T,hQ1W9sQ1]9pQ2O-zQ2[.]Q3s:QQ3v0TQ4W0jQ4[0tQ4]:RQ4b:TQ4c:_Q5`2qQ6S3qQ6V3xQ6b:`Q6f:gQ6g:hQ7g6WQ7z6{Q8Z7jQ8m8]Q8y8oQ9_!WR:|;aR!aRR&Y!bS&U!b+`S+]&V&^R0Q+fR'P!yR'S!zT!tU$ZS!sU$ZU$xrs*mS&s!r!uQ,T&tQ,W&wQ.l)zS0k,S,UR4X0l`!dR!]!`$u%x&`)x+hh!qUrs!r!u$Z&t&w)z,S,U0lQ/d*mQ/w+YQ3p/oT:s&W)yT!gR$uS!fR$uS%y!]&`S&O!`)xS+S%x+hT+_&W)yT&]!b$vQ#i^R'{#nT'q#i'rR1Z,lT(a#v(cR(i#yQ-})]Q2U.RQ2|.{Q4{2TQ5l3QQ6t4}Q7U5kQ7y6zQ8S7WR8i8TlhOSj}!n$]%c%f%g%i*o*t/g/jQ%]yR*d%YV$yrs*mR.u*TR*c%WQ$qpR)u$rR)k$lT%az%dT%bz%dT/i*t/j",nodeNames:"\u26A0 extends ArithOp ArithOp InterpolationStart LineComment BlockComment Script ExportDeclaration export Star as VariableName String from ; default FunctionDeclaration async function VariableDefinition TypeParamList TypeDefinition ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Interpolation null super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression await yield delete LogicOp BitOp ParenthesizedExpression ClassExpression class extends ClassBody MethodDeclaration Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression PrivatePropertyName BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement",maxTerm:332,context:trackNewline,nodeProps:[["closedBy",4,"InterpolationEnd",40,"]",51,"}",66,")",132,"JSXSelfCloseEndTag JSXEndTag",146,"JSXEndTag"],["group",-26,8,15,17,58,184,188,191,192,194,197,200,211,213,219,221,223,225,228,234,240,242,244,246,248,250,251,"Statement",-30,12,13,24,27,28,41,43,44,45,47,52,60,68,74,75,91,92,101,103,119,122,124,125,126,127,129,130,148,149,151,"Expression",-22,23,25,29,32,34,152,154,156,157,159,160,161,163,164,165,167,168,169,178,180,182,183,"Type",-3,79,85,90,"ClassItem"],["openedBy",30,"InterpolationStart",46,"[",50,"{",65,"(",131,"JSXStartTag",141,"JSXStartTag JSXStartCloseTag"]],propSources:[jsHighlight],skippedNodes:[0,5,6],repeatNodeCount:28,tokenData:"!C}~R!`OX%TXY%cYZ'RZ[%c[]%T]^'R^p%Tpq%cqr'crs(kst0htu2`uv4pvw5ewx6cxyk|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!U#R#S2`#S#T!>i#T#o2`#o#p!>y#p#q!?O#q#r!?f#r#s!?x#s$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$I|2`$I|$I}!Bq$I}$JO!Bq$JO$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`W%YR$UWO!^%T!_#o%T#p~%T7Z%jg$UW'Y7ROX%TXY%cYZ%TZ[%c[p%Tpq%cq!^%T!_#o%T#p$f%T$f$g%c$g#BY%T#BY#BZ%c#BZ$IS%T$IS$I_%c$I_$JT%T$JT$JU%c$JU$KV%T$KV$KW%c$KW&FU%T&FU&FV%c&FV?HT%T?HT?HU%c?HU~%T7Z'YR$UW'Z7RO!^%T!_#o%T#p~%T$T'jS$UW!j#{O!^%T!_!`'v!`#o%T#p~%T$O'}S#e#v$UWO!^%T!_!`(Z!`#o%T#p~%T$O(bR#e#v$UWO!^%T!_#o%T#p~%T)X(rZ$UW]#eOY(kYZ)eZr(krs*rs!^(k!^!_+U!_#O(k#O#P-b#P#o(k#o#p+U#p~(k&r)jV$UWOr)ers*Ps!^)e!^!_*a!_#o)e#o#p*a#p~)e&r*WR$P&j$UWO!^%T!_#o%T#p~%T&j*dROr*ars*ms~*a&j*rO$P&j)X*{R$P&j$UW]#eO!^%T!_#o%T#p~%T)P+ZV]#eOY+UYZ*aZr+Urs+ps#O+U#O#P+w#P~+U)P+wO$P&j]#e)P+zROr+Urs,Ts~+U)P,[U$P&j]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e,sU]#eOY,nZr,nrs-Vs#O,n#O#P-[#P~,n#e-[O]#e#e-_PO~,n)X-gV$UWOr(krs-|s!^(k!^!_+U!_#o(k#o#p+U#p~(k)X.VZ$P&j$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/PZ$UW]#eOY.xYZ%TZr.xrs/rs!^.x!^!_,n!_#O.x#O#P0S#P#o.x#o#p,n#p~.x#m/yR$UW]#eO!^%T!_#o%T#p~%T#m0XT$UWO!^.x!^!_,n!_#o.x#o#p,n#p~.x3]0mZ$UWOt%Ttu1`u!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`3]1g]$UW'o3TOt%Ttu1`u!Q%T!Q![1`![!^%T!_!c%T!c!}1`!}#R%T#R#S1`#S#T%T#T#o1`#p$g%T$g~1`7Z2k_$UW#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`[3q_$UW#zSOt%Ttu3ju}%T}!O3j!O!Q%T!Q![3j![!^%T!_!c%T!c!}3j!}#R%T#R#S3j#S#T%T#T#o3j#p$g%T$g~3j$O4wS#^#v$UWO!^%T!_!`5T!`#o%T#p~%T$O5[R$UW#o#vO!^%T!_#o%T#p~%T5b5lU'x5Y$UWOv%Tvw6Ow!^%T!_!`5T!`#o%T#p~%T$O6VS$UW#i#vO!^%T!_!`5T!`#o%T#p~%T)X6jZ$UW]#eOY6cYZ7]Zw6cwx*rx!^6c!^!_8T!_#O6c#O#P:T#P#o6c#o#p8T#p~6c&r7bV$UWOw7]wx*Px!^7]!^!_7w!_#o7]#o#p7w#p~7]&j7zROw7wwx*mx~7w)P8YV]#eOY8TYZ7wZw8Twx+px#O8T#O#P8o#P~8T)P8rROw8Twx8{x~8T)P9SU$P&j]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e9kU]#eOY9fZw9fwx-Vx#O9f#O#P9}#P~9f#e:QPO~9f)X:YV$UWOw6cwx:ox!^6c!^!_8T!_#o6c#o#p8T#p~6c)X:xZ$P&j$UW]#eOY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#PW{!^%T!_!`5T!`#o%T#p~%T$O>_S#[#v$UWO!^%T!_!`5T!`#o%T#p~%T%w>rSj%o$UWO!^%T!_!`5T!`#o%T#p~%T&i?VR!R&a$UWO!^%T!_#o%T#p~%T7Z?gVu5^$UWO!O%T!O!P?|!P!Q%T!Q![@r![!^%T!_#o%T#p~%T!{@RT$UWO!O%T!O!P@b!P!^%T!_#o%T#p~%T!{@iR!Q!s$UWO!^%T!_#o%T#p~%T!{@yZ$UWk!sO!Q%T!Q![@r![!^%T!_!g%T!g!hAl!h#R%T#R#S@r#S#X%T#X#YAl#Y#o%T#p~%T!{AqZ$UWO{%T{|Bd|}%T}!OBd!O!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{BiV$UWO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T!{CVV$UWk!sO!Q%T!Q![CO![!^%T!_#R%T#R#SCO#S#o%T#p~%T7ZCs`$UW#]#vOYDuYZ%TZzDuz{Jl{!PDu!P!Q!-e!Q!^Du!^!_Fx!_!`!.^!`!a!/]!a!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXD|[$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~DuXEy_$UW}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%TPF}V}POYFxZ!PFx!P!QGd!Q!}Fx!}#OG{#O#PHh#P~FxPGiU}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGdPHOTOYG{Z#OG{#O#PH_#P#QFx#Q~G{PHbQOYG{Z~G{PHkQOYFxZ~FxXHvY$UWOYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~HqXIkV$UWOYHqYZ%TZ!^Hq!^!_G{!_#oHq#o#pG{#p~HqXJVV$UWOYDuYZ%TZ!^Du!^!_Fx!_#oDu#o#pFx#p~Du7ZJs^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q!,R!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7ZKtV$UWOzKoz{LZ{!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZL`X$UWOzKoz{LZ{!PKo!P!QL{!Q!^Ko!^!_M]!_#oKo#o#pM]#p~Ko7ZMSR$UWU7RO!^%T!_#o%T#p~%T7RM`ROzM]z{Mi{~M]7RMlTOzM]z{Mi{!PM]!P!QM{!Q~M]7RNQOU7R7ZNX^$UW}POYJlYZKoZzJlz{NQ{!PJl!P!Q! T!Q!^Jl!^!_!!]!_!}Jl!}#O!'|#O#P!+a#P#oJl#o#p!!]#p~Jl7Z! ^_$UWU7R}PO!^%T!_#Z%T#Z#[Er#[#]%T#]#^Er#^#a%T#a#bEr#b#g%T#g#hEr#h#i%T#i#jEr#j#m%T#m#nEr#n#o%T#p~%T7R!!bY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!&x!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#VY}POY!!]YZM]Zz!!]z{!#Q{!P!!]!P!Q!#u!Q!}!!]!}#O!$`#O#P!&f#P~!!]7R!#|UU7R}P#Z#[Gd#]#^Gd#a#bGd#g#hGd#i#jGd#m#nGd7R!$cWOY!$`YZM]Zz!$`z{!${{#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%OYOY!$`YZM]Zz!$`z{!${{!P!$`!P!Q!%n!Q#O!$`#O#P!&S#P#Q!!]#Q~!$`7R!%sTU7ROYG{Z#OG{#O#PH_#P#QFx#Q~G{7R!&VTOY!$`YZM]Zz!$`z{!${{~!$`7R!&iTOY!!]YZM]Zz!!]z{!#Q{~!!]7R!&}_}POzM]z{Mi{#ZM]#Z#[!&x#[#]M]#]#^!&x#^#aM]#a#b!&x#b#gM]#g#h!&x#h#iM]#i#j!&x#j#mM]#m#n!&x#n~M]7Z!(R[$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!(|^$UWOY!'|YZKoZz!'|z{!(w{!P!'|!P!Q!)x!Q!^!'|!^!_!$`!_#O!'|#O#P!*o#P#QJl#Q#o!'|#o#p!$`#p~!'|7Z!*PY$UWU7ROYHqYZ%TZ!^Hq!^!_G{!_#OHq#O#PIf#P#QDu#Q#oHq#o#pG{#p~Hq7Z!*tX$UWOY!'|YZKoZz!'|z{!(w{!^!'|!^!_!$`!_#o!'|#o#p!$`#p~!'|7Z!+fX$UWOYJlYZKoZzJlz{NQ{!^Jl!^!_!!]!_#oJl#o#p!!]#p~Jl7Z!,Yc$UW}POzKoz{LZ{!^Ko!^!_M]!_#ZKo#Z#[!,R#[#]Ko#]#^!,R#^#aKo#a#b!,R#b#gKo#g#h!,R#h#iKo#i#j!,R#j#mKo#m#n!,R#n#oKo#o#pM]#p~Ko7Z!-lV$UWT7ROY!-eYZ%TZ!^!-e!^!_!.R!_#o!-e#o#p!.R#p~!-e7R!.WQT7ROY!.RZ~!.R$P!.g[$UW#o#v}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du]!/f[#wS$UW}POYDuYZ%TZ!PDu!P!QEr!Q!^Du!^!_Fx!_!}Du!}#OHq#O#PJQ#P#oDu#o#pFx#p~Du!{!0cd$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#U%T#U#V!3X#V#X%T#X#YAl#Y#b%T#b#c!2w#c#d!4m#d#l%T#l#m!5{#m#o%T#p~%T!{!1x_$UWk!sO!O%T!O!P@r!P!Q%T!Q![!1q![!^%T!_!g%T!g!hAl!h#R%T#R#S!1q#S#X%T#X#YAl#Y#b%T#b#c!2w#c#o%T#p~%T!{!3OR$UWk!sO!^%T!_#o%T#p~%T!{!3^W$UWO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#o%T#p~%T!{!3}Y$UWk!sO!Q%T!Q!R!3v!R!S!3v!S!^%T!_#R%T#R#S!3v#S#b%T#b#c!2w#c#o%T#p~%T!{!4rV$UWO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#o%T#p~%T!{!5`X$UWk!sO!Q%T!Q!Y!5X!Y!^%T!_#R%T#R#S!5X#S#b%T#b#c!2w#c#o%T#p~%T!{!6QZ$UWO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#o%T#p~%T!{!6z]$UWk!sO!Q%T!Q![!6s![!^%T!_!c%T!c!i!6s!i#R%T#R#S!6s#S#T%T#T#Z!6s#Z#b%T#b#c!2w#c#o%T#p~%T$u!7|R!]V$UW#m$fO!^%T!_#o%T#p~%T!q!8^R_!i$UWO!^%T!_#o%T#p~%T5w!8rR'bd!a/n#x&s'|P!P!Q!8{!^!_!9Q!_!`!9_W!9QO$WW#v!9VP#`#v!_!`!9Y#v!9_O#o#v#v!9dO#a#v$u!9kT!{$m$UWO!^%T!_!`'v!`!a!9z!a#o%T#p~%T$P!:RR#W#w$UWO!^%T!_#o%T#p~%T%V!:gT'a!R#a#v$RS$UWO!^%T!_!`!:v!`!a!;W!a#o%T#p~%T$O!:}R#a#v$UWO!^%T!_#o%T#p~%T$O!;_T#`#v$UWO!^%T!_!`5T!`!a!;n!a#o%T#p~%T$O!;uS#`#v$UWO!^%T!_!`5T!`#o%T#p~%T*a!]S#g#v$UWO!^%T!_!`5T!`#o%T#p~%T$a!>pR$UW'f$XO!^%T!_#o%T#p~%T~!?OO!T~5b!?VT'w5Y$UWO!^%T!_!`5T!`#o%T#p#q!=P#q~%T6X!?oR!S5}nQ$UWO!^%T!_#o%T#p~%TX!@PR!kP$UWO!^%T!_#o%T#p~%T7Z!@gr$UW'Y7R#zS']$y'g3SOX%TXY%cYZ%TZ[%c[p%Tpq%cqt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$f%T$f$g%c$g#BY2`#BY#BZ!@Y#BZ$IS2`$IS$I_!@Y$I_$JT2`$JT$JU!@Y$JU$KV2`$KV$KW!@Y$KW&FU2`&FU&FV!@Y&FV?HT2`?HT?HU!@Y?HU~2`7Z!CO_$UW'Z7R#zS']$y'g3SOt%Ttu2`u}%T}!O3j!O!Q%T!Q![2`![!^%T!_!c%T!c!}2`!}#R%T#R#S2`#S#T%T#T#o2`#p$g%T$g~2`",tokenizers:[tsExtends,noSemicolon,incdecToken,template,0,1,2,3,4,5,6,7,8,9,insertSemicolon],topRules:{Script:[0,7]},dialects:{jsx:12107,ts:12109},dynamicPrecedences:{149:1,176:1},specialized:[{term:289,get:o=>spec_identifier[o]||-1},{term:299,get:o=>spec_word[o]||-1},{term:63,get:o=>spec_LessThan[o]||-1}],tokenPrec:12130}),snippets=[snippetCompletion("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),snippetCompletion("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),snippetCompletion(`try { - \${} -} catch (\${error}) { - \${} -}`,{label:"try",detail:"/ catch block",type:"keyword"}),snippetCompletion("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),snippetCompletion(`if (\${}) { - \${} -} else { - \${} -}`,{label:"if",detail:"/ else block",type:"keyword"}),snippetCompletion(`class \${name} { - constructor(\${params}) { - \${} - } -}`,{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],cache=new NodeWeakMap,ScopeNodes=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function defID(o){return(e,s)=>{let a=e.node.getChild("VariableDefinition");return a&&s(a,o),!0}}const functionContext=["FunctionDeclaration"],gatherCompletions={FunctionDeclaration:defID("function"),ClassDeclaration:defID("class"),ClassExpression:()=>!0,EnumDeclaration:defID("constant"),TypeAliasDeclaration:defID("type"),NamespaceDeclaration:defID("namespace"),VariableDefinition(o,e){o.matchContext(functionContext)||e(o,"variable")},TypeDefinition(o,e){e(o,"type")},__proto__:null};function getScope(o,e){let s=cache.get(e);if(s)return s;let a=[],c=!0;function h(d,g){let _=o.sliceString(d.from,d.to);a.push({label:_,type:g})}return e.cursor(IterMode.IncludeAnonymous).iterate(d=>{if(c)c=!1;else if(d.name){let g=gatherCompletions[d.name];if(g&&g(d,h)||ScopeNodes.has(d.name))return!1}else if(d.to-d.from>8192){for(let g of getScope(o,d.node))a.push(g);return!1}}),cache.set(e,a),a}const Identifier=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,dontComplete=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function localCompletionSource(o){let e=syntaxTree(o.state).resolveInner(o.pos,-1);if(dontComplete.indexOf(e.name)>-1)return null;let s=e.to-e.from<20&&Identifier.test(o.state.sliceDoc(e.from,e.to));if(!s&&!o.explicit)return null;let a=[];for(let c=e;c;c=c.parent)ScopeNodes.has(c.name)&&(a=a.concat(getScope(o.state.doc,c)));return{options:a,from:s?e.from:o.pos,validFor:Identifier}}const javascriptLanguage=LRLanguage.define({parser:parser.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:flatIndent,SwitchBody:o=>{let e=o.textAfter,s=/^\s*\}/.test(e),a=/^\s*(case|default)\b/.test(e);return o.baseIndent+(s?0:a?1:2)*o.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:o=>o.baseIndent+o.unit,"TemplateString BlockComment":()=>null,"Statement Property":continuedIndent({except:/^{/}),JSXElement(o){let e=/^\s*<\//.test(o.textAfter);return o.lineIndent(o.node.from)+(e?0:o.unit)},JSXEscape(o){let e=/\s*\}/.test(o.textAfter);return o.lineIndent(o.node.from)+(e?0:o.unit)},"JSXOpenTag JSXSelfClosingTag"(o){return o.column(o.node.from)+o.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":foldInside,BlockComment(o){return{from:o.from+2,to:o.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),typescriptLanguage=javascriptLanguage.configure({dialect:"ts"}),jsxLanguage=javascriptLanguage.configure({dialect:"jsx"}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts"}),keywords="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(o=>({label:o,type:"keyword"}));function javascript(o={}){let e=o.jsx?o.typescript?tsxLanguage:jsxLanguage:o.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,[javascriptLanguage.data.of({autocomplete:ifNotIn(dontComplete,completeFromList(snippets.concat(keywords)))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),o.jsx?autoCloseTags:[]])}function elementName(o,e,s=o.length){if(!e)return"";let a=e.getChild("JSXIdentifier");return a?o.sliceString(a.from,Math.min(a.to,s)):""}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),autoCloseTags=EditorView.inputHandler.of((o,e,s,a)=>{if((android?o.composing:o.compositionStarted)||o.state.readOnly||e!=s||a!=">"&&a!="/"||!javascriptLanguage.isActiveAt(o.state,e,-1))return!1;let{state:c}=o,h=c.changeByRange(d=>{var g,_,b;let{head:$}=d,j=syntaxTree(c).resolveInner($,-1),_e;if(j.name=="JSXStartTag"&&(j=j.parent),a==">"&&j.name=="JSXFragmentTag")return{range:EditorSelection.cursor($+1),changes:{from:$,insert:"><>"}};if(a==">"&&j.name=="JSXIdentifier"){if(((_=(g=j.parent)===null||g===void 0?void 0:g.lastChild)===null||_===void 0?void 0:_.name)!="JSXEndTag"&&(_e=elementName(c.doc,j.parent,$)))return{range:EditorSelection.cursor($+1),changes:{from:$,insert:`>`}}}else if(a=="/"&&j.name=="JSXFragmentTag"){let et=j.parent,tt=et==null?void 0:et.parent;if(et.from==$-1&&((b=tt.lastChild)===null||b===void 0?void 0:b.name)!="JSXEndTag"&&(_e=elementName(c.doc,tt==null?void 0:tt.firstChild,$))){let nt=`/${_e}>`;return{range:EditorSelection.cursor($+nt.length),changes:{from:$,insert:nt}}}}return{range:d}});return h.changes.empty?!1:(o.dispatch(h,{userEvent:"input.type",scrollIntoView:!0}),!0)});var createTheme=o=>{var{theme:e,settings:s,styles:a}=o,c={"&":{backgroundColor:s.background,color:s.foreground},".cm-gutters":{}};s.gutterBackground&&(c[".cm-gutters"].backgroundColor=s.gutterBackground),s.gutterForeground&&(c[".cm-gutters"].color=s.gutterForeground),s.gutterBorder&&(c[".cm-gutters"].borderRightColor=s.gutterBorder),s.caret&&(c[".cm-content"]={caretColor:s.caret},c[".cm-cursor, .cm-dropCursor"]={borderLeftColor:s.caret}),s.lineHighlight&&(c[".cm-activeLine"]={backgroundColor:s.lineHighlight},c[".cm-activeLineGutter"]={backgroundColor:s.lineHighlight}),s.selection&&(c["&.cm-focused .cm-selectionBackground .cm-selectionBackground, & .cm-selectionLayer .cm-selectionBackground, ::selection"]={backgroundColor:s.selection}),s.selectionMatch&&(c["& .cm-selectionMatch"]={backgroundColor:s.selectionMatch});var h=EditorView.theme(c,{dark:e==="dark"}),d=HighlightStyle.define(a),g=[h,syntaxHighlighting(d)];return g};const strudelTheme=createTheme({theme:"dark",settings:{background:"#222",foreground:"#75baff",caret:"#ffcc00",selection:"rgba(128, 203, 196, 0.5)",selectionMatch:"#036dd626",lineHighlight:"#8a91991a",gutterBackground:"transparent",gutterForeground:"#676e95"},styles:[{tag:tags.keyword,color:"#c792ea"},{tag:tags.operator,color:"#89ddff"},{tag:tags.special(tags.variableName),color:"#eeffff"},{tag:tags.typeName,color:"#f07178"},{tag:tags.atom,color:"#f78c6c"},{tag:tags.number,color:"#ff5370"},{tag:tags.definition(tags.variableName),color:"#82aaff"},{tag:tags.string,color:"#c3e88d"},{tag:tags.special(tags.string),color:"#f07178"},{tag:tags.comment,color:"#7d8799"},{tag:tags.variableName,color:"#f07178"},{tag:tags.tagName,color:"#ff5370"},{tag:tags.bracket,color:"#a2a1a4"},{tag:tags.meta,color:"#ffcb6b"},{tag:tags.attributeName,color:"#c792ea"},{tag:tags.propertyName,color:"#c792ea"},{tag:tags.className,color:"#decb6b"},{tag:tags.invalid,color:"#ffffff"}]}),style$1="",setFlash=StateEffect.define(),flashField=StateField.define({create(){return Decoration.none},update(o,e){try{for(let s of e.effects)if(s.is(setFlash))if(s.value){const a=Decoration.mark({attributes:{style:"background-color: #FFCA2880"}});o=Decoration.set([a.range(0,e.newDoc.length)])}else o=Decoration.set([]);return o}catch(s){return console.warn("flash error",s),o}},provide:o=>EditorView.decorations.from(o)}),flash=o=>{o.dispatch({effects:setFlash.of(!0)}),setTimeout(()=>{o.dispatch({effects:setFlash.of(!1)})},200)},setHighlights=StateEffect.define(),highlightField=StateField.define({create(){return Decoration.none},update(o,e){try{for(let s of e.effects)if(s.is(setHighlights)){const a=s.value.map(c=>(c.context.locations||[]).map(({start:h,end:d})=>{const g=c.context.color||"#FFCA28";let _=e.newDoc.line(h.line).from+h.column,b=e.newDoc.line(d.line).from+d.column;const $=e.newDoc.length;return _>$||b>$?void 0:Decoration.mark({attributes:{style:`outline: 1.5px solid ${g};`}}).range(_,b)})).flat().filter(Boolean)||[];o=Decoration.set(a,!0)}return o}catch{return Decoration.set([])}},provide:o=>EditorView.decorations.from(o)}),extensions=[javascript(),strudelTheme,highlightField,flashField];function CodeMirror({value:o,onChange:e,onViewChanged:s,onSelectionChange:a,options:c,editorDidMount:h}){const d=react.exports.useCallback(b=>{e==null||e(b)},[e]),g=react.exports.useCallback(b=>{s==null||s(b)},[s]),_=react.exports.useCallback(b=>{b.selectionSet&&a&&(a==null||a(b.state.selection))},[a]);return jsx(Fragment,{children:jsx(ReactCodeMirror,{value:o,onChange:d,onCreateEditor:g,onUpdate:_,extensions})})}const useKeydown=o=>react.exports.useLayoutEffect(()=>(window.addEventListener("keydown",o,!0),()=>window.removeEventListener("keydown",o,!0)),[o]);function useStrudel({defaultOutput:o,interval:e,getTime:s,code:a,evalOnMount:c=!1}){const[h,d]=react.exports.useState(),[g,_]=react.exports.useState(),[b,$]=react.exports.useState(a),[j,_e]=react.exports.useState(),et=a!==b,tt=react.exports.useMemo(()=>new Scheduler({interval:e,onTrigger:o,onError:d,getTime:s}),[o,e]),nt=react.exports.useCallback(async()=>{if(!a){console.log("no code..");return}try{const{pattern:rt}=await evaluate(a);$(a),tt==null||tt.setPattern(rt),_e(rt),_()}catch(rt){_(rt),console.warn("eval error",rt)}},[a,tt]),st=react.exports.useRef();return react.exports.useEffect(()=>{!st.current&&c&&(st.current=!0,nt())},[nt,c]),{schedulerError:h,scheduler:tt,evalError:g,evaluate:nt,activeCode:b,isDirty:et,pattern:j}}function useHighlighting({view:o,pattern:e,active:s,getTime:a}){const c=react.exports.useRef([]),h=react.exports.useRef();react.exports.useEffect(()=>{if(o)if(e&&s){let g=function(){try{const _=a(),$=[Math.max(h.current||_,_-1/10),_+1/60];h.current=_+1/60,c.current=c.current.filter(_e=>_e.whole.end>_);const j=e.queryArc(...$).filter(_e=>_e.hasOnset());c.current=c.current.concat(j),o.dispatch({effects:setHighlights.of(c.current)})}catch{o.dispatch({effects:setHighlights.of([])})}d=requestAnimationFrame(g)},d=requestAnimationFrame(g);return()=>{cancelAnimationFrame(d)}}else c.current=[],o.dispatch({effects:setHighlights.of([])})},[e,s,o])}const style="";evalScope(controls,__vitePreload(()=>Promise.resolve().then(()=>strudel),void 0),__vitePreload(()=>import("./index.fbde1114.js"),[]),__vitePreload(()=>import("./index.bb9bb2c4.js"),[]),__vitePreload(()=>import("./index.5b4bbb94.js"),[]),__vitePreload(()=>import("./index.e7ac54e9.js"),[]),__vitePreload(()=>import("./osc.c09823d8.js"),[]),__vitePreload(()=>import("./index.0dabc914.js"),[]),__vitePreload(()=>import("./serial.b42b098c.js"),[]),__vitePreload(()=>import("./index.cc0b04cf.js"),[]));const defaultTune=`samples({ - bd: ['bd/BT0AADA.wav','bd/BT0AAD0.wav','bd/BT0A0DA.wav','bd/BT0A0D3.wav','bd/BT0A0D0.wav','bd/BT0A0A7.wav'], - sd: ['sd/rytm-01-classic.wav','sd/rytm-00-hard.wav'], - hh: ['hh27/000_hh27closedhh.wav','hh/000_hh3closedhh.wav'], -}, 'github:tidalcycles/Dirt-Samples/master/'); -stack( - s("bd,[~ ],hh(3,4)") // drums - .speed(perlin.range(.7,.9)) // random sample speed variation - //.hush() - ,"" // bassline - .off(1/8,x=>x.add(12).degradeBy(.5)) // random octave jumps - .add(perlin.range(0,.5)) // random pitch variation - .superimpose(add(.05)) // add second, slightly detuned voice - .n() // wrap in "n" - .decay(.15).sustain(0) // make each note of equal length - .s('sawtooth') // waveform - .gain(.4) // turn down - .cutoff(sine.slow(7).range(300,5000)) // automate cutoff - //.hush() - ,">".voicings() // chords - .superimpose(x=>x.add(.04)) // add second, slightly detuned voice - .add(perlin.range(0,.5)) // random pitch variation - .n() // wrap in "n" - .s('square') // waveform - .gain(.16) // turn down - .cutoff(500) // fixed cutoff - .attack(1) // slowly fade in - //.hush() - ,"a4 c5 ".struct("x(5,8)") - .superimpose(x=>x.add(.04)) // add second, slightly detuned voice - .add(perlin.range(0,.5)) // random pitch variation - .n() // wrap in "n" - .decay(.1).sustain(0) // make notes short - .s('triangle') // waveform - .degradeBy(perlin.range(0,.5)) // randomly controlled random removal :) - .echoWith(4,.125,(x,n)=>x.gain(.15*1/(n+1))) // echo notes - //.hush() -) -.fast(2/3)`,ctx=getAudioContext(),getTime=()=>ctx.currentTime;function App(){const[o,e]=react.exports.useState(defaultTune),[s,a]=react.exports.useState(),{scheduler:c,evaluate:h,schedulerError:d,evalError:g,isDirty:_,activeCode:b,pattern:$}=useStrudel({code:o,defaultOutput:webaudioOutput,getTime});useHighlighting({view:s,pattern:$,active:!(b!=null&&b.includes("strudel disable-highlighting")),getTime:()=>c.phase});const j=g||d;return useKeydown(react.exports.useCallback(async _e=>{(_e.ctrlKey||_e.altKey)&&(_e.code==="Enter"?(_e.preventDefault(),flash(s),await h(),_e.shiftKey&&(panic(),c.stop(),c.start()),c.started||c.start()):_e.code==="Period"&&(c.pause(),panic(),_e.preventDefault()))},[c,h,s])),jsxs("div",{children:[jsxs("nav",{className:"z-[12] w-full flex justify-center absolute bottom-0",children:[jsxs("div",{className:"bg-slate-500 space-x-2 px-2 rounded-t-md",children:[jsx("button",{onClick:async()=>{await h(),await getAudioContext().resume(),c.start()},children:"start"}),jsx("button",{onClick:()=>c.stop(),children:"stop"}),_&&jsx("button",{onClick:()=>h(),children:"eval"})]}),j&&jsxs("p",{children:["error ",j.message]})]}),jsx(CodeMirror,{value:o,onChange:e,onViewChanged:a})]})}client.createRoot(document.getElementById("root")).render(jsx(React.StrictMode,{children:jsx(App,{})}));export{Hap as H,Pattern$3 as P,getDefaultExportFromCjs as a,chooseInWith as b,commonjsGlobal as c,rand as d,strudel as e,getAudioContext as f,getAugmentedNamespace as g,getDestination as h,getCachedBuffer as i,getLoadedBuffer as j,loadGithubSamples as k,loadBuffer as l,mod as m,samples as n,resetLoadedSamples as o,panic as p,getLoadedSamples$1 as q,reify$1 as r,stack as s,webaudioOutput as w}; diff --git a/packages/react/examples/nano-repl/dist/assets/index.fbde1114.js b/packages/react/examples/nano-repl/dist/assets/index.fbde1114.js deleted file mode 100644 index 16a09e8c..00000000 --- a/packages/react/examples/nano-repl/dist/assets/index.fbde1114.js +++ /dev/null @@ -1 +0,0 @@ -import{P as _,m as Lt,g as Ut,c as Y,a as Xt,r as Kt,H as Qt,s as Yt}from"./index.ec9f9930.js";const C=(n,t)=>Array(Math.abs(t)+1).join(n);function g(n,t,e){return function(...o){return console.warn(`${n} is deprecated. Use ${t}.`),e.apply(this,o)}}function z(n){return n!==null&&typeof n=="object"&&typeof n.name=="string"}function q(n){return n!==null&&typeof n=="object"&&typeof n.step=="number"&&typeof n.alt=="number"}const Qn=[0,2,4,-1,1,3,5],Yn=Qn.map(n=>Math.floor(n*7/12));function en(n){const{step:t,alt:e,oct:o,dir:r=1}=n,i=Qn[t]+7*e;if(o===void 0)return[r*i];const a=o-Yn[t]-4*e;return[r*i,r*a]}const Zt=[3,0,4,1,5,2,6];function on(n){const[t,e,o]=n,r=Zt[Jt(t)],i=Math.floor((t+1)/7);if(e===void 0)return{step:r,alt:i,dir:o};const a=e+4*i+Yn[r];return{step:r,alt:i,oct:a,dir:o}}function Jt(n){const t=(n+1)%7;return t<0?7+t:t}const Zn={empty:!0,name:"",pc:"",acc:""},Dn=new Map,vn=n=>"CDEFGAB".charAt(n),E=n=>n<0?C("b",-n):C("#",n),G=n=>n[0]==="b"?-n.length:n.length;function u(n){const t=Dn.get(n);if(t)return t;const e=typeof n=="string"?te(n):q(n)?u(ee(n)):z(n)?u(n.name):Zn;return Dn.set(n,e),e}const Wt=/^([a-gA-G]?)(#{1,}|b{1,}|x{1,}|)(-?\d*)\s*(.*)$/;function rn(n){const t=Wt.exec(n);return[t[1].toUpperCase(),t[2].replace(/x/g,"##"),t[3],t[4]]}function F(n){return u(on(n))}const ne=(n,t)=>(n%t+t)%t,pn=[0,2,4,5,7,9,11];function te(n){const t=rn(n);if(t[0]===""||t[3]!=="")return Zn;const e=t[0],o=t[1],r=t[2],i=(e.charCodeAt(0)+3)%7,a=G(o),s=r.length?+r:void 0,c=en({step:i,alt:a,oct:s}),l=e+o+r,m=e+o,d=(pn[i]+a+120)%12,M=s===void 0?ne(pn[i]+a,12)-12*99:pn[i]+a+12*(s+1),h=M>=0&&M<=127?M:null,A=s===void 0?null:Math.pow(2,(M-69)/12)*440;return{empty:!1,acc:o,alt:a,chroma:d,coord:c,freq:A,height:M,letter:e,midi:h,name:l,oct:s,pc:m,step:i}}function ee(n){const{step:t,alt:e,oct:o}=n,r=vn(t);if(!r)return"";const i=r+E(e);return o||o===0?i+o:i}const yn={empty:!0,name:"",acc:""},oe="([-+]?\\d+)(d{1,4}|m|M|P|A{1,4})",re="(AA|A|P|M|m|d|dd)([-+]?\\d+)",ie=new RegExp("^"+oe+"|"+re+"$");function $n(n){const t=ie.exec(`${n}`);return t===null?["",""]:t[1]?[t[1],t[2]]:[t[4],t[3]]}const Rn={};function f(n){return typeof n=="string"?Rn[n]||(Rn[n]=ae(n)):q(n)?f(ce(n)):z(n)?f(n.name):yn}const kn=[0,2,4,5,7,9,11],Jn="PMMPPMM";function ae(n){const t=$n(n);if(t[0]==="")return yn;const e=+t[0],o=t[1],r=(Math.abs(e)-1)%7,i=Jn[r];if(i==="M"&&o==="P")return yn;const a=i==="M"?"majorable":"perfectable",s=""+e+o,c=e<0?-1:1,l=e===8||e===-8?e:c*(r+1),m=se(a,o),d=Math.floor((Math.abs(e)-1)/7),M=c*(kn[r]+m+12*d),h=(c*(kn[r]+m)%12+12)%12,A=en({step:r,alt:m,oct:d,dir:c});return{empty:!1,name:s,num:e,q:o,step:r,alt:m,dir:c,type:a,simple:l,semitones:M,chroma:h,coord:A,oct:d}}function B(n,t){const[e,o=0]=n,r=e*7+o*12<0,i=t||r?[-e,-o,-1]:[e,o,1];return f(on(i))}function se(n,t){return t==="M"&&n==="majorable"||t==="P"&&n==="perfectable"?0:t==="m"&&n==="majorable"?-1:/^A+$/.test(t)?t.length:/^d+$/.test(t)?-1*(n==="perfectable"?t.length:t.length+1):0}function ce(n){const{step:t,alt:e,oct:o=0,dir:r}=n;if(!r)return"";const i=t+1+7*o,a=i===0?t+1:i,s=r<0?"-":"",c=Jn[t]==="M"?"majorable":"perfectable";return s+a+me(c,e)}function me(n,t){return t===0?n==="majorable"?"M":"P":t===-1&&n==="majorable"?"m":t>0?C("A",t):C("d",n==="perfectable"?t:t+1)}function P(n,t){const e=u(n),o=f(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=r.length===1?[r[0]+i[0]]:[r[0]+i[0],r[1]+i[1]];return F(a).name}function D(n,t){const e=u(n),o=u(t);if(e.empty||o.empty)return"";const r=e.coord,i=o.coord,a=i[0]-r[0],s=r.length===2&&i.length===2?i[1]-r[1]:-Math.floor(a*7/12),c=o.height===e.height&&o.midi!==null&&e.midi!==null&&e.step>o.step;return B([a,s],c).name}const Wn=Object.freeze(Object.defineProperty({__proto__:null,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:u,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"})),On=(n,t)=>Array(t+1).join(n),ue=/^(_{1,}|=|\^{1,}|)([abcdefgABCDEFG])([,']*)$/;function nt(n){const t=ue.exec(n);return t?[t[1],t[2],t[3]]:["","",""]}function W(n){const[t,e,o]=nt(n);if(e==="")return"";let r=4;for(let a=0;a96?e.toUpperCase()+i+(r+1):e+i+r}function tt(n){const t=u(n);if(t.empty||!t.oct&&t.oct!==0)return"";const{letter:e,acc:o,oct:r}=t,i=o[0]==="b"?o.replace(/b/g,"_"):o.replace(/#/g,"^"),a=r>4?e.toLowerCase():e,s=r===5?"":r>4?On("'",r-5):On(",",4-r);return i+a+s}function le(n,t){return tt(P(W(n),t))}function de(n,t){return D(W(n),W(t))}var Me={abcToScientificNotation:W,scientificToAbcNotation:tt,tokenize:nt,transpose:le,distance:de};function fe(n,t){const e=[];for(;t--;e[t]=t+n);return e}function Pe(n,t){const e=[];for(;t--;e[t]=n-t);return e}function pe(n,t){return nt===0||t)}function et(n){return n.map(e=>u(e)).filter(e=>!e.empty).sort((e,o)=>e.height-o.height).map(e=>e.name)}function ge(n){return et(n).filter((t,e,o)=>e===0||t!==o[e-1])}function be(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function ot(n){return n.length===0?[[]]:ot(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}const Ae=Object.freeze(Object.defineProperty({__proto__:null,compact:ye,permutations:ot,range:pe,rotate:he,shuffle:be,sortedNoteNames:et,sortedUniqNoteNames:ge},Symbol.toStringTag,{value:"Module"}));function ve(n,t){const e=[];for(;t--;e[t]=t+n);return e}function $e(n,t){const e=[];for(;t--;e[t]=n-t);return e}function an(n,t){return nt===0||t)}function Ne(n,t=Math.random){let e,o,r=n.length;for(;r;)e=Math.floor(t()*r--),o=n[r],n[r]=n[e],n[e]=o;return n}function rt(n){return n.length===0?[[]]:rt(n.slice(1)).reduce((t,e)=>t.concat(n.map((o,r)=>{const i=e.slice();return i.splice(r,0,n[0]),i})),[])}var Ie={compact:Nn,permutations:rt,range:an,rotate:H,shuffle:Ne};const T={empty:!0,name:"",setNum:0,chroma:"000000000000",normalized:"000000000000",intervals:[]},In=n=>Number(n).toString(2),Fn=n=>parseInt(n,2),je=/^[01]{12}$/;function it(n){return je.test(n)}const Se=n=>typeof n=="number"&&n>=0&&n<=4095,Te=n=>n&&it(n.chroma),zn={[T.chroma]:T};function p(n){const t=it(n)?n:Se(n)?In(n):Array.isArray(n)?ze(n):Te(n)?n.chroma:T.chroma;return zn[t]=zn[t]||Fe(t)}const Ve=g("Pcset.pcset","Pcset.get",p),_e=n=>p(n).chroma,Ce=n=>p(n).intervals,we=n=>p(n).setNum,xe=["1P","2m","2M","3m","3M","4P","5d","5P","6m","6M","7m","7M"];function Ee(n){const t=[];for(let e=0;e<12;e++)n.charAt(e)==="1"&&t.push(xe[e]);return t}function De(){return an(2048,4095).map(In)}function jn(n,t=!0){const o=p(n).chroma.split("");return Nn(o.map((r,i)=>{const a=H(i,o);return t&&a[0]==="0"?null:a.join("")}))}function Re(n,t){return p(n).setNum===p(t).setNum}function sn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o&t)===o}}function cn(n){const t=p(n).setNum;return e=>{const o=p(e).setNum;return t&&t!==o&&(o|t)===o}}function at(n){const t=p(n);return e=>{const o=u(e);return t&&!o.empty&&t.chroma.charAt(o.chroma)==="1"}}function ke(n){const t=at(n);return e=>e.filter(t)}var st={get:p,chroma:_e,num:we,intervals:Ce,chromas:De,isSupersetOf:cn,isSubsetOf:sn,isNoteIncludedIn:at,isEqual:Re,filter:ke,modes:jn,pcset:Ve};function Oe(n){const t=n.split("");return t.map((e,o)=>H(o,t).join(""))}function Fe(n){const t=Fn(n),e=Oe(n).map(Fn).filter(i=>i>=2048).sort()[0],o=In(e),r=Ee(n);return{empty:!1,name:"",setNum:t,chroma:n,normalized:o,intervals:r}}function ze(n){if(n.length===0)return T.chroma;let t;const e=[0,0,0,0,0,0,0,0,0,0,0,0];for(let o=0;on.name).filter(n=>n)}function Le(){return R.map(n=>n.aliases[0]).filter(n=>n)}function Ue(){return Object.keys(j)}function k(){return R.slice()}const Xe=g("ChordType.entries","ChordType.all",k);function Ke(){R=[],j={}}function ct(n,t,e){const o=Ye(n),r={...p(n),name:e||"",quality:o,intervals:n,aliases:t};R.push(r),r.name&&(j[r.name]=r),j[r.setNum]=r,j[r.chroma]=r,r.aliases.forEach(i=>Qe(r,i))}function Qe(n,t){j[t]=n}function Ye(n){const t=e=>n.indexOf(e)!==-1;return t("5A")?"Augmented":t("3M")?"Major":t("5d")?"Diminished":t("3m")?"Minor":"Unknown"}qe.forEach(([n,t,e])=>ct(n.split(" "),e.split(" "),t));R.sort((n,t)=>n.setNum-t.setNum);var mt={names:He,symbols:Le,get:Sn,all:k,add:ct,removeAll:Ke,keys:Ue,entries:Xe,chordType:Be};const Ze=n=>{const t=n.reduce((e,o)=>{const r=u(o).chroma;return r!==void 0&&(e[r]=e[r]||u(o).name),e},{});return e=>t[e]};function Je(n){const t=n.map(o=>u(o).pc).filter(o=>o);return u.length===0?[]:We(t,1).filter(o=>o.weight).sort((o,r)=>r.weight-o.weight).map(o=>o.name)}function We(n,t){const e=n[0],o=u(e).chroma,r=Ze(n),i=jn(n,!1),a=[];return i.forEach((s,c)=>{k().filter(m=>m.chroma===s).forEach(m=>{const d=m.aliases[0],M=r(c);c!==o?a.push({weight:.5*t,name:`${M}${d}/${e}`}):a.push({weight:1*t,name:`${M}${d}`})})}),a}const no=[["1P 2M 3M 5P 6M","major pentatonic","pentatonic"],["1P 3M 4P 5P 7M","ionian pentatonic"],["1P 3M 4P 5P 7m","mixolydian pentatonic","indian"],["1P 2M 4P 5P 6M","ritusen"],["1P 2M 4P 5P 7m","egyptian"],["1P 3M 4P 5d 7m","neopolitan major pentatonic"],["1P 3m 4P 5P 6m","vietnamese 1"],["1P 2m 3m 5P 6m","pelog"],["1P 2m 4P 5P 6m","kumoijoshi"],["1P 2M 3m 5P 6m","hirajoshi"],["1P 2m 4P 5d 7m","iwato"],["1P 2m 4P 5P 7m","in-sen"],["1P 3M 4A 5P 7M","lydian pentatonic","chinese"],["1P 3m 4P 6m 7m","malkos raga"],["1P 3m 4P 5d 7m","locrian pentatonic","minor seven flat five pentatonic"],["1P 3m 4P 5P 7m","minor pentatonic","vietnamese 2"],["1P 3m 4P 5P 6M","minor six pentatonic"],["1P 2M 3m 5P 6M","flat three pentatonic","kumoi"],["1P 2M 3M 5P 6m","flat six pentatonic"],["1P 2m 3M 5P 6M","scriabin"],["1P 3M 5d 6m 7m","whole tone pentatonic"],["1P 3M 4A 5A 7M","lydian #5P pentatonic"],["1P 3M 4A 5P 7m","lydian dominant pentatonic"],["1P 3m 4P 5P 7M","minor #7M pentatonic"],["1P 3m 4d 5d 7m","super locrian pentatonic"],["1P 2M 3m 4P 5P 7M","minor hexatonic"],["1P 2A 3M 5P 5A 7M","augmented"],["1P 2M 3m 3M 5P 6M","major blues"],["1P 2M 4P 5P 6M 7m","piongio"],["1P 2m 3M 4A 6M 7m","prometheus neopolitan"],["1P 2M 3M 4A 6M 7m","prometheus"],["1P 2m 3M 5d 6m 7m","mystery #1"],["1P 2m 3M 4P 5A 6M","six tone symmetric"],["1P 2M 3M 4A 5A 7m","whole tone","messiaen's mode #1"],["1P 2m 4P 4A 5P 7M","messiaen's mode #5"],["1P 3m 4P 5d 5P 7m","minor blues","blues"],["1P 2M 3M 4P 5d 6m 7m","locrian major","arabian"],["1P 2m 3M 4A 5P 6m 7M","double harmonic lydian"],["1P 2M 3m 4P 5P 6m 7M","harmonic minor"],["1P 2m 2A 3M 4A 6m 7m","altered","super locrian","diminished whole tone","pomeroy"],["1P 2M 3m 4P 5d 6m 7m","locrian #2","half-diminished","aeolian b5"],["1P 2M 3M 4P 5P 6m 7m","mixolydian b6","melodic minor fifth mode","hindu"],["1P 2M 3M 4A 5P 6M 7m","lydian dominant","lydian b7","overtone"],["1P 2M 3M 4A 5P 6M 7M","lydian"],["1P 2M 3M 4A 5A 6M 7M","lydian augmented"],["1P 2m 3m 4P 5P 6M 7m","dorian b2","phrygian #6","melodic minor second mode"],["1P 2M 3m 4P 5P 6M 7M","melodic minor"],["1P 2m 3m 4P 5d 6m 7m","locrian"],["1P 2m 3m 4d 5d 6m 7d","ultralocrian","superlocrian bb7","superlocrian diminished"],["1P 2m 3m 4P 5d 6M 7m","locrian 6","locrian natural 6","locrian sharp 6"],["1P 2A 3M 4P 5P 5A 7M","augmented heptatonic"],["1P 2M 3m 4A 5P 6M 7m","dorian #4","ukrainian dorian","romanian minor","altered dorian"],["1P 2M 3m 4A 5P 6M 7M","lydian diminished"],["1P 2m 3m 4P 5P 6m 7m","phrygian"],["1P 2M 3M 4A 5A 7m 7M","leading whole tone"],["1P 2M 3M 4A 5P 6m 7m","lydian minor"],["1P 2m 3M 4P 5P 6m 7m","phrygian dominant","spanish","phrygian major"],["1P 2m 3m 4P 5P 6m 7M","balinese"],["1P 2m 3m 4P 5P 6M 7M","neopolitan major"],["1P 2M 3m 4P 5P 6m 7m","aeolian","minor"],["1P 2M 3M 4P 5P 6m 7M","harmonic major"],["1P 2m 3M 4P 5P 6m 7M","double harmonic major","gypsy"],["1P 2M 3m 4P 5P 6M 7m","dorian"],["1P 2M 3m 4A 5P 6m 7M","hungarian minor"],["1P 2A 3M 4A 5P 6M 7m","hungarian major"],["1P 2m 3M 4P 5d 6M 7m","oriental"],["1P 2m 3m 3M 4A 5P 7m","flamenco"],["1P 2m 3m 4A 5P 6m 7M","todi raga"],["1P 2M 3M 4P 5P 6M 7m","mixolydian","dominant"],["1P 2m 3M 4P 5d 6m 7M","persian"],["1P 2M 3M 4P 5P 6M 7M","major","ionian"],["1P 2m 3M 5d 6m 7m 7M","enigmatic"],["1P 2M 3M 4P 5A 6M 7M","major augmented","major #5","ionian augmented","ionian #5"],["1P 2A 3M 4A 5P 6M 7M","lydian #9"],["1P 2m 2M 4P 4A 5P 6m 7M","messiaen's mode #4"],["1P 2m 3M 4P 4A 5P 6m 7M","purvi raga"],["1P 2m 3m 3M 4P 5P 6m 7m","spanish heptatonic"],["1P 2M 3M 4P 5P 6M 7m 7M","bebop"],["1P 2M 3m 3M 4P 5P 6M 7m","bebop minor"],["1P 2M 3M 4P 5P 5A 6M 7M","bebop major"],["1P 2m 3m 4P 5d 5P 6m 7m","bebop locrian"],["1P 2M 3m 4P 5P 6m 7m 7M","minor bebop"],["1P 2M 3m 4P 5d 6m 6M 7M","diminished","whole-half diminished"],["1P 2M 3M 4P 5d 5P 6M 7M","ichikosucho"],["1P 2M 3m 4P 5P 6m 6M 7M","minor six diminished"],["1P 2m 3m 3M 4A 5P 6M 7m","half-whole diminished","dominant diminished","messiaen's mode #2"],["1P 3m 3M 4P 5P 6M 7m 7M","kafi raga"],["1P 2M 3M 4P 4A 5A 6A 7M","messiaen's mode #6"],["1P 2M 3m 3M 4P 5d 5P 6M 7m","composite blues"],["1P 2M 3m 3M 4A 5P 6m 7m 7M","messiaen's mode #3"],["1P 2m 2M 3m 4P 4A 5P 6m 6M 7M","messiaen's mode #7"],["1P 2m 2M 3m 3M 4P 5d 5P 6m 6M 7m 7M","chromatic"]],to={...T,intervals:[],aliases:[]};let mn=[],S={};function ut(){return mn.map(n=>n.name)}function un(n){return S[n]||to}const eo=g("ScaleDictionary.scaleType","ScaleType.get",un);function L(){return mn.slice()}const oo=g("ScaleDictionary.entries","ScaleType.all",L);function ro(){return Object.keys(S)}function io(){mn=[],S={}}function lt(n,t,e=[]){const o={...p(n),name:t,intervals:n,aliases:e};return mn.push(o),S[o.name]=o,S[o.setNum]=o,S[o.chroma]=o,o.aliases.forEach(r=>ao(o,r)),o}function ao(n,t){S[t]=n}no.forEach(([n,t,...e])=>lt(n.split(" "),t,e));var dt={names:ut,get:un,all:L,add:lt,removeAll:io,keys:ro,entries:oo,scaleType:eo};const gn={empty:!0,name:"",symbol:"",root:"",rootDegree:0,type:"",tonic:null,setNum:NaN,quality:"Unknown",chroma:"",normalized:"",aliases:[],notes:[],intervals:[]},so=/^(6|64|7|9|11|13)$/;function ln(n){const[t,e,o,r]=rn(n);return t===""?["",n]:t==="A"&&r==="ug"?["","aug"]:!r&&(o==="4"||o==="5")?[t+e,o]:so.test(o)?[t+e,o+r]:[t+e+o,r]}function U(n){if(n==="")return gn;if(Array.isArray(n)&&n.length===2)return Z(n[1],n[0]);{const[t,e]=ln(n),o=Z(e,t);return o.empty?Z(n):o}}function Z(n,t,e){const o=Sn(n),r=u(t||""),i=u(e||"");if(o.empty||t&&r.empty||e&&i.empty)return gn;const a=D(r.pc,i.pc),s=o.intervals.indexOf(a)+1;if(!i.empty&&!s)return gn;const c=Array.from(o.intervals);for(let M=1;MP(r,M));n=o.aliases.indexOf(n)!==-1?n:o.aliases[0];const m=`${r.empty?"":r.pc}${n}${i.empty||s<=1?"":"/"+i.pc}`,d=`${t?r.pc+" ":""}${o.name}${s>1&&e?" over "+i.pc:""}`;return{...o,name:d,symbol:m,type:o.name,root:i.name,intervals:c,rootDegree:s,tonic:r.name,notes:l}}const co=g("Chord.chord","Chord.get",U);function mo(n,t){const[e,o]=ln(n);return e?P(e,t)+o:n}function uo(n){const t=U(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function lo(n){const t=U(n),e=cn(t.chroma);return k().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}function Mo(n){const t=U(n),e=sn(t.chroma);return k().filter(o=>e(o.chroma)).map(o=>t.tonic+o.aliases[0])}var fo={getChord:Z,get:U,detect:Je,chordScales:uo,extended:lo,reduced:Mo,tokenize:ln,transpose:mo,chord:co};const Po=[[.125,"dl",["large","duplex longa","maxima","octuple","octuple whole"]],[.25,"l",["long","longa"]],[.5,"d",["double whole","double","breve"]],[1,"w",["whole","semibreve"]],[2,"h",["half","minim"]],[4,"q",["quarter","crotchet"]],[8,"e",["eighth","quaver"]],[16,"s",["sixteenth","semiquaver"]],[32,"t",["thirty-second","demisemiquaver"]],[64,"sf",["sixty-fourth","hemidemisemiquaver"]],[128,"h",["hundred twenty-eighth"]],[256,"th",["two hundred fifty-sixth"]]],dn=[];Po.forEach(([n,t,e])=>$o(n,t,e));const po={empty:!0,name:"",value:0,fraction:[0,0],shorthand:"",dots:"",names:[]};function ho(){return dn.reduce((n,t)=>(t.names.forEach(e=>n.push(e)),n),[])}function yo(){return dn.map(n=>n.shorthand)}const go=/^([^.]+)(\.*)$/;function Tn(n){const[t,e,o]=go.exec(n)||[],r=dn.find(s=>s.shorthand===e||s.names.includes(e));if(!r)return po;const i=No(r.fraction,o.length),a=i[0]/i[1];return{...r,name:n,dots:o,value:a,fraction:i}}const bo=n=>Tn(n).value,Ao=n=>Tn(n).fraction;var vo={names:ho,shorthands:yo,get:Tn,value:bo,fraction:Ao};function $o(n,t,e){dn.push({empty:!1,dots:"",name:"",value:1/n,fraction:n<1?[1/n,1]:[1,n],shorthand:t,names:e})}function No(n,t){const e=Math.pow(2,t);let o=n[0]*e,r=n[1]*e;const i=o;for(let a=0;af(n).name,So=n=>f(n).semitones,To=n=>f(n).q,Vo=n=>f(n).num;function ft(n){const t=f(n);return t.empty?"":t.simple+t.q}function _o(n){const t=f(n);if(t.empty)return"";const e=(7-t.step)%7,o=t.type==="perfectable"?-t.alt:-(t.alt+1);return f({step:e,alt:o,oct:t.oct,dir:t.dir}).name}const Co=[1,2,2,3,3,4,5,5,6,6,7,7],wo="P m M m M P d P m M m M".split(" ");function xo(n){const t=n<0?-1:1,e=Math.abs(n),o=e%12,r=Math.floor(e/12);return t*(Co[o]+7*r)+wo[o]}const Eo=D,Pt=ht((n,t)=>[n[0]+t[0],n[1]+t[1]]),Do=n=>t=>Pt(n,t),Ro=ht((n,t)=>[n[0]-t[0],n[1]-t[1]]);function pt(n,t){const e=Mt(n);if(e.empty)return"";const[o,r,i]=e.coord;return B([o+t,r,i]).name}var bn={names:Io,get:Mt,name:jo,num:Vo,semitones:So,quality:To,fromSemitones:xo,distance:Eo,invert:_o,simplify:ft,add:Pt,addTo:Do,substract:Ro,transposeFifths:pt};function ht(n){return(t,e)=>{const o=f(t).coord,r=f(e).coord;if(o&&r){const i=n(o,r);return B(i).name}}}function yt(n){return+n>=0&&+n<=127}function gt(n){if(yt(n))return+n;const t=u(n);return t.empty?null:t.midi}function ko(n,t=440){return Math.pow(2,(n-69)/12)*t}const Oo=Math.log(2),Fo=Math.log(440);function Vn(n){const t=12*(Math.log(n)-Fo)/Oo+69;return Math.round(t*100)/100}const zo="C C# D D# E F F# G G# A A# B".split(" "),qo="C Db D Eb E F Gb G Ab A Bb B".split(" ");function I(n,t={}){if(isNaN(n)||n===-1/0||n===1/0)return"";n=Math.round(n);const o=(t.sharps===!0?zo:qo)[n%12];if(t.pitchClass)return o;const r=Math.floor(n/12)-1;return o+r}var Go={isMidi:yt,toMidi:gt,midiToFreq:ko,midiToNoteName:I,freqToMidi:Vn};const Bo=["C","D","E","F","G","A","B"],bt=n=>n.name,At=n=>n.map(u).filter(t=>!t.empty);function Ho(n){return n===void 0?Bo.slice():Array.isArray(n)?At(n).map(bt):[]}const y=u,Lo=n=>y(n).name,Uo=n=>y(n).pc,Xo=n=>y(n).acc,Ko=n=>y(n).oct,Qo=n=>y(n).midi,Yo=n=>y(n).freq,Zo=n=>y(n).chroma;function vt(n){return I(n)}function Jo(n){return I(Vn(n))}function Wo(n){return I(Vn(n),{sharps:!0})}function nr(n){return I(n,{sharps:!0})}const _n=P,tr=P,$t=n=>t=>_n(t,n),er=$t,Nt=n=>t=>_n(n,t),or=Nt;function nn(n,t){const e=y(n);if(e.empty)return"";const[o,r]=e.coord;return F(r===void 0?[o+t]:[o+t,r]).name}const rr=nn,Cn=(n,t)=>n.height-t.height,ir=(n,t)=>t.height-n.height;function It(n,t){return t=t||Cn,At(n).sort(t).map(bt)}function jt(n){return It(n,Cn).filter((t,e,o)=>e===0||t!==o[e-1])}const ar=n=>{const t=y(n);return t.empty?"":I(t.midi||t.chroma,{sharps:t.alt>0,pitchClass:t.midi===null})};function St(n,t){const e=y(n);if(e.empty)return"";const o=y(t||I(e.midi||e.chroma,{sharps:e.alt<0,pitchClass:!0}));if(o.empty||o.chroma!==e.chroma)return"";if(e.oct===void 0)return o.pc;const r=e.chroma-e.alt,i=o.chroma-o.alt,a=r>11||i<0?-1:r<0||i>11?1:0,s=e.oct+a;return o.pc+s}var w={names:Ho,get:y,name:Lo,pitchClass:Uo,accidentals:Xo,octave:Ko,midi:Qo,ascending:Cn,descending:ir,sortedNames:It,sortedUniqNames:jt,fromMidi:vt,fromMidiSharps:nr,freq:Yo,fromFreq:Jo,fromFreqSharps:Wo,chroma:Zo,transpose:_n,tr,transposeBy:$t,trBy:er,transposeFrom:Nt,trFrom:or,transposeFifths:nn,trFifths:rr,simplify:ar,enharmonic:St};const Tt={empty:!0,name:"",chordType:""},qn={};function $(n){return typeof n=="string"?qn[n]||(qn[n]=Mr(n)):typeof n=="number"?$(Mn[n]||""):q(n)?mr(n):z(n)?$(n.name):Tt}const sr=g("RomanNumeral.romanNumeral","RomanNumeral.get",$);function cr(n=!0){return(n?Mn:dr).slice()}function mr(n){return $(E(n.alt)+Mn[n.step])}const ur=/^(#{1,}|b{1,}|x{1,}|)(IV|I{1,3}|VI{0,2}|iv|i{1,3}|vi{0,2})([^IViv]*)$/;function lr(n){return ur.exec(n)||["","","",""]}const Vt="I II III IV V VI VII",Mn=Vt.split(" "),dr=Vt.toLowerCase().split(" ");function Mr(n){const[t,e,o,r]=lr(n);if(!o)return Tt;const i=o.toUpperCase(),a=Mn.indexOf(i),s=G(e),c=1;return{empty:!1,name:t,roman:o,interval:f({step:a,alt:s,dir:c}).name,acc:e,chordType:r,alt:s,step:a,major:o===i,oct:0,dir:c}}var fr={names:cr,get:$,romanNumeral:sr};const b=Object.freeze([]),_t={type:"major",tonic:"",alteration:0,keySignature:""},J={tonic:"",grades:b,intervals:b,scale:b,chords:b,chordsHarmonicFunction:b,chordScales:b},Pr={..._t,...J,type:"major",minorRelative:"",scale:b,secondaryDominants:b,secondaryDominantsMinorRelative:b,substituteDominants:b,substituteDominantsMinorRelative:b},pr={..._t,type:"minor",relativeMajor:"",natural:J,harmonic:J,melodic:J},Gn=(n,t,e="")=>t.map((o,r)=>`${n[r]}${e}${o}`);function fn(n,t,e,o){return r=>{const i=n.map(s=>$(s).interval||""),a=i.map(s=>P(r,s));return{tonic:r,grades:n,intervals:i,scale:a,chords:Gn(a,t),chordsHarmonicFunction:e.slice(),chordScales:Gn(a,o," ")}}}const Ct=(n,t)=>{const e=u(n),o=u(t);return e.empty||o.empty?0:o.coord[0]-e.coord[0]},hr=fn("I II III IV V VI VII".split(" "),"maj7 m7 m7 maj7 7 m7 m7b5".split(" "),"T SD T SD D T D".split(" "),"major,dorian,phrygian,lydian,mixolydian,minor,locrian".split(",")),yr=fn("I II bIII IV V bVI bVII".split(" "),"m7 m7b5 maj7 m7 m7 maj7 7".split(" "),"T SD T SD D SD SD".split(" "),"minor,locrian,major,dorian,phrygian,lydian,mixolydian".split(",")),gr=fn("I II bIII IV V bVI VII".split(" "),"mMaj7 m7b5 +maj7 m7 7 maj7 o7".split(" "),"T SD T SD D SD D".split(" "),"harmonic minor,locrian 6,major augmented,lydian diminished,phrygian dominant,lydian #9,ultralocrian".split(",")),br=fn("I II bIII IV V VI VII".split(" "),"m6 m7 +maj7 7 7 m7b5 m7b5".split(" "),"T SD T SD D ".split(" "),"melodic minor,dorian b2,lydian augmented,lydian dominant,mixolydian b6,locrian #2,altered".split(","));function Ar(n){const t=u(n).pc;if(!t)return Pr;const e=hr(t),o=Ct("C",t),r=i=>{const a=$(i);return a.empty?"":P(n,a.interval)+a.chordType};return{...e,type:"major",minorRelative:P(t,"-3m"),alteration:o,keySignature:E(o),secondaryDominants:"- VI7 VII7 I7 II7 III7 -".split(" ").map(r),secondaryDominantsMinorRelative:"- IIIm7b5 IV#m7 Vm7 VIm7 VIIm7b5 -".split(" ").map(r),substituteDominants:"- bIII7 IV7 bV7 bVI7 bVII7 -".split(" ").map(r),substituteDominantsMinorRelative:"- IIIm7 Im7 IIbm7 VIm7 IVm7 -".split(" ").map(r)}}function vr(n){const t=u(n).pc;if(!t)return pr;const e=Ct("C",t)-3;return{type:"minor",tonic:t,relativeMajor:P(t,"3m"),alteration:e,keySignature:E(e),natural:yr(t),harmonic:gr(t),melodic:br(t)}}function $r(n){return typeof n=="number"?nn("C",n):typeof n=="string"&&/^b+|#+$/.test(n)?nn("C",G(n)):null}var Nr={majorKey:Ar,majorTonicFromKeySignature:$r,minorKey:vr};const wn=[[0,2773,0,"ionian","","Maj7","major"],[1,2902,2,"dorian","m","m7"],[2,3418,4,"phrygian","m","m7"],[3,2741,-1,"lydian","","Maj7"],[4,2774,1,"mixolydian","","7"],[5,2906,3,"aeolian","m","m7","minor"],[6,3434,5,"locrian","dim","m7b5"]],Bn={...T,name:"",alt:0,modeNum:NaN,triad:"",seventh:"",aliases:[]},xn=wn.map(Tr),An={};xn.forEach(n=>{An[n.name]=n,n.aliases.forEach(t=>{An[t]=n})});function V(n){return typeof n=="string"?An[n.toLowerCase()]||Bn:n&&n.name?V(n.name):Bn}const Ir=g("Mode.mode","Mode.get",V);function wt(){return xn.slice()}const jr=g("Mode.mode","Mode.all",wt);function Sr(){return xn.map(n=>n.name)}function Tr(n){const[t,e,o,r,i,a,s]=n,c=s?[s]:[],l=Number(e).toString(2),m=un(r).intervals;return{empty:!1,intervals:m,modeNum:t,chroma:l,normalized:l,name:r,setNum:e,alt:o,triad:i,seventh:a,aliases:c}}function Vr(n,t){return V(n).intervals.map(e=>P(t,e))}function xt(n){return(t,e)=>{const o=V(t);if(o.empty)return[];const r=H(o.modeNum,n),i=o.intervals.map(a=>P(e,a));return r.map((a,s)=>i[s]+a)}}const _r=xt(wn.map(n=>n[4])),Cr=xt(wn.map(n=>n[5]));function Et(n,t){const e=V(t),o=V(n);return e.empty||o.empty?"":ft(pt("1P",o.alt-e.alt))}function wr(n,t,e){return P(e,Et(n,t))}var xr={get:V,names:Sr,all:wt,distance:Et,relativeTonic:wr,notes:Vr,triads:_r,seventhChords:Cr,entries:jr,mode:Ir};function Er(n,t){return t.map($).map(o=>P(n,f(o))+o.chordType)}function Dr(n,t){return t.map(e=>{const[o,r]=ln(e),i=D(n,o);return $(f(i)).name+r})}var Rr={fromRomanNumerals:Er,toRomanNumerals:Dr};function Dt(n){const t=Nn(n.map(gt));return!n.length||t.length!==n.length?[]:t.reduce((e,o)=>{const r=e[e.length-1];return e.concat(an(r,o).slice(1))},[t[0]])}function kr(n,t){return Dt(n).map(e=>I(e,t))}var Or={numeric:Dt,chromatic:kr};const Fr={empty:!0,name:"",type:"",tonic:null,setNum:NaN,chroma:"",normalized:"",aliases:[],notes:[],intervals:[]};function Rt(n){if(typeof n!="string")return["",""];const t=n.indexOf(" "),e=u(n.substring(0,t));if(e.empty){const r=u(n);return r.empty?["",n]:[r.name,""]}const o=n.substring(e.name.length+1);return[e.name,o.length?o:""]}const zr=ut;function N(n){const t=Array.isArray(n)?n:Rt(n),e=u(t[0]).name,o=un(t[1]);if(o.empty)return Fr;const r=o.name,i=e?o.intervals.map(s=>P(e,s)):[],a=e?e+" "+r:r;return{...o,name:a,type:r,tonic:e,notes:i}}const qr=g("Scale.scale","Scale.get",N);function Gr(n){const t=N(n),e=sn(t.chroma);return k().filter(o=>e(o.chroma)).map(o=>o.aliases[0])}function Br(n){const t=N(n),e=cn(t.chroma);return L().filter(o=>e(o.chroma)).map(o=>o.name)}function Hr(n){const t=sn(N(n).chroma);return L().filter(e=>t(e.chroma)).map(e=>e.name)}function kt(n){const t=n.map(r=>u(r).pc).filter(r=>r),e=t[0],o=jt(t);return H(o.indexOf(e),o)}function Lr(n){const t=N(n);if(t.empty)return[];const e=t.tonic?t.notes:t.intervals;return jn(t.chroma).map((o,r)=>{const i=N(o).name;return i?[e[r],i]:["",""]}).filter(o=>o[0])}function Ur(n){const t=Array.isArray(n)?kt(n):N(n).notes,e=t.map(o=>u(o).chroma);return o=>{const r=u(typeof o=="number"?vt(o):o),i=r.height;if(i===void 0)return;const a=i%12,s=e.indexOf(a);if(s!==-1)return St(r.name,t[s])}}function Xr(n){const t=Ur(n);return(e,o)=>{const r=u(e).height,i=u(o).height;return r===void 0||i===void 0?[]:an(r,i).map(t).filter(a=>a)}}var tn={get:N,names:zr,extended:Br,modeNames:Lr,reduced:Hr,scaleChords:Gr,scaleNotes:kt,tokenize:Rt,rangeOf:Xr,scale:qr};const Kr={empty:!0,name:"",upper:void 0,lower:void 0,type:void 0,additive:[]},Qr=["4/4","3/4","2/4","2/2","12/8","9/8","6/8","3/8"];function Yr(){return Qr.slice()}const Zr=/^(\d?\d(?:\+\d)*)\/(\d)$/,Hn=new Map;function Jr(n){const t=Hn.get(n);if(t)return t;const e=ni(En(n));return Hn.set(n,e),e}function En(n){if(typeof n=="string"){const[i,a,s]=Zr.exec(n)||[];return En([a,s])}const[t,e]=n,o=+e;if(typeof t=="number")return[t,o];const r=t.split("+").map(i=>+i);return r.length===1?[r[0],o]:[r,o]}var Wr={names:Yr,parse:En,get:Jr};function ni([n,t]){const e=Array.isArray(n)?n.reduce((s,c)=>s+c,0):n,o=t;if(e===0||o===0)return Kr;const r=Array.isArray(n)?`${n.join("+")}/${t}`:`${n}/${t}`,i=Array.isArray(n)?n:[],a=o===4||o===2?"simple":o===8&&e%3===0?"compound":"irregular";return{empty:!1,name:r,type:a,upper:e,lower:o,additive:i}}const ti=Wn,ei=st,oi=mt,ri=dt,ii=Object.freeze(Object.defineProperty({__proto__:null,Array:Ae,Core:Wn,ChordDictionary:oi,PcSet:ei,ScaleDictionary:ri,Tonal:ti,AbcNotation:Me,Chord:fo,ChordType:mt,Collection:Ie,DurationValue:vo,Interval:bn,Key:Nr,Midi:Go,Mode:xr,Note:w,Pcset:st,Progression:Rr,Range:Or,RomanNumeral:fr,Scale:tn,ScaleType:dt,TimeSignature:Wr,accToAlt:G,altToAcc:E,coordToInterval:B,coordToNote:F,decode:on,deprecate:g,distance:D,encode:en,fillStr:C,interval:f,isNamed:z,isPitch:q,note:u,stepToLetter:vn,tokenizeInterval:$n,tokenizeNote:rn,transpose:P},Symbol.toStringTag,{value:"Module"}));function Ot(n,t,e){let[o,r]=tn.tokenize(n),{notes:i}=tn.get(`${o} ${r}`);if(i=i.map(h=>w.get(h).pc),t=Number(t),isNaN(t))throw new Error(`scale offset "${t}" not a number`);const{pc:a,oct:s=3}=w.get(e),c=i.indexOf(a);if(c===-1)throw new Error(`note "${e}" is not in scale "${n}"`);let l=c,m=s,d=a;const M=Math.sign(t);for(;Math.abs(l-c)0&&d[0]==="C"&&(m+=M)}return d+m}_.prototype._transpose=function(n){return this._withHap(t=>{const e=isNaN(Number(n))?String(n):bn.fromSemitones(n);if(typeof t.value=="number"){const o=typeof e=="string"?bn.semitones(e)||0:e;return t.withValue(()=>t.value+o)}return t.withValue(()=>w.simplify(w.transpose(t.value,e)))})};_.prototype._scaleTranspose=function(n){return this._withHap(t=>{if(!t.context.scale)throw new Error("can only use scaleTranspose after .scale");if(typeof t.value!="string")throw new Error("can only use scaleTranspose with notes");return t.withValue(()=>Ot(t.context.scale,Number(n),t.value))})};_.prototype._scale=function(n){return this._withHap(t=>{let e=t.value;const o=Number(e);if(!isNaN(o)){let[r,i]=tn.tokenize(n);const{pc:a,oct:s=3}=w.get(r);e=Ot(a+" "+i,o,a+s)}return t.withValue(()=>e).setContext({...t.context,scale:n})})};_.prototype.define("transpose",(n,t)=>t.transpose(n),{composable:!0,patternified:!0});_.prototype.define("scale",(n,t)=>t.scale(n),{composable:!0,patternified:!0});_.prototype.define("scaleTranspose",(n,t)=>t.scaleTranspose(n),{composable:!0,patternified:!0});var Ft={},hn={},X={};X.__esModule=!0;X.getBestVoicing=void 0;function ai(n){var t=n.chord,e=n.range,o=n.finder,r=n.picker,i=n.lastVoicing,a=o(t,e);return a.length?r(a,i):[]}X.getBestVoicing=ai;var O={};const zt=Ut(ii);var K={};K.__esModule=!0;K.tokenizeChord=void 0;function si(n){var t=(n||"").match(/^([A-G][b#]*)([^\/]*)[\/]?([A-G][b#]*)?$/);return t?t.slice(1):[]}K.tokenizeChord=si;var Ln;function ci(){if(Ln)return O;Ln=1,O.__esModule=!0,O.voicingsInRange=void 0;var n=zt,t=qt(),e=K;function o(r,i,a){i===void 0&&(i=t.lefthand),a===void 0&&(a=["D3","A4"]);var s=(0,e.tokenizeChord)(r),c=s[0],l=s[1];if(!i[l])return[];var m=i[l].map(function(M){return M.split(" ")}),d=n.Range.chromatic(a);return m.reduce(function(M,h){var A=h.map(function(v){return n.Interval.substract(v,h[0])}),Q=n.Note.transpose(c,h[0]),Gt=d.filter(function(v){return n.Note.chroma(v)===n.Note.chroma(Q)}).filter(function(v){return n.Note.midi(n.Note.transpose(v,A[A.length-1]))<=n.Note.midi(a[1])}).map(function(v){return n.Note.enharmonic(v,Q)}),Bt=Gt.map(function(v){return A.map(function(Ht){return n.Note.transpose(v,Ht)})});return M.concat(Bt)},[])}return O.voicingsInRange=o,O}var Un;function qt(){return Un||(Un=1,function(n){var t=Y&&Y.__assign||function(){return t=Object.assign||function(s){for(var c,l=1,m=arguments.length;lui({chord:n,dictionary:di,range:e,picker:li,lastVoicing:t}),x=_;x.prototype.fmapNested=function(n){return new x(t=>this.query(t).map(e=>Kt(n(e)).query(t).map(o=>new Qt(e.whole,e.part,o.value,o.context))).flat())};x.prototype.voicings=function(n){let t;return n!=null&&n.length||(n=["F3","A4"]),this.fmapNested(e=>(t=Mi(e.value,t,n),Yt(...t)._withContext(()=>({locations:e.context.locations||[]}))))};x.prototype._rootNotes=function(n=2){return this.fmap(t=>{const[e,o]=t.match(/^([a-gA-G][b#]?).*$/);return o+n})};x.prototype.define("voicings",(n,t)=>t.voicings(n),{composable:!0});x.prototype.define("rootNotes",(n,t)=>t.rootNotes(n),{composable:!0,patternified:!0}); diff --git a/packages/react/examples/nano-repl/dist/assets/osc.c09823d8.js b/packages/react/examples/nano-repl/dist/assets/osc.c09823d8.js deleted file mode 100644 index a0200416..00000000 --- a/packages/react/examples/nano-repl/dist/assets/osc.c09823d8.js +++ /dev/null @@ -1 +0,0 @@ -import{c as x,P as et}from"./index.ec9f9930.js";var ke={exports:{}};(function(T,$){(function(B,u){T.exports=u()})(x,function(){function B(r,e){var n=Object.keys(r);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(r);e&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(r,o).enumerable})),n.push.apply(n,t)}return n}function u(r){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var n,t=h(r);if(e){var o=h(this).constructor;n=Reflect.construct(t,arguments,o)}else n=t.apply(this,arguments);return R(this,n)}}function Se(r,e){for(;!Object.prototype.hasOwnProperty.call(r,e)&&(r=h(r))!==null;);return r}function v(){return(v=typeof Reflect<"u"&&Reflect.get?Reflect.get:function(r,e,n){var t=Se(r,e);if(t){var o=Object.getOwnPropertyDescriptor(t,e);return o.get?o.get.call(arguments.length<3?r:n):o.value}}).apply(this,arguments)}function y(r){return Number(r)===r&&r%1==0}function ee(r){return Number(r)===r}function p(r){return typeof r=="string"}function te(r){return typeof r=="boolean"}function ne(r){return r===1/0}function P(r){return Object.prototype.toString.call(r)==="[object Array]"}function F(r){return Object.prototype.toString.call(r)==="[object Object]"}function A(r){return typeof r=="function"}function re(r){return r instanceof Uint8Array}function Oe(r){return r instanceof Date}function E(r){return r===void 0}function oe(r){return r===null}function N(r){return r+3&-4}function se(r){return Object.prototype.hasOwnProperty.call(typeof x<"u"?x:window,r)}function Ee(r){return r.buffer?new DataView(r.buffer):r instanceof ArrayBuffer?new DataView(r):new DataView(new Uint8Array(r))}function ie(r){if(y(r))return"i";if(e=r,Number(e)===e&&e%1!=0)return"f";if(p(r))return"s";if(re(r))return"b";if(te(r))return r?"T":"F";if(oe(r))return"N";if(ne(r))return"I";var e;throw new Error("OSC typeTag() found unknown value type")}function H(r){var e="";if(P(r))return"/".concat(r.join("/"));if(p(r))return(e=r).length>1&&e[e.length-1]==="/"&&(e=e.slice(0,e.length-1)),e.length>1&&e[0]!=="/"&&(e="/".concat(e)),e;throw new Error("OSC prepareAddress() needs addresses of type array or string")}function ae(r){if(!p(r))throw new Error("OSC prepareRegExPattern() needs strings");return r.replace(/\./g,"\\.").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!/g,"[^").replace(/\?/g,".").replace(/\*/g,".*")}var ue=function(){function r(){f(this,r),this.data=[],this.byteLength=0}return l(r,[{key:"add",value:function(e){if(te(e)||ne(e)||oe(e))return this;var n=e.pack();return this.byteLength+=n.byteLength,this.data.push(n),this}},{key:"merge",value:function(){var e=new Uint8Array(this.byteLength),n=0;return this.data.forEach(function(t){e.set(t,n),n+=t.byteLength}),e}}]),r}(),S=function(){function r(e){f(this,r),this.value=e,this.offset=0}return l(r,[{key:"pack",value:function(e,n){if(!e||!n)throw new Error("OSC Atomic cant't be packed without given method or byteLength");var t=new Uint8Array(n),o=new DataView(t.buffer);if(E(this.value))throw new Error("OSC Atomic cant't be encoded with empty value");return o[e](this.offset,this.value,!1),t}},{key:"unpack",value:function(e,n,t){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(!(e&&n&&t))throw new Error("OSC Atomic cant't be unpacked without given dataView, method or byteLength");if(!(e instanceof DataView))throw new Error("OSC Atomic expects an instance of type DataView");return this.value=e[n](o,!1),this.offset=o+t,this.offset}}]),r}(),V=function(r){w(n,r);var e=g(n);function n(t){if(f(this,n),t&&!y(t))throw new Error("OSC AtomicInt32 constructor expects value of type number");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return v(h(n.prototype),"pack",this).call(this,"setInt32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return v(h(n.prototype),"unpack",this).call(this,t,"getInt32",4,o)}}]),n}(S),ce="utf-8";function Ce(r){if(se("Buffer"))return Buffer.from(r).toString(ce);if(se("TextDecoder"))return new TextDecoder(ce).decode(new Int8Array(r));for(var e="",n=0;n1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicString expects an instance of type DataView");for(var i,s=o,a=[];s0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(f(this,r),!y(e)||!y(n))throw new Error("OSC Timetag constructor expects values of type integer number");this.seconds=e,this.fractions=n}return l(r,[{key:"timestamp",value:function(e){var n;if(typeof e=="number"){n=e/1e3;var t=Math.floor(n);return this.seconds=t+fe,this.fractions=Math.round(le*(n-t)),e}return 1e3*((n=this.seconds-fe)+Math.round(this.fractions/le))}}]),r}(),D=function(r){w(n,r);var e=g(n);function n(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Date.now();f(this,n);var o=new z;return t instanceof z?o=t:y(t)?o.timestamp(t):Oe(t)&&o.timestamp(t.getTime()),e.call(this,o)}return l(n,[{key:"pack",value:function(){if(E(this.value))throw new Error("OSC AtomicTimetag can not be encoded with empty value");var t=this.value,o=t.seconds,i=t.fractions,s=new Uint8Array(8),a=new DataView(s.buffer);return a.setInt32(0,o,!1),a.setInt32(4,i,!1),s}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicTimetag expects an instance of type DataView");var i=t.getUint32(o,!1),s=t.getUint32(o+4,!1);return this.value=new z(i,s),this.offset=o+8,this.offset}}]),n}(S),he=function(r){w(n,r);var e=g(n);function n(t){if(f(this,n),t&&!re(t))throw new Error("OSC AtomicBlob constructor expects value of type Uint8Array");return e.call(this,t)}return l(n,[{key:"pack",value:function(){if(E(this.value))throw new Error("OSC AtomicBlob can not be encoded with empty value");var t=N(this.value.byteLength),o=new Uint8Array(t+4);return new DataView(o.buffer).setInt32(0,this.value.byteLength,!1),o.set(this.value,4),o}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(t instanceof DataView))throw new Error("OSC AtomicBlob expects an instance of type DataView");var i=t.getInt32(o,!1);return this.value=new Uint8Array(t.buffer,o+4,i),this.offset=N(o+4+i),this.offset}}]),n}(S),pe=function(r){w(n,r);var e=g(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat32 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return v(h(n.prototype),"pack",this).call(this,"setFloat32",4)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return v(h(n.prototype),"unpack",this).call(this,t,"getFloat32",4,o)}}]),n}(S),de=function(r){w(n,r);var e=g(n);function n(t){if(f(this,n),t&&!ee(t))throw new Error("OSC AtomicFloat64 constructor expects value of type float");return e.call(this,t)}return l(n,[{key:"pack",value:function(){return v(h(n.prototype),"pack",this).call(this,"setFloat64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return v(h(n.prototype),"unpack",this).call(this,t,"getFloat64",8,o)}}]),n}(S),Pe=BigInt("9223372036854775807"),Ae=BigInt("-9223372036854775808"),ge=function(r){w(n,r);var e=g(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicInt64 constructor expects value of type BigInt");if(t&&(tPe))throw new Error("OSC AtomicInt64 value is out of bounds");var o;return t&&(o=BigInt.asIntN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return v(h(n.prototype),"pack",this).call(this,"setBigInt64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return v(h(n.prototype),"unpack",this).call(this,t,"getBigInt64",8,o)}}]),n}(S),Ie=BigInt("18446744073709551615"),ve=function(r){w(n,r);var e=g(n);function n(t){if(f(this,n),t&&typeof t!="bigint")throw new Error("OSC AtomicUInt64 constructor expects value of type BigInt");if(t&&(t<0||t>Ie))throw new Error("OSC AtomicUInt64 value is out of bounds");var o;return t&&(o=BigInt.asUintN(64,t)),e.call(this,o)}return l(n,[{key:"pack",value:function(){return v(h(n.prototype),"pack",this).call(this,"setBigUint64",8)}},{key:"unpack",value:function(t){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return v(h(n.prototype),"unpack",this).call(this,t,"getBigUint64",8,o)}}]),n}(S),G=!0,Z=!1,q=null,J=1/0,K=function(){function r(e,n){var t=this;if(f(this,r),this.offset=0,this.address="",this.types="",this.args=[],!E(e)){if(!p(e)&&!P(e))throw new Error("OSC Message constructor first argument (address) must be a string or array");this.address=H(e)}if(!E(n)){if(!P(n))throw new Error("OSC Message constructor second argument (args) must be an array");n.forEach(function(o){return t.add(o.type,o.value)})}}return l(r,[{key:"add",value:function(e,n){if(E(e))throw new Error("OSC Message needs a valid OSC Atomic Data Type");e==="N"?this.args.push(q):e==="T"?this.args.push(G):e==="F"?this.args.push(Z):e==="I"?this.args.push(J):this.args.push(n),this.types+=e}},{key:"pack",value:function(){var e=this;if(this.address.length===0||this.address[0]!=="/")throw new Error("OSC Message has an invalid address");var n=new ue;if(n.add(new m(this.address)),n.add(new m(",".concat(this.types))),this.args.length>0){var t;if(this.args.length>this.types.length)throw new Error("OSC Message argument and type tag mismatch");this.args.forEach(function(o,i){var s=e.types[i];if(s==="i")t=new V(o);else if(s==="h")t=new ge(o);else if(s==="t")t=new ve(o);else if(s==="f")t=new pe(o);else if(s==="d")t=new de(o);else if(s==="s")t=new m(o);else if(s==="b")t=new he(o);else if(s==="T")t=G;else if(s==="F")t=Z;else if(s==="N")t=q;else{if(s!=="I")throw new Error("OSC Message found unknown argument type");t=J}n.add(t)})}return n.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Message expects an instance of type DataView.");var t=new m;t.unpack(e,n);var o=new m;if(o.unpack(e,t.offset),t.value.length===0||t.value[0]!=="/")throw new Error("OSC Message found malformed or missing address string");if(o.value.length===0&&o.value[0]!==",")throw new Error("OSC Message found malformed or missing type string");for(var i,s,a=o.offset,c=[],d=1;d0&&(o=a.shift()),a.length>0&&a[0]instanceof Array&&(i=a.shift()),t=e.call(this,o,i),a.length>0&&(t.types=a.map(function(d){return ie(d)}).join(""),t.args=a),t}return l(n,[{key:"add",value:function(t){v(h(n.prototype),"add",this).call(this,ie(t),t)}}]),n}(K),U="#bundle",C=function(){function r(){var e=this;f(this,r),this.offset=0,this.timetag=new D,this.bundleElements=[];for(var n=arguments.length,t=new Array(n),o=0;o0&&(t[0]instanceof Date||y(t[0])?this.timetag=new D(t[0]):P(t[0])?(t[0].forEach(function(i){e.add(i)}),t.length>1&&(t[1]instanceof Date||y(t[1]))&&(this.timetag=new D(t[1]))):t.forEach(function(i){e.add(i)}))}return l(r,[{key:"timestamp",value:function(e){if(!y(e))throw new Error("OSC Bundle needs an integer for setting the timestamp");this.timetag=new D(e)}},{key:"add",value:function(e){if(!(e instanceof b||e instanceof r))throw new Error("OSC Bundle contains only Messages and Bundles");this.bundleElements.push(e)}},{key:"pack",value:function(){var e=new ue;return e.add(new m(U)),this.timetag||(this.timetag=new D),e.add(this.timetag),this.bundleElements.forEach(function(n){e.add(new V(n.pack().byteLength)),e.add(n)}),e.merge()}},{key:"unpack",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Bundle expects an instance of type DataView");var t=new m;if(t.unpack(e,n),t.value!==U)throw new Error("OSC Bundle does not contain a valid #bundle head");var o=new D,i=o.unpack(e,t.offset);for(this.bundleElements=[];i1&&arguments[1]!==void 0?arguments[1]:0;if(!(e instanceof DataView))throw new Error("OSC Packet expects an instance of type DataView");if(e.byteLength%4!=0)throw new Error("OSC Packet byteLength has to be a multiple of four");var t,o=new m;return o.unpack(e,n),(t=o.value===U?new C:new b).unpack(e,n),this.offset=t.offset,this.value=t,this.offset}}]),r}(),De={discardLateMessages:!1},je=function(){function r(e){f(this,r),this.options=u(u({},De),e),this.addressHandlers=[],this.eventHandlers={open:[],error:[],close:[]},this.uuid=0}return l(r,[{key:"dispatch",value:function(e,n){var t=this;if(!(e instanceof j))throw new Error("OSC EventHander dispatch() accepts only arguments of type Packet");if(!e.value)throw new Error("OSC EventHander dispatch() can't read empty Packets");if(e.value instanceof C){var o=e.value;return o.bundleElements.forEach(function(s){if(s instanceof C){if(o.timetag.value.timestamp()1&&(s=n[1]);var a=null;if(n.length>2)if(y(n[2]))a=n[2];else{if(!(n[2]instanceof Date))throw new Error("OSC EventHandler timestamp has to be a number or Date");a=n[2].getTime()}var c=null;if(n.length>=3&&(c=n[3]),a){var d=Date.now();if(d>a&&!this.options.discardLateMessages)return this.call(i,s,c);var O=this;return setTimeout(function(){O.call(i,s,c)},a-d),!0}return this.call(i,s,c)}},{key:"on",value:function(e,n){if(!p(e)&&!P(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!A(n))throw new Error("OSC EventHandler callback has to be a function");this.uuid+=1;var t={id:this.uuid,callback:n};if(p(e)&&e in this.eventHandlers)return this.eventHandlers[e].push(t),this.uuid;var o=H(e);return o in this.addressHandlers||(this.addressHandlers[o]=[]),this.addressHandlers[o].push(t),this.uuid}},{key:"off",value:function(e,n){if(!p(e)&&!P(e))throw new Error("OSC EventHandler accepts only strings or arrays for address patterns");if(!y(n))throw new Error("OSC EventHandler subscription id has to be a number");var t,o;return p(e)&&e in this.eventHandlers?(t=e,o=this.eventHandlers):(t=H(e),o=this.addressHandlers),t in o&&o[t].some(function(i,s){return i.id===n&&(o[t].splice(s,1),!0)})}}]),r}(),xe=0,Be=1,Me=2,He=3,Te=function(){function r(){throw f(this,r),new Error("DatagramPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options.open),n),o=t.port,i=t.exclusive;this.socketStatus=xe,this.socket.bind({address:t.host,port:o,exclusive:i},function(){e.socketStatus=Be,e.notify("open")})}},{key:"close",value:function(){var e=this;this.socketStatus=Me,this.socket.close(function(){e.socketStatus=He,e.notify("close")})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=u(u({},this.options.send),n),o=t.port,i=t.host;this.socket.send(Buffer.from(e),0,e.byteLength,o,i)}}]),r}();typeof WebSocket<"u"?I=WebSocket:typeof MozWebSocket<"u"?I=MozWebSocket:typeof x<"u"?I=x.WebSocket||x.MozWebSocket:typeof window<"u"?I=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(I=self.WebSocket||self.MozWebSocket);var Q=void 0,we=I,Le=0,Ne=1,Ve=2,Ue=3,_={udpServer:{host:"localhost",port:41234,exclusive:!1},udpClient:{host:"localhost",port:41235},wsServer:{host:"localhost",port:8080},receiver:"ws"};function ye(r,e){return u(u(u(u({},_),r),e),{},{udpServer:u(u(u({},_.udpServer),r.udpServer),e.udpServer),udpClient:u(u(u({},_.udpClient),r.udpClient),e.udpClient),wsServer:u(u(u({},_.wsServer),r.wsServer),e.wsServer)})}var _e=function(){function r(){throw f(this,r),new Error("BridgePlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=ye(this.options,n);this.socketStatus=Le,this.socket.bind({address:t.udpServer.host,port:t.udpServer.port,exclusive:t.udpServer.exclusive},function(){var o={};t.wsServer.server?o.server=t.wsServer.server:o=t.wsServer,e.websocket=new Q(o),e.websocket.binaryType="arraybuffer",e.websocket.on("listening",function(){e.socketStatus=Ne,e.notify("open")}),e.websocket.on("error",function(i){e.notify("error",i)}),e.websocket.on("connection",function(i){i.on("message",function(s,a){e.send(s,{receiver:"udp"}),e.notify(new Uint8Array(s),a)})})})}},{key:"close",value:function(){var e=this;this.socketStatus=Ve,this.socket.close(function(){e.websocket.close(function(){e.socketStatus=Ue,e.notify("close")})})}},{key:"send",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=ye(this.options,n),o=t.receiver;if(o==="udp"){var i=e instanceof Buffer?e:Buffer.from(e);this.socket.send(i,0,i.byteLength,t.udpClient.port,t.udpClient.host)}else{if(o!=="ws")throw new Error("BridgePlugin can not send message to unknown receiver");this.websocket.clients.forEach(function(s){s.send(e,{binary:!0})})}}}]),r}(),We=-1,Re=0,Fe=1,ze=2,Ge=3,Ze={host:"localhost",port:8080,secure:!1,protocol:[]},me=function(){function r(e){if(f(this,r),!we)throw new Error("WebsocketClientPlugin can't find a WebSocket class");this.options=u(u({},Ze),e),this.socket=null,this.socketStatus=We,this.notify=function(){}}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s=t.secure,a=t.protocol;this.socket&&this.close();var c=s?"wss":"ws",d={address:i,family:c,port:o,size:0};this.socket=new we("".concat(c,"://").concat(i,":").concat(o),a),this.socket.binaryType="arraybuffer",this.socketStatus=Re,this.socket.onopen=function(){e.socketStatus=Fe,e.notify("open")},this.socket.onclose=function(){e.socketStatus=Ge,e.notify("close")},this.socket.onerror=function(O){e.notify("error",O)},this.socket.onmessage=function(O){e.notify(O.data,d)}}},{key:"close",value:function(){this.socketStatus=ze,this.socket.close()}},{key:"send",value:function(e){this.socket.send(e)}}]),r}(),qe=0,Je=1,Ke=2,Qe=3,Xe=function(){function r(e){throw f(this,r),new Error("WebsocketServerPlugin can not be used in browser context")}return l(r,[{key:"registerNotify",value:function(e){this.notify=e}},{key:"status",value:function(){return this.socketStatus}},{key:"open",value:function(){var e=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=u(u({},this.options),n),o=t.port,i=t.host,s={address:i,family:"wsserver",port:o,size:0};this.socket&&this.close(),t.server?this.socket=new Q({server:t.server}):this.socket=new Q({host:i,port:o}),this.socket.binaryType="arraybuffer",this.socketStatus=qe,this.socket.on("listening",function(){e.socketStatus=Je,e.notify("open")}),this.socket.on("error",function(a){e.notify("error",a)}),this.socket.on("connection",function(a){a.on("message",function(c){e.notify(new Uint8Array(c),s)})})}},{key:"close",value:function(){var e=this;this.socketStatus=Ke,this.socket.close(function(){e.socketStatus=Qe,e.notify("close")})}},{key:"send",value:function(e){this.socket.clients.forEach(function(n){n.send(e,{binary:!0})})}}]),r}(),Ye={discardLateMessages:!1,plugin:new me},k=function(){function r(e){if(f(this,r),e&&!F(e))throw new Error("OSC options argument has to be an object.");this.options=u(u({},Ye),e),this.eventHandler=new je({discardLateMessages:this.options.discardLateMessages});var n=this.eventHandler;this.options.plugin&&this.options.plugin.registerNotify&&this.options.plugin.registerNotify(function(){return n.notify.apply(n,arguments)})}return l(r,[{key:"on",value:function(e,n){if(!p(e)||!A(n))throw new Error("OSC on() needs event- or address string and callback function");return this.eventHandler.on(e,n)}},{key:"off",value:function(e,n){if(!p(e)||!y(n))throw new Error("OSC off() needs string and number (subscriptionId) to unsubscribe");return this.eventHandler.off(e,n)}},{key:"open",value:function(e){if(e&&!F(e))throw new Error("OSC open() options argument needs to be an object");if(!this.options.plugin||!A(this.options.plugin.open))throw new Error("OSC Plugin API #open is not implemented!");return this.options.plugin.open(e)}},{key:"status",value:function(){if(!this.options.plugin||!A(this.options.plugin.status))throw new Error("OSC Plugin API #status is not implemented!");return this.options.plugin.status()}},{key:"close",value:function(){if(!this.options.plugin||!A(this.options.plugin.close))throw new Error("OSC Plugin API #close is not implemented!");return this.options.plugin.close()}},{key:"send",value:function(e,n){if(!this.options.plugin||!A(this.options.plugin.send))throw new Error("OSC Plugin API #send is not implemented!");if(!(e instanceof K||e instanceof b||e instanceof C||e instanceof j))throw new Error("OSC send() needs Messages, Bundles or Packets");if(n&&!F(n))throw new Error("OSC send() options argument has to be an object");return this.options.plugin.send(e.pack(),n)}}]),r}();return k.STATUS={IS_NOT_INITIALIZED:-1,IS_CONNECTING:0,IS_OPEN:1,IS_CLOSING:2,IS_CLOSED:3},k.Packet=j,k.Bundle=C,k.Message=b,k.TypedMessage=K,k.DatagramPlugin=Te,k.WebsocketClientPlugin=me,k.WebsocketServerPlugin=Xe,k.BridgePlugin=_e,k})})(ke);const Y=ke.exports,be=new Y;be.open();const tt=.1;let X=-1;et.prototype.osc=function(){return this._withHap(T=>{const $=(B,u,f,L)=>{const l=u.wholeOrPart().begin.valueOf(),W=u.duration.valueOf();X<0&&(X=Date.now()-f*1e3);const w=Object.assign({},{cps:L,cycle:l,delta:W},u.value),h=Object.entries(w).flat(),M=Math.floor(X+(B+tt)*1e3),R=new Y.Message("/dirt/play",...h),g=new Y.Bundle([R],M);g.timestamp(M),be.send(g)};return T.setContext({...T.context,onTrigger:$})})}; diff --git a/packages/react/examples/nano-repl/dist/assets/serial.b42b098c.js b/packages/react/examples/nano-repl/dist/assets/serial.b42b098c.js deleted file mode 100644 index 44214be4..00000000 --- a/packages/react/examples/nano-repl/dist/assets/serial.b42b098c.js +++ /dev/null @@ -1 +0,0 @@ -import{P as w}from"./index.ec9f9930.js";var i,f=!1;async function b(a=38400){if(!f){if(f=!0,i)return i;if("serial"in navigator){const r=await navigator.serial.requestPort();await r.open({baudRate:a});const o=new TextEncoderStream;o.readable.pipeTo(r.writable);const s=o.writable.getWriter();i=function(e){s.write(e)}}else throw"Webserial is not available in this browser."}}const g=.1;w.prototype.serial=function(...a){return this._withHap(r=>{i||b(...a);const o=(s,e,u)=>{var t="";if(typeof e.value=="object")if("action"in e.value){t+=e.value.action+"(";var c=!0;for(const[n,l]of Object.entries(e.value))n!=="action"&&(c?c=!1:t+=",",t+=`${n}:${l}`);t+=")"}else for(const[n,l]of Object.entries(e.value))t+=`${n}:${l};`;else t=e.value;const v=(s-u+g)*1e3;window.setTimeout(i,v,t)};return r.setContext({...r.context,onTrigger:o})})};export{b as getWriter}; diff --git a/packages/react/examples/nano-repl/dist/index.html b/packages/react/examples/nano-repl/dist/index.html deleted file mode 100644 index a7038dd7..00000000 --- a/packages/react/examples/nano-repl/dist/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Strudel Nano REPL - - - - -
- - - diff --git a/packages/react/examples/nano-repl/package.json b/packages/react/examples/nano-repl/package.json index cf451aff..a6164827 100644 --- a/packages/react/examples/nano-repl/package.json +++ b/packages/react/examples/nano-repl/package.json @@ -10,7 +10,14 @@ }, "dependencies": { "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "@strudel.cycles/core": "workspace:*", + "@strudel.cycles/osc": "workspace:*", + "@strudel.cycles/mini": "workspace:*", + "@strudel.cycles/transpiler": "workspace:*", + "@strudel.cycles/webaudio": "workspace:*", + "@strudel.cycles/tonal": "workspace:*", + "@strudel.cycles/react": "workspace:*" }, "devDependencies": { "@types/react": "^18.0.17", diff --git a/packages/react/examples/nano-repl/src/App.jsx b/packages/react/examples/nano-repl/src/App.jsx index 07c46f3e..820540e4 100644 --- a/packages/react/examples/nano-repl/src/App.jsx +++ b/packages/react/examples/nano-repl/src/App.jsx @@ -1,27 +1,21 @@ -import { evalScope, controls } from '@strudel.cycles/core'; -import { getAudioContext, panic, webaudioOutput } from '@strudel.cycles/webaudio'; +import { controls, evalScope } from '@strudel.cycles/core'; +import { CodeMirror, useHighlighting, useKeydown, useStrudel, flash } from '@strudel.cycles/react'; +import { getAudioContext, initAudioOnFirstClick, panic, webaudioOutput } from '@strudel.cycles/webaudio'; import { useCallback, useState } from 'react'; -import CodeMirror, { flash } from '../../../src/components/CodeMirror6'; -import useKeydown from '../../../src/hooks/useKeydown.mjs'; -import useStrudel from '../../../src/hooks/useStrudel'; -import useHighlighting from '../../../src/hooks/useHighlighting'; import './style.css'; // import { prebake } from '../../../../../repl/src/prebake.mjs'; +initAudioOnFirstClick(); + // TODO: only import stuff when play is pressed? evalScope( controls, import('@strudel.cycles/core'), - // import('@strudel.cycles/tone'), - // import('@strudel.cycles/midi'), // TODO: find out why midi loads tone.js import('@strudel.cycles/tonal'), import('@strudel.cycles/mini'), import('@strudel.cycles/xen'), import('@strudel.cycles/webaudio'), import('@strudel.cycles/osc'), - import('@strudel.cycles/webdirt'), - import('@strudel.cycles/serial'), - import('@strudel.cycles/soundfonts'), ); const defaultTune = `samples({ @@ -30,7 +24,7 @@ const defaultTune = `samples({ hh: ['hh27/000_hh27closedhh.wav','hh/000_hh3closedhh.wav'], }, 'github:tidalcycles/Dirt-Samples/master/'); stack( - s("bd,[~ ],hh(3,4)") // drums + s("bd,[~ ],hh*8") // drums .speed(perlin.range(.7,.9)) // random sample speed variation //.hush() ,"" // bassline @@ -43,7 +37,7 @@ stack( .gain(.4) // turn down .cutoff(sine.slow(7).range(300,5000)) // automate cutoff //.hush() - ,">".voicings() // chords + ,">".voicings('lefthand') // chords .superimpose(x=>x.add(.04)) // add second, slightly detuned voice .add(perlin.range(0,.5)) // random pitch variation .n() // wrap in "n" @@ -103,7 +97,7 @@ function App() { scheduler.start(); } } else if (e.code === 'Period') { - scheduler.pause(); + scheduler.stop(); panic(); e.preventDefault(); } @@ -114,13 +108,11 @@ function App() { ); return (
- {/*