{"version":3,"sources":["webpack:///./node_modules/tweetnacl/nacl-fast.js"],"names":["nacl","gf","init","i","r","Float64Array","length","randombytes","Error","_0","Uint8Array","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","vn","xi","y","yi","n","d","crypto_verify_16","crypto_verify_32","core_salsa20","o","p","k","c","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_hsalsa20","crypto_core_salsa20","out","inp","crypto_core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","m","mpos","b","z","crypto_stream_salsa20","crypto_stream","s","sn","crypto_stream_xor","poly1305","key","t0","t1","t2","t3","t4","t5","t6","t7","this","buffer","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","a","car25519","v","Math","floor","sel25519","q","t","pack25519","j","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","e","f","x32","subarray","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","prototype","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_box_open_afternm","crypto_box","crypto_box_open","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","unpackneg","chk","num","den","den2","den4","den6","crypto_sign_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","checkLengths","checkBoxLengths","checkArrayTypes","arguments","TypeError","cleanup","arr","lowlevel","randomBytes","secretbox","msg","nonce","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","crypto","self","msCrypto","getRandomValues","QUOTA","min","module","exports"],"mappings":"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","file":"js/npm.tweetnacl~fc7dd5db.169623be.js","sourcesContent":["(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n"],"sourceRoot":""}