function array(a){for(i=0;i<a;i++){this[i]=0}this.length=a}function integer(a){return a%(4294967295+1)}function shr(d,c){d=integer(d);c=integer(c);if(d-2147483648>=0){d=d%2147483648;d>>=c;d+=1073741824>>(c-1)}else{d>>=c}return d}function shl1(b){b=b%2147483648;if(b&1073741824==1073741824){b-=1073741824;b*=2;b+=2147483648}else{b*=2}return b}function shl(d,c){d=integer(d);c=integer(c);for(var e=0;e<c;e++){d=shl1(d)}return d}function and(d,c){d=integer(d);c=integer(c);var f=(d-2147483648);var e=(c-2147483648);if(f>=0){if(e>=0){return((f&e)+2147483648)}else{return(f&c)}}else{if(e>=0){return(d&e)}else{return(d&c)}}}function or(d,c){d=integer(d);c=integer(c);var f=(d-2147483648);var e=(c-2147483648);if(f>=0){if(e>=0){return((f|e)+2147483648)}else{return((f|c)+2147483648)}}else{if(e>=0){return((d|e)+2147483648)}else{return(d|c)}}}function xor(d,c){d=integer(d);c=integer(c);var f=(d-2147483648);var e=(c-2147483648);if(f>=0){if(e>=0){return(f^e)}else{return((f^c)+2147483648)}}else{if(e>=0){return((d^e)+2147483648)}else{return(d^c)}}}function not(b){b=integer(b);return(4294967295-b)}var state=new array(4);var count=new array(2);count[0]=0;count[1]=0;var buffer=new array(64);var transformBuffer=new array(16);var digestBits=new array(16);var S11=7;var S12=12;var S13=17;var S14=22;var S21=5;var S22=9;var S23=14;var S24=20;var S31=4;var S32=11;var S33=16;var S34=23;var S41=6;var S42=10;var S43=15;var S44=21;function F(a,c,b){return or(and(a,c),and(not(a),b))}function G(a,c,b){return or(and(a,b),and(c,not(b)))}function H(a,c,b){return xor(xor(a,c),b)}function I(a,c,b){return xor(c,or(a,not(b)))}function rotateLeft(b,c){return or(shl(b,c),(shr(b,(32-c))))}function FF(g,f,m,l,e,h,k){g=g+F(f,m,l)+e+k;g=rotateLeft(g,h);g=g+f;return g}function GG(g,f,m,l,e,h,k){g=g+G(f,m,l)+e+k;g=rotateLeft(g,h);g=g+f;return g}function HH(g,f,m,l,e,h,k){g=g+H(f,m,l)+e+k;g=rotateLeft(g,h);g=g+f;return g}function II(g,f,m,l,e,h,k){g=g+I(f,m,l)+e+k;g=rotateLeft(g,h);g=g+f;return g}function transform(h,l){var g=0,f=0,m=0,k=0;var e=transformBuffer;g=state[0];f=state[1];m=state[2];k=state[3];for(i=0;i<16;i++){e[i]=and(h[i*4+l],255);for(j=1;j<4;j++){e[i]+=shl(and(h[i*4+j+l],255),j*8)}}g=FF(g,f,m,k,e[0],S11,3614090360);k=FF(k,g,f,m,e[1],S12,3905402710);m=FF(m,k,g,f,e[2],S13,606105819);f=FF(f,m,k,g,e[3],S14,3250441966);g=FF(g,f,m,k,e[4],S11,4118548399);k=FF(k,g,f,m,e[5],S12,1200080426);m=FF(m,k,g,f,e[6],S13,2821735955);f=FF(f,m,k,g,e[7],S14,4249261313);g=FF(g,f,m,k,e[8],S11,1770035416);k=FF(k,g,f,m,e[9],S12,2336552879);m=FF(m,k,g,f,e[10],S13,4294925233);f=FF(f,m,k,g,e[11],S14,2304563134);g=FF(g,f,m,k,e[12],S11,1804603682);k=FF(k,g,f,m,e[13],S12,4254626195);m=FF(m,k,g,f,e[14],S13,2792965006);f=FF(f,m,k,g,e[15],S14,1236535329);g=GG(g,f,m,k,e[1],S21,4129170786);k=GG(k,g,f,m,e[6],S22,3225465664);m=GG(m,k,g,f,e[11],S23,643717713);f=GG(f,m,k,g,e[0],S24,3921069994);g=GG(g,f,m,k,e[5],S21,3593408605);k=GG(k,g,f,m,e[10],S22,38016083);m=GG(m,k,g,f,e[15],S23,3634488961);f=GG(f,m,k,g,e[4],S24,3889429448);g=GG(g,f,m,k,e[9],S21,568446438);k=GG(k,g,f,m,e[14],S22,3275163606);m=GG(m,k,g,f,e[3],S23,4107603335);f=GG(f,m,k,g,e[8],S24,1163531501);g=GG(g,f,m,k,e[13],S21,2850285829);k=GG(k,g,f,m,e[2],S22,4243563512);m=GG(m,k,g,f,e[7],S23,1735328473);f=GG(f,m,k,g,e[12],S24,2368359562);g=HH(g,f,m,k,e[5],S31,4294588738);k=HH(k,g,f,m,e[8],S32,2272392833);m=HH(m,k,g,f,e[11],S33,1839030562);f=HH(f,m,k,g,e[14],S34,4259657740);g=HH(g,f,m,k,e[1],S31,2763975236);k=HH(k,g,f,m,e[4],S32,1272893353);m=HH(m,k,g,f,e[7],S33,4139469664);f=HH(f,m,k,g,e[10],S34,3200236656);g=HH(g,f,m,k,e[13],S31,681279174);k=HH(k,g,f,m,e[0],S32,3936430074);m=HH(m,k,g,f,e[3],S33,3572445317);f=HH(f,m,k,g,e[6],S34,76029189);g=HH(g,f,m,k,e[9],S31,3654602809);k=HH(k,g,f,m,e[12],S32,3873151461);m=HH(m,k,g,f,e[15],S33,530742520);f=HH(f,m,k,g,e[2],S34,3299628645);g=II(g,f,m,k,e[0],S41,4096336452);k=II(k,g,f,m,e[7],S42,1126891415);m=II(m,k,g,f,e[14],S43,2878612391);f=II(f,m,k,g,e[5],S44,4237533241);g=II(g,f,m,k,e[12],S41,1700485571);k=II(k,g,f,m,e[3],S42,2399980690);m=II(m,k,g,f,e[10],S43,4293915773);f=II(f,m,k,g,e[1],S44,2240044497);g=II(g,f,m,k,e[8],S41,1873313359);k=II(k,g,f,m,e[15],S42,4264355552);m=II(m,k,g,f,e[6],S43,2734768916);f=II(f,m,k,g,e[13],S44,1309151649);g=II(g,f,m,k,e[4],S41,4149444226);k=II(k,g,f,m,e[11],S42,3174756917);m=II(m,k,g,f,e[2],S43,718787259);f=II(f,m,k,g,e[9],S44,3951481745);state[0]+=g;state[1]+=f;state[2]+=m;state[3]+=k}function init(){count[0]=count[1]=0;state[0]=1732584193;state[1]=4023233417;state[2]=2562383102;state[3]=271733878;for(i=0;i<digestBits.length;i++){digestBits[i]=0}}function update(a){var c,d;c=and(shr(count[0],3),63);if(count[0]<4294967295-7){count[0]+=8}else{count[1]++;count[0]-=4294967295+1;count[0]+=8}buffer[c]=and(a,255);if(c>=63){transform(buffer,0)}}function finish(){var d=new array(8);var e;var c=0,b=0,a=0;for(c=0;c<4;c++){d[c]=and(shr(count[0],(c*8)),255)}for(c=0;c<4;c++){d[c+4]=and(shr(count[1],(c*8)),255)}b=and(shr(count[0],3),63);a=(b<56)?(56-b):(120-b);e=new array(64);e[0]=128;for(c=0;c<a;c++){update(e[c])}for(c=0;c<8;c++){update(d[c])}for(c=0;c<4;c++){for(j=0;j<4;j++){digestBits[c*4+j]=and(shr(state[c],(j*8)),255)}}}function hexa(d){var c="0123456789abcdef";var a="";var b=d;for(hexa_i=0;hexa_i<8;hexa_i++){a=c.charAt(Math.abs(b)%16)+a;b=Math.floor(b/16)}return a}var ascii="01234567890123456789012345678901 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";function MD5(a){var b,g,c,h,f,e,d;init();for(c=0;c<a.length;c++){b=a.charAt(c);update(ascii.lastIndexOf(b))}finish();h=f=e=d=0;for(i=0;i<4;i++){h+=shl(digestBits[15-i],(i*8))}for(i=4;i<8;i++){f+=shl(digestBits[15-i],((i-4)*8))}for(i=8;i<12;i++){e+=shl(digestBits[15-i],((i-8)*8))}for(i=12;i<16;i++){d+=shl(digestBits[15-i],((i-12)*8))}g=hexa(d)+hexa(e)+hexa(f)+hexa(h);return g};
