(function(q,ha){var ca="undefined"!=typeof module;ca&&(q=global);var p="0123456789abcdef".split(""),ba=[24,16,8,0],da=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139, 264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411, 3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900, 3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],r=function(f,l){return Q(f,512,l)},ea=function(f,l){return Q(f,384,l)},fa=function(f,l){return Q(f,256,l)},ga=function(f,l){return Q(f,224,l)},Q=function(f,p,m){var n,A,B,C,D,E,F,G, H,I,J,K,L,M,N,O;if(!m&&/[^\x00-\x7F]/.test(f)){m=[];for(var t=0,d=0;da?m[t++]=a:(2048>a?m[t++]=192|a>>6:(55296>a||57344<=a?m[t++]=224|a>>12:(a=65536+((a&1023)<<10|f.charCodeAt(++d)&1023),m[t++]=240|a>>18,m[t++]=128|a>>12&63),m[t++]=128|a>>6&63),m[t++]=128|a&63)}f=m.length;t=(f+16>>7)+1<<5;d=[];for(a=0;a>2]|=m[a]<>2]|=128<>7)+1<<5;d=[];for(a=0;a>2]|=f.charCodeAt(a)<>2]|=128<h;++h)d[h]=f[m+h];for(h=32;160>h;h+=2)g=d[h-30],k=d[h-29],P=(g>>>1|k<<31)^(g>>>8|k<<24)^g>>>7,b=(k>>>1|g<<31)^(k>>>8|g<<24)^(k>>>7|g<<25),g=d[h-4],k=d[h-3],y=(g>>>19|k<<13)^(k>>>29|g<<3)^g>>>6,z=(k>>>19|g<<13)^(g>>>29|k<<3)^(k>>>6|g<<26),g=d[h-32],k=d[h-31],a=(k&65535)+(b&65535)+(z&65535),b=(k>>>16)+(b>>>16)+(z>>>16),c=(g&65535)+(P&65535)+(y&65535),e=(g>>>16)+(P>>>16)+(y>>>16),g=d[h-14],k=d[h-13],a+=k&65535,b+=(k>>>16)+(a>>>16),c+=(g&65535)+(b>>>16),e+=(g>>>16)+(c>>>16),d[h]= e<<16|c&65535,d[h+1]=b<<16|a&65535;u=n;v=A;q=B;r=C;R=D;S=E;T=F;U=G;w=H;x=I;V=J;W=K;X=L;Y=M;Z=N;aa=O;for(h=0;160>h;h+=2)P=(u>>>28|v<<4)^(v>>>2|u<<30)^(v>>>7|u<<25),b=(v>>>28|u<<4)^(u>>>2|v<<30)^(u>>>7|v<<25),y=(w>>>14|x<<18)^(w>>>18|x<<14)^(x>>>9|w<<23),z=(x>>>14|w<<18)^(x>>>18|w<<14)^(w>>>9|x<<23),g=u&q^u&R^q&R,c=v&r^v&S^r&S,a=(c&65535)+(b&65535),b=(c>>>16)+(b>>>16)+(a>>>16),c=(g&65535)+(P&65535)+(b>>>16),e=(g>>>16)+(P>>>16)+(c>>>16),P=e<<16|c&65535,Q=b<<16|a&65535,e=w&V^~w&X,b=x&W^~x&Y,g=d[h],k= d[h+1],a=(k&65535)+(b&65535)+(z&65535)+(aa&65535),b=(k>>>16)+(b>>>16)+(z>>>16)+(aa>>>16),c=(g&65535)+(e&65535)+(y&65535)+(Z&65535),e=(g>>>16)+(e>>>16)+(y>>>16)+(Z>>>16),g=da[h],k=da[h+1],a+=k&65535,b+=(k>>>16)+(a>>>16),c+=(g&65535)+(b>>>16),e+=(g>>>16)+(c>>>16),y=e<<16|c&65535,z=b<<16|a&65535,Z=X,aa=Y,X=V,Y=W,V=w,W=x,a=(U&65535)+(z&65535),b=(U>>>16)+(z>>>16)+(a>>>16),c=(T&65535)+(y&65535)+(b>>>16),e=(T>>>16)+(y>>>16)+(c>>>16),w=e<<16|c&65535,x=b<<16|a&65535,T=R,U=S,R=q,S=r,q=u,r=v,a=(Q&65535)+(z& 65535),b=(Q>>>16)+(z>>>16)+(a>>>16),c=(P&65535)+(y&65535)+(b>>>16),e=(P>>>16)+(y>>>16)+(c>>>16),u=e<<16|c&65535,v=b<<16|a&65535;a=(A&65535)+(v&65535);b=(A>>>16)+(v>>>16)+(a>>>16);c=(n&65535)+(u&65535)+(b>>>16);e=(n>>>16)+(u>>>16)+(c>>>16);n=e<<16|c&65535;A=b<<16|a&65535;a=(C&65535)+(r&65535);b=(C>>>16)+(r>>>16)+(a>>>16);c=(B&65535)+(q&65535)+(b>>>16);e=(B>>>16)+(q>>>16)+(c>>>16);B=e<<16|c&65535;C=b<<16|a&65535;a=(E&65535)+(S&65535);b=(E>>>16)+(S>>>16)+(a>>>16);c=(D&65535)+(R&65535)+(b>>>16);e=(D>>> 16)+(R>>>16)+(c>>>16);D=e<<16|c&65535;E=b<<16|a&65535;a=(G&65535)+(U&65535);b=(G>>>16)+(U>>>16)+(a>>>16);c=(F&65535)+(T&65535)+(b>>>16);e=(F>>>16)+(T>>>16)+(c>>>16);F=e<<16|c&65535;G=b<<16|a&65535;a=(I&65535)+(x&65535);b=(I>>>16)+(x>>>16)+(a>>>16);c=(H&65535)+(w&65535)+(b>>>16);e=(H>>>16)+(w>>>16)+(c>>>16);H=e<<16|c&65535;I=b<<16|a&65535;a=(K&65535)+(W&65535);b=(K>>>16)+(W>>>16)+(a>>>16);c=(J&65535)+(V&65535)+(b>>>16);e=(J>>>16)+(V>>>16)+(c>>>16);J=e<<16|c&65535;K=b<<16|a&65535;a=(M&65535)+(Y&65535); b=(M>>>16)+(Y>>>16)+(a>>>16);c=(L&65535)+(X&65535)+(b>>>16);e=(L>>>16)+(X>>>16)+(c>>>16);L=e<<16|c&65535;M=b<<16|a&65535;a=(O&65535)+(aa&65535);b=(O>>>16)+(aa>>>16)+(a>>>16);c=(N&65535)+(Z&65535)+(b>>>16);e=(N>>>16)+(Z>>>16)+(c>>>16);N=e<<16|c&65535;O=b<<16|a&65535}n=l(n)+l(A)+l(B)+l(C)+l(D)+l(E)+l(F)+l(G);if(224==p)return n.substr(0,n.length-8);384<=p&&(n+=l(H)+l(I)+l(J)+l(K));512==p&&(n+=l(L)+l(M)+l(N)+l(O));return n},l=function(f){return p[f>>28&15]+p[f>>24&15]+p[f>>20&15]+p[f>>16&15]+p[f>>12& 15]+p[f>>8&15]+p[f>>4&15]+p[f&15]};!q.JS_SHA512_TEST&&ca?(r.sha512=r,r.sha384=ea,r.sha512_256=fa,r.sha512_224=ga,module.exports=r):q&&(q.sha512=r,q.sha384=ea,q.sha512_256=fa,q.sha512_224=ga)})(this);