define(function(require,exports,module){function r(e){return E(l(b(e),e.length*n))}function i(e){return S(l(b(e),e.length*n))}function s(e){return w(l(b(e),e.length*n))}function o(e,t){return E(m(e,t))}function u(e,t){return S(m(e,t))}function a(e,t){return w(m(e,t))}function f(){return r("abc")=="900150983cd24fb0d6963f7d28e17f72"}function l(e,t){e[t>>5]|=128<>>9<<4)+14]=t;var n=1732584193,r=-271733879,i=-1732584194,s=271733878;for(var o=0;o16&&(r=l(r,e.length*n));var i=Array(16),s=Array(16);for(var o=0;o<16;o++)i[o]=r[o]^909522486,s[o]=r[o]^1549556828;var u=l(i.concat(b(t)),512+t.length*n);return l(s.concat(u),640)}function g(e,t){var n=(e&65535)+(t&65535),r=(e>>16)+(t>>16)+(n>>16);return r<<16|n&65535}function y(e,t){return e<>>32-t}function b(e){var t=Array(),r=(1<>5]|=(e.charCodeAt(i/n)&r)<>5]>>>i%32&r);return t}function E(t){var n=e?"0123456789ABCDEF":"0123456789abcdef",r="";for(var i=0;i>2]>>i%4*8+4&15)+n.charAt(t[i>>2]>>i%4*8&15);return r}function S(e){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="";for(var i=0;i>2]>>8*(i%4)&255)<<16|(e[i+1>>2]>>8*((i+1)%4)&255)<<8|e[i+2>>2]>>8*((i+2)%4)&255;for(var o=0;o<4;o++)i*8+o*6>e.length*32?r+=t:r+=n.charAt(s>>6*(3-o)&63)}return r}function x(e){function t(e,t){return e<>>32-t}function n(e,t){var n,r,i,s,o;return i=e&2147483648,s=t&2147483648,n=e&1073741824,r=t&1073741824,o=(e&1073741823)+(t&1073741823),n&r?o^2147483648^i^s:n|r?o&1073741824?o^3221225472^i^s:o^1073741824^i^s:o^i^s}function r(e,t,n){return e&t|~e&n}function i(e,t,n){return e&n|t&~n}function s(e,t,n){return e^t^n}function o(e,t,n){return t^(e|~n)}function u(e,i,s,o,u,a,f){return e=n(e,n(n(r(i,s,o),u),f)),n(t(e,a),i)}function a(e,r,s,o,u,a,f){return e=n(e,n(n(i(r,s,o),u),f)),n(t(e,a),r)}function f(e,r,i,o,u,a,f){return e=n(e,n(n(s(r,i,o),u),f)),n(t(e,a),r)}function l(e,r,i,s,u,a,f){return e=n(e,n(n(o(r,i,s),u),f)),n(t(e,a),r)}function c(e){var t,n=e.length,r=n+8,i=(r-r%64)/64,s=(i+1)*16,o=Array(s-1),u=0,a=0;while(a>>29,o}function h(e){var t="",n="",r,i;for(i=0;i<=3;i++)r=e>>>i*8&255,n="0"+r.toString(16),t+=n.substr(n.length-2,2);return t}function p(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(r&63|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(r&63|128))}return t}var d=Array(),v,m,g,y,b,w,E,S,x,T=7,N=12,C=17,k=22,L=5,A=9,O=14,M=20,_=4,D=11,P=16,H=23,B=6,j=10,F=15,I=21;e=p(e),d=c(e),w=1732584193,E=4023233417,S=2562383102,x=271733878;for(v=0;v>>32-t;return n}function n(e){var t="",n,r,i;for(n=0;n<=6;n+=2)r=e>>>n*4+4&15,i=e>>>n*4&15,t+=r.toString(16)+i.toString(16);return t}function r(e){var t="",n,r;for(n=7;n>=0;n--)r=e>>>n*4&15,t+=r.toString(16);return t}function i(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(r&63|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(r&63|128))}return t}var s,o,u,a=new Array(80),f=1732584193,l=4023233417,c=2562383102,h=271733878,p=3285377520,d,v,m,g,y,b;e=i(e);var w=e.length,E=new Array;for(o=0;o>>29),E.push(w<<3&4294967295);for(s=0;s>2),n+=t.charAt((s&3)<<4),n+="==";break}o=e.charCodeAt(r++);if(r==i){n+=t.charAt(s>>2),n+=t.charAt((s&3)<<4|(o&240)>>4),n+=t.charAt((o&15)<<2),n+="=";break}u=e.charCodeAt(r++),n+=t.charAt(s>>2),n+=t.charAt((s&3)<<4|(o&240)>>4),n+=t.charAt((o&15)<<2|(u&192)>>6),n+=t.charAt(u&63)}return n}function C(e){var t=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1),n,r,i,s,o,u,a;u=e.length,o=0,a="";while(o>4);do{i=e.charCodeAt(o++)&255;if(i==61)return a;i=t[i]}while(o>2);do{s=e.charCodeAt(o++)&255;if(s==61)return a;s=t[s]}while(o=s)break;n+=String.fromCharCode(e.charCodeAt(r)^t.charCodeAt(r))}return n}exports.xor=k,exports.sha1=T,exports.hex_md5=r,exports.base64encode=N;var e=0,t="",n=8});