lamejs
Version:
Pure JavaScript MP3 Encoder
99 lines • 156 kB
JavaScript
function lamejs(){function U(f){return new Int32Array(f)}function G(f){return new Float32Array(f)}function ha(f){if(1==f.length)return G(f[0]);var k=f[0];f=f.slice(1);for(var r=[],x=0;x<k;x++)r.push(ha(f));return r}function Ua(f){if(1==f.length)return U(f[0]);var k=f[0];f=f.slice(1);for(var r=[],x=0;x<k;x++)r.push(Ua(f));return r}function fc(f){if(1==f.length)return new Int16Array(f[0]);var k=f[0];f=f.slice(1);for(var r=[],x=0;x<k;x++)r.push(fc(f));return r}function Tb(f){if(1==f.length)return Array(f[0]);
var k=f[0];f=f.slice(1);for(var r=[],x=0;x<k;x++)r.push(Tb(f));return r}function pa(f){this.ordinal=f}function J(f){this.ordinal=f}function ka(f){this.ordinal=function(){return f}}function ic(){this.getLameVersion=function(){return"3.98.4"};this.getLameShortVersion=function(){return"3.98.4"};this.getLameVeryShortVersion=function(){return"LAME3.98r"};this.getPsyVersion=function(){return"0.93"};this.getLameUrl=function(){return"http://www.mp3dev.org/"};this.getLameOsBitness=function(){return"32bits"}}
function fb(){function x(a){this.bits=0|a}function k(a,e,c,b,g,l){e=.5946/e;for(a>>=1;0!=a--;)g[l++]=e>c[b++]?0:1,g[l++]=e>c[b++]?0:1}function r(a,e,c,b,g,l){a>>=1;var h=a%2;for(a>>=1;0!=a--;){var p=c[b++]*e;var m=c[b++]*e;var n=0|p;var d=c[b++]*e;var z=0|m;var E=c[b++]*e;var f=0|d;p+=u.adj43[n];n=0|E;m+=u.adj43[z];g[l++]=0|p;d+=u.adj43[f];g[l++]=0|m;E+=u.adj43[n];g[l++]=0|d;g[l++]=0|E}0!=h&&(p=c[b++]*e,m=c[b++]*e,p+=u.adj43[0|p],m+=u.adj43[0|m],g[l++]=0|p,g[l++]=0|m)}function K(a,e,c,b){var m,g=
e,h=m=0;do{var p=a[g++],n=a[g++];m<p&&(m=p);h<n&&(h=n)}while(g<c);m<h&&(m=h);switch(m){case 0:return m;case 1:g=e;e=0;m=v.ht[1].hlen;do h=2*a[g+0]+a[g+1],g+=2,e+=m[h];while(g<c);b.bits+=e;return 1;case 2:case 3:g=e;e=d[m-1];m=0;h=v.ht[e].xlen;p=2==e?v.table23:v.table56;do n=a[g+0]*h+a[g+1],g+=2,m+=p[n];while(g<c);a=m&65535;m>>=16;m>a&&(m=a,e++);b.bits+=m;return e;case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:g=e;e=d[m-1];var p=h=m=0,n=v.ht[e].xlen,l=v.ht[e].hlen,
f=v.ht[e+1].hlen,q=v.ht[e+2].hlen;do{var D=a[g+0]*n+a[g+1],g=g+2;m+=l[D];h+=f[D];p+=q[D]}while(g<c);a=e;m>h&&(m=h,a++);m>p&&(m=p,a=e+2);b.bits+=m;return a;default:if(m>Y.IXMAX_VAL)return b.bits=Y.LARGE_BITS,-1;m-=15;for(g=24;32>g&&!(v.ht[g].linmax>=m);g++);for(h=g-8;24>h&&!(v.ht[h].linmax>=m);h++);m=h;p=65536*v.ht[m].xlen+v.ht[g].xlen;h=0;do n=a[e++],l=a[e++],0!=n&&(14<n&&(n=15,h+=p),n*=16),0!=l&&(14<l&&(l=15,h+=p),n+=l),h+=v.largetbl[n];while(e<c);a=h&65535;h>>=16;h>a&&(h=a,m=g);b.bits+=h;return m}}
function C(a,e,b,c,g,l,h,p){for(var m=e.big_values,n=2;n<f.SBMAX_l+1;n++){var d=a.scalefac_band.l[n];if(d>=m)break;var E=g[n-2]+e.count1bits;if(b.part2_3_length<=E)break;E=new x(E);d=K(c,d,m,E);E=E.bits;b.part2_3_length<=E||(b.assign(e),b.part2_3_length=E,b.region0_count=l[n-2],b.region1_count=n-2-l[n-2],b.table_select[0]=h[n-2],b.table_select[1]=p[n-2],b.table_select[2]=d)}}var u=null;this.qupvt=null;this.setModules=function(a){u=this.qupvt=a};var fa=[[0,0],[0,0],[0,0],[0,0],[0,0],[0,1],[1,1],[1,
1],[1,2],[2,2],[2,3],[2,3],[3,4],[3,4],[3,4],[4,5],[4,5],[4,6],[5,6],[5,6],[5,7],[6,7],[6,7]],d=[1,2,5,7,7,10,10,13,13,13,13,13,13,13,13];this.noquant_count_bits=function(a,e,b){var c=e.l3_enc,m=Math.min(576,e.max_nonzero_coeff+2>>1<<1);null!=b&&(b.sfb_count1=0);for(;1<m&&0==(c[m-1]|c[m-2]);m-=2);e.count1=m;for(var g=0,h=0;3<m&&!(1<((c[m-1]|c[m-2]|c[m-3]|c[m-4])&2147483647));m-=4){var p=2*(2*(2*c[m-4]+c[m-3])+c[m-2])+c[m-1];g+=v.t32l[p];h+=v.t33l[p]}p=g;e.count1table_select=0;g>h&&(p=h,e.count1table_select=
1);e.count1bits=p;e.big_values=m;if(0==m)return p;e.block_type==f.SHORT_TYPE?(g=3*a.scalefac_band.s[3],g>e.big_values&&(g=e.big_values),h=e.big_values):e.block_type==f.NORM_TYPE?(g=e.region0_count=a.bv_scf[m-2],h=e.region1_count=a.bv_scf[m-1],h=a.scalefac_band.l[g+h+2],g=a.scalefac_band.l[g+1],h<m&&(p=new x(p),e.table_select[2]=K(c,h,m,p),p=p.bits)):(e.region0_count=7,e.region1_count=f.SBMAX_l-1-7-1,g=a.scalefac_band.l[8],h=m,g>h&&(g=h));g=Math.min(g,m);h=Math.min(h,m);0<g&&(p=new x(p),e.table_select[0]=
K(c,0,g,p),p=p.bits);g<h&&(p=new x(p),e.table_select[1]=K(c,g,h,p),p=p.bits);2==a.use_best_huffman&&(e.part2_3_length=p,best_huffman_divide(a,e),p=e.part2_3_length);if(null!=b&&e.block_type==f.NORM_TYPE){for(c=0;a.scalefac_band.l[c]<e.big_values;)c++;b.sfb_count1=c}return p};this.count_bits=function(a,e,c,b){var m=c.l3_enc,g=Y.IXMAX_VAL/u.IPOW20(c.global_gain);if(c.xrpow_max>g)return Y.LARGE_BITS;var g=u.IPOW20(c.global_gain),h,p=0,n=0,l=0,d=0,q=0,w=m,t=0,D=e,H=0;var B=null!=b&&c.global_gain==b.global_gain;
var Q=c.block_type==f.SHORT_TYPE?38:21;for(h=0;h<=Q;h++){var V=-1;if(B||c.block_type==f.NORM_TYPE)V=c.global_gain-(c.scalefac[h]+(0!=c.preflag?u.pretab[h]:0)<<c.scalefac_scale+1)-8*c.subblock_gain[c.window[h]];if(B&&b.step[h]==V)0!=n&&(r(n,g,D,H,w,t),n=0),0!=l&&(k(l,g,D,H,w,t),l=0);else{var N=c.width[h];p+c.width[h]>c.max_nonzero_coeff&&(h=c.max_nonzero_coeff-p+1,qa.fill(m,c.max_nonzero_coeff,576,0),N=h,0>N&&(N=0),h=Q+1);0==n&&0==l&&(w=m,t=q,D=e,H=d);null!=b&&0<b.sfb_count1&&h>=b.sfb_count1&&0<b.step[h]&&
V>=b.step[h]?(0!=n&&(r(n,g,D,H,w,t),n=0,w=m,t=q,D=e,H=d),l+=N):(0!=l&&(k(l,g,D,H,w,t),l=0,w=m,t=q,D=e,H=d),n+=N);if(0>=N){0!=l&&(k(l,g,D,H,w,t),l=0);0!=n&&(r(n,g,D,H,w,t),n=0);break}}h<=Q&&(q+=c.width[h],d+=c.width[h],p+=c.width[h])}0!=n&&r(n,g,D,H,w,t);0!=l&&k(l,g,D,H,w,t);if(0!=(a.substep_shaping&2))for(g=0,Q=.634521682242439/u.IPOW20(c.global_gain+c.scalefac_scale),p=0;p<c.sfbmax;p++)if(B=c.width[p],0==a.pseudohalf[p])g+=B;else for(n=g,g+=B;n<g;++n)m[n]=e[n]>=Q?m[n]:0;return this.noquant_count_bits(a,
c,b)};this.best_huffman_divide=function(a,e){var c=new rb,b=e.l3_enc,g=U(23),l=U(23),h=U(23),p=U(23);if(e.block_type!=f.SHORT_TYPE||1!=a.mode_gr){c.assign(e);if(e.block_type==f.NORM_TYPE){for(var d=e.big_values,q=0;22>=q;q++)g[q]=Y.LARGE_BITS;for(q=0;16>q;q++){var w=a.scalefac_band.l[q+1];if(w>=d)break;for(var t=0,D=new x(t),k=K(b,0,w,D),t=D.bits,I=0;8>I;I++){var H=a.scalefac_band.l[q+I+2];if(H>=d)break;D=t;D=new x(D);H=K(b,w,H,D);D=D.bits;g[q+I]>D&&(g[q+I]=D,l[q+I]=q,h[q+I]=k,p[q+I]=H)}}C(a,c,e,
b,g,l,h,p)}d=c.big_values;if(!(0==d||1<(b[d-2]|b[d-1])||(d=e.count1+2,576<d))){c.assign(e);c.count1=d;for(w=q=0;d>c.big_values;d-=4)t=2*(2*(2*b[d-4]+b[d-3])+b[d-2])+b[d-1],q+=v.t32l[t],w+=v.t33l[t];c.big_values=d;c.count1table_select=0;q>w&&(q=w,c.count1table_select=1);c.count1bits=q;c.block_type==f.NORM_TYPE?C(a,c,e,b,g,l,h,p):(c.part2_3_length=q,q=a.scalefac_band.l[8],q>d&&(q=d),0<q&&(a=new x(c.part2_3_length),c.table_select[0]=K(b,0,q,a),c.part2_3_length=a.bits),d>q&&(a=new x(c.part2_3_length),
c.table_select[1]=K(b,q,d,a),c.part2_3_length=a.bits),e.part2_3_length>c.part2_3_length&&e.assign(c))}}};var c=[1,1,1,1,8,2,2,2,4,4,4,8,8,8,16,16],w=[1,2,4,8,1,2,4,8,2,4,8,2,4,8,4,8],a=[0,0,0,0,3,1,1,1,2,2,2,3,3,3,4,4],b=[0,1,2,3,0,1,2,3,1,2,3,1,2,3,2,3];fb.slen1_tab=a;fb.slen2_tab=b;this.best_scalefac_store=function(e,g,m,n){var l=n.tt[g][m],d,h,p=0;for(d=h=0;d<l.sfbmax;d++){var q=l.width[d];h+=q;for(q=-q;0>q&&0==l.l3_enc[q+h];q++);0==q&&(l.scalefac[d]=p=-2)}if(0==l.scalefac_scale&&0==l.preflag){for(d=
h=0;d<l.sfbmax;d++)0<l.scalefac[d]&&(h|=l.scalefac[d]);if(0==(h&1)&&0!=h){for(d=0;d<l.sfbmax;d++)0<l.scalefac[d]&&(l.scalefac[d]>>=1);l.scalefac_scale=p=1}}if(0==l.preflag&&l.block_type!=f.SHORT_TYPE&&2==e.mode_gr){for(d=11;d<f.SBPSY_l&&!(l.scalefac[d]<u.pretab[d]&&-2!=l.scalefac[d]);d++);if(d==f.SBPSY_l){for(d=11;d<f.SBPSY_l;d++)0<l.scalefac[d]&&(l.scalefac[d]-=u.pretab[d]);l.preflag=p=1}}for(d=0;4>d;d++)n.scfsi[m][d]=0;if(2==e.mode_gr&&1==g&&n.tt[0][m].block_type!=f.SHORT_TYPE&&n.tt[1][m].block_type!=
f.SHORT_TYPE){g=n.tt[1][m];h=n.tt[0][m];for(p=0;p<v.scfsi_band.length-1;p++){for(d=v.scfsi_band[p];d<v.scfsi_band[p+1]&&!(h.scalefac[d]!=g.scalefac[d]&&0<=g.scalefac[d]);d++);if(d==v.scfsi_band[p+1]){for(d=v.scfsi_band[p];d<v.scfsi_band[p+1];d++)g.scalefac[d]=-1;n.scfsi[m][p]=1}}for(d=n=m=0;11>d;d++)-1!=g.scalefac[d]&&(n++,m<g.scalefac[d]&&(m=g.scalefac[d]));for(q=h=0;d<f.SBPSY_l;d++)-1!=g.scalefac[d]&&(q++,h<g.scalefac[d]&&(h=g.scalefac[d]));for(p=0;16>p;p++)m<c[p]&&h<w[p]&&(d=a[p]*n+b[p]*q,g.part2_length>
d&&(g.part2_length=d,g.scalefac_compress=p));p=0}for(d=0;d<l.sfbmax;d++)-2==l.scalefac[d]&&(l.scalefac[d]=0);0!=p&&(2==e.mode_gr?this.scale_bitcount(l):this.scale_bitcount_lsf(e,l))};var B=[0,18,36,54,54,36,54,72,54,72,90,72,90,108,108,126],e=[0,18,36,54,51,35,53,71,52,70,88,69,87,105,104,122],l=[0,10,20,30,33,21,31,41,32,42,52,43,53,63,64,74];this.scale_bitcount=function(a){var b,g=0,d=0,q=a.scalefac;if(a.block_type==f.SHORT_TYPE){var t=B;0!=a.mixed_block_flag&&(t=e)}else if(t=l,0==a.preflag){for(b=
11;b<f.SBPSY_l&&!(q[b]<u.pretab[b]);b++);if(b==f.SBPSY_l)for(a.preflag=1,b=11;b<f.SBPSY_l;b++)q[b]-=u.pretab[b]}for(b=0;b<a.sfbdivide;b++)g<q[b]&&(g=q[b]);for(;b<a.sfbmax;b++)d<q[b]&&(d=q[b]);a.part2_length=Y.LARGE_BITS;for(b=0;16>b;b++)g<c[b]&&d<w[b]&&a.part2_length>t[b]&&(a.part2_length=t[b],a.scalefac_compress=b);return a.part2_length==Y.LARGE_BITS};var q=[[15,15,7,7],[15,15,7,0],[7,3,0,0],[15,31,31,0],[7,7,7,0],[3,3,0,0]];this.scale_bitcount_lsf=function(a,e){var b,c,d,l,h=U(4),p=e.scalefac;a=
0!=e.preflag?2:0;for(d=0;4>d;d++)h[d]=0;if(e.block_type==f.SHORT_TYPE){var A=1;var w=u.nr_of_sfb_block[a][A];for(b=l=0;4>b;b++){var t=w[b]/3;for(d=0;d<t;d++,l++)for(c=0;3>c;c++)p[3*l+c]>h[b]&&(h[b]=p[3*l+c])}}else for(A=0,w=u.nr_of_sfb_block[a][A],b=l=0;4>b;b++)for(t=w[b],d=0;d<t;d++,l++)p[l]>h[b]&&(h[b]=p[l]);w=!1;for(b=0;4>b;b++)h[b]>q[a][b]&&(w=!0);if(!w){e.sfb_partition_table=u.nr_of_sfb_block[a][A];for(b=0;4>b;b++)e.slen[b]=g[h[b]];A=e.slen[0];b=e.slen[1];h=e.slen[2];t=e.slen[3];switch(a){case 0:e.scalefac_compress=
(5*A+b<<4)+(h<<2)+t;break;case 1:e.scalefac_compress=400+(5*A+b<<2)+h;break;case 2:e.scalefac_compress=500+3*A+b;break;default:S.err.printf("intensity stereo not implemented yet\n")}}if(!w)for(b=e.part2_length=0;4>b;b++)e.part2_length+=e.slen[b]*e.sfb_partition_table[b];return w};var g=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];this.huffman_init=function(a){for(var e=2;576>=e;e+=2){for(var b=0,c;a.scalefac_band.l[++b]<e;);for(c=fa[b][0];a.scalefac_band.l[c+1]>e;)c--;0>c&&(c=fa[b][0]);a.bv_scf[e-2]=c;for(c=
fa[b][1];a.scalefac_band.l[c+a.bv_scf[e-2]+2]>e;)c--;0>c&&(c=fa[b][1]);a.bv_scf[e-1]=c}}}function ca(){function f(d,c,f,a,b,k){for(;0!=b--;)f[a]=1E-10+d[c+0]*k[0]-f[a-1]*k[1]+d[c-1]*k[2]-f[a-2]*k[3]+d[c-2]*k[4]-f[a-3]*k[5]+d[c-3]*k[6]-f[a-4]*k[7]+d[c-4]*k[8]-f[a-5]*k[9]+d[c-5]*k[10]-f[a-6]*k[11]+d[c-6]*k[12]-f[a-7]*k[13]+d[c-7]*k[14]-f[a-8]*k[15]+d[c-8]*k[16]-f[a-9]*k[17]+d[c-9]*k[18]-f[a-10]*k[19]+d[c-10]*k[20],++a,++c}function k(d,c,f,a,b,k){for(;0!=b--;)f[a]=d[c+0]*k[0]-f[a-1]*k[1]+d[c-1]*k[2]-
f[a-2]*k[3]+d[c-2]*k[4],++a,++c}function r(d){return d*d}var K=ca.RMS_WINDOW_TIME_NUMERATOR,C=ca.RMS_WINDOW_TIME_DENOMINATOR,u=[[.038575994352,-3.84664617118067,-.02160367184185,7.81501653005538,-.00123395316851,-11.34170355132042,-9.291677959E-5,13.05504219327545,-.01655260341619,-12.28759895145294,.02161526843274,9.4829380631979,-.02074045215285,-5.87257861775999,.00594298065125,2.75465861874613,.00306428023191,-.86984376593551,1.2025322027E-4,.13919314567432,.00288463683916],[.0541865640643,-3.47845948550071,
-.02911007808948,6.36317777566148,-.00848709379851,-8.54751527471874,-.00851165645469,9.4769360780128,-.00834990904936,-8.81498681370155,.02245293253339,6.85401540936998,-.02596338512915,-4.39470996079559,.01624864962975,2.19611684890774,-.00240879051584,-.75104302451432,.00674613682247,.13149317958808,-.00187763777362],[.15457299681924,-2.37898834973084,-.09331049056315,2.84868151156327,-.06247880153653,-2.64577170229825,.02163541888798,2.23697657451713,-.05588393329856,-1.67148153367602,.04781476674921,
1.00595954808547,.00222312597743,-.45953458054983,.03174092540049,.16378164858596,-.01390589421898,-.05032077717131,.00651420667831,.0234789740702,-.00881362733839],[.30296907319327,-1.61273165137247,-.22613988682123,1.0797749225997,-.08587323730772,-.2565625775407,.03282930172664,-.1627671912044,-.00915702933434,-.22638893773906,-.02364141202522,.39120800788284,-.00584456039913,-.22138138954925,.06276101321749,.04500235387352,-8.28086748E-6,.02005851806501,.00205861885564,.00302439095741,-.02950134983287],
[.33642304856132,-1.49858979367799,-.2557224142557,.87350271418188,-.11828570177555,.12205022308084,.11921148675203,-.80774944671438,-.07834489609479,.47854794562326,-.0046997791438,-.12453458140019,-.0058950022444,-.04067510197014,.05724228140351,.08333755284107,.00832043980773,-.04237348025746,-.0163538138454,.02977207319925,-.0176017656815],[.4491525660845,-.62820619233671,-.14351757464547,.29661783706366,-.22784394429749,-.372563729424,-.01419140100551,.00213767857124,.04078262797139,-.42029820170918,
-.12398163381748,.22199650564824,.04097565135648,.00613424350682,.10478503600251,.06747620744683,-.01863887810927,.05784820375801,-.03193428438915,.03222754072173,.00541907748707],[.56619470757641,-1.04800335126349,-.75464456939302,.29156311971249,.1624213774223,-.26806001042947,.16744243493672,.00819999645858,-.18901604199609,.45054734505008,.3093178284183,-.33032403314006,-.27562961986224,.0673936833311,.00647310677246,-.04784254229033,.08647503780351,.01639907836189,-.0378898455484,.01807364323573,
-.00588215443421],[.58100494960553,-.51035327095184,-.53174909058578,-.31863563325245,-.14289799034253,-.20256413484477,.17520704835522,.1472815413433,.02377945217615,.38952639978999,.15558449135573,-.23313271880868,-.25344790059353,-.05246019024463,.01628462406333,-.02505961724053,.06920467763959,.02442357316099,-.03721611395801,.01818801111503,-.00749618797172],[.53648789255105,-.2504987195602,-.42163034350696,-.43193942311114,-.00275953611929,-.03424681017675,.04267842219415,-.04678328784242,-.10214864179676,
.26408300200955,.14590772289388,.15113130533216,-.02459864859345,-.17556493366449,-.11202315195388,-.18823009262115,-.04060034127,.05477720428674,.0478866554818,.0470440968812,-.02217936801134]],v=[[.98621192462708,-1.97223372919527,-1.97242384925416,.97261396931306,.98621192462708],[.98500175787242,-1.96977855582618,-1.97000351574484,.9702284756635,.98500175787242],[.97938932735214,-1.95835380975398,-1.95877865470428,.95920349965459,.97938932735214],[.97531843204928,-1.95002759149878,-1.95063686409857,
.95124613669835,.97531843204928],[.97316523498161,-1.94561023566527,-1.94633046996323,.94705070426118,.97316523498161],[.96454515552826,-1.92783286977036,-1.92909031105652,.93034775234268,.96454515552826],[.96009142950541,-1.91858953033784,-1.92018285901082,.92177618768381,.96009142950541],[.95856916599601,-1.9154210807478,-1.91713833199203,.91885558323625,.95856916599601],[.94597685600279,-1.88903307939452,-1.89195371200558,.89487434461664,.94597685600279]];this.InitGainAnalysis=function(d,c){a:{for(var f=
0;f<MAX_ORDER;f++)d.linprebuf[f]=d.lstepbuf[f]=d.loutbuf[f]=d.rinprebuf[f]=d.rstepbuf[f]=d.routbuf[f]=0;switch(0|c){case 48E3:d.reqindex=0;break;case 44100:d.reqindex=1;break;case 32E3:d.reqindex=2;break;case 24E3:d.reqindex=3;break;case 22050:d.reqindex=4;break;case 16E3:d.reqindex=5;break;case 12E3:d.reqindex=6;break;case 11025:d.reqindex=7;break;case 8E3:d.reqindex=8;break;default:c=INIT_GAIN_ANALYSIS_ERROR;break a}d.sampleWindow=0|(c*K+C-1)/C;d.lsum=0;d.rsum=0;d.totsamp=0;qa.ill(d.A,0);c=INIT_GAIN_ANALYSIS_OK}if(c!=
INIT_GAIN_ANALYSIS_OK)return INIT_GAIN_ANALYSIS_ERROR;d.linpre=MAX_ORDER;d.rinpre=MAX_ORDER;d.lstep=MAX_ORDER;d.rstep=MAX_ORDER;d.lout=MAX_ORDER;d.rout=MAX_ORDER;qa.fill(d.B,0);return INIT_GAIN_ANALYSIS_OK};this.AnalyzeSamples=function(d,c,w,a,b,B,e){if(0==B)return GAIN_ANALYSIS_OK;var l=0;var q=B;switch(e){case 1:a=c;b=w;break;case 2:break;default:return GAIN_ANALYSIS_ERROR}B<MAX_ORDER?(S.arraycopy(c,w,d.linprebuf,MAX_ORDER,B),S.arraycopy(a,b,d.rinprebuf,MAX_ORDER,B)):(S.arraycopy(c,w,d.linprebuf,
MAX_ORDER,MAX_ORDER),S.arraycopy(a,b,d.rinprebuf,MAX_ORDER,MAX_ORDER));for(;0<q;){var g=q>d.sampleWindow-d.totsamp?d.sampleWindow-d.totsamp:q;if(l<MAX_ORDER){e=d.linpre+l;var t=d.linprebuf;var D=d.rinpre+l;var m=d.rinprebuf;g>MAX_ORDER-l&&(g=MAX_ORDER-l)}else e=w+l,t=c,D=b+l,m=a;f(t,e,d.lstepbuf,d.lstep+d.totsamp,g,u[d.reqindex]);f(m,D,d.rstepbuf,d.rstep+d.totsamp,g,u[d.reqindex]);k(d.lstepbuf,d.lstep+d.totsamp,d.loutbuf,d.lout+d.totsamp,g,v[d.reqindex]);k(d.rstepbuf,d.rstep+d.totsamp,d.routbuf,d.rout+
d.totsamp,g,v[d.reqindex]);e=d.lout+d.totsamp;t=d.loutbuf;D=d.rout+d.totsamp;m=d.routbuf;for(var n=g%8;0!=n--;)d.lsum+=r(t[e++]),d.rsum+=r(m[D++]);for(n=g/8;0!=n--;)d.lsum+=r(t[e+0])+r(t[e+1])+r(t[e+2])+r(t[e+3])+r(t[e+4])+r(t[e+5])+r(t[e+6])+r(t[e+7]),e+=8,d.rsum+=r(m[D+0])+r(m[D+1])+r(m[D+2])+r(m[D+3])+r(m[D+4])+r(m[D+5])+r(m[D+6])+r(m[D+7]),D+=8;q-=g;l+=g;d.totsamp+=g;d.totsamp==d.sampleWindow&&(e=10*ca.STEPS_per_dB*Math.log10((d.lsum+d.rsum)/d.totsamp*.5+1E-37),e=0>=e?0:0|e,e>=d.A.length&&(e=
d.A.length-1),d.A[e]++,d.lsum=d.rsum=0,S.arraycopy(d.loutbuf,d.totsamp,d.loutbuf,0,MAX_ORDER),S.arraycopy(d.routbuf,d.totsamp,d.routbuf,0,MAX_ORDER),S.arraycopy(d.lstepbuf,d.totsamp,d.lstepbuf,0,MAX_ORDER),S.arraycopy(d.rstepbuf,d.totsamp,d.rstepbuf,0,MAX_ORDER),d.totsamp=0);if(d.totsamp>d.sampleWindow)return GAIN_ANALYSIS_ERROR}B<MAX_ORDER?(S.arraycopy(d.linprebuf,B,d.linprebuf,0,MAX_ORDER-B),S.arraycopy(d.rinprebuf,B,d.rinprebuf,0,MAX_ORDER-B),S.arraycopy(c,w,d.linprebuf,MAX_ORDER-B,B),S.arraycopy(a,
b,d.rinprebuf,MAX_ORDER-B,B)):(S.arraycopy(c,w+B-MAX_ORDER,d.linprebuf,0,MAX_ORDER),S.arraycopy(a,b+B-MAX_ORDER,d.rinprebuf,0,MAX_ORDER));return GAIN_ANALYSIS_OK};this.GetTitleGain=function(d){var c=d.A;var f=d.A.length,a,b=0;for(a=0;a<f;a++)b+=c[a];if(0==b)c=GAIN_NOT_ENOUGH_SAMPLES;else{b=0|Math.ceil(b*(1-.95));for(a=f;0<a--&&!(0>=(b-=c[a])););c=64.82-a/ca.STEPS_per_dB}for(f=0;f<d.A.length;f++)d.B[f]+=d.A[f],d.A[f]=0;for(f=0;f<MAX_ORDER;f++)d.linprebuf[f]=d.lstepbuf[f]=d.loutbuf[f]=d.rinprebuf[f]=
d.rstepbuf[f]=d.routbuf[f]=0;d.totsamp=0;d.lsum=d.rsum=0;return c}}function wc(){function f(c,d,a,b,f,e,l,q,g,t,k,m,n,z,E){this.vbr_q=c;this.quant_comp=d;this.quant_comp_s=a;this.expY=b;this.st_lrm=f;this.st_s=e;this.masking_adj=l;this.masking_adj_short=q;this.ath_lower=g;this.ath_curve=t;this.ath_sensitivity=k;this.interch=m;this.safejoint=n;this.sfb21mod=z;this.msfix=E}function k(c,d,a,b,f,e,l,q,g,t,k,m,n,z){this.quant_comp=d;this.quant_comp_s=a;this.safejoint=b;this.nsmsfix=f;this.st_lrm=e;this.st_s=
l;this.nsbass=q;this.scale=g;this.masking_adj=t;this.ath_lower=k;this.ath_curve=m;this.interch=n;this.sfscale=z}function r(c,d,a){var b=c.VBR==J.vbr_rh?u:v,f=c.VBR_q_frac,e=b[d],b=b[d+1];e.st_lrm+=f*(b.st_lrm-e.st_lrm);e.st_s+=f*(b.st_s-e.st_s);e.masking_adj+=f*(b.masking_adj-e.masking_adj);e.masking_adj_short+=f*(b.masking_adj_short-e.masking_adj_short);e.ath_lower+=f*(b.ath_lower-e.ath_lower);e.ath_curve+=f*(b.ath_curve-e.ath_curve);e.ath_sensitivity+=f*(b.ath_sensitivity-e.ath_sensitivity);e.interch+=
f*(b.interch-e.interch);e.msfix+=f*(b.msfix-e.msfix);b=e.vbr_q;0>b&&(b=0);9<b&&(b=9);c.VBR_q=b;c.VBR_q_frac=0;0!=a?c.quant_comp=e.quant_comp:0<Math.abs(c.quant_comp- -1)||(c.quant_comp=e.quant_comp);0!=a?c.quant_comp_short=e.quant_comp_s:0<Math.abs(c.quant_comp_short- -1)||(c.quant_comp_short=e.quant_comp_s);0!=e.expY&&(c.experimentalY=0!=e.expY);0!=a?c.internal_flags.nsPsy.attackthre=e.st_lrm:0<Math.abs(c.internal_flags.nsPsy.attackthre- -1)||(c.internal_flags.nsPsy.attackthre=e.st_lrm);0!=a?c.internal_flags.nsPsy.attackthre_s=
e.st_s:0<Math.abs(c.internal_flags.nsPsy.attackthre_s- -1)||(c.internal_flags.nsPsy.attackthre_s=e.st_s);0!=a?c.maskingadjust=e.masking_adj:0<Math.abs(c.maskingadjust-0)||(c.maskingadjust=e.masking_adj);0!=a?c.maskingadjust_short=e.masking_adj_short:0<Math.abs(c.maskingadjust_short-0)||(c.maskingadjust_short=e.masking_adj_short);0!=a?c.ATHlower=-e.ath_lower/10:0<Math.abs(10*-c.ATHlower-0)||(c.ATHlower=-e.ath_lower/10);0!=a?c.ATHcurve=e.ath_curve:0<Math.abs(c.ATHcurve- -1)||(c.ATHcurve=e.ath_curve);
0!=a?c.athaa_sensitivity=e.ath_sensitivity:0<Math.abs(c.athaa_sensitivity- -1)||(c.athaa_sensitivity=e.ath_sensitivity);0<e.interch&&(0!=a?c.interChRatio=e.interch:0<Math.abs(c.interChRatio- -1)||(c.interChRatio=e.interch));0<e.safejoint&&(c.exp_nspsytune|=e.safejoint);0<e.sfb21mod&&(c.exp_nspsytune|=e.sfb21mod<<20);0!=a?c.msfix=e.msfix:0<Math.abs(c.msfix- -1)||(c.msfix=e.msfix);0==a&&(c.VBR_q=d,c.VBR_q_frac=f)}function K(c,f,a){var b=C.nearestBitrateFullIndex(f);c.VBR=J.vbr_abr;c.VBR_mean_bitrate_kbps=
f;c.VBR_mean_bitrate_kbps=Math.min(c.VBR_mean_bitrate_kbps,320);c.VBR_mean_bitrate_kbps=Math.max(c.VBR_mean_bitrate_kbps,8);c.brate=c.VBR_mean_bitrate_kbps;320<c.VBR_mean_bitrate_kbps&&(c.disable_reservoir=!0);0<d[b].safejoint&&(c.exp_nspsytune|=2);0<d[b].sfscale&&(c.internal_flags.noise_shaping=2);if(0<Math.abs(d[b].nsbass)){var w=int(4*d[b].nsbass);0>w&&(w+=64);c.exp_nspsytune|=w<<2}0!=a?c.quant_comp=d[b].quant_comp:0<Math.abs(c.quant_comp- -1)||(c.quant_comp=d[b].quant_comp);0!=a?c.quant_comp_short=
d[b].quant_comp_s:0<Math.abs(c.quant_comp_short- -1)||(c.quant_comp_short=d[b].quant_comp_s);0!=a?c.msfix=d[b].nsmsfix:0<Math.abs(c.msfix- -1)||(c.msfix=d[b].nsmsfix);0!=a?c.internal_flags.nsPsy.attackthre=d[b].st_lrm:0<Math.abs(c.internal_flags.nsPsy.attackthre- -1)||(c.internal_flags.nsPsy.attackthre=d[b].st_lrm);0!=a?c.internal_flags.nsPsy.attackthre_s=d[b].st_s:0<Math.abs(c.internal_flags.nsPsy.attackthre_s- -1)||(c.internal_flags.nsPsy.attackthre_s=d[b].st_s);0!=a?c.scale=d[b].scale:0<Math.abs(c.scale-
-1)||(c.scale=d[b].scale);0!=a?c.maskingadjust=d[b].masking_adj:0<Math.abs(c.maskingadjust-0)||(c.maskingadjust=d[b].masking_adj);0<d[b].masking_adj?0!=a?c.maskingadjust_short=.9*d[b].masking_adj:0<Math.abs(c.maskingadjust_short-0)||(c.maskingadjust_short=.9*d[b].masking_adj):0!=a?c.maskingadjust_short=1.1*d[b].masking_adj:0<Math.abs(c.maskingadjust_short-0)||(c.maskingadjust_short=1.1*d[b].masking_adj);0!=a?c.ATHlower=-d[b].ath_lower/10:0<Math.abs(10*-c.ATHlower-0)||(c.ATHlower=-d[b].ath_lower/10);
0!=a?c.ATHcurve=d[b].ath_curve:0<Math.abs(c.ATHcurve- -1)||(c.ATHcurve=d[b].ath_curve);0!=a?c.interChRatio=d[b].interch:0<Math.abs(c.interChRatio- -1)||(c.interChRatio=d[b].interch);return f}var C;this.setModules=function(c){C=c};var u=[new f(0,9,9,0,5.2,125,-4.2,-6.3,4.8,1,0,0,2,21,.97),new f(1,9,9,0,5.3,125,-3.6,-5.6,4.5,1.5,0,0,2,21,1.35),new f(2,9,9,0,5.6,125,-2.2,-3.5,2.8,2,0,0,2,21,1.49),new f(3,9,9,1,5.8,130,-1.8,-2.8,2.6,3,-4,0,2,20,1.64),new f(4,9,9,1,6,135,-.7,-1.1,1.1,3.5,-8,0,2,0,1.79),
new f(5,9,9,1,6.4,140,.5,.4,-7.5,4,-12,2E-4,0,0,1.95),new f(6,9,9,1,6.6,145,.67,.65,-14.7,6.5,-19,4E-4,0,0,2.3),new f(7,9,9,1,6.6,145,.8,.75,-19.7,8,-22,6E-4,0,0,2.7),new f(8,9,9,1,6.6,145,1.2,1.15,-27.5,10,-23,7E-4,0,0,0),new f(9,9,9,1,6.6,145,1.6,1.6,-36,11,-25,8E-4,0,0,0),new f(10,9,9,1,6.6,145,2,2,-36,12,-25,8E-4,0,0,0)],v=[new f(0,9,9,0,4.2,25,-7,-4,7.5,1,0,0,2,26,.97),new f(1,9,9,0,4.2,25,-5.6,-3.6,4.5,1.5,0,0,2,21,1.35),new f(2,9,9,0,4.2,25,-4.4,-1.8,2,2,0,0,2,18,1.49),new f(3,9,9,1,4.2,25,
-3.4,-1.25,1.1,3,-4,0,2,15,1.64),new f(4,9,9,1,4.2,25,-2.2,.1,0,3.5,-8,0,2,0,1.79),new f(5,9,9,1,4.2,25,-1,1.65,-7.7,4,-12,2E-4,0,0,1.95),new f(6,9,9,1,4.2,25,-0,2.47,-7.7,6.5,-19,4E-4,0,0,2),new f(7,9,9,1,4.2,25,.5,2,-14.5,8,-22,6E-4,0,0,2),new f(8,9,9,1,4.2,25,1,2.4,-22,10,-23,7E-4,0,0,2),new f(9,9,9,1,4.2,25,1.5,2.95,-30,11,-25,8E-4,0,0,2),new f(10,9,9,1,4.2,25,2,2.95,-36,12,-30,8E-4,0,0,2)],d=[new k(8,9,9,0,0,6.6,145,0,.95,0,-30,11,.0012,1),new k(16,9,9,0,0,6.6,145,0,.95,0,-25,11,.001,1),new k(24,
9,9,0,0,6.6,145,0,.95,0,-20,11,.001,1),new k(32,9,9,0,0,6.6,145,0,.95,0,-15,11,.001,1),new k(40,9,9,0,0,6.6,145,0,.95,0,-10,11,9E-4,1),new k(48,9,9,0,0,6.6,145,0,.95,0,-10,11,9E-4,1),new k(56,9,9,0,0,6.6,145,0,.95,0,-6,11,8E-4,1),new k(64,9,9,0,0,6.6,145,0,.95,0,-2,11,8E-4,1),new k(80,9,9,0,0,6.6,145,0,.95,0,0,8,7E-4,1),new k(96,9,9,0,2.5,6.6,145,0,.95,0,1,5.5,6E-4,1),new k(112,9,9,0,2.25,6.6,145,0,.95,0,2,4.5,5E-4,1),new k(128,9,9,0,1.95,6.4,140,0,.95,0,3,4,2E-4,1),new k(160,9,9,1,1.79,6,135,0,.95,
-2,5,3.5,0,1),new k(192,9,9,1,1.49,5.6,125,0,.97,-4,7,3,0,0),new k(224,9,9,1,1.25,5.2,125,0,.98,-6,9,2,0,0),new k(256,9,9,1,.97,5.2,125,0,1,-8,10,1,0,0),new k(320,9,9,1,.9,5.2,125,0,1,-10,12,0,0,0)];this.apply_preset=function(c,d,a){switch(d){case W.R3MIX:d=W.V3;c.VBR=J.vbr_mtrh;break;case W.MEDIUM:d=W.V4;c.VBR=J.vbr_rh;break;case W.MEDIUM_FAST:d=W.V4;c.VBR=J.vbr_mtrh;break;case W.STANDARD:d=W.V2;c.VBR=J.vbr_rh;break;case W.STANDARD_FAST:d=W.V2;c.VBR=J.vbr_mtrh;break;case W.EXTREME:d=W.V0;c.VBR=J.vbr_rh;
break;case W.EXTREME_FAST:d=W.V0;c.VBR=J.vbr_mtrh;break;case W.INSANE:return d=320,c.preset=d,K(c,d,a),c.VBR=J.vbr_off,d}c.preset=d;switch(d){case W.V9:return r(c,9,a),d;case W.V8:return r(c,8,a),d;case W.V7:return r(c,7,a),d;case W.V6:return r(c,6,a),d;case W.V5:return r(c,5,a),d;case W.V4:return r(c,4,a),d;case W.V3:return r(c,3,a),d;case W.V2:return r(c,2,a),d;case W.V1:return r(c,1,a),d;case W.V0:return r(c,0,a),d}if(8<=d&&320>=d)return K(c,d,a);c.preset=0;return d}}function xc(){var f;this.setModules=
function(k){f=k};this.ResvFrameBegin=function(k,r){var x=k.internal_flags,C=x.l3_side,u=f.getframebits(k);r.bits=(u-8*x.sideinfo_len)/x.mode_gr;var v=2048*x.mode_gr-8;if(320<k.brate)var d=8*int(1E3*k.brate/(k.out_samplerate/1152)/8+.5);else d=11520,k.strict_ISO&&(d=8*int(32E4/(k.out_samplerate/1152)/8+.5));x.ResvMax=d-u;x.ResvMax>v&&(x.ResvMax=v);if(0>x.ResvMax||k.disable_reservoir)x.ResvMax=0;k=r.bits*x.mode_gr+Math.min(x.ResvSize,x.ResvMax);k>d&&(k=d);C.resvDrain_pre=0;null!=x.pinfo&&(x.pinfo.mean_bits=
r.bits/2,x.pinfo.resvsize=x.ResvSize);return k};this.ResvMaxBits=function(f,r,x,C){var k=f.internal_flags,v=k.ResvSize,d=k.ResvMax;0!=C&&(v+=r);0!=(k.substep_shaping&1)&&(d*=.9);x.bits=r;10*v>9*d?(C=v-9*d/10,x.bits+=C,k.substep_shaping|=128):(C=0,k.substep_shaping&=127,f.disable_reservoir||0!=(k.substep_shaping&1)||(x.bits-=.1*r));f=v<6*k.ResvMax/10?v:6*k.ResvMax/10;f-=C;0>f&&(f=0);return f};this.ResvAdjust=function(f,r){f.ResvSize-=r.part2_3_length+r.part2_length};this.ResvFrameEnd=function(f,r){var k,
x=f.l3_side;f.ResvSize+=r*f.mode_gr;r=0;x.resvDrain_post=0;x.resvDrain_pre=0;0!=(k=f.ResvSize%8)&&(r+=k);k=f.ResvSize-r-f.ResvMax;0<k&&(r+=k);k=Math.min(8*x.main_data_begin,r)/8;x.resvDrain_pre+=8*k;r-=8*k;f.ResvSize-=8*k;x.main_data_begin-=k;x.resvDrain_post+=r;f.ResvSize-=r}}function gb(){function f(a,b){var e=a[b+0]&255,e=e<<8|a[b+1]&255,e=e<<8|a[b+2]&255;return e=e<<8|a[b+3]&255}function k(a,b,c){a[b+0]=c>>24&255;a[b+1]=c>>16&255;a[b+2]=c>>8&255;a[b+3]=c&255}function r(a,b,c){a[b+0]=c>>8&255;
a[b+1]=c&255}function K(a,b,c){return 255&(a<<b|c&~(-1<<b))}function C(a,b){var e=a.internal_flags;b[0]=K(b[0],8,255);b[1]=K(b[1],3,7);b[1]=K(b[1],1,16E3>a.out_samplerate?0:1);b[1]=K(b[1],1,a.version);b[1]=K(b[1],2,1);b[1]=K(b[1],1,a.error_protection?0:1);b[2]=K(b[2],4,e.bitrate_index);b[2]=K(b[2],2,e.samplerate_index);b[2]=K(b[2],1,0);b[2]=K(b[2],1,a.extension);b[3]=K(b[3],2,a.mode.ordinal());b[3]=K(b[3],2,e.mode_ext);b[3]=K(b[3],1,a.copyright);b[3]=K(b[3],1,a.original);b[3]=K(b[3],2,a.emphasis);
b[0]=255;var e=b[1]&241;var c=1==a.version?128:16E3>a.out_samplerate?32:64;a.VBR==J.vbr_off&&(c=a.brate);c=a.free_format?0:255&16*G.BitrateIndex(c,a.version,a.out_samplerate);b[1]=1==a.version?255&(e|10):255&(e|2);e=b[2]&13;b[2]=255&(c|e)}function u(a,b){return b=b>>8^B[(b^a)&255]}var G,d,c;this.setModules=function(a,b,f){G=a;d=b;c=f};var w=gb.NUMTOCENTRIES,a=gb.MAXFRAMESIZE,b=w+4+4+4+4+4+9+1+1+8+1+1+3+1+1+2+4+2+2,B=[0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,
52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912,56257,55937,6720,7680,57025,57217,8E3,56577,7616,7296,56385,5120,54465,54657,5440,55041,6080,5760,54849,53761,4800,4992,54081,4352,53697,53377,4160,61441,12480,12672,61761,13056,62401,62081,12864,13824,63169,63361,14144,62721,13760,13440,62529,15360,64705,64897,15680,65281,16320,16E3,65089,64001,15040,15232,64321,14592,63937,63617,14400,10240,59585,59777,10560,60161,11200,10880,59969,
60929,11968,12160,61249,11520,60865,60545,11328,58369,9408,9600,58689,9984,59329,59009,9792,8704,58049,58241,9024,57601,8640,8320,57409,40961,24768,24960,41281,25344,41921,41601,25152,26112,42689,42881,26432,42241,26048,25728,42049,27648,44225,44417,27968,44801,28608,28288,44609,43521,27328,27520,43841,26880,43457,43137,26688,30720,47297,47489,31040,47873,31680,31360,47681,48641,32448,32640,48961,32E3,48577,48257,31808,46081,29888,30080,46401,30464,47041,46721,30272,29184,45761,45953,29504,45313,
29120,28800,45121,20480,37057,37249,20800,37633,21440,21120,37441,38401,22208,22400,38721,21760,38337,38017,21568,39937,23744,23936,40257,24320,40897,40577,24128,23040,39617,39809,23360,39169,22976,22656,38977,34817,18624,18816,35137,19200,35777,35457,19008,19968,36545,36737,20288,36097,19904,19584,35905,17408,33985,34177,17728,34561,18368,18048,34369,33281,17088,17280,33601,16640,33217,32897,16448];this.addVbrFrame=function(a){var b=a.internal_flags;var e=b.VBR_seek_table;a=v.bitrate_table[a.version][b.bitrate_index];
e.nVbrNumFrames++;e.sum+=a;e.seen++;if(!(e.seen<e.want)&&(e.pos<e.size&&(e.bag[e.pos]=e.sum,e.pos++,e.seen=0),e.pos==e.size)){for(a=1;a<e.size;a+=2)e.bag[a/2]=e.bag[a];e.want*=2;e.pos/=2}};this.getVbrTag=function(a){var b=new VBRTagData,e=0;b.flags=0;var c=a[e+1]>>3&1,d=a[e+2]>>2&3,k=a[e+3]>>6&3,m=a[e+2]>>4&15,m=v.bitrate_table[c][m];b.samprate=14==a[e+1]>>4?v.samplerate_table[2][d]:v.samplerate_table[c][d];d=e=0!=c?3!=k?e+36:e+21:3!=k?e+21:e+13;if(!(new String(a,d,4(),null)).equals("Xing")&&!(new String(a,
d,4(),null)).equals("Info"))return null;e+=4;b.hId=c;d=b.flags=f(a,e);e+=4;0!=(d&1)&&(b.frames=f(a,e),e+=4);0!=(d&2)&&(b.bytes=f(a,e),e+=4);if(0!=(d&4)){if(null!=b.toc)for(k=0;k<w;k++)b.toc[k]=a[e+k];e+=w}b.vbrScale=-1;0!=(d&8)&&(b.vbrScale=f(a,e),e+=4);b.headersize=72E3*(c+1)*m/b.samprate;e+=21;c=a[e+0]<<4;c+=a[e+1]>>4;m=(a[e+1]&15)<<8;m+=a[e+2]&255;if(0>c||3E3<c)c=-1;if(0>m||3E3<m)m=-1;b.encDelay=c;b.encPadding=m;return b};this.InitVbrTag=function(e){var c=e.internal_flags;var f=1==e.version?128:
16E3>e.out_samplerate?32:64;e.VBR==J.vbr_off&&(f=e.brate);f=72E3*(e.version+1)*f/e.out_samplerate;var g=c.sideinfo_len+b;c.VBR_seek_table.TotalFrameSize=f;if(f<g||f>a)e.bWriteVbrTag=!1;else for(c.VBR_seek_table.nVbrNumFrames=0,c.VBR_seek_table.nBytesWritten=0,c.VBR_seek_table.sum=0,c.VBR_seek_table.seen=0,c.VBR_seek_table.want=1,c.VBR_seek_table.pos=0,null==c.VBR_seek_table.bag&&(c.VBR_seek_table.bag=new int[400],c.VBR_seek_table.size=400),f=new Int8Array(a),C(e,f),c=c.VBR_seek_table.TotalFrameSize,
g=0;g<c;++g)d.add_dummy_byte(e,f[g]&255,1)};this.updateMusicCRC=function(a,b,c,d){for(var e=0;e<d;++e)a[0]=u(b[c+e],a[0])};this.getLameTagFrame=function(a,b){var e=a.internal_flags;if(!a.bWriteVbrTag||e.Class_ID!=W.LAME_ID||0>=e.VBR_seek_table.pos)return 0;if(b.length<e.VBR_seek_table.TotalFrameSize)return e.VBR_seek_table.TotalFrameSize;qa.fill(b,0,e.VBR_seek_table.TotalFrameSize,0);C(a,b);var g=new Int8Array(w);if(a.free_format)for(var f=1;f<w;++f)g[f]=255&255*f/100;else{var l=e.VBR_seek_table;
if(!(0>=l.pos))for(f=1;f<w;++f){var m=0|Math.floor(f/w*l.pos);m>l.pos-1&&(m=l.pos-1);m=0|256*l.bag[m]/l.sum;255<m&&(m=255);g[f]=255&m}}m=e.sideinfo_len;a.error_protection&&(m-=2);b[m++]=0;b[m++]=0;b[m++]=0;b[m++]=0;k(b,m,15);m+=4;k(b,m,e.VBR_seek_table.nVbrNumFrames);m+=4;l=e.VBR_seek_table.nBytesWritten+e.VBR_seek_table.TotalFrameSize;k(b,m,0|l);m+=4;S.arraycopy(g,0,b,m,g.length);m+=g.length;a.error_protection&&d.CRC_writeheader(e,b);for(var n=0,f=0;f<m;f++)n=u(b[f],n);var g=m,f=n,z=a.internal_flags,
m=0,n=a.encoder_delay,E=a.encoder_padding,h=100-10*a.VBR_q-a.quality,p=c.getLameVeryShortVersion();var A=[1,5,3,2,4,0,3];var y=0|(255<a.lowpassfreq/100+.5?255:a.lowpassfreq/100+.5),B=0,x=0,R=a.internal_flags.noise_shaping,X=0,I,H=0!=(a.exp_nspsytune&1);var M=0!=(a.exp_nspsytune&2);var Q=I=!1,V=a.internal_flags.nogap_total,N=a.internal_flags.nogap_current,v=a.ATHtype;switch(a.VBR){case vbr_abr:var Qa=a.VBR_mean_bitrate_kbps;break;case vbr_off:Qa=a.brate;break;default:Qa=a.VBR_min_bitrate_kbps}A=0+
(a.VBR.ordinal()<A.length?A[a.VBR.ordinal()]:0);z.findReplayGain&&(510<z.RadioGain&&(z.RadioGain=510),-510>z.RadioGain&&(z.RadioGain=-510),x=11264,x=0<=z.RadioGain?x|z.RadioGain:x|512|-z.RadioGain);z.findPeakSample&&(B=Math.abs(0|z.PeakSample/32767*Math.pow(2,23)+.5));-1!=V&&(0<N&&(Q=!0),N<V-1&&(I=!0));H=v+((H?1:0)<<4)+((M?1:0)<<5)+((I?1:0)<<6)+((Q?1:0)<<7);0>h&&(h=0);switch(a.mode){case MONO:M=0;break;case STEREO:M=1;break;case DUAL_CHANNEL:M=2;break;case JOINT_STEREO:M=a.force_ms?4:3;break;default:M=
7}I=32E3>=a.in_samplerate?0:48E3==a.in_samplerate?2:48E3<a.in_samplerate?3:1;if(a.short_blocks==pa.short_block_forced||a.short_blocks==pa.short_block_dispensed||-1==a.lowpassfreq&&-1==a.highpassfreq||a.scale_left<a.scale_right||a.scale_left>a.scale_right||a.disable_reservoir&&320>a.brate||a.noATH||a.ATHonly||0==v||32E3>=a.in_samplerate)X=1;R=R+(M<<2)+(X<<5)+(I<<6);z=z.nMusicCRC;k(b,g+m,h);m+=4;for(h=0;9>h;h++)b[g+m+h]=255&p.charAt(h);m+=9;b[g+m]=255&A;m++;b[g+m]=255&y;m++;k(b,g+m,B);m+=4;r(b,g+m,
x);m+=2;r(b,g+m,0);m+=2;b[g+m]=255&H;m++;b[g+m]=255<=Qa?255:255&Qa;m++;b[g+m]=255&n>>4;b[g+m+1]=255&(n<<4)+(E>>8);b[g+m+2]=255&E;m+=3;b[g+m]=255&R;m++;b[g+m++]=0;r(b,g+m,a.preset);m+=2;k(b,g+m,l);m+=4;r(b,g+m,z);m+=2;for(a=0;a<m;a++)f=u(b[g+a],f);r(b,g+m,f);return e.VBR_seek_table.TotalFrameSize};this.putVbrTag=function(b,c){if(0>=b.internal_flags.VBR_seek_table.pos)return-1;c.seek(c.length());if(0==c.length())return-1;c.seek(0);var e=new Int8Array(10);c.readFully(e);e=(new String(e,"ISO-8859-1")).startsWith("ID3")?
0:((e[6]&127)<<21|(e[7]&127)<<14|(e[8]&127)<<7|e[9]&127)+e.length;c.seek(e);e=new Int8Array(a);b=getLameTagFrame(b,e);if(b>e.length)return-1;if(1>b)return 0;c.write(e,0,b);return 0}}function da(){function x(a,b,c){for(;0<c;){if(0==D){D=8;t++;if(a.header[a.w_ptr].write_timing==g){var e=a;S.arraycopy(e.header[e.w_ptr].buf,0,q,t,e.sideinfo_len);t+=e.sideinfo_len;g+=8*e.sideinfo_len;e.w_ptr=e.w_ptr+1&ia.MAX_HEADER_BUF-1}q[t]=0}e=Math.min(c,D);c-=e;D-=e;q[t]|=b>>c<<D;g+=e}}function k(a,b){var c=a.internal_flags,
d;8<=b&&(x(c,76,8),b-=8);8<=b&&(x(c,65,8),b-=8);8<=b&&(x(c,77,8),b-=8);8<=b&&(x(c,69,8),b-=8);if(32<=b){var h=e.getLameShortVersion();if(32<=b)for(d=0;d<h.length&&8<=b;++d)b-=8,x(c,h.charAt(d),8)}for(;1<=b;--b)x(c,c.ancillary_flag,1),c.ancillary_flag^=a.disable_reservoir?0:1}function r(a,b,c){for(var e=a.header[a.h_ptr].ptr;0<c;){var h=Math.min(c,8-(e&7));c-=h;a.header[a.h_ptr].buf[e>>3]|=b>>c<<8-(e&7)-h;e+=h}a.header[a.h_ptr].ptr=e}function K(a,b){a<<=8;for(var c=0;8>c;c++)a<<=1,b<<=1,0!=((b^a)&
65536)&&(b^=32773);return b}function C(a,b){var c=v.ht[b.count1table_select+32],e,h=0,d=b.big_values,g=b.big_values;for(e=(b.count1-b.big_values)/4;0<e;--e){var f=0,m=0;var n=b.l3_enc[d+0];0!=n&&(m+=8,0>b.xr[g+0]&&f++);n=b.l3_enc[d+1];0!=n&&(m+=4,f*=2,0>b.xr[g+1]&&f++);n=b.l3_enc[d+2];0!=n&&(m+=2,f*=2,0>b.xr[g+2]&&f++);n=b.l3_enc[d+3];0!=n&&(m++,f*=2,0>b.xr[g+3]&&f++);d+=4;g+=4;x(a,f+c.table[m],c.hlen[m]);h+=c.hlen[m]}return h}function u(a,b,c,e,h){var d=v.ht[b],g=0;if(0==b)return g;for(;c<e;c+=2){var f=
0,m=0,n=d.xlen,l=d.xlen,q=0,I=h.l3_enc[c],k=h.l3_enc[c+1];0!=I&&(0>h.xr[c]&&q++,f--);15<b&&(14<I&&(q|=I-15<<1,m=n,I=15),14<k&&(l=k-15,q<<=n,q|=l,m+=n,k=15),l=16);0!=k&&(q<<=1,0>h.xr[c+1]&&q++,f--);I=I*l+k;m-=f;f+=d.hlen[I];x(a,d.table[I],f);x(a,q,m);g+=f+m}return g}function G(a,b){var c=3*a.scalefac_band.s[3];c>b.big_values&&(c=b.big_values);var e=u(a,b.table_select[0],0,c,b);return e+=u(a,b.table_select[1],c,b.big_values,b)}function d(a,b){var c=b.big_values;var e=b.region0_count+1;var h=a.scalefac_band.l[e];
e+=b.region1_count+1;var d=a.scalefac_band.l[e];h>c&&(h=c);d>c&&(d=c);e=u(a,b.table_select[0],0,h,b);e+=u(a,b.table_select[1],h,d,b);return e+=u(a,b.table_select[2],d,c,b)}function c(){this.total=0}function w(b,c){var e=b.internal_flags;var d=e.w_ptr;var h=e.h_ptr-1;-1==h&&(h=ia.MAX_HEADER_BUF-1);var f=e.header[h].write_timing-g;c.total=f;if(0<=f){var m=1+h-d;h<d&&(m=1+h-d+ia.MAX_HEADER_BUF);f-=8*m*e.sideinfo_len}b=a.getframebits(b);f+=b;c.total+=b;c.total=0!=c.total%8?1+c.total/8:c.total/8;c.total+=
t+1;0>f&&S.err.println("strange error flushing buffer ... \n");return f}var a=this,b=null,B=null,e=null,l=null;this.setModules=function(a,c,d,f){b=a;B=c;e=d;l=f};var q=null,g=0,t=0,D=0;this.getframebits=function(a){var b=a.internal_flags;return 8*(0|72E3*(a.version+1)*(0!=b.bitrate_index?v.bitrate_table[a.version][b.bitrate_index]:a.brate)/a.out_samplerate+b.padding)};this.CRC_writeheader=function(a,b){var c=K(b[2]&255,65535);c=K(b[3]&255,c);for(var e=6;e<a.sideinfo_len;e++)c=K(b[e]&255,c);b[4]=byte(c>>
8);b[5]=byte(c&255)};this.flush_bitstream=function(a){var e=a.internal_flags,d;var f=e.l3_side;0>(d=w(a,new c))||(k(a,d),e.ResvSize=0,f.main_data_begin=0,e.findReplayGain&&(f=b.GetTitleGain(e.rgdata),e.RadioGain=Math.floor(10*f+.5)|0),e.findPeakSample&&(e.noclipGainChange=Math.ceil(200*Math.log10(e.PeakSample/32767))|0,0<e.noclipGainChange?EQ(a.scale,1)||EQ(a.scale,0)?e.noclipScale=Math.floor(32767/e.PeakSample*100)/100:e.noclipScale=-1:e.noclipScale=-1))};this.add_dummy_byte=function(a,b,c){a=a.internal_flags;
for(var e;0<c--;){e=b;for(var h=8;0<h;){0==D&&(D=8,t++,q[t]=0);var d=Math.min(h,D);h-=d;D-=d;q[t]|=e>>h<<D;g+=d}for(e=0;e<ia.MAX_HEADER_BUF;++e)a.header[e].write_timing+=8}};this.format_bitstream=function(a){var b=a.internal_flags;var e=b.l3_side;var m=this.getframebits(a);k(a,e.resvDrain_pre);var h,p=a.internal_flags,l,q;var t=p.l3_side;p.header[p.h_ptr].ptr=0;qa.fill(p.header[p.h_ptr].buf,0,p.sideinfo_len,0);16E3>a.out_samplerate?r(p,4094,12):r(p,4095,12);r(p,a.version,1);r(p,1,2);r(p,a.error_protection?
0:1,1);r(p,p.bitrate_index,4);r(p,p.samplerate_index,2);r(p,p.padding,1);r(p,a.extension,1);r(p,a.mode.ordinal(),2);r(p,p.mode_ext,2);r(p,a.copyright,1);r(p,a.original,1);r(p,a.emphasis,2);a.error_protection&&r(p,0,16);if(1==a.version){r(p,t.main_data_begin,9);2==p.channels_out?r(p,t.private_bits,3):r(p,t.private_bits,5);for(q=0;q<p.channels_out;q++)for(h=0;4>h;h++)r(p,t.scfsi[q][h],1);for(l=0;2>l;l++)for(q=0;q<p.channels_out;q++)h=t.tt[l][q],r(p,h.part2_3_length+h.part2_length,12),r(p,h.big_values/
2,9),r(p,h.global_gain,8),r(p,h.scalefac_compress,4),h.block_type!=f.NORM_TYPE?(r(p,1,1),r(p,h.block_type,2),r(p,h.mixed_block_flag,1),14==h.table_select[0]&&(h.table_select[0]=16),r(p,h.table_select[0],5),14==h.table_select[1]&&(h.table_select[1]=16),r(p,h.table_select[1],5),r(p,h.subblock_gain[0],3),r(p,h.subblock_gain[1],3),r(p,h.subblock_gain[2],3)):(r(p,0,1),14==h.table_select[0]&&(h.table_select[0]=16),r(p,h.table_select[0],5),14==h.table_select[1]&&(h.table_select[1]=16),r(p,h.table_select[1],
5),14==h.table_select[2]&&(h.table_select[2]=16),r(p,h.table_select[2],5),r(p,h.region0_count,4),r(p,h.region1_count,3)),r(p,h.preflag,1),r(p,h.scalefac_scale,1),r(p,h.count1table_select,1)}else for(r(p,t.main_data_begin,8),r(p,t.private_bits,p.channels_out),q=l=0;q<p.channels_out;q++)h=t.tt[l][q],r(p,h.part2_3_length+h.part2_length,12),r(p,h.big_values/2,9),r(p,h.global_gain,8),r(p,h.scalefac_compress,9),h.block_type!=f.NORM_TYPE?(r(p,1,1),r(p,h.block_type,2),r(p,h.mixed_block_flag,1),14==h.table_select[0]&&
(h.table_select[0]=16),r(p,h.table_select[0],5),14==h.table_select[1]&&(h.table_select[1]=16),r(p,h.table_select[1],5),r(p,h.subblock_gain[0],3),r(p,h.subblock_gain[1],3),r(p,h.subblock_gain[2],3)):(r(p,0,1),14==h.table_select[0]&&(h.table_select[0]=16),r(p,h.table_select[0],5),14==h.table_select[1]&&(h.table_select[1]=16),r(p,h.table_select[1],5),14==h.table_select[2]&&(h.table_select[2]=16),r(p,h.table_select[2],5),r(p,h.region0_count,4),r(p,h.region1_count,3)),r(p,h.scalefac_scale,1),r(p,h.count1table_select,
1);a.error_protection&&CRC_writeheader(p,p.header[p.h_ptr].buf);t=p.h_ptr;p.h_ptr=t+1&ia.MAX_HEADER_BUF-1;p.header[p.h_ptr].write_timing=p.header[t].write_timing+m;p.h_ptr==p.w_ptr&&S.err.println("Error: MAX_HEADER_BUF too small in bitstream.c \n");var p=8*b.sideinfo_len,D,B=0,u=a.internal_flags,I=u.l3_side;if(1==a.version)for(q=0;2>q;q++)for(h=0;h<u.channels_out;h++){t=I.tt[q][h];var H=fb.slen1_tab[t.scalefac_compress];var M=fb.slen2_tab[t.scalefac_compress];for(l=D=0;l<t.sfbdivide;l++)-1!=t.scalefac[l]&&
(x(u,t.scalefac[l],H),D+=H);for(;l<t.sfbmax;l++)-1!=t.scalefac[l]&&(x(u,t.scalefac[l],M),D+=M);D=t.block_type==f.SHORT_TYPE?D+G(u,t):D+d(u,t);D+=C(u,t);B+=D}else for(h=q=0;h<u.channels_out;h++){t=I.tt[q][h];var Q,V=0;var N=l=D=0;if(t.block_type==f.SHORT_TYPE){for(;4>N;N++)for(M=t.sfb_partition_table[N]/3,H=t.slen[N],Q=0;Q<M;Q++,l++)x(u,Math.max(t.scalefac[3*l+0],0),H),x(u,Math.max(t.scalefac[3*l+1],0),H),x(u,Math.max(t.scalefac[3*l+2],0),H),V+=3*H;D+=G(u,t)}else{for(;4>N;N++)for(M=t.sfb_partition_table[N],
H=t.slen[N],Q=0;Q<M;Q++,l++)x(u,Math.max(t.scalefac[l],0),H),V+=H;D+=d(u,t)}D+=C(u,t);B+=V+D}p+=B;k(a,e.resvDrain_post);p+=e.resvDrain_post;e.main_data_begin+=(m-p)/8;w(a,new c)!=b.ResvSize&&S.err.println("Internal buffer inconsistency. flushbits <> ResvSize");8*e.main_data_begin!=b.ResvSize&&(S.err.printf("bit reservoir error: \nl3_side.main_data_begin: %d \nResvoir size: %d \nresv drain (post) %d \nresv drain (pre) %d \nheader and sideinfo: %d \ndata bits: %d \ntotal bits: %d (remainder: %d) \nbitsperframe: %d \n",
8*e.main_data_begin,b.ResvSize,e.resvDrain_post,e.resvDrain_pre,8*b.sideinfo_len,p-e.resvDrain_post-8*b.sideinfo_len,p,p%8,m),S.err.println("This is a fatal error. It has several possible causes:"),S.err.println("90%% LAME compiled with buggy version of gcc using advanced optimizations"),S.err.println(" 9%% Your system is overclocked"),S.err.println(" 1%% bug in LAME encoding library"),b.ResvSize=8*e.main_data_begin);if(1E9<g){for(a=0;a<ia.MAX_HEADER_BUF;++a)b.header[a].write_timing-=g;g=0}return 0};
this.copy_buffer=function(a,c,e,d,h){var f=t+1;if(0>=f)return 0;if(0!=d&&f>d)return-1;S.arraycopy(q,0,c,e,f);t=-1;D=0;if(0!=h&&(d=U(1),d[0]=a.nMusicCRC,l.updateMusicCRC(d,c,e,f),a.nMusicCRC=d[0],0<f&&(a.VBR_seek_table.nBytesWritten+=f),a.decode_on_the_fly)){d=ha([2,1152]);h=f;for(var g=-1,m;0!=g;)if(g=B.hip_decode1_unclipped(a.hip,c,e,h,d[0],d[1]),h=0,-1==g&&(g=0),0<g){if(a.findPeakSample){for(m=0;m<g;m++)d[0][m]>a.PeakSample?a.PeakSample=d[0][m]:-d[0][m]>a.PeakSample&&(a.PeakSample=-d[0][m]);if(1<
a.channels_out)for(m=0;m<g;m++)d[1][m]>a.PeakSample?a.PeakSample=d[1][m]:-d[1][m]>a.PeakSample&&(a.PeakSample=-d[1][m])}if(a.findReplayGain&&b.AnalyzeSamples(a.rgdata,d[0],0,d[1],0,g,a.channels_out)==ca.GAIN_ANALYSIS_ERROR)return-6}}return f};this.init_bit_stream_w=function(a){q=new Int8Array(W.LAME_MAXMP3BUFFER);a.h_ptr=a.w_ptr=0;a.header[a.h_ptr].write_timing=0;t=-1;g=D=0}}function ba(f,k,r,v){this.xlen=f;this.linmax=k;this.table=r;this.hlen=v}function Fa(f){this.bits=f}function Fb(){this.bits=
this.over_SSD=this.over_count=this.max_noise=this.tot_noise=this.over_noise=0}function yc(){this.setModules=function(f,k){}}function zc(){this.floor=this.decay=this.adjustLimit=this.adjust=this.aaSensitivityP=this.useAdjust=0;this.l=G(f.SBMAX_l);this.s=G(f.SBMAX_s);this.psfb21=G(f.PSFB21);this.psfb12=G(f.PSFB12);this.cb_l=G(f.CBANDS);this.cb_s=G(f.CBANDS);this.eql_w=G(f.BLKSIZE/2)}function Ac(){this.scale_right=this.scale_left=this.scale=this.out_samplerate=this.in_samplerate=this.num_channels=this.num_samples=
this.class_id=0;this.decode_only=this.bWriteVbrTag=this.analysis=!1;this.quality=0;this.mode=ka.STEREO;this.write_id3tag_automatic=this.decode_on_the_fly=this.findReplayGain=this.free_format=this.force_ms=!1;this.error_protection=this.emphasis=this.extension=this.original=this.copyright=this.compression_ratio=this.brate=0;this.disable_reservoir=this.strict_ISO=!1;this.quant_comp_short=this.quant_comp=0;this.experimentalY=!1;this.preset=this.exp_nspsytune=this.experimentalZ=0;this.VBR=null;this.maskingadjust_short=
this.maskingadjust=this.highpasswidth=this.lowpasswidth=this.highpassfreq=this.lowpassfreq=this.VBR_hard_min=this.VBR_max_bitrate_kbps=this.VBR_min_bitrate_kbps=this.VBR_mean_bitrate_kbps=this.VBR_q=this.VBR_q_frac=0;this.noATH=this.ATHshort=this.ATHonly=!1;this.athaa_sensitivity=this.athaa_loudapprox=this.athaa_type=this.ATHlower=this.ATHcurve=this.ATHtype=0;this.short_blocks=null;this.useTemporal=!1;this.msfix=this.interChRatio=0;this.tune=!1;this.lame_allocated_gfp=this.frameNum=this.framesize=
this.encoder_padding=this.encoder_delay=this.version=this.tune_value_a=0;this.internal_flags=null}function Bc(x){this.quantize=x;this.iteration_loop=function(k,r,x,v){var u=k.internal_flags,C=G(ra.SFBMAX),d=G(576),c=U(2),w=u.l3_side;var a=new Fa(0);this.quantize.rv.ResvFrameBegin(k,a);a=a.bits;for(var b=0;b<u.mode_gr;b++){var B=this.quantize.qupvt.on_pe(k,r,c,a,b,b);u.mode_ext==f.MPG_MD_MS_LR&&(this.quantize.ms_convert(u.l3_side,b),this.quantize.qupvt.reduce_side(c,x[b],a,B));for(B=0;B<u.channels_out;B++){var e=
w.tt[b][B];if(e.block_type!=f.SHORT_TYPE){var l=0;l=u.PSY.mask_adjust-l}else l=0,l=u.PSY.mask_adjust_short-l;u.masking_lower=Math.pow(10,.1*l);this.quantize.init_outer_loop(u,e);this.quantize.init_xrpow(u,e,d)&&(this.quantize.qupvt.calc_xmin(k,v[b][B],e,C),this.quantize.outer_loop(k,e,C,d,B,c[B]));this.quantize.iteration_finish_one(u,b,B)}}this.quantize.rv.ResvFrameEnd(u,a)}}function Cc(){this.linprebuf=G(2*ca.MAX_ORDER);this.linpre=0;this.lstepbuf=G(ca.MAX_SAMPLES_PER_WINDOW+ca.MAX_ORDER);this.lstep=
0;this.loutbuf=G(ca.MAX_SAMPLES_PER_WINDOW+ca.MAX_ORDER);this.lout=0;this.rinprebuf=G(2*ca.MAX_ORDER);this.rinpre=0;this.rstepbuf=G(ca.MAX_SAMPLES_PER_WINDOW+ca.MAX_ORDER);this.rstep=0;this.routbuf=G(ca.MAX_SAMPLES_PER_WINDOW+ca.MAX_ORDER);this.first=this.freqindex=this.rsum=this.lsum=this.totsamp=this.sampleWindow=this.rout=0;this.A=U(0|ca.STEPS_per_dB*ca.MAX_dB);this.B=U(0|ca.STEPS_per_dB*ca.MAX_dB)}function ma(x,k,r,v){this.l=U(1+f.SBMAX_l);this.s=U(1+f.SBMAX_s);this.psfb21=U(1+f.PSFB21);this.psfb12=
U(1+f.PSFB12);var C=this.l,u=this.s;4==arguments.length&&(this.arrL=arguments[0],this.arrS=arguments[1],this.arr21=arguments[2],this.arr12=arguments[3],S.arraycopy(this.arrL,0,C,0,Math.min(this.arrL.length,this.l.length)),S.arraycopy(this.arrS,0,u,0,Math.min(this.arrS.length,this.s.length)),S.arraycopy(this.arr21,0,this.psfb21,0,Math.min(this.arr21.length,this.psfb21.length)),S.arraycopy(this.arr12,0,this.psfb12,0,Math.min(this.arr12.length,this.psfb12.length)))}function Y(){function x(a,b){b=C.ATHformula(b,
a);return b=Math.pow(10,(b-100)/10+a.ATHlower)}function k(a){this.s=a}var r=null,v=null,C=null;this.setModules=function(a,b,c){r=a;v=b;C=c};this.IPOW20=function(b){return a[b]};var u=Y.IXMAX_VAL+2,fa=Y.Q_MAX,d=Y.Q_MAX2;this.nr_of_sfb_block=[[[6,5,5,5],[9,9,9,9],[6,9,9,9]],[[6,5,7,3],[9,9,12,6],[6,9,12,6]],[[11,10,0,0],[18,18,0,0],[15,18,0,0]],[[7,7,7,0],[12,12,12,0],[6,15,12,0]],[[6,6,6,3],[12,9,9,6],[6,12,9,6]],[[8,8,5,0],[15,12,9,0],[6,18,9,0]]];var c=[0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,
0];this.pretab=c;this.sfBandIndex=[new ma([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,24,32,42,56,74,100,132,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ma([0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,332,394,464,540,576],[0,4,8,12,18,26,36,48,62,80,104,136,180,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ma([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,
0,0,0,0,0],[0,0,0,0,0,0,0]),new ma([0,4,8,12,16,20,24,30,36,44,52,62,74,90,110,134,162,196,238,288,342,418,576],[0,4,8,12,16,22,30,40,52,66,84,106,136,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ma([0,4,8,12,16,20,24,30,36,42,50,60,72,88,106,128,156,190,230,276,330,384,576],[0,4,8,12,16,22,28,38,50,64,80,100,126,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ma([0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576],[0,4,8,12,16,22,30,42,58,78,104,138,180,192],[0,0,0,0,0,0,0],[0,0,
0,0,0,0,0]),new ma([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ma([0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576],[0,4,8,12,18,26,36,48,62,80,104,134,174,192],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]),new ma([0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576],[0,8,16,24,36,52,72,96,124,160,162,164,166,192],[0,0,0,0,0,0,0],[0,
0,0,0,0,0,0])];var w=G(fa+d+1),a=G(fa),b=G(u),B=G(u);this.adj43=B;this.iteration_init=function(c){var e=c.internal_flags,q=e.l3_side;if(0==e.iteration_init_init){e.iteration_init_init=1;q.main_data_begin=0;for(var g,t,k=c.internal_flags.ATH.l,m=c.internal_flags.ATH.psfb21,n=c.internal_flags.ATH.s,z=c.internal_flags.ATH.psfb12,E=c.internal_flags,h=c.out_samplerate,p=0;p<f.SBMAX_l;p++)for(t=E.scalefac_band.l[p],q=E.scalefac_band.l[p+1],k[p]=sb.MAX_VALUE;t<q;t++)g=t*h/1152,g=x(c,g),k[p]=Math.min(k[p],
g);for(p=0;p<f.PSFB21;p++)for(t=E.scalefac_band.psfb21[p],q=E.scalefac_band.psfb21[p+1],m[p]=sb.MAX_VALUE;t<q;t++)g=t*h/1152,g=x(c,g),m[p]=Math.min(m[p],g);for(p=0;p<f.SBMAX_s;p++){t=E.scalefac_band.s[p];q=E.scalefac_band.s[p+1];for(n[p]=sb.MAX_VALUE;t<q;t++)g=t*h/384,g=x(c,g),n[p]=Math.min(n[p],g);n[p]*=E.scalefac_band.s[p+1]-E.scalefac_band.s[p]}for(p=0;p<f.PSFB12;p++){t=E.scalefac_band.psfb12[p];q=E.scalefac_band.psfb12[p+1];for(z[p]=sb.MAX_VALUE;t<q;t++)g=t*h/384,g=x(c,g),z[p]=Math.min(z[p],g);
z[p]*=E.scalefac_band.s[13]-E.scalefac_band.s[12]}if(c.noATH){for(p=0;p<f.SBMAX_l;p++)k[p]=1E-20;for(p=0;p<f.PSFB21;p++)m[p]=1E-20;for(p=0;p<f.SBMAX_s;p++)n[p]=1E-20;for(p=0;p<f.PSFB12;p++)z[p]=1E-20}E.ATH.floor=10*Math.log10(x(c,-1));b[0]=0;for(q=1;q<u;q++)b[q]=Math.pow(q,4/3);for(q=0;q<u-1;q++)B[q]=q+1-Math.pow(.5*(b[q]+b[q+1]),.75);B[q]=.5;for(q=0;q<fa;q++)a[q]=Math.pow(2,-.1875*(q-210));for(q=0;q<=fa+d;q++)w[q]=Math.pow(2,.25*(q-210-d));r.huffman_init(e);q=c.exp_nspsytune>>2&63;32<=q&&(q-=64);
k=Math.pow(10,q/4/10);q=c.exp_nspsytune>