spessasynth_lib 3.9.19 → 3.9.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -217,12 +217,14 @@ export function modifyMIDI(
|
|
|
217
217
|
(event.messageStatusByte > 0x80 && event.messageStatusByte < 0xF0) &&
|
|
218
218
|
// event has the channel we want
|
|
219
219
|
(event.messageStatusByte & 0xF) === chan &&
|
|
220
|
-
// event is not
|
|
221
|
-
(
|
|
222
|
-
(event.messageStatusByte & 0xF0
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
220
|
+
// event is not one of the controller changes that reset things
|
|
221
|
+
!(
|
|
222
|
+
(event.messageStatusByte & 0xF0 === messageTypes.controllerChange) &&
|
|
223
|
+
(
|
|
224
|
+
event.messageData[0] === midiControllers.resetAllControllers ||
|
|
225
|
+
event.messageData[0] === midiControllers.allNotesOff ||
|
|
226
|
+
event.messageData[0] === midiControllers.allSoundOff
|
|
227
|
+
)
|
|
226
228
|
)
|
|
227
229
|
);
|
|
228
230
|
}
|
package/package.json
CHANGED
|
@@ -45,9 +45,32 @@ export function _playTo(time, ticks = undefined)
|
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* Save programs here and send them only after
|
|
48
|
-
* @type {number[]}
|
|
48
|
+
* @type {{program: number, bank: number, actualBank: number}[]}
|
|
49
49
|
*/
|
|
50
|
-
const programs =
|
|
50
|
+
const programs = [];
|
|
51
|
+
for (let i = 0; i < channelsToSave; i++)
|
|
52
|
+
{
|
|
53
|
+
programs.push({
|
|
54
|
+
program: -1,
|
|
55
|
+
bank: 0,
|
|
56
|
+
actualBank: 0,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const isCCNonSkippable = controllerNumber => (
|
|
61
|
+
controllerNumber === midiControllers.dataDecrement ||
|
|
62
|
+
controllerNumber === midiControllers.dataIncrement ||
|
|
63
|
+
controllerNumber === midiControllers.dataEntryMsb ||
|
|
64
|
+
controllerNumber === midiControllers.dataDecrement ||
|
|
65
|
+
controllerNumber === midiControllers.lsbForControl6DataEntry ||
|
|
66
|
+
controllerNumber === midiControllers.RPNLsb ||
|
|
67
|
+
controllerNumber === midiControllers.RPNMsb ||
|
|
68
|
+
controllerNumber === midiControllers.NRPNLsb ||
|
|
69
|
+
controllerNumber === midiControllers.NRPNMsb ||
|
|
70
|
+
controllerNumber === midiControllers.bankSelect ||
|
|
71
|
+
controllerNumber === midiControllers.lsbForControl0BankSelect||
|
|
72
|
+
controllerNumber === midiControllers.resetAllControllers
|
|
73
|
+
);
|
|
51
74
|
|
|
52
75
|
/**
|
|
53
76
|
* Save controllers here and send them only after
|
|
@@ -97,26 +120,15 @@ export function _playTo(time, ticks = undefined)
|
|
|
97
120
|
break;
|
|
98
121
|
|
|
99
122
|
case messageTypes.programChange:
|
|
100
|
-
|
|
123
|
+
const p = programs[channel];
|
|
124
|
+
p.program = event.messageData[0];
|
|
125
|
+
p.actualBank = p.bank;
|
|
101
126
|
break;
|
|
102
127
|
|
|
103
128
|
case messageTypes.controllerChange:
|
|
104
129
|
// do not skip data entries
|
|
105
130
|
const controllerNumber = event.messageData[0];
|
|
106
|
-
if(
|
|
107
|
-
controllerNumber === midiControllers.dataDecrement ||
|
|
108
|
-
controllerNumber === midiControllers.dataIncrement ||
|
|
109
|
-
controllerNumber === midiControllers.dataEntryMsb ||
|
|
110
|
-
controllerNumber === midiControllers.dataDecrement ||
|
|
111
|
-
controllerNumber === midiControllers.lsbForControl6DataEntry ||
|
|
112
|
-
controllerNumber === midiControllers.RPNLsb ||
|
|
113
|
-
controllerNumber === midiControllers.RPNMsb ||
|
|
114
|
-
controllerNumber === midiControllers.NRPNLsb ||
|
|
115
|
-
controllerNumber === midiControllers.NRPNMsb ||
|
|
116
|
-
controllerNumber === midiControllers.bankSelect ||
|
|
117
|
-
controllerNumber === midiControllers.lsbForControl0BankSelect||
|
|
118
|
-
controllerNumber === midiControllers.resetAllControllers
|
|
119
|
-
)
|
|
131
|
+
if(isCCNonSkippable(controllerNumber))
|
|
120
132
|
{
|
|
121
133
|
if(this.sendMIDIMessages)
|
|
122
134
|
{
|
|
@@ -125,10 +137,16 @@ export function _playTo(time, ticks = undefined)
|
|
|
125
137
|
else
|
|
126
138
|
{
|
|
127
139
|
let ccV = event.messageData[1];
|
|
128
|
-
if(
|
|
140
|
+
if(controllerNumber === midiControllers.bankSelect)
|
|
129
141
|
{
|
|
130
|
-
|
|
131
|
-
|
|
142
|
+
if(this.midiData.embeddedSoundFont !== undefined)
|
|
143
|
+
{
|
|
144
|
+
// special case if the RMID is embedded: subtract 1 from bank. See wiki About-RMIDI
|
|
145
|
+
ccV--;
|
|
146
|
+
}
|
|
147
|
+
// add the bank to saved
|
|
148
|
+
programs[channel].bank = ccV;
|
|
149
|
+
break;
|
|
132
150
|
}
|
|
133
151
|
this.synth.controllerChange(channel, controllerNumber, ccV);
|
|
134
152
|
}
|
|
@@ -170,16 +188,18 @@ export function _playTo(time, ticks = undefined)
|
|
|
170
188
|
|
|
171
189
|
// every controller that has changed
|
|
172
190
|
savedControllers[channelNumber].forEach((value, index) => {
|
|
173
|
-
if(value !== defaultControllerArray[index])
|
|
191
|
+
if(value !== defaultControllerArray[index] && !isCCNonSkippable(index))
|
|
174
192
|
{
|
|
175
193
|
this.sendMIDIMessage([messageTypes.controllerChange | (channelNumber % 16), index, value])
|
|
176
194
|
}
|
|
177
195
|
});
|
|
178
196
|
|
|
179
197
|
// restore programs
|
|
180
|
-
if(programs[channelNumber] !==
|
|
198
|
+
if(programs[channelNumber].program !== -1)
|
|
181
199
|
{
|
|
182
|
-
|
|
200
|
+
const bank = programs[channelNumber].actualBank;
|
|
201
|
+
this.sendMIDIMessage([messageTypes.controllerChange | (channelNumber % 16), midiControllers.bankSelect, bank]);
|
|
202
|
+
this.sendMIDIMessage([messageTypes.programChange | (channelNumber % 16), programs[channelNumber].program]);
|
|
183
203
|
}
|
|
184
204
|
}
|
|
185
205
|
}
|
|
@@ -197,16 +217,18 @@ export function _playTo(time, ticks = undefined)
|
|
|
197
217
|
{
|
|
198
218
|
// every controller that has changed
|
|
199
219
|
savedControllers[channelNumber].forEach((value, index) => {
|
|
200
|
-
if(value !== defaultControllerArray[index])
|
|
220
|
+
if(value !== defaultControllerArray[index] && !isCCNonSkippable(index))
|
|
201
221
|
{
|
|
202
222
|
this.synth.controllerChange(channelNumber, index, value);
|
|
203
223
|
}
|
|
204
224
|
})
|
|
205
225
|
}
|
|
206
226
|
// restore programs
|
|
207
|
-
if(programs[channelNumber] !== -1)
|
|
227
|
+
if(programs[channelNumber].program !== -1)
|
|
208
228
|
{
|
|
209
|
-
|
|
229
|
+
const bank = programs[channelNumber].actualBank;
|
|
230
|
+
this.synth.controllerChange(channelNumber, midiControllers.bankSelect, bank);
|
|
231
|
+
this.synth.programChange(channelNumber, programs[channelNumber].program);
|
|
210
232
|
}
|
|
211
233
|
}
|
|
212
234
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var bt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var U=class extends Uint8Array{constructor(A){super(A),this.currentIndex=0}currentIndex};function ce(e){let A=e.reduce((s,n)=>s+n.length,0),t=new U(A),I=0;for(let s of e)t.set(s,I),I+=s.length;return t}function Oe(e){e=Math.floor(e);let A=Math.floor(e/60),t=Math.round(e-A*60);return{minutes:A,seconds:t,time:`${A.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`}}function Lt(e){return e.trim().replaceAll(".mid","").replaceAll(".rmi","").replaceAll("_"," ")}function CA(e){let A="";for(let t=0;t<e.length;t++){let I=e[t].toString(16).padStart(2,"0").toUpperCase();A+=I,A+=" "}return A}var C={warn:"color: orange;",unrecognized:"color: red;",info:"color: aqua;",recognized:"color: lime",value:"color: yellow; background-color: black;"};var de=class{constructor(A,t,I){this.ticks=A,this.messageStatusByte=t,this.messageData=I}};function Ht(e){let A=e&240,t=e&15,I=t;switch(A){case 128:case 144:case 160:case 176:case 192:case 208:case 224:break;case 240:switch(t){case 0:I=-3;break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:I=-1;break;case 15:I=-2;break}break;default:I=-1}return I}var S={noteOff:128,noteOn:144,polyPressure:160,controllerChange:176,programChange:192,channelPressure:208,pitchBend:224,systemExclusive:240,timecode:241,songPosition:242,songSelect:243,tuneRequest:246,clock:248,start:250,continue:251,stop:252,activeSensing:254,reset:255,sequenceNumber:0,text:1,copyright:2,trackName:3,instrumentName:4,lyric:5,marker:6,cuePoint:7,midiChannelPrefix:32,midiPort:33,endOfTrack:47,setTempo:81,smpteOffset:84,timeSignature:88,keySignature:89,sequenceSpecific:127};function Ie(e){let A=e&240,t=e&15,I=-1,s=e;return A>=128&&A<=224&&(I=t,s=A),{status:s,channel:I}}var y={bankSelect:0,modulationWheel:1,breathController:2,footController:4,portamentoTime:5,dataEntryMsb:6,mainVolume:7,balance:8,pan:10,expressionController:11,effectControl1:12,effectControl2:13,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,lsbForControl0BankSelect:32,lsbForControl1ModulationWheel:33,lsbForControl2BreathController:34,lsbForControl4FootController:36,lsbForControl5PortamentoTime:37,lsbForControl6DataEntry:38,lsbForControl7MainVolume:39,lsbForControl8Balance:40,lsbForControl10Pan:42,lsbForControl11ExpressionController:43,lsbForControl12EffectControl1:44,lsbForControl13EffectControl2:45,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,timbreHarmonicContent:71,releaseTime:72,attackTime:73,brightness:74,soundController6:75,soundController7:76,soundController8:77,soundController9:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,effects1Depth:91,effects2Depth:92,effects3Depth:93,effects4Depth:94,effects5Depth:95,dataIncrement:96,dataDecrement:97,NRPNLsb:98,NRPNMsb:99,RPNLsb:100,RPNMsb:101,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127},Yt={8:2,9:2,10:2,11:2,12:1,13:1,14:2};var O={noteOff:0,noteOn:1,ccChange:2,programChange:3,channelPressure:4,polyPressure:5,killNote:6,ccReset:7,setChannelVibrato:8,reloadSoundFont:9,stopAll:10,killNotes:11,muteChannel:12,addNewChannel:13,customcCcChange:14,debugMessage:15,systemExclusive:16,setMasterParameter:17,setDrums:18,pitchWheel:19,transpose:20,highPerformanceMode:21,lockController:22,sequencerSpecific:23,requestSynthesizerSnapshot:24,setLogLevel:25},se={mainVolume:0,masterPan:1,voicesCap:2},KA=-1,lA={channelProperties:0,eventCall:1,reportedCurrentTime:2,sequencerSpecific:3,synthesizerSnapshot:4,ready:5,soundfontError:6};var Jt=!0,Tt=!0,ue=!0,qt=!0;function Kt(e,A,t,I){Jt=e,Tt=A,ue=t,qt=I}function m(...e){Jt&&console.info(...e)}function J(...e){Tt&&console.warn(...e)}function Vt(...e){qt&&console.table(...e)}function Pt(...e){ue&&console.group(...e)}function HA(...e){ue&&console.groupCollapsed(...e)}function sA(){ue&&console.groupEnd()}var Ot="spessasynth-worklet-system",Zt=450,kA=9,fe=16,me="gs";function T(e,A){let t=0;for(let I=0;I<A;I++)t|=e[e.currentIndex++]<<I*8;return t>>>0}function oe(e,A,t){for(let I=0;I<t;I++)e[e.currentIndex++]=A>>I*8&255}function G(e,A){e[e.currentIndex++]=A&255,e[e.currentIndex++]=A>>8}function iA(e,A){oe(e,A,4)}function pe(e,A){let t=A<<8|e;return t>32767?t-65536:t}function vt(e){return e>127?e-256:e}function z(e,A,t=void 0,I=!0){if(t){let s=e.slice(e.currentIndex,e.currentIndex+A);return e.currentIndex+=A,new TextDecoder(t).decode(s.buffer)}else{let s=!1,n="";for(let i=0;i<A;i++){let a=e[e.currentIndex++];if(!s){if(a<32||a>127){if(I){s=!0;continue}else if(a===0){s=!0;continue}}n+=String.fromCharCode(a)}}return n}}function uA(e,A,t=0){t>0&&A.length>t&&(A=A.slice(0,t));for(let I=0;I<A.length;I++)e[e.currentIndex++]=A.charCodeAt(I);if(t>A.length)for(let I=0;I<t-A.length;I++)e[e.currentIndex++]=0;return e}var K=class{constructor(A,t,I){this.header=A,this.size=t,this.chunkData=I}};function oA(e,A=!0,t=!1){let I=z(e,4),s=T(e,4),n;return A&&(n=new U(s),n.set(e.slice(e.currentIndex,e.currentIndex+s))),(A||t)&&(e.currentIndex+=s),new K(I,s,n)}function Z(e,A=void 0){let t=8+e.size;e.size%2!==0&&t++,A&&(t+=A.length);let I=new U(t);return A&&(I.set(A,I.currentIndex),I.currentIndex+=A.length),uA(I,e.header),iA(I,t-8-(A?.length||0)),I.set(e.chunkData,I.currentIndex),I}var B={startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60},F=[];F[B.startAddrsOffset]={min:0,max:32768,def:0};F[B.endAddrOffset]={min:-32768,max:32768,def:0};F[B.startloopAddrsOffset]={min:-32768,max:32768,def:0};F[B.endloopAddrsOffset]={min:-32768,max:32768,def:0};F[B.startAddrsCoarseOffset]={min:0,max:32768,def:0};F[B.modLfoToPitch]={min:-12e3,max:12e3,def:0};F[B.vibLfoToPitch]={min:-12e3,max:12e3,def:0};F[B.modEnvToPitch]={min:-12e3,max:12e3,def:0};F[B.initialFilterFc]={min:1500,max:13500,def:13500};F[B.initialFilterQ]={min:0,max:960,def:0};F[B.modLfoToFilterFc]={min:-12e3,max:12e3,def:0};F[B.modEnvToFilterFc]={min:-12e3,max:12e3,def:0};F[B.endAddrsCoarseOffset]={min:-32768,max:32768,def:0};F[B.modLfoToVolume]={min:-960,max:960,def:0};F[B.chorusEffectsSend]={min:0,max:1e3,def:0};F[B.reverbEffectsSend]={min:0,max:1e3,def:0};F[B.pan]={min:-500,max:500,def:0};F[B.delayModLFO]={min:-12e3,max:5e3,def:-12e3};F[B.freqModLFO]={min:-16e3,max:4500,def:0};F[B.delayVibLFO]={min:-12e3,max:5e3,def:-12e3};F[B.freqVibLFO]={min:-16e3,max:4500,def:0};F[B.delayModEnv]={min:-12e3,max:5e3,def:-12e3};F[B.attackModEnv]={min:-12e3,max:8e3,def:-12e3};F[B.holdModEnv]={min:-12e3,max:5e3,def:-12e3};F[B.decayModEnv]={min:-12e3,max:8e3,def:-12e3};F[B.sustainModEnv]={min:0,max:1e3,def:0};F[B.releaseModEnv]={min:-12e3,max:8e3,def:-12e3};F[B.keyNumToModEnvHold]={min:-1200,max:1200,def:0};F[B.keyNumToModEnvDecay]={min:-1200,max:1200,def:0};F[B.delayVolEnv]={min:-12e3,max:5e3,def:-12e3};F[B.attackVolEnv]={min:-12e3,max:8e3,def:-12e3};F[B.holdVolEnv]={min:-12e3,max:5e3,def:-12e3};F[B.decayVolEnv]={min:-12e3,max:8e3,def:-12e3};F[B.sustainVolEnv]={min:0,max:1440,def:0};F[B.releaseVolEnv]={min:-7200,max:8e3,def:-12e3};F[B.keyNumToVolEnvHold]={min:-1200,max:1200,def:0};F[B.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0};F[B.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};F[B.keyNum]={min:-1,max:127,def:-1};F[B.velocity]={min:-1,max:127,def:-1};F[B.initialAttenuation]={min:-250,max:1440,def:0};F[B.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};F[B.coarseTune]={min:-120,max:120,def:0};F[B.fineTune]={min:-99,max:99,def:0};F[B.scaleTuning]={min:0,max:1200,def:100};F[B.exclusiveClass]={min:0,max:99999,def:0};F[B.overridingRootKey]={min:-1,max:127,def:-1};function Xt(e,A,t){let I=F[e]||{min:0,max:32768,def:0},s=A.find(h=>h.generatorType===e),n=0;s&&(n=s.generatorValue);let i=t.find(h=>h.generatorType===e),a=I.def;return i&&(a=i.generatorValue),Math.max(I.min,Math.min(I.max,a+n))}var Ze=class{constructor(A){let t=A.currentIndex;this.generatorType=A[t+1]<<8|A[t],this.generatorValue=pe(A[t+2],A[t+3]),A.currentIndex+=4}};function ve(e){let A=[];for(;e.chunkData.length>e.chunkData.currentIndex;)A.push(new Ze(e.chunkData));return A.length>1&&A.pop(),A}var H={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},cA={linear:0,concave:1,convex:2,switch:3},Ws=[];for(let e=0;e<4;e++)Ws.push([[],[]]);var EA=class e{constructor(A){A.srcEnum?(this.modulatorSource=A.srcEnum,this.modulatorDestination=A.dest,this.modulationSecondarySrc=A.secSrcEnum,this.transformAmount=A.amt,this.transformType=A.transform):(this.modulatorSource=T(A,2),this.modulatorDestination=T(A,2),this.transformAmount=pe(A[A.currentIndex++],A[A.currentIndex++]),this.modulationSecondarySrc=T(A,2),this.transformType=T(A,2)),this.modulatorDestination>58&&(this.modulatorDestination=-1),this.sourcePolarity=this.modulatorSource>>9&1,this.sourceDirection=this.modulatorSource>>8&1,this.sourceUsesCC=this.modulatorSource>>7&1,this.sourceIndex=this.modulatorSource&127,this.sourceCurveType=this.modulatorSource>>10&3,this.secSrcPolarity=this.modulationSecondarySrc>>9&1,this.secSrcDirection=this.modulationSecondarySrc>>8&1,this.secSrcUsesCC=this.modulationSecondarySrc>>7&1,this.secSrcIndex=this.modulationSecondarySrc&127,this.secSrcCurveType=this.modulationSecondarySrc>>10&3}sumTransform(A){return new e({srcEnum:this.modulatorSource,secSrcEnum:this.modulationSecondarySrc,dest:this.modulatorDestination,transform:this.transformType,amt:this.transformAmount+A.transformAmount})}debugString(){function A(s,n){return Object.keys(s).find(i=>s[i]===n)}let t=A(cA,this.sourceCurveType);t+=this.sourcePolarity===0?" unipolar ":" bipolar ",t+=this.sourceDirection===0?"forwards ":"backwards ",this.sourceUsesCC?t+=A(y,this.sourceIndex):t+=A(H,this.sourceIndex);let I=A(cA,this.secSrcCurveType);return I+=this.secSrcPolarity===0?" unipolar ":" bipolar ",I+=this.secSrcCurveType===0?"forwards ":"backwards ",this.secSrcUsesCC?I+=A(y,this.secSrcIndex):I+=A(H,this.secSrcIndex),`Modulator:
|
|
1
|
+
var bt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var U=class extends Uint8Array{constructor(A){super(A),this.currentIndex=0}currentIndex};function ce(e){let A=e.reduce((s,n)=>s+n.length,0),t=new U(A),I=0;for(let s of e)t.set(s,I),I+=s.length;return t}function Oe(e){e=Math.floor(e);let A=Math.floor(e/60),t=Math.round(e-A*60);return{minutes:A,seconds:t,time:`${A.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`}}function Lt(e){return e.trim().replaceAll(".mid","").replaceAll(".rmi","").replaceAll("_"," ")}function CA(e){let A="";for(let t=0;t<e.length;t++){let I=e[t].toString(16).padStart(2,"0").toUpperCase();A+=I,A+=" "}return A}var C={warn:"color: orange;",unrecognized:"color: red;",info:"color: aqua;",recognized:"color: lime",value:"color: yellow; background-color: black;"};var de=class{constructor(A,t,I){this.ticks=A,this.messageStatusByte=t,this.messageData=I}};function Ht(e){let A=e&240,t=e&15,I=t;switch(A){case 128:case 144:case 160:case 176:case 192:case 208:case 224:break;case 240:switch(t){case 0:I=-3;break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:I=-1;break;case 15:I=-2;break}break;default:I=-1}return I}var S={noteOff:128,noteOn:144,polyPressure:160,controllerChange:176,programChange:192,channelPressure:208,pitchBend:224,systemExclusive:240,timecode:241,songPosition:242,songSelect:243,tuneRequest:246,clock:248,start:250,continue:251,stop:252,activeSensing:254,reset:255,sequenceNumber:0,text:1,copyright:2,trackName:3,instrumentName:4,lyric:5,marker:6,cuePoint:7,midiChannelPrefix:32,midiPort:33,endOfTrack:47,setTempo:81,smpteOffset:84,timeSignature:88,keySignature:89,sequenceSpecific:127};function Ie(e){let A=e&240,t=e&15,I=-1,s=e;return A>=128&&A<=224&&(I=t,s=A),{status:s,channel:I}}var p={bankSelect:0,modulationWheel:1,breathController:2,footController:4,portamentoTime:5,dataEntryMsb:6,mainVolume:7,balance:8,pan:10,expressionController:11,effectControl1:12,effectControl2:13,generalPurposeController1:16,generalPurposeController2:17,generalPurposeController3:18,generalPurposeController4:19,lsbForControl0BankSelect:32,lsbForControl1ModulationWheel:33,lsbForControl2BreathController:34,lsbForControl4FootController:36,lsbForControl5PortamentoTime:37,lsbForControl6DataEntry:38,lsbForControl7MainVolume:39,lsbForControl8Balance:40,lsbForControl10Pan:42,lsbForControl11ExpressionController:43,lsbForControl12EffectControl1:44,lsbForControl13EffectControl2:45,sustainPedal:64,portamentoOnOff:65,sostenutoPedal:66,softPedal:67,legatoFootswitch:68,hold2Pedal:69,soundVariation:70,timbreHarmonicContent:71,releaseTime:72,attackTime:73,brightness:74,soundController6:75,soundController7:76,soundController8:77,soundController9:78,soundController10:79,generalPurposeController5:80,generalPurposeController6:81,generalPurposeController7:82,generalPurposeController8:83,portamentoControl:84,effects1Depth:91,effects2Depth:92,effects3Depth:93,effects4Depth:94,effects5Depth:95,dataIncrement:96,dataDecrement:97,NRPNLsb:98,NRPNMsb:99,RPNLsb:100,RPNMsb:101,allSoundOff:120,resetAllControllers:121,localControlOnOff:122,allNotesOff:123,omniModeOff:124,omniModeOn:125,monoModeOn:126,polyModeOn:127},Yt={8:2,9:2,10:2,11:2,12:1,13:1,14:2};var O={noteOff:0,noteOn:1,ccChange:2,programChange:3,channelPressure:4,polyPressure:5,killNote:6,ccReset:7,setChannelVibrato:8,reloadSoundFont:9,stopAll:10,killNotes:11,muteChannel:12,addNewChannel:13,customcCcChange:14,debugMessage:15,systemExclusive:16,setMasterParameter:17,setDrums:18,pitchWheel:19,transpose:20,highPerformanceMode:21,lockController:22,sequencerSpecific:23,requestSynthesizerSnapshot:24,setLogLevel:25},se={mainVolume:0,masterPan:1,voicesCap:2},KA=-1,lA={channelProperties:0,eventCall:1,reportedCurrentTime:2,sequencerSpecific:3,synthesizerSnapshot:4,ready:5,soundfontError:6};var Jt=!0,Tt=!0,ue=!0,qt=!0;function Kt(e,A,t,I){Jt=e,Tt=A,ue=t,qt=I}function y(...e){Jt&&console.info(...e)}function J(...e){Tt&&console.warn(...e)}function Vt(...e){qt&&console.table(...e)}function Pt(...e){ue&&console.group(...e)}function HA(...e){ue&&console.groupCollapsed(...e)}function sA(){ue&&console.groupEnd()}var Ot="spessasynth-worklet-system",Zt=450,kA=9,fe=16,me="gs";function T(e,A){let t=0;for(let I=0;I<A;I++)t|=e[e.currentIndex++]<<I*8;return t>>>0}function oe(e,A,t){for(let I=0;I<t;I++)e[e.currentIndex++]=A>>I*8&255}function G(e,A){e[e.currentIndex++]=A&255,e[e.currentIndex++]=A>>8}function iA(e,A){oe(e,A,4)}function pe(e,A){let t=A<<8|e;return t>32767?t-65536:t}function vt(e){return e>127?e-256:e}function z(e,A,t=void 0,I=!0){if(t){let s=e.slice(e.currentIndex,e.currentIndex+A);return e.currentIndex+=A,new TextDecoder(t).decode(s.buffer)}else{let s=!1,n="";for(let a=0;a<A;a++){let i=e[e.currentIndex++];if(!s){if(i<32||i>127){if(I){s=!0;continue}else if(i===0){s=!0;continue}}n+=String.fromCharCode(i)}}return n}}function uA(e,A,t=0){t>0&&A.length>t&&(A=A.slice(0,t));for(let I=0;I<A.length;I++)e[e.currentIndex++]=A.charCodeAt(I);if(t>A.length)for(let I=0;I<t-A.length;I++)e[e.currentIndex++]=0;return e}var K=class{constructor(A,t,I){this.header=A,this.size=t,this.chunkData=I}};function oA(e,A=!0,t=!1){let I=z(e,4),s=T(e,4),n;return A&&(n=new U(s),n.set(e.slice(e.currentIndex,e.currentIndex+s))),(A||t)&&(e.currentIndex+=s),new K(I,s,n)}function Z(e,A=void 0){let t=8+e.size;e.size%2!==0&&t++,A&&(t+=A.length);let I=new U(t);return A&&(I.set(A,I.currentIndex),I.currentIndex+=A.length),uA(I,e.header),iA(I,t-8-(A?.length||0)),I.set(e.chunkData,I.currentIndex),I}var B={startAddrsOffset:0,endAddrOffset:1,startloopAddrsOffset:2,endloopAddrsOffset:3,startAddrsCoarseOffset:4,modLfoToPitch:5,vibLfoToPitch:6,modEnvToPitch:7,initialFilterFc:8,initialFilterQ:9,modLfoToFilterFc:10,modEnvToFilterFc:11,endAddrsCoarseOffset:12,modLfoToVolume:13,unused1:14,chorusEffectsSend:15,reverbEffectsSend:16,pan:17,unused2:18,unused3:19,unused4:20,delayModLFO:21,freqModLFO:22,delayVibLFO:23,freqVibLFO:24,delayModEnv:25,attackModEnv:26,holdModEnv:27,decayModEnv:28,sustainModEnv:29,releaseModEnv:30,keyNumToModEnvHold:31,keyNumToModEnvDecay:32,delayVolEnv:33,attackVolEnv:34,holdVolEnv:35,decayVolEnv:36,sustainVolEnv:37,releaseVolEnv:38,keyNumToVolEnvHold:39,keyNumToVolEnvDecay:40,instrument:41,reserved1:42,keyRange:43,velRange:44,startloopAddrsCoarseOffset:45,keyNum:46,velocity:47,initialAttenuation:48,reserved2:49,endloopAddrsCoarseOffset:50,coarseTune:51,fineTune:52,sampleID:53,sampleModes:54,reserved3:55,scaleTuning:56,exclusiveClass:57,overridingRootKey:58,unused5:59,endOper:60},F=[];F[B.startAddrsOffset]={min:0,max:32768,def:0};F[B.endAddrOffset]={min:-32768,max:32768,def:0};F[B.startloopAddrsOffset]={min:-32768,max:32768,def:0};F[B.endloopAddrsOffset]={min:-32768,max:32768,def:0};F[B.startAddrsCoarseOffset]={min:0,max:32768,def:0};F[B.modLfoToPitch]={min:-12e3,max:12e3,def:0};F[B.vibLfoToPitch]={min:-12e3,max:12e3,def:0};F[B.modEnvToPitch]={min:-12e3,max:12e3,def:0};F[B.initialFilterFc]={min:1500,max:13500,def:13500};F[B.initialFilterQ]={min:0,max:960,def:0};F[B.modLfoToFilterFc]={min:-12e3,max:12e3,def:0};F[B.modEnvToFilterFc]={min:-12e3,max:12e3,def:0};F[B.endAddrsCoarseOffset]={min:-32768,max:32768,def:0};F[B.modLfoToVolume]={min:-960,max:960,def:0};F[B.chorusEffectsSend]={min:0,max:1e3,def:0};F[B.reverbEffectsSend]={min:0,max:1e3,def:0};F[B.pan]={min:-500,max:500,def:0};F[B.delayModLFO]={min:-12e3,max:5e3,def:-12e3};F[B.freqModLFO]={min:-16e3,max:4500,def:0};F[B.delayVibLFO]={min:-12e3,max:5e3,def:-12e3};F[B.freqVibLFO]={min:-16e3,max:4500,def:0};F[B.delayModEnv]={min:-12e3,max:5e3,def:-12e3};F[B.attackModEnv]={min:-12e3,max:8e3,def:-12e3};F[B.holdModEnv]={min:-12e3,max:5e3,def:-12e3};F[B.decayModEnv]={min:-12e3,max:8e3,def:-12e3};F[B.sustainModEnv]={min:0,max:1e3,def:0};F[B.releaseModEnv]={min:-12e3,max:8e3,def:-12e3};F[B.keyNumToModEnvHold]={min:-1200,max:1200,def:0};F[B.keyNumToModEnvDecay]={min:-1200,max:1200,def:0};F[B.delayVolEnv]={min:-12e3,max:5e3,def:-12e3};F[B.attackVolEnv]={min:-12e3,max:8e3,def:-12e3};F[B.holdVolEnv]={min:-12e3,max:5e3,def:-12e3};F[B.decayVolEnv]={min:-12e3,max:8e3,def:-12e3};F[B.sustainVolEnv]={min:0,max:1440,def:0};F[B.releaseVolEnv]={min:-7200,max:8e3,def:-12e3};F[B.keyNumToVolEnvHold]={min:-1200,max:1200,def:0};F[B.keyNumToVolEnvDecay]={min:-1200,max:1200,def:0};F[B.startloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};F[B.keyNum]={min:-1,max:127,def:-1};F[B.velocity]={min:-1,max:127,def:-1};F[B.initialAttenuation]={min:-250,max:1440,def:0};F[B.endloopAddrsCoarseOffset]={min:-32768,max:32768,def:0};F[B.coarseTune]={min:-120,max:120,def:0};F[B.fineTune]={min:-99,max:99,def:0};F[B.scaleTuning]={min:0,max:1200,def:100};F[B.exclusiveClass]={min:0,max:99999,def:0};F[B.overridingRootKey]={min:-1,max:127,def:-1};function Xt(e,A,t){let I=F[e]||{min:0,max:32768,def:0},s=A.find(Q=>Q.generatorType===e),n=0;s&&(n=s.generatorValue);let a=t.find(Q=>Q.generatorType===e),i=I.def;return a&&(i=a.generatorValue),Math.max(I.min,Math.min(I.max,i+n))}var Ze=class{constructor(A){let t=A.currentIndex;this.generatorType=A[t+1]<<8|A[t],this.generatorValue=pe(A[t+2],A[t+3]),A.currentIndex+=4}};function ve(e){let A=[];for(;e.chunkData.length>e.chunkData.currentIndex;)A.push(new Ze(e.chunkData));return A.length>1&&A.pop(),A}var H={noController:0,noteOnVelocity:2,noteOnKeyNum:3,polyPressure:10,channelPressure:13,pitchWheel:14,pitchWheelRange:16,link:127},cA={linear:0,concave:1,convex:2,switch:3},Ws=[];for(let e=0;e<4;e++)Ws.push([[],[]]);var EA=class e{constructor(A){A.srcEnum?(this.modulatorSource=A.srcEnum,this.modulatorDestination=A.dest,this.modulationSecondarySrc=A.secSrcEnum,this.transformAmount=A.amt,this.transformType=A.transform):(this.modulatorSource=T(A,2),this.modulatorDestination=T(A,2),this.transformAmount=pe(A[A.currentIndex++],A[A.currentIndex++]),this.modulationSecondarySrc=T(A,2),this.transformType=T(A,2)),this.modulatorDestination>58&&(this.modulatorDestination=-1),this.sourcePolarity=this.modulatorSource>>9&1,this.sourceDirection=this.modulatorSource>>8&1,this.sourceUsesCC=this.modulatorSource>>7&1,this.sourceIndex=this.modulatorSource&127,this.sourceCurveType=this.modulatorSource>>10&3,this.secSrcPolarity=this.modulationSecondarySrc>>9&1,this.secSrcDirection=this.modulationSecondarySrc>>8&1,this.secSrcUsesCC=this.modulationSecondarySrc>>7&1,this.secSrcIndex=this.modulationSecondarySrc&127,this.secSrcCurveType=this.modulationSecondarySrc>>10&3}sumTransform(A){return new e({srcEnum:this.modulatorSource,secSrcEnum:this.modulationSecondarySrc,dest:this.modulatorDestination,transform:this.transformType,amt:this.transformAmount+A.transformAmount})}debugString(){function A(s,n){return Object.keys(s).find(a=>s[a]===n)}let t=A(cA,this.sourceCurveType);t+=this.sourcePolarity===0?" unipolar ":" bipolar ",t+=this.sourceDirection===0?"forwards ":"backwards ",this.sourceUsesCC?t+=A(p,this.sourceIndex):t+=A(H,this.sourceIndex);let I=A(cA,this.secSrcCurveType);return I+=this.secSrcPolarity===0?" unipolar ":" bipolar ",I+=this.secSrcCurveType===0?"forwards ":"backwards ",this.secSrcUsesCC?I+=A(p,this.secSrcIndex):I+=A(H,this.secSrcIndex),`Modulator:
|
|
2
2
|
Source: ${t}
|
|
3
3
|
Secondary source: ${I}
|
|
4
4
|
Destination: ${A(B,this.modulatorDestination)}
|
|
@@ -6,8 +6,8 @@ var bt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(
|
|
|
6
6
|
Transform type: ${this.transformType}
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
`}};function VA(e,A,t,I,s){return e<<10|A<<9|t<<8|I<<7|s}var Xe=960,We=cA.concave,Wt=[new EA({srcEnum:VA(We,0,1,0,H.noteOnVelocity),dest:B.initialAttenuation,amt:Xe,secSrcEnum:0,transform:0}),new EA({srcEnum:129,dest:B.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(We,0,1,1,y.mainVolume),dest:B.initialAttenuation,amt:Xe,secSrcEnum:0,transform:0}),new EA({srcEnum:13,dest:B.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new EA({srcEnum:526,dest:B.fineTune,amt:12700,secSrcEnum:16,transform:0}),new EA({srcEnum:650,dest:B.pan,amt:1e3,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(We,0,1,1,y.expressionController),dest:B.initialAttenuation,amt:Xe,secSrcEnum:0,transform:0}),new EA({srcEnum:219,dest:B.reverbEffectsSend,amt:200,secSrcEnum:0,transform:0}),new EA({srcEnum:221,dest:B.chorusEffectsSend,amt:200,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,0,0,0,H.polyPressure),dest:B.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,0,0,1,y.effects2Depth),dest:B.modLfoToVolume,amt:24,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,1,0,1,y.releaseTime),dest:B.releaseVolEnv,amt:1200,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,1,0,1,y.brightness),dest:B.initialFilterFc,amt:4e3,secSrcEnum:0,transform:0})];function _e(e){let A=[];for(;e.chunkData.length>e.chunkData.currentIndex;)A.push(new EA(e.chunkData));return A}function _t(e=!1){let A={midiControllers:new Int16Array(ze),lockedControllers:Array(ze).fill(!1),customControllers:new Float32Array(zt),NRPCoarse:0,NRPFine:0,RPValue:0,dataEntryState:BA.Idle,voices:[],sustainedVoices:[],cachedVoices:[],preset:this.defaultPreset,channelTransposeKeyShift:0,channelVibrato:{delay:0,depth:0,rate:0},lockVibrato:!1,holdPedal:!1,isMuted:!1,drumChannel:!1,lockPreset:!1};for(let t=0;t<128;t++)A.cachedVoices.push([]);this.workletProcessorChannels.push(A),this.resetControllers(this.workletProcessorChannels.length-1),this.sendChannelProperties(),e&&this.callEvent("newchannel",void 0)}var eA=128,ze=147,NA=new Int16Array(ze).fill(0);NA[y.mainVolume]=12800;NA[y.expressionController]=16256;NA[y.pan]=8192;NA[y.releaseTime]=8192;NA[y.brightness]=8192;NA[y.effects1Depth]=5120;NA[eA+H.pitchWheel]=8192;NA[eA+H.pitchWheelRange]=256;var BA={Idle:0,RPCoarse:1,RPFine:2,NRPCoarse:3,NRPFine:4,DataCoarse:5,DataFine:6},AA={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4},zt=Object.keys(AA).length,je=new Float32Array(zt);je[AA.modulationMultiplier]=1;var YA=YA!==void 0?YA:{},jt=!1,$t;YA.isInitialized=new Promise(e=>$t=e);var _s=function(e){var A,t,I,s,n,i,a,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",d="",f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=h.indexOf(e.charAt(f++)),n=h.indexOf(e.charAt(f++)),i=h.indexOf(e.charAt(f++)),a=h.indexOf(e.charAt(f++)),A=s<<2|n>>4,t=(15&n)<<4|i>>2,I=(3&i)<<6|a,d+=String.fromCharCode(A),i!==64&&(d+=String.fromCharCode(t)),a!==64&&(d+=String.fromCharCode(I));while(f<e.length);return d};(function(){var e,A,t,I,s,n,i,a,h,d,f,c,Q,u,p,Y,M,L,q,x,V,X,g=g!==void 0?g:{};g.wasmBinary=Uint8Array.from(_s("AGFzbQEAAAABpQEYYAJ/fwF/YAF/AGAAAX9gBH9/f38AYAAAYAN/f38Bf2ABfwF/YAJ/fwBgBn9/f39/fwF/YAR/f39/AX9gBX9/f39/AX9gB39/f39/f38Bf2AGf39/f39/AGAIf39/f39/f38Bf2AFf39/f38AYAd/f39/f39/AGADf39/AGABfwF9YAF9AX1gAnx/AXxgAnx/AX9gA3x8fwF8YAJ8fAF8YAF8AXwCngIPA2VudgZtZW1vcnkCAIACA2VudgV0YWJsZQFwAQQEA2Vudgl0YWJsZUJhc2UDfwADZW52DkRZTkFNSUNUT1BfUFRSA38AA2VudghTVEFDS1RPUAN/AANlbnYJU1RBQ0tfTUFYA38ABmdsb2JhbAhJbmZpbml0eQN8AANlbnYFYWJvcnQAAQNlbnYNZW5sYXJnZU1lbW9yeQACA2Vudg5nZXRUb3RhbE1lbW9yeQACA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQACA2Vudg5fX19hc3NlcnRfZmFpbAADA2VudgtfX19zZXRFcnJObwABA2VudgZfYWJvcnQABANlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwAFA3d2BgYCAQcHAQIBAQcBCAcFAAkGCQoHBgYGBgEFBgIBBgYKAAgLAAYGBgYGBgYBAAoMDAMGBQANCAoJAAwODA8OAQAGBgcEABAJEAERAAADBQwAAAMHBxIGAQAABwIFEwMOBw8HBgYQFAoVExYXFxcXFgQFBQYFAAYkB38BIwELfwEjAgt/ASMDC38BQQALfwFBAAt8ASMEC38BQQALB9MCFRBfX2dyb3dXYXNtTWVtb3J5AAgRX19fZXJybm9fbG9jYXRpb24AYwVfZnJlZQBfB19tYWxsb2MAXgdfbWVtY3B5AHkHX21lbXNldAB6BV9zYnJrAHsXX3N0Yl92b3JiaXNfanNfY2hhbm5lbHMAJhRfc3RiX3ZvcmJpc19qc19jbG9zZQAlFV9zdGJfdm9yYmlzX2pzX2RlY29kZQAoE19zdGJfdm9yYmlzX2pzX29wZW4AJBpfc3RiX3ZvcmJpc19qc19zYW1wbGVfcmF0ZQAnC2R5bkNhbGxfaWlpAHwTZXN0YWJsaXNoU3RhY2tTcGFjZQAMC2dldFRlbXBSZXQwAA8LcnVuUG9zdFNldHMAeAtzZXRUZW1wUmV0MAAOCHNldFRocmV3AA0Kc3RhY2tBbGxvYwAJDHN0YWNrUmVzdG9yZQALCXN0YWNrU2F2ZQAKCQoBACMACwR9VFl9Csb2A3YGACAAQAALGwEBfyMGIQEjBiAAaiQGIwZBD2pBcHEkBiABCwQAIwYLBgAgACQGCwoAIAAkBiABJAcLEAAjCEUEQCAAJAggASQJCwsGACAAJAsLBAAjCwsRACAABEAgABARIAAgABASCwvvBwEKfyAAQYADaiEHIAcoAgAhBQJAIAUEQCAAQfwBaiEEIAQoAgAhASABQQBKBEAgAEHwAGohCANAIAUgAkEYbGpBEGohCSAJKAIAIQEgAQRAIAgoAgAhAyAFIAJBGGxqQQ1qIQogCi0AACEGIAZB/wFxIQYgAyAGQbAQbGpBBGohAyADKAIAIQMgA0EASgRAQQAhAwNAIAEgA0ECdGohASABKAIAIQEgACABEBIgA0EBaiEDIAgoAgAhASAKLQAAIQYgBkH/AXEhBiABIAZBsBBsakEEaiEBIAEoAgAhBiAJKAIAIQEgAyAGSA0ACwsgACABEBILIAUgAkEYbGpBFGohASABKAIAIQEgACABEBIgAkEBaiECIAQoAgAhASACIAFODQMgBygCACEFDAAACwALCwsgAEHwAGohAyADKAIAIQEgAQRAIABB7ABqIQUgBSgCACECIAJBAEoEQEEAIQIDQAJAIAEgAkGwEGxqQQhqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQRxqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQSBqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQaQQaiEEIAQoAgAhBCAAIAQQEiABIAJBsBBsakGoEGohASABKAIAIQEgAUUhBCABQXxqIQFBACABIAQbIQEgACABEBIgAkEBaiECIAUoAgAhASACIAFODQAgAygCACEBDAELCyADKAIAIQELIAAgARASCyAAQfgBaiEBIAEoAgAhASAAIAEQEiAHKAIAIQEgACABEBIgAEGIA2ohAyADKAIAIQEgAQRAIABBhANqIQUgBSgCACECIAJBAEoEQEEAIQIDQCABIAJBKGxqQQRqIQEgASgCACEBIAAgARASIAJBAWohAiAFKAIAIQcgAygCACEBIAIgB0gNAAsLIAAgARASCyAAQQRqIQIgAigCACEBIAFBAEoEQEEAIQEDQCAAQZQGaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQZQHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQdgHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiABQQFqIQEgAigCACEDIAEgA0ghAyABQRBJIQUgBSADcQ0ACwtBACEBA0AgAEGgCGogAUECdGohAiACKAIAIQIgACACEBIgAEGoCGogAUECdGohAiACKAIAIQIgACACEBIgAEGwCGogAUECdGohAiACKAIAIQIgACACEBIgAEG4CGogAUECdGohAiACKAIAIQIgACACEBIgAEHACGogAUECdGohAiACKAIAIQIgACACEBIgAUEBaiEBIAFBAkcNAAsLGwAgAEHEAGohACAAKAIAIQAgAEUEQCABEF8LC3wBAX8gAEHUB2ohASABQQA2AgAgAEGAC2ohASABQQA2AgAgAEH4CmohASABQQA2AgAgAEGcCGohASABQQA2AgAgAEHVCmohASABQQA6AAAgAEH8CmohASABQQA2AgAgAEHUC2ohASABQQA2AgAgAEHYC2ohACAAQQA2AgAL8AQBB38jBiELIwZBEGokBiALQQhqIQcgC0EEaiEKIAshCCAAQSRqIQYgBiwAACEGAn8gBgR/IABBgAtqIQYgBigCACEGIAZBf0oEQCAFQQA2AgAgACABIAIQFgwCCyAAQRRqIQYgBiABNgIAIAEgAmohAiAAQRxqIQkgCSACNgIAIABB2ABqIQIgAkEANgIAIABBABAXIQkgCUUEQCAFQQA2AgBBAAwCCyAAIAcgCCAKEBghCSAJBEAgBygCACECIAgoAgAhCSAKKAIAIQggACACIAkgCBAaIQogByAKNgIAIABBBGohAiACKAIAIQggCEEASgRAQQAhAgNAIABBlAZqIAJBAnRqIQcgBygCACEHIAcgCUECdGohByAAQdQGaiACQQJ0aiEMIAwgBzYCACACQQFqIQIgAiAISA0ACwsgAwRAIAMgCDYCAAsgBSAKNgIAIABB1AZqIQAgBCAANgIAIAYoAgAhACAAIAFrDAILAkACQAJAAkACQCACKAIAIgNBIGsOBAECAgACCyACQQA2AgAgAEHUAGohAiAAEBkhAwJAIANBf0cEQANAIAIoAgAhAyADDQIgABAZIQMgA0F/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ACECIABBmAhqIQYgBigCACEHIAUgA2shCSAJIAdqIQkgAiAJSSEJIAIgB0khDSACIAdrIQJBACACIA0bIQIgAiADaiECIAIgBUohByAFIAIgBxshAiAJBEAgASACNgIAIAYoAgAhACAAIAJqIQAgBiAANgIAQQEMBgsLCyAAQfQKaiECIAIoAgAhAiADIB9rIQYgBiACaiEGIABBmAhqIQIgAiAGNgIAIAhBATYCAAwBBSAAQZgIaiECIAYNAQsMAQsgBCADayEDIAIoAgAhBCADIARqIQMgAiADNgIACyATKAIAIQIgAgRAIABByABqIQIgAigCACECIABB0ABqIQAgACgCACEAIAIgAEcEQEHTE0HEE0HkGkHnFBAECwsgASAFNgIAQQELIQAgHCQGIAALqAIBBX8gAEHoCmohBSAFKAIAIQICQCACQQBIBEBBACEABSACIAFIBEAgAUEYSgRAIABBGBAsIQIgAUFoaiEBIAAgARAsIQAgAEEYdCEAIAAgAmohACAADwsgAkUEQCAAQeQKaiECIAJBADYCAAsgAEHkCmohAwJAAkACQANAIAAQLiECIAJBf0YNASAFKAIAIQQgAiAEdCECIAMoAgAhBiAGIAJqIQIgAyACNgIAIAUgBEEIaiICNgIAIAIgAUgNAAwCAAsACyAFQX82AgBBACEADAQLIARBeEgEQEEAIQAMBAsLCyAAQeQKaiEEIAQoAgAhA0EBIAF0IQAgAEF/aiEAIAMgAHEhACADIAF2IQMgBCADNgIAIAIgAWshASAFIAE2AgALCyAAC40CAAJAIABBAEgEf0EABSAAQYCAAUgEQCAAQRBIBEAgAEGACGohACAALAAAIQAMAwsgAEGABEgEQCAAQQV2IQAgAEGACGohACAALAAAIQAgAEEFaiEABSAAQQp2IQAgAEGACGohACAALAAAIQAgAEEKaiEACwwCCyAAQYCAgAhIBH8gAEGAgCBIBH8gAEEPdiEAIABBgAhqIQAgACwAACEAIABBD2oFIABBFHYhACAAQYAIaiEAIAAsAAAhACAAQRRqCwUgAEGAgICAAkgEfyAAQRl2IQAgAEGACGohACAALAAAIQAgAEEZagUgAEEediEAIABBgAhqIQAgACwAACEAIABBHmoLCwshAAsgAAuiAQEDfyAAQdQKaiECIAIsAAAhAQJAAkAgAQ0AIABB3ApqIQEgASgCACEBIAEEQEF/IQMFIAAQLyEBIAEEQCACLAAAIQEgAQ0CQaEUQcQTQfYLQbUUEAQFQX8hAwsLDAELIAFBf2pBGHRBGHUhASACIAE6AAAgAEHsCmohASABKAIAIQIgAkEBaiECIAEgAjYCACAAEDAhACAAQf8BcSEDCyADC6wCAQd/IABB3ApqIQIgAigCACEBAkAgAUUEQCAAQdgKaiEEIAQoAgAhASABQX9GBEAgAEHQCGohASABKAIAIQEgAUF/aiEBIABB4ApqIQMgAyABNgIAIAAQMSEBIAFFBEAgAkEBNgIADAMLIABB0wpqIQEgASwAACEBIAFBAXEhASABBH8gBCgCAAUgAEEgEBUMAwshAQsgAUEBaiEHIAQgBzYCACAAQdQIaiABaiEDIAMsAAAhBiAGQf8BcSEDIAZBf0cEQCACQQE2AgAgAEHgCmohAiACIAE2AgALIABB0AhqIQEgASgCACEBIAcgAU4EQCAEQX82AgALIABB1ApqIQAgACwAACEBIAEEQEHFFEHEE0HoC0HaFBAEBSAAIAY6AAAgAyEFCwsLIAULUQEDfyAAQRRqIQMgAygCACEBIABBHGohAiACKAIAIQIgASACSQR/IAFBAWohACADIAA2AgAgASwAAAUgAEHUAGohACAAQQE2AgBBAAshACAACyABAX8gABAyIQEgAQR/IAAQMwUgAEEeEBVBAAshACAAC2ABAX8gABAwIQEgAUH/AXFBzwBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQAgAEH/AXFB0wBGIQAFQQAhAAsFQQAhAAsFQQAhAAsgAAvZAwEGfyAAEDAhAQJ/IAFB/wFxBH8gAEEfEBVBAAUgABAwIQEgAEHTCmohAiACIAE6AAAgABAjIQUgABAjIQIgABAjGiAAECMhASAAQcwIaiEDIAMgATYCACAAECMaIAAQMCEBIAFB/wFxIQEgAEHQCGohAyADIAE2AgAgAEHUCGohBCAAIAQgARAiIQEgAUUEQCAAQQoQFUEADAILIABB8ApqIQQgBEF+NgIAIAIgBXEhAQJAIAFBf0cEQCADKAIAIQEgAUEASgRAA0ACQCABQX9qIQIgAEHUCGogAmohBiAGLAAAIQYgBkF/Rw0AIAFBAUwNBCACIQEMAQsLIAQgAjYCACAAQfQKaiEBIAEgBTYCAAsLCyAAQdUKaiEBIAEsAAAhASABBEAgAygCACEDIANBAEoEf0EAIQJBACEBA0AgAEHUCGogAWohBCAELQAAIQQgBEH/AXEhBCACIARqIQIgAUEBaiEBIAEgA0gNAAsgAkEbagVBGwshASAAQShqIQIgAigCACECIAEgA2ohASABIAJqIQEgAEEsaiEDIAMgAjYCACAAQTBqIQIgAiABNgIAIABBNGohASABIAU2AgALIABB2ApqIQAgAEEANgIAQQELCyEAIAALowEBB38gAEHoCmohAyADKAIAIQECQCABQRlIBEAgAEHkCmohBCABRQRAIARBADYCAAsgAEHUCmohBSAAQdwKaiEGA0AgBigCACEBIAEEQCAFLAAAIQEgAUUNAwsgABAuIQIgAkF/Rg0CIAMoAgAhASACIAF0IQIgBCgCACEHIAcgAmohAiAEIAI2AgAgAUEIaiECIAMgAjYCACABQRFIDQALCwsLrQUBCX8gABA0IAFBIGohAiACKAIAIQUCQAJAIAVFIgNFDQAgAUGkEGohAiACKAIAIQIgAg0AQX8hAQwBCyABQQRqIQIgAigCACECAkACQCACQQhKBEAgAUGkEGohAyADKAIAIQMgAw0BBSADDQELDAELIABB5ApqIQggCCgCACEJIAkQOiEHIAFBrBBqIQIgAigCACECIAJBAUoEQCABQaQQaigCACEKQQAhAwNAIAJBAXYhBSAFIANqIQQgCiAEQQJ0aiEGIAYoAgAhBiAGIAdLIQYgAiAFayECIAMgBCAGGyEDIAUgAiAGGyECIAJBAUoNAAsFQQAhAwsgAUEXaiECIAIsAAAhAiACRQRAIAFBqBBqIQIgAigCACECIAIgA0ECdGohAiACKAIAIQMLIAFBCGohASABKAIAIQEgASADaiEBIAEtAAAhASABQf8BcSEBIABB6ApqIQIgAigCACEAIAAgAUgEf0EAIQBBfwUgACABayEAIAkgAXYhASAIIAE2AgAgAwshASACIAA2AgAMAQsgAUEXaiEDIAMsAAAhAyADBEBBgRVBxBNB6gxBjBUQBAsCQCACQQBKBEAgASgCCCEIIABB5ApqIQlBACEBA0ACQCAIIAFqIQMgAywAACEEIARB/wFxIQMgBEF/RwRAIAUgAUECdGoh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IwZBEGokBiACIQECfCAAvUIgiKdB/////wdxIgNB/MOk/wNJBHwgA0GewZryA0kEfEQAAAAAAADwPwUgAEQAAAAAAAAAABByCwUgACAAoSADQf//v/8HSw0BGgJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwgQcgwECyABKwMAIAErAwhBARBwmgwDCyABKwMAIAErAwgQcpoMAgsgASsDACABKwMIQQEQcAsLIQAgAiQGIAALywEBA38jBiECIwZBEGokBiACIQECQCAAvUIgiKdB/////wdxIgNB/MOk/wNJBEAgA0GAgMDyA08EQCAARAAAAAAAAAAAQQAQcCEACwUgA0H//7//B0sEQCAAIAChIQAMAgsCQAJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwhBARBwIQAMBQsgASsDACABKwMIEHIhAAwECyABKwMAIAErAwhBARBwmiEADAMLIAErAwAgASsDCBBymiEACwsLIAIkBiAAC5sDAwJ/AX4CfCAAvSIDQj+IpyEBAnwCfwJAIANCIIinQf////8HcSICQarGmIQESwR8IANC////////////AINCgICAgICAgPj/AFYEQCAADwsgAETvOfr+Qi6GQGQEQCAARAAAAAAAAOB/og8FIABE0rx63SsjhsBjIABEUTAt1RBJh8BjcUUNAkQAAAAAAAAAACIADwsABSACQcLc2P4DSwRAIAJBscXC/wNLDQIgAUEBcyABawwDCyACQYCAwPEDSwR8QQAhASAABSAARAAAAAAAAPA/oA8LCwwCCyAARP6CK2VHFfc/oiABQQN0QYATaisDAKCqCyEBIAAgAbciBEQAAOD+Qi7mP6KhIgAgBER2PHk17znqPaIiBaELIQQgACAEIAQgBCAEoiIAIAAgACAAIABE0KS+cmk3Zj6iRPFr0sVBvbu+oKJELN4lr2pWET+gokSTvb4WbMFmv6CiRD5VVVVVVcU/oKKhIgCiRAAAAAAAAABAIAChoyAFoaBEAAAAAAAA8D+gIQAgAUUEQCAADwsgACABEGULnwMDAn8BfgV8IAC9IgNCIIinIQECfyADQgBTIgIgAUGAgMAASXIEfyADQv///////////wCDQgBRBEBEAAAAAAAA8L8gACAAoqMPCyACRQRAIABEAAAAAAAAUEOivSIDQiCIpyEBIANC/////w+DIQNBy3cMAgsgACAAoUQAAAAAAAAAAKMPBSABQf//v/8HSwRAIAAPCyADQv////8PgyIDQgBRIAFBgIDA/wNGcQR/RAAAAAAAAAAADwVBgXgLCwshAiABQeK+JWoiAUH//z9xQZ7Bmv8Daq1CIIYgA4S/RAAAAAAAAPC/oCIFIAVEAAAAAAAA4D+ioiEGIAUgBUQAAAAAAAAAQKCjIgcgB6IiCCAIoiEEIAIgAUEUdmq3IgBEAADg/kIu5j+iIAUgAER2PHk17znqPaIgByAGIAQgBCAERJ/GeNAJmsM/okSveI4dxXHMP6CiRAT6l5mZmdk/oKIgCCAEIAQgBEREUj7fEvHCP6JE3gPLlmRGxz+gokRZkyKUJEnSP6CiRJNVVVVVVeU/oKKgoKKgIAahoKAL8Q8DC38Cfgh8AkACQAJAIAG9Ig1CIIinIgVB/////wdxIgMgDaciBnJFBEBEAAAAAAAA8D8PCyAAvSIOQiCIpyEHIA6nIghFIgogB0GAgMD/A0ZxBEBEAAAAAAAA8D8PCyAHQf////8HcSIEQYCAwP8HTQRAIAhBAEcgBEGAgMD/B0ZxIANBgIDA/wdLckUEQCAGQQBHIANBgIDA/wdGIgtxRQRAAkACQAJAIAdBAEgiCUUNACADQf///5kESwR/QQIhAgwBBSADQf//v/8DSwR/IANBFHYhAiADQf///4kESwRAQQIgBkGzCCACayICdiIMQQFxa0EAIAwgAnQgBkYbIQIMAwsgBgR/QQAFQQIgA0GTCCACayICdiIGQQFxa0EAIAYgAnQgA0YbIQIMBAsFDAILCyECDAILIAZFDQAMAQsgCwRAIARBgIDAgHxqIAhyRQRARAAAAAAAAPA/DwsgBUF/SiECIARB//+//wNLBEAgAUQAAAAAAAAAACACGw8FRAAAAAAAAAAAIAGaIAIbDwsACyADQYCAwP8DRgRAIABEAAAAAAAA8D8gAKMgBUF/ShsPCyAFQYCAgIAERgRAIAAgAKIPCyAHQX9KIAVBgICA/wNGcQRAIACfDwsLIACZIQ8gCgRAIARFIARBgICAgARyQYCAwP8HRnIEQEQAAAAAAADwPyAPoyAPIAVBAEgbIQAgCUUEQCAADwsgAiAEQYCAwIB8anIEQCAAmiAAIAJBAUYbDwsMBQsLAnwgCQR8AkACQAJAIAIOAgABAgsMBwtEAAAAAAAA8L8MAgtEAAAAAAAA8D8MAQVEAAAAAAAA8D8LCyERAnwgA0GAgICPBEsEfCADQYCAwJ8ESwRAIARBgIDA/wNJBEAjCkQAAAAAAAAAACAFQQBIGw8FIwpEAAAAAAAAAAAgBUEAShsPCwALIARB//+//wNJBEAgEUScdQCIPOQ3fqJEnHUAiDzkN36iIBFEWfP4wh9upQGiRFnz+MIfbqUBoiAFQQBIGw8LIARBgIDA/wNNBEAgD0QAAAAAAADwv6AiAEQAAABgRxX3P6IiECAARETfXfgLrlQ+oiAAIACiRAAAAAAAAOA/IABEVVVVVVVV1T8gAEQAAAAAAADQP6KhoqGiRP6CK2VHFfc/oqEiAKC9QoCAgIBwg78iEiEPIBIgEKEMAgsgEUScdQCIPOQ3fqJEnHUAiDzkN36iIBFEWfP4wh9upQGiRFnz+MIfbqUBoiAFQQBKGw8FIA9EAAAAAAAAQEOiIgC9QiCIpyAEIARBgIDAAEkiBRshAkHMd0GBeCAFGyACQRR1aiEDIAJB//8/cSIEQYCAwP8DciECIARBj7EOSQRAQQAhBAUgBEH67C5JIgYhBCADIAZBAXNBAXFqIQMgAiACQYCAQGogBhshAgsgBEEDdEGwE2orAwAiFCACrUIghiAAIA8gBRu9Qv////8Pg4S/IhAgBEEDdEGQE2orAwAiEqEiE0QAAAAAAADwPyASIBCgoyIVoiIPvUKAgICAcIO/IgAgACAAoiIWRAAAAAAAAAhAoCAPIACgIBUgEyACQQF1QYCAgIACckGAgCBqIARBEnRqrUIghr8iEyAAoqEgECATIBKhoSAAoqGiIhCiIA8gD6IiACAAoiAAIAAgACAAIABE705FSih+yj+iRGXbyZNKhs0/oKJEAUEdqWB00T+gokRNJo9RVVXVP6CiRP+rb9u2bds/oKJEAzMzMzMz4z+goqAiEqC9QoCAgIBwg78iAKIiEyAQIACiIA8gEiAARAAAAAAAAAjAoCAWoaGioCIPoL1CgICAgHCDvyIARAAAAOAJx+4/oiIQIARBA3RBoBNqKwMAIA8gACAToaFE/QM63AnH7j+iIABE9QFbFOAvPj6ioaAiAKCgIAO3IhKgvUKAgICAcIO/IhMhDyATIBKhIBShIBChCwshECAAIBChIAGiIAEgDUKAgICAcIO/IgChIA+ioCEBIA8gAKIiACABoCIPvSINQiCIpyECIA2nIQMgAkH//7+EBEoEQCACQYCAwPt7aiADciABRP6CK2VHFZc8oCAPIAChZHINBgUgAkGA+P//B3FB/5fDhARLBEAgAkGA6Lz7A2ogA3IgASAPIAChZXINBgsLIBEgAkH/////B3EiA0GAgID/A0sEfyAAQYCAQEGAgMAAIANBFHZBgnhqdiACaiIDQRR2Qf8PcSIEQYF4anUgA3GtQiCGv6EiDyEAIAEgD6C9IQ1BACADQf//P3FBgIDAAHJBkwggBGt2IgNrIAMgAkEASBsFQQALIgJBFHREAAAAAAAA8D8gDUKAgICAcIO/Ig9EAAAAAEMu5j+iIhAgASAPIAChoUTvOfr+Qi7mP6IgD0Q5bKgMYVwgPqKhIg+gIgAgACAAIACiIgEgASABIAEgAUTQpL5yaTdmPqJE8WvSxUG9u76gokQs3iWvalYRP6CiRJO9vhZswWa/oKJEPlVVVVVVxT+goqEiAaIgAUQAAAAAAAAAwKCjIA8gACAQoaEiASAAIAGioKEgAKGhIgC9Ig1CIIinaiIDQYCAwABIBHwgACACEGUFIAOtQiCGIA1C/////w+DhL8LIgCiDwsLCyAAIAGgDwsgACAAoSIAIACjDwsgEURZ8/jCH26lAaJEWfP4wh9upQGiDwsgEUScdQCIPOQ3fqJEnHUAiDzkN36iCwMAAQvDAwEDfyACQYDAAE4EQCAAIAEgAhAHDwsgACEEIAAgAmohAyAAQQNxIAFBA3FGBEADQCAAQQNxBEAgAkUEQCAEDwsgACABLAAAOgAAIABBAWohACABQQFqIQEgAkEBayECDAELCyADQXxxIgJBQGohBQNAIAAgBUwEQCAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCAAIAEoAgw2AgwgACABKAIQNgIQIAAgASgCFDYCFCAAIAEoAhg2AhggACABKAIcNgIcIAAgASgCIDYCICAAIAEoAiQ2AiQgACABKAIoNgIoIAAgASgCLDYCLCAAIAEoAjA2AjAgACABKAI0NgI0IAAgASgCODYCOCAAIAEoAjw2AjwgAEFAayEAIAFBQGshAQwBCwsDQCAAIAJIBEAgACABKAIANgIAIABBBGohACABQQRqIQEMAQsLBSADQQRrIQIDQCAAIAJIBEAgACABLAAAOgAAIAAgASwAAToAASAAIAEsAAI6AAIgACABLAADOgADIABBBGohACABQQRqIQEMAQsLCwNAIAAgA0gEQCAAIAEsAAA6AAAgAEEBaiEAIAFBAWohAQwBCwsgBAuYAgEEfyAAIAJqIQQgAUH/AXEhASACQcMATgRAA0AgAEEDcQRAIAAgAToAACAAQQFqIQAMAQsLIARBfHEiBUFAaiEGIAEgAUEIdHIgAUEQdHIgAUEYdHIhAwNAIAAgBkwEQCAAIAM2AgAgACADNgIEIAAgAzYCCCAAIAM2AgwgACADNgIQIAAgAzYCFCAAIAM2AhggACADNgIcIAAgAzYCICAAIAM2AiQgACADNgIoIAAgAzYCLCAAIAM2AjAgACADNgI0IAAgAzYCOCAAIAM2AjwgAEFAayEADAELCwNAIAAgBUgEQCAAIAM2AgAgAEEEaiEADAELCwsDQCAAIARIBEAgACABOgAAIABBAWohAAwBCwsgBCACawtVAQJ/IABBAEojBSgCACIBIABqIgAgAUhxIABBAEhyBEAQAxpBDBAFQX8PCyMFIAA2AgAQAiECIAAgAkoEQBABRQRAIwUgATYCAEEMEAVBfw8LCyABCw4AIAEgAiAAQQNxEQAACwgAQQAQAEEACwvAEQQAQYEIC7YKAQICAwMDAwQEBAQEBAQEAAEAAIAAAABWAAAAQAAAAD605DMJkfMzi7IBNDwgCjQjGhM0YKkcNKfXJjRLrzE0UDs9NHCHSTQjoFY0uJJkNFVtczSIn4E0/AuKNJMEkzRpkpw0Mr+mND+VsTSTH7005GnJNK2A1jQ2ceQ0pknzNIiMATXA9wk1Bu8SNXZ7HDXApiY1N3sxNdoDPTVeTEk1O2FWNblPZDX8JXM1inmBNYbjiTV82ZI1hWScNVKOpjUzYbE1Jei8NdwuyTXOQdY1QS7kNVcC8zWPZgE2T88JNvXDEjaYTRw26HUmNjJHMTZ0zDw2XhFJNmUiVjbODGQ2uN5yNpdTgTYcu4k2cq6SNq82nDaBXaY2NS2xNsewvDbk88g2AQPWNmDr4zYeu/I2okABN+umCTfxmBI3yR8cNx5FJjc9EzE3HpU8N2/WSDei41U398ljN4mXcjevLYE3vpKJN3SDkjfmCJw3viymN0f5sDd5ebw3/rjIN0fE1TeSqOM3+HPyN8AaATiTfgk4+W0SOAbyGzhiFCY4Vt8wONhdPDiSm0g48qRVODOHYzhuUHI40weBOGtqiTiCWJI4KtubOAn8pThoxbA4O0K8OCl+yDighdU42WXjOOgs8jjp9AA5RlYJOQ5DEjlRxBs5teMlOX+rMDmiJjw5xWBIOVNmVTmDRGM5aAlyOQHigDkkQok5nS2SOXutmzljy6U5mZGwOQ0LvDlmQ8g5C0fVOTIj4znt5fE5Hc8AOgUuCTowGBI6qZYbOhWzJTq3dzA6fO87OgomSDrHJ1U65gFjOnjCcTo7vIA66RmJOsYCkjrbf5s6y5qlOthdsDrv07s6swjIOogI1Tqf4OI6B5/xOlypADvQBQk7Xu0ROw9pGzuEgiU7/UMwO2e4Ozth60c7TelUO12/Yjuce3E7f5aAO7rxiDv515E7R1KbO0FqpTsnKrA74py7OxLOxzsXytQ7IJ7iOzVY8TumgwA8p90IPJjCETyCOxs8AVIlPFQQMDxhgTs8yLBHPOWqVDzofGI81DRxPM9wgDyWyYg8Oq2RPMAkmzzFOaU8hfavPOVluzyCk8c8uYvUPLRb4jx5EfE8+10APYm1CD3flxE9Ag4bPY0hJT253C89bUo7PUB2Rz2RbFQ9hTpiPSLucD0qS4A9f6GIPYiCkT1I95o9WAmlPfLCrz34Lrs9A1nHPW1N1D1cGeI90crwPVs4AD53jQg+M20RPpDgGj4n8SQ+LqkvPocTOz7KO0c+TS5UPjf4YT6Ep3A+jyWAPnN5iD7iV5E+3MmaPvnYpD5tj68+G/i6PpUexz4zD9Q+F9fhPj2E8D7GEgA/cmUIP5NCET8rsxo/zsAkP7F1Lz+y3Do/ZQFHPx3wUz/7tWE/+2BwPwAAgD8DAAAABAAAAAQAAAAGAAAAg/miAERObgD8KRUA0VcnAN009QBi28AAPJmVAEGQQwBjUf4Au96rALdhxQA6biQA0k1CAEkG4AAJ6i4AHJLRAOsd/gApsRwA6D6nAPU1ggBEuy4AnOmEALQmcABBfl8A1pE5AFODOQCc9DkAi1+EACj5vQD4HzsA3v+XAA+YBQARL+8AClqLAG0fbQDPfjYACcsnAEZPtwCeZj8ALepfALondQDl68cAPXvxAPc5BwCSUooA+2vqAB+xXwAIXY0AMANWAHv8RgDwq2sAILzPADb0mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAQcMSC11A+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1AAAAAAAA4D8AAAAAAADgvwAAAAAAAPA/AAAAAAAA+D8AQagTCwgG0M9D6/1MPgBBuxMLigZAA7jiP09nZ1MuL3N0Yl92b3JiaXMuYwBmLT5hbGxvYy5hbGxvY19idWZmZXJfbGVuZ3RoX2luX2J5dGVzID09IGYtPnRlbXBfb2Zmc2V0AHZvcmJpc19kZWNvZGVfaW5pdGlhbABmLT5ieXRlc19pbl9zZWcgPiAwAGdldDhfcGFja2V0X3JhdwBmLT5ieXRlc19pbl9zZWcgPT0gMABuZXh0X3NlZ21lbnQAdm9yYmlzX2RlY29kZV9wYWNrZXRfcmVzdAAhYy0+c3BhcnNlAGNvZGVib29rX2RlY29kZV9zY2FsYXJfcmF3ACFjLT5zcGFyc2UgfHwgeiA8IGMtPnNvcnRlZF9lbnRyaWVzAGNvZGVib29rX2RlY29kZV9kZWludGVybGVhdmVfcmVwZWF0AHogPCBjLT5zb3J0ZWRfZW50cmllcwBjb2RlYm9va19kZWNvZGVfc3RhcnQAKG4gJiAzKSA9PSAwAGltZGN0X3N0ZXAzX2l0ZXIwX2xvb3AAMABnZXRfd2luZG93AGYtPnRlbXBfb2Zmc2V0ID09IGYtPmFsbG9jLmFsbG9jX2J1ZmZlcl9sZW5ndGhfaW5fYnl0ZXMAc3RhcnRfZGVjb2RlcgB2b3JiaXNjLT5zb3J0ZWRfZW50cmllcyA9PSAwAGNvbXB1dGVfY29kZXdvcmRzAHogPj0gMCAmJiB6IDwgMzIAbGVuW2ldID49IDAgJiYgbGVuW2ldIDwgMzIAYXZhaWxhYmxlW3ldID09IDAAayA9PSBjLT5zb3J0ZWRfZW50cmllcwBjb21wdXRlX3NvcnRlZF9odWZmbWFuAGMtPnNvcnRlZF9jb2Rld29yZHNbeF0gPT0gY29kZQBsZW4gIT0gTk9fQ09ERQBpbmNsdWRlX2luX3NvcnQAcG93KChmbG9hdCkgcisxLCBkaW0pID4gZW50cmllcwBsb29rdXAxX3ZhbHVlcwAoaW50KSBmbG9vcihwb3coKGZsb2F0KSByLCBkaW0pKSA8PSBlbnRyaWVzAOoPBG5hbWUB4g9+AAVhYm9ydAENZW5sYXJnZU1lbW9yeQIOZ2V0VG90YWxNZW1vcnkDF2Fib3J0T25DYW5ub3RHcm93TWVtb3J5BA5fX19hc3NlcnRfZmFpbAULX19fc2V0RXJyTm8GBl9hYm9ydAcWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwgQX19ncm93V2FzbU1lbW9yeQkKc3RhY2tBbGxvYwoJc3RhY2tTYXZlCwxzdGFja1Jlc3RvcmUME2VzdGFibGlzaFN0YWNrU3BhY2UNCHNldFRocmV3DgtzZXRUZW1wUmV0MA8LZ2V0VGVtcFJldDAQEV9zdGJfdm9yYmlzX2Nsb3NlEQ5fdm9yYmlzX2RlaW5pdBILX3NldHVwX2ZyZWUTGl9zdGJfdm9yYmlzX2ZsdXNoX3B1c2hkYXRhFCFfc3RiX3ZvcmJpc19kZWNvZGVfZnJhbWVfcHVzaGRhdGEVBl9lcnJvchYgX3ZvcmJpc19zZWFyY2hfZm9yX3BhZ2VfcHVzaGRhdGEXGF9pc193aG9sZV9wYWNrZXRfcHJlc2VudBgVX3ZvcmJpc19kZWNvZGVfcGFja2V0GQxfZ2V0OF9wYWNrZXQaFF92b3JiaXNfZmluaXNoX2ZyYW1lGxlfc3RiX3ZvcmJpc19vcGVuX3B1c2hkYXRhHAxfdm9yYmlzX2luaXQdDl9zdGFydF9kZWNvZGVyHg1fdm9yYmlzX2FsbG9jHxtfc3RiX3ZvcmJpc19nZXRfZmlsZV9vZmZzZXQgE19tYXliZV9zdGFydF9wYWNrZXQhDV9mbHVzaF9wYWNrZXQiBV9nZXRuIwZfZ2V0MzIkE19zdGJfdm9yYmlzX2pzX29wZW4lFF9zdGJfdm9yYmlzX2pzX2Nsb3NlJhdfc3RiX3ZvcmJpc19qc19jaGFubmVscycaX3N0Yl92b3JiaXNfanNfc2FtcGxlX3JhdGUoFV9zdGJfdm9yYmlzX2pzX2RlY29kZSkNX2NyYzMyX3VwZGF0ZSoWX3ZvcmJpc19kZWNvZGVfaW5pdGlhbCsaX3ZvcmJpc19kZWNvZGVfcGFja2V0X3Jlc3QsCV9nZXRfYml0cy0FX2lsb2cuEF9nZXQ4X3BhY2tldF9yYXcvDV9uZXh0X3NlZ21lbnQwBV9nZXQ4MQtfc3RhcnRfcGFnZTIQX2NhcHR1cmVfcGF0dGVybjMdX3N0YXJ0X3BhZ2Vfbm9fY2FwdHVyZXBhdHRlcm40DV9wcmVwX2h1ZmZtYW41G19jb2RlYm9va19kZWNvZGVfc2NhbGFyX3JhdzYOX3ByZWRpY3RfcG9pbnQ3D19kZWNvZGVfcmVzaWR1ZTgJX2RvX2Zsb29yOQ1faW52ZXJzZV9tZGN0OgxfYml0X3JldmVyc2U7EV9tYWtlX2Jsb2NrX2FycmF5PBJfc2V0dXBfdGVtcF9tYWxsb2M9JF9jb2RlYm9va19kZWNvZGVfZGVpbnRlcmxlYXZlX3JlcGVhdD4PX3Jlc2lkdWVfZGVjb2RlPxVfY29kZWJvb2tfZGVjb2RlX3N0ZXBAEF9jb2RlYm9va19kZWNvZGVBFl9jb2RlYm9va19kZWNvZGVfc3RhcnRCCl9kcmF3X2xpbmVDF19pbWRjdF9zdGVwM19pdGVyMF9sb29wRBlfaW1kY3Rfc3RlcDNfaW5uZXJfcl9sb29wRRlfaW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wRh9faW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wX2xkNjU0RwhfaXRlcl81NEgLX2dldF93aW5kb3dJEF92b3JiaXNfdmFsaWRhdGVKDV9zdGFydF9wYWNrZXRLBV9za2lwTAtfY3JjMzJfaW5pdE0NX3NldHVwX21hbGxvY04QX3NldHVwX3RlbXBfZnJlZU8SX2NvbXB1dGVfY29kZXdvcmRzUBdfY29tcHV0ZV9zb3J0ZWRfaHVmZm1hblEcX2NvbXB1dGVfYWNjZWxlcmF0ZWRfaHVmZm1hblIPX2Zsb2F0MzJfdW5wYWNrUw9fbG9va3VwMV92YWx1ZXNUDl9wb2ludF9jb21wYXJlVQpfbmVpZ2hib3JzVg9faW5pdF9ibG9ja3NpemVXCl9hZGRfZW50cnlYEF9pbmNsdWRlX2luX3NvcnRZD191aW50MzJfY29tcGFyZVoYX2NvbXB1dGVfdHdpZGRsZV9mYWN0b3JzWw9fY29tcHV0ZV93aW5kb3dcE19jb21wdXRlX2JpdHJldmVyc2VdB19zcXVhcmVeB19tYWxsb2NfBV9mcmVlYAhfcmVhbGxvY2ESX3RyeV9yZWFsbG9jX2NodW5rYg5fZGlzcG9zZV9jaHVua2MRX19fZXJybm9fbG9jYXRpb25kB19tZW1jbXBlB19zY2FsYm5mBl9xc29ydGcFX3NpZnRoBF9zaHJpCF90cmlua2xlagRfc2hsawVfcG50emwIX2FfY3R6X2xtBl9jeWNsZW4LX19fcmVtX3BpbzJvEV9fX3JlbV9waW8yX2xhcmdlcAZfX19zaW5xBl9sZGV4cHIGX19fY29zcwRfY29zdARfc2ludQRfZXhwdgRfbG9ndwRfcG93eAtydW5Qb3N0U2V0c3kHX21lbWNweXoHX21lbXNldHsFX3Nicmt8C2R5bkNhbGxfaWlpfQJiMA=="),function(o){return o.charCodeAt(0)});var g=g!==void 0?g:{},v={};for(e in g)g.hasOwnProperty(e)&&(v[e]=g[e]);g.arguments=[],g.thisProgram="./this.program",g.quit=function(o,r){throw r},g.preRun=[],g.postRun=[];var j=!1,IA=!1,rA=!1,at=!1;j=typeof window=="object",IA=typeof importScripts=="function",rA=typeof process=="object"&&typeof bt=="function"&&!j&&!IA,at=!j&&!rA&&!IA;var bA="";function ke(o){return g.locateFile?g.locateFile(o,bA):bA+o}rA?(bA=__dirname+"/",g.read=function(r,E){var l;return A||(A=void 0),t||(t=void 0),r=t.normalize(r),l=A.readFileSync(r),E?l:l.toString()},g.readBinary=function(r){var E=g.read(r,!0);return E.buffer||(E=new Uint8Array(E)),LA(E.buffer),E},process.argv.length>1&&(g.thisProgram=process.argv[1].replace(/\\/g,"/")),g.arguments=process.argv.slice(2),typeof module<"u",process.on("uncaughtException",function(o){if(!(o instanceof Ae))throw o}),process.on("unhandledRejection",function(o,r){process.exit(1)}),g.quit=function(o){process.exit(o)},g.inspect=function(){return"[Emscripten Module object]"}):at?(typeof read<"u"&&(g.read=function(r){return read(r)}),g.readBinary=function(r){var E;return typeof readbuffer=="function"?new Uint8Array(readbuffer(r)):(LA(typeof(E=read(r,"binary"))=="object"),E)},typeof scriptArgs<"u"?g.arguments=scriptArgs:typeof arguments<"u"&&(g.arguments=arguments),typeof quit=="function"&&(g.quit=function(o){quit(o)})):(j||IA)&&(j?document.currentScript&&(bA=document.currentScript.src):bA=self.location.href,bA=bA.indexOf("blob:")!==0?bA.split("/").slice(0,-1).join("/")+"/":"",g.read=function(r){var E=new XMLHttpRequest;return E.open("GET",r,!1),E.send(null),E.responseText},IA&&(g.readBinary=function(r){var E=new XMLHttpRequest;return E.open("GET",r,!1),E.responseType="arraybuffer",E.send(null),new Uint8Array(E.response)}),g.readAsync=function(r,E,l){var D=new XMLHttpRequest;D.open("GET",r,!0),D.responseType="arraybuffer",D.onload=function(){if(D.status==200||D.status==0&&D.response){E(D.response);return}l()},D.onerror=l,D.send(null)},g.setWindowTitle=function(o){document.title=o});var Qt=g.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),FA=g.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||Qt);for(e in v)v.hasOwnProperty(e)&&(g[e]=v[e]);function re(o){var r=u;return u=u+o+15&-16,r}function ht(o){var r=h[x>>2],E=r+o+15&-16;return h[x>>2]=E,E>=gA&&!Dt()?(h[x>>2]=r,0):r}function lt(o,r){return r||(r=16),o=Math.ceil(o/r)*r}function Ls(o){switch(o){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if(o[o.length-1]==="*")return 4;if(o[0]!=="i")return 0;var r=parseInt(o.substr(1));return LA(r%8==0),r/8}}function zA(o){zA.shown||(zA.shown={}),zA.shown[o]||(zA.shown[o]=1,FA(o))}v=void 0;var Hs={"f64-rem":function(o,r){return o%r},debugger:function(){}},Ne=[];function oo(o,r){for(var E=0,l=E;l<E+0;l++)if(!Ne[l])return Ne[l]=o,1+l;throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}function go(o){Ne[o-1]=null}var Me={};function no(o,r){if(o){LA(r),Me[r]||(Me[r]={});var E=Me[r];return E[o]||(r.length===1?E[o]=function(){return Ue(r,o)}:r.length===2?E[o]=function(D){return Ue(r,o,[D])}:E[o]=function(){return Ue(r,o,Array.prototype.slice.call(arguments))}),E[o]}}function ro(o,r,E){return E?+(o>>>0)+4294967296*+(r>>>0):+(o>>>0)+4294967296*+(0|r)}function Ue(o,r,E){return E&&E.length?g["dynCall_"+o].apply(null,[r].concat(E)):g["dynCall_"+o].call(null,r)}var ie=0,ct=0;function LA(o,r){o||UA("Assertion failed: "+r)}function dt(o){var r=g["_"+o];return LA(r,"Cannot call unknown function "+o+", make sure it is exported"),r}var ut={stackSave:function(){qe()},stackRestore:function(){Te()},arrayToC:function(o){var r,E,l=he(o.length);return r=o,E=l,s.set(r,E),l},stringToC:function(o){var r=0;if(o!=null&&o!==0){var E=(o.length<<2)+1;r=he(E),pt(o,r,E)}return r}},Ys={string:ut.stringToC,array:ut.arrayToC};function ft(o,r,E,l,D){var N=dt(o),b=[],w=0;if(l)for(var nA=0;nA<l.length;nA++){var W=Ys[E[nA]];W?(w===0&&(w=qe()),b[nA]=W(l[nA])):b[nA]=l[nA]}var _,P=N.apply(null,b);return P=(_=P,r==="string"?Ce(_):r==="boolean"?!!_:_),w!==0&&Te(w),P}function Js(o,r,E,l){switch((E=E||"i8").charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":case"i8":s[o>>0]=r;break;case"i16":i[o>>1]=r;break;case"i32":h[o>>2]=r;break;case"i64":tempI64=[r>>>0,+Ps(tempDouble=r)>=1?tempDouble>0?(0|Zs(+kt(tempDouble/4294967296),4294967295))>>>0:~~+Os((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0],h[o>>2]=tempI64[0],h[o+4>>2]=tempI64[1];break;case"float":f[o>>2]=r;break;case"double":c[o>>3]=r;break;default:UA("invalid type for setValue: "+E)}}function io(o,r,E){switch((r=r||"i8").charAt(r.length-1)==="*"&&(r="i32"),r){case"i1":case"i8":return s[o>>0];case"i16":return i[o>>1];case"i32":case"i64":return h[o>>2];case"float":return f[o>>2];case"double":return c[o>>3];default:UA("invalid type for getValue: "+r)}return null}function Co(o,r,E,l){typeof o=="number"?(N=!0,b=o):(N=!1,b=o.length);var D=typeof r=="string"?r:null;if(w=E==4?l:[typeof Qe=="function"?Qe:re,he,re,ht][E===void 0?2:E](Math.max(b,D?1:r.length)),N){for(l=w,LA((3&w)==0),nA=w+(-4&b);l<nA;l+=4)h[l>>2]=0;for(nA=w+b;l<nA;)s[l++>>0]=0;return w}if(D==="i8")return o.subarray||o.slice?n.set(o,w):n.set(new Uint8Array(o),w),w;for(var N,b,w,nA,W,_,P,k=0;k<b;){var hA=o[k];if((W=D||r[k])===0){k++;continue}W=="i64"&&(W="i32"),Js(w+k,hA,W),P!==W&&(_=Ls(W),P=W),k+=_}return w}function Eo(o){return p?Ye?Qe(o):ht(o):re(o)}function Ce(o,r){if(r===0||!o)return"";for(var E,l,D,N=0,b=0;N|=l=n[o+b>>0],(l!=0||r)&&(b++,!r||b!=r););r||(r=b);var w="";if(N<128){for(;r>0;)D=String.fromCharCode.apply(String,n.subarray(o,o+Math.min(r,1024))),w=w?w+D:D,o+=1024,r-=1024;return w}return E=o,function(W,_){for(var P=_;W[P];)++P;if(P-_>16&&W.subarray&&mt)return mt.decode(W.subarray(_,P));for(var k,hA,mA,pA,yA,qA,SA="";;){if(!(k=W[_++]))return SA;if(!(128&k)){SA+=String.fromCharCode(k);continue}if(hA=63&W[_++],(224&k)==192){SA+=String.fromCharCode((31&k)<<6|hA);continue}if(mA=63&W[_++],(240&k)==224?k=(15&k)<<12|hA<<6|mA:(pA=63&W[_++],(248&k)==240?k=(7&k)<<18|hA<<12|mA<<6|pA:(yA=63&W[_++],k=(252&k)==248?(3&k)<<24|hA<<18|mA<<12|pA<<6|yA:(1&k)<<30|hA<<24|mA<<18|pA<<12|yA<<6|(qA=63&W[_++]))),k<65536)SA+=String.fromCharCode(k);else{var ee=k-65536;SA+=String.fromCharCode(55296|ee>>10,56320|1023&ee)}}}(n,E)}function Bo(o){for(var r="";;){var E=s[o++>>0];if(!E)return r;r+=String.fromCharCode(E)}}function ao(o,r){return function(l,D,N){for(var b=0;b<l.length;++b)s[D++>>0]=l.charCodeAt(b);N||(s[D>>0]=0)}(o,r,!1)}var mt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Ee(o,r,E,l){if(!(l>0))return 0;for(var D=E,N=E+l-1,b=0;b<o.length;++b){var w=o.charCodeAt(b);if(w>=55296&&w<=57343&&(w=65536+((1023&w)<<10)|1023&o.charCodeAt(++b)),w<=127){if(E>=N)break;r[E++]=w}else if(w<=2047){if(E+1>=N)break;r[E++]=192|w>>6,r[E++]=128|63&w}else if(w<=65535){if(E+2>=N)break;r[E++]=224|w>>12,r[E++]=128|w>>6&63,r[E++]=128|63&w}else if(w<=2097151){if(E+3>=N)break;r[E++]=240|w>>18,r[E++]=128|w>>12&63,r[E++]=128|w>>6&63,r[E++]=128|63&w}else if(w<=67108863){if(E+4>=N)break;r[E++]=248|w>>24,r[E++]=128|w>>18&63,r[E++]=128|w>>12&63,r[E++]=128|w>>6&63,r[E++]=128|63&w}else{if(E+5>=N)break;r[E++]=252|w>>30,r[E++]=128|w>>24&63,r[E++]=128|w>>18&63,r[E++]=128|w>>12&63,r[E++]=128|w>>6&63,r[E++]=128|63&w}}return r[E]=0,E-D}function pt(o,r,E){return Ee(o,n,r,E)}function Be(o){for(var r=0,E=0;E<o.length;++E){var l=o.charCodeAt(E);l>=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&o.charCodeAt(++E)),l<=127?++r:l<=2047?r+=2:l<=65535?r+=3:l<=2097151?r+=4:l<=67108863?r+=5:r+=6}return r}var yt=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Qo(o){for(var r=o,E=r>>1;i[E];)++E;if((r=E<<1)-o>32&&yt)return yt.decode(n.subarray(o,r));for(var l=0,D="";;){var N=i[o+2*l>>1];if(N==0)return D;++l,D+=String.fromCharCode(N)}}function ho(o,r,E){if(E===void 0&&(E=2147483647),E<2)return 0;for(var l=r,D=(E-=2)<2*o.length?E/2:o.length,N=0;N<D;++N){var b=o.charCodeAt(N);i[r>>1]=b,r+=2}return i[r>>1]=0,r-l}function lo(o){return 2*o.length}function co(o){for(var r=0,E="";;){var l=h[o+4*r>>2];if(l==0)return E;if(++r,l>=65536){var D=l-65536;E+=String.fromCharCode(55296|D>>10,56320|1023&D)}else E+=String.fromCharCode(l)}}function uo(o,r,E){if(E===void 0&&(E=2147483647),E<4)return 0;for(var l=r,D=l+E-4,N=0;N<o.length;++N){var b=o.charCodeAt(N);if(b>=55296&&b<=57343&&(b=65536+((1023&b)<<10)|1023&o.charCodeAt(++N)),h[r>>2]=b,(r+=4)+4>D)break}return h[r>>2]=0,r-l}function fo(o){for(var r=0,E=0;E<o.length;++E){var l=o.charCodeAt(E);l>=55296&&l<=57343&&++E,r+=4}return r}function mo(o){var r=Be(o)+1,E=Qe(r);return E&&Ee(o,s,E,r),E}function po(o){var r=Be(o)+1,E=he(r);return Ee(o,s,E,r),E}function yo(o){return o}function So(){var o,r=function(){var l=Error();if(!l.stack){try{throw Error(0)}catch(D){l=D}if(!l.stack)return"(no stack trace available)"}return l.stack.toString()}();return g.extraStackTrace&&(r+=`
|
|
10
|
-
`+g.extraStackTrace()),(o=r).replace(/__Z[\w\d_]+/g,function(E){var l,D=l=E;return E===D?E:E+" ["+D+"]"})}function xe(o,r){return o%r>0&&(o+=r-o%r),o}function St(o){g.buffer=I=o}function be(){g.HEAP8=s=new Int8Array(I),g.HEAP16=i=new Int16Array(I),g.HEAP32=h=new Int32Array(I),g.HEAPU8=n=new Uint8Array(I),g.HEAPU16=a=new Uint16Array(I),g.HEAPU32=d=new Uint32Array(I),g.HEAPF32=f=new Float32Array(I),g.HEAPF64=c=new Float64Array(I)}function Dt(){var o=g.usingWasm?65536:16777216,r=2147483648-o;if(h[x>>2]>r)return!1;var E=gA;for(gA=Math.max(gA,16777216);gA<h[x>>2];)gA=gA<=536870912?xe(2*gA,o):Math.min(xe((3*gA+2147483648)/4,o),r);var l=g.reallocBuffer(gA);return l&&l.byteLength==gA?(St(l),be(),!0):(gA=E,!1)}Q=u=Y=M=L=q=x=0,p=!1,g.reallocBuffer||(g.reallocBuffer=function(o){try{if(ArrayBuffer.transfer)r=ArrayBuffer.transfer(I,o);else{var r,E=s;r=new ArrayBuffer(o),new Int8Array(r).set(E)}}catch{return!1}return!!vs(r)&&r});try{(V=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{V=function(r){return r.byteLength}}var Le=g.TOTAL_STACK||5242880,gA=g.TOTAL_MEMORY||16777216;function Ts(){return gA}function jA(o){for(;o.length>0;){var r=o.shift();if(typeof r=="function"){r();continue}var E=r.func;typeof E=="number"?r.arg===void 0?g.dynCall_v(E):g.dynCall_vi(E,r.arg):E(r.arg===void 0?null:r.arg)}}gA<Le&&FA("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+gA+"! (TOTAL_STACK="+Le+")"),g.buffer?I=g.buffer:(typeof WebAssembly=="object"&&typeof WebAssembly.Memory=="function"?(g.wasmMemory=new WebAssembly.Memory({initial:gA/65536}),I=g.wasmMemory.buffer):I=new ArrayBuffer(gA),g.buffer=I),be();var wt=[],He=[],Ft=[],Rt=[],Gt=[],Ye=!1,qs=!1;function Ks(o){wt.unshift(o)}function Do(o){He.unshift(o)}function wo(o){Ft.unshift(o)}function Fo(o){Rt.unshift(o)}function Vs(o){Gt.unshift(o)}function Ro(o,r,E){var l,D;zA("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"),E&&(l=s[D=r+Be(o)]),pt(o,r,1/0),E&&(s[D]=l)}function Go(o,r,E){return o>=0?o:r<=32?2*Math.abs(1<<r-1)+o:Math.pow(2,r)+o}function ko(o,r,E){if(o<=0)return o;var l=r<=32?Math.abs(1<<r-1):Math.pow(2,r-1);return o>=l&&(r<=32||o>l)&&(o=-2*l+o),o}var Ps=Math.abs,Os=Math.ceil,kt=Math.floor,Zs=Math.min,TA=0,Je=null,$A=null;function No(o){return o}g.preloadedImages={},g.preloadedAudios={};var Nt="data:application/octet-stream;base64,";function ae(o){return String.prototype.startsWith?o.startsWith(Nt):o.indexOf(Nt)===0}(function(){var r="main.wast",E="main.wasm",l="main.temp.asm.js";ae(r)||(r=ke(r)),ae(E)||(E=ke(E)),ae(l)||(l=ke(l));var D={global:null,env:null,asm2wasm:Hs,parent:g},N=null;function b(P){return P}function w(){try{if(g.wasmBinary)return new Uint8Array(g.wasmBinary);if(g.readBinary)return g.readBinary(E);throw"both async and sync fetching of the wasm failed"}catch(P){UA(P)}}g.asmPreload=g.asm;var nA=g.reallocBuffer,W=function(P){P=xe(P,g.usingWasm?65536:16777216);var k=g.buffer.byteLength;if(g.usingWasm)try{var hA=g.wasmMemory.grow((P-k)/65536);return hA!==-1?g.buffer=g.wasmMemory.buffer:null}catch{return null}};g.reallocBuffer=function(P){return _==="asmjs"?nA(P):W(P)};var _="";g.asm=function(P,k,hA){var mA;if(!(k=mA=k).table){var pA,yA=g.wasmTableSize;yA===void 0&&(yA=1024);var qA=g.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?qA!==void 0?k.table=new WebAssembly.Table({initial:yA,maximum:qA,element:"anyfunc"}):k.table=new WebAssembly.Table({initial:yA,element:"anyfunc"}):k.table=Array(yA),g.wasmTable=k.table}return k.memoryBase||(k.memoryBase=g.STATIC_BASE),k.tableBase||(k.tableBase=0),pA=function(ee,vA,Ve){if(typeof WebAssembly!="object")return FA("no native wasm support detected"),!1;if(!(g.wasmMemory instanceof WebAssembly.Memory))return FA("no native wasm Memory in use"),!1;function le(RA,GA){if((N=RA.exports).memory){var te,Pe,xt;te=N.memory,Pe=g.buffer,te.byteLength<Pe.byteLength&&FA("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here"),xt=new Int8Array(Pe),new Int8Array(te).set(xt),St(te),be()}g.asm=N,g.usingWasm=!0,function(Yo){if(TA--,g.monitorRunDependencies&&g.monitorRunDependencies(TA),TA==0&&(Je!==null&&(clearInterval(Je),Je=null),$A)){var Xs=$A;$A=null,Xs()}}("wasm-instantiate")}if(vA.memory=g.wasmMemory,D.global={NaN:NaN,Infinity:1/0},D["global.Math"]=Math,D.env=vA,TA++,g.monitorRunDependencies&&g.monitorRunDependencies(TA),g.instantiateWasm)try{return g.instantiateWasm(D,le)}catch(RA){return FA("Module.instantiateWasm callback failed with error: "+RA),!1}function XA(RA){le(RA.instance,RA.module)}function Ut(RA){(!g.wasmBinary&&(j||IA)&&typeof fetch=="function"?fetch(E,{credentials:"same-origin"}).then(function(GA){if(!GA.ok)throw"failed to load wasm binary file at '"+E+"'";return GA.arrayBuffer()}).catch(function(){return w()}):new Promise(function(GA,te){GA(w())})).then(function(GA){return WebAssembly.instantiate(GA,D)}).then(RA).catch(function(GA){FA("failed to asynchronously prepare wasm: "+GA),UA(GA)})}return g.wasmBinary||typeof WebAssembly.instantiateStreaming!="function"||ae(E)||typeof fetch!="function"?Ut(XA):WebAssembly.instantiateStreaming(fetch(E,{credentials:"same-origin"}),D).then(XA).catch(function(RA){FA("wasm streaming compile failed: "+RA),FA("falling back to ArrayBuffer instantiation"),Ut(XA)}),{}}(P,k,hA),LA(pA,"no binaryen method succeeded."),pA},g.asm})(),u=(Q=1024)+4816,He.push(),g.STATIC_BASE=Q,g.STATIC_BUMP=4816;var dA=u;function Mo(o){s[dA]=s[o],s[dA+1]=s[o+1],s[dA+2]=s[o+2],s[dA+3]=s[o+3]}function Uo(o){s[dA]=s[o],s[dA+1]=s[o+1],s[dA+2]=s[o+2],s[dA+3]=s[o+3],s[dA+4]=s[o+4],s[dA+5]=s[o+5],s[dA+6]=s[o+6],s[dA+7]=s[o+7]}function xo(o,r,E){var l=E>0?E:Be(o)+1,D=Array(l),N=Ee(o,D,0,D.length);return r&&(D.length=N),D}function bo(o){for(var r=[],E=0;E<o.length;E++){var l=o[E];l>255&&(l&=255),r.push(String.fromCharCode(l))}return r.join("")}u+=16,x=re(4),L=(Y=M=lt(u))+Le,q=lt(L),h[x>>2]=q,p=!0,g.wasmTableSize=4,g.wasmMaxTableSize=4,g.asmGlobalArg={},g.asmLibraryArg={abort:UA,assert:LA,enlargeMemory:Dt,getTotalMemory:Ts,abortOnCannotGrowMemory:function(){UA("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+gA+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(r,E,l){var D=qe();try{return g.dynCall_iii(r,E,l)}catch(N){if(Te(D),typeof N!="number"&&N!=="longjmp")throw N;g.setThrew(1,0)}},___assert_fail:function(r,E,l,D){UA("Assertion failed: "+Ce(r)+", at: "+[E?Ce(E):"unknown filename",l,D?Ce(D):"unknown function"])},___setErrNo:function(r){return g.___errno_location&&(h[g.___errno_location()>>2]=r),r},_abort:function(){g.abort()},_emscripten_memcpy_big:function(r,E,l){return n.set(n.subarray(E,E+l),r),r},_llvm_floor_f64:kt,DYNAMICTOP_PTR:x,tempDoublePtr:dA,ABORT:ie,STACKTOP:M,STACK_MAX:L};var Mt=g.asm(g.asmGlobalArg,g.asmLibraryArg,I);g.asm=Mt,g.___errno_location=function(){return g.asm.___errno_location.apply(null,arguments)};var vs=g._emscripten_replace_memory=function(){return g.asm._emscripten_replace_memory.apply(null,arguments)};g._free=function(){return g.asm._free.apply(null,arguments)};var Qe=g._malloc=function(){return g.asm._malloc.apply(null,arguments)};g._memcpy=function(){return g.asm._memcpy.apply(null,arguments)},g._memset=function(){return g.asm._memset.apply(null,arguments)},g._sbrk=function(){return g.asm._sbrk.apply(null,arguments)},g._stb_vorbis_js_channels=function(){return g.asm._stb_vorbis_js_channels.apply(null,arguments)},g._stb_vorbis_js_close=function(){return g.asm._stb_vorbis_js_close.apply(null,arguments)},g._stb_vorbis_js_decode=function(){return g.asm._stb_vorbis_js_decode.apply(null,arguments)},g._stb_vorbis_js_open=function(){return g.asm._stb_vorbis_js_open.apply(null,arguments)},g._stb_vorbis_js_sample_rate=function(){return g.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},g.establishStackSpace=function(){return g.asm.establishStackSpace.apply(null,arguments)},g.getTempRet0=function(){return g.asm.getTempRet0.apply(null,arguments)},g.runPostSets=function(){return g.asm.runPostSets.apply(null,arguments)},g.setTempRet0=function(){return g.asm.setTempRet0.apply(null,arguments)},g.setThrew=function(){return g.asm.setThrew.apply(null,arguments)};var he=g.stackAlloc=function(){return g.asm.stackAlloc.apply(null,arguments)},Te=g.stackRestore=function(){return g.asm.stackRestore.apply(null,arguments)},qe=g.stackSave=function(){return g.asm.stackSave.apply(null,arguments)};function Ae(o){this.name="ExitStatus",this.message="Program terminated with exit("+o+")",this.status=o}function Ke(o){o=o||g.arguments,!(TA>0)&&(function(){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)Ks(g.preRun.shift());jA(wt)}(),!(TA>0)&&(g.calledRun||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),r()},1)):r())));function r(){!g.calledRun&&(g.calledRun=!0,ie||(Ye||(Ye=!0,jA(He)),jA(Ft),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;)Vs(g.postRun.shift());jA(Gt)}()))}}function Lo(o,r){(!r||!g.noExitRuntime||o!==0)&&(g.noExitRuntime||(ie=!0,ct=o,M=X,jA(Rt),qs=!0,g.onExit&&g.onExit(o)),g.quit(o,new Ae(o)))}function UA(o){throw g.onAbort&&g.onAbort(o),o!==void 0?(Qt(o),FA(o),o=JSON.stringify(o)):o="",ie=!0,ct=1,"abort("+o+"). Build with -s ASSERTIONS=1 for more info."}if(g.dynCall_iii=function(){return g.asm.dynCall_iii.apply(null,arguments)},g.asm=Mt,g.ccall=ft,g.cwrap=function(r,E,l,D){var N=(l=l||[]).every(function(b){return b==="number"});return E!=="string"&&N&&!D?dt(r):function(){return ft(r,E,l,arguments,D)}},Ae.prototype=Error(),Ae.prototype.constructor=Ae,$A=function o(){g.calledRun||Ke(),g.calledRun||($A=o)},g.run=Ke,g.abort=UA,g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();g.noExitRuntime=!0,Ke(),g.onRuntimeInitialized=()=>{jt=!0,$t()},YA.decode=function(o){return function(E){if(!jt)throw Error("Not initialized");var l={};function D(vA){return new Int32Array(g.HEAPU8.buffer,vA,1)[0]}function N(vA,Ve){var le=new ArrayBuffer(Ve*Float32Array.BYTES_PER_ELEMENT),XA=new Float32Array(le);return XA.set(new Float32Array(g.HEAPU8.buffer,vA,Ve)),XA}l.open=g.cwrap("stb_vorbis_js_open","number",[]),l.close=g.cwrap("stb_vorbis_js_close","void",["number"]),l.channels=g.cwrap("stb_vorbis_js_channels","number",["number"]),l.sampleRate=g.cwrap("stb_vorbis_js_sample_rate","number",["number"]),l.decode=g.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var b,w,nA,W,_=l.open(),P=(b=E,w=E.byteLength,nA=g._malloc(w),(W=new Uint8Array(g.HEAPU8.buffer,nA,w)).set(new Uint8Array(b,0,w)),W),k=g._malloc(4),hA=g._malloc(4),mA=l.decode(_,P.byteOffset,P.byteLength,k,hA);if(g._free(P.byteOffset),mA<0)throw l.close(_),g._free(k),Error("stbvorbis decode failed: "+mA);for(var pA=l.channels(_),yA=Array(pA),qA=new Int32Array(g.HEAPU32.buffer,D(k),pA),SA=0;SA<pA;SA++)yA[SA]=N(qA[SA],mA),g._free(qA[SA]);var ee=l.sampleRate(_);return l.close(_),g._free(D(k)),g._free(k),{data:yA,sampleRate:ee,eof:!0,error:null}}(o)}})();var $e=class{constructor(A,t,I,s,n,i,a,h){this.sampleName=A,this.sampleRate=t,this.samplePitch=I,this.samplePitchCorrection=s,this.sampleLink=n,this.sampleType=i,this.sampleLoopStartIndex=a,this.sampleLoopEndIndex=h,this.isCompressed=(i&16)>0,this.compressedData=void 0}getRawData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}compressSample(A,t){if(!this.isCompressed)try{this.compressedData=t([this.getAudioData()],1,this.sampleRate,A),this.sampleType|=16,this.isCompressed=!0}catch{J(`Failed to compress ${this.sampleName}. Leaving as uncompressed!`),this.isCompressed=!1,this.compressedData=void 0,this.sampleType&=-17}}getAudioData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}},At=class extends $e{constructor(A,t,I,s,n,i,a,h,d,f,c,Q){super(A,i,a,h,d,f,s-t,n-t),this.sampleName=A,this.sampleStartIndex=t,this.sampleEndIndex=I,this.isSampleLoaded=!1,this.sampleID=Q,this.useCount=0,this.sampleLength=this.sampleEndIndex-this.sampleStartIndex,this.sampleDataArray=c,this.sampleData=new Float32Array(0),this.isCompressed&&(this.sampleLoopStartIndex+=this.sampleStartIndex,this.sampleLoopEndIndex+=this.sampleStartIndex,this.sampleLength=99999999)}getRawData(){let A=this.sampleDataArray;if(this.isCompressed){if(this.compressedData)return this.compressedData;let t=A.currentIndex;return A.slice(this.sampleStartIndex/2+t,this.sampleEndIndex/2+t)}else{let t=A.currentIndex;return A.slice(t+this.sampleStartIndex,t+this.sampleEndIndex)}}decodeVorbis(){if(this.sampleLength<1)return;let A=this.sampleDataArray,t=A.currentIndex,I=A.slice(this.sampleStartIndex/2+t,this.sampleEndIndex/2+t);this.sampleData=new Float32Array(0);let s=YA.decode(I.buffer);this.sampleData=s.data[0]}getAudioData(){return this.isSampleLoaded?this.sampleData:this.loadBufferData()}loadUncompressedData(){if(this.isCompressed)return J("Trying to load a compressed sample via loadUncompressedData()... aborting!"),new Float32Array(0);let A=new Float32Array(this.sampleLength/2),t=this.sampleDataArray.currentIndex,I=new Int16Array(this.sampleDataArray.slice(t+this.sampleStartIndex,t+this.sampleEndIndex).buffer);for(let s=0;s<I.length;s++)A[s]=I[s]/32768;return this.sampleData=A,this.isSampleLoaded=!0,A}loadBufferData(){return this.sampleLength<1?new Float32Array(1):this.isCompressed?(this.decodeVorbis(),this.isSampleLoaded=!0,this.sampleData):this.loadUncompressedData()}};function AI(e,A){let t=[],I=0;for(;e.chunkData.length>e.chunkData.currentIndex;){let s=zs(I,e.chunkData,A);t.push(s),I++}return t.length>1&&t.pop(),t}function zs(e,A,t){let I=z(A,20),s=T(A,4)*2,n=T(A,4)*2,i=T(A,4)*2,a=T(A,4)*2,h=T(A,4),d=A[A.currentIndex++];d===255&&(d=60);let f=vt(A[A.currentIndex++]),c=T(A,2),Q=T(A,2);return new At(I,s,n,i,a,h,d,f,c,Q,t,e)}var et=class{constructor(A){this.instrumentName=z(A.chunkData,20).trim(),this.instrumentZoneIndex=T(A.chunkData,2),this.instrumentZonesAmount=0,this.instrumentZones=[],this._useCount=0}addUseCount(){this._useCount++,this.instrumentZones.forEach(A=>A.useCount++)}removeUseCount(){this._useCount--;for(let A=0;A<this.instrumentZones.length;A++)this.safeDeleteZone(A)&&A--}get useCount(){return this._useCount}deleteInstrument(){this.instrumentZones.forEach(A=>A.deleteZone()),this.instrumentZones.length=0}safeDeleteZone(A){return this.instrumentZones[A].useCount--,this.instrumentZones[A].useCount<1?(this.deleteZone(A),!0):!1}deleteZone(A){this.instrumentZones[A].deleteZone(),this.instrumentZones.splice(A,1)}getInstrumentZones(A,t){this.instrumentZonesAmount=A;for(let I=this.instrumentZoneIndex;I<this.instrumentZonesAmount+this.instrumentZoneIndex;I++)this.instrumentZones.push(t[I])}};function eI(e,A){let t=[];for(;e.chunkData.length>e.chunkData.currentIndex;){let I=new et(e);if(t.length>0){let s=I.instrumentZoneIndex-t[t.length-1].instrumentZoneIndex;t[t.length-1].getInstrumentZones(s,A)}t.push(I)}return t.length>1&&t.pop(),t}var tt=class{constructor(A,t){this.generatorZoneStartIndex=T(A,2),this.modulatorZoneStartIndex=T(A,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.zoneID=t,this.keyRange={min:0,max:127},this.velRange={min:0,max:127},this.isGlobal=!0,this.useCount=0,this.generators=[],this.modulators=[]}deleteZone(){this.useCount--,!this.isGlobal&&this.sample.useCount--}setZoneSize(A,t){this.modulatorZoneSize=A,this.generatorZoneSize=t}getGenerators(A){for(let t=this.generatorZoneStartIndex;t<this.generatorZoneStartIndex+this.generatorZoneSize;t++)this.generators.push(A[t])}getModulators(A){for(let t=this.modulatorZoneStartIndex;t<this.modulatorZoneStartIndex+this.modulatorZoneSize;t++)this.modulators.push(A[t])}getSample(A){let t=this.generators.find(I=>I.generatorType===B.sampleID);t&&(this.sample=A[t.generatorValue],this.isGlobal=!1,this.sample.useCount++)}getKeyRange(){let A=this.generators.find(t=>t.generatorType===B.keyRange);A&&(this.keyRange.min=A.generatorValue&127,this.keyRange.max=A.generatorValue>>8&127)}getVelRange(){let A=this.generators.find(t=>t.generatorType===B.velRange);A&&(this.velRange.min=A.generatorValue&127,this.velRange.max=A.generatorValue>>8&127)}};function tI(e,A,t,I){let s=[],n=0;for(;e.chunkData.length>e.chunkData.currentIndex;){let i=new tt(e.chunkData,n);if(s.length>0){let a=i.modulatorZoneStartIndex-s[s.length-1].modulatorZoneStartIndex,h=i.generatorZoneStartIndex-s[s.length-1].generatorZoneStartIndex;s[s.length-1].setZoneSize(a,h),s[s.length-1].getGenerators(A),s[s.length-1].getModulators(t),s[s.length-1].getSample(I),s[s.length-1].getKeyRange(),s[s.length-1].getVelRange()}s.push(i),n++}return s.length>1&&s.pop(),s}var It=class{constructor(A,t){this.generatorZoneStartIndex=T(A,2),this.modulatorZoneStartIndex=T(A,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.zoneID=t,this.keyRange={min:0,max:127},this.velRange={min:0,max:127},this.isGlobal=!0,this.generators=[],this.modulators=[]}setZoneSize(A,t){this.modulatorZoneSize=A,this.generatorZoneSize=t}deleteZone(){this.isGlobal||this.instrument.removeUseCount()}getGenerators(A){for(let t=this.generatorZoneStartIndex;t<this.generatorZoneStartIndex+this.generatorZoneSize;t++)this.generators.push(A[t])}getModulators(A){for(let t=this.modulatorZoneStartIndex;t<this.modulatorZoneStartIndex+this.modulatorZoneSize;t++)this.modulators.push(A[t])}getInstrument(A){let t=this.generators.find(I=>I.generatorType===B.instrument);t&&(this.instrument=A[t.generatorValue],this.instrument.addUseCount(),this.isGlobal=!1)}getKeyRange(){let A=this.generators.find(t=>t.generatorType===B.keyRange);A&&(this.keyRange.min=A.generatorValue&127,this.keyRange.max=A.generatorValue>>8&127)}getVelRange(){let A=this.generators.find(t=>t.generatorType===B.velRange);A&&(this.velRange.min=A.generatorValue&127,this.velRange.max=A.generatorValue>>8&127)}};function II(e,A,t,I){let s=[],n=0;for(;e.chunkData.length>e.chunkData.currentIndex;){let i=new It(e.chunkData,n);if(s.length>0){let a=i.modulatorZoneStartIndex-s[s.length-1].modulatorZoneStartIndex,h=i.generatorZoneStartIndex-s[s.length-1].generatorZoneStartIndex;s[s.length-1].setZoneSize(a,h),s[s.length-1].getGenerators(A),s[s.length-1].getModulators(t),s[s.length-1].getInstrument(I),s[s.length-1].getKeyRange(),s[s.length-1].getVelRange()}s.push(i),n++}return s.length>1&&s.pop(),s}var st=class{constructor(A){this.presetName=z(A.chunkData,20).trim().replace(/\d{3}:\d{3}/,""),this.program=T(A.chunkData,2),this.bank=T(A.chunkData,2),this.presetZoneStartIndex=T(A.chunkData,2),this.presetZonesAmount=0,this.presetZones=[],this.foundSamplesAndGenerators=[];for(let t=0;t<128;t++)this.foundSamplesAndGenerators[t]=[];this.library=T(A.chunkData,4),this.genre=T(A.chunkData,4),this.morphology=T(A.chunkData,4)}getPresetZones(A,t){this.presetZonesAmount=A;for(let I=this.presetZoneStartIndex;I<this.presetZonesAmount+this.presetZoneStartIndex;I++)this.presetZones.push(t[I])}deletePreset(){this.presetZones.forEach(A=>A.deleteZone()),this.presetZones.length=0}deleteZone(A){this.presetZones[A].deleteZone(),this.presetZones.splice(A,1)}preload(A,t){for(let I=A;I<t+1;I++)for(let s=0;s<128;s++)this.getSamplesAndGenerators(I,s).forEach(n=>{n.sample.isSampleLoaded||n.sample.getAudioData()})}preloadSpecific(A,t){this.getSamplesAndGenerators(A,t).forEach(I=>{I.sample.isSampleLoaded||I.sample.getAudioData()})}getSamplesAndGenerators(A,t){let I=this.foundSamplesAndGenerators[A][t];if(I)return I;function s(Q,u,p){return p>=Q&&p<=u}function n(Q,u){return Q.modulatorSource===u.modulatorSource&&Q.modulatorDestination===u.modulatorDestination&&Q.modulationSecondarySrc===u.modulationSecondarySrc&&Q.transformType===u.transformType}function i(Q,u){Q.push(...u.filter(p=>!Q.find(Y=>Y.generatorType===p.generatorType)))}function a(Q,u){Q.push(...u.filter(p=>!Q.find(Y=>n(p,Y))))}let h=[],d=this.presetZones[0].isGlobal?[...this.presetZones[0].generators]:[],f=this.presetZones[0].isGlobal?[...this.presetZones[0].modulators]:[];return this.presetZones.filter(Q=>s(Q.keyRange.min,Q.keyRange.max,A)&&s(Q.velRange.min,Q.velRange.max,t)&&!Q.isGlobal).forEach(Q=>{let u=Q.generators,p=Q.modulators,Y=Q.instrument.instrumentZones[0].isGlobal?[...Q.instrument.instrumentZones[0].generators]:[],M=Q.instrument.instrumentZones[0].isGlobal?[...Q.instrument.instrumentZones[0].modulators]:[];Q.instrument.instrumentZones.filter(q=>s(q.keyRange.min,q.keyRange.max,A)&&s(q.velRange.min,q.velRange.max,t)&&!q.isGlobal).forEach(q=>{let x=[...q.generators],V=[...q.modulators];i(u,d),i(x,Y),a(p,f),a(V,M),a(V,Wt);let X=[...V];for(let g=0;g<p.length;g++){let v=p[g],j=X.findIndex(IA=>n(v,IA));j!==-1?X[j]=X[j].sumTransform(v):X.push(v)}h.push({instrumentGenerators:x,presetGenerators:u,modulators:X,sample:q.sample,sampleID:q.generators.find(g=>g.generatorType===B.sampleID).generatorValue})})}),this.foundSamplesAndGenerators[A][t]=h,h}};function sI(e,A){let t=[];for(;e.chunkData.length>e.chunkData.currentIndex;){let I=new st(e);if(t.length>0){let s=I.presetZoneStartIndex-t[t.length-1].presetZoneStartIndex;t[t.length-1].getPresetZones(s,A)}t.push(I)}return t.length>1&&t.pop(),t}function oI(){let e=4;for(let I of this.instruments)e+=I.instrumentZones.reduce((s,n)=>(n.generators=n.generators.filter(i=>i.generatorType!==B.sampleID&&i.generatorType!==B.keyRange&&i.generatorType!==B.velRange),(n.velRange.max!==127||n.velRange.min!==0)&&n.generators.unshift({generatorType:B.velRange,generatorValue:n.velRange.max<<8|n.velRange.min}),(n.keyRange.max!==127||n.keyRange.min!==0)&&n.generators.unshift({generatorType:B.keyRange,generatorValue:n.keyRange.max<<8|n.keyRange.min}),n.isGlobal||n.generators.push({generatorType:B.sampleID,generatorValue:this.samples.indexOf(n.sample)}),n.generators.length*4+s),0);let A=new U(e),t=0;for(let I of this.instruments)for(let s of I.instrumentZones){s.generatorZoneStartIndex=t;for(let n of s.generators)G(A,n.generatorType),G(A,n.generatorValue),t++}return iA(A,0),Z(new K("igen",A.length,A))}function gI(e,A,t,I,s){let n=this.samples.map((d,f)=>{t&&d.compressSample(I,s);let c=d.getRawData();return m(`%cEncoded sample %c${f}. ${d.sampleName}%c of %c${this.samples.length}`,C.info,C.recognized,C.info,C.recognized),c}),i=this.samples.reduce((d,f,c)=>d+n[c].length+46,0),a=new U(i);this.samples.forEach((d,f)=>{let c=n[f],Q,u,p=c.length;d.isCompressed?(Q=a.currentIndex,u=Q+c.length):(Q=a.currentIndex/2,u=Q+c.length/2,p+=46),e.push(Q),a.set(c,a.currentIndex),a.currentIndex+=p,A.push(u)});let h=Z(new K("smpl",a.length,a),new U([115,100,116,97]));return Z(new K("LIST",h.length,h))}function nI(e,A){let I=new U(46*(this.samples.length+1));return this.samples.forEach((s,n)=>{uA(I,s.sampleName,20);let i=e[n];iA(I,i);let a=A[n];iA(I,a);let h=s.sampleLoopStartIndex/2+i,d=s.sampleLoopEndIndex/2+i;s.isCompressed&&(h-=i,d-=i),iA(I,h),iA(I,d),iA(I,s.sampleRate),I[I.currentIndex++]=s.samplePitch,I[I.currentIndex++]=s.samplePitchCorrection,G(I,s.sampleLink),G(I,s.sampleType)}),uA(I,"EOS",46),Z(new K("shdr",I.length,I))}function rI(){let e=10;for(let I of this.instruments)e+=I.instrumentZones.reduce((s,n)=>n.modulators.length*10+s,0);let A=new U(e),t=0;for(let I of this.instruments)for(let s of I.instrumentZones){s.modulatorZoneStartIndex=t;for(let n of s.modulators)G(A,n.modulatorSource),G(A,n.modulatorDestination),G(A,n.transformAmount),G(A,n.modulationSecondarySrc),G(A,n.transformType),t++}return oe(A,0,10),Z(new K("imod",A.length,A))}function iI(){let e=this.instruments.reduce((n,i)=>i.instrumentZones.length*4+n,4),A=new U(e),t=0,I=0,s=0;for(let n of this.instruments){n.instrumentZoneIndex=t;for(let i of n.instrumentZones)i.zoneID=t,G(A,I),G(A,s),I+=i.generators.length,s+=i.modulators.length,t++}return G(A,I),G(A,s),Z(new K("ibag",A.length,A))}function CI(){let e=this.instruments.length*22+22,A=new U(e),t=0,I=0;for(let s of this.instruments)uA(A,s.instrumentName,20),G(A,t),t+=s.instrumentZones.length,s.instrumentID=I,I++;return uA(A,"EOI",20),G(A,t),Z(new K("inst",A.length,A))}function EI(){let e=4;for(let I of this.presets)e+=I.presetZones.reduce((s,n)=>(n.generators=n.generators.filter(i=>i.generatorType!==B.instrument&&i.generatorType!==B.keyRange&&i.generatorType!==B.velRange),(n.velRange.max!==127||n.velRange.min!==0)&&n.generators.unshift({generatorType:B.velRange,generatorValue:n.velRange.max<<8|n.velRange.min}),(n.keyRange.max!==127||n.keyRange.min!==0)&&n.generators.unshift({generatorType:B.keyRange,generatorValue:n.keyRange.max<<8|n.keyRange.min}),n.isGlobal||n.generators.push({generatorType:B.instrument,generatorValue:this.instruments.indexOf(n.instrument)}),n.generators.length*4+s),0);let A=new U(e),t=0;for(let I of this.presets)for(let s of I.presetZones){s.generatorZoneStartIndex=t;for(let n of s.generators)G(A,n.generatorType),G(A,n.generatorValue);t+=s.generators.length}return G(A,0),G(A,0),Z(new K("pgen",A.length,A))}function BI(){let e=10;for(let I of this.presets)e+=I.presetZones.reduce((s,n)=>n.modulators.length*10+s,0);let A=new U(e),t=0;for(let I of this.presets)for(let s of I.presetZones){s.modulatorZoneStartIndex=t;for(let n of s.modulators)G(A,n.modulatorSource),G(A,n.modulatorDestination),G(A,n.transformAmount),G(A,n.modulationSecondarySrc),G(A,n.transformType),t++}return oe(A,0,10),Z(new K("pmod",A.length,A))}function aI(){let e=this.presets.reduce((n,i)=>i.presetZones.length*4+n,4),A=new U(e),t=0,I=0,s=0;for(let n of this.presets){n.presetZoneStartIndex=t;for(let i of n.presetZones)i.zoneID=t,G(A,I),G(A,s),I+=i.generators.length,s+=i.modulators.length,t++}return G(A,I),G(A,s),Z(new K("pbag",A.length,A))}function QI(){let e=this.presets.length*38+38,A=new U(e),t=0;for(let I of this.presets)uA(A,I.presetName,20),G(A,I.program),G(A,I.bank),G(A,t),iA(A,I.library),iA(A,I.genre),iA(A,I.morphology),t+=I.presetZones.length;return uA(A,"EOP",20),G(A,0),G(A,0),G(A,t),iA(A,0),iA(A,0),iA(A,0),Z(new K("phdr",A.length,A))}var js={compress:!1,compressionQuality:.5,compressionFunction:void 0};function hI(e=js){if(e.compress&&typeof e.compressionFunction!="function")throw new TypeError("No compression function supplied but compression enabled.");HA("%cSaving soundfont...",C.info),m(`%cCompression: %c${e?.compress||"false"}%c quality: %c${e?.compressionQuality||"none"}`,C.info,C.recognized,C.info,C.recognized),m("%cWriting INFO...",C.info);let A=[];this.soundFontInfo.ISFT="SpessaSynth",e?.compress&&(this.soundFontInfo.ifil="3.0");for(let[V,X]of Object.entries(this.soundFontInfo))if(V==="ifil"||V==="iver"){let g=parseInt(X.split(".")[0]),v=parseInt(X.split(".")[1]),j=new U(4);G(j,g),G(j,v),A.push(Z(new K(V,4,j)))}else{let g=new U(X.length);uA(g,X),A.push(Z(new K(V,X.length,g)))}let t=ce([new U([73,78,70,79]),...A]),I=Z(new K("LIST",t.length,t));m("%cWriting SDTA...",C.info);let s=[],n=[],i=gI.call(this,s,n,e?.compress,e?.compressionQuality||.5,e.compressionFunction);m("%cWriting PDTA...",C.info),m("%cWriting SHDR...",C.info);let a=nI.call(this,s,n);m("%cWriting IGEN...",C.info);let h=oI.call(this);m("%cWriting IMOD...",C.info);let d=rI.call(this);m("%cWriting IBAG...",C.info);let f=iI.call(this);m("%cWriting INST...",C.info);let c=CI.call(this),Q=EI.call(this);m("%cWriting PMOD...",C.info);let u=BI.call(this);m("%cWriting PBAG...",C.info);let p=aI.call(this);m("%cWriting PHDR...",C.info);let Y=QI.call(this),M=ce([new U([112,100,116,97]),Y,p,u,Q,c,f,d,h,a]),L=Z(new K("LIST",M.length,M));m("%cWriting the output file...",C.info);let q=ce([new U([115,102,98,107]),I,i,L]),x=Z(new K("RIFF",q.length,q));return m(`%cSaved succesfully! Final file size: %c${x.length}`,C.info,C.recognized),sA(),x}var PA=class e{constructor(A){if(A.presets){this.presets=A.presets,this.soundFontInfo=A.info;return}if(this.dataArray=new U(A),Pt("%cParsing SoundFont...",C.info),!this.dataArray)throw sA(),new TypeError("No data!");let t=oA(this.dataArray,!1);this.verifyHeader(t,"riff"),this.verifyText(z(this.dataArray,4),"sfbk");let I=oA(this.dataArray);for(this.verifyHeader(I,"list"),z(I.chunkData,4),this.soundFontInfo={};I.chunkData.length>I.chunkData.currentIndex;){let g=oA(I.chunkData),v;switch(g.header.toLowerCase()){case"ifil":case"iver":v=`${T(g.chunkData,2)}.${T(g.chunkData,2)}`;break;case"icmt":v=z(g.chunkData,g.chunkData.length,void 0,!1);break;default:v=z(g.chunkData,g.chunkData.length)}m(`%c"${g.header}": %c"${v}"`,C.info,C.recognized),this.soundFontInfo[g.header]=v}let s=oA(this.dataArray,!1);this.verifyHeader(s,"list"),this.verifyText(z(this.dataArray,4),"sdta"),m("%cVerifying smpl chunk...",C.warn);let n=oA(this.dataArray,!1);this.verifyHeader(n,"smpl"),this.sampleDataStartIndex=this.dataArray.currentIndex,m(`%cSkipping sample chunk, length: %c${s.size-12}`,C.info,C.value),this.dataArray.currentIndex+=s.size-12,m("%cLoading preset data chunk...",C.warn);let i=oA(this.dataArray);this.verifyHeader(i,"list"),z(i.chunkData,4);let a=oA(i.chunkData);this.verifyHeader(a,"phdr");let h=oA(i.chunkData);this.verifyHeader(h,"pbag");let d=oA(i.chunkData);this.verifyHeader(d,"pmod");let f=oA(i.chunkData);this.verifyHeader(f,"pgen");let c=oA(i.chunkData);this.verifyHeader(c,"inst");let Q=oA(i.chunkData);this.verifyHeader(Q,"ibag");let u=oA(i.chunkData);this.verifyHeader(u,"imod");let p=oA(i.chunkData);this.verifyHeader(p,"igen");let Y=oA(i.chunkData);this.verifyHeader(Y,"shdr"),this.dataArray.currentIndex=this.sampleDataStartIndex,this.samples=AI(Y,this.dataArray);let M=ve(p),L=_e(u),q=tI(Q,M,L,this.samples);this.instruments=eI(c,q);let x=ve(f),V=_e(d),X=II(h,x,V,this.instruments);this.presets=sI(a,X),this.presets.sort((g,v)=>g.program-v.program+(g.bank-v.bank)),m(`%cParsing finished! %c"${this.soundFontInfo.INAM}"%c has %c${this.presets.length} %cpresets,
|
|
11
|
-
%c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,C.info,C.recognized,C.info,C.recognized,C.info,C.recognized,C.info,C.recognized,C.info),sA()}removeUnusedElements(){this.instruments.forEach(A=>{A.useCount<1&&A.instrumentZones.forEach(t=>{t.isGlobal||t.sample.useCount--})}),this.instruments=this.instruments.filter(A=>A.useCount>0),this.samples=this.samples.filter(A=>A.useCount>0)}deleteInstrument(A){if(A.useCount>0)throw new Error(`Cannot delete an instrument that has ${A.useCount} usages.`);this.instruments.splice(this.instruments.indexOf(A),1),A.deleteInstrument(),this.removeUnusedElements()}deleteSample(A){if(A.useCount>0)throw new Error(`Cannot delete sample that has ${A.useCount} usages.`);this.samples.splice(this.samples.indexOf(A),1),this.removeUnusedElements()}deletePreset(A){A.deletePreset(),this.presets.splice(this.presets.indexOf(A),1),this.removeUnusedElements()}verifyHeader(A,t){if(A.header.toLowerCase()!==t.toLowerCase())throw sA(),new SyntaxError(`Invalid chunk header! Expected "${t.toLowerCase()}" got "${A.header.toLowerCase()}"`)}verifyText(A,t){if(A.toLowerCase()!==t.toLowerCase())throw sA(),new SyntaxError(`Invalid soundFont! Expected "${t.toLowerCase()}" got "${A.toLowerCase()}"`)}getPreset(A,t){let I=this.presets.find(s=>s.bank===A&&s.program===t);return I||(I=this.presets.find(s=>s.program===t&&s.bank!==128),A===128&&(I=this.presets.find(s=>s.bank===128&&s.program===t),I||(I=this.presets.find(s=>s.bank===128))),I&&J(`%cPreset ${A}.${t} not found. Replaced with %c${I.presetName} (${I.bank}.${I.program})`,C.warn,C.recognized)),I||(J(`Preset ${t} not found. Defaulting to`,this.presets[0].presetName),I=this.presets[0]),I}getPresetByName(A){let t=this.presets.find(I=>I.presetName===A);return t||(J("Preset not found. Defaulting to:",this.presets[0].presetName),t=this.presets[0]),t}static mergeSoundfonts(...A){let t=A.shift(),I=t.presets;for(;A.length;)A.shift().presets.forEach(n=>{I.find(i=>i.bank===n.bank&&i.program===n.program)===void 0&&I.push(n)});return new e({presets:I,info:t.soundFontInfo})}};PA.prototype.write=hI;function lI(e){let A=e.messageData,t=e.channelNumber,I={};switch(t>=0&&(I=this.workletProcessorChannels[t]),e.messageType){case O.noteOn:this.noteOn(t,A[0],A[1],A[2]);break;case O.noteOff:this.noteOff(t,A);break;case O.pitchWheel:this.pitchWheel(t,A[0],A[1]);break;case O.ccChange:this.controllerChange(t,A[0],A[1],A[2]);break;case O.customcCcChange:I.customControllers[A[0]]=A[1];break;case O.killNote:this.killNote(t,A);break;case O.programChange:this.programChange(t,A[0],A[1]);break;case O.channelPressure:this.channelPressure(t,A);break;case O.polyPressure:this.polyPressure(t,A[0],A[1]);break;case O.ccReset:t===KA?this.resetAllControllers():this.resetControllers(t);break;case O.systemExclusive:this.systemExclusive(A);break;case O.setChannelVibrato:if(t===KA)for(let i=0;i<this.workletProcessorChannels.length;i++)A.rate===-1?this.disableAndLockVibrato(i):this.setVibrato(i,A.depth,A.rate,A.delay);A.rate===-1?this.disableAndLockVibrato(t):this.setVibrato(t,A.depth,A.rate,A.delay);break;case O.reloadSoundFont:this.reloadSoundFont(A);break;case O.stopAll:t===KA?this.stopAllChannels(A===1):this.stopAll(t,A===1);break;case O.killNotes:this.voiceKilling(A);break;case O.muteChannel:this.muteChannel(t,A);break;case O.addNewChannel:this.createWorkletChannel(!0);break;case O.debugMessage:this.debugMessage();break;case O.setMasterParameter:let s=A[0],n=A[1];switch(s){case se.masterPan:this.setMasterPan(n);break;case se.mainVolume:this.setMasterGain(n);break;case se.voicesCap:this.voiceCap=n;break}break;case O.setDrums:this.setDrums(t,A);break;case O.transpose:t===KA?this.transposeAllChannels(A[0],A[1]):this.transposeChannel(t,A[0],A[1]);break;case O.highPerformanceMode:this.highPerformanceMode=A;break;case O.lockController:A[0]===KA?I.lockPreset=A[1]:I.lockedControllers[A[0]]=A[1];break;case O.sequencerSpecific:this.sequencer.processMessage(A.messageType,A.messageData);break;case O.requestSynthesizerSnapshot:this.sendSynthesizerSnapshot();break;case O.setLogLevel:Kt(A[0],A[1],A[2],A[3]);break;default:J("Unrecognized event:",A);break}}function cI(e,A=0){switch(e[0]){default:J(`%cUnrecognized SysEx: %c${CA(e)}`,C.warn,C.unrecognized);break;case 126:e[2]===9&&(e[3]===1?(m("%cGM system on",C.info),this.system="gm"):e[3]===3?(m("%cGM2 system on",C.info),this.system="gm2"):(m("%cGM system off, defaulting to GS",C.info),this.system="gs"));break;case 127:if(e[2]===4){let I;switch(e[3]){case 1:let s=e[5]<<7|e[4];this.setMIDIVolume(s/16384),m(`%cMaster Volume. Volume: %c${s}`,C.info,C.value);break;case 2:let i=((e[5]<<7|e[4])-8192)/8192;this.setMasterPan(i),m(`%cMaster Pan. Pan: %c${i}`,C.info,C.value);break;case 3:let a=(e[5]<<7|e[6])-8192;I=Math.floor(a/81.92),this.setMasterTuning(I),m(`%cMaster Fine Tuning. Cents: %c${I}`,C.info,C.value);break;case 4:I=(e[5]-64)*100,this.setMasterTuning(I),m(`%cMaster Coarse Tuning. Cents: %c${I}`,C.info,C.value);break;default:J(`%cUnrecognized MIDI Device Control Real-time message: %c${CA(e)}`,C.warn,C.unrecognized)}}else J(`%cUnrecognized MIDI Real-time message: %c${CA(e)}`,C.warn,C.unrecognized);break;case 65:if(e[2]===66&&e[3]===18){let I=e[7];if(e[6]===127){I===0?(m("%cGS system on",C.info),this.system="gs"):I===127&&(m("%cGS system off, switching to GM2",C.info),this.system="gm2");return}else if(e[4]===64){if((e[5]&16)>0){let s=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][e[5]&15]+A;switch(e[6]){default:break;case 21:let n=I>0&&e[5]>>4;this.setDrums(s,n),m(`%cChannel %c${s}%c ${n?"is now a drum channel":"now isn't a drum channel"}%c via: %c${CA(e)}`,C.info,C.value,C.recognized,C.info,C.value);return;case 22:let i=I-64;this.transposeChannel(s,i),m(`%cChannel %c${s}%c pitch shift. Semitones %c${i}%c, with %c${CA(e)}`,C.info,C.recognized,C.info,C.value,C.info,C.value);return;case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:let a=I-64;m(`%cChannel %c${s}%c tuning. Cents %c${a}%c, with %c${CA(e)}`,C.info,C.recognized,C.info,C.value,C.info,C.value),this.setChannelTuning(s,a)}}else if(e[5]===0&&e[6]===6){m(`%cRoland GS Master Pan set to: %c${I}%c with: %c${CA(e)}`,C.info,C.value,C.info,C.value),this.setMasterPan((I-64)/64);return}else if(e[5]===0&&e[6]===5){let s=I-64;m(`%cRoland GS Master Key-Shift set to: %c${s}%c with: %c${CA(e)}`,C.info,C.value,C.info,C.value),this.setMasterTuning(s*100);return}else if(e[5]===0&&e[6]===4){m(`%cRoland GS Master Volume set to: %c${I}%c with: %c${CA(e)}`,C.info,C.value,C.info,C.value),this.setMIDIVolume(I/127);return}}J(`%cUnrecognized Roland %cGS %cSysEx: %c${CA(e)}`,C.warn,C.recognized,C.warn,C.unrecognized);return}else if(e[2]===22&&e[3]===18&&e[4]===16){this.setMIDIVolume(e[7]/100),m(`%cRoland Master Volume control set to: %c${e[7]}%c via: %c${CA(e)}`,C.info,C.value,C.info,C.value);return}else{J(`%cUnrecognized Roland SysEx: %c${CA(e)}`,C.warn,C.unrecognized);return}case 67:e[2]===76&&e[5]===126&&e[6]===0?(m("%cXG system on",C.info),this.system="xg"):this.system==="xg"&&J(`%cUnrecognized Yamaha SysEx: %c${CA(e)}`,C.warn,C.unrecognized);break}}var ot=new Float32Array(30001);for(let e=0;e<ot.length;e++){let A=-15e3+e;ot[e]=Math.pow(2,A/1200)}function aA(e){return ot[e- -15e3]}var ye=-2e4,dI=16500,gt=new Float32Array(dI-ye+1);for(let e=0;e<gt.length;e++){let A=ye+e;gt[e]=440*Math.pow(2,(A-6900)/1200)}function ge(e){return e<ye||e>dI?440*Math.pow(2,(e-6900)/1200):gt[~~e-ye]}var rt=-1660,$s=1600,nt=new Float32Array(($s-rt)*100+1);for(let e=0;e<nt.length;e++){let A=(rt*100+e)/100;nt[e]=Math.pow(10,-A/20)}function DA(e){return nt[Math.floor((e-rt)*100)]}var fI={attenuation:100,currentAttenuationDb:100,state:0,releaseStartDb:100,attackDuration:0,decayDuration:0,releaseDuration:0,sustainDb:0,delayEnd:0,attackEnd:0,holdEnd:0,decayEnd:0,currentReleaseGain:1},mI=.001,uI=100,Ao=.005;function OA(e){let A=e.volumeEnvelope;if(A.attackDuration=aA(e.modulatedGenerators[B.attackVolEnv]),A.decayDuration=aA(e.modulatedGenerators[B.decayVolEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToVolEnvDecay]),A.releaseDuration=aA(e.modulatedGenerators[B.releaseVolEnv]),A.attenuation=e.modulatedGenerators[B.initialAttenuation]/10,A.sustainDb=e.volumeEnvelope.attenuation+e.modulatedGenerators[B.sustainVolEnv]/10,A.delayEnd=aA(e.modulatedGenerators[B.delayVolEnv])+e.startTime,A.attackEnd=A.attackDuration+A.delayEnd,A.holdEnd=aA(e.modulatedGenerators[B.holdVolEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToVolEnvHold])+A.attackEnd,A.decayEnd=A.decayDuration+A.holdEnd,e.isInRelease)switch(A.state){case 0:A.releaseStartDb=0;break;case 1:let I=(1-(A.attackEnd-e.releaseStartTime)/A.attackDuration)*DA(A.attenuation);A.releaseStartDb=20*Math.log10(I)*-1;break;case 2:A.releaseStartDb=A.attenuation;break;case 3:A.releaseStartDb=(1-(A.decayEnd-e.releaseStartTime)/A.decayDuration)*(A.sustainDb-A.attenuation)+A.attenuation;break;case 4:A.releaseStartDb=A.sustainDb;break;default:A.releaseStartDb=A.currentAttenuationDb}}function pI(e,A,t,I,s,n){let i=I/10,a=e.volumeEnvelope;if(e.isInRelease){let f=n*10,c=a.releaseStartDb+i,Q=t-e.releaseStartTime,u=uI-c,p=a.currentReleaseGain;for(let Y=0;Y<A.length;Y++){let M=Q/a.releaseDuration*u+c;p=DA(M+i),a.currentReleaseGain+=(p-a.currentReleaseGain)*f,A[Y]*=a.currentReleaseGain,Q+=s}a.currentReleaseGain<=Ao&&(e.finished=!0);return}let h=t,d=0;switch(a.state){case 0:for(;h<a.delayEnd;)if(a.currentAttenuationDb=uI,A[d]=0,h+=s,++d>=A.length)return;a.state++;case 1:for(;h<a.attackEnd;){let c=(1-(a.attackEnd-h)/a.attackDuration)*DA(a.attenuation+i);if(A[d]*=c,a.currentAttenuationDb=a.attenuation,h+=s,++d>=A.length)return}a.state++;case 2:for(;h<a.holdEnd;){let f=a.attenuation+i;if(a.currentAttenuationDb+=(f-a.currentAttenuationDb)*n,A[d]*=DA(a.currentAttenuationDb),h+=s,++d>=A.length)return}a.state++;case 3:for(;h<a.decayEnd;){let f=(1-(a.decayEnd-h)/a.decayDuration)*(a.sustainDb-a.attenuation)+a.attenuation+i;if(a.currentAttenuationDb+=(f-a.currentAttenuationDb)*n,A[d]*=DA(a.currentAttenuationDb),h+=s,++d>=A.length)return}a.state++;case 4:for(;;){let f=a.sustainDb+i;if(a.currentAttenuationDb+=(f-a.currentAttenuationDb)*n,A[d]*=DA(a.currentAttenuationDb),++d>=A.length)return}}}var yI={a0:0,a1:0,a2:0,a3:0,a4:0,x1:0,x2:0,y1:0,y2:0,reasonanceCb:0,reasonanceGain:1,cutoffCents:13500,cutoffHz:2e4};function SI(e,A,t){if(!(t>13499)){(e.filter.cutoffCents!==t||e.filter.reasonanceCb!==e.modulatedGenerators[B.initialFilterQ])&&(e.filter.cutoffCents=t,e.filter.reasonanceCb=e.modulatedGenerators[B.initialFilterQ],eo(e));for(let I=0;I<A.length;I++){let s=A[I],n=e.filter.a0*s+e.filter.a1*e.filter.x1+e.filter.a2*e.filter.x2-e.filter.a3*e.filter.y1-e.filter.a4*e.filter.y2;e.filter.x2=e.filter.x1,e.filter.x1=s,e.filter.y2=e.filter.y1,e.filter.y1=n,A[I]=n}}}function eo(e){e.filter.cutoffHz=ge(e.filter.cutoffCents),e.filter.cutoffHz>.45*sampleRate&&(e.filter.cutoffHz=.45*sampleRate);let A=e.filter.reasonanceCb/10-3.01;e.filter.reasonanceGain=DA(-1*A);let t=1/Math.sqrt(e.filter.reasonanceGain),I=2*Math.PI*e.filter.cutoffHz/sampleRate,s=Math.cos(I),n=Math.sin(I)/(2*e.filter.reasonanceGain),i=(1-s)*t,a=i/2,h=a,d=1+n,f=-2*s,c=1-n;e.filter.a0=a/d,e.filter.a1=i/d,e.filter.a2=h/d,e.filter.a3=f/d,e.filter.a4=c/d}var Se=[];function DI(){Se=[]}function to(e,A,t,I){Se[t]=!1,I({channel:e,sampleID:t,sampleData:A.getAudioData()}),Se[t]=!0}function ne(e){if(e===null||typeof e!="object")return e;if(e instanceof Int16Array)return new Int16Array(e);let A=Array.isArray(e)?[]:{};for(let t in e)e.hasOwnProperty(t)&&(typeof e[t]=="object"&&e[t]!==null?A[t]=ne(e[t]):e[t]instanceof Int16Array?A[t]=new Int16Array(e[t]):A[t]=e[t]);return A}function wI(e,A,t,I,s,n,i,a,h=!1){let d,f=a[A][t];return f!==void 0?(d=f.map(ne),d.forEach(c=>{c.startTime=s})):(d=I.getSamplesAndGenerators(A,t).reduce((c,Q)=>{if(Se[Q.sampleID]!==!0&&to(e,Q.sample,Q.sampleID,i),Q.sample.sampleData===void 0)return J(`Discarding invalid sample: ${Q.sample.sampleName}`),c;let u=new Int16Array(60);for(let V=0;V<60;V++)u[V]=Xt(V,Q.presetGenerators,Q.instrumentGenerators);u[B.initialAttenuation]=Math.floor(u[B.initialAttenuation]*.4);let p=Q.sample.samplePitch;u[B.overridingRootKey]>-1&&(p=u[B.overridingRootKey]);let Y=A;u[B.keyNum]>-1&&(Y=u[B.keyNum]);let M=Q.sample.sampleLoopStartIndex/2+(u[B.startloopAddrsOffset]+u[B.startloopAddrsCoarseOffset]*32768),L=Q.sample.sampleLoopEndIndex/2+(u[B.endloopAddrsOffset]+u[B.endloopAddrsCoarseOffset]*32768),q=u[B.sampleModes];L-M<1&&(q=0);let x={sampleID:Q.sampleID,playbackStep:Q.sample.sampleRate/n*Math.pow(2,Q.sample.samplePitchCorrection/1200),cursor:u[B.startAddrsOffset]+u[B.startAddrsCoarseOffset]*32768,rootKey:p,loopStart:M,loopEnd:L,end:Math.floor(Q.sample.sampleData.length)-1+(u[B.endAddrOffset]+u[B.endAddrsCoarseOffset]*32768),loopingMode:q};return u[B.velocity]>-1&&(t=u[B.velocity]),h&&Vt([{Sample:Q.sample.sampleName,Generators:u,Modulators:Q.modulators.map(V=>V.debugString()),Velocity:t,TargetKey:Y,MidiNote:A,WorkletSample:x}]),c.push({filter:ne(yI),generators:u,modulators:Q.modulators,modulatedGenerators:new Int16Array(60),sample:x,velocity:t,midiNote:A,pressure:0,channelNumber:e,startTime:s,targetKey:Y,currentTuningCalculated:1,currentTuningCents:0,releaseStartTime:1/0,finished:!1,isInRelease:!1,currentModEnvValue:0,releaseStartModEnv:1,currentPan:.5,volumeEnvelope:ne(fI)}),c},[]),a[A][t]=d.map(ne)),d}var $=16384,WA=new Float32Array($),_A=new Float32Array($);WA[0]=0;WA[$-1]=1;_A[0]=0;_A[$-1]=1;for(let e=1;e<$-1;e++){let A=-.4166666666666667*Math.log(e/($-1))/Math.LN10;_A[e]=1-A,WA[$-1-e]=A}function ZA(e,A,t,I){switch(e&&(t=1-t),A){case cA.linear:return I?t*2-1:t;case cA.switch:return t=t>.5?1:0,I?t*2-1:t;case cA.concave:return I?(t=t*2-1,t<0?1-WA[~~(t*-$)]-1:WA[~~t*$]):WA[~~(t*$)];case cA.convex:return I?(t=t*2-1,t<0?1-_A[~~(t*-$)]-1:_A[~~(t*$)]):_A[~~(t*$)]}}function FI(e,A,t){if(A.transformAmount===0)return 0;let I;if(A.sourceUsesCC)I=e[A.sourceIndex];else{let h=A.sourceIndex+eA;switch(A.sourceIndex){case H.noController:I=16383;break;case H.noteOnKeyNum:I=t.midiNote<<7;break;case H.noteOnVelocity:I=t.velocity<<7;break;case H.polyPressure:I=t.pressure<<7;break;default:I=e[h];break}}let s=QA[A.sourceCurveType][A.sourcePolarity][A.sourceDirection][I],n;if(A.secSrcUsesCC)n=e[A.secSrcIndex];else{let h=A.secSrcIndex+eA;switch(A.secSrcIndex){case H.noController:n=16383;break;case H.noteOnKeyNum:n=t.midiNote<<7;break;case H.noteOnVelocity:n=t.velocity<<7;break;case H.polyPressure:n=t.pressure<<7;break;default:n=e[h]}}let i=QA[A.secSrcCurveType][A.secSrcPolarity][A.secSrcDirection][n],a=s*i*A.transformAmount;return A.transformType===2?Math.abs(a):a}function xA(e,A,t=-1,I=0){let{modulators:s,generators:n,modulatedGenerators:i}=e;if(t===-1){i.set(n),s.forEach(d=>{i[d.modulatorDestination]+=FI(A,d,e)}),OA(e);return}let a=new Set([B.initialAttenuation,B.delayVolEnv,B.attackVolEnv,B.holdVolEnv,B.decayVolEnv,B.sustainVolEnv,B.releaseVolEnv,B.keyNumToVolEnvHold,B.keyNumToVolEnvDecay]),h=new Set;s.forEach(d=>{if(d.sourceUsesCC===t&&d.sourceIndex===I||d.secSrcUsesCC===t&&d.secSrcIndex===I){let f=d.modulatorDestination;h.has(f)||(i[f]=n[f],s.forEach(c=>{c.modulatorDestination===f&&(i[f]+=FI(A,c,e))}),h.add(f))}}),[...h].some(d=>a.has(d))&&OA(e)}var QA=[];for(let e=0;e<4;e++){QA[e]=[[new Float32Array($),new Float32Array($)],[new Float32Array($),new Float32Array($)]];for(let A=0;A<$;A++)QA[e][0][0][A]=ZA(0,e,A/$,0),isNaN(QA[e][0][0][A])&&(QA[e][0][0][A]=1),QA[e][1][0][A]=ZA(0,e,A/$,1),isNaN(QA[e][1][0][A])&&(QA[e][1][0][A]=1),QA[e][0][1][A]=ZA(1,e,A/$,0),isNaN(QA[e][0][1][A])&&(QA[e][0][1][A]=1),QA[e][1][1][A]=ZA(1,e,A/$,1),isNaN(QA[e][1][1][A])&&(QA[e][1][1][A]=1)}function RI(e,A,t,I=!1,s=!0,n=currentTime){if(t===0){this.noteOff(e,A);return}if(this.highPerformanceMode&&this.totalVoicesAmount>200&&t<40||this.highPerformanceMode&&t<10||this.workletProcessorChannels[e].isMuted||(A+=this.workletProcessorChannels[e].channelTransposeKeyShift,A>127||A<0))return;let i=wI(e,A,t,this.workletProcessorChannels[e].preset,n,sampleRate,h=>this.sampleDump(h.channel,h.sampleID,h.sampleData),this.workletProcessorChannels[e].cachedVoices,I),a=this.workletProcessorChannels[e].voices;i.forEach(h=>{let d=h.generators[B.exclusiveClass];d!==0&&a.forEach(f=>{f.generators[B.exclusiveClass]===d&&(this.releaseVoice(f),f.modulatedGenerators[B.releaseVolEnv]=-7e3,f.modulatedGenerators[B.releaseModEnv]=-7e3,OA(f))}),xA(h,this.workletProcessorChannels[e].midiControllers),h.currentPan=(Math.max(-500,Math.min(500,h.modulatedGenerators[B.pan]))+500)/1e3}),this.totalVoicesAmount+=i.length,this.totalVoicesAmount>this.voiceCap&&this.voiceKilling(i.length),a.push(...i),s&&(this.sendChannelProperties(),this.callEvent("noteon",{midiNote:A-this.workletProcessorChannels[e].channelTransposeKeyShift,channel:e,velocity:t}))}function GI(e,A){let t=this.workletProcessorChannels[e],I=()=>{t.channelVibrato.delay===0&&t.channelVibrato.rate===0&&t.channelVibrato.depth===0&&(t.channelVibrato.depth=50,t.channelVibrato.rate=8,t.channelVibrato.delay=.6)};switch(t.dataEntryState){default:case BA.Idle:break;case BA.NRPFine:switch(t.NRPCoarse){default:if(A===64)return;J(`%cUnrecognized NRPN for %c${e}%c: %c(0x${t.NRPCoarse.toString(16).toUpperCase()} 0x${t.NRPFine.toString(16).toUpperCase()})%c data value: %c${A}`,C.warn,C.recognized,C.warn,C.unrecognized,C.warn,C.value);break;case 1:switch(t.NRPFine){default:if(A===64)return;J(`%cUnrecognized NRPN for %c${e}%c: %c(0x${t.NRPCoarse.toString(16)} 0x${t.NRPFine.toString(16)})%c data value: %c${A}`,C.warn,C.recognized,C.warn,C.unrecognized,C.warn,C.value);break;case 8:if(t.lockVibrato||A===64)return;I(),t.channelVibrato.rate=A/64*8,m(`%cVibrato rate for channel %c${e}%c is now set to %c${t.channelVibrato.rate}%cHz.`,C.info,C.recognized,C.info,C.value,C.info);break;case 9:if(t.lockVibrato||A===64)return;I(),t.channelVibrato.depth=A/2,m(`%cVibrato depth for %c${e}%c is now set to %c${t.channelVibrato.depth}%c cents range of detune.`,C.info,C.recognized,C.info,C.value,C.info);break;case 10:if(t.lockVibrato||A===64)return;I(),t.channelVibrato.delay=A/64/3,m(`%cVibrato delay for %c${e}%c is now set to %c${t.channelVibrato.delay}%c seconds.`,C.info,C.recognized,C.info,C.value,C.info);break;case 32:let n=A;this.controllerChange(e,y.brightness,A),m(`%cFilter cutoff for %c${e}%c is now set to %c${n}`,C.info,C.recognized,C.info,C.value)}break;case 29:if(!t.drumChannel)return;let s=A;this.controllerChange(e,y.effects1Depth,s),m(`%cGS Drum reverb for %c${e}%c: %c${s}`,C.info,C.recognized,C.info,C.value);break}break;case BA.RPCoarse:case BA.RPFine:switch(t.RPValue){default:J(`%cUnrecognized RPN for %c${e}%c: %c(0x${t.RPValue.toString(16)})%c data value: %c${A}`,C.warn,C.recognized,C.warn,C.unrecognized,C.warn,C.value);break;case 0:t.midiControllers[eA+H.pitchWheelRange]=A<<7,m(`%cChannel ${e} bend range. Semitones: %c${A}`,C.info,C.value);break;case 2:this.setChannelTuningSemitones(e,A-64);break;case 1:this.setChannelTuning(e,A-64,!1);break;case 5:this.setModulationDepth(e,A*100);break;case 16383:this.resetParameters(e);break}}}function kI(e,A){let t=this.workletProcessorChannels[e];switch(t.dataEntryState){default:break;case BA.RPCoarse:case BA.RPFine:switch(t.RPValue){default:break;case 0:if(A===0)break;t.midiControllers[eA+H.pitchWheelRange]|=A;let I=(t.midiControllers[eA+H.pitchWheelRange]>>7)+A/127;m(`%cChannel ${e} bend range. Semitones: %c${I}`,C.info,C.value);break;case 1:let n=t.customControllers[AA.channelTuning]<<7|A;this.setChannelTuning(e,n*.01220703125);break;case 5:let a=t.customControllers[AA.modulationMultiplier]*50+A/128*100;this.setModulationDepth(e,a);break;case 16383:this.resetParameters(e);break}}}function NI(e,A){if(A>127||A<0){J("Received a noteOn for note",A,"Ignoring.");return}if(A+=this.workletProcessorChannels[e].channelTransposeKeyShift,this.highPerformanceMode&&!this.workletProcessorChannels[e].drumChannel){this.killNote(e,A);return}this.workletProcessorChannels[e].voices.forEach(I=>{I.midiNote!==A||I.isInRelease===!0||(this.workletProcessorChannels[e].holdPedal?this.workletProcessorChannels[e].sustainedVoices.push(I):this.releaseVoice(I))}),this.callEvent("noteoff",{midiNote:A-this.workletProcessorChannels[e].channelTransposeKeyShift,channel:e})}function MI(e,A){this.workletProcessorChannels[e].voices.forEach(t=>{t.midiNote===A&&(t.modulatedGenerators[B.releaseVolEnv]=-12e3,this.releaseVoice(t))})}function UI(e,A=!1){let t=this.workletProcessorChannels[e].voices;A?(t.length=0,this.workletProcessorChannels[e].sustainedVoices.length=0,this.sendChannelProperties()):(t.forEach(I=>{I.isInRelease||this.releaseVoice(I)}),this.workletProcessorChannels[e].sustainedVoices.forEach(I=>{this.releaseVoice(I)}))}function xI(e=!1){m("%cStop all received!",C.info);for(let A=0;A<this.workletProcessorChannels.length;A++)this.stopAll(A,e);this.callEvent("stopall",void 0)}function bI(e,A,t,I=!1){let s=this.workletProcessorChannels[e];if(A>=y.lsbForControl1ModulationWheel&&A<=y.lsbForControl13EffectControl2&&A!==y.lsbForControl6DataEntry){let n=A-32;if(s.lockedControllers[n])return;s.midiControllers[n]=s.midiControllers[n]&16256|t&127,s.voices.forEach(i=>xA(i,s.midiControllers,1,n))}switch(A){case y.allNotesOff:this.stopAll(e);break;case y.allSoundOff:this.stopAll(e,!0);break;case y.bankSelect:let n=t;if(!I){switch(this.system){case"gm":m(`%cIgnoring the Bank Select (${t}), as the synth is in GM mode.`,C.info);return;case"xg":n===120||n===126||n===127?this.setDrums(e,!0):this.setDrums(e,!1);break;case"gm2":n===120&&(s.drumChannel=!0,this.callEvent("drumchange",{channel:e,isDrumChannel:!0}))}s.drumChannel&&(n=128),n===128&&!s.drumChannel&&(n=s.midiControllers[y.bankSelect])}s.midiControllers[y.bankSelect]=n;break;case y.lsbForControl0BankSelect:this.system==="xg"?s.drumChannel||t!==127&&(s.midiControllers[y.bankSelect]=t):this.system==="gm2"&&(s.midiControllers[y.bankSelect]=t);break;case y.RPNLsb:s.RPValue=s.RPValue<<7|t,s.dataEntryState=BA.RPFine;break;case y.RPNMsb:s.RPValue=t,s.dataEntryState=BA.RPCoarse;break;case y.NRPNMsb:s.NRPCoarse=t,s.dataEntryState=BA.NRPCoarse;break;case y.NRPNLsb:s.NRPFine=t,s.dataEntryState=BA.NRPFine;break;case y.dataEntryMsb:this.dataEntryCoarse(e,t);break;case y.lsbForControl6DataEntry:this.dataEntryFine(e,t);break;case y.resetAllControllers:this.resetControllers(e);break;case y.sustainPedal:t>=64?s.holdPedal=!0:(s.holdPedal=!1,s.sustainedVoices.forEach(i=>{this.releaseVoice(i)}),s.sustainedVoices=[]);break;default:if(s.lockedControllers[A])return;s.midiControllers[A]=t<<7,s.voices.forEach(i=>xA(i,s.midiControllers,1,A)),this.callEvent("controllerchange",{channel:e,controllerNumber:A,controllerValue:t});break}}function LI(e){this.midiVolume=e,this.setMasterPan(this.pan)}function HI(e){this.masterGain=e*it,this.setMasterPan(this.pan)}function YI(e){this.pan=e,e=e/2+.5,this.panLeft=(1-e)*this.currentGain,this.panRight=e*this.currentGain}function JI(e,A){A&&this.stopAll(e,!0),this.workletProcessorChannels[e].isMuted=A,this.sendChannelProperties(),this.callEvent("mutechannel",{channel:e,isMuted:A})}function TI(e,A){this.enableEventSystem&&this.post({messageType:lA.eventCall,messageData:{eventName:e,eventData:A}})}function qI(e){this.enableEventSystem&&this.port.postMessage(e)}function KI(){if(!this.enableEventSystem)return;let e=this.workletProcessorChannels.map(A=>{let t=(A.midiControllers[eA+H.pitchWheelRange]>>7)+(A.midiControllers[eA+H.pitchWheelRange]&127)/127;return{voicesAmount:A.voices.length,pitchBend:A.midiControllers[eA+H.pitchWheel],pitchBendRangeSemitones:t,isMuted:A.isMuted,isDrum:A.drumChannel}});this.post({messageType:lA.channelProperties,messageData:e})}function VI(e,A=!1){this.transposition=0;for(let t=0;t<this.workletProcessorChannels.length;t++)this.transposeChannel(t,e,A);this.transposition=e}function PI(e,A,t=!1){let I=this.workletProcessorChannels[e];I.drumChannel||(A+=this.transposition);let s=Math.trunc(A),n=I.channelTransposeKeyShift+I.customControllers[AA.channelTransposeFine]/100;I.drumChannel&&!t||A===n||(s!==I.channelTransposeKeyShift&&this.stopAll(e,!1),I.channelTransposeKeyShift=s,I.customControllers[AA.channelTransposeFine]=(A-s)*100)}function OI(e,A,t=!0){let I=this.workletProcessorChannels[e];A=Math.round(A),I.customControllers[AA.channelTuning]=A,t&&m(`%cChannel ${e} fine tuning. Cents: %c${A}`,C.info,C.value)}function ZI(e,A){let t=this.workletProcessorChannels[e];A=Math.round(A),t.customControllers[AA.channelTuningSemitones]=A,m(`%cChannel ${e} coarse tuning. Semitones: %c${A}`,C.info,C.value)}function vI(e){e=Math.round(e);for(let A=0;A<this.workletProcessorChannels.length;A++)this.workletProcessorChannels[A].customControllers[AA.masterTuning]=e}function XI(e,A){let t=this.workletProcessorChannels[e];A=Math.round(A),m(`%cChannel ${e} modulation depth. Cents: %c${A}`,C.info,C.value),t.customControllers[AA.modulationMultiplier]=A/50}function WI(e,A,t){if(this.workletProcessorChannels[e].lockedControllers[eA+H.pitchWheel])return;let I=t|A<<7;this.callEvent("pitchwheel",{channel:e,MSB:A,LSB:t}),this.workletProcessorChannels[e].midiControllers[eA+H.pitchWheel]=I,this.workletProcessorChannels[e].voices.forEach(s=>xA(s,this.workletProcessorChannels[e].midiControllers,0,H.pitchWheel)),this.sendChannelProperties()}function _I(e,A){let t=this.workletProcessorChannels[e];t.midiControllers[eA+H.channelPressure]=A<<7,this.workletProcessorChannels[e].voices.forEach(I=>xA(I,t.midiControllers,0,H.channelPressure)),this.callEvent("channelpressure",{channel:e,pressure:A})}function zI(e,A,t){this.workletProcessorChannels[e].voices.forEach(I=>{I.midiNote===A&&(I.pressure=t,xA(I,this.workletProcessorChannels[e].midiControllers,0,H.polyPressure))}),this.callEvent("polypressure",{channel:e,midiNote:A,pressure:t})}function jI(e,A,t=!1){let I=this.workletProcessorChannels[e];if(I.lockPreset)return;let s=I.drumChannel?128:I.midiControllers[y.bankSelect],n=this.soundfont.getPreset(s,A);this.setPreset(e,n),this.callEvent("programchange",{channel:e,program:n.program,bank:n.bank,userCalled:t})}function $I(e,A){if(!this.workletProcessorChannels[e].lockPreset){this.workletProcessorChannels[e].preset=A,this.workletProcessorChannels[e].cachedVoices=[];for(let t=0;t<128;t++)this.workletProcessorChannels[e].cachedVoices.push([])}}function As(e,A){let t=this.workletProcessorChannels[e];t.lockPreset||(A?(t.channelTransposeKeyShift=0,t.drumChannel=!0,this.setPreset(e,this.soundfont.getPreset(128,t.preset.program))):(t.drumChannel=!1,this.setPreset(e,this.soundfont.getPreset(t.midiControllers[y.bankSelect],t.preset.program))),this.callEvent("drumchange",{channel:e,isDrumChannel:t.drumChannel}),this.sendChannelProperties())}function es(){this.callEvent("presetlistchange",this.soundfont.presets.map(e=>({presetName:e.presetName,bank:e.bank,program:e.program})))}function ts(e){this.stopAllChannels(!0),delete this.soundfont;try{this.soundfont=new PA(e)}catch(A){this.post({messageType:lA.soundfontError,messageData:A});return}DI(),delete this.workletDumpedSamplesList,this.workletDumpedSamplesList=[],this.defaultPreset=this.soundfont.getPreset(0,0),this.drumPreset=this.soundfont.getPreset(128,0);for(let A=0;A<this.workletProcessorChannels.length;A++){let t=this.workletProcessorChannels[A];t.cachedVoices=[];for(let I=0;I<128;I++)t.cachedVoices.push([]);t.lockPreset=!1,this.programChange(A,t.preset.program)}this.post({messageType:lA.ready,messageData:void 0}),this.sendPresetList(),m("%cSpessaSynth is ready!",C.recognized)}function Is(e,A,t){this.workletDumpedSamplesList[A]=t,this.workletProcessorChannels[e].voices.forEach(I=>{if(I.sample.sampleID===A){if(I.sample.end=t.length-1+I.generators[B.endAddrOffset]+I.generators[B.endAddrsCoarseOffset]*32768,I.sample.cursor=I.sample.playbackStep*sampleRate*(currentTime-I.startTime),I.sample.loopingMode===0){if(I.sample.cursor>=I.sample.end){I.finished=!0;return}}else I.sample.cursor>I.sample.loopEnd&&(I.sample.cursor=I.sample.cursor%(I.sample.loopEnd-I.sample.loopStart)+I.sample.loopStart-1);I.startTime=currentTime}})}function ss(e){this.workletProcessorChannels[e].lockVibrato=!0,this.workletProcessorChannels[e].channelVibrato.rate=0,this.workletProcessorChannels[e].channelVibrato.delay=0,this.workletProcessorChannels[e].channelVibrato.depth=0}function os(e,A,t,I){this.workletProcessorChannels[e].lockVibrato||(this.workletProcessorChannels[e].channelVibrato.rate=t,this.workletProcessorChannels[e].channelVibrato.delay=I,this.workletProcessorChannels[e].channelVibrato.depth=A)}var wA={loadNewSongList:0,pause:1,stop:2,play:3,setTime:4,changeMIDIMessageSending:5,setPlaybackRate:6,setLoop:7,changeSong:8,getMIDI:9},fA={midiEvent:0,songChange:1,textEvent:2,timeChange:3,pause:4,getMIDI:5,midiError:6};function JA(e,A){let t=0;for(let I=8*(A-1);I>=0;I-=8)t|=e[e.currentIndex++]<<I;return t>>>0}function gs(e,A){if(this.ignoreEvents)return;if(this.sendMIDIMessages&&e.messageStatusByte>=128){this.sendMIDIMessage([e.messageStatusByte,...e.messageData]);return}let t=Ie(e.messageStatusByte),I=this.midiPortChannelOffsets[this.midiPorts[A]]||0;switch(t.channel+=I,t.status){case S.noteOn:let s=e.messageData[1];if(s>0)this.synth.noteOn(t.channel,e.messageData[0],s),this.playingNotes.push({midiNote:e.messageData[0],channel:t.channel,velocity:s,startTime:this.currentTime});else{this.synth.noteOff(t.channel,e.messageData[0]);let a=this.playingNotes.findIndex(h=>h.midiNote===e.messageData[0]&&h.channel===t.channel);a!==-1&&this.playingNotes.splice(a,1)}break;case S.noteOff:this.synth.noteOff(t.channel,e.messageData[0]);let n=this.playingNotes.findIndex(a=>a.midiNote===e.messageData[0]&&a.channel===t.channel);n!==-1&&this.playingNotes.splice(n,1);break;case S.pitchBend:this.synth.pitchWheel(t.channel,e.messageData[1],e.messageData[0]);break;case S.controllerChange:let i=e.messageData[1];this.midiData.embeddedSoundFont&&e.messageData[0]===y.bankSelect&&i--,this.synth.controllerChange(t.channel,e.messageData[0],i);break;case S.programChange:this.synth.programChange(t.channel,e.messageData[0]);break;case S.polyPressure:this.synth.polyPressure(t.channel,e.messageData[0],e.messageData[1]);break;case S.channelPressure:this.synth.channelPressure(t.channel,e.messageData[0]);break;case S.systemExclusive:this.synth.systemExclusive(e.messageData,I);break;case S.setTempo:this.oneTickToSeconds=60/(Io(e)*this.midiData.timeDivision),this.oneTickToSeconds===0&&(this.oneTickToSeconds=60/(120*this.midiData.timeDivision),J("invalid tempo! falling back to 120 BPM"));break;case S.timeSignature:case S.endOfTrack:case S.midiChannelPrefix:case S.songPosition:case S.activeSensing:case S.keySignature:break;case S.text:case S.lyric:case S.copyright:case S.trackName:case S.marker:case S.cuePoint:case S.instrumentName:this.post(fA.textEvent,[e.messageData,t.status]);break;case S.midiPort:this.assignMIDIPort(A,e.messageData[0]);break;case S.reset:this.synth.stopAllChannels(),this.synth.resetAllControllers();break;default:J(`%cUnrecognized Event: %c${e.messageStatusByte}%c status byte: %c${Object.keys(S).find(a=>S[a]===t.status)}`,C.warn,C.unrecognized,C.warn,C.value);break}}function ns(){for(let e=0;e<16;e++)this.synth.createWorkletChannel(!0),e===kA&&this.synth.setDrums(this.synth.workletProcessorChannels.length-1,!0)}function Io(e){return e.messageData.currentIndex=0,6e7/JA(e.messageData,3)}function rs(){let e=this.currentTime;for(;this.playedTime<e;){let A=this._findFirstEventIndex(),t=this.tracks[A][this.eventIndex[A]];if(this._processEvent(t,A),this.eventIndex[A]++,A=this._findFirstEventIndex(),this.tracks[A].length<=this.eventIndex[A]){if(this.loop){this.setTimeTicks(this.midiData.loop.start);return}this.eventIndex[A]--,this.pause(!0),this.songs.length>1&&this.nextSong();return}let I=this.tracks[A][this.eventIndex[A]];if(this.playedTime+=this.oneTickToSeconds*(I.ticks-t.ticks),this.midiData.loop.end<=t.ticks&&this.loop){this.setTimeTicks(this.midiData.loop.start);return}else if(e>=this.duration){if(this.loop){this.setTimeTicks(this.midiData.loop.start);return}this.eventIndex[A]--,this.pause(!0),this.songs.length>1&&this.nextSong();return}}}function is(){let e=0,A=1/0;return this.tracks.forEach((t,I)=>{this.eventIndex[I]>=t.length||t[this.eventIndex[I]].ticks<A&&(e=I,A=t[this.eventIndex[I]].ticks)}),e}var MA=new Int16Array(127);MA[y.mainVolume]=100;MA[y.expressionController]=127;MA[y.pan]=64;MA[y.releaseTime]=64;MA[y.brightness]=64;MA[y.effects1Depth]=40;function Cs(e,A=void 0){if(this.oneTickToSeconds=60/(120*this.midiData.timeDivision),this.synth.resetAllControllers(),this.sendMIDIMessages){this.sendMIDIMessage([S.reset]);for(let i=0;i<fe;i++)this.sendMIDIMessage([S.controllerChange|i,y.resetAllControllers,0])}this._resetTimers();let t=this.synth.workletProcessorChannels.length,I=Array(t).fill(8192),s=Array(t).fill(-1),n=[];for(let i=0;i<t;i++)n.push(Array.from(MA));for(;;){let i=this._findFirstEventIndex(),a=this.tracks[i][this.eventIndex[i]];if(A!==void 0){if(a.ticks>=A)break}else if(this.playedTime>=e)break;let h=Ie(a.messageStatusByte),d=h.channel+(this.midiPortChannelOffsets[this.midiPorts[i]]||0);switch(h.status){case S.noteOn:case S.noteOff:case S.keySignature:break;case S.pitchBend:I[d]=a.messageData[1]<<7|a.messageData[0];break;case S.programChange:s[d]=a.messageData[0];break;case S.controllerChange:let c=a.messageData[0];if(c===y.dataDecrement||c===y.dataIncrement||c===y.dataEntryMsb||c===y.dataDecrement||c===y.lsbForControl6DataEntry||c===y.RPNLsb||c===y.RPNMsb||c===y.NRPNLsb||c===y.NRPNMsb||c===y.bankSelect||c===y.lsbForControl0BankSelect||c===y.resetAllControllers)if(this.sendMIDIMessages)this.sendMIDIMessage([S.controllerChange|d%16,c,a.messageData[1]]);else{let Q=a.messageData[1];this.midiData.embeddedSoundFont!==void 0&&c===y.bankSelect&&Q--,this.synth.controllerChange(d,c,Q)}else n[d]===void 0&&(n[d]=Array.from(MA)),n[d][c]=a.messageData[1];break;default:this._processEvent(a,i);break}this.eventIndex[i]++,i=this._findFirstEventIndex();let f=this.tracks[i][this.eventIndex[i]];if(f===void 0)return this.stop(),!1;this.playedTime+=this.oneTickToSeconds*(f.ticks-a.ticks)}if(this.sendMIDIMessages)for(let i=0;i<t;i++)this.sendMIDIMessage([S.pitchBend|i%16,I[i]&127,I[i]>>7]),n[i].forEach((a,h)=>{a!==MA[h]&&this.sendMIDIMessage([S.controllerChange|i%16,h,a])}),s[i]!==0&&this.sendMIDIMessage([S.programChange|i%16,s[i]]);else for(let i=0;i<t;i++)I[i]!==void 0&&this.synth.pitchWheel(i,I[i]>>7,I[i]&127),n[i]!==void 0&&n[i].forEach((a,h)=>{a!==MA[h]&&this.synth.controllerChange(i,h,a)}),s[i]!==-1&&this.synth.programChange(i,s[i]);return!0}function Es(e=!1){if(this.midiData!==void 0){if(e){this.currentTime=0;return}if(this.currentTime>=this.duration){this.currentTime=0;return}if(this.paused&&(this._recalculateStartTime(this.pausedTime),this.pausedTime=void 0),!this.sendMIDIMessages){let A=this.currentTime;this.playingNotes.forEach(t=>{let I=t.startTime-A;this.synth.noteOn(t.channel,t.midiNote,t.velocity,!1,!0,currentTime+I)})}this.setProcessHandler()}}function De(e,A,t){if(A<=0)return 0;let I=e.find(n=>n.ticks<A),s=A-I.ticks;return De(e,A-s,t)+s*60/(I.tempo*t)}function Bs(e){this.stop(),this.playingNotes=[],this.pausedTime=void 0,this.post(fA.timeChange,currentTime-De(this.midiData.tempoChanges,e,this.midiData.timeDivision));let A=this._playTo(0,e);this._recalculateStartTime(this.playedTime),A&&this.play()}function as(e){this.absoluteStartTime=currentTime-e/this._playbackRate}var we=class{constructor(A){this.timeDivision=A.timeDivision,this.duration=A.duration,this.tempoChanges=A.tempoChanges,this.copyright=A.copyright,this.tracksAmount=A.tracksAmount,this.lyrics=A.lyrics,this.firstNoteOn=A.firstNoteOn,this.keyRange=A.keyRange,this.lastVoiceEventTick=A.lastVoiceEventTick,this.midiPorts=A.midiPorts,this.midiPortChannelOffsets=A.midiPortChannelOffsets,this.usedChannelsOnTrack=A.usedChannelsOnTrack,this.loop=A.loop,this.midiName=A.midiName,this.fileName=A.fileName,this.rawMidiName=A.rawMidiName}},RC={duration:99999,firstNoteOn:0,loop:{start:0,end:123456},lastVoiceEventTick:123456,lyrics:[],copyright:"",midiPorts:[],midiPortChannelOffsets:[],tracksAmount:0,tempoChanges:[{ticks:0,tempo:120}],fileName:"NOT_LOADED.mid",midiName:"Loading...",rawMidiName:new Uint8Array([76,111,97,100,105,110,103,46,46,46]),usedChannelsOnTrack:[],timeDivision:0,keyRange:{min:0,max:127}};function Fe(e){let A=0;for(;e;){let t=e[e.currentIndex++];if(A=A<<7|t&127,t>>7!==1)break}return A}var Re=class{constructor(A,t=""){HA("%cParsing MIDI File...",C.info);let I=new U(A),s;this.embeddedSoundFont=void 0,this.copyright="";let n=z(I,4);if(I.currentIndex-=4,n==="RIFF"){I.currentIndex+=8;let Q=z(I,4,void 0,!1);if(Q!=="RMID")throw sA(),new SyntaxError(`Invalid RMIDI Header! Expected "RMID", got "${Q}"`);let u=oA(I);if(u.header!=="data")throw sA(),new SyntaxError(`Invalid RMIDI Chunk header! Expected "data", got "${Q}"`);for(s=u.chunkData;I.currentIndex<=I.length;){let p=I.currentIndex,Y=oA(I,!0);Y.header==="RIFF"&&z(Y.chunkData,4)==="sfbk"&&(m("%cFound embedded soundfont!",C.recognized),this.embeddedSoundFont=I.slice(p,p+Y.size).buffer)}}else s=I;let i=this.readMIDIChunk(s);if(i.type!=="MThd")throw sA(),new SyntaxError(`Invalid MIDI Header! Expected "MThd", got "${i.type}"`);if(i.size!==6)throw sA(),new RangeError(`Invalid MIDI header chunk size! Expected 6, got ${i.size}`);this.format=JA(i.data,2),this.tracksAmount=JA(i.data,2),this.timeDivision=JA(i.data,2),this.keyRange={min:127,max:0},this.lyrics=[],this.tempoChanges=[{ticks:0,tempo:120}];let a=null,h=null;this.lastVoiceEventTick=0,this.midiPorts=[];let d=0;this.midiPortChannelOffsets=[],this.usedChannelsOnTrack=[],this.tracks=[];for(let Q=0;Q<this.tracksAmount;Q++){let u=[],p=this.readMIDIChunk(s),Y=new Set;if(this.midiPorts.push(-1),p.type!=="MTrk")throw sA(),new SyntaxError(`Invalid track header! Expected "MTrk" got "${p.type}"`);let M,L=0;for(this.format===2&&Q>0&&(L+=this.tracks[Q-1][this.tracks[Q-1].length-1].ticks);p.data.currentIndex<p.size;){L+=Fe(p.data);let q=p.data[p.data.currentIndex],x;if(M!==void 0&&q<128)x=M;else{if(!M&&q<128)throw sA(),new SyntaxError(`Unexpected byte with no running byte. (${q})`);x=p.data[p.data.currentIndex++]}let V=Ht(x),X;switch(V){case-1:X=0;break;case-2:x=p.data[p.data.currentIndex++],X=Fe(p.data);break;case-3:X=Fe(p.data);break;default:if(L>this.lastVoiceEventTick&&(this.lastVoiceEventTick=L),X=Yt[x>>4],(x&240)===S.noteOn){Y.add(V);let IA=p.data[p.data.currentIndex];this.keyRange.min=Math.min(this.keyRange.min,IA),this.keyRange.max=Math.max(this.keyRange.max,IA)}M=x;break}let g=new U(X),v=p.data.slice(p.data.currentIndex,p.data.currentIndex+X);p.data.currentIndex+=X,g.set(v,0);let j=new de(L,x,g);switch(u.push(j),V){case-2:switch(x){case S.setTempo:this.tempoChanges.push({ticks:L,tempo:6e7/JA(v,3)});break;case S.marker:switch(z(g,g.length).trim().toLowerCase()){default:break;case"start":case"loopstart":a=L;break;case"loopend":h=L}g.currentIndex=0;break;case S.midiPort:let rA=g[0];this.midiPorts[Q]=rA,this.midiPortChannelOffsets[rA]===void 0&&(this.midiPortChannelOffsets[rA]=d,d+=16);break;case S.copyright:this.copyright+=z(g,g.length)+`
|
|
9
|
+
`}};function VA(e,A,t,I,s){return e<<10|A<<9|t<<8|I<<7|s}var Xe=960,We=cA.concave,Wt=[new EA({srcEnum:VA(We,0,1,0,H.noteOnVelocity),dest:B.initialAttenuation,amt:Xe,secSrcEnum:0,transform:0}),new EA({srcEnum:129,dest:B.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(We,0,1,1,p.mainVolume),dest:B.initialAttenuation,amt:Xe,secSrcEnum:0,transform:0}),new EA({srcEnum:13,dest:B.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new EA({srcEnum:526,dest:B.fineTune,amt:12700,secSrcEnum:16,transform:0}),new EA({srcEnum:650,dest:B.pan,amt:1e3,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(We,0,1,1,p.expressionController),dest:B.initialAttenuation,amt:Xe,secSrcEnum:0,transform:0}),new EA({srcEnum:219,dest:B.reverbEffectsSend,amt:200,secSrcEnum:0,transform:0}),new EA({srcEnum:221,dest:B.chorusEffectsSend,amt:200,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,0,0,0,H.polyPressure),dest:B.vibLfoToPitch,amt:50,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,0,0,1,p.effects2Depth),dest:B.modLfoToVolume,amt:24,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,1,0,1,p.releaseTime),dest:B.releaseVolEnv,amt:1200,secSrcEnum:0,transform:0}),new EA({srcEnum:VA(cA.linear,1,0,1,p.brightness),dest:B.initialFilterFc,amt:4e3,secSrcEnum:0,transform:0})];function _e(e){let A=[];for(;e.chunkData.length>e.chunkData.currentIndex;)A.push(new EA(e.chunkData));return A}function _t(e=!1){let A={midiControllers:new Int16Array(ze),lockedControllers:Array(ze).fill(!1),customControllers:new Float32Array(zt),NRPCoarse:0,NRPFine:0,RPValue:0,dataEntryState:aA.Idle,voices:[],sustainedVoices:[],cachedVoices:[],preset:this.defaultPreset,channelTransposeKeyShift:0,channelVibrato:{delay:0,depth:0,rate:0},lockVibrato:!1,holdPedal:!1,isMuted:!1,drumChannel:!1,lockPreset:!1};for(let t=0;t<128;t++)A.cachedVoices.push([]);this.workletProcessorChannels.push(A),this.resetControllers(this.workletProcessorChannels.length-1),this.sendChannelProperties(),e&&this.callEvent("newchannel",void 0)}var eA=128,ze=147,NA=new Int16Array(ze).fill(0);NA[p.mainVolume]=12800;NA[p.expressionController]=16256;NA[p.pan]=8192;NA[p.releaseTime]=8192;NA[p.brightness]=8192;NA[p.effects1Depth]=5120;NA[eA+H.pitchWheel]=8192;NA[eA+H.pitchWheelRange]=256;var aA={Idle:0,RPCoarse:1,RPFine:2,NRPCoarse:3,NRPFine:4,DataCoarse:5,DataFine:6},AA={channelTuning:0,channelTransposeFine:1,modulationMultiplier:2,masterTuning:3,channelTuningSemitones:4},zt=Object.keys(AA).length,je=new Float32Array(zt);je[AA.modulationMultiplier]=1;var YA=YA!==void 0?YA:{},jt=!1,$t;YA.isInitialized=new Promise(e=>$t=e);var _s=function(e){var A,t,I,s,n,a,i,Q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c="",f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");do s=Q.indexOf(e.charAt(f++)),n=Q.indexOf(e.charAt(f++)),a=Q.indexOf(e.charAt(f++)),i=Q.indexOf(e.charAt(f++)),A=s<<2|n>>4,t=(15&n)<<4|a>>2,I=(3&a)<<6|i,c+=String.fromCharCode(A),a!==64&&(c+=String.fromCharCode(t)),i!==64&&(c+=String.fromCharCode(I));while(f<e.length);return c};(function(){var e,A,t,I,s,n,a,i,Q,c,f,u,h,d,m,Y,M,L,q,x,V,X,g=g!==void 0?g:{};g.wasmBinary=Uint8Array.from(_s("AGFzbQEAAAABpQEYYAJ/fwF/YAF/AGAAAX9gBH9/f38AYAAAYAN/f38Bf2ABfwF/YAJ/fwBgBn9/f39/fwF/YAR/f39/AX9gBX9/f39/AX9gB39/f39/f38Bf2AGf39/f39/AGAIf39/f39/f38Bf2AFf39/f38AYAd/f39/f39/AGADf39/AGABfwF9YAF9AX1gAnx/AXxgAnx/AX9gA3x8fwF8YAJ8fAF8YAF8AXwCngIPA2VudgZtZW1vcnkCAIACA2VudgV0YWJsZQFwAQQEA2Vudgl0YWJsZUJhc2UDfwADZW52DkRZTkFNSUNUT1BfUFRSA38AA2VudghTVEFDS1RPUAN/AANlbnYJU1RBQ0tfTUFYA38ABmdsb2JhbAhJbmZpbml0eQN8AANlbnYFYWJvcnQAAQNlbnYNZW5sYXJnZU1lbW9yeQACA2Vudg5nZXRUb3RhbE1lbW9yeQACA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQACA2Vudg5fX19hc3NlcnRfZmFpbAADA2VudgtfX19zZXRFcnJObwABA2VudgZfYWJvcnQABANlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwAFA3d2BgYCAQcHAQIBAQcBCAcFAAkGCQoHBgYGBgEFBgIBBgYKAAgLAAYGBgYGBgYBAAoMDAMGBQANCAoJAAwODA8OAQAGBgcEABAJEAERAAADBQwAAAMHBxIGAQAABwIFEwMOBw8HBgYQFAoVExYXFxcXFgQFBQYFAAYkB38BIwELfwEjAgt/ASMDC38BQQALfwFBAAt8ASMEC38BQQALB9MCFRBfX2dyb3dXYXNtTWVtb3J5AAgRX19fZXJybm9fbG9jYXRpb24AYwVfZnJlZQBfB19tYWxsb2MAXgdfbWVtY3B5AHkHX21lbXNldAB6BV9zYnJrAHsXX3N0Yl92b3JiaXNfanNfY2hhbm5lbHMAJhRfc3RiX3ZvcmJpc19qc19jbG9zZQAlFV9zdGJfdm9yYmlzX2pzX2RlY29kZQAoE19zdGJfdm9yYmlzX2pzX29wZW4AJBpfc3RiX3ZvcmJpc19qc19zYW1wbGVfcmF0ZQAnC2R5bkNhbGxfaWlpAHwTZXN0YWJsaXNoU3RhY2tTcGFjZQAMC2dldFRlbXBSZXQwAA8LcnVuUG9zdFNldHMAeAtzZXRUZW1wUmV0MAAOCHNldFRocmV3AA0Kc3RhY2tBbGxvYwAJDHN0YWNrUmVzdG9yZQALCXN0YWNrU2F2ZQAKCQoBACMACwR9VFl9Csb2A3YGACAAQAALGwEBfyMGIQEjBiAAaiQGIwZBD2pBcHEkBiABCwQAIwYLBgAgACQGCwoAIAAkBiABJAcLEAAjCEUEQCAAJAggASQJCwsGACAAJAsLBAAjCwsRACAABEAgABARIAAgABASCwvvBwEKfyAAQYADaiEHIAcoAgAhBQJAIAUEQCAAQfwBaiEEIAQoAgAhASABQQBKBEAgAEHwAGohCANAIAUgAkEYbGpBEGohCSAJKAIAIQEgAQRAIAgoAgAhAyAFIAJBGGxqQQ1qIQogCi0AACEGIAZB/wFxIQYgAyAGQbAQbGpBBGohAyADKAIAIQMgA0EASgRAQQAhAwNAIAEgA0ECdGohASABKAIAIQEgACABEBIgA0EBaiEDIAgoAgAhASAKLQAAIQYgBkH/AXEhBiABIAZBsBBsakEEaiEBIAEoAgAhBiAJKAIAIQEgAyAGSA0ACwsgACABEBILIAUgAkEYbGpBFGohASABKAIAIQEgACABEBIgAkEBaiECIAQoAgAhASACIAFODQMgBygCACEFDAAACwALCwsgAEHwAGohAyADKAIAIQEgAQRAIABB7ABqIQUgBSgCACECIAJBAEoEQEEAIQIDQAJAIAEgAkGwEGxqQQhqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQRxqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQSBqIQQgBCgCACEEIAAgBBASIAEgAkGwEGxqQaQQaiEEIAQoAgAhBCAAIAQQEiABIAJBsBBsakGoEGohASABKAIAIQEgAUUhBCABQXxqIQFBACABIAQbIQEgACABEBIgAkEBaiECIAUoAgAhASACIAFODQAgAygCACEBDAELCyADKAIAIQELIAAgARASCyAAQfgBaiEBIAEoAgAhASAAIAEQEiAHKAIAIQEgACABEBIgAEGIA2ohAyADKAIAIQEgAQRAIABBhANqIQUgBSgCACECIAJBAEoEQEEAIQIDQCABIAJBKGxqQQRqIQEgASgCACEBIAAgARASIAJBAWohAiAFKAIAIQcgAygCACEBIAIgB0gNAAsLIAAgARASCyAAQQRqIQIgAigCACEBIAFBAEoEQEEAIQEDQCAAQZQGaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQZQHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiAAQdgHaiABQQJ0aiEDIAMoAgAhAyAAIAMQEiABQQFqIQEgAigCACEDIAEgA0ghAyABQRBJIQUgBSADcQ0ACwtBACEBA0AgAEGgCGogAUECdGohAiACKAIAIQIgACACEBIgAEGoCGogAUECdGohAiACKAIAIQIgACACEBIgAEGwCGogAUECdGohAiACKAIAIQIgACACEBIgAEG4CGogAUECdGohAiACKAIAIQIgACACEBIgAEHACGogAUECdGohAiACKAIAIQIgACACEBIgAUEBaiEBIAFBAkcNAAsLGwAgAEHEAGohACAAKAIAIQAgAEUEQCABEF8LC3wBAX8gAEHUB2ohASABQQA2AgAgAEGAC2ohASABQQA2AgAgAEH4CmohASABQQA2AgAgAEGcCGohASABQQA2AgAgAEHVCmohASABQQA6AAAgAEH8CmohASABQQA2AgAgAEHUC2ohASABQQA2AgAgAEHYC2ohACAAQQA2AgAL8AQBB38jBiELIwZBEGokBiALQQhqIQcgC0EEaiEKIAshCCAAQSRqIQYgBiwAACEGAn8gBgR/IABBgAtqIQYgBigCACEGIAZBf0oEQCAFQQA2AgAgACABIAIQFgwCCyAAQRRqIQYgBiABNgIAIAEgAmohAiAAQRxqIQkgCSACNgIAIABB2ABqIQIgAkEANgIAIABBABAXIQkgCUUEQCAFQQA2AgBBAAwCCyAAIAcgCCAKEBghCSAJBEAgBygCACECIAgoAgAhCSAKKAIAIQggACACIAkgCBAaIQogByAKNgIAIABBBGohAiACKAIAIQggCEEASgRAQQAhAgNAIABBlAZqIAJBAnRqIQcgBygCACEHIAcgCUECdGohByAAQdQGaiACQQJ0aiEMIAwgBzYCACACQQFqIQIgAiAISA0ACwsgAwRAIAMgCDYCAAsgBSAKNgIAIABB1AZqIQAgBCAANgIAIAYoAgAhACAAIAFrDAILAkACQAJAAkACQCACKAIAIgNBIGsOBAECAgACCyACQQA2AgAgAEHUAGohAiAAEBkhAwJAIANBf0cEQANAIAIoAgAhAyADDQIgABAZIQMgA0F/Rw0ACwsLIAVBADYCACAGKAIAIQAgACABawwFCwwBCwwBCyAAQdQHaiEEIAQoAgAhBCAERQRAIAJBADYCACAAQdQAaiECIAAQGSEDAkAgA0F/RwRAA0AgAigCACEDIAMNAiAAEBkhAyADQX9HDQALCwsgBUEANgIAIAYoAgAhACAAIAFrDAMLCyAAEBMgAiADNgIAIAVBADYCAEEBBSAAQQIQFUEACwshACALJAYgAAsJACAAIAE2AlgLpgoBDH8gAEGAC2ohCiAKKAIAIQYCQAJAAkAgBkEATA0AA0AgACAEQRRsakGQC2ohAyADQQA2AgAgBEEBaiEEIAQgBkgNAAsgBkEESA0ADAELIAJBBEgEQEEAIQIFIAJBfWohBkEAIQIDQAJAIAEgAmohBCAELAAAIQMgA0HPAEYEQCAEQcATQQQQZCEEIARFBEAgAkEaaiEJIAkgBk4NAiACQRtqIQcgASAJaiELIAssAAAhAyADQf8BcSEFIAcgBWohBCAEIAZODQIgBUEbaiEEIAMEQEEAIQMDQCADIAdqIQggASAIaiEIIAgtAAAhCCAIQf8BcSEIIAQgCGohBCADQQFqIQMgAyAFRw0ACyAEIQMFIAQhAwtBACEEQQAhBQNAIAUgAmohByABIAdqIQcgBywAACEHIAQgBxApIQQgBUEBaiEFIAVBFkcNAAtBFiEFA0AgBEEAECkhBCAFQQFqIQUgBUEaRw0ACyAKKAIAIQUgBUEBaiEHIAogBzYCACADQWZqIQMgACAFQRRsakGIC2ohCCAIIAM2AgAgACAFQRRsakGMC2ohAyADIAQ2AgAgAkEWaiEEIAEgBGohBCAELQAAIQQgBEH/AXEhBCACQRdqIQMgASADaiEDIAMtAAAhAyADQf8BcSEDIANBCHQhAyADIARyIQQgAkEYaiEDIAEgA2ohAyADLQAAIQMgA0H/AXEhAyADQRB0IQMgBCADciEEIAJBGWohAyABIANqIQMgAy0AACEDIANB/wFxIQMgA0EYdCEDIAQgA3IhBCAAQYQLaiAFQRRsaiEDIAMgBDYCACALLQAAIQQgBEH/AXEhBCAJIARqIQQgASAEaiEEIAQsAAAhBCAEQX9GBH9BfwUgAkEGaiEEIAEgBGohBCAELQAAIQQgBEH/AXEhBCACQQdqIQMgASADaiEDIAMtAAAhAyADQf8BcSEDIANBCHQhAyADIARyIQQgAkEIaiEDIAEgA2ohAyADLQAAIQMgA0H/AXEhAyADQRB0IQMgBCADciEEIAJBCWohAyABIANqIQMgAy0AACEDIANB/wFxIQMgA0EYdCEDIAQgA3ILIQQgACAFQRRsakGUC2ohAyADIAQ2AgAgACAFQRRsakGQC2ohBCAEIAk2AgAgB0EERgRAIAYhAgwDCwsLIAJBAWohAiACIAZIDQEgBiECCwsgCigCACEGIAZBAEoNAQsMAQsgAiEEIAYhAkEAIQYDQAJAIABBhAtqIAZBFGxqIQkgACAGQRRsakGQC2ohAyADKAIAIQsgACAGQRRsakGIC2ohDSANKAIAIQggBCALayEDIAggA0ohBSADIAggBRshByAAIAZBFGxqQYwLaiEOIA4oAgAhAyAHQQBKBEBBACEFA0AgBSALaiEMIAEgDGohDCAMLAAAIQwgAyAMECkhAyAFQQFqIQUgBSAHSA0ACwsgCCAHayEFIA0gBTYCACAOIAM2AgAgBQRAIAZBAWohBgUgCSgCACEFIAMgBUYNASACQX9qIQIgCiACNgIAIAkgAEGEC2ogAkEUbGoiAikCADcCACAJIAIpAgg3AgggCSACKAIQNgIQIAooAgAhAgsgBiACSA0BIAQhAgwCCwsgByALaiECIApBfzYCACAAQdQHaiEBIAFBADYCACAAQdgKaiEBIAFBfzYCACAAIAZBFGxqQZQLaiEBIAEoAgAhASAAQZgIaiEEIAQgATYCACABQX9HIQEgAEGcCGohACAAIAE2AgALIAILhgUBCH8gAEHYCmohAiACKAIAIQMgAEEUaiECIAIoAgAhAgJ/AkAgA0F/RgR/QQEhAwwBBSAAQdAIaiEEIAQoAgAhBQJAIAMgBUgEQANAIABB1AhqIANqIQQgBCwAACEGIAZB/wFxIQQgAiAEaiECIAZBf0cNAiADQQFqIQMgAyAFSA0ACwsLIAFBAEchBiAFQX9qIQQgAyAESCEEIAYgBHEEQCAAQRUQFUEADAMLIABBHGohBCAEKAIAIQQgAiAESwR/IABBARAVQQAFIAMgBUYhBCADQX9GIQMgBCADcgR/QQAhAwwDBUEBCwsLDAELIAAoAhwhCCAAQdQHaiEGIAFBAEchBCACIQECQAJAAkACQAJAAkACQAJAAkADQCABQRpqIQUgBSAITw0BIAFBwBNBBBBkIQIgAg0CIAFBBGohAiACLAAAIQIgAg0DIAMEQCAGKAIAIQIgAgRAIAFBBWohAiACLAAAIQIgAkEBcSECIAINBgsFIAFBBWohAiACLAAAIQIgAkEBcSECIAJFDQYLIAUsAAAhAiACQf8BcSEHIAFBG2ohCSAJIAdqIQEgASAISw0GAkAgAgRAQQAhAgNAIAkgAmohAyADLAAAIQUgBUH/AXEhAyABIANqIQEgBUF/Rw0CIAJBAWohAiACIAdJDQALBUEAIQILCyAHQX9qIQMgAiADSCEDIAQgA3ENByABIAhLDQhBASACIAdHDQoaQQAhAwwAAAsACyAAQQEQFUEADAgLIABBFRAVQQAMBwsgAEEVEBVBAAwGCyAAQRUQFUEADAULIABBFRAVQQAMBAsgAEEBEBVBAAwDCyAAQRUQFUEADAILIABBARAVC0EACyEAIAALewEFfyMGIQUjBkEQaiQGIAVBCGohBiAFQQRqIQQgBSEHIAAgAiAEIAMgBSAGECohBCAEBH8gBigCACEEIABBkANqIARBBmxqIQggAigCACEGIAMoAgAhBCAHKAIAIQMgACABIAggBiAEIAMgAhArBUEACyEAIAUkBiAACxsBAX8gABAuIQEgAEHoCmohACAAQQA2AgAgAQv5AwIMfwN9IABB1AdqIQkgCSgCACEGIAYEfyAAIAYQSCELIABBBGohBCAEKAIAIQogCkEASgRAIAZBAEohDCAGQX9qIQ0DQCAMBEAgAEGUBmogBUECdGooAgAhDiAAQZQHaiAFQQJ0aigCACEPQQAhBANAIAQgAmohByAOIAdBAnRqIQcgByoCACEQIAsgBEECdGohCCAIKgIAIREgECARlCEQIA8gBEECdGohCCAIKgIAIREgDSAEayEIIAsgCEECdGohCCAIKgIAIRIgESASlCERIBAgEZIhECAHIBA4AgAgBEEBaiEEIAQgBkcNAAsLIAVBAWohBSAFIApIDQALCyAJKAIABSAAQQRqIQQgBCgCACEKQQALIQsgASADayEHIAkgBzYCACAKQQBKBEAgASADSiEJQQAhBQNAIAkEQCAAQZQGaiAFQQJ0aigCACEMIABBlAdqIAVBAnRqKAIAIQ1BACEGIAMhBANAIAwgBEECdGohBCAEKAIAIQQgDSAGQQJ0aiEOIA4gBDYCACAGQQFqIQYgBiADaiEEIAYgB0cNAAsLIAVBAWohBSAFIApIDQALCyALRSEEIAEgA0ghBSABIAMgBRshASABIAJrIQEgAEH8CmohACAEBEBBACEBBSAAKAIAIQIgAiABaiECIAAgAjYCAAsgAQvRAQECfyMGIQYjBkHgC2okBiAGIQUgBSAEEBwgBUEUaiEEIAQgADYCACAAIAFqIQEgBUEcaiEEIAQgATYCACAFQSRqIQEgAUEBOgAAIAUQHSEBIAEEQCAFEB4hASABBEAgASAFQdwLEHkaIAFBFGohBCAEKAIAIQQgBCAAayEAIAIgADYCACADQQA2AgAFIAUQEUEAIQELBSAFQdQAaiEAIAAoAgAhACAARSEAIAVB2ABqIQEgASgCACEBIAMgAUEBIAAbNgIAQQAhAQsgBiQGIAELrQECAX8BfiAAQQBB3AsQehogAQRAIABBxABqIQIgASkCACEDIAIgAzcCACAAQcgAaiECIANCIIghAyADpyEBIAFBA2ohASABQXxxIQEgAiABNgIAIABB0ABqIQIgAiABNgIACyAAQdQAaiEBIAFBADYCACAAQdgAaiEBIAFBADYCACAAQRRqIQEgAUEANgIAIABB8ABqIQEgAUEANgIAIABBgAtqIQAgAEF/NgIAC9BNAiN/A30jBiEZIwZBgAhqJAYgGUHwB2ohAiAZIgxB7AdqIR0gDEHoB2ohHiAAEDEhAQJ/IAEEQCAAQdMKaiEBIAEtAAAhASABQf8BcSEBIAFBAnEhAyADRQRAIABBIhAVQQAMAgsgAUEEcSEDIAMEQCAAQSIQFUEADAILIAFBAXEhASABBEAgAEEiEBVBAAwCCyAAQdAIaiEBIAEoAgAhASABQQFHBEAgAEEiEBVBAAwCCyAAQdQIaiEBAkACQCABLAAAQR5rIgEEQCABQSJGBEAMAgUMAwsACyAAEDAhASABQf8BcUEBRwRAIABBIhAVQQAMBAsgACACQQYQIiEBIAFFBEAgAEEKEBVBAAwECyACEEkhASABRQRAIABBIhAVQQAMBAsgABAjIQEgAQRAIABBIhAVQQAMBAsgABAwIQEgAUH/AXEhAyAAQQRqIRMgEyADNgIAIAFB/wFxRQRAIABBIhAVQQAMBAsgAUH/AXFBEEoEQCAAQQUQFUEADAQLIAAQIyEBIAAgATYCACABRQRAIABBIhAVQQAMBAsgABAjGiAAECMaIAAQIxogABAwIQMgA0H/AXEhBCAEQQ9xIQEgBEEEdiEEQQEgAXQhBSAAQeQAaiEaIBogBTYCAEEBIAR0IQUgAEHoAGohFCAUIAU2AgAgAUF6aiEFIAVBB0sEQCAAQRQQFUEADAQLIANBoH9qQRh0QRh1IQMgA0EASARAIABBFBAVQQAMBAsgASAESwRAIABBFBAVQQAMBAsgABAwIQEgAUEBcSEBIAFFBEAgAEEiEBVBAAwECyAAEDEhAUEAIAFFDQMaIAAQSiEBQQAgAUUNAxogAEHUCmohAwNAIAAQLyEBIAAgARBLIANBADoAACABDQALIAAQSiEBQQAgAUUNAxogAEEkaiEBIAEsAAAhAQJAIAEEQCAAQQEQFyEBIAENASAAQdgAaiEAIAAoAgAhAUEAIAFBFUcNBRogAEEUNgIAQQAMBQsLEEwgABAZIQEgAUEFRwRAIABBFBAVQQAMBAtBACEBA0AgABAZIQMgA0H/AXEhAyACIAFqIQQgBCADOgAAIAFBAWohASABQQZHDQALIAIQSSEBIAFFBEAgAEEUEBVBAAwECyAAQQgQLCEBIAFBAWohASAAQewAaiENIA0gATYCACABQbAQbCEBIAAgARBNIQEgAEHwAGohFSAVIAE2AgAgAUUEQCAAQQMQFUEADAQLIA0oAgAhAiACQbAQbCECIAFBACACEHoaIA0oAgAhAQJAIAFBAEoEQCAAQRBqIRYDQAJAIBUoAgAhCiAKIAZBsBBsaiEJIABBCBAsIQEgAUH/AXEhASABQcIARwRAQT8hAQwBCyAAQQgQLCEBIAFB/wFxIQEgAUHDAEcEQEHBACEBDAELIABBCBAsIQEgAUH/AXEhASABQdYARwRAQcMAIQEMAQsgAEEIECwhASAAQQgQLCECIAJBCHQhAiABQf8BcSEBIAIgAXIhASAJIAE2AgAgAEEIECwhASAAQQgQLCECIABBCBAsIQMgA0EQdCEDIAJBCHQhAiACQYD+A3EhAiABQf8BcSEBIAIgAXIhASABIANyIQEgCiAGQbAQbGpBBGohDiAOIAE2AgAgAEEBECwhASABQQBHIgMEf0EABSAAQQEQLAshASABQf8BcSECIAogBkGwEGxqQRdqIREgESACOgAAIAkoAgAhBCAOKAIAIQEgBEUEQCABBH9ByAAhAQwCBUEACyEBCyACQf8BcQRAIAAgARA8IQIFIAAgARBNIQIgCiAGQbAQbGpBCGohASABIAI2AgALIAJFBEBBzQAhAQwBCwJAIAMEQCAAQQUQLCEDIA4oAgAhASABQQBMBEBBACEDDAILQQAhBANAIANBAWohBSABIARrIQEgARAtIQEgACABECwhASABIARqIQMgDigCACEPIAMgD0oEQEHTACEBDAQLIAIgBGohBCAFQf8BcSEPIAQgDyABEHoaIA4oAgAhASABIANKBH8gAyEEIAUhAwwBBUEACyEDCwUgDigCACEBIAFBAEwEQEEAIQMMAgtBACEDQQAhAQNAIBEsAAAhBAJAAkAgBEUNACAAQQEQLCEEIAQNACACIANqIQQgBEF/OgAADAELIABBBRAsIQQgBEEBaiEEIARB/wFxIQUgAiADaiEPIA8gBToAACABQQFqIQEgBEH/AXEhBCAEQSBGBEBB2gAhAQwFCwsgA0EBaiEDIA4oAgAhBCADIARIDQALIAEhAyAEIQELCyARLAAAIQQCfwJAIAQEfyABQQJ1IQQgAyAETgRAIBYoAgAhAyABIANKBEAgFiABNgIACyAAIAEQTSEBIAogBkGwEGxqQQhqIQMgAyABNgIAIAFFBEBB4QAhAQwFCyAOKAIAIQQgASACIAQQeRogDigCACEBIAAgAiABEE4gAygCACECIBFBADoAACAOKAIAIQQMAgsgCiAGQbAQbGpBrBBqIQQgBCADNgIAIAMEfyAAIAMQTSEBIAogBkGwEGxqQQhqIQMgAyABNgIAIAFFBEBB6wAhAQwFCyAEKAIAIQEgAUECdCEBIAAgARA8IQEgCiAGQbAQbGpBIGohAyADIAE2AgAgAUUEQEHtACEBDAULIAQoAgAhASABQQJ0IQEgACABEDwhBSAFRQRAQfAAIQEMBQsgDigCACEBIAQoAgAhDyAFIQcgBQVBACEPQQAhB0EACyEDIA9BA3QhBSAFIAFqIQUgFigCACEPIAUgD00EQCABIQUgBAwDCyAWIAU2AgAgASEFIAQFIAEhBAwBCwwBCyAEQQBKBEBBACEBQQAhAwNAIAIgA2ohBSAFLAAAIQUgBUH/AXFBCkohDyAFQX9HIQUgDyAFcSEFIAVBAXEhBSABIAVqIQEgA0EBaiEDIAMgBEgNAAsFQQAhAQsgCiAGQbAQbGpBrBBqIQ8gDyABNgIAIARBAnQhASAAIAEQTSEBIAogBkGwEGxqQSBqIQMgAyABNgIAIAFFBEBB6QAhAQwCC0EAIQMgDigCACEFQQAhByAPCyEBIAkgAiAFIAMQTyEEIARFBEBB9AAhAQwBCyABKAIAIQQgBARAIARBAnQhBCAEQQRqIQQgACAEEE0hBCAKIAZBsBBsakGkEGohBSAFIAQ2AgAgBEUEQEH5ACEBDAILIAEoAgAhBCAEQQJ0IQQgBEEEaiEEIAAgBBBNIQQgCiAGQbAQbGpBqBBqIQUgBSAENgIAIARFBEBB+wAhAQwCCyAEQQRqIQ8gBSAPNgIAIARBfzYCACAJIAIgAxBQCyARLAAAIQMgAwRAIAEoAgAhAyADQQJ0IQMgACAHIAMQTiAKIAZBsBBsakEgaiEDIAMoAgAhBCABKAIAIQUgBUECdCEFIAAgBCAFEE4gDigCACEEIAAgAiAEEE4gA0EANgIACyAJEFEgAEEEECwhAiACQf8BcSEDIAogBkGwEGxqQRVqIQUgBSADOgAAIAJB/wFxIQIgAkECSwRAQYABIQEMAQsgAgRAIABBIBAsIQIgAhBSISUgCiAGQbAQbGpBDGohDyAPICU4AgAgAEEgECwhAiACEFIhJSAKIAZBsBBsakEQaiEbIBsgJTgCACAAQQQQLCECIAJBAWohAiACQf8BcSECIAogBkGwEGxqQRRqIQQgBCACOgAAIABBARAsIQIgAkH/AXEhAiAKIAZBsBBsakEWaiEcIBwgAjoAACAFLAAAIQsgDigCACECIAkoAgAhAyALQQFGBH8gAiADEFMFIAMgAmwLIQIgCiAGQbAQbGpBGGohCyALIAI2AgAgAkUEQEGGASEBDAILIAJBAXQhAiAAIAIQPCEQIBBFBEBBiAEhAQwCCyALKAIAIQIgAkEASgRAQQAhAgNAIAQtAAAhAyADQf8BcSEDIAAgAxAsIQMgA0F/RgRAQYwBIQEMBAsgA0H//wNxIQMgECACQQF0aiEXIBcgAzsBACACQQFqIQIgCygCACEDIAIgA0gNAAsgAyECCyAFLAAAIQMCQCADQQFGBEAgESwAACEDIANBAEciFwRAIAEoAgAhAyADRQRAIAIhAQwDCwUgDigCACEDCyAKIAZBsBBsaiAAIANBAnQgCSgCAGwQTSIfNgIcIB9FBEBBkwEhAQwECyABIA4gFxshASABKAIAIQ4gDkEASgRAIAogBkGwEGxqQagQaiEgIAkoAgAiCkEASiEJQwAAAAAhJUEAIQEDQCAXBH8gICgCACECIAIgAUECdGohAiACKAIABSABCyEEIAkEQCALKAIAIRggHCwAAEUhISAKIAFsISJBACEDQQEhAgNAIAQgAm4hEiASIBhwIRIgECASQQF0aiESIBIvAQAhEiASQf//A3GyISQgGyoCACEmICYgJJQhJCAPKgIAISYgJCAmkiEkICUgJJIhJCAiIANqIRIgHyASQQJ0aiESIBIgJDgCACAlICQgIRshJSADQQFqIQMgAyAKSCISBEBBfyAYbiEjIAIgI0sEQEGeASEBDAkLIBggAmwhAgsgEg0ACwsgAUEBaiEBIAEgDkgNAAsLIAVBAjoAACALKAIAIQEFIAJBAnQhASAAIAEQTSECIAogBkGwEGxqQRxqIQEgASACNgIAIAsoAgAhCCACRQRAQaUBIQEMBAsgCEEATARAIAghAQwCCyAcLAAARSEDQwAAAAAhJUEAIQEDQCAQIAFBAXRqIQQgBC8BACEEIARB//8DcbIhJCAbKgIAISYgJiAklCEkIA8qAgAhJiAkICaSISQgJSAkkiEkIAIgAUECdGohBCAEICQ4AgAgJSAkIAMbISUgAUEBaiEBIAEgCEgNAAsgCCEBCwsgAUEBdCEBIAAgECABEE4LIAZBAWohBiANKAIAIQEgBiABSA0BDAMLCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUE/aw5nABYBFgIWFhYWAxYWFhYEFhYWFhYFFhYWFhYWBhYWFhYWFgcWFhYWFhYWCBYJFgoWFgsWFhYMFhYWFg0WDhYWFhYPFhYWFhYQFhEWFhYSFhYWFhYWExYWFhYWFhYWFhYUFhYWFhYWFRYLIABBFBAVQQAMGwsgAEEUEBVBAAwaCyAAQRQQFUEADBkLIABBFBAVQQAMGAsgAEEDEBVBAAwXCyAAQRQQFUEADBYLIABBFBAVQQAMFQsgAEEDEBVBAAwUCyAAQQMQFUEADBMLIABBAxAVQQAMEgsgAEEDEBVBAAwRCyAAQQMQFUEADBALIBEsAAAhASABBEAgACAHQQAQTgsgAEEUEBVBAAwPCyAAQQMQFUEADA4LIABBAxAVQQAMDQsgAEEUEBVBAAwMCyAAQRQQFUEADAsLIABBAxAVQQAMCgsgCygCACEBIAFBAXQhASAAIBAgARBOIABBFBAVQQAMCQsgCygCACEBIAFBAXQhASAAIBAgARBOIABBAxAVQQAMCAsgGEEBdCEBIAAgECABEE4gAEEUEBVBAAwHCyAIQQF0IQEgACAQIAEQTiAAQQMQFUEADAYLCwsgAEEGECwhASABQQFqIQEgAUH/AXEhAgJAIAIEQEEAIQEDQAJAIABBEBAsIQMgA0UhAyADRQ0AIAFBAWohASABIAJJDQEMAwsLIABBFBAVQQAMBQsLIABBBhAsIQEgAUEBaiEBIABB9ABqIQ8gDyABNgIAIAFBvAxsIQEgACABEE0hASAAQfgBaiEOIA4gATYCACABRQRAIABBAxAVQQAMBAsgDygCACEBAn8gAUEASgR/QQAhBEEAIQcCQAJAAkACQAJAAkADQCAAQRAQLCEBIAFB//8DcSECIABB+ABqIAdBAXRqIQMgAyACOwEAIAFB//8DcSEBIAFBAUsNASABRQ0CIA4oAgAhBSAAQQUQLCEBIAFB/wFxIQIgBSAHQbwMbGohCiAKIAI6AAAgAUH/AXEhASABBEBBfyEBQQAhAgNAIABBBBAsIQMgA0H/AXEhCCAFIAdBvAxsakEBaiACaiEGIAYgCDoAACADQf8BcSEDIAMgAUohCCADIAEgCBshAyACQQFqIQIgCi0AACEBIAFB/wFxIQEgAiABSQRAIAMhAQwBCwtBACEBA0AgAEEDECwhAiACQQFqIQIgAkH/AXEhAiAFIAdBvAxsakEhaiABaiEIIAggAjoAACAAQQIQLCECIAJB/wFxIQIgBSAHQbwMbGpBMWogAWohCCAIIAI6AAACQAJAIAJB/wFxRQ0AIABBCBAsIQIgAkH/AXEhBiAFIAdBvAxsakHBAGogAWohECAQIAY6AAAgAkH/AXEhAiANKAIAIQYgAiAGTg0HIAgsAAAhAiACQR9HDQAMAQtBACECA0AgAEEIECwhBiAGQf//A2ohBiAGQf//A3EhECAFIAdBvAxsakHSAGogAUEEdGogAkEBdGohCSAJIBA7AQAgBkEQdCEGIAZBEHUhBiANKAIAIRAgBiAQSCEGIAZFDQggAkEBaiECIAgtAAAhBiAGQf8BcSEGQQEgBnQhBiACIAZIDQALCyABQQFqIQIgASADSARAIAIhAQwBCwsLIABBAhAsIQEgAUEBaiEBIAFB/wFxIQEgBSAHQbwMbGpBtAxqIQIgAiABOgAAIABBBBAsIQEgAUH/AXEhAiAFIAdBvAxsakG1DGohECAQIAI6AAAgBSAHQbwMbGpB0gJqIQkgCUEAOwEAIAFB/wFxIQFBASABdCEBIAFB//8DcSEBIAUgB0G8DGxqQdQCaiECIAIgATsBACAFIAdBvAxsakG4DGohBiAGQQI2AgAgCiwAACEBAkACQCABBEBBACEIQQIhAwNAIAUgB0G8DGxqQQFqIAhqIQIgAi0AACECIAJB/wFxIQIgBSAHQbwMbGpBIWogAmohAiACLAAAIQsgCwRAQQAhAQNAIBAtAAAhAyADQf8BcSEDIAAgAxAsIQMgA0H//wNxIQsgBigCACEDIAUgB0G8DGxqQdICaiADQQF0aiERIBEgCzsBACADQQFqIQMgBiADNgIAIAFBAWohASACLQAAIQsgC0H/AXEhCyABIAtJDQALIAosAAAhAgUgASECCyADIQEgCEEBaiEIIAJB/wFxIQMgCCADSQRAIAEhAyACIQEMAQsLIAFBAEoNAQVBAiEBDAELDAELQQAhAgNAIAUgB0G8DGxqQdICaiACQQF0aiEDIAMuAQAhAyAMIAJBAnRqIQggCCADOwEAIAJB//8DcSEDIAwgAkECdGpBAmohCCAIIAM7AQAgAkEBaiECIAIgAUgNAAsLIAwgAUEEQQEQZiAGKAIAIQECQCABQQBKBEBBACEBA0AgDCABQQJ0akECaiECIAIuAQAhAiACQf8BcSECIAUgB0G8DGxqQcYGaiABaiEDIAMgAjoAACABQQFqIQEgBigCACECIAEgAkgNAAsgAkECTARAIAIhAQwCC0ECIQEDQCAJIAEgHSAeEFUgHSgCACECIAJB/wFxIQIgBSAHQbwMbGpBwAhqIAFBAXRqIQMgAyACOgAAIB4oAgAhAiACQf8BcSECIAUgB0G8DGxqIAFBAXRqQcEIaiEDIAMgAjoAACABQQFqIQEgBigCACECIAEgAkgNAAsgAiEBCwsgASAESiECIAEgBCACGyEEIAdBAWohByAPKAIAIQEgByABSA0ADAUACwALIABBFBAVQQAMCgsgDigCACEBIABBCBAsIQIgAkH/AXEhAiABIAdBvAxsaiEDIAMgAjoAACAAQRAQLCECIAJB//8DcSECIAEgB0G8DGxqQQJqIQMgAyACOwEAIABBEBAsIQIgAkH//wNxIQIgASAHQbwMbGpBBGohAyADIAI7AQAgAEEGECwhAiACQf8BcSECIAEgB0G8DGxqQQZqIQMgAyACOgAAIABBCBAsIQIgAkH/AXEhAiABIAdBvAxsakEHaiEDIAMgAjoAACAAQQQQLCECIAJBAWohAiACQf8BcSEEIAEgB0G8DGxqQQhqIQMgAyAEOgAAIAJB/wFxIQIgAgRAIAEgB0G8DGxqQQlqIQJBACEBA0AgAEEIECwhByAHQf8BcSEHIAIgAWohBCAEIAc6AAAgAUEBaiEBIAMtAAAhByAHQf8BcSEHIAEgB0kNAAsLIABBBBAVQQAMCQsgAEEUEBUMAgsgAEEUEBUMAQsgBEEBdAwCC0EADAUFQQALCyEQIABBBhAsIQEgAUEBaiEBIABB/AFqIQUgBSABNgIAIAFBGGwhASAAIAEQTSEBIABBgANqIQ4gDiABNgIAIAFFBEAgAEEDEBVBAAwECyAFKAIAIQIgAkEYbCECIAFBACACEHoaIAUoAgAhAQJAIAFBAEoEQEEAIQcCQAJAAkACQAJAAkACQAJAA0AgDigCACEEIABBEBAsIQEgAUH//wNxIQIgAEGAAmogB0EBdGohAyADIAI7AQAgAUH//wNxIQEgAUECSw0BIABBGBAsIQIgBCAHQRhsaiEBIAEgAjYCACAAQRgQLCECIAQgB0EYbGpBBGohAyADIAI2AgAgASgCACEBIAIgAUkNAiAAQRgQLCEBIAFBAWohASAEIAdBGGxqQQhqIQIgAiABNgIAIABBBhAsIQEgAUEBaiEBIAFB/wFxIQEgBCAHQRhsakEMaiEIIAggAToAACAAQQgQLCEBIAFB/wFxIQIgBCAHQRhsakENaiEGIAYgAjoAACABQf8BcSEBIA0oAgAhAiABIAJODQMgCCwAACEBIAEEf0EAIQEDQCAAQQMQLCEDIABBARAsIQIgAgR/IABBBRAsBUEACyECIAJBA3QhAiACIANqIQIgAkH/AXEhAiAMIAFqIQMgAyACOgAAIAFBAWohASAILQAAIQIgAkH/AXEhAyABIANJDQALIAJB/wFxBUEACyEBIAFBBHQhASAAIAEQTSEBIAQgB0EYbGpBFGohCiAKIAE2AgAgAUUNBCAILAAAIQIgAgRAQQAhAgNAIAwgAmotAAAhC0EAIQMDQEEBIAN0IQkgCSALcSEJIAkEQCAAQQgQLCEJIAlB//8DcSERIAooAgAhASABIAJBBHRqIANBAXRqIRYgFiAROwEAIAlBEHQhCSAJQRB1IQkgDSgCACERIBEgCUwNCQUgASACQQR0aiADQQF0aiEJIAlBfzsBAAsgA0EBaiEDIANBCEkNAAsgAkEBaiECIAgtAAAhAyADQf8BcSEDIAIgA0kNAAsLIBUoAgAhASAGLQAAIQIgAkH/AXEhAiABIAJBsBBsakEEaiEBIAEoAgAhASABQQJ0IQEgACABEE0hASAEIAdBGGxqQRBqIQogCiABNgIAIAFFDQYgFSgCACECIAYtAAAhAyADQf8BcSEDIAIgA0GwEGxqQQRqIQIgAigCACECIAJBAnQhAiABQQAgAhB6GiAVKAIAIQIgBi0AACEBIAFB/wFxIQMgAiADQbAQbGpBBGohASABKAIAIQEgAUEASgRAQQAhAQNAIAIgA0GwEGxqIQIgAigCACEDIAAgAxBNIQIgCigCACEEIAQgAUECdGohBCAEIAI2AgAgCigCACECIAIgAUECdGohAiACKAIAIQQgBEUNCQJAIANBAEoEQCAILQAAIQkgA0F/aiECIAlB/wFxIQkgASAJcCEJIAlB/wFxIQkgBCACaiEEIAQgCToAACADQQFGDQEgASEDA0AgCC0AACEJIAlB/wFxIQQgAyAEbSEDIAooAgAgAUECdGohBCAEKAIAIQsgAkF/aiEEIAlB/wFxIQkgAyAJbyEJIAlB/wFxIQkgCyAEaiELIAsgCToAACACQQFKBEAgBCECDAELCwsLIAFBAWohASAVKAIAIQIgBi0AACEDIANB/wFxIQMgAiADQbAQbGpBBGohBCAEKAIAIQQgASAESA0ACwsgB0EBaiEHIAUoAgAhASAHIAFIDQAMCgALAAsgAEEUEBUMBgsgAEEUEBUMBQsgAEEUEBUMBAsgAEEDEBUMAwsgAEEUEBUMAgsgAEEDEBUMAQsgAEEDEBULQQAMBQsLIABBBhAsIQEgAUEBaiEBIABBhANqIQcgByABNgIAIAFBKGwhASAAIAEQTSEBIABBiANqIQogCiABNgIAIAFFBEAgAEEDEBVBAAwECyAHKAIAIQIgAkEobCECIAFBACACEHoaIAcoAgAhAQJAIAFBAEoEQEEAIQECQAJAAkACQAJAAkACQAJAAkACQANAIAooAgAhBCAEIAFBKGxqIQwgAEEQECwhAiACDQEgEygCACECIAJBA2whAiAAIAIQTSECIAQgAUEobGpBBGohCCAIIAI2AgAgAkUNAiAAQQEQLCECIAIEfyAAQQQQLCECIAJBAWohAiACQf8BcQVBAQshAiAEIAFBKGxqQQhqIQYgBiACOgAAIABBARAsIQICQCACBEAgAEEIECwhAiACQQFqIQIgAkH//wNxIQMgDCADOwEAIAJB//8DcSECIAJFDQFBACECIBMoAgAhAwNAIANBf2ohAyADEC0hAyAAIAMQLCEDIANB/wFxIQMgCCgCACENIA0gAkEDbGohDSANIAM6AAAgEygCACEDIANBf2ohAyADEC0hAyAAIAMQLCENIA1B/wFxIQkgCCgCACEDIAMgAkEDbGpBAWohCyALIAk6AAAgAyACQQNsaiEDIAMsAAAhCyALQf8BcSERIBMoAgAhAyADIBFMDQYgDUH/AXEhDSADIA1MDQcgCyAJQRh0QRh1RiENIA0NCCACQQFqIQIgDC8BACENIA1B//8DcSENIAIgDUkNAAsFIAxBADsBAAsLIABBAhAsIQIgAg0GIAYsAAAhAyATKAIAIgxBAEohAgJAAkAgA0H/AXFBAUoEQCACRQ0BQQAhAgNAIABBBBAsIQMgA0H/AXEhAyAIKAIAIQwgDCACQQNsakECaiEMIAwgAzoAACAGLQAAIQwgDEH/AXEgA0ohAyADRQ0LIAJBAWohAiATKAIAIQMgAiADSA0ACwwBBSACBEAgCCgCACEIQQAhAgNAIAggAkEDbGpBAmohDSANQQA6AAAgAkEBaiECIAIgDEgNAAsLIAMNAQsMAQtBACECA0AgAEEIECwaIABBCBAsIQMgA0H/AXEhCCAEIAFBKGxqQQlqIAJqIQMgAyAIOgAAIABBCBAsIQggCEH/AXEhDCAEIAFBKGxqQRhqIAJqIQ0gDSAMOgAAIAMtAAAhAyADQf8BcSEDIA8oAgAhDCAMIANMDQogCEH/AXEhAyAFKAIAIQggAyAISCEDIANFDQsgAkEBaiECIAYtAAAhAyADQf8BcSEDIAIgA0kNAAsLIAFBAWohASAHKAIAIQIgASACSA0ADAwACwALIABBFBAVQQAMDgsgAEEDEBVBAAwNCyAAQRQQFUEADAwLIABBFBAVQQAMCwsgAEEUEBVBAAwKCyAAQRQQFUEADAkLIABBFBAVQQAMCAsgAEEUEBVBAAwHCyAAQRQQFUEADAYACwALCyAAQQYQLCEBIAFBAWohASAAQYwDaiECIAIgATYCAAJAIAFBAEoEQEEAIQECQAJAAkACQANAIABBARAsIQMgA0H/AXEhAyAAQZADaiABQQZsaiEEIAQgAzoAACAAQRAQLCEDIANB//8DcSEEIAAgAUEGbGpBkgNqIQMgAyAEOwEAIABBEBAsIQQgBEH//wNxIQggACABQQZsakGUA2ohBCAEIAg7AQAgAEEIECwhCCAIQf8BcSEGIAAgAUEGbGpBkQNqIQwgDCAGOgAAIAMuAQAhAyADDQEgBC4BACEDIAMNAiAIQf8BcSEDIAcoAgAhBCADIARIIQMgA0UNAyABQQFqIQEgAigCACEDIAEgA0gNAAwGAAsACyAAQRQQFUEADAgLIABBFBAVQQAMBwsgAEEUEBVBAAwGAAsACwsgABAhIABB1AdqIQEgAUEANgIAIBMoAgAhAQJAIAFBAEoEQEEAIQEDQAJAIBQoAgAhAiACQQJ0IQIgACACEE0hAyAAQZQGaiABQQJ0aiECIAIgAzYCACAUKAIAIQMgA0EBdCEDIANB/v///wdxIQMgACADEE0hByAAQZQHaiABQQJ0aiEDIAMgBzYCACAAIBAQTSEHIABB2AdqIAFBAnRqIQQgBCAHNgIAIAIoAgAhAiACRQ0AIAMoAgAhAyADRSEDIAdFIQcgByADcg0AIBQoAgAhAyADQQJ0IQMgAkEAIAMQehogAUEBaiEBIBMoAgAhAiABIAJIDQEMAwsLIABBAxAVQQAMBQsLIBooAgAhASAAQQAgARBWIQFBACABRQ0DGiAUKAIAIQEgAEEBIAEQViEBQQAgAUUNAxogGigCACEBIABB3ABqIQIgAiABNgIAIBQoAgAhASAAQeAAaiECIAIgATYCACABQQF0IQIgAkH+////B3EhBCAFKAIAIQggCEEASgR/IA4oAgAhByABQQJtIQNBACECQQAhAQNAIAcgAUEYbGohBSAFKAIAIQUgBSADSSEGIAUgAyAGGyEGIAcgAUEYbGpBBGohBSAFKAIAIQUgBSADSSEMIAUgAyAMGyEFIAUgBmshBSAHIAFBGGxqQQhqIQYgBigCACEGIAUgBm4hBSAFIAJKIQYgBSACIAYbIQIgAUEBaiEBIAEgCEgNAAsgAkECdCEBIAFBBGoFQQQLIQEgEygCACECIAIgAWwhASAAQQxqIQIgBCABSyEDIAIgBCABIAMbIgI2AgAgAEHVCmohASABQQE6AAAgAEHEAGohASABKAIAIQECQCABBEAgAEHQAGohASABKAIAIQEgAEHIAGohAyADKAIAIQMgASADRwRAQcwWQcQTQaAgQYQXEAQLIABBzABqIQMgAygCACEDIAJB3AtqIQIgAiADaiECIAIgAU0NASAAQQMQFUEADAULCyAAEB8hASAAQShqIQAgACABNgIAQQEMAwsgACACQQYQIiEBIAFBAEchASACLAAAIQMgA0HmAEYhAyABIANxBEAgAkEBaiEBIAEsAAAhASABQekARgRAIAJBAmohASABLAAAIQEgAUHzAEYEQCACQQNqIQEgASwAACEBIAFB6ABGBEAgAkEEaiEBIAEsAAAhASABQeUARgRAIAJBBWohASABLAAAIQEgAUHhAEYEQCAAEDAhASABQf8BcUHkAEYEQCAAEDAhASABQf8BcUUEQCAAQSYQFUEADAoLCwsLCwsLCwsgAEEiEBULQQALIQAgGSQGIAALDwEBfyAAQdwLEE0hASABCz8BAX8gAEEkaiEBIAEsAAAhASABBH9BAAUgAEEUaiEBIAEoAgAhASAAQRhqIQAgACgCACEAIAEgAGsLIQAgAAuBAgECfyAAQdgKaiEBIAEoAgAhAQJ/AkAgAUF/Rw0AIAAQMCEBIABB1ABqIQIgAigCACECIAIEf0EABSABQf8BcUHPAEcEQCAAQR4QFUEADAMLIAAQMCEBIAFB/wFxQecARwRAIABBHhAVQQAMAwsgABAwIQEgAUH/AXFB5wBHBEAgAEEeEBVBAAwDCyAAEDAhASABQf8BcUHTAEcEQCAAQR4QFUEADAMLIAAQMyEBIAEEQCAAQdMKaiEBIAEsAAAhASABQQFxIQEgAUUNAiAAQdwKaiEBIAFBADYCACAAQdQKaiEBIAFBADoAACAAQSAQFQtBAAsMAQsgABBKCyEAIAALFAEBfwNAIAAQLiEBIAFBf0cNAAsLZQEEfyAAQRRqIQMgAygCACEFIAUgAmohBiAAQRxqIQQgBCgCACEEIAYgBEsEfyAAQdQAaiEAIABBATYCAEEABSABIAUgAhB5GiADKAIAIQAgACACaiEAIAMgADYCAEEBCyEAIAALaAECfyAAEDAhAiACQf8BcSECIAAQMCEBIAFB/wFxIQEgAUEIdCEBIAEgAnIhAiAAEDAhASABQf8BcSEBIAFBEHQhASACIAFyIQIgABAwIQAgAEH/AXEhACAAQRh0IQAgAiAAciEAIAALEwEBf0EEEF4hACAAQQA2AgAgAAsTAQF/IAAoAgAhASABEBAgABBfCyEAIAAoAgAhACAABH8gAEEEaiEAIAAoAgAFQQALIQAgAAsaACAAKAIAIQAgAAR/IAAoAgAFQQALIQAgAAvbBwISfwF9IwYhECMGQRBqJAYgEEEEaiELIBAhDCAEQQA2AgAgACgCACEGAkACQCAGDQBBICEFA0ACQCALQQA2AgAgDEEANgIAIAUgAkohBiACIAUgBhshBiABIAYgCyAMQQAQGyEKIAAgCjYCAAJAAkACQAJAIAwoAgAOAgEAAgsgAiAFTCEHIAdBAXMhBSAFQQFxIQUgBiAFdCEFQQFBAiAHGyEGIAYhCUEAIAggBxshCCAFIQYMAgsgCygCACEHIAQoAgAhBSAFIAdqIQUgBCAFNgIAIAEgB2ohAUEAIQkgAiAHayECDAELQQEhCUF/IQgLAkACQAJAIAlBA3EOAwABAAELDAELDAELIAoEQCAKIQYMAwUgBiEFDAILAAsLIAkEfyAIBSAKIQYMAQshEgwBCyAGQQRqIQogCigCACEIIAhBAnQhCCAIEF4hDSANRQRAEAYLIAooAgAhCCAIQQBKBEAgCEECdCEIIA1BACAIEHoaC0EAIQVBACEKIAEhCCAGIQECQAJAAkADQCALQQA2AgAgDEEANgIAIAJBIEghBiACQSAgBhshCSABIAggCUEAIAsgDBAUIQEgAUUEQEEgIQYgCSEBA0AgAiAGSiEGIAZFDQQgAUEBdCEGIAYgAkohASACIAYgARshASAAKAIAIQkgCSAIIAFBACALIAwQFCEJIAlFDQALIAkhAQsgBCgCACEGIAYgAWohBiAEIAY2AgAgCCABaiEIIAIgAWshBiAMKAIAIREgESAKaiEJAkACQCAFIAlIBEAgBUUhAiAFQQF0IQFBgCAgASACGyECIAAoAgAhASABQQRqIQUgBSgCACEFIAVBAEoEQCACQQJ0IQ5BACEBA0AgDSABQQJ0aiEHIAcoAgAhBSAFIA4QYCEFIAVFDQYgByAFNgIAIAFBAWohASAAKAIAIQcgB0EEaiEFIAUoAgAhBSABIAVIDQALIAUhDiAHIQEMAgsFIAAoAgAiAUEEaiEHIAUhAiAHKAIAIQ4MAQsMAQsgDkEASgRAIBFBAEohEyALKAIAIRRBACEHA0AgEwRAIBQgB0ECdGooAgAhFSANIAdBAnRqKAIAIRZBACEFA0AgFSAFQQJ0aiEPIA8qAgAhFyAXQwAAgD9eBEBDAACAPyEXBSAXQwAAgL9dBEBDAACAvyEXCwsgBSAKaiEPIBYgD0ECdGohDyAPIBc4AgAgBUEBaiEFIAUgEUcNAAsLIAdBAWohBSAFIA5IBEAgBSEHDAELCwsLIAIhBSAJIQogBiECDAAACwALEAYMAQsgAyANNgIAIAohEgsLIBAkBiASCzwBAX8gAEEIdCECIAFB/wFxIQEgAEEYdiEAIAAgAXMhACAAQQJ0QdAZaiEAIAAoAgAhACAAIAJzIQAgAAvvBAEFfyAAQdgLaiEGIAZBADYCACAAQdQLaiEGIAZBADYCACAAQdQAaiEIIAgoAgAhBgJ/IAYEf0EABSAAQSRqIQcCQAJAA0ACQCAAECAhBkEAIAZFDQUaIABBARAsIQYgBkUNACAHLAAAIQYgBg0CA0AgABAZIQYgBkF/Rw0ACyAIKAIAIQYgBkUNAUEADAULCwwBCyAAQSMQFUEADAILIABBxABqIQYgBigCACEGIAYEQCAAQcgAaiEGIAYoAgAhByAAQdAAaiEGIAYoAgAhBiAHIAZHBEBB0xNBxBNBuhhBixQQBAsLIABBjANqIQcgBygCACEGIAZBf2ohBiAGEC0hBiAAIAYQLCEIIAhBf0YEf0EABSAHKAIAIQYgCCAGSAR/IAUgCDYCACAAQZADaiAIQQZsaiEHIAcsAAAhBQJAAkAgBQR/IABB6ABqIQUgBSgCACEFIABBARAsIQYgAEEBECwhCCAGQQBHIQkgBywAACEGIAZFIQcgBUEBdSEGIAkgB3IEfwwCBSAAQeQAaiEKIAooAgAhCSAFIAlrIQkgCUECdSEJIAEgCTYCACAKKAIAIQEgASAFaiEJIAYhASAJQQJ1CwUgAEHkAGohBSAFKAIAIQZBACEIIAYhBSAGQQF1IQZBASEHDAELIQYMAQsgAUEANgIAIAYhAQsgAiAGNgIAIAhBAEchAiACIAdyBEAgAyABNgIABSAFQQNsIQIgAEHkAGohASABKAIAIQAgAiAAayEAIABBAnUhACADIAA2AgAgASgCACEAIAAgAmohACAAQQJ1IQULIAQgBTYCAEEBBUEACwsLCyEAIAALjB0CJ38DfSMGIRwjBkGAFGokBiAcQYAMaiEdIBxBgARqISQgHEGAAmohFCAcISAgAi0AACEHIAdB/wFxIQcgAEHcAGogB0ECdGohByAHKAIAIR4gAEGIA2ohByAHKAIAIRYgAkEBaiEHIActAAAhByAHQf8BcSEXIBYgF0EobGohIiAeQQF1IR9BACAfayEpIABBBGohGiAaKAIAIQcCfwJAIAdBAEoEfyAWIBdBKGxqQQRqISogAEH4AWohKyAAQfAAaiElIABB6ApqIRggAEHkCmohISAUQQFqISwDQAJAICooAgAhByAHIA1BA2xqQQJqIQcgBy0AACEHIAdB/wFxIQcgHSANQQJ0aiEVIBVBADYCACAWIBdBKGxqQQlqIAdqIQcgBy0AACEHIAdB/wFxIQ8gAEH4AGogD0EBdGohByAHLgEAIQcgB0UNACArKAIAIRAgAEEBECwhBwJAAkAgB0UNACAQIA9BvAxsakG0DGohByAHLQAAIQcgB0H/AXEhByAHQX9qIQcgB0ECdEGQCGohByAHKAIAISMgAEHYB2ogDUECdGohByAHKAIAIRkgIxAtIQcgB0F/aiEHIAAgBxAsIQggCEH//wNxIQggGSAIOwEAIAAgBxAsIQcgB0H//wNxIQcgGUECaiEIIAggBzsBACAQIA9BvAxsaiEmICYsAAAhByAHBEBBACETQQIhBwNAIBAgD0G8DGxqQQFqIBNqIQggCC0AACEIIAhB/wFxIRsgECAPQbwMbGpBIWogG2ohCCAILAAAIQwgDEH/AXEhJyAQIA9BvAxsakExaiAbaiEIIAgsAAAhCCAIQf8BcSEoQQEgKHQhCSAJQX9qIS0gCARAICUoAgAhCyAQIA9BvAxsakHBAGogG2ohCCAILQAAIQggCEH/AXEhCiALIApBsBBsaiEOIBgoAgAhCCAIQQpIBEAgABA0CyAhKAIAIQkgCUH/B3EhCCALIApBsBBsakEkaiAIQQF0aiEIIAguAQAhCCAIQX9KBEAgCyAKQbAQbGpBCGohDiAOKAIAIQ4gDiAIaiEOIA4tAAAhDiAOQf8BcSEOIAkgDnYhCSAhIAk2AgAgGCgCACEJIAkgDmshCSAJQQBIIQ5BACAJIA4bIRFBfyAIIA4bIQkgGCARNgIABSAAIA4QNSEJCyALIApBsBBsakEXaiEIIAgsAAAhCCAIBEAgCyAKQbAQbGpBqBBqIQggCCgCACEIIAggCUECdGohCCAIKAIAIQkLBUEAIQkLIAwEQEEAIQsgByEIA0AgCSAtcSEKIBAgD0G8DGxqQdIAaiAbQQR0aiAKQQF0aiEKIAouAQAhDCAJICh1IQogDEF/SgR/ICUoAgAhDiAOIAxBsBBsaiESIBgoAgAhCSAJQQpIBEAgABA0CyAhKAIAIREgEUH/B3EhCSAOIAxBsBBsakEkaiAJQQF0aiEJIAkuAQAhCSAJQX9KBEAgDiAMQbAQbGpBCGohEiASKAIAIRIgEiAJaiESIBItAAAhEiASQf8BcSESIBEgEnYhESAhIBE2AgAgGCgCACERIBEgEmshESARQQBIIRJBACARIBIbIRFBfyAJIBIbIQkgGCARNgIABSAAIBIQNSEJCyAOIAxBsBBsakEXaiERIBEsAAAhESARBEAgDiAMQbAQbGpBqBBqIQwgDCgCACEMIAwgCUECdGohCSAJKAIAIQkLIAlB//8DcQVBAAshCSAZIAhBAXRqIAk7AQAgCEEBaiEIIAtBAWohCyALICdHBEAgCiEJDAELCyAHICdqIQcLIBNBAWohEyAmLQAAIQggCEH/AXEhCCATIAhJDQALCyAYKAIAIQcgB0F/Rg0AICxBAToAACAUQQE6AAAgECAPQbwMbGpBuAxqIQcgBygCACETIBNBAkoEQCAjQf//A2ohG0ECIQcDQCAQIA9BvAxsakHACGogB0EBdGohCCAILQAAIQggCEH/AXEhCyAQIA9BvAxsaiAHQQF0akHBCGohCCAILQAAIQggCEH/AXEhCiAQIA9BvAxsakHSAmogB0EBdGohCCAILwEAIQggCEH//wNxIQggECAPQbwMbGpB0gJqIAtBAXRqIQkgCS8BACEJIAlB//8DcSEJIBAgD0G8DGxqQdICaiAKQQF0aiEMIAwvAQAhDCAMQf//A3EhDCAZIAtBAXRqIQ4gDi4BACEOIBkgCkEBdGohFSAVLgEAIRUgCCAJIAwgDiAVEDYhCCAZIAdBAXRqIQ4gDi4BACEJICMgCGshDAJAAkAgCQRAIAwgCEghFSAMIAggFRtBAXQhFSAUIApqIQogCkEBOgAAIBQgC2ohCyALQQE6AAAgFCAHaiELIAtBAToAACAVIAlMBEAgDCAISg0DIBsgCWshCAwCCyAJQQFxIQsgCwR/IAlBAWohCSAJQQF2IQkgCCAJawUgCUEBdSEJIAkgCGoLIQgFIBQgB2ohCSAJQQA6AAALCyAOIAg7AQALIAdBAWohByAHIBNIDQALCyATQQBKBEBBACEHA0AgFCAHaiEIIAgsAAAhCCAIRQRAIBkgB0EBdGohCCAIQX87AQALIAdBAWohByAHIBNHDQALCwwBCyAVQQE2AgALIA1BAWohDSAaKAIAIQcgDSAHSA0BDAMLCyAAQRUQFUEABQwBCwwBCyAAQcQAaiETIBMoAgAhCSAJBEAgAEHIAGohCCAIKAIAIQggAEHQAGohDSANKAIAIQ0gCCANRwRAQdMTQcQTQc8ZQecUEAQLCyAHQQJ0IQggJCAdIAgQeRogIi4BACEIIAgEQCAWIBdBKGxqKAIEIQ0gCEH//wNxIQxBACEIA0AgDSAIQQNsaiELIAstAAAhCyALQf8BcSELIB0gC0ECdGohCyALKAIAIQ8gHSANIAhBA2xqLQABQQJ0aiEKAkACQCAPRQ0AIAooAgAhDyAPRQ0ADAELIApBADYCACALQQA2AgALIAhBAWohCCAIIAxJDQALCyAWIBdBKGxqQQhqIQsgCywAACEIIAgEQCAWIBdBKGxqQQRqIQxBACEJIAchDQNAAkAgDUEASgRAIAwoAgAhD0EAIQdBACEIA0AgDyAIQQNsakECaiEKIAotAAAhCiAKQf8BcSEKIAkgCkYEQCAdIAhBAnRqIQogCigCACEQICAgB2ohCiAQBEAgCkEBOgAAIBQgB0ECdGohCiAKQQA2AgAFIApBADoAACAAQZQGaiAIQQJ0aiEKIAooAgAhCiAUIAdBAnRqIRAgECAKNgIACyAHQQFqIQcLIAhBAWohCCAIIA1IDQALBUEAIQcLIBYgF0EobGpBGGogCWohCCAILQAAIQggCEH/AXEhCCAAIBQgByAfIAggIBA3IAlBAWohCSALLQAAIQcgB0H/AXEhByAJIAdPDQAgGigCACENDAELCyATKAIAIQkLIAkEQCAAQcgAaiEHIAcoAgAhByAAQdAAaiEIIAgoAgAhCCAHIAhHBEBB0xNBxBNB8BlB5xQQBAsLICIuAQAhByAHBEAgFiAXQShsaigCBCENIB5BAUohDCAHQf//A3EhCANAIAhBf2ohCSANIAlBA2xqIQcgBy0AACEHIAdB/wFxIQcgAEGUBmogB0ECdGohByAHKAIAISAgDSAJQQNsakEBaiEHIActAAAhByAHQf8BcSEHIABBlAZqIAdBAnRqIQcgBygCACEPIAwEQEEAIQcDQCAgIAdBAnRqIQsgCyoCACEuIA8gB0ECdGoiECoCACIvQwAAAABeIQogLkMAAAAAXgRAIAoEQCAuITAgLiAvkyEuBSAuIC+SITALBSAKBEAgLiEwIC4gL5IhLgUgLiAvkyEwCwsgCyAwOAIAIBAgLjgCACAHQQFqIQcgByAfSA0ACwsgCEEBSgRAIAkhCAwBCwsLIBooAgAhByAHQQBKBEAgH0ECdCEJQQAhBwNAICQgB0ECdGohCCAIKAIAIQ0gAEGUBmogB0ECdGohCCANBEAgCCgCACEIIAhBACAJEHoaBSAIKAIAIQggAEHYB2ogB0ECdGohDSANKAIAIQ0gACAiIAcgHiAIIA0QOAsgB0EBaiEHIBooAgAhCCAHIAhIDQALIAhBAEoEQEEAIQcDQCAAQZQGaiAHQQJ0aiEIIAgoAgAhCCACLQAAIQkgCUH/AXEhCSAIIB4gACAJEDkgB0EBaiEHIBooAgAhCCAHIAhIDQALCwsgABAhIABB1QpqIQIgAiwAACEHIAcEQCAAQZgIaiEGIAYgKTYCACAeIAVrIQYgAEH4CmohByAHIAY2AgAgAEGcCGohBiAGQQE2AgAgAkEAOgAABSAAQfgKaiEHIAcoAgAhAiACBEAgBCADayEIIAIgCEgEQCACIANqIQMgBiADNgIAIAdBADYCAAUgAiAIayECIAcgAjYCACAGIAQ2AgAgBCEDCwsLIABB4ApqIQIgAigCACECIABB8ApqIQYgBigCACEHIABBnAhqIggoAgAhBgJAAkAgAiAHRgRAIAYEQCAAQdMKaiECIAIsAAAhAiACQQRxIQIgAgRAIABB9ApqIQIgAigCACECIABBmAhqIQYgBigCACEHIAUgA2shCSAJIAdqIQkgAiAJSSEJIAIgB0khDSACIAdrIQJBACACIA0bIQIgAiADaiECIAIgBUohByAFIAIgBxshAiAJBEAgASACNgIAIAYoAgAhACAAIAJqIQAgBiAANgIAQQEMBgsLCyAAQfQKaiECIAIoAgAhAiADIB9rIQYgBiACaiEGIABBmAhqIQIgAiAGNgIAIAhBATYCAAwBBSAAQZgIaiECIAYNAQsMAQsgBCADayEDIAIoAgAhBCADIARqIQMgAiADNgIACyATKAIAIQIgAgRAIABByABqIQIgAigCACECIABB0ABqIQAgACgCACEAIAIgAEcEQEHTE0HEE0HkGkHnFBAECwsgASAFNgIAQQELIQAgHCQGIAALqAIBBX8gAEHoCmohBSAFKAIAIQICQCACQQBIBEBBACEABSACIAFIBEAgAUEYSgRAIABBGBAsIQIgAUFoaiEBIAAgARAsIQAgAEEYdCEAIAAgAmohACAADwsgAkUEQCAAQeQKaiECIAJBADYCAAsgAEHkCmohAwJAAkACQANAIAAQLiECIAJBf0YNASAFKAIAIQQgAiAEdCECIAMoAgAhBiAGIAJqIQIgAyACNgIAIAUgBEEIaiICNgIAIAIgAUgNAAwCAAsACyAFQX82AgBBACEADAQLIARBeEgEQEEAIQAMBAsLCyAAQeQKaiEEIAQoAgAhA0EBIAF0IQAgAEF/aiEAIAMgAHEhACADIAF2IQMgBCADNgIAIAIgAWshASAFIAE2AgALCyAAC40CAAJAIABBAEgEf0EABSAAQYCAAUgEQCAAQRBIBEAgAEGACGohACAALAAAIQAMAwsgAEGABEgEQCAAQQV2IQAgAEGACGohACAALAAAIQAgAEEFaiEABSAAQQp2IQAgAEGACGohACAALAAAIQAgAEEKaiEACwwCCyAAQYCAgAhIBH8gAEGAgCBIBH8gAEEPdiEAIABBgAhqIQAgACwAACEAIABBD2oFIABBFHYhACAAQYAIaiEAIAAsAAAhACAAQRRqCwUgAEGAgICAAkgEfyAAQRl2IQAgAEGACGohACAALAAAIQAgAEEZagUgAEEediEAIABBgAhqIQAgACwAACEAIABBHmoLCwshAAsgAAuiAQEDfyAAQdQKaiECIAIsAAAhAQJAAkAgAQ0AIABB3ApqIQEgASgCACEBIAEEQEF/IQMFIAAQLyEBIAEEQCACLAAAIQEgAQ0CQaEUQcQTQfYLQbUUEAQFQX8hAwsLDAELIAFBf2pBGHRBGHUhASACIAE6AAAgAEHsCmohASABKAIAIQIgAkEBaiECIAEgAjYCACAAEDAhACAAQf8BcSEDCyADC6wCAQd/IABB3ApqIQIgAigCACEBAkAgAUUEQCAAQdgKaiEEIAQoAgAhASABQX9GBEAgAEHQCGohASABKAIAIQEgAUF/aiEBIABB4ApqIQMgAyABNgIAIAAQMSEBIAFFBEAgAkEBNgIADAMLIABB0wpqIQEgASwAACEBIAFBAXEhASABBH8gBCgCAAUgAEEgEBUMAwshAQsgAUEBaiEHIAQgBzYCACAAQdQIaiABaiEDIAMsAAAhBiAGQf8BcSEDIAZBf0cEQCACQQE2AgAgAEHgCmohAiACIAE2AgALIABB0AhqIQEgASgCACEBIAcgAU4EQCAEQX82AgALIABB1ApqIQAgACwAACEBIAEEQEHFFEHEE0HoC0HaFBAEBSAAIAY6AAAgAyEFCwsLIAULUQEDfyAAQRRqIQMgAygCACEBIABBHGohAiACKAIAIQIgASACSQR/IAFBAWohACADIAA2AgAgASwAAAUgAEHUAGohACAAQQE2AgBBAAshACAACyABAX8gABAyIQEgAQR/IAAQMwUgAEEeEBVBAAshACAAC2ABAX8gABAwIQEgAUH/AXFBzwBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQEgAUH/AXFB5wBGBEAgABAwIQAgAEH/AXFB0wBGIQAFQQAhAAsFQQAhAAsFQQAhAAsgAAvZAwEGfyAAEDAhAQJ/IAFB/wFxBH8gAEEfEBVBAAUgABAwIQEgAEHTCmohAiACIAE6AAAgABAjIQUgABAjIQIgABAjGiAAECMhASAAQcwIaiEDIAMgATYCACAAECMaIAAQMCEBIAFB/wFxIQEgAEHQCGohAyADIAE2AgAgAEHUCGohBCAAIAQgARAiIQEgAUUEQCAAQQoQFUEADAILIABB8ApqIQQgBEF+NgIAIAIgBXEhAQJAIAFBf0cEQCADKAIAIQEgAUEASgRAA0ACQCABQX9qIQIgAEHUCGogAmohBiAGLAAAIQYgBkF/Rw0AIAFBAUwNBCACIQEMAQsLIAQgAjYCACAAQfQKaiEBIAEgBTYCAAsLCyAAQdUKaiEBIAEsAAAhASABBEAgAygCACEDIANBAEoEf0EAIQJBACEBA0AgAEHUCGogAWohBCAELQAAIQQgBEH/AXEhBCACIARqIQIgAUEBaiEBIAEgA0gNAAsgAkEbagVBGwshASAAQShqIQIgAigCACECIAEgA2ohASABIAJqIQEgAEEsaiEDIAMgAjYCACAAQTBqIQIgAiABNgIAIABBNGohASABIAU2AgALIABB2ApqIQAgAEEANgIAQQELCyEAIAALowEBB38gAEHoCmohAyADKAIAIQECQCABQRlIBEAgAEHkCmohBCABRQRAIARBADYCAAsgAEHUCmohBSAAQdwKaiEGA0AgBigCACEBIAEEQCAFLAAAIQEgAUUNAwsgABAuIQIgAkF/Rg0CIAMoAgAhASACIAF0IQIgBCgCACEHIAcgAmohAiAEIAI2AgAgAUEIaiECIAMgAjYCACABQRFIDQALCwsLrQUBCX8gABA0IAFBIGohAiACKAIAIQUCQAJAIAVFIgNFDQAgAUGkEGohAiACKAIAIQIgAg0AQX8hAQwBCyABQQRqIQIgAigCACECAkACQCACQQhKBEAgAUGkEGohAyADKAIAIQMgAw0BBSADDQELDAELIABB5ApqIQggCCgCACEJIAkQOiEHIAFBrBBqIQIgAigCACECIAJBAUoEQCABQaQQaigCACEKQQAhAwNAIAJBAXYhBSAFIANqIQQgCiAEQQJ0aiEGIAYoAgAhBiAGIAdLIQYgAiAFayECIAMgBCAGGyEDIAUgAiAGGyECIAJBAUoNAAsFQQAhAwsgAUEXaiECIAIsAAAhAiACRQRAIAFBqBBqIQIgAigCACECIAIgA0ECdGohAiACKAIAIQMLIAFBCGohASABKAIAIQEgASADaiEBIAEtAAAhASABQf8BcSEBIABB6ApqIQIgAigCACEAIAAgAUgEf0EAIQBBfwUgACABayEAIAkgAXYhASAIIAE2AgAgAwshASACIAA2AgAMAQsgAUEXaiEDIAMsAAAhAyADBEBBgRVBxBNB6gxBjBUQBAsCQCACQQBKBEAgASgCCCEIIABB5ApqIQlBACEBA0ACQCAIIAFqIQMgAywAACEEIARB/wFxIQMgBEF/RwRAIAUgAUECdGoh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IwZBEGokBiACIQECfCAAvUIgiKdB/////wdxIgNB/MOk/wNJBHwgA0GewZryA0kEfEQAAAAAAADwPwUgAEQAAAAAAAAAABByCwUgACAAoSADQf//v/8HSw0BGgJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwgQcgwECyABKwMAIAErAwhBARBwmgwDCyABKwMAIAErAwgQcpoMAgsgASsDACABKwMIQQEQcAsLIQAgAiQGIAALywEBA38jBiECIwZBEGokBiACIQECQCAAvUIgiKdB/////wdxIgNB/MOk/wNJBEAgA0GAgMDyA08EQCAARAAAAAAAAAAAQQAQcCEACwUgA0H//7//B0sEQCAAIAChIQAMAgsCQAJAAkACQAJAIAAgARBuQQNxDgMAAQIDCyABKwMAIAErAwhBARBwIQAMBQsgASsDACABKwMIEHIhAAwECyABKwMAIAErAwhBARBwmiEADAMLIAErAwAgASsDCBBymiEACwsLIAIkBiAAC5sDAwJ/AX4CfCAAvSIDQj+IpyEBAnwCfwJAIANCIIinQf////8HcSICQarGmIQESwR8IANC////////////AINCgICAgICAgPj/AFYEQCAADwsgAETvOfr+Qi6GQGQEQCAARAAAAAAAAOB/og8FIABE0rx63SsjhsBjIABEUTAt1RBJh8BjcUUNAkQAAAAAAAAAACIADwsABSACQcLc2P4DSwRAIAJBscXC/wNLDQIgAUEBcyABawwDCyACQYCAwPEDSwR8QQAhASAABSAARAAAAAAAAPA/oA8LCwwCCyAARP6CK2VHFfc/oiABQQN0QYATaisDAKCqCyEBIAAgAbciBEQAAOD+Qi7mP6KhIgAgBER2PHk17znqPaIiBaELIQQgACAEIAQgBCAEoiIAIAAgACAAIABE0KS+cmk3Zj6iRPFr0sVBvbu+oKJELN4lr2pWET+gokSTvb4WbMFmv6CiRD5VVVVVVcU/oKKhIgCiRAAAAAAAAABAIAChoyAFoaBEAAAAAAAA8D+gIQAgAUUEQCAADwsgACABEGULnwMDAn8BfgV8IAC9IgNCIIinIQECfyADQgBTIgIgAUGAgMAASXIEfyADQv///////////wCDQgBRBEBEAAAAAAAA8L8gACAAoqMPCyACRQRAIABEAAAAAAAAUEOi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mgDjqR0AXmGRAAgb5gCFmWUAoBRfAI1AaACA2P8AJ3NNAAYGMQDKVhUAyahzAHviYABrjMAAQcMSC11A+yH5PwAAAAAtRHQ+AAAAgJhG+DwAAABgUcx4OwAAAICDG/A5AAAAQCAlejgAAACAIoLjNgAAAAAd82k1AAAAAAAA4D8AAAAAAADgvwAAAAAAAPA/AAAAAAAA+D8AQagTCwgG0M9D6/1MPgBBuxMLigZAA7jiP09nZ1MuL3N0Yl92b3JiaXMuYwBmLT5hbGxvYy5hbGxvY19idWZmZXJfbGVuZ3RoX2luX2J5dGVzID09IGYtPnRlbXBfb2Zmc2V0AHZvcmJpc19kZWNvZGVfaW5pdGlhbABmLT5ieXRlc19pbl9zZWcgPiAwAGdldDhfcGFja2V0X3JhdwBmLT5ieXRlc19pbl9zZWcgPT0gMABuZXh0X3NlZ21lbnQAdm9yYmlzX2RlY29kZV9wYWNrZXRfcmVzdAAhYy0+c3BhcnNlAGNvZGVib29rX2RlY29kZV9zY2FsYXJfcmF3ACFjLT5zcGFyc2UgfHwgeiA8IGMtPnNvcnRlZF9lbnRyaWVzAGNvZGVib29rX2RlY29kZV9kZWludGVybGVhdmVfcmVwZWF0AHogPCBjLT5zb3J0ZWRfZW50cmllcwBjb2RlYm9va19kZWNvZGVfc3RhcnQAKG4gJiAzKSA9PSAwAGltZGN0X3N0ZXAzX2l0ZXIwX2xvb3AAMABnZXRfd2luZG93AGYtPnRlbXBfb2Zmc2V0ID09IGYtPmFsbG9jLmFsbG9jX2J1ZmZlcl9sZW5ndGhfaW5fYnl0ZXMAc3RhcnRfZGVjb2RlcgB2b3JiaXNjLT5zb3J0ZWRfZW50cmllcyA9PSAwAGNvbXB1dGVfY29kZXdvcmRzAHogPj0gMCAmJiB6IDwgMzIAbGVuW2ldID49IDAgJiYgbGVuW2ldIDwgMzIAYXZhaWxhYmxlW3ldID09IDAAayA9PSBjLT5zb3J0ZWRfZW50cmllcwBjb21wdXRlX3NvcnRlZF9odWZmbWFuAGMtPnNvcnRlZF9jb2Rld29yZHNbeF0gPT0gY29kZQBsZW4gIT0gTk9fQ09ERQBpbmNsdWRlX2luX3NvcnQAcG93KChmbG9hdCkgcisxLCBkaW0pID4gZW50cmllcwBsb29rdXAxX3ZhbHVlcwAoaW50KSBmbG9vcihwb3coKGZsb2F0KSByLCBkaW0pKSA8PSBlbnRyaWVzAOoPBG5hbWUB4g9+AAVhYm9ydAENZW5sYXJnZU1lbW9yeQIOZ2V0VG90YWxNZW1vcnkDF2Fib3J0T25DYW5ub3RHcm93TWVtb3J5BA5fX19hc3NlcnRfZmFpbAULX19fc2V0RXJyTm8GBl9hYm9ydAcWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwgQX19ncm93V2FzbU1lbW9yeQkKc3RhY2tBbGxvYwoJc3RhY2tTYXZlCwxzdGFja1Jlc3RvcmUME2VzdGFibGlzaFN0YWNrU3BhY2UNCHNldFRocmV3DgtzZXRUZW1wUmV0MA8LZ2V0VGVtcFJldDAQEV9zdGJfdm9yYmlzX2Nsb3NlEQ5fdm9yYmlzX2RlaW5pdBILX3NldHVwX2ZyZWUTGl9zdGJfdm9yYmlzX2ZsdXNoX3B1c2hkYXRhFCFfc3RiX3ZvcmJpc19kZWNvZGVfZnJhbWVfcHVzaGRhdGEVBl9lcnJvchYgX3ZvcmJpc19zZWFyY2hfZm9yX3BhZ2VfcHVzaGRhdGEXGF9pc193aG9sZV9wYWNrZXRfcHJlc2VudBgVX3ZvcmJpc19kZWNvZGVfcGFja2V0GQxfZ2V0OF9wYWNrZXQaFF92b3JiaXNfZmluaXNoX2ZyYW1lGxlfc3RiX3ZvcmJpc19vcGVuX3B1c2hkYXRhHAxfdm9yYmlzX2luaXQdDl9zdGFydF9kZWNvZGVyHg1fdm9yYmlzX2FsbG9jHxtfc3RiX3ZvcmJpc19nZXRfZmlsZV9vZmZzZXQgE19tYXliZV9zdGFydF9wYWNrZXQhDV9mbHVzaF9wYWNrZXQiBV9nZXRuIwZfZ2V0MzIkE19zdGJfdm9yYmlzX2pzX29wZW4lFF9zdGJfdm9yYmlzX2pzX2Nsb3NlJhdfc3RiX3ZvcmJpc19qc19jaGFubmVscycaX3N0Yl92b3JiaXNfanNfc2FtcGxlX3JhdGUoFV9zdGJfdm9yYmlzX2pzX2RlY29kZSkNX2NyYzMyX3VwZGF0ZSoWX3ZvcmJpc19kZWNvZGVfaW5pdGlhbCsaX3ZvcmJpc19kZWNvZGVfcGFja2V0X3Jlc3QsCV9nZXRfYml0cy0FX2lsb2cuEF9nZXQ4X3BhY2tldF9yYXcvDV9uZXh0X3NlZ21lbnQwBV9nZXQ4MQtfc3RhcnRfcGFnZTIQX2NhcHR1cmVfcGF0dGVybjMdX3N0YXJ0X3BhZ2Vfbm9fY2FwdHVyZXBhdHRlcm40DV9wcmVwX2h1ZmZtYW41G19jb2RlYm9va19kZWNvZGVfc2NhbGFyX3JhdzYOX3ByZWRpY3RfcG9pbnQ3D19kZWNvZGVfcmVzaWR1ZTgJX2RvX2Zsb29yOQ1faW52ZXJzZV9tZGN0OgxfYml0X3JldmVyc2U7EV9tYWtlX2Jsb2NrX2FycmF5PBJfc2V0dXBfdGVtcF9tYWxsb2M9JF9jb2RlYm9va19kZWNvZGVfZGVpbnRlcmxlYXZlX3JlcGVhdD4PX3Jlc2lkdWVfZGVjb2RlPxVfY29kZWJvb2tfZGVjb2RlX3N0ZXBAEF9jb2RlYm9va19kZWNvZGVBFl9jb2RlYm9va19kZWNvZGVfc3RhcnRCCl9kcmF3X2xpbmVDF19pbWRjdF9zdGVwM19pdGVyMF9sb29wRBlfaW1kY3Rfc3RlcDNfaW5uZXJfcl9sb29wRRlfaW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wRh9faW1kY3Rfc3RlcDNfaW5uZXJfc19sb29wX2xkNjU0RwhfaXRlcl81NEgLX2dldF93aW5kb3dJEF92b3JiaXNfdmFsaWRhdGVKDV9zdGFydF9wYWNrZXRLBV9za2lwTAtfY3JjMzJfaW5pdE0NX3NldHVwX21hbGxvY04QX3NldHVwX3RlbXBfZnJlZU8SX2NvbXB1dGVfY29kZXdvcmRzUBdfY29tcHV0ZV9zb3J0ZWRfaHVmZm1hblEcX2NvbXB1dGVfYWNjZWxlcmF0ZWRfaHVmZm1hblIPX2Zsb2F0MzJfdW5wYWNrUw9fbG9va3VwMV92YWx1ZXNUDl9wb2ludF9jb21wYXJlVQpfbmVpZ2hib3JzVg9faW5pdF9ibG9ja3NpemVXCl9hZGRfZW50cnlYEF9pbmNsdWRlX2luX3NvcnRZD191aW50MzJfY29tcGFyZVoYX2NvbXB1dGVfdHdpZGRsZV9mYWN0b3JzWw9fY29tcHV0ZV93aW5kb3dcE19jb21wdXRlX2JpdHJldmVyc2VdB19zcXVhcmVeB19tYWxsb2NfBV9mcmVlYAhfcmVhbGxvY2ESX3RyeV9yZWFsbG9jX2NodW5rYg5fZGlzcG9zZV9jaHVua2MRX19fZXJybm9fbG9jYXRpb25kB19tZW1jbXBlB19zY2FsYm5mBl9xc29ydGcFX3NpZnRoBF9zaHJpCF90cmlua2xlagRfc2hsawVfcG50emwIX2FfY3R6X2xtBl9jeWNsZW4LX19fcmVtX3BpbzJvEV9fX3JlbV9waW8yX2xhcmdlcAZfX19zaW5xBl9sZGV4cHIGX19fY29zcwRfY29zdARfc2ludQRfZXhwdgRfbG9ndwRfcG93eAtydW5Qb3N0U2V0c3kHX21lbWNweXoHX21lbXNldHsFX3Nicmt8C2R5bkNhbGxfaWlpfQJiMA=="),function(o){return o.charCodeAt(0)});var g=g!==void 0?g:{},v={};for(e in g)g.hasOwnProperty(e)&&(v[e]=g[e]);g.arguments=[],g.thisProgram="./this.program",g.quit=function(o,r){throw r},g.preRun=[],g.postRun=[];var j=!1,IA=!1,rA=!1,Bt=!1;j=typeof window=="object",IA=typeof importScripts=="function",rA=typeof process=="object"&&typeof bt=="function"&&!j&&!IA,Bt=!j&&!rA&&!IA;var bA="";function ke(o){return g.locateFile?g.locateFile(o,bA):bA+o}rA?(bA=__dirname+"/",g.read=function(r,E){var l;return A||(A=void 0),t||(t=void 0),r=t.normalize(r),l=A.readFileSync(r),E?l:l.toString()},g.readBinary=function(r){var E=g.read(r,!0);return E.buffer||(E=new Uint8Array(E)),LA(E.buffer),E},process.argv.length>1&&(g.thisProgram=process.argv[1].replace(/\\/g,"/")),g.arguments=process.argv.slice(2),typeof module<"u",process.on("uncaughtException",function(o){if(!(o instanceof Ae))throw o}),process.on("unhandledRejection",function(o,r){process.exit(1)}),g.quit=function(o){process.exit(o)},g.inspect=function(){return"[Emscripten Module object]"}):Bt?(typeof read<"u"&&(g.read=function(r){return read(r)}),g.readBinary=function(r){var E;return typeof readbuffer=="function"?new Uint8Array(readbuffer(r)):(LA(typeof(E=read(r,"binary"))=="object"),E)},typeof scriptArgs<"u"?g.arguments=scriptArgs:typeof arguments<"u"&&(g.arguments=arguments),typeof quit=="function"&&(g.quit=function(o){quit(o)})):(j||IA)&&(j?document.currentScript&&(bA=document.currentScript.src):bA=self.location.href,bA=bA.indexOf("blob:")!==0?bA.split("/").slice(0,-1).join("/")+"/":"",g.read=function(r){var E=new XMLHttpRequest;return E.open("GET",r,!1),E.send(null),E.responseText},IA&&(g.readBinary=function(r){var E=new XMLHttpRequest;return E.open("GET",r,!1),E.responseType="arraybuffer",E.send(null),new Uint8Array(E.response)}),g.readAsync=function(r,E,l){var D=new XMLHttpRequest;D.open("GET",r,!0),D.responseType="arraybuffer",D.onload=function(){if(D.status==200||D.status==0&&D.response){E(D.response);return}l()},D.onerror=l,D.send(null)},g.setWindowTitle=function(o){document.title=o});var Qt=g.print||(typeof console<"u"?console.log.bind(console):typeof print<"u"?print:null),FA=g.printErr||(typeof printErr<"u"?printErr:typeof console<"u"&&console.warn.bind(console)||Qt);for(e in v)v.hasOwnProperty(e)&&(g[e]=v[e]);function re(o){var r=d;return d=d+o+15&-16,r}function ht(o){var r=Q[x>>2],E=r+o+15&-16;return Q[x>>2]=E,E>=gA&&!Dt()?(Q[x>>2]=r,0):r}function lt(o,r){return r||(r=16),o=Math.ceil(o/r)*r}function Ls(o){switch(o){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if(o[o.length-1]==="*")return 4;if(o[0]!=="i")return 0;var r=parseInt(o.substr(1));return LA(r%8==0),r/8}}function zA(o){zA.shown||(zA.shown={}),zA.shown[o]||(zA.shown[o]=1,FA(o))}v=void 0;var Hs={"f64-rem":function(o,r){return o%r},debugger:function(){}},Ne=[];function oo(o,r){for(var E=0,l=E;l<E+0;l++)if(!Ne[l])return Ne[l]=o,1+l;throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."}function go(o){Ne[o-1]=null}var Me={};function no(o,r){if(o){LA(r),Me[r]||(Me[r]={});var E=Me[r];return E[o]||(r.length===1?E[o]=function(){return Ue(r,o)}:r.length===2?E[o]=function(D){return Ue(r,o,[D])}:E[o]=function(){return Ue(r,o,Array.prototype.slice.call(arguments))}),E[o]}}function ro(o,r,E){return E?+(o>>>0)+4294967296*+(r>>>0):+(o>>>0)+4294967296*+(0|r)}function Ue(o,r,E){return E&&E.length?g["dynCall_"+o].apply(null,[r].concat(E)):g["dynCall_"+o].call(null,r)}var ie=0,ct=0;function LA(o,r){o||UA("Assertion failed: "+r)}function dt(o){var r=g["_"+o];return LA(r,"Cannot call unknown function "+o+", make sure it is exported"),r}var ut={stackSave:function(){qe()},stackRestore:function(){Te()},arrayToC:function(o){var r,E,l=he(o.length);return r=o,E=l,s.set(r,E),l},stringToC:function(o){var r=0;if(o!=null&&o!==0){var E=(o.length<<2)+1;r=he(E),pt(o,r,E)}return r}},Ys={string:ut.stringToC,array:ut.arrayToC};function ft(o,r,E,l,D){var N=dt(o),b=[],w=0;if(l)for(var nA=0;nA<l.length;nA++){var W=Ys[E[nA]];W?(w===0&&(w=qe()),b[nA]=W(l[nA])):b[nA]=l[nA]}var _,P=N.apply(null,b);return P=(_=P,r==="string"?Ce(_):r==="boolean"?!!_:_),w!==0&&Te(w),P}function Js(o,r,E,l){switch((E=E||"i8").charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":case"i8":s[o>>0]=r;break;case"i16":a[o>>1]=r;break;case"i32":Q[o>>2]=r;break;case"i64":tempI64=[r>>>0,+Ps(tempDouble=r)>=1?tempDouble>0?(0|Zs(+kt(tempDouble/4294967296),4294967295))>>>0:~~+Os((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0],Q[o>>2]=tempI64[0],Q[o+4>>2]=tempI64[1];break;case"float":f[o>>2]=r;break;case"double":u[o>>3]=r;break;default:UA("invalid type for setValue: "+E)}}function io(o,r,E){switch((r=r||"i8").charAt(r.length-1)==="*"&&(r="i32"),r){case"i1":case"i8":return s[o>>0];case"i16":return a[o>>1];case"i32":case"i64":return Q[o>>2];case"float":return f[o>>2];case"double":return u[o>>3];default:UA("invalid type for getValue: "+r)}return null}function Co(o,r,E,l){typeof o=="number"?(N=!0,b=o):(N=!1,b=o.length);var D=typeof r=="string"?r:null;if(w=E==4?l:[typeof Qe=="function"?Qe:re,he,re,ht][E===void 0?2:E](Math.max(b,D?1:r.length)),N){for(l=w,LA((3&w)==0),nA=w+(-4&b);l<nA;l+=4)Q[l>>2]=0;for(nA=w+b;l<nA;)s[l++>>0]=0;return w}if(D==="i8")return o.subarray||o.slice?n.set(o,w):n.set(new Uint8Array(o),w),w;for(var N,b,w,nA,W,_,P,k=0;k<b;){var hA=o[k];if((W=D||r[k])===0){k++;continue}W=="i64"&&(W="i32"),Js(w+k,hA,W),P!==W&&(_=Ls(W),P=W),k+=_}return w}function Eo(o){return m?Ye?Qe(o):ht(o):re(o)}function Ce(o,r){if(r===0||!o)return"";for(var E,l,D,N=0,b=0;N|=l=n[o+b>>0],(l!=0||r)&&(b++,!r||b!=r););r||(r=b);var w="";if(N<128){for(;r>0;)D=String.fromCharCode.apply(String,n.subarray(o,o+Math.min(r,1024))),w=w?w+D:D,o+=1024,r-=1024;return w}return E=o,function(W,_){for(var P=_;W[P];)++P;if(P-_>16&&W.subarray&&mt)return mt.decode(W.subarray(_,P));for(var k,hA,mA,pA,yA,qA,SA="";;){if(!(k=W[_++]))return SA;if(!(128&k)){SA+=String.fromCharCode(k);continue}if(hA=63&W[_++],(224&k)==192){SA+=String.fromCharCode((31&k)<<6|hA);continue}if(mA=63&W[_++],(240&k)==224?k=(15&k)<<12|hA<<6|mA:(pA=63&W[_++],(248&k)==240?k=(7&k)<<18|hA<<12|mA<<6|pA:(yA=63&W[_++],k=(252&k)==248?(3&k)<<24|hA<<18|mA<<12|pA<<6|yA:(1&k)<<30|hA<<24|mA<<18|pA<<12|yA<<6|(qA=63&W[_++]))),k<65536)SA+=String.fromCharCode(k);else{var ee=k-65536;SA+=String.fromCharCode(55296|ee>>10,56320|1023&ee)}}}(n,E)}function ao(o){for(var r="";;){var E=s[o++>>0];if(!E)return r;r+=String.fromCharCode(E)}}function Bo(o,r){return function(l,D,N){for(var b=0;b<l.length;++b)s[D++>>0]=l.charCodeAt(b);N||(s[D>>0]=0)}(o,r,!1)}var mt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Ee(o,r,E,l){if(!(l>0))return 0;for(var D=E,N=E+l-1,b=0;b<o.length;++b){var w=o.charCodeAt(b);if(w>=55296&&w<=57343&&(w=65536+((1023&w)<<10)|1023&o.charCodeAt(++b)),w<=127){if(E>=N)break;r[E++]=w}else if(w<=2047){if(E+1>=N)break;r[E++]=192|w>>6,r[E++]=128|63&w}else if(w<=65535){if(E+2>=N)break;r[E++]=224|w>>12,r[E++]=128|w>>6&63,r[E++]=128|63&w}else if(w<=2097151){if(E+3>=N)break;r[E++]=240|w>>18,r[E++]=128|w>>12&63,r[E++]=128|w>>6&63,r[E++]=128|63&w}else if(w<=67108863){if(E+4>=N)break;r[E++]=248|w>>24,r[E++]=128|w>>18&63,r[E++]=128|w>>12&63,r[E++]=128|w>>6&63,r[E++]=128|63&w}else{if(E+5>=N)break;r[E++]=252|w>>30,r[E++]=128|w>>24&63,r[E++]=128|w>>18&63,r[E++]=128|w>>12&63,r[E++]=128|w>>6&63,r[E++]=128|63&w}}return r[E]=0,E-D}function pt(o,r,E){return Ee(o,n,r,E)}function ae(o){for(var r=0,E=0;E<o.length;++E){var l=o.charCodeAt(E);l>=55296&&l<=57343&&(l=65536+((1023&l)<<10)|1023&o.charCodeAt(++E)),l<=127?++r:l<=2047?r+=2:l<=65535?r+=3:l<=2097151?r+=4:l<=67108863?r+=5:r+=6}return r}var yt=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function Qo(o){for(var r=o,E=r>>1;a[E];)++E;if((r=E<<1)-o>32&&yt)return yt.decode(n.subarray(o,r));for(var l=0,D="";;){var N=a[o+2*l>>1];if(N==0)return D;++l,D+=String.fromCharCode(N)}}function ho(o,r,E){if(E===void 0&&(E=2147483647),E<2)return 0;for(var l=r,D=(E-=2)<2*o.length?E/2:o.length,N=0;N<D;++N){var b=o.charCodeAt(N);a[r>>1]=b,r+=2}return a[r>>1]=0,r-l}function lo(o){return 2*o.length}function co(o){for(var r=0,E="";;){var l=Q[o+4*r>>2];if(l==0)return E;if(++r,l>=65536){var D=l-65536;E+=String.fromCharCode(55296|D>>10,56320|1023&D)}else E+=String.fromCharCode(l)}}function uo(o,r,E){if(E===void 0&&(E=2147483647),E<4)return 0;for(var l=r,D=l+E-4,N=0;N<o.length;++N){var b=o.charCodeAt(N);if(b>=55296&&b<=57343&&(b=65536+((1023&b)<<10)|1023&o.charCodeAt(++N)),Q[r>>2]=b,(r+=4)+4>D)break}return Q[r>>2]=0,r-l}function fo(o){for(var r=0,E=0;E<o.length;++E){var l=o.charCodeAt(E);l>=55296&&l<=57343&&++E,r+=4}return r}function mo(o){var r=ae(o)+1,E=Qe(r);return E&&Ee(o,s,E,r),E}function po(o){var r=ae(o)+1,E=he(r);return Ee(o,s,E,r),E}function yo(o){return o}function So(){var o,r=function(){var l=Error();if(!l.stack){try{throw Error(0)}catch(D){l=D}if(!l.stack)return"(no stack trace available)"}return l.stack.toString()}();return g.extraStackTrace&&(r+=`
|
|
10
|
+
`+g.extraStackTrace()),(o=r).replace(/__Z[\w\d_]+/g,function(E){var l,D=l=E;return E===D?E:E+" ["+D+"]"})}function xe(o,r){return o%r>0&&(o+=r-o%r),o}function St(o){g.buffer=I=o}function be(){g.HEAP8=s=new Int8Array(I),g.HEAP16=a=new Int16Array(I),g.HEAP32=Q=new Int32Array(I),g.HEAPU8=n=new Uint8Array(I),g.HEAPU16=i=new Uint16Array(I),g.HEAPU32=c=new Uint32Array(I),g.HEAPF32=f=new Float32Array(I),g.HEAPF64=u=new Float64Array(I)}function Dt(){var o=g.usingWasm?65536:16777216,r=2147483648-o;if(Q[x>>2]>r)return!1;var E=gA;for(gA=Math.max(gA,16777216);gA<Q[x>>2];)gA=gA<=536870912?xe(2*gA,o):Math.min(xe((3*gA+2147483648)/4,o),r);var l=g.reallocBuffer(gA);return l&&l.byteLength==gA?(St(l),be(),!0):(gA=E,!1)}h=d=Y=M=L=q=x=0,m=!1,g.reallocBuffer||(g.reallocBuffer=function(o){try{if(ArrayBuffer.transfer)r=ArrayBuffer.transfer(I,o);else{var r,E=s;r=new ArrayBuffer(o),new Int8Array(r).set(E)}}catch{return!1}return!!vs(r)&&r});try{(V=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get))(new ArrayBuffer(4))}catch{V=function(r){return r.byteLength}}var Le=g.TOTAL_STACK||5242880,gA=g.TOTAL_MEMORY||16777216;function Ts(){return gA}function jA(o){for(;o.length>0;){var r=o.shift();if(typeof r=="function"){r();continue}var E=r.func;typeof E=="number"?r.arg===void 0?g.dynCall_v(E):g.dynCall_vi(E,r.arg):E(r.arg===void 0?null:r.arg)}}gA<Le&&FA("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+gA+"! (TOTAL_STACK="+Le+")"),g.buffer?I=g.buffer:(typeof WebAssembly=="object"&&typeof WebAssembly.Memory=="function"?(g.wasmMemory=new WebAssembly.Memory({initial:gA/65536}),I=g.wasmMemory.buffer):I=new ArrayBuffer(gA),g.buffer=I),be();var wt=[],He=[],Ft=[],Rt=[],Gt=[],Ye=!1,qs=!1;function Ks(o){wt.unshift(o)}function Do(o){He.unshift(o)}function wo(o){Ft.unshift(o)}function Fo(o){Rt.unshift(o)}function Vs(o){Gt.unshift(o)}function Ro(o,r,E){var l,D;zA("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"),E&&(l=s[D=r+ae(o)]),pt(o,r,1/0),E&&(s[D]=l)}function Go(o,r,E){return o>=0?o:r<=32?2*Math.abs(1<<r-1)+o:Math.pow(2,r)+o}function ko(o,r,E){if(o<=0)return o;var l=r<=32?Math.abs(1<<r-1):Math.pow(2,r-1);return o>=l&&(r<=32||o>l)&&(o=-2*l+o),o}var Ps=Math.abs,Os=Math.ceil,kt=Math.floor,Zs=Math.min,TA=0,Je=null,$A=null;function No(o){return o}g.preloadedImages={},g.preloadedAudios={};var Nt="data:application/octet-stream;base64,";function Be(o){return String.prototype.startsWith?o.startsWith(Nt):o.indexOf(Nt)===0}(function(){var r="main.wast",E="main.wasm",l="main.temp.asm.js";Be(r)||(r=ke(r)),Be(E)||(E=ke(E)),Be(l)||(l=ke(l));var D={global:null,env:null,asm2wasm:Hs,parent:g},N=null;function b(P){return P}function w(){try{if(g.wasmBinary)return new Uint8Array(g.wasmBinary);if(g.readBinary)return g.readBinary(E);throw"both async and sync fetching of the wasm failed"}catch(P){UA(P)}}g.asmPreload=g.asm;var nA=g.reallocBuffer,W=function(P){P=xe(P,g.usingWasm?65536:16777216);var k=g.buffer.byteLength;if(g.usingWasm)try{var hA=g.wasmMemory.grow((P-k)/65536);return hA!==-1?g.buffer=g.wasmMemory.buffer:null}catch{return null}};g.reallocBuffer=function(P){return _==="asmjs"?nA(P):W(P)};var _="";g.asm=function(P,k,hA){var mA;if(!(k=mA=k).table){var pA,yA=g.wasmTableSize;yA===void 0&&(yA=1024);var qA=g.wasmMaxTableSize;typeof WebAssembly=="object"&&typeof WebAssembly.Table=="function"?qA!==void 0?k.table=new WebAssembly.Table({initial:yA,maximum:qA,element:"anyfunc"}):k.table=new WebAssembly.Table({initial:yA,element:"anyfunc"}):k.table=Array(yA),g.wasmTable=k.table}return k.memoryBase||(k.memoryBase=g.STATIC_BASE),k.tableBase||(k.tableBase=0),pA=function(ee,vA,Ve){if(typeof WebAssembly!="object")return FA("no native wasm support detected"),!1;if(!(g.wasmMemory instanceof WebAssembly.Memory))return FA("no native wasm Memory in use"),!1;function le(RA,GA){if((N=RA.exports).memory){var te,Pe,xt;te=N.memory,Pe=g.buffer,te.byteLength<Pe.byteLength&&FA("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here"),xt=new Int8Array(Pe),new Int8Array(te).set(xt),St(te),be()}g.asm=N,g.usingWasm=!0,function(Yo){if(TA--,g.monitorRunDependencies&&g.monitorRunDependencies(TA),TA==0&&(Je!==null&&(clearInterval(Je),Je=null),$A)){var Xs=$A;$A=null,Xs()}}("wasm-instantiate")}if(vA.memory=g.wasmMemory,D.global={NaN:NaN,Infinity:1/0},D["global.Math"]=Math,D.env=vA,TA++,g.monitorRunDependencies&&g.monitorRunDependencies(TA),g.instantiateWasm)try{return g.instantiateWasm(D,le)}catch(RA){return FA("Module.instantiateWasm callback failed with error: "+RA),!1}function XA(RA){le(RA.instance,RA.module)}function Ut(RA){(!g.wasmBinary&&(j||IA)&&typeof fetch=="function"?fetch(E,{credentials:"same-origin"}).then(function(GA){if(!GA.ok)throw"failed to load wasm binary file at '"+E+"'";return GA.arrayBuffer()}).catch(function(){return w()}):new Promise(function(GA,te){GA(w())})).then(function(GA){return WebAssembly.instantiate(GA,D)}).then(RA).catch(function(GA){FA("failed to asynchronously prepare wasm: "+GA),UA(GA)})}return g.wasmBinary||typeof WebAssembly.instantiateStreaming!="function"||Be(E)||typeof fetch!="function"?Ut(XA):WebAssembly.instantiateStreaming(fetch(E,{credentials:"same-origin"}),D).then(XA).catch(function(RA){FA("wasm streaming compile failed: "+RA),FA("falling back to ArrayBuffer instantiation"),Ut(XA)}),{}}(P,k,hA),LA(pA,"no binaryen method succeeded."),pA},g.asm})(),d=(h=1024)+4816,He.push(),g.STATIC_BASE=h,g.STATIC_BUMP=4816;var dA=d;function Mo(o){s[dA]=s[o],s[dA+1]=s[o+1],s[dA+2]=s[o+2],s[dA+3]=s[o+3]}function Uo(o){s[dA]=s[o],s[dA+1]=s[o+1],s[dA+2]=s[o+2],s[dA+3]=s[o+3],s[dA+4]=s[o+4],s[dA+5]=s[o+5],s[dA+6]=s[o+6],s[dA+7]=s[o+7]}function xo(o,r,E){var l=E>0?E:ae(o)+1,D=Array(l),N=Ee(o,D,0,D.length);return r&&(D.length=N),D}function bo(o){for(var r=[],E=0;E<o.length;E++){var l=o[E];l>255&&(l&=255),r.push(String.fromCharCode(l))}return r.join("")}d+=16,x=re(4),L=(Y=M=lt(d))+Le,q=lt(L),Q[x>>2]=q,m=!0,g.wasmTableSize=4,g.wasmMaxTableSize=4,g.asmGlobalArg={},g.asmLibraryArg={abort:UA,assert:LA,enlargeMemory:Dt,getTotalMemory:Ts,abortOnCannotGrowMemory:function(){UA("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+gA+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_iii:function(r,E,l){var D=qe();try{return g.dynCall_iii(r,E,l)}catch(N){if(Te(D),typeof N!="number"&&N!=="longjmp")throw N;g.setThrew(1,0)}},___assert_fail:function(r,E,l,D){UA("Assertion failed: "+Ce(r)+", at: "+[E?Ce(E):"unknown filename",l,D?Ce(D):"unknown function"])},___setErrNo:function(r){return g.___errno_location&&(Q[g.___errno_location()>>2]=r),r},_abort:function(){g.abort()},_emscripten_memcpy_big:function(r,E,l){return n.set(n.subarray(E,E+l),r),r},_llvm_floor_f64:kt,DYNAMICTOP_PTR:x,tempDoublePtr:dA,ABORT:ie,STACKTOP:M,STACK_MAX:L};var Mt=g.asm(g.asmGlobalArg,g.asmLibraryArg,I);g.asm=Mt,g.___errno_location=function(){return g.asm.___errno_location.apply(null,arguments)};var vs=g._emscripten_replace_memory=function(){return g.asm._emscripten_replace_memory.apply(null,arguments)};g._free=function(){return g.asm._free.apply(null,arguments)};var Qe=g._malloc=function(){return g.asm._malloc.apply(null,arguments)};g._memcpy=function(){return g.asm._memcpy.apply(null,arguments)},g._memset=function(){return g.asm._memset.apply(null,arguments)},g._sbrk=function(){return g.asm._sbrk.apply(null,arguments)},g._stb_vorbis_js_channels=function(){return g.asm._stb_vorbis_js_channels.apply(null,arguments)},g._stb_vorbis_js_close=function(){return g.asm._stb_vorbis_js_close.apply(null,arguments)},g._stb_vorbis_js_decode=function(){return g.asm._stb_vorbis_js_decode.apply(null,arguments)},g._stb_vorbis_js_open=function(){return g.asm._stb_vorbis_js_open.apply(null,arguments)},g._stb_vorbis_js_sample_rate=function(){return g.asm._stb_vorbis_js_sample_rate.apply(null,arguments)},g.establishStackSpace=function(){return g.asm.establishStackSpace.apply(null,arguments)},g.getTempRet0=function(){return g.asm.getTempRet0.apply(null,arguments)},g.runPostSets=function(){return g.asm.runPostSets.apply(null,arguments)},g.setTempRet0=function(){return g.asm.setTempRet0.apply(null,arguments)},g.setThrew=function(){return g.asm.setThrew.apply(null,arguments)};var he=g.stackAlloc=function(){return g.asm.stackAlloc.apply(null,arguments)},Te=g.stackRestore=function(){return g.asm.stackRestore.apply(null,arguments)},qe=g.stackSave=function(){return g.asm.stackSave.apply(null,arguments)};function Ae(o){this.name="ExitStatus",this.message="Program terminated with exit("+o+")",this.status=o}function Ke(o){o=o||g.arguments,!(TA>0)&&(function(){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)Ks(g.preRun.shift());jA(wt)}(),!(TA>0)&&(g.calledRun||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),r()},1)):r())));function r(){!g.calledRun&&(g.calledRun=!0,ie||(Ye||(Ye=!0,jA(He)),jA(Ft),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;)Vs(g.postRun.shift());jA(Gt)}()))}}function Lo(o,r){(!r||!g.noExitRuntime||o!==0)&&(g.noExitRuntime||(ie=!0,ct=o,M=X,jA(Rt),qs=!0,g.onExit&&g.onExit(o)),g.quit(o,new Ae(o)))}function UA(o){throw g.onAbort&&g.onAbort(o),o!==void 0?(Qt(o),FA(o),o=JSON.stringify(o)):o="",ie=!0,ct=1,"abort("+o+"). Build with -s ASSERTIONS=1 for more info."}if(g.dynCall_iii=function(){return g.asm.dynCall_iii.apply(null,arguments)},g.asm=Mt,g.ccall=ft,g.cwrap=function(r,E,l,D){var N=(l=l||[]).every(function(b){return b==="number"});return E!=="string"&&N&&!D?dt(r):function(){return ft(r,E,l,arguments,D)}},Ae.prototype=Error(),Ae.prototype.constructor=Ae,$A=function o(){g.calledRun||Ke(),g.calledRun||($A=o)},g.run=Ke,g.abort=UA,g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();g.noExitRuntime=!0,Ke(),g.onRuntimeInitialized=()=>{jt=!0,$t()},YA.decode=function(o){return function(E){if(!jt)throw Error("Not initialized");var l={};function D(vA){return new Int32Array(g.HEAPU8.buffer,vA,1)[0]}function N(vA,Ve){var le=new ArrayBuffer(Ve*Float32Array.BYTES_PER_ELEMENT),XA=new Float32Array(le);return XA.set(new Float32Array(g.HEAPU8.buffer,vA,Ve)),XA}l.open=g.cwrap("stb_vorbis_js_open","number",[]),l.close=g.cwrap("stb_vorbis_js_close","void",["number"]),l.channels=g.cwrap("stb_vorbis_js_channels","number",["number"]),l.sampleRate=g.cwrap("stb_vorbis_js_sample_rate","number",["number"]),l.decode=g.cwrap("stb_vorbis_js_decode","number",["number","number","number","number","number"]);var b,w,nA,W,_=l.open(),P=(b=E,w=E.byteLength,nA=g._malloc(w),(W=new Uint8Array(g.HEAPU8.buffer,nA,w)).set(new Uint8Array(b,0,w)),W),k=g._malloc(4),hA=g._malloc(4),mA=l.decode(_,P.byteOffset,P.byteLength,k,hA);if(g._free(P.byteOffset),mA<0)throw l.close(_),g._free(k),Error("stbvorbis decode failed: "+mA);for(var pA=l.channels(_),yA=Array(pA),qA=new Int32Array(g.HEAPU32.buffer,D(k),pA),SA=0;SA<pA;SA++)yA[SA]=N(qA[SA],mA),g._free(qA[SA]);var ee=l.sampleRate(_);return l.close(_),g._free(D(k)),g._free(k),{data:yA,sampleRate:ee,eof:!0,error:null}}(o)}})();var $e=class{constructor(A,t,I,s,n,a,i,Q){this.sampleName=A,this.sampleRate=t,this.samplePitch=I,this.samplePitchCorrection=s,this.sampleLink=n,this.sampleType=a,this.sampleLoopStartIndex=i,this.sampleLoopEndIndex=Q,this.isCompressed=(a&16)>0,this.compressedData=void 0}getRawData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}compressSample(A,t){if(!this.isCompressed)try{this.compressedData=t([this.getAudioData()],1,this.sampleRate,A),this.sampleType|=16,this.isCompressed=!0}catch{J(`Failed to compress ${this.sampleName}. Leaving as uncompressed!`),this.isCompressed=!1,this.compressedData=void 0,this.sampleType&=-17}}getAudioData(){let A=new Error("Not implemented");throw A.name="NotImplementedError",A}},At=class extends $e{constructor(A,t,I,s,n,a,i,Q,c,f,u,h){super(A,a,i,Q,c,f,s-t,n-t),this.sampleName=A,this.sampleStartIndex=t,this.sampleEndIndex=I,this.isSampleLoaded=!1,this.sampleID=h,this.useCount=0,this.sampleLength=this.sampleEndIndex-this.sampleStartIndex,this.sampleDataArray=u,this.sampleData=new Float32Array(0),this.isCompressed&&(this.sampleLoopStartIndex+=this.sampleStartIndex,this.sampleLoopEndIndex+=this.sampleStartIndex,this.sampleLength=99999999)}getRawData(){let A=this.sampleDataArray;if(this.isCompressed){if(this.compressedData)return this.compressedData;let t=A.currentIndex;return A.slice(this.sampleStartIndex/2+t,this.sampleEndIndex/2+t)}else{let t=A.currentIndex;return A.slice(t+this.sampleStartIndex,t+this.sampleEndIndex)}}decodeVorbis(){if(this.sampleLength<1)return;let A=this.sampleDataArray,t=A.currentIndex,I=A.slice(this.sampleStartIndex/2+t,this.sampleEndIndex/2+t);this.sampleData=new Float32Array(0);let s=YA.decode(I.buffer);this.sampleData=s.data[0]}getAudioData(){return this.isSampleLoaded?this.sampleData:this.loadBufferData()}loadUncompressedData(){if(this.isCompressed)return J("Trying to load a compressed sample via loadUncompressedData()... aborting!"),new Float32Array(0);let A=new Float32Array(this.sampleLength/2),t=this.sampleDataArray.currentIndex,I=new Int16Array(this.sampleDataArray.slice(t+this.sampleStartIndex,t+this.sampleEndIndex).buffer);for(let s=0;s<I.length;s++)A[s]=I[s]/32768;return this.sampleData=A,this.isSampleLoaded=!0,A}loadBufferData(){return this.sampleLength<1?new Float32Array(1):this.isCompressed?(this.decodeVorbis(),this.isSampleLoaded=!0,this.sampleData):this.loadUncompressedData()}};function AI(e,A){let t=[],I=0;for(;e.chunkData.length>e.chunkData.currentIndex;){let s=zs(I,e.chunkData,A);t.push(s),I++}return t.length>1&&t.pop(),t}function zs(e,A,t){let I=z(A,20),s=T(A,4)*2,n=T(A,4)*2,a=T(A,4)*2,i=T(A,4)*2,Q=T(A,4),c=A[A.currentIndex++];c===255&&(c=60);let f=vt(A[A.currentIndex++]),u=T(A,2),h=T(A,2);return new At(I,s,n,a,i,Q,c,f,u,h,t,e)}var et=class{constructor(A){this.instrumentName=z(A.chunkData,20).trim(),this.instrumentZoneIndex=T(A.chunkData,2),this.instrumentZonesAmount=0,this.instrumentZones=[],this._useCount=0}addUseCount(){this._useCount++,this.instrumentZones.forEach(A=>A.useCount++)}removeUseCount(){this._useCount--;for(let A=0;A<this.instrumentZones.length;A++)this.safeDeleteZone(A)&&A--}get useCount(){return this._useCount}deleteInstrument(){this.instrumentZones.forEach(A=>A.deleteZone()),this.instrumentZones.length=0}safeDeleteZone(A){return this.instrumentZones[A].useCount--,this.instrumentZones[A].useCount<1?(this.deleteZone(A),!0):!1}deleteZone(A){this.instrumentZones[A].deleteZone(),this.instrumentZones.splice(A,1)}getInstrumentZones(A,t){this.instrumentZonesAmount=A;for(let I=this.instrumentZoneIndex;I<this.instrumentZonesAmount+this.instrumentZoneIndex;I++)this.instrumentZones.push(t[I])}};function eI(e,A){let t=[];for(;e.chunkData.length>e.chunkData.currentIndex;){let I=new et(e);if(t.length>0){let s=I.instrumentZoneIndex-t[t.length-1].instrumentZoneIndex;t[t.length-1].getInstrumentZones(s,A)}t.push(I)}return t.length>1&&t.pop(),t}var tt=class{constructor(A,t){this.generatorZoneStartIndex=T(A,2),this.modulatorZoneStartIndex=T(A,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.zoneID=t,this.keyRange={min:0,max:127},this.velRange={min:0,max:127},this.isGlobal=!0,this.useCount=0,this.generators=[],this.modulators=[]}deleteZone(){this.useCount--,!this.isGlobal&&this.sample.useCount--}setZoneSize(A,t){this.modulatorZoneSize=A,this.generatorZoneSize=t}getGenerators(A){for(let t=this.generatorZoneStartIndex;t<this.generatorZoneStartIndex+this.generatorZoneSize;t++)this.generators.push(A[t])}getModulators(A){for(let t=this.modulatorZoneStartIndex;t<this.modulatorZoneStartIndex+this.modulatorZoneSize;t++)this.modulators.push(A[t])}getSample(A){let t=this.generators.find(I=>I.generatorType===B.sampleID);t&&(this.sample=A[t.generatorValue],this.isGlobal=!1,this.sample.useCount++)}getKeyRange(){let A=this.generators.find(t=>t.generatorType===B.keyRange);A&&(this.keyRange.min=A.generatorValue&127,this.keyRange.max=A.generatorValue>>8&127)}getVelRange(){let A=this.generators.find(t=>t.generatorType===B.velRange);A&&(this.velRange.min=A.generatorValue&127,this.velRange.max=A.generatorValue>>8&127)}};function tI(e,A,t,I){let s=[],n=0;for(;e.chunkData.length>e.chunkData.currentIndex;){let a=new tt(e.chunkData,n);if(s.length>0){let i=a.modulatorZoneStartIndex-s[s.length-1].modulatorZoneStartIndex,Q=a.generatorZoneStartIndex-s[s.length-1].generatorZoneStartIndex;s[s.length-1].setZoneSize(i,Q),s[s.length-1].getGenerators(A),s[s.length-1].getModulators(t),s[s.length-1].getSample(I),s[s.length-1].getKeyRange(),s[s.length-1].getVelRange()}s.push(a),n++}return s.length>1&&s.pop(),s}var It=class{constructor(A,t){this.generatorZoneStartIndex=T(A,2),this.modulatorZoneStartIndex=T(A,2),this.modulatorZoneSize=0,this.generatorZoneSize=0,this.zoneID=t,this.keyRange={min:0,max:127},this.velRange={min:0,max:127},this.isGlobal=!0,this.generators=[],this.modulators=[]}setZoneSize(A,t){this.modulatorZoneSize=A,this.generatorZoneSize=t}deleteZone(){this.isGlobal||this.instrument.removeUseCount()}getGenerators(A){for(let t=this.generatorZoneStartIndex;t<this.generatorZoneStartIndex+this.generatorZoneSize;t++)this.generators.push(A[t])}getModulators(A){for(let t=this.modulatorZoneStartIndex;t<this.modulatorZoneStartIndex+this.modulatorZoneSize;t++)this.modulators.push(A[t])}getInstrument(A){let t=this.generators.find(I=>I.generatorType===B.instrument);t&&(this.instrument=A[t.generatorValue],this.instrument.addUseCount(),this.isGlobal=!1)}getKeyRange(){let A=this.generators.find(t=>t.generatorType===B.keyRange);A&&(this.keyRange.min=A.generatorValue&127,this.keyRange.max=A.generatorValue>>8&127)}getVelRange(){let A=this.generators.find(t=>t.generatorType===B.velRange);A&&(this.velRange.min=A.generatorValue&127,this.velRange.max=A.generatorValue>>8&127)}};function II(e,A,t,I){let s=[],n=0;for(;e.chunkData.length>e.chunkData.currentIndex;){let a=new It(e.chunkData,n);if(s.length>0){let i=a.modulatorZoneStartIndex-s[s.length-1].modulatorZoneStartIndex,Q=a.generatorZoneStartIndex-s[s.length-1].generatorZoneStartIndex;s[s.length-1].setZoneSize(i,Q),s[s.length-1].getGenerators(A),s[s.length-1].getModulators(t),s[s.length-1].getInstrument(I),s[s.length-1].getKeyRange(),s[s.length-1].getVelRange()}s.push(a),n++}return s.length>1&&s.pop(),s}var st=class{constructor(A){this.presetName=z(A.chunkData,20).trim().replace(/\d{3}:\d{3}/,""),this.program=T(A.chunkData,2),this.bank=T(A.chunkData,2),this.presetZoneStartIndex=T(A.chunkData,2),this.presetZonesAmount=0,this.presetZones=[],this.foundSamplesAndGenerators=[];for(let t=0;t<128;t++)this.foundSamplesAndGenerators[t]=[];this.library=T(A.chunkData,4),this.genre=T(A.chunkData,4),this.morphology=T(A.chunkData,4)}getPresetZones(A,t){this.presetZonesAmount=A;for(let I=this.presetZoneStartIndex;I<this.presetZonesAmount+this.presetZoneStartIndex;I++)this.presetZones.push(t[I])}deletePreset(){this.presetZones.forEach(A=>A.deleteZone()),this.presetZones.length=0}deleteZone(A){this.presetZones[A].deleteZone(),this.presetZones.splice(A,1)}preload(A,t){for(let I=A;I<t+1;I++)for(let s=0;s<128;s++)this.getSamplesAndGenerators(I,s).forEach(n=>{n.sample.isSampleLoaded||n.sample.getAudioData()})}preloadSpecific(A,t){this.getSamplesAndGenerators(A,t).forEach(I=>{I.sample.isSampleLoaded||I.sample.getAudioData()})}getSamplesAndGenerators(A,t){let I=this.foundSamplesAndGenerators[A][t];if(I)return I;function s(h,d,m){return m>=h&&m<=d}function n(h,d){return h.modulatorSource===d.modulatorSource&&h.modulatorDestination===d.modulatorDestination&&h.modulationSecondarySrc===d.modulationSecondarySrc&&h.transformType===d.transformType}function a(h,d){h.push(...d.filter(m=>!h.find(Y=>Y.generatorType===m.generatorType)))}function i(h,d){h.push(...d.filter(m=>!h.find(Y=>n(m,Y))))}let Q=[],c=this.presetZones[0].isGlobal?[...this.presetZones[0].generators]:[],f=this.presetZones[0].isGlobal?[...this.presetZones[0].modulators]:[];return this.presetZones.filter(h=>s(h.keyRange.min,h.keyRange.max,A)&&s(h.velRange.min,h.velRange.max,t)&&!h.isGlobal).forEach(h=>{let d=h.generators,m=h.modulators,Y=h.instrument.instrumentZones[0].isGlobal?[...h.instrument.instrumentZones[0].generators]:[],M=h.instrument.instrumentZones[0].isGlobal?[...h.instrument.instrumentZones[0].modulators]:[];h.instrument.instrumentZones.filter(q=>s(q.keyRange.min,q.keyRange.max,A)&&s(q.velRange.min,q.velRange.max,t)&&!q.isGlobal).forEach(q=>{let x=[...q.generators],V=[...q.modulators];a(d,c),a(x,Y),i(m,f),i(V,M),i(V,Wt);let X=[...V];for(let g=0;g<m.length;g++){let v=m[g],j=X.findIndex(IA=>n(v,IA));j!==-1?X[j]=X[j].sumTransform(v):X.push(v)}Q.push({instrumentGenerators:x,presetGenerators:d,modulators:X,sample:q.sample,sampleID:q.generators.find(g=>g.generatorType===B.sampleID).generatorValue})})}),this.foundSamplesAndGenerators[A][t]=Q,Q}};function sI(e,A){let t=[];for(;e.chunkData.length>e.chunkData.currentIndex;){let I=new st(e);if(t.length>0){let s=I.presetZoneStartIndex-t[t.length-1].presetZoneStartIndex;t[t.length-1].getPresetZones(s,A)}t.push(I)}return t.length>1&&t.pop(),t}function oI(){let e=4;for(let I of this.instruments)e+=I.instrumentZones.reduce((s,n)=>(n.generators=n.generators.filter(a=>a.generatorType!==B.sampleID&&a.generatorType!==B.keyRange&&a.generatorType!==B.velRange),(n.velRange.max!==127||n.velRange.min!==0)&&n.generators.unshift({generatorType:B.velRange,generatorValue:n.velRange.max<<8|n.velRange.min}),(n.keyRange.max!==127||n.keyRange.min!==0)&&n.generators.unshift({generatorType:B.keyRange,generatorValue:n.keyRange.max<<8|n.keyRange.min}),n.isGlobal||n.generators.push({generatorType:B.sampleID,generatorValue:this.samples.indexOf(n.sample)}),n.generators.length*4+s),0);let A=new U(e),t=0;for(let I of this.instruments)for(let s of I.instrumentZones){s.generatorZoneStartIndex=t;for(let n of s.generators)G(A,n.generatorType),G(A,n.generatorValue),t++}return iA(A,0),Z(new K("igen",A.length,A))}function gI(e,A,t,I,s){let n=this.samples.map((c,f)=>{t&&c.compressSample(I,s);let u=c.getRawData();return y(`%cEncoded sample %c${f}. ${c.sampleName}%c of %c${this.samples.length}`,C.info,C.recognized,C.info,C.recognized),u}),a=this.samples.reduce((c,f,u)=>c+n[u].length+46,0),i=new U(a);this.samples.forEach((c,f)=>{let u=n[f],h,d,m=u.length;c.isCompressed?(h=i.currentIndex,d=h+u.length):(h=i.currentIndex/2,d=h+u.length/2,m+=46),e.push(h),i.set(u,i.currentIndex),i.currentIndex+=m,A.push(d)});let Q=Z(new K("smpl",i.length,i),new U([115,100,116,97]));return Z(new K("LIST",Q.length,Q))}function nI(e,A){let I=new U(46*(this.samples.length+1));return this.samples.forEach((s,n)=>{uA(I,s.sampleName,20);let a=e[n];iA(I,a);let i=A[n];iA(I,i);let Q=s.sampleLoopStartIndex/2+a,c=s.sampleLoopEndIndex/2+a;s.isCompressed&&(Q-=a,c-=a),iA(I,Q),iA(I,c),iA(I,s.sampleRate),I[I.currentIndex++]=s.samplePitch,I[I.currentIndex++]=s.samplePitchCorrection,G(I,s.sampleLink),G(I,s.sampleType)}),uA(I,"EOS",46),Z(new K("shdr",I.length,I))}function rI(){let e=10;for(let I of this.instruments)e+=I.instrumentZones.reduce((s,n)=>n.modulators.length*10+s,0);let A=new U(e),t=0;for(let I of this.instruments)for(let s of I.instrumentZones){s.modulatorZoneStartIndex=t;for(let n of s.modulators)G(A,n.modulatorSource),G(A,n.modulatorDestination),G(A,n.transformAmount),G(A,n.modulationSecondarySrc),G(A,n.transformType),t++}return oe(A,0,10),Z(new K("imod",A.length,A))}function iI(){let e=this.instruments.reduce((n,a)=>a.instrumentZones.length*4+n,4),A=new U(e),t=0,I=0,s=0;for(let n of this.instruments){n.instrumentZoneIndex=t;for(let a of n.instrumentZones)a.zoneID=t,G(A,I),G(A,s),I+=a.generators.length,s+=a.modulators.length,t++}return G(A,I),G(A,s),Z(new K("ibag",A.length,A))}function CI(){let e=this.instruments.length*22+22,A=new U(e),t=0,I=0;for(let s of this.instruments)uA(A,s.instrumentName,20),G(A,t),t+=s.instrumentZones.length,s.instrumentID=I,I++;return uA(A,"EOI",20),G(A,t),Z(new K("inst",A.length,A))}function EI(){let e=4;for(let I of this.presets)e+=I.presetZones.reduce((s,n)=>(n.generators=n.generators.filter(a=>a.generatorType!==B.instrument&&a.generatorType!==B.keyRange&&a.generatorType!==B.velRange),(n.velRange.max!==127||n.velRange.min!==0)&&n.generators.unshift({generatorType:B.velRange,generatorValue:n.velRange.max<<8|n.velRange.min}),(n.keyRange.max!==127||n.keyRange.min!==0)&&n.generators.unshift({generatorType:B.keyRange,generatorValue:n.keyRange.max<<8|n.keyRange.min}),n.isGlobal||n.generators.push({generatorType:B.instrument,generatorValue:this.instruments.indexOf(n.instrument)}),n.generators.length*4+s),0);let A=new U(e),t=0;for(let I of this.presets)for(let s of I.presetZones){s.generatorZoneStartIndex=t;for(let n of s.generators)G(A,n.generatorType),G(A,n.generatorValue);t+=s.generators.length}return G(A,0),G(A,0),Z(new K("pgen",A.length,A))}function aI(){let e=10;for(let I of this.presets)e+=I.presetZones.reduce((s,n)=>n.modulators.length*10+s,0);let A=new U(e),t=0;for(let I of this.presets)for(let s of I.presetZones){s.modulatorZoneStartIndex=t;for(let n of s.modulators)G(A,n.modulatorSource),G(A,n.modulatorDestination),G(A,n.transformAmount),G(A,n.modulationSecondarySrc),G(A,n.transformType),t++}return oe(A,0,10),Z(new K("pmod",A.length,A))}function BI(){let e=this.presets.reduce((n,a)=>a.presetZones.length*4+n,4),A=new U(e),t=0,I=0,s=0;for(let n of this.presets){n.presetZoneStartIndex=t;for(let a of n.presetZones)a.zoneID=t,G(A,I),G(A,s),I+=a.generators.length,s+=a.modulators.length,t++}return G(A,I),G(A,s),Z(new K("pbag",A.length,A))}function QI(){let e=this.presets.length*38+38,A=new U(e),t=0;for(let I of this.presets)uA(A,I.presetName,20),G(A,I.program),G(A,I.bank),G(A,t),iA(A,I.library),iA(A,I.genre),iA(A,I.morphology),t+=I.presetZones.length;return uA(A,"EOP",20),G(A,0),G(A,0),G(A,t),iA(A,0),iA(A,0),iA(A,0),Z(new K("phdr",A.length,A))}var js={compress:!1,compressionQuality:.5,compressionFunction:void 0};function hI(e=js){if(e.compress&&typeof e.compressionFunction!="function")throw new TypeError("No compression function supplied but compression enabled.");HA("%cSaving soundfont...",C.info),y(`%cCompression: %c${e?.compress||"false"}%c quality: %c${e?.compressionQuality||"none"}`,C.info,C.recognized,C.info,C.recognized),y("%cWriting INFO...",C.info);let A=[];this.soundFontInfo.ISFT="SpessaSynth",e?.compress&&(this.soundFontInfo.ifil="3.0");for(let[V,X]of Object.entries(this.soundFontInfo))if(V==="ifil"||V==="iver"){let g=parseInt(X.split(".")[0]),v=parseInt(X.split(".")[1]),j=new U(4);G(j,g),G(j,v),A.push(Z(new K(V,4,j)))}else{let g=new U(X.length);uA(g,X),A.push(Z(new K(V,X.length,g)))}let t=ce([new U([73,78,70,79]),...A]),I=Z(new K("LIST",t.length,t));y("%cWriting SDTA...",C.info);let s=[],n=[],a=gI.call(this,s,n,e?.compress,e?.compressionQuality||.5,e.compressionFunction);y("%cWriting PDTA...",C.info),y("%cWriting SHDR...",C.info);let i=nI.call(this,s,n);y("%cWriting IGEN...",C.info);let Q=oI.call(this);y("%cWriting IMOD...",C.info);let c=rI.call(this);y("%cWriting IBAG...",C.info);let f=iI.call(this);y("%cWriting INST...",C.info);let u=CI.call(this),h=EI.call(this);y("%cWriting PMOD...",C.info);let d=aI.call(this);y("%cWriting PBAG...",C.info);let m=BI.call(this);y("%cWriting PHDR...",C.info);let Y=QI.call(this),M=ce([new U([112,100,116,97]),Y,m,d,h,u,f,c,Q,i]),L=Z(new K("LIST",M.length,M));y("%cWriting the output file...",C.info);let q=ce([new U([115,102,98,107]),I,a,L]),x=Z(new K("RIFF",q.length,q));return y(`%cSaved succesfully! Final file size: %c${x.length}`,C.info,C.recognized),sA(),x}var PA=class e{constructor(A){if(A.presets){this.presets=A.presets,this.soundFontInfo=A.info;return}if(this.dataArray=new U(A),Pt("%cParsing SoundFont...",C.info),!this.dataArray)throw sA(),new TypeError("No data!");let t=oA(this.dataArray,!1);this.verifyHeader(t,"riff"),this.verifyText(z(this.dataArray,4),"sfbk");let I=oA(this.dataArray);for(this.verifyHeader(I,"list"),z(I.chunkData,4),this.soundFontInfo={};I.chunkData.length>I.chunkData.currentIndex;){let g=oA(I.chunkData),v;switch(g.header.toLowerCase()){case"ifil":case"iver":v=`${T(g.chunkData,2)}.${T(g.chunkData,2)}`;break;case"icmt":v=z(g.chunkData,g.chunkData.length,void 0,!1);break;default:v=z(g.chunkData,g.chunkData.length)}y(`%c"${g.header}": %c"${v}"`,C.info,C.recognized),this.soundFontInfo[g.header]=v}let s=oA(this.dataArray,!1);this.verifyHeader(s,"list"),this.verifyText(z(this.dataArray,4),"sdta"),y("%cVerifying smpl chunk...",C.warn);let n=oA(this.dataArray,!1);this.verifyHeader(n,"smpl"),this.sampleDataStartIndex=this.dataArray.currentIndex,y(`%cSkipping sample chunk, length: %c${s.size-12}`,C.info,C.value),this.dataArray.currentIndex+=s.size-12,y("%cLoading preset data chunk...",C.warn);let a=oA(this.dataArray);this.verifyHeader(a,"list"),z(a.chunkData,4);let i=oA(a.chunkData);this.verifyHeader(i,"phdr");let Q=oA(a.chunkData);this.verifyHeader(Q,"pbag");let c=oA(a.chunkData);this.verifyHeader(c,"pmod");let f=oA(a.chunkData);this.verifyHeader(f,"pgen");let u=oA(a.chunkData);this.verifyHeader(u,"inst");let h=oA(a.chunkData);this.verifyHeader(h,"ibag");let d=oA(a.chunkData);this.verifyHeader(d,"imod");let m=oA(a.chunkData);this.verifyHeader(m,"igen");let Y=oA(a.chunkData);this.verifyHeader(Y,"shdr"),this.dataArray.currentIndex=this.sampleDataStartIndex,this.samples=AI(Y,this.dataArray);let M=ve(m),L=_e(d),q=tI(h,M,L,this.samples);this.instruments=eI(u,q);let x=ve(f),V=_e(c),X=II(Q,x,V,this.instruments);this.presets=sI(i,X),this.presets.sort((g,v)=>g.program-v.program+(g.bank-v.bank)),y(`%cParsing finished! %c"${this.soundFontInfo.INAM}"%c has %c${this.presets.length} %cpresets,
|
|
11
|
+
%c${this.instruments.length}%c instruments and %c${this.samples.length}%c samples.`,C.info,C.recognized,C.info,C.recognized,C.info,C.recognized,C.info,C.recognized,C.info),sA()}removeUnusedElements(){this.instruments.forEach(A=>{A.useCount<1&&A.instrumentZones.forEach(t=>{t.isGlobal||t.sample.useCount--})}),this.instruments=this.instruments.filter(A=>A.useCount>0),this.samples=this.samples.filter(A=>A.useCount>0)}deleteInstrument(A){if(A.useCount>0)throw new Error(`Cannot delete an instrument that has ${A.useCount} usages.`);this.instruments.splice(this.instruments.indexOf(A),1),A.deleteInstrument(),this.removeUnusedElements()}deleteSample(A){if(A.useCount>0)throw new Error(`Cannot delete sample that has ${A.useCount} usages.`);this.samples.splice(this.samples.indexOf(A),1),this.removeUnusedElements()}deletePreset(A){A.deletePreset(),this.presets.splice(this.presets.indexOf(A),1),this.removeUnusedElements()}verifyHeader(A,t){if(A.header.toLowerCase()!==t.toLowerCase())throw sA(),new SyntaxError(`Invalid chunk header! Expected "${t.toLowerCase()}" got "${A.header.toLowerCase()}"`)}verifyText(A,t){if(A.toLowerCase()!==t.toLowerCase())throw sA(),new SyntaxError(`Invalid soundFont! Expected "${t.toLowerCase()}" got "${A.toLowerCase()}"`)}getPreset(A,t){let I=this.presets.find(s=>s.bank===A&&s.program===t);return I||(I=this.presets.find(s=>s.program===t&&s.bank!==128),A===128&&(I=this.presets.find(s=>s.bank===128&&s.program===t),I||(I=this.presets.find(s=>s.bank===128))),I&&J(`%cPreset ${A}.${t} not found. Replaced with %c${I.presetName} (${I.bank}.${I.program})`,C.warn,C.recognized)),I||(J(`Preset ${t} not found. Defaulting to`,this.presets[0].presetName),I=this.presets[0]),I}getPresetByName(A){let t=this.presets.find(I=>I.presetName===A);return t||(J("Preset not found. Defaulting to:",this.presets[0].presetName),t=this.presets[0]),t}static mergeSoundfonts(...A){let t=A.shift(),I=t.presets;for(;A.length;)A.shift().presets.forEach(n=>{I.find(a=>a.bank===n.bank&&a.program===n.program)===void 0&&I.push(n)});return new e({presets:I,info:t.soundFontInfo})}};PA.prototype.write=hI;function lI(e){let A=e.messageData,t=e.channelNumber,I={};switch(t>=0&&(I=this.workletProcessorChannels[t]),e.messageType){case O.noteOn:this.noteOn(t,A[0],A[1],A[2]);break;case O.noteOff:this.noteOff(t,A);break;case O.pitchWheel:this.pitchWheel(t,A[0],A[1]);break;case O.ccChange:this.controllerChange(t,A[0],A[1],A[2]);break;case O.customcCcChange:I.customControllers[A[0]]=A[1];break;case O.killNote:this.killNote(t,A);break;case O.programChange:this.programChange(t,A[0],A[1]);break;case O.channelPressure:this.channelPressure(t,A);break;case O.polyPressure:this.polyPressure(t,A[0],A[1]);break;case O.ccReset:t===KA?this.resetAllControllers():this.resetControllers(t);break;case O.systemExclusive:this.systemExclusive(A);break;case O.setChannelVibrato:if(t===KA)for(let a=0;a<this.workletProcessorChannels.length;a++)A.rate===-1?this.disableAndLockVibrato(a):this.setVibrato(a,A.depth,A.rate,A.delay);A.rate===-1?this.disableAndLockVibrato(t):this.setVibrato(t,A.depth,A.rate,A.delay);break;case O.reloadSoundFont:this.reloadSoundFont(A);break;case O.stopAll:t===KA?this.stopAllChannels(A===1):this.stopAll(t,A===1);break;case O.killNotes:this.voiceKilling(A);break;case O.muteChannel:this.muteChannel(t,A);break;case O.addNewChannel:this.createWorkletChannel(!0);break;case O.debugMessage:this.debugMessage();break;case O.setMasterParameter:let s=A[0],n=A[1];switch(s){case se.masterPan:this.setMasterPan(n);break;case se.mainVolume:this.setMasterGain(n);break;case se.voicesCap:this.voiceCap=n;break}break;case O.setDrums:this.setDrums(t,A);break;case O.transpose:t===KA?this.transposeAllChannels(A[0],A[1]):this.transposeChannel(t,A[0],A[1]);break;case O.highPerformanceMode:this.highPerformanceMode=A;break;case O.lockController:A[0]===KA?I.lockPreset=A[1]:I.lockedControllers[A[0]]=A[1];break;case O.sequencerSpecific:this.sequencer.processMessage(A.messageType,A.messageData);break;case O.requestSynthesizerSnapshot:this.sendSynthesizerSnapshot();break;case O.setLogLevel:Kt(A[0],A[1],A[2],A[3]);break;default:J("Unrecognized event:",A);break}}function cI(e,A=0){switch(e[0]){default:J(`%cUnrecognized SysEx: %c${CA(e)}`,C.warn,C.unrecognized);break;case 126:e[2]===9&&(e[3]===1?(y("%cGM system on",C.info),this.system="gm"):e[3]===3?(y("%cGM2 system on",C.info),this.system="gm2"):(y("%cGM system off, defaulting to GS",C.info),this.system="gs"));break;case 127:if(e[2]===4){let I;switch(e[3]){case 1:let s=e[5]<<7|e[4];this.setMIDIVolume(s/16384),y(`%cMaster Volume. Volume: %c${s}`,C.info,C.value);break;case 2:let a=((e[5]<<7|e[4])-8192)/8192;this.setMasterPan(a),y(`%cMaster Pan. Pan: %c${a}`,C.info,C.value);break;case 3:let i=(e[5]<<7|e[6])-8192;I=Math.floor(i/81.92),this.setMasterTuning(I),y(`%cMaster Fine Tuning. Cents: %c${I}`,C.info,C.value);break;case 4:I=(e[5]-64)*100,this.setMasterTuning(I),y(`%cMaster Coarse Tuning. Cents: %c${I}`,C.info,C.value);break;default:J(`%cUnrecognized MIDI Device Control Real-time message: %c${CA(e)}`,C.warn,C.unrecognized)}}else J(`%cUnrecognized MIDI Real-time message: %c${CA(e)}`,C.warn,C.unrecognized);break;case 65:if(e[2]===66&&e[3]===18){let I=e[7];if(e[6]===127){I===0?(y("%cGS system on",C.info),this.system="gs"):I===127&&(y("%cGS system off, switching to GM2",C.info),this.system="gm2");return}else if(e[4]===64){if((e[5]&16)>0){let s=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][e[5]&15]+A;switch(e[6]){default:break;case 21:let n=I>0&&e[5]>>4;this.setDrums(s,n),y(`%cChannel %c${s}%c ${n?"is now a drum channel":"now isn't a drum channel"}%c via: %c${CA(e)}`,C.info,C.value,C.recognized,C.info,C.value);return;case 22:let a=I-64;this.transposeChannel(s,a),y(`%cChannel %c${s}%c pitch shift. Semitones %c${a}%c, with %c${CA(e)}`,C.info,C.recognized,C.info,C.value,C.info,C.value);return;case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:let i=I-64;y(`%cChannel %c${s}%c tuning. Cents %c${i}%c, with %c${CA(e)}`,C.info,C.recognized,C.info,C.value,C.info,C.value),this.setChannelTuning(s,i)}}else if(e[5]===0&&e[6]===6){y(`%cRoland GS Master Pan set to: %c${I}%c with: %c${CA(e)}`,C.info,C.value,C.info,C.value),this.setMasterPan((I-64)/64);return}else if(e[5]===0&&e[6]===5){let s=I-64;y(`%cRoland GS Master Key-Shift set to: %c${s}%c with: %c${CA(e)}`,C.info,C.value,C.info,C.value),this.setMasterTuning(s*100);return}else if(e[5]===0&&e[6]===4){y(`%cRoland GS Master Volume set to: %c${I}%c with: %c${CA(e)}`,C.info,C.value,C.info,C.value),this.setMIDIVolume(I/127);return}}J(`%cUnrecognized Roland %cGS %cSysEx: %c${CA(e)}`,C.warn,C.recognized,C.warn,C.unrecognized);return}else if(e[2]===22&&e[3]===18&&e[4]===16){this.setMIDIVolume(e[7]/100),y(`%cRoland Master Volume control set to: %c${e[7]}%c via: %c${CA(e)}`,C.info,C.value,C.info,C.value);return}else{J(`%cUnrecognized Roland SysEx: %c${CA(e)}`,C.warn,C.unrecognized);return}case 67:e[2]===76&&e[5]===126&&e[6]===0?(y("%cXG system on",C.info),this.system="xg"):this.system==="xg"&&J(`%cUnrecognized Yamaha SysEx: %c${CA(e)}`,C.warn,C.unrecognized);break}}var ot=new Float32Array(30001);for(let e=0;e<ot.length;e++){let A=-15e3+e;ot[e]=Math.pow(2,A/1200)}function BA(e){return ot[e- -15e3]}var ye=-2e4,dI=16500,gt=new Float32Array(dI-ye+1);for(let e=0;e<gt.length;e++){let A=ye+e;gt[e]=440*Math.pow(2,(A-6900)/1200)}function ge(e){return e<ye||e>dI?440*Math.pow(2,(e-6900)/1200):gt[~~e-ye]}var rt=-1660,$s=1600,nt=new Float32Array(($s-rt)*100+1);for(let e=0;e<nt.length;e++){let A=(rt*100+e)/100;nt[e]=Math.pow(10,-A/20)}function DA(e){return nt[Math.floor((e-rt)*100)]}var fI={attenuation:100,currentAttenuationDb:100,state:0,releaseStartDb:100,attackDuration:0,decayDuration:0,releaseDuration:0,sustainDb:0,delayEnd:0,attackEnd:0,holdEnd:0,decayEnd:0,currentReleaseGain:1},mI=.001,uI=100,Ao=.005;function OA(e){let A=e.volumeEnvelope;if(A.attackDuration=BA(e.modulatedGenerators[B.attackVolEnv]),A.decayDuration=BA(e.modulatedGenerators[B.decayVolEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToVolEnvDecay]),A.releaseDuration=BA(e.modulatedGenerators[B.releaseVolEnv]),A.attenuation=e.modulatedGenerators[B.initialAttenuation]/10,A.sustainDb=e.volumeEnvelope.attenuation+e.modulatedGenerators[B.sustainVolEnv]/10,A.delayEnd=BA(e.modulatedGenerators[B.delayVolEnv])+e.startTime,A.attackEnd=A.attackDuration+A.delayEnd,A.holdEnd=BA(e.modulatedGenerators[B.holdVolEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToVolEnvHold])+A.attackEnd,A.decayEnd=A.decayDuration+A.holdEnd,e.isInRelease)switch(A.state){case 0:A.releaseStartDb=0;break;case 1:let I=(1-(A.attackEnd-e.releaseStartTime)/A.attackDuration)*DA(A.attenuation);A.releaseStartDb=20*Math.log10(I)*-1;break;case 2:A.releaseStartDb=A.attenuation;break;case 3:A.releaseStartDb=(1-(A.decayEnd-e.releaseStartTime)/A.decayDuration)*(A.sustainDb-A.attenuation)+A.attenuation;break;case 4:A.releaseStartDb=A.sustainDb;break;default:A.releaseStartDb=A.currentAttenuationDb}}function pI(e,A,t,I,s,n){let a=I/10,i=e.volumeEnvelope;if(e.isInRelease){let f=n*10,u=i.releaseStartDb+a,h=t-e.releaseStartTime,d=uI-u,m=i.currentReleaseGain;for(let Y=0;Y<A.length;Y++){let M=h/i.releaseDuration*d+u;m=DA(M+a),i.currentReleaseGain+=(m-i.currentReleaseGain)*f,A[Y]*=i.currentReleaseGain,h+=s}i.currentReleaseGain<=Ao&&(e.finished=!0);return}let Q=t,c=0;switch(i.state){case 0:for(;Q<i.delayEnd;)if(i.currentAttenuationDb=uI,A[c]=0,Q+=s,++c>=A.length)return;i.state++;case 1:for(;Q<i.attackEnd;){let u=(1-(i.attackEnd-Q)/i.attackDuration)*DA(i.attenuation+a);if(A[c]*=u,i.currentAttenuationDb=i.attenuation,Q+=s,++c>=A.length)return}i.state++;case 2:for(;Q<i.holdEnd;){let f=i.attenuation+a;if(i.currentAttenuationDb+=(f-i.currentAttenuationDb)*n,A[c]*=DA(i.currentAttenuationDb),Q+=s,++c>=A.length)return}i.state++;case 3:for(;Q<i.decayEnd;){let f=(1-(i.decayEnd-Q)/i.decayDuration)*(i.sustainDb-i.attenuation)+i.attenuation+a;if(i.currentAttenuationDb+=(f-i.currentAttenuationDb)*n,A[c]*=DA(i.currentAttenuationDb),Q+=s,++c>=A.length)return}i.state++;case 4:for(;;){let f=i.sustainDb+a;if(i.currentAttenuationDb+=(f-i.currentAttenuationDb)*n,A[c]*=DA(i.currentAttenuationDb),++c>=A.length)return}}}var yI={a0:0,a1:0,a2:0,a3:0,a4:0,x1:0,x2:0,y1:0,y2:0,reasonanceCb:0,reasonanceGain:1,cutoffCents:13500,cutoffHz:2e4};function SI(e,A,t){if(!(t>13499)){(e.filter.cutoffCents!==t||e.filter.reasonanceCb!==e.modulatedGenerators[B.initialFilterQ])&&(e.filter.cutoffCents=t,e.filter.reasonanceCb=e.modulatedGenerators[B.initialFilterQ],eo(e));for(let I=0;I<A.length;I++){let s=A[I],n=e.filter.a0*s+e.filter.a1*e.filter.x1+e.filter.a2*e.filter.x2-e.filter.a3*e.filter.y1-e.filter.a4*e.filter.y2;e.filter.x2=e.filter.x1,e.filter.x1=s,e.filter.y2=e.filter.y1,e.filter.y1=n,A[I]=n}}}function eo(e){e.filter.cutoffHz=ge(e.filter.cutoffCents),e.filter.cutoffHz>.45*sampleRate&&(e.filter.cutoffHz=.45*sampleRate);let A=e.filter.reasonanceCb/10-3.01;e.filter.reasonanceGain=DA(-1*A);let t=1/Math.sqrt(e.filter.reasonanceGain),I=2*Math.PI*e.filter.cutoffHz/sampleRate,s=Math.cos(I),n=Math.sin(I)/(2*e.filter.reasonanceGain),a=(1-s)*t,i=a/2,Q=i,c=1+n,f=-2*s,u=1-n;e.filter.a0=i/c,e.filter.a1=a/c,e.filter.a2=Q/c,e.filter.a3=f/c,e.filter.a4=u/c}var Se=[];function DI(){Se=[]}function to(e,A,t,I){Se[t]=!1,I({channel:e,sampleID:t,sampleData:A.getAudioData()}),Se[t]=!0}function ne(e){if(e===null||typeof e!="object")return e;if(e instanceof Int16Array)return new Int16Array(e);let A=Array.isArray(e)?[]:{};for(let t in e)e.hasOwnProperty(t)&&(typeof e[t]=="object"&&e[t]!==null?A[t]=ne(e[t]):e[t]instanceof Int16Array?A[t]=new Int16Array(e[t]):A[t]=e[t]);return A}function wI(e,A,t,I,s,n,a,i,Q=!1){let c,f=i[A][t];return f!==void 0?(c=f.map(ne),c.forEach(u=>{u.startTime=s})):(c=I.getSamplesAndGenerators(A,t).reduce((u,h)=>{if(Se[h.sampleID]!==!0&&to(e,h.sample,h.sampleID,a),h.sample.sampleData===void 0)return J(`Discarding invalid sample: ${h.sample.sampleName}`),u;let d=new Int16Array(60);for(let V=0;V<60;V++)d[V]=Xt(V,h.presetGenerators,h.instrumentGenerators);d[B.initialAttenuation]=Math.floor(d[B.initialAttenuation]*.4);let m=h.sample.samplePitch;d[B.overridingRootKey]>-1&&(m=d[B.overridingRootKey]);let Y=A;d[B.keyNum]>-1&&(Y=d[B.keyNum]);let M=h.sample.sampleLoopStartIndex/2+(d[B.startloopAddrsOffset]+d[B.startloopAddrsCoarseOffset]*32768),L=h.sample.sampleLoopEndIndex/2+(d[B.endloopAddrsOffset]+d[B.endloopAddrsCoarseOffset]*32768),q=d[B.sampleModes];L-M<1&&(q=0);let x={sampleID:h.sampleID,playbackStep:h.sample.sampleRate/n*Math.pow(2,h.sample.samplePitchCorrection/1200),cursor:d[B.startAddrsOffset]+d[B.startAddrsCoarseOffset]*32768,rootKey:m,loopStart:M,loopEnd:L,end:Math.floor(h.sample.sampleData.length)-1+(d[B.endAddrOffset]+d[B.endAddrsCoarseOffset]*32768),loopingMode:q};return d[B.velocity]>-1&&(t=d[B.velocity]),Q&&Vt([{Sample:h.sample.sampleName,Generators:d,Modulators:h.modulators.map(V=>V.debugString()),Velocity:t,TargetKey:Y,MidiNote:A,WorkletSample:x}]),u.push({filter:ne(yI),generators:d,modulators:h.modulators,modulatedGenerators:new Int16Array(60),sample:x,velocity:t,midiNote:A,pressure:0,channelNumber:e,startTime:s,targetKey:Y,currentTuningCalculated:1,currentTuningCents:0,releaseStartTime:1/0,finished:!1,isInRelease:!1,currentModEnvValue:0,releaseStartModEnv:1,currentPan:.5,volumeEnvelope:ne(fI)}),u},[]),i[A][t]=c.map(ne)),c}var $=16384,WA=new Float32Array($),_A=new Float32Array($);WA[0]=0;WA[$-1]=1;_A[0]=0;_A[$-1]=1;for(let e=1;e<$-1;e++){let A=-.4166666666666667*Math.log(e/($-1))/Math.LN10;_A[e]=1-A,WA[$-1-e]=A}function ZA(e,A,t,I){switch(e&&(t=1-t),A){case cA.linear:return I?t*2-1:t;case cA.switch:return t=t>.5?1:0,I?t*2-1:t;case cA.concave:return I?(t=t*2-1,t<0?1-WA[~~(t*-$)]-1:WA[~~t*$]):WA[~~(t*$)];case cA.convex:return I?(t=t*2-1,t<0?1-_A[~~(t*-$)]-1:_A[~~(t*$)]):_A[~~(t*$)]}}function FI(e,A,t){if(A.transformAmount===0)return 0;let I;if(A.sourceUsesCC)I=e[A.sourceIndex];else{let Q=A.sourceIndex+eA;switch(A.sourceIndex){case H.noController:I=16383;break;case H.noteOnKeyNum:I=t.midiNote<<7;break;case H.noteOnVelocity:I=t.velocity<<7;break;case H.polyPressure:I=t.pressure<<7;break;default:I=e[Q];break}}let s=QA[A.sourceCurveType][A.sourcePolarity][A.sourceDirection][I],n;if(A.secSrcUsesCC)n=e[A.secSrcIndex];else{let Q=A.secSrcIndex+eA;switch(A.secSrcIndex){case H.noController:n=16383;break;case H.noteOnKeyNum:n=t.midiNote<<7;break;case H.noteOnVelocity:n=t.velocity<<7;break;case H.polyPressure:n=t.pressure<<7;break;default:n=e[Q]}}let a=QA[A.secSrcCurveType][A.secSrcPolarity][A.secSrcDirection][n],i=s*a*A.transformAmount;return A.transformType===2?Math.abs(i):i}function xA(e,A,t=-1,I=0){let{modulators:s,generators:n,modulatedGenerators:a}=e;if(t===-1){a.set(n),s.forEach(c=>{a[c.modulatorDestination]+=FI(A,c,e)}),OA(e);return}let i=new Set([B.initialAttenuation,B.delayVolEnv,B.attackVolEnv,B.holdVolEnv,B.decayVolEnv,B.sustainVolEnv,B.releaseVolEnv,B.keyNumToVolEnvHold,B.keyNumToVolEnvDecay]),Q=new Set;s.forEach(c=>{if(c.sourceUsesCC===t&&c.sourceIndex===I||c.secSrcUsesCC===t&&c.secSrcIndex===I){let f=c.modulatorDestination;Q.has(f)||(a[f]=n[f],s.forEach(u=>{u.modulatorDestination===f&&(a[f]+=FI(A,u,e))}),Q.add(f))}}),[...Q].some(c=>i.has(c))&&OA(e)}var QA=[];for(let e=0;e<4;e++){QA[e]=[[new Float32Array($),new Float32Array($)],[new Float32Array($),new Float32Array($)]];for(let A=0;A<$;A++)QA[e][0][0][A]=ZA(0,e,A/$,0),isNaN(QA[e][0][0][A])&&(QA[e][0][0][A]=1),QA[e][1][0][A]=ZA(0,e,A/$,1),isNaN(QA[e][1][0][A])&&(QA[e][1][0][A]=1),QA[e][0][1][A]=ZA(1,e,A/$,0),isNaN(QA[e][0][1][A])&&(QA[e][0][1][A]=1),QA[e][1][1][A]=ZA(1,e,A/$,1),isNaN(QA[e][1][1][A])&&(QA[e][1][1][A]=1)}function RI(e,A,t,I=!1,s=!0,n=currentTime){if(t===0){this.noteOff(e,A);return}if(this.highPerformanceMode&&this.totalVoicesAmount>200&&t<40||this.highPerformanceMode&&t<10||this.workletProcessorChannels[e].isMuted||(A+=this.workletProcessorChannels[e].channelTransposeKeyShift,A>127||A<0))return;let a=wI(e,A,t,this.workletProcessorChannels[e].preset,n,sampleRate,Q=>this.sampleDump(Q.channel,Q.sampleID,Q.sampleData),this.workletProcessorChannels[e].cachedVoices,I),i=this.workletProcessorChannels[e].voices;a.forEach(Q=>{let c=Q.generators[B.exclusiveClass];c!==0&&i.forEach(f=>{f.generators[B.exclusiveClass]===c&&(this.releaseVoice(f),f.modulatedGenerators[B.releaseVolEnv]=-7e3,f.modulatedGenerators[B.releaseModEnv]=-7e3,OA(f))}),xA(Q,this.workletProcessorChannels[e].midiControllers),Q.currentPan=(Math.max(-500,Math.min(500,Q.modulatedGenerators[B.pan]))+500)/1e3}),this.totalVoicesAmount+=a.length,this.totalVoicesAmount>this.voiceCap&&this.voiceKilling(a.length),i.push(...a),s&&(this.sendChannelProperties(),this.callEvent("noteon",{midiNote:A-this.workletProcessorChannels[e].channelTransposeKeyShift,channel:e,velocity:t}))}function GI(e,A){let t=this.workletProcessorChannels[e],I=()=>{t.channelVibrato.delay===0&&t.channelVibrato.rate===0&&t.channelVibrato.depth===0&&(t.channelVibrato.depth=50,t.channelVibrato.rate=8,t.channelVibrato.delay=.6)};switch(t.dataEntryState){default:case aA.Idle:break;case aA.NRPFine:switch(t.NRPCoarse){default:if(A===64)return;J(`%cUnrecognized NRPN for %c${e}%c: %c(0x${t.NRPCoarse.toString(16).toUpperCase()} 0x${t.NRPFine.toString(16).toUpperCase()})%c data value: %c${A}`,C.warn,C.recognized,C.warn,C.unrecognized,C.warn,C.value);break;case 1:switch(t.NRPFine){default:if(A===64)return;J(`%cUnrecognized NRPN for %c${e}%c: %c(0x${t.NRPCoarse.toString(16)} 0x${t.NRPFine.toString(16)})%c data value: %c${A}`,C.warn,C.recognized,C.warn,C.unrecognized,C.warn,C.value);break;case 8:if(t.lockVibrato||A===64)return;I(),t.channelVibrato.rate=A/64*8,y(`%cVibrato rate for channel %c${e}%c is now set to %c${t.channelVibrato.rate}%cHz.`,C.info,C.recognized,C.info,C.value,C.info);break;case 9:if(t.lockVibrato||A===64)return;I(),t.channelVibrato.depth=A/2,y(`%cVibrato depth for %c${e}%c is now set to %c${t.channelVibrato.depth}%c cents range of detune.`,C.info,C.recognized,C.info,C.value,C.info);break;case 10:if(t.lockVibrato||A===64)return;I(),t.channelVibrato.delay=A/64/3,y(`%cVibrato delay for %c${e}%c is now set to %c${t.channelVibrato.delay}%c seconds.`,C.info,C.recognized,C.info,C.value,C.info);break;case 32:let n=A;this.controllerChange(e,p.brightness,A),y(`%cFilter cutoff for %c${e}%c is now set to %c${n}`,C.info,C.recognized,C.info,C.value)}break;case 29:if(!t.drumChannel)return;let s=A;this.controllerChange(e,p.effects1Depth,s),y(`%cGS Drum reverb for %c${e}%c: %c${s}`,C.info,C.recognized,C.info,C.value);break}break;case aA.RPCoarse:case aA.RPFine:switch(t.RPValue){default:J(`%cUnrecognized RPN for %c${e}%c: %c(0x${t.RPValue.toString(16)})%c data value: %c${A}`,C.warn,C.recognized,C.warn,C.unrecognized,C.warn,C.value);break;case 0:t.midiControllers[eA+H.pitchWheelRange]=A<<7,y(`%cChannel ${e} bend range. Semitones: %c${A}`,C.info,C.value);break;case 2:this.setChannelTuningSemitones(e,A-64);break;case 1:this.setChannelTuning(e,A-64,!1);break;case 5:this.setModulationDepth(e,A*100);break;case 16383:this.resetParameters(e);break}}}function kI(e,A){let t=this.workletProcessorChannels[e];switch(t.dataEntryState){default:break;case aA.RPCoarse:case aA.RPFine:switch(t.RPValue){default:break;case 0:if(A===0)break;t.midiControllers[eA+H.pitchWheelRange]|=A;let I=(t.midiControllers[eA+H.pitchWheelRange]>>7)+A/127;y(`%cChannel ${e} bend range. Semitones: %c${I}`,C.info,C.value);break;case 1:let n=t.customControllers[AA.channelTuning]<<7|A;this.setChannelTuning(e,n*.01220703125);break;case 5:let i=t.customControllers[AA.modulationMultiplier]*50+A/128*100;this.setModulationDepth(e,i);break;case 16383:this.resetParameters(e);break}}}function NI(e,A){if(A>127||A<0){J("Received a noteOn for note",A,"Ignoring.");return}if(A+=this.workletProcessorChannels[e].channelTransposeKeyShift,this.highPerformanceMode&&!this.workletProcessorChannels[e].drumChannel){this.killNote(e,A);return}this.workletProcessorChannels[e].voices.forEach(I=>{I.midiNote!==A||I.isInRelease===!0||(this.workletProcessorChannels[e].holdPedal?this.workletProcessorChannels[e].sustainedVoices.push(I):this.releaseVoice(I))}),this.callEvent("noteoff",{midiNote:A-this.workletProcessorChannels[e].channelTransposeKeyShift,channel:e})}function MI(e,A){this.workletProcessorChannels[e].voices.forEach(t=>{t.midiNote===A&&(t.modulatedGenerators[B.releaseVolEnv]=-12e3,this.releaseVoice(t))})}function UI(e,A=!1){let t=this.workletProcessorChannels[e].voices;A?(t.length=0,this.workletProcessorChannels[e].sustainedVoices.length=0,this.sendChannelProperties()):(t.forEach(I=>{I.isInRelease||this.releaseVoice(I)}),this.workletProcessorChannels[e].sustainedVoices.forEach(I=>{this.releaseVoice(I)}))}function xI(e=!1){y("%cStop all received!",C.info);for(let A=0;A<this.workletProcessorChannels.length;A++)this.stopAll(A,e);this.callEvent("stopall",void 0)}function bI(e,A,t,I=!1){let s=this.workletProcessorChannels[e];if(A>=p.lsbForControl1ModulationWheel&&A<=p.lsbForControl13EffectControl2&&A!==p.lsbForControl6DataEntry){let n=A-32;if(s.lockedControllers[n])return;s.midiControllers[n]=s.midiControllers[n]&16256|t&127,s.voices.forEach(a=>xA(a,s.midiControllers,1,n))}switch(A){case p.allNotesOff:this.stopAll(e);break;case p.allSoundOff:this.stopAll(e,!0);break;case p.bankSelect:let n=t;if(!I){switch(this.system){case"gm":y(`%cIgnoring the Bank Select (${t}), as the synth is in GM mode.`,C.info);return;case"xg":n===120||n===126||n===127?this.setDrums(e,!0):this.setDrums(e,!1);break;case"gm2":n===120&&(s.drumChannel=!0,this.callEvent("drumchange",{channel:e,isDrumChannel:!0}))}s.drumChannel&&(n=128),n===128&&!s.drumChannel&&(n=s.midiControllers[p.bankSelect])}s.midiControllers[p.bankSelect]=n;break;case p.lsbForControl0BankSelect:this.system==="xg"?s.drumChannel||t!==127&&(s.midiControllers[p.bankSelect]=t):this.system==="gm2"&&(s.midiControllers[p.bankSelect]=t);break;case p.RPNLsb:s.RPValue=s.RPValue<<7|t,s.dataEntryState=aA.RPFine;break;case p.RPNMsb:s.RPValue=t,s.dataEntryState=aA.RPCoarse;break;case p.NRPNMsb:s.NRPCoarse=t,s.dataEntryState=aA.NRPCoarse;break;case p.NRPNLsb:s.NRPFine=t,s.dataEntryState=aA.NRPFine;break;case p.dataEntryMsb:this.dataEntryCoarse(e,t);break;case p.lsbForControl6DataEntry:this.dataEntryFine(e,t);break;case p.resetAllControllers:this.resetControllers(e);break;case p.sustainPedal:t>=64?s.holdPedal=!0:(s.holdPedal=!1,s.sustainedVoices.forEach(a=>{this.releaseVoice(a)}),s.sustainedVoices=[]);break;default:if(s.lockedControllers[A])return;s.midiControllers[A]=t<<7,s.voices.forEach(a=>xA(a,s.midiControllers,1,A)),this.callEvent("controllerchange",{channel:e,controllerNumber:A,controllerValue:t});break}}function LI(e){this.midiVolume=e,this.setMasterPan(this.pan)}function HI(e){this.masterGain=e*it,this.setMasterPan(this.pan)}function YI(e){this.pan=e,e=e/2+.5,this.panLeft=(1-e)*this.currentGain,this.panRight=e*this.currentGain}function JI(e,A){A&&this.stopAll(e,!0),this.workletProcessorChannels[e].isMuted=A,this.sendChannelProperties(),this.callEvent("mutechannel",{channel:e,isMuted:A})}function TI(e,A){this.enableEventSystem&&this.post({messageType:lA.eventCall,messageData:{eventName:e,eventData:A}})}function qI(e){this.enableEventSystem&&this.port.postMessage(e)}function KI(){if(!this.enableEventSystem)return;let e=this.workletProcessorChannels.map(A=>{let t=(A.midiControllers[eA+H.pitchWheelRange]>>7)+(A.midiControllers[eA+H.pitchWheelRange]&127)/127;return{voicesAmount:A.voices.length,pitchBend:A.midiControllers[eA+H.pitchWheel],pitchBendRangeSemitones:t,isMuted:A.isMuted,isDrum:A.drumChannel}});this.post({messageType:lA.channelProperties,messageData:e})}function VI(e,A=!1){this.transposition=0;for(let t=0;t<this.workletProcessorChannels.length;t++)this.transposeChannel(t,e,A);this.transposition=e}function PI(e,A,t=!1){let I=this.workletProcessorChannels[e];I.drumChannel||(A+=this.transposition);let s=Math.trunc(A),n=I.channelTransposeKeyShift+I.customControllers[AA.channelTransposeFine]/100;I.drumChannel&&!t||A===n||(s!==I.channelTransposeKeyShift&&this.stopAll(e,!1),I.channelTransposeKeyShift=s,I.customControllers[AA.channelTransposeFine]=(A-s)*100)}function OI(e,A,t=!0){let I=this.workletProcessorChannels[e];A=Math.round(A),I.customControllers[AA.channelTuning]=A,t&&y(`%cChannel ${e} fine tuning. Cents: %c${A}`,C.info,C.value)}function ZI(e,A){let t=this.workletProcessorChannels[e];A=Math.round(A),t.customControllers[AA.channelTuningSemitones]=A,y(`%cChannel ${e} coarse tuning. Semitones: %c${A}`,C.info,C.value)}function vI(e){e=Math.round(e);for(let A=0;A<this.workletProcessorChannels.length;A++)this.workletProcessorChannels[A].customControllers[AA.masterTuning]=e}function XI(e,A){let t=this.workletProcessorChannels[e];A=Math.round(A),y(`%cChannel ${e} modulation depth. Cents: %c${A}`,C.info,C.value),t.customControllers[AA.modulationMultiplier]=A/50}function WI(e,A,t){if(this.workletProcessorChannels[e].lockedControllers[eA+H.pitchWheel])return;let I=t|A<<7;this.callEvent("pitchwheel",{channel:e,MSB:A,LSB:t}),this.workletProcessorChannels[e].midiControllers[eA+H.pitchWheel]=I,this.workletProcessorChannels[e].voices.forEach(s=>xA(s,this.workletProcessorChannels[e].midiControllers,0,H.pitchWheel)),this.sendChannelProperties()}function _I(e,A){let t=this.workletProcessorChannels[e];t.midiControllers[eA+H.channelPressure]=A<<7,this.workletProcessorChannels[e].voices.forEach(I=>xA(I,t.midiControllers,0,H.channelPressure)),this.callEvent("channelpressure",{channel:e,pressure:A})}function zI(e,A,t){this.workletProcessorChannels[e].voices.forEach(I=>{I.midiNote===A&&(I.pressure=t,xA(I,this.workletProcessorChannels[e].midiControllers,0,H.polyPressure))}),this.callEvent("polypressure",{channel:e,midiNote:A,pressure:t})}function jI(e,A,t=!1){let I=this.workletProcessorChannels[e];if(I.lockPreset)return;let s=I.drumChannel?128:I.midiControllers[p.bankSelect],n=this.soundfont.getPreset(s,A);this.setPreset(e,n),this.callEvent("programchange",{channel:e,program:n.program,bank:n.bank,userCalled:t})}function $I(e,A){if(!this.workletProcessorChannels[e].lockPreset){this.workletProcessorChannels[e].preset=A,this.workletProcessorChannels[e].cachedVoices=[];for(let t=0;t<128;t++)this.workletProcessorChannels[e].cachedVoices.push([])}}function As(e,A){let t=this.workletProcessorChannels[e];t.lockPreset||(A?(t.channelTransposeKeyShift=0,t.drumChannel=!0,this.setPreset(e,this.soundfont.getPreset(128,t.preset.program))):(t.drumChannel=!1,this.setPreset(e,this.soundfont.getPreset(t.midiControllers[p.bankSelect],t.preset.program))),this.callEvent("drumchange",{channel:e,isDrumChannel:t.drumChannel}),this.sendChannelProperties())}function es(){this.callEvent("presetlistchange",this.soundfont.presets.map(e=>({presetName:e.presetName,bank:e.bank,program:e.program})))}function ts(e){this.stopAllChannels(!0),delete this.soundfont;try{this.soundfont=new PA(e)}catch(A){this.post({messageType:lA.soundfontError,messageData:A});return}DI(),delete this.workletDumpedSamplesList,this.workletDumpedSamplesList=[],this.defaultPreset=this.soundfont.getPreset(0,0),this.drumPreset=this.soundfont.getPreset(128,0);for(let A=0;A<this.workletProcessorChannels.length;A++){let t=this.workletProcessorChannels[A];t.cachedVoices=[];for(let I=0;I<128;I++)t.cachedVoices.push([]);t.lockPreset=!1,this.programChange(A,t.preset.program)}this.post({messageType:lA.ready,messageData:void 0}),this.sendPresetList(),y("%cSpessaSynth is ready!",C.recognized)}function Is(e,A,t){this.workletDumpedSamplesList[A]=t,this.workletProcessorChannels[e].voices.forEach(I=>{if(I.sample.sampleID===A){if(I.sample.end=t.length-1+I.generators[B.endAddrOffset]+I.generators[B.endAddrsCoarseOffset]*32768,I.sample.cursor=I.sample.playbackStep*sampleRate*(currentTime-I.startTime),I.sample.loopingMode===0){if(I.sample.cursor>=I.sample.end){I.finished=!0;return}}else I.sample.cursor>I.sample.loopEnd&&(I.sample.cursor=I.sample.cursor%(I.sample.loopEnd-I.sample.loopStart)+I.sample.loopStart-1);I.startTime=currentTime}})}function ss(e){this.workletProcessorChannels[e].lockVibrato=!0,this.workletProcessorChannels[e].channelVibrato.rate=0,this.workletProcessorChannels[e].channelVibrato.delay=0,this.workletProcessorChannels[e].channelVibrato.depth=0}function os(e,A,t,I){this.workletProcessorChannels[e].lockVibrato||(this.workletProcessorChannels[e].channelVibrato.rate=t,this.workletProcessorChannels[e].channelVibrato.delay=I,this.workletProcessorChannels[e].channelVibrato.depth=A)}var wA={loadNewSongList:0,pause:1,stop:2,play:3,setTime:4,changeMIDIMessageSending:5,setPlaybackRate:6,setLoop:7,changeSong:8,getMIDI:9},fA={midiEvent:0,songChange:1,textEvent:2,timeChange:3,pause:4,getMIDI:5,midiError:6};function JA(e,A){let t=0;for(let I=8*(A-1);I>=0;I-=8)t|=e[e.currentIndex++]<<I;return t>>>0}function gs(e,A){if(this.ignoreEvents)return;if(this.sendMIDIMessages&&e.messageStatusByte>=128){this.sendMIDIMessage([e.messageStatusByte,...e.messageData]);return}let t=Ie(e.messageStatusByte),I=this.midiPortChannelOffsets[this.midiPorts[A]]||0;switch(t.channel+=I,t.status){case S.noteOn:let s=e.messageData[1];if(s>0)this.synth.noteOn(t.channel,e.messageData[0],s),this.playingNotes.push({midiNote:e.messageData[0],channel:t.channel,velocity:s,startTime:this.currentTime});else{this.synth.noteOff(t.channel,e.messageData[0]);let i=this.playingNotes.findIndex(Q=>Q.midiNote===e.messageData[0]&&Q.channel===t.channel);i!==-1&&this.playingNotes.splice(i,1)}break;case S.noteOff:this.synth.noteOff(t.channel,e.messageData[0]);let n=this.playingNotes.findIndex(i=>i.midiNote===e.messageData[0]&&i.channel===t.channel);n!==-1&&this.playingNotes.splice(n,1);break;case S.pitchBend:this.synth.pitchWheel(t.channel,e.messageData[1],e.messageData[0]);break;case S.controllerChange:let a=e.messageData[1];this.midiData.embeddedSoundFont&&e.messageData[0]===p.bankSelect&&a--,this.synth.controllerChange(t.channel,e.messageData[0],a);break;case S.programChange:this.synth.programChange(t.channel,e.messageData[0]);break;case S.polyPressure:this.synth.polyPressure(t.channel,e.messageData[0],e.messageData[1]);break;case S.channelPressure:this.synth.channelPressure(t.channel,e.messageData[0]);break;case S.systemExclusive:this.synth.systemExclusive(e.messageData,I);break;case S.setTempo:this.oneTickToSeconds=60/(Io(e)*this.midiData.timeDivision),this.oneTickToSeconds===0&&(this.oneTickToSeconds=60/(120*this.midiData.timeDivision),J("invalid tempo! falling back to 120 BPM"));break;case S.timeSignature:case S.endOfTrack:case S.midiChannelPrefix:case S.songPosition:case S.activeSensing:case S.keySignature:break;case S.text:case S.lyric:case S.copyright:case S.trackName:case S.marker:case S.cuePoint:case S.instrumentName:this.post(fA.textEvent,[e.messageData,t.status]);break;case S.midiPort:this.assignMIDIPort(A,e.messageData[0]);break;case S.reset:this.synth.stopAllChannels(),this.synth.resetAllControllers();break;default:J(`%cUnrecognized Event: %c${e.messageStatusByte}%c status byte: %c${Object.keys(S).find(i=>S[i]===t.status)}`,C.warn,C.unrecognized,C.warn,C.value);break}}function ns(){for(let e=0;e<16;e++)this.synth.createWorkletChannel(!0),e===kA&&this.synth.setDrums(this.synth.workletProcessorChannels.length-1,!0)}function Io(e){return e.messageData.currentIndex=0,6e7/JA(e.messageData,3)}function rs(){let e=this.currentTime;for(;this.playedTime<e;){let A=this._findFirstEventIndex(),t=this.tracks[A][this.eventIndex[A]];if(this._processEvent(t,A),this.eventIndex[A]++,A=this._findFirstEventIndex(),this.tracks[A].length<=this.eventIndex[A]){if(this.loop){this.setTimeTicks(this.midiData.loop.start);return}this.eventIndex[A]--,this.pause(!0),this.songs.length>1&&this.nextSong();return}let I=this.tracks[A][this.eventIndex[A]];if(this.playedTime+=this.oneTickToSeconds*(I.ticks-t.ticks),this.midiData.loop.end<=t.ticks&&this.loop){this.setTimeTicks(this.midiData.loop.start);return}else if(e>=this.duration){if(this.loop){this.setTimeTicks(this.midiData.loop.start);return}this.eventIndex[A]--,this.pause(!0),this.songs.length>1&&this.nextSong();return}}}function is(){let e=0,A=1/0;return this.tracks.forEach((t,I)=>{this.eventIndex[I]>=t.length||t[this.eventIndex[I]].ticks<A&&(e=I,A=t[this.eventIndex[I]].ticks)}),e}var MA=new Int16Array(127);MA[p.mainVolume]=100;MA[p.expressionController]=127;MA[p.pan]=64;MA[p.releaseTime]=64;MA[p.brightness]=64;MA[p.effects1Depth]=40;function Cs(e,A=void 0){if(this.oneTickToSeconds=60/(120*this.midiData.timeDivision),this.synth.resetAllControllers(),this.sendMIDIMessages){this.sendMIDIMessage([S.reset]);for(let i=0;i<fe;i++)this.sendMIDIMessage([S.controllerChange|i,p.resetAllControllers,0])}this._resetTimers();let t=this.synth.workletProcessorChannels.length,I=Array(t).fill(8192),s=[];for(let i=0;i<t;i++)s.push({program:-1,bank:0,actualBank:0});let n=i=>i===p.dataDecrement||i===p.dataIncrement||i===p.dataEntryMsb||i===p.dataDecrement||i===p.lsbForControl6DataEntry||i===p.RPNLsb||i===p.RPNMsb||i===p.NRPNLsb||i===p.NRPNMsb||i===p.bankSelect||i===p.lsbForControl0BankSelect||i===p.resetAllControllers,a=[];for(let i=0;i<t;i++)a.push(Array.from(MA));for(;;){let i=this._findFirstEventIndex(),Q=this.tracks[i][this.eventIndex[i]];if(A!==void 0){if(Q.ticks>=A)break}else if(this.playedTime>=e)break;let c=Ie(Q.messageStatusByte),f=c.channel+(this.midiPortChannelOffsets[this.midiPorts[i]]||0);switch(c.status){case S.noteOn:case S.noteOff:case S.keySignature:break;case S.pitchBend:I[f]=Q.messageData[1]<<7|Q.messageData[0];break;case S.programChange:let h=s[f];h.program=Q.messageData[0],h.actualBank=h.bank;break;case S.controllerChange:let d=Q.messageData[0];if(n(d))if(this.sendMIDIMessages)this.sendMIDIMessage([S.controllerChange|f%16,d,Q.messageData[1]]);else{let m=Q.messageData[1];if(d===p.bankSelect){this.midiData.embeddedSoundFont!==void 0&&m--,s[f].bank=m;break}this.synth.controllerChange(f,d,m)}else a[f]===void 0&&(a[f]=Array.from(MA)),a[f][d]=Q.messageData[1];break;default:this._processEvent(Q,i);break}this.eventIndex[i]++,i=this._findFirstEventIndex();let u=this.tracks[i][this.eventIndex[i]];if(u===void 0)return this.stop(),!1;this.playedTime+=this.oneTickToSeconds*(u.ticks-Q.ticks)}if(this.sendMIDIMessages){for(let i=0;i<t;i++)if(this.sendMIDIMessage([S.pitchBend|i%16,I[i]&127,I[i]>>7]),a[i].forEach((Q,c)=>{Q!==MA[c]&&!n(c)&&this.sendMIDIMessage([S.controllerChange|i%16,c,Q])}),s[i].program!==-1){let Q=s[i].actualBank;this.sendMIDIMessage([S.controllerChange|i%16,p.bankSelect,Q]),this.sendMIDIMessage([S.programChange|i%16,s[i].program])}}else for(let i=0;i<t;i++)if(I[i]!==void 0&&this.synth.pitchWheel(i,I[i]>>7,I[i]&127),a[i]!==void 0&&a[i].forEach((Q,c)=>{Q!==MA[c]&&!n(c)&&this.synth.controllerChange(i,c,Q)}),s[i].program!==-1){let Q=s[i].actualBank;this.synth.controllerChange(i,p.bankSelect,Q),this.synth.programChange(i,s[i].program)}return!0}function Es(e=!1){if(this.midiData!==void 0){if(e){this.currentTime=0;return}if(this.currentTime>=this.duration){this.currentTime=0;return}if(this.paused&&(this._recalculateStartTime(this.pausedTime),this.pausedTime=void 0),!this.sendMIDIMessages){let A=this.currentTime;this.playingNotes.forEach(t=>{let I=t.startTime-A;this.synth.noteOn(t.channel,t.midiNote,t.velocity,!1,!0,currentTime+I)})}this.setProcessHandler()}}function De(e,A,t){if(A<=0)return 0;let I=e.find(n=>n.ticks<A),s=A-I.ticks;return De(e,A-s,t)+s*60/(I.tempo*t)}function as(e){this.stop(),this.playingNotes=[],this.pausedTime=void 0,this.post(fA.timeChange,currentTime-De(this.midiData.tempoChanges,e,this.midiData.timeDivision));let A=this._playTo(0,e);this._recalculateStartTime(this.playedTime),A&&this.play()}function Bs(e){this.absoluteStartTime=currentTime-e/this._playbackRate}var we=class{constructor(A){this.timeDivision=A.timeDivision,this.duration=A.duration,this.tempoChanges=A.tempoChanges,this.copyright=A.copyright,this.tracksAmount=A.tracksAmount,this.lyrics=A.lyrics,this.firstNoteOn=A.firstNoteOn,this.keyRange=A.keyRange,this.lastVoiceEventTick=A.lastVoiceEventTick,this.midiPorts=A.midiPorts,this.midiPortChannelOffsets=A.midiPortChannelOffsets,this.usedChannelsOnTrack=A.usedChannelsOnTrack,this.loop=A.loop,this.midiName=A.midiName,this.fileName=A.fileName,this.rawMidiName=A.rawMidiName}},RC={duration:99999,firstNoteOn:0,loop:{start:0,end:123456},lastVoiceEventTick:123456,lyrics:[],copyright:"",midiPorts:[],midiPortChannelOffsets:[],tracksAmount:0,tempoChanges:[{ticks:0,tempo:120}],fileName:"NOT_LOADED.mid",midiName:"Loading...",rawMidiName:new Uint8Array([76,111,97,100,105,110,103,46,46,46]),usedChannelsOnTrack:[],timeDivision:0,keyRange:{min:0,max:127}};function Fe(e){let A=0;for(;e;){let t=e[e.currentIndex++];if(A=A<<7|t&127,t>>7!==1)break}return A}var Re=class{constructor(A,t=""){HA("%cParsing MIDI File...",C.info);let I=new U(A),s;this.embeddedSoundFont=void 0,this.copyright="";let n=z(I,4);if(I.currentIndex-=4,n==="RIFF"){I.currentIndex+=8;let h=z(I,4,void 0,!1);if(h!=="RMID")throw sA(),new SyntaxError(`Invalid RMIDI Header! Expected "RMID", got "${h}"`);let d=oA(I);if(d.header!=="data")throw sA(),new SyntaxError(`Invalid RMIDI Chunk header! Expected "data", got "${h}"`);for(s=d.chunkData;I.currentIndex<=I.length;){let m=I.currentIndex,Y=oA(I,!0);Y.header==="RIFF"&&z(Y.chunkData,4)==="sfbk"&&(y("%cFound embedded soundfont!",C.recognized),this.embeddedSoundFont=I.slice(m,m+Y.size).buffer)}}else s=I;let a=this.readMIDIChunk(s);if(a.type!=="MThd")throw sA(),new SyntaxError(`Invalid MIDI Header! Expected "MThd", got "${a.type}"`);if(a.size!==6)throw sA(),new RangeError(`Invalid MIDI header chunk size! Expected 6, got ${a.size}`);this.format=JA(a.data,2),this.tracksAmount=JA(a.data,2),this.timeDivision=JA(a.data,2),this.keyRange={min:127,max:0},this.lyrics=[],this.tempoChanges=[{ticks:0,tempo:120}];let i=null,Q=null;this.lastVoiceEventTick=0,this.midiPorts=[];let c=0;this.midiPortChannelOffsets=[],this.usedChannelsOnTrack=[],this.tracks=[];for(let h=0;h<this.tracksAmount;h++){let d=[],m=this.readMIDIChunk(s),Y=new Set;if(this.midiPorts.push(-1),m.type!=="MTrk")throw sA(),new SyntaxError(`Invalid track header! Expected "MTrk" got "${m.type}"`);let M,L=0;for(this.format===2&&h>0&&(L+=this.tracks[h-1][this.tracks[h-1].length-1].ticks);m.data.currentIndex<m.size;){L+=Fe(m.data);let q=m.data[m.data.currentIndex],x;if(M!==void 0&&q<128)x=M;else{if(!M&&q<128)throw sA(),new SyntaxError(`Unexpected byte with no running byte. (${q})`);x=m.data[m.data.currentIndex++]}let V=Ht(x),X;switch(V){case-1:X=0;break;case-2:x=m.data[m.data.currentIndex++],X=Fe(m.data);break;case-3:X=Fe(m.data);break;default:if(L>this.lastVoiceEventTick&&(this.lastVoiceEventTick=L),X=Yt[x>>4],(x&240)===S.noteOn){Y.add(V);let IA=m.data[m.data.currentIndex];this.keyRange.min=Math.min(this.keyRange.min,IA),this.keyRange.max=Math.max(this.keyRange.max,IA)}M=x;break}let g=new U(X),v=m.data.slice(m.data.currentIndex,m.data.currentIndex+X);m.data.currentIndex+=X,g.set(v,0);let j=new de(L,x,g);switch(d.push(j),V){case-2:switch(x){case S.setTempo:this.tempoChanges.push({ticks:L,tempo:6e7/JA(v,3)});break;case S.marker:switch(z(g,g.length).trim().toLowerCase()){default:break;case"start":case"loopstart":i=L;break;case"loopend":Q=L}g.currentIndex=0;break;case S.midiPort:let rA=g[0];this.midiPorts[h]=rA,this.midiPortChannelOffsets[rA]===void 0&&(this.midiPortChannelOffsets[rA]=c,c+=16);break;case S.copyright:this.copyright+=z(g,g.length)+`
|
|
12
12
|
`;break;case S.lyric:this.lyrics.push(g)}break;case-3:if(CA(g.slice(0,7)).trim()==="41 10 45 12 10 00 00"){let IA=g.slice(7,v.length-3),rA=z(IA,IA.length)+`
|
|
13
|
-
`;this.copyright+=rA,m(`%cDecoded Roland SC message! %c${rA}`,C.recognized,C.value)}break;default:if((x&240)===S.controllerChange)switch(g[0]){case 2:case 116:a=L;break;case 4:case 117:h===null?h=L:h=0;break}}}this.tracks.push(u),this.usedChannelsOnTrack.push(Y),m(`%cParsed %c${this.tracks.length}%c / %c${this.tracksAmount}`,C.info,C.value,C.info,C.value)}let f=[];for(let Q of this.tracks){let u=Q.find(p=>(p.messageStatusByte&240)===S.noteOn);u&&f.push(u.ticks)}this.firstNoteOn=Math.min(...f),m(`%cMIDI file parsed. Total tick time: %c${this.lastVoiceEventTick}`,C.info,C.recognized),sA(),a!==null&&h===null?(a=this.firstNoteOn,h=this.lastVoiceEventTick):(a===null&&(a=this.firstNoteOn),(h===null||h===0)&&(h=this.lastVoiceEventTick));let c=0;for(let Q of this.midiPorts)if(Q!==-1){c=Q;break}if(this.midiPorts=this.midiPorts.map(Q=>Q===-1?c:Q),this.midiPortChannelOffsets.length===0&&(this.midiPortChannelOffsets=[0]),this.loop={start:a,end:h},this.midiName="",this.rawMidiName=new Uint8Array(0),this.tracks.length>1){if(this.tracks[0].find(Q=>Q.messageStatusByte>=S.noteOn&&Q.messageStatusByte<S.systemExclusive)===void 0){let Q=this.tracks[0].find(u=>u.messageStatusByte===S.trackName);Q&&(this.rawMidiName=Q.messageData,this.midiName=z(Q.messageData,Q.messageData.length,void 0,!1))}}else{let Q=this.tracks[0].find(u=>u.messageStatusByte===S.trackName);Q&&(this.rawMidiName=Q.messageData,this.midiName=z(Q.messageData,Q.messageData.length,void 0,!1))}if(this.fileName=t,this.midiName=this.midiName.trim(),this.midiName.length===0){this.midiName=Lt(t),this.rawMidiName=new Uint8Array(this.midiName.length);for(let Q=0;Q<this.midiName.length;Q++)this.rawMidiName[Q]=this.midiName.charCodeAt(Q)}this.tempoChanges.reverse(),this.duration=this._ticksToSeconds(this.lastVoiceEventTick)}readMIDIChunk(A){let t={};t.type=z(A,4),t.size=JA(A,4),t.data=new U(t.size);let I=A.slice(A.currentIndex,A.currentIndex+t.size);return t.data.set(I,0),A.currentIndex+=t.size,t}_ticksToSeconds(A){if(A<=0)return 0;let t=this.tempoChanges.find(s=>s.ticks<A),I=A-t.ticks;return this._ticksToSeconds(A-I)+I*60/(t.tempo*this.timeDivision)}};function Qs(e,A){HA("%cSearching for all used programs and keys...",C.info);let t=16+e.midiPortChannelOffsets.reduce((c,Q)=>Q>c?Q:c),I=[];for(let c=0;c<t;c++){let Q=c%16===kA?128:0;I.push({program:0,bank:Q,drums:c%16===kA,string:`${Q}:0`})}function s(c){let Q=A.getPreset(c.bank,c.program);Q.bank!==c.bank&&e.embeddedSoundFont&&(Q=A.getPreset(c.bank-1,c.program)),c.bank=Q.bank,c.program=Q.program,c.string=c.bank+":"+c.program,n[c.string]||(m(`%cDetected a new preset: %c${c.string}`,C.info,C.recognized),n[c.string]=new Set)}let n={},i=Array(e.tracks.length).fill(0),a=e.tracks.length;function h(){let c=0,Q=1/0;return e.tracks.forEach((u,p)=>{i[p]>=u.length||u[i[p]].ticks<Q&&(c=p,Q=u[i[p]].ticks)}),c}let d=e.midiPorts.slice(),f="gs";for(;a>0;){let c=h(),Q=e.tracks[c];if(i[c]>=Q.length){a--;continue}let u=Q[i[c]];if(i[c]++,u.messageStatusByte===S.midiPort){d[c]=u.messageData[0];continue}let p=u.messageStatusByte&240;if(p!==S.noteOn&&p!==S.controllerChange&&p!==S.programChange&&p!==S.systemExclusive)continue;let Y=(u.messageStatusByte&15)+e.midiPortChannelOffsets[d[c]]||0,M=I[Y];switch(p){case S.programChange:M.program=u.messageData[0],s(M);break;case S.controllerChange:if(u.messageData[0]!==y.bankSelect||f==="gs"&&M.drums)continue;let L=u.messageData[1];if(f==="xg"){let V=L===120||L===126||L===127;V!==M.drums?(M.drums=V,M.bank=M.drums?128:L,s(M)):M.bank=M.drums?128:L;continue}I[Y].bank=L;break;case S.noteOn:if(u.messageData[1]===0)continue;s(M),n[M.string].add(`${u.messageData[0]}-${u.messageData[1]}`);break;case S.systemExclusive:if(u.messageData[0]!==65||u.messageData[2]!==66||u.messageData[3]!==18||u.messageData[4]!==64||!(u.messageData[5]&16)||u.messageData[6]!==21){u.messageData[0]===67&&u.messageData[2]===76&&u.messageData[5]===126&&u.messageData[6]===0&&(f="xg");continue}let q=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][u.messageData[5]&15]+e.midiPortChannelOffsets[d[c]],x=!!(u.messageData[7]>0&&u.messageData[5]>>4);M=I[q],M.drums=x,M.bank=x?128:0,s(M);break}}for(let c of Object.keys(n))n[c].size===0&&(m(`%cDetected change but no keys for %c${c}`,C.info,C.value),delete n[c]);return sA(),n}function hs(e,A){this.midiPortChannelOffset===0&&(this.midiPortChannelOffset+=16,this.midiPortChannelOffsets[A]=0),this.midiPortChannelOffsets[A]===void 0&&(this.synth.workletProcessorChannels.length<this.midiPortChannelOffset+15&&this._addNewMidiPort(),this.midiPortChannelOffsets[A]=this.midiPortChannelOffset,this.midiPortChannelOffset+=16),this.midiPorts[e]=A}function ls(e){if(this.stop(),!e.tracks)throw"No tracks supplied!";if(this.oneTickToSeconds=60/(120*e.timeDivision),this.midiData=e,this.midiData.embeddedSoundFont!==void 0)this.synth.reloadSoundFont(this.midiData.embeddedSoundFont),this.synth.soundfont.samples.forEach(A=>A.getAudioData());else{HA("%cPreloading samples...",C.info);let A=Qs(this.midiData,this.synth.soundfont);for(let[t,I]of Object.entries(A)){let s=parseInt(t.split(":")[0]),n=parseInt(t.split(":")[1]),i=this.synth.soundfont.getPreset(s,n);m(`%cPreloading used samples on %c${i.presetName}%c...`,C.info,C.recognized,C.info);for(let a of I){let h=a.split("-");i.preloadSpecific(parseInt(h[0]),parseInt(h[1]))}}sA()}this.tracks=this.midiData.tracks,this.midiPorts=this.midiData.midiPorts,this.midiPortChannelOffset=0,this.midiPortChannelOffsets={},this.midiData.midiPorts.forEach((A,t)=>{this.assignMIDIPort(t,A)}),this.duration=this.midiData.duration,this.firstNoteTime=De(this.midiData.tempoChanges,this.midiData.firstNoteOn,this.midiData.timeDivision),m(`%cTotal song time: ${Oe(Math.ceil(this.duration)).time}`,C.recognized),this.post(fA.songChange,[new we(this.midiData),this.songIndex]),this.synth.resetAllControllers(),this.duration<=1&&(J(`%cVery short song: (${Oe(Math.round(this.duration)).time}). Disabling loop!`,C.warn),this.loop=!1),this.play(!0)}function cs(e){if(this.songs=e.reduce((A,t)=>{if(t.duration)return A.push(t),A;try{A.push(new Re(t.binary,t.altName||""))}catch(I){return this.post(fA.midiError,I.message),A}return A},[]),this.songs.length<1){console.log("no valid songs!");return}this.songIndex=0,this.songs.length>1&&(this.loop=!1),this.loadNewSequence(this.songs[this.songIndex])}function ds(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex++,this.songIndex%=this.songs.length,this.loadNewSequence(this.songs[this.songIndex])}function us(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex--,this.songIndex<0&&(this.songIndex=this.songs.length-1),this.loadNewSequence(this.songs[this.songIndex])}function fs(e,A){switch(e){default:break;case wA.loadNewSongList:this.loadNewSongList(A);break;case wA.pause:this.pause();break;case wA.play:this.play(A);break;case wA.stop:this.stop();break;case wA.setTime:this.currentTime=A;break;case wA.changeMIDIMessageSending:this.sendMIDIMessages=A;break;case wA.setPlaybackRate:this.playbackRate=A;break;case wA.setLoop:this.loop=A;break;case wA.changeSong:A?this.nextSong():this.previousSong();break;case wA.getMIDI:this.post(fA.getMIDI,this.midiData)}}function ms(e,A=void 0){this.synth.enableEventSystem&&this.synth.post({messageType:lA.sequencerSpecific,messageData:{messageType:e,messageData:A}})}function ps(e){this.post(fA.midiEvent,e)}var tA=class{constructor(A){this.synth=A,this.ignoreEvents=!1,this.sendMIDIMessages=!1,this.eventIndex=[],this.songIndex=0,this.playedTime=0,this.pausedTime=void 0,this.absoluteStartTime=currentTime,this._playbackRate=1,this.playingNotes=[],this.loop=!0,this.midiData=void 0,this.midiPorts=[],this.midiPortChannelOffset=0,this.midiPortChannelOffsets={}}set playbackRate(A){let t=this.currentTime;this._playbackRate=A,this.currentTime=t}get currentTime(){return this.pausedTime?this.pausedTime:(currentTime-this.absoluteStartTime)*this._playbackRate}set currentTime(A){if(A<this.firstNoteTime||A>this.duration){this.setTimeTicks(this.midiData.firstNoteOn-1);return}this.stop(),this.playingNotes=[],this.pausedTime=void 0,this.post(fA.timeChange,currentTime-A);let t=this._playTo(A);this._recalculateStartTime(A),t&&this.play()}pause(A=!1){if(this.paused){J("Already paused");return}this.pausedTime=this.currentTime,this.stop(),this.post(fA.pause,A)}stop(){this.clearProcessHandler();for(let A=0;A<16;A++)this.synth.controllerChange(A,y.sustainPedal,0);if(this.synth.stopAllChannels(),this.sendMIDIMessages)for(let A=0;A<fe;A++)this.sendMIDIMessage([S.controllerChange|A,120,0]),this.sendMIDIMessage([S.controllerChange|A,123,0])}_resetTimers(){this.playedTime=0,this.eventIndex=Array(this.tracks.length).fill(0)}get paused(){return this.pausedTime!==void 0}setProcessHandler(){this.synth.processTickCallback=this._processTick.bind(this)}clearProcessHandler(){this.synth.processTickCallback=void 0}};tA.prototype.post=ms;tA.prototype.sendMIDIMessage=ps;tA.prototype.assignMIDIPort=hs;tA.prototype.processMessage=fs;tA.prototype._processEvent=gs;tA.prototype._addNewMidiPort=ns;tA.prototype._processTick=rs;tA.prototype._findFirstEventIndex=is;tA.prototype.loadNewSequence=ls;tA.prototype.loadNewSongList=cs;tA.prototype.nextSong=ds;tA.prototype.previousSong=us;tA.prototype.play=Es;tA.prototype._playTo=Cs;tA.prototype.setTimeTicks=Bs;tA.prototype._recalculateStartTime=as;function ys(){let A={channelSnapshots:this.workletProcessorChannels.map(t=>({program:t.preset.program,bank:t.preset.bank,lockPreset:t.lockPreset,patchName:t.preset.presetName,midiControllers:t.midiControllers,lockedControllers:t.lockedControllers,customControllers:t.customControllers,channelVibrato:t.channelVibrato,lockVibrato:t.lockVibrato,channelTransposeKeyShift:t.channelTransposeKeyShift,isMuted:t.isMuted,drumChannel:t.drumChannel})),mainVolume:this.midiVolume,pan:this.pan,transposition:this.transposition,system:this.system};this.post({messageType:lA.synthesizerSnapshot,messageData:A})}function Ss(e){for(this.system=e.system,this.setMasterGain(e.mainVolume),this.setMasterPan(e.pan),this.transposeAllChannels(e.transposition);this.workletProcessorChannels.length<e.channelSnapshots.length;)this.createWorkletChannel();e.channelSnapshots.forEach((A,t)=>{let I=this.workletProcessorChannels[t];this.muteChannel(t,A.isMuted),this.setDrums(t,A.drumChannel),I.midiControllers=A.midiControllers,I.lockedControllers=A.lockedControllers,I.customControllers=A.customControllers,I.channelVibrato=A.channelVibrato,I.lockVibrato=A.lockVibrato,I.channelTransposeKeyShift=A.channelTransposeKeyShift,I.lockPreset=!1,I.midiControllers[y.bankSelect]=A.bank,this.programChange(t,A.program),I.lockPreset=A.lockPreset}),m("%cFinished restoring controllers!",C.info)}function Ge(e,A,t){if(t<e)return 0;let I=(t-e)/(1/A)-.25;return Math.abs(I-~~(I+.5))*4-1}var Ct=1,Et=new Float32Array(1e3);for(let e=0;e<Et.length;e++)Et[e]=ZA(0,cA.convex,e/1e3,0);function Ds(e,A){let t=aA(e.modulatedGenerators[B.attackModEnv]),I=aA(e.modulatedGenerators[B.decayModEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToModEnvDecay]),s=aA(e.modulatedGenerators[B.holdModEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToModEnvHold]);if(e.isInRelease&&e.releaseStartTime<A){let c=aA(e.modulatedGenerators[B.releaseModEnv]);return e.modulatedGenerators[B.releaseModEnv]<-7199?e.releaseStartModEnv:(1-(A-e.releaseStartTime)/c)*e.releaseStartModEnv}let n=1-e.modulatedGenerators[B.sustainModEnv]/1e3,i=aA(e.modulatedGenerators[B.delayModEnv])+e.startTime,a=t+i,h=s+a,d=I+h,f;return A<i?f=0:A<a?f=Et[~~((1-(a-A)/t)*1e3)]:A<h?f=Ct:A<d?f=(1-(d-A)/I)*(n-Ct)+Ct:f=n,e.currentModEnvValue=f,f}function ws(e,A,t){let I=e.sample.cursor,s=e.sample.loopingMode===1||e.sample.loopingMode===3&&!e.isInRelease,n=e.sample.loopEnd-e.sample.loopStart;if(s)for(let i=0;i<t.length;i++){for(;I>=e.sample.loopEnd;)I-=n;let a=~~I,h=a+1;for(;h>=e.sample.loopEnd;)h-=n;let d=I-a,f=A[h],c=A[a];t[i]=c+(f-c)*d,I+=e.sample.playbackStep*e.currentTuningCalculated}else{e.sample.end>=A.length&&(e.sample.end=A.length-1);for(let i=0;i<t.length;i++){let a=~~I,h=a+1;if(h>=e.sample.end){e.finished=!0;return}let d=I-a,f=A[h],c=A[a];t[i]=c+(f-c)*d,I+=e.sample.playbackStep*e.currentTuningCalculated}}e.sample.cursor=I}function Fs(e,A,t,I,s,n,i,a,h){if(!isNaN(t[0])){if(i>0){let d=n[0],f=n[1];i=Math.min(i,1e3);let c=i/500,Q=e*c,u=A*c;for(let p=0;p<t.length;p++)d[p]+=Q*t[p],f[p]+=u*t[p]}if(h>0){let d=a[0],f=a[1];h=Math.min(h,1e3);let c=h/500,Q=e*c,u=A*c;for(let p=0;p<t.length;p++)d[p]+=Q*t[p],f[p]+=u*t[p]}if(e>0)for(let d=0;d<t.length;d++)I[d]+=e*t[d];if(A>0)for(let d=0;d<t.length;d++)s[d]+=A*t[d]}}var Rs=Math.PI/2,Gs=.01;function ks(e,A,t,I,s,n){if(A.isInRelease||currentTime>=A.releaseStartTime&&(A.releaseStartModEnv=A.currentModEnvValue,A.isInRelease=!0,OA(A),A.volumeEnvelope.currentReleaseGain=DA(A.volumeEnvelope.currentAttenuationDb)),A.modulatedGenerators[B.initialAttenuation]>2500){A.isInRelease&&(A.finished=!0);return}let i=A.modulatedGenerators[B.fineTune]+e.customControllers[AA.channelTuning]+e.customControllers[AA.channelTransposeFine]+e.customControllers[AA.masterTuning],a=A.modulatedGenerators[B.coarseTune]+e.customControllers[AA.channelTuningSemitones];i+=(A.targetKey-A.sample.rootKey)*A.modulatedGenerators[B.scaleTuning];let h=A.modulatedGenerators[B.vibLfoToPitch];if(h!==0){let j=A.startTime+aA(A.modulatedGenerators[B.delayVibLFO]),IA=ge(A.modulatedGenerators[B.freqVibLFO]),rA=Ge(j,IA,currentTime);rA&&(i+=rA*(h*e.customControllers[AA.modulationMultiplier]))}let d=A.modulatedGenerators[B.initialFilterFc],f=A.modulatedGenerators[B.modLfoToPitch],c=A.modulatedGenerators[B.modLfoToVolume],Q=A.modulatedGenerators[B.modLfoToFilterFc],u=0;if(f+Q+c!==0){let j=A.startTime+aA(A.modulatedGenerators[B.delayModLFO]),IA=ge(A.modulatedGenerators[B.freqModLFO]),rA=Ge(j,IA,currentTime);i+=rA*(f*e.customControllers[AA.modulationMultiplier]),u=rA*c,d+=rA*Q}if(e.channelVibrato.depth>0){let j=Ge(A.startTime+e.channelVibrato.delay,e.channelVibrato.rate,currentTime);j&&(i+=j*e.channelVibrato.depth)}let p=A.modulatedGenerators[B.modEnvToPitch],Y=A.modulatedGenerators[B.modEnvToFilterFc],M=Ds(A,currentTime);d+=M*Y,i+=M*p;let L=~~(i+a*100);L!==A.currentTuningCents&&(A.currentTuningCents=L,A.currentTuningCalculated=Math.pow(2,L/1200));let q=(Math.max(-500,Math.min(500,A.modulatedGenerators[B.pan]))+500)/1e3,x=new Float32Array(t.length);ws(A,this.workletDumpedSamplesList[A.sample.sampleID],x),SI(A,x,d),pI(A,x,currentTime,u,this.sampleTime,this.volumeEnvelopeSmoothingFactor),A.currentPan+=(q-A.currentPan)*this.panSmoothingFactor;let V=Math.cos(Rs*A.currentPan)*this.panLeft,X=Math.sin(Rs*A.currentPan)*this.panRight,g=this.oneOutputMode?0:A.modulatedGenerators[B.reverbEffectsSend],v=this.oneOutputMode?0:A.modulatedGenerators[B.chorusEffectsSend];Fs(V,X,x,t,I,s,g,n,v)}function so(e,A){let t=0;return e.drumChannel&&(t+=5),A.isInRelease&&(t-=5),t+=A.velocity/25,t-=A.volumeEnvelope.state,A.isInRelease&&(t-=5),t-=A.volumeEnvelope.currentAttenuationDb/50,t}function Ns(e){let A=[];for(let I of this.workletProcessorChannels)for(let s of I.voices)if(!s.finished){let n=so(I,s);A.push({channel:I,voice:s,priority:n})}A.sort((I,s)=>I.priority-s.priority);let t=A.slice(0,e);for(let{channel:I,voice:s}of t){let n=I.voices.indexOf(s);n>-1&&I.voices.splice(n,1)}}function Ms(e){e.releaseStartTime=currentTime,e.releaseStartTime-e.startTime<Bt&&(e.releaseStartTime=e.startTime+Bt)}function Us(){m("%cResetting all controllers!",C.info),this.callEvent("allcontrollerreset",void 0);for(let e=0;e<this.workletProcessorChannels.length;e++){this.resetControllers(e);let A=this.workletProcessorChannels[e];A.lockPreset?this.callEvent("drumchange",{channel:e,isDrumChannel:A.drumChannel}):(A.midiControllers[y.bankSelect]=0,e%16===kA?(this.setPreset(e,this.drumPreset),A.drumChannel=!0,this.callEvent("drumchange",{channel:e,isDrumChannel:!0})):(A.drumChannel=!1,this.setPreset(e,this.defaultPreset),this.callEvent("drumchange",{channel:e,isDrumChannel:!1}))),this.callEvent("programchange",{channel:e,program:A.preset.program,bank:A.preset.bank,userCalled:!1});let t=I=>{this.workletProcessorChannels[e].lockedControllers[I]&&this.callEvent("controllerchange",{channel:e,controllerNumber:I,controllerValue:this.workletProcessorChannels[e].midiControllers[I]>>7})};if(t(y.mainVolume),t(y.pan),t(y.expressionController),t(y.modulationWheel),t(y.effects3Depth),t(y.effects1Depth),this.workletProcessorChannels[e].lockedControllers[eA+H.pitchWheel]){let I=this.workletProcessorChannels[e].midiControllers[eA+H.pitchWheel],s=I>>7,n=I&127;this.callEvent("pitchwheel",{channel:e,MSB:s,LSB:n})}}this.setMIDIVolume(1),this.system=me}function xs(e){let A=this.workletProcessorChannels[e],I=A.lockedControllers.reduce((n,i,a)=>(i&&n.push(a),n),[]).map(n=>({ccNum:n,ccVal:A.midiControllers[n]}));A.midiControllers.set(NA),A.channelVibrato={rate:0,depth:0,delay:0},A.holdPedal=!1,I.forEach(n=>{A.midiControllers[n.ccNum]=n.ccVal});let s=A.customControllers[AA.channelTransposeFine];A.customControllers.set(je),A.customControllers[AA.channelTransposeFine]=s,this.resetParameters(e)}function bs(e){let A=this.workletProcessorChannels[e];A.NRPCoarse=0,A.NRPFine=0,A.RPValue=0,A.dataEntryState=BA.Idle}var Bt=.07,it=1,R=class extends AudioWorkletProcessor{constructor(A){super(),this.oneOutputMode=A.processorOptions?.startRenderingData?.oneOutput===!0,this._outputsAmount=this.oneOutputMode?1:A.processorOptions.midiChannels,this.enableEventSystem=A.processorOptions.enableEventSystem,this.processTickCallback=void 0,this.sequencer=new tA(this),this.transposition=0,this.masterGain=it,this.midiVolume=1,this.voiceCap=Zt,this.pan=0,this.panLeft=.5*this.currentGain,this.highPerformanceMode=!1,this.panRight=.5*this.currentGain;try{this.soundfont=new PA(A.processorOptions.soundfont)}catch(t){throw this.post({messageType:lA.soundfontError,messageData:t}),t}this.sendPresetList(),this.defaultPreset=this.soundfont.getPreset(0,0),this.drumPreset=this.soundfont.getPreset(128,0),this.workletDumpedSamplesList=[],this.workletProcessorChannels=[];for(let t=0;t<A.processorOptions.midiChannels;t++)this.createWorkletChannel(!1);this.workletProcessorChannels[kA].preset=this.drumPreset,this.workletProcessorChannels[kA].drumChannel=!0,this.sampleTime=1/sampleRate,this.volumeEnvelopeSmoothingFactor=mI*(sampleRate/44100),this.panSmoothingFactor=Gs*(sampleRate/44100),this.system=me,this.totalVoicesAmount=0,this.port.onmessage=t=>this.handleMessage(t.data),A.processorOptions.startRenderingData&&(A.processorOptions.startRenderingData.snapshot&&(this.applySynthesizerSnapshot(A.processorOptions.startRenderingData.snapshot),this.resetAllControllers()),m("%cRendering enabled! Starting render.",C.info),A.processorOptions.startRenderingData.parsedMIDI&&(this.sequencer.loadNewSongList([A.processorOptions.startRenderingData.parsedMIDI]),this.sequencer.loop=!1)),YA.isInitialized.then(()=>{this.post({messageType:lA.ready,messageData:void 0}),m("%cSpessaSynth is ready!",C.recognized)})}get currentGain(){return this.masterGain*this.midiVolume}debugMessage(){m({channels:this.workletProcessorChannels,voicesAmount:this.totalVoicesAmount,outputAmount:this._outputsAmount,dumpedSamples:this.workletDumpedSamplesList})}process(A,t){this.processTickCallback&&this.processTickCallback();let I=0;return this.workletProcessorChannels.forEach((s,n)=>{if(s.voices.length<1||s.isMuted)return;let i,a,h,d,f;if(this.oneOutputMode){let Q=t[0];i=n%16*2,a=Q[i],h=Q[i+1]}else i=n%this._outputsAmount+2,a=t[i][0],h=t[i][1],d=t[0],f=t[1];let c=s.voices;s.voices=[],c.forEach(Q=>{this.renderVoice(s,Q,a,h,d,f),Q.finished||s.voices.push(Q)}),I+=c.length}),I!==this.totalVoicesAmount&&(this.totalVoicesAmount=I,this.sendChannelProperties()),!0}};R.prototype.renderVoice=ks;R.prototype.releaseVoice=Ms;R.prototype.voiceKilling=Ns;R.prototype.handleMessage=lI;R.prototype.post=qI;R.prototype.sendChannelProperties=KI;R.prototype.callEvent=TI;R.prototype.systemExclusive=cI;R.prototype.noteOn=RI;R.prototype.noteOff=NI;R.prototype.polyPressure=zI;R.prototype.killNote=MI;R.prototype.stopAll=UI;R.prototype.stopAllChannels=xI;R.prototype.muteChannel=JI;R.prototype.setVibrato=os;R.prototype.disableAndLockVibrato=ss;R.prototype.dataEntryCoarse=GI;R.prototype.dataEntryFine=kI;R.prototype.createWorkletChannel=_t;R.prototype.controllerChange=bI;R.prototype.channelPressure=_I;R.prototype.resetAllControllers=Us;R.prototype.resetControllers=xs;R.prototype.resetParameters=bs;R.prototype.setMasterGain=HI;R.prototype.setMasterPan=YI;R.prototype.setMIDIVolume=LI;R.prototype.transposeAllChannels=VI;R.prototype.transposeChannel=PI;R.prototype.setChannelTuning=OI;R.prototype.setChannelTuningSemitones=ZI;R.prototype.setMasterTuning=vI;R.prototype.setModulationDepth=XI;R.prototype.pitchWheel=WI;R.prototype.programChange=jI;R.prototype.setPreset=$I;R.prototype.setDrums=As;R.prototype.reloadSoundFont=ts;R.prototype.sampleDump=Is;R.prototype.sendPresetList=es;R.prototype.sendSynthesizerSnapshot=ys;R.prototype.applySynthesizerSnapshot=Ss;registerProcessor(Ot,R);m("%cProcessor succesfully registered!",C.recognized);
|
|
13
|
+
`;this.copyright+=rA,y(`%cDecoded Roland SC message! %c${rA}`,C.recognized,C.value)}break;default:if((x&240)===S.controllerChange)switch(g[0]){case 2:case 116:i=L;break;case 4:case 117:Q===null?Q=L:Q=0;break}}}this.tracks.push(d),this.usedChannelsOnTrack.push(Y),y(`%cParsed %c${this.tracks.length}%c / %c${this.tracksAmount}`,C.info,C.value,C.info,C.value)}let f=[];for(let h of this.tracks){let d=h.find(m=>(m.messageStatusByte&240)===S.noteOn);d&&f.push(d.ticks)}this.firstNoteOn=Math.min(...f),y(`%cMIDI file parsed. Total tick time: %c${this.lastVoiceEventTick}`,C.info,C.recognized),sA(),i!==null&&Q===null?(i=this.firstNoteOn,Q=this.lastVoiceEventTick):(i===null&&(i=this.firstNoteOn),(Q===null||Q===0)&&(Q=this.lastVoiceEventTick));let u=0;for(let h of this.midiPorts)if(h!==-1){u=h;break}if(this.midiPorts=this.midiPorts.map(h=>h===-1?u:h),this.midiPortChannelOffsets.length===0&&(this.midiPortChannelOffsets=[0]),this.loop={start:i,end:Q},this.midiName="",this.rawMidiName=new Uint8Array(0),this.tracks.length>1){if(this.tracks[0].find(h=>h.messageStatusByte>=S.noteOn&&h.messageStatusByte<S.systemExclusive)===void 0){let h=this.tracks[0].find(d=>d.messageStatusByte===S.trackName);h&&(this.rawMidiName=h.messageData,this.midiName=z(h.messageData,h.messageData.length,void 0,!1))}}else{let h=this.tracks[0].find(d=>d.messageStatusByte===S.trackName);h&&(this.rawMidiName=h.messageData,this.midiName=z(h.messageData,h.messageData.length,void 0,!1))}if(this.fileName=t,this.midiName=this.midiName.trim(),this.midiName.length===0){this.midiName=Lt(t),this.rawMidiName=new Uint8Array(this.midiName.length);for(let h=0;h<this.midiName.length;h++)this.rawMidiName[h]=this.midiName.charCodeAt(h)}this.tempoChanges.reverse(),this.duration=this._ticksToSeconds(this.lastVoiceEventTick)}readMIDIChunk(A){let t={};t.type=z(A,4),t.size=JA(A,4),t.data=new U(t.size);let I=A.slice(A.currentIndex,A.currentIndex+t.size);return t.data.set(I,0),A.currentIndex+=t.size,t}_ticksToSeconds(A){if(A<=0)return 0;let t=this.tempoChanges.find(s=>s.ticks<A),I=A-t.ticks;return this._ticksToSeconds(A-I)+I*60/(t.tempo*this.timeDivision)}};function Qs(e,A){HA("%cSearching for all used programs and keys...",C.info);let t=16+e.midiPortChannelOffsets.reduce((u,h)=>h>u?h:u),I=[];for(let u=0;u<t;u++){let h=u%16===kA?128:0;I.push({program:0,bank:h,drums:u%16===kA,string:`${h}:0`})}function s(u){let h=A.getPreset(u.bank,u.program);h.bank!==u.bank&&e.embeddedSoundFont&&(h=A.getPreset(u.bank-1,u.program)),u.bank=h.bank,u.program=h.program,u.string=u.bank+":"+u.program,n[u.string]||(y(`%cDetected a new preset: %c${u.string}`,C.info,C.recognized),n[u.string]=new Set)}let n={},a=Array(e.tracks.length).fill(0),i=e.tracks.length;function Q(){let u=0,h=1/0;return e.tracks.forEach((d,m)=>{a[m]>=d.length||d[a[m]].ticks<h&&(u=m,h=d[a[m]].ticks)}),u}let c=e.midiPorts.slice(),f="gs";for(;i>0;){let u=Q(),h=e.tracks[u];if(a[u]>=h.length){i--;continue}let d=h[a[u]];if(a[u]++,d.messageStatusByte===S.midiPort){c[u]=d.messageData[0];continue}let m=d.messageStatusByte&240;if(m!==S.noteOn&&m!==S.controllerChange&&m!==S.programChange&&m!==S.systemExclusive)continue;let Y=(d.messageStatusByte&15)+e.midiPortChannelOffsets[c[u]]||0,M=I[Y];switch(m){case S.programChange:M.program=d.messageData[0],s(M);break;case S.controllerChange:if(d.messageData[0]!==p.bankSelect||f==="gs"&&M.drums)continue;let L=d.messageData[1];if(f==="xg"){let V=L===120||L===126||L===127;V!==M.drums?(M.drums=V,M.bank=M.drums?128:L,s(M)):M.bank=M.drums?128:L;continue}I[Y].bank=L;break;case S.noteOn:if(d.messageData[1]===0)continue;s(M),n[M.string].add(`${d.messageData[0]}-${d.messageData[1]}`);break;case S.systemExclusive:if(d.messageData[0]!==65||d.messageData[2]!==66||d.messageData[3]!==18||d.messageData[4]!==64||!(d.messageData[5]&16)||d.messageData[6]!==21){d.messageData[0]===67&&d.messageData[2]===76&&d.messageData[5]===126&&d.messageData[6]===0&&(f="xg");continue}let q=[9,0,1,2,3,4,5,6,7,8,10,11,12,13,14,15][d.messageData[5]&15]+e.midiPortChannelOffsets[c[u]],x=!!(d.messageData[7]>0&&d.messageData[5]>>4);M=I[q],M.drums=x,M.bank=x?128:0,s(M);break}}for(let u of Object.keys(n))n[u].size===0&&(y(`%cDetected change but no keys for %c${u}`,C.info,C.value),delete n[u]);return sA(),n}function hs(e,A){this.midiPortChannelOffset===0&&(this.midiPortChannelOffset+=16,this.midiPortChannelOffsets[A]=0),this.midiPortChannelOffsets[A]===void 0&&(this.synth.workletProcessorChannels.length<this.midiPortChannelOffset+15&&this._addNewMidiPort(),this.midiPortChannelOffsets[A]=this.midiPortChannelOffset,this.midiPortChannelOffset+=16),this.midiPorts[e]=A}function ls(e){if(this.stop(),!e.tracks)throw"No tracks supplied!";if(this.oneTickToSeconds=60/(120*e.timeDivision),this.midiData=e,this.midiData.embeddedSoundFont!==void 0)this.synth.reloadSoundFont(this.midiData.embeddedSoundFont),this.synth.soundfont.samples.forEach(A=>A.getAudioData());else{HA("%cPreloading samples...",C.info);let A=Qs(this.midiData,this.synth.soundfont);for(let[t,I]of Object.entries(A)){let s=parseInt(t.split(":")[0]),n=parseInt(t.split(":")[1]),a=this.synth.soundfont.getPreset(s,n);y(`%cPreloading used samples on %c${a.presetName}%c...`,C.info,C.recognized,C.info);for(let i of I){let Q=i.split("-");a.preloadSpecific(parseInt(Q[0]),parseInt(Q[1]))}}sA()}this.tracks=this.midiData.tracks,this.midiPorts=this.midiData.midiPorts,this.midiPortChannelOffset=0,this.midiPortChannelOffsets={},this.midiData.midiPorts.forEach((A,t)=>{this.assignMIDIPort(t,A)}),this.duration=this.midiData.duration,this.firstNoteTime=De(this.midiData.tempoChanges,this.midiData.firstNoteOn,this.midiData.timeDivision),y(`%cTotal song time: ${Oe(Math.ceil(this.duration)).time}`,C.recognized),this.post(fA.songChange,[new we(this.midiData),this.songIndex]),this.synth.resetAllControllers(),this.duration<=1&&(J(`%cVery short song: (${Oe(Math.round(this.duration)).time}). Disabling loop!`,C.warn),this.loop=!1),this.play(!0)}function cs(e){if(this.songs=e.reduce((A,t)=>{if(t.duration)return A.push(t),A;try{A.push(new Re(t.binary,t.altName||""))}catch(I){return this.post(fA.midiError,I.message),A}return A},[]),this.songs.length<1){console.log("no valid songs!");return}this.songIndex=0,this.songs.length>1&&(this.loop=!1),this.loadNewSequence(this.songs[this.songIndex])}function ds(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex++,this.songIndex%=this.songs.length,this.loadNewSequence(this.songs[this.songIndex])}function us(){if(this.songs.length===1){this.currentTime=0;return}this.songIndex--,this.songIndex<0&&(this.songIndex=this.songs.length-1),this.loadNewSequence(this.songs[this.songIndex])}function fs(e,A){switch(e){default:break;case wA.loadNewSongList:this.loadNewSongList(A);break;case wA.pause:this.pause();break;case wA.play:this.play(A);break;case wA.stop:this.stop();break;case wA.setTime:this.currentTime=A;break;case wA.changeMIDIMessageSending:this.sendMIDIMessages=A;break;case wA.setPlaybackRate:this.playbackRate=A;break;case wA.setLoop:this.loop=A;break;case wA.changeSong:A?this.nextSong():this.previousSong();break;case wA.getMIDI:this.post(fA.getMIDI,this.midiData)}}function ms(e,A=void 0){this.synth.enableEventSystem&&this.synth.post({messageType:lA.sequencerSpecific,messageData:{messageType:e,messageData:A}})}function ps(e){this.post(fA.midiEvent,e)}var tA=class{constructor(A){this.synth=A,this.ignoreEvents=!1,this.sendMIDIMessages=!1,this.eventIndex=[],this.songIndex=0,this.playedTime=0,this.pausedTime=void 0,this.absoluteStartTime=currentTime,this._playbackRate=1,this.playingNotes=[],this.loop=!0,this.midiData=void 0,this.midiPorts=[],this.midiPortChannelOffset=0,this.midiPortChannelOffsets={}}set playbackRate(A){let t=this.currentTime;this._playbackRate=A,this.currentTime=t}get currentTime(){return this.pausedTime?this.pausedTime:(currentTime-this.absoluteStartTime)*this._playbackRate}set currentTime(A){if(A<this.firstNoteTime||A>this.duration){this.setTimeTicks(this.midiData.firstNoteOn-1);return}this.stop(),this.playingNotes=[],this.pausedTime=void 0,this.post(fA.timeChange,currentTime-A);let t=this._playTo(A);this._recalculateStartTime(A),t&&this.play()}pause(A=!1){if(this.paused){J("Already paused");return}this.pausedTime=this.currentTime,this.stop(),this.post(fA.pause,A)}stop(){this.clearProcessHandler();for(let A=0;A<16;A++)this.synth.controllerChange(A,p.sustainPedal,0);if(this.synth.stopAllChannels(),this.sendMIDIMessages)for(let A=0;A<fe;A++)this.sendMIDIMessage([S.controllerChange|A,120,0]),this.sendMIDIMessage([S.controllerChange|A,123,0])}_resetTimers(){this.playedTime=0,this.eventIndex=Array(this.tracks.length).fill(0)}get paused(){return this.pausedTime!==void 0}setProcessHandler(){this.synth.processTickCallback=this._processTick.bind(this)}clearProcessHandler(){this.synth.processTickCallback=void 0}};tA.prototype.post=ms;tA.prototype.sendMIDIMessage=ps;tA.prototype.assignMIDIPort=hs;tA.prototype.processMessage=fs;tA.prototype._processEvent=gs;tA.prototype._addNewMidiPort=ns;tA.prototype._processTick=rs;tA.prototype._findFirstEventIndex=is;tA.prototype.loadNewSequence=ls;tA.prototype.loadNewSongList=cs;tA.prototype.nextSong=ds;tA.prototype.previousSong=us;tA.prototype.play=Es;tA.prototype._playTo=Cs;tA.prototype.setTimeTicks=as;tA.prototype._recalculateStartTime=Bs;function ys(){let A={channelSnapshots:this.workletProcessorChannels.map(t=>({program:t.preset.program,bank:t.preset.bank,lockPreset:t.lockPreset,patchName:t.preset.presetName,midiControllers:t.midiControllers,lockedControllers:t.lockedControllers,customControllers:t.customControllers,channelVibrato:t.channelVibrato,lockVibrato:t.lockVibrato,channelTransposeKeyShift:t.channelTransposeKeyShift,isMuted:t.isMuted,drumChannel:t.drumChannel})),mainVolume:this.midiVolume,pan:this.pan,transposition:this.transposition,system:this.system};this.post({messageType:lA.synthesizerSnapshot,messageData:A})}function Ss(e){for(this.system=e.system,this.setMasterGain(e.mainVolume),this.setMasterPan(e.pan),this.transposeAllChannels(e.transposition);this.workletProcessorChannels.length<e.channelSnapshots.length;)this.createWorkletChannel();e.channelSnapshots.forEach((A,t)=>{let I=this.workletProcessorChannels[t];this.muteChannel(t,A.isMuted),this.setDrums(t,A.drumChannel),I.midiControllers=A.midiControllers,I.lockedControllers=A.lockedControllers,I.customControllers=A.customControllers,I.channelVibrato=A.channelVibrato,I.lockVibrato=A.lockVibrato,I.channelTransposeKeyShift=A.channelTransposeKeyShift,I.lockPreset=!1,I.midiControllers[p.bankSelect]=A.bank,this.programChange(t,A.program),I.lockPreset=A.lockPreset}),y("%cFinished restoring controllers!",C.info)}function Ge(e,A,t){if(t<e)return 0;let I=(t-e)/(1/A)-.25;return Math.abs(I-~~(I+.5))*4-1}var Ct=1,Et=new Float32Array(1e3);for(let e=0;e<Et.length;e++)Et[e]=ZA(0,cA.convex,e/1e3,0);function Ds(e,A){let t=BA(e.modulatedGenerators[B.attackModEnv]),I=BA(e.modulatedGenerators[B.decayModEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToModEnvDecay]),s=BA(e.modulatedGenerators[B.holdModEnv]+(60-e.midiNote)*e.modulatedGenerators[B.keyNumToModEnvHold]);if(e.isInRelease&&e.releaseStartTime<A){let u=BA(e.modulatedGenerators[B.releaseModEnv]);return e.modulatedGenerators[B.releaseModEnv]<-7199?e.releaseStartModEnv:(1-(A-e.releaseStartTime)/u)*e.releaseStartModEnv}let n=1-e.modulatedGenerators[B.sustainModEnv]/1e3,a=BA(e.modulatedGenerators[B.delayModEnv])+e.startTime,i=t+a,Q=s+i,c=I+Q,f;return A<a?f=0:A<i?f=Et[~~((1-(i-A)/t)*1e3)]:A<Q?f=Ct:A<c?f=(1-(c-A)/I)*(n-Ct)+Ct:f=n,e.currentModEnvValue=f,f}function ws(e,A,t){let I=e.sample.cursor,s=e.sample.loopingMode===1||e.sample.loopingMode===3&&!e.isInRelease,n=e.sample.loopEnd-e.sample.loopStart;if(s)for(let a=0;a<t.length;a++){for(;I>=e.sample.loopEnd;)I-=n;let i=~~I,Q=i+1;for(;Q>=e.sample.loopEnd;)Q-=n;let c=I-i,f=A[Q],u=A[i];t[a]=u+(f-u)*c,I+=e.sample.playbackStep*e.currentTuningCalculated}else{e.sample.end>=A.length&&(e.sample.end=A.length-1);for(let a=0;a<t.length;a++){let i=~~I,Q=i+1;if(Q>=e.sample.end){e.finished=!0;return}let c=I-i,f=A[Q],u=A[i];t[a]=u+(f-u)*c,I+=e.sample.playbackStep*e.currentTuningCalculated}}e.sample.cursor=I}function Fs(e,A,t,I,s,n,a,i,Q){if(!isNaN(t[0])){if(a>0){let c=n[0],f=n[1];a=Math.min(a,1e3);let u=a/500,h=e*u,d=A*u;for(let m=0;m<t.length;m++)c[m]+=h*t[m],f[m]+=d*t[m]}if(Q>0){let c=i[0],f=i[1];Q=Math.min(Q,1e3);let u=Q/500,h=e*u,d=A*u;for(let m=0;m<t.length;m++)c[m]+=h*t[m],f[m]+=d*t[m]}if(e>0)for(let c=0;c<t.length;c++)I[c]+=e*t[c];if(A>0)for(let c=0;c<t.length;c++)s[c]+=A*t[c]}}var Rs=Math.PI/2,Gs=.01;function ks(e,A,t,I,s,n){if(A.isInRelease||currentTime>=A.releaseStartTime&&(A.releaseStartModEnv=A.currentModEnvValue,A.isInRelease=!0,OA(A),A.volumeEnvelope.currentReleaseGain=DA(A.volumeEnvelope.currentAttenuationDb)),A.modulatedGenerators[B.initialAttenuation]>2500){A.isInRelease&&(A.finished=!0);return}let a=A.modulatedGenerators[B.fineTune]+e.customControllers[AA.channelTuning]+e.customControllers[AA.channelTransposeFine]+e.customControllers[AA.masterTuning],i=A.modulatedGenerators[B.coarseTune]+e.customControllers[AA.channelTuningSemitones];a+=(A.targetKey-A.sample.rootKey)*A.modulatedGenerators[B.scaleTuning];let Q=A.modulatedGenerators[B.vibLfoToPitch];if(Q!==0){let j=A.startTime+BA(A.modulatedGenerators[B.delayVibLFO]),IA=ge(A.modulatedGenerators[B.freqVibLFO]),rA=Ge(j,IA,currentTime);rA&&(a+=rA*(Q*e.customControllers[AA.modulationMultiplier]))}let c=A.modulatedGenerators[B.initialFilterFc],f=A.modulatedGenerators[B.modLfoToPitch],u=A.modulatedGenerators[B.modLfoToVolume],h=A.modulatedGenerators[B.modLfoToFilterFc],d=0;if(f+h+u!==0){let j=A.startTime+BA(A.modulatedGenerators[B.delayModLFO]),IA=ge(A.modulatedGenerators[B.freqModLFO]),rA=Ge(j,IA,currentTime);a+=rA*(f*e.customControllers[AA.modulationMultiplier]),d=rA*u,c+=rA*h}if(e.channelVibrato.depth>0){let j=Ge(A.startTime+e.channelVibrato.delay,e.channelVibrato.rate,currentTime);j&&(a+=j*e.channelVibrato.depth)}let m=A.modulatedGenerators[B.modEnvToPitch],Y=A.modulatedGenerators[B.modEnvToFilterFc],M=Ds(A,currentTime);c+=M*Y,a+=M*m;let L=~~(a+i*100);L!==A.currentTuningCents&&(A.currentTuningCents=L,A.currentTuningCalculated=Math.pow(2,L/1200));let q=(Math.max(-500,Math.min(500,A.modulatedGenerators[B.pan]))+500)/1e3,x=new Float32Array(t.length);ws(A,this.workletDumpedSamplesList[A.sample.sampleID],x),SI(A,x,c),pI(A,x,currentTime,d,this.sampleTime,this.volumeEnvelopeSmoothingFactor),A.currentPan+=(q-A.currentPan)*this.panSmoothingFactor;let V=Math.cos(Rs*A.currentPan)*this.panLeft,X=Math.sin(Rs*A.currentPan)*this.panRight,g=this.oneOutputMode?0:A.modulatedGenerators[B.reverbEffectsSend],v=this.oneOutputMode?0:A.modulatedGenerators[B.chorusEffectsSend];Fs(V,X,x,t,I,s,g,n,v)}function so(e,A){let t=0;return e.drumChannel&&(t+=5),A.isInRelease&&(t-=5),t+=A.velocity/25,t-=A.volumeEnvelope.state,A.isInRelease&&(t-=5),t-=A.volumeEnvelope.currentAttenuationDb/50,t}function Ns(e){let A=[];for(let I of this.workletProcessorChannels)for(let s of I.voices)if(!s.finished){let n=so(I,s);A.push({channel:I,voice:s,priority:n})}A.sort((I,s)=>I.priority-s.priority);let t=A.slice(0,e);for(let{channel:I,voice:s}of t){let n=I.voices.indexOf(s);n>-1&&I.voices.splice(n,1)}}function Ms(e){e.releaseStartTime=currentTime,e.releaseStartTime-e.startTime<at&&(e.releaseStartTime=e.startTime+at)}function Us(){y("%cResetting all controllers!",C.info),this.callEvent("allcontrollerreset",void 0);for(let e=0;e<this.workletProcessorChannels.length;e++){this.resetControllers(e);let A=this.workletProcessorChannels[e];A.lockPreset?this.callEvent("drumchange",{channel:e,isDrumChannel:A.drumChannel}):(A.midiControllers[p.bankSelect]=0,e%16===kA?(this.setPreset(e,this.drumPreset),A.drumChannel=!0,this.callEvent("drumchange",{channel:e,isDrumChannel:!0})):(A.drumChannel=!1,this.setPreset(e,this.defaultPreset),this.callEvent("drumchange",{channel:e,isDrumChannel:!1}))),this.callEvent("programchange",{channel:e,program:A.preset.program,bank:A.preset.bank,userCalled:!1});let t=I=>{this.workletProcessorChannels[e].lockedControllers[I]&&this.callEvent("controllerchange",{channel:e,controllerNumber:I,controllerValue:this.workletProcessorChannels[e].midiControllers[I]>>7})};if(t(p.mainVolume),t(p.pan),t(p.expressionController),t(p.modulationWheel),t(p.effects3Depth),t(p.effects1Depth),this.workletProcessorChannels[e].lockedControllers[eA+H.pitchWheel]){let I=this.workletProcessorChannels[e].midiControllers[eA+H.pitchWheel],s=I>>7,n=I&127;this.callEvent("pitchwheel",{channel:e,MSB:s,LSB:n})}}this.setMIDIVolume(1),this.system=me}function xs(e){let A=this.workletProcessorChannels[e],I=A.lockedControllers.reduce((n,a,i)=>(a&&n.push(i),n),[]).map(n=>({ccNum:n,ccVal:A.midiControllers[n]}));A.midiControllers.set(NA),A.channelVibrato={rate:0,depth:0,delay:0},A.holdPedal=!1,I.forEach(n=>{A.midiControllers[n.ccNum]=n.ccVal});let s=A.customControllers[AA.channelTransposeFine];A.customControllers.set(je),A.customControllers[AA.channelTransposeFine]=s,this.resetParameters(e)}function bs(e){let A=this.workletProcessorChannels[e];A.NRPCoarse=0,A.NRPFine=0,A.RPValue=0,A.dataEntryState=aA.Idle}var at=.07,it=1,R=class extends AudioWorkletProcessor{constructor(A){super(),this.oneOutputMode=A.processorOptions?.startRenderingData?.oneOutput===!0,this._outputsAmount=this.oneOutputMode?1:A.processorOptions.midiChannels,this.enableEventSystem=A.processorOptions.enableEventSystem,this.processTickCallback=void 0,this.sequencer=new tA(this),this.transposition=0,this.masterGain=it,this.midiVolume=1,this.voiceCap=Zt,this.pan=0,this.panLeft=.5*this.currentGain,this.highPerformanceMode=!1,this.panRight=.5*this.currentGain;try{this.soundfont=new PA(A.processorOptions.soundfont)}catch(t){throw this.post({messageType:lA.soundfontError,messageData:t}),t}this.sendPresetList(),this.defaultPreset=this.soundfont.getPreset(0,0),this.drumPreset=this.soundfont.getPreset(128,0),this.workletDumpedSamplesList=[],this.workletProcessorChannels=[];for(let t=0;t<A.processorOptions.midiChannels;t++)this.createWorkletChannel(!1);this.workletProcessorChannels[kA].preset=this.drumPreset,this.workletProcessorChannels[kA].drumChannel=!0,this.sampleTime=1/sampleRate,this.volumeEnvelopeSmoothingFactor=mI*(sampleRate/44100),this.panSmoothingFactor=Gs*(sampleRate/44100),this.system=me,this.totalVoicesAmount=0,this.port.onmessage=t=>this.handleMessage(t.data),A.processorOptions.startRenderingData&&(A.processorOptions.startRenderingData.snapshot&&(this.applySynthesizerSnapshot(A.processorOptions.startRenderingData.snapshot),this.resetAllControllers()),y("%cRendering enabled! Starting render.",C.info),A.processorOptions.startRenderingData.parsedMIDI&&(this.sequencer.loadNewSongList([A.processorOptions.startRenderingData.parsedMIDI]),this.sequencer.loop=!1)),YA.isInitialized.then(()=>{this.post({messageType:lA.ready,messageData:void 0}),y("%cSpessaSynth is ready!",C.recognized)})}get currentGain(){return this.masterGain*this.midiVolume}debugMessage(){y({channels:this.workletProcessorChannels,voicesAmount:this.totalVoicesAmount,outputAmount:this._outputsAmount,dumpedSamples:this.workletDumpedSamplesList})}process(A,t){this.processTickCallback&&this.processTickCallback();let I=0;return this.workletProcessorChannels.forEach((s,n)=>{if(s.voices.length<1||s.isMuted)return;let a,i,Q,c,f;if(this.oneOutputMode){let h=t[0];a=n%16*2,i=h[a],Q=h[a+1]}else a=n%this._outputsAmount+2,i=t[a][0],Q=t[a][1],c=t[0],f=t[1];let u=s.voices;s.voices=[],u.forEach(h=>{this.renderVoice(s,h,i,Q,c,f),h.finished||s.voices.push(h)}),I+=u.length}),I!==this.totalVoicesAmount&&(this.totalVoicesAmount=I,this.sendChannelProperties()),!0}};R.prototype.renderVoice=ks;R.prototype.releaseVoice=Ms;R.prototype.voiceKilling=Ns;R.prototype.handleMessage=lI;R.prototype.post=qI;R.prototype.sendChannelProperties=KI;R.prototype.callEvent=TI;R.prototype.systemExclusive=cI;R.prototype.noteOn=RI;R.prototype.noteOff=NI;R.prototype.polyPressure=zI;R.prototype.killNote=MI;R.prototype.stopAll=UI;R.prototype.stopAllChannels=xI;R.prototype.muteChannel=JI;R.prototype.setVibrato=os;R.prototype.disableAndLockVibrato=ss;R.prototype.dataEntryCoarse=GI;R.prototype.dataEntryFine=kI;R.prototype.createWorkletChannel=_t;R.prototype.controllerChange=bI;R.prototype.channelPressure=_I;R.prototype.resetAllControllers=Us;R.prototype.resetControllers=xs;R.prototype.resetParameters=bs;R.prototype.setMasterGain=HI;R.prototype.setMasterPan=YI;R.prototype.setMIDIVolume=LI;R.prototype.transposeAllChannels=VI;R.prototype.transposeChannel=PI;R.prototype.setChannelTuning=OI;R.prototype.setChannelTuningSemitones=ZI;R.prototype.setMasterTuning=vI;R.prototype.setModulationDepth=XI;R.prototype.pitchWheel=WI;R.prototype.programChange=jI;R.prototype.setPreset=$I;R.prototype.setDrums=As;R.prototype.reloadSoundFont=ts;R.prototype.sampleDump=Is;R.prototype.sendPresetList=es;R.prototype.sendSynthesizerSnapshot=ys;R.prototype.applySynthesizerSnapshot=Ss;registerProcessor(Ot,R);y("%cProcessor succesfully registered!",C.recognized);
|