diff --git a/.gitignore b/.gitignore index 9f8a3d3..4637e90 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ coverage/ .vscode/ dist/trac-crypto-api.rn.js.LICENSE.txt .idea/ +dist/ +test-node/ +test-browser-esm/ +trac-crypto-api-*.tgz \ No newline at end of file diff --git a/dist/trac-crypto-api.browser.js b/dist/trac-crypto-api.browser.js deleted file mode 100644 index d0e2a22..0000000 --- a/dist/trac-crypto-api.browser.js +++ /dev/null @@ -1,156828 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('util')) : - typeof define === 'function' && define.amd ? define(['util'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.TracCryptoApi = factory(global.require$$1$2)); -})(this, (function (require$$1$2) { 'use strict'; - - var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null; - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function getAugmentedNamespace(n) { - if (Object.prototype.hasOwnProperty.call(n, '__esModule')) return n; - var f = n.default; - if (typeof f == "function") { - var a = function a () { - var isInstance = false; - try { - isInstance = this instanceof a; - } catch {} - if (isInstance) { - return Reflect.construct(f, arguments, this.constructor); - } - return f.apply(this, arguments); - }; - a.prototype = f.prototype; - } else a = {}; - Object.defineProperty(a, '__esModule', {value: true}); - Object.keys(n).forEach(function (k) { - var d = Object.getOwnPropertyDescriptor(n, k); - Object.defineProperty(a, k, d.get ? d : { - enumerable: true, - get: function () { - return n[k]; - } - }); - }); - return a; - } - - var runtime; - var hasRequiredRuntime; - - function requireRuntime () { - if (hasRequiredRuntime) return runtime; - hasRequiredRuntime = 1; - function isNode() { - if (typeof commonjsGlobal === 'undefined') return false; - const proc = commonjsGlobal.process; - return typeof proc !== 'undefined' && proc !== null && proc.versions != null && proc.versions.node != null; - } - - function isBare() { - if (typeof commonjsGlobal === 'undefined') return false; - return commonjsGlobal.Bare !== undefined || commonjsGlobal.Pear !== undefined; - } - - function isBrowser() { - return typeof window !== 'undefined' && typeof window.document !== 'undefined' - } - - runtime = { - isNode, - isBare, - isBrowser - }; - return runtime; - } - - var sodiumJavascript = {exports: {}}; - - function commonjsRequire(path) { - throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); - } - - var randombytes = {exports: {}}; - - var nanoassert; - var hasRequiredNanoassert; - - function requireNanoassert () { - if (hasRequiredNanoassert) return nanoassert; - hasRequiredNanoassert = 1; - nanoassert = assert; - - class AssertionError extends Error {} - AssertionError.prototype.name = 'AssertionError'; - - /** - * Minimal assert function - * @param {any} t Value to check if falsy - * @param {string=} m Optional assertion error message - * @throws {AssertionError} - */ - function assert (t, m) { - if (!t) { - var err = new AssertionError(m); - if (Error.captureStackTrace) Error.captureStackTrace(err, assert); - throw err - } - } - return nanoassert; - } - - var hasRequiredRandombytes; - - function requireRandombytes () { - if (hasRequiredRandombytes) return randombytes.exports; - hasRequiredRandombytes = 1; - (function (module) { - var assert = requireNanoassert(); - - var randombytes = (function () { - var QUOTA = 65536; // limit for QuotaExceededException - var crypto = globalThis.crypto || globalThis.msCrypto; - - function browserBytes (out, n) { - for (let i = 0; i < n; i += QUOTA) { - crypto.getRandomValues(new Uint8Array(out.buffer, i + out.byteOffset, Math.min(n - i, QUOTA))); - } - } - - function nodeBytes (out, n) { - new Uint8Array(out.buffer, out.byteOffset, n).set(crypto.randomBytes(n)); - } - - function noImpl () { - throw new Error('No secure random number generator available') - } - - if (crypto && crypto.getRandomValues) return browserBytes - - if (commonjsRequire != null) { - // Node.js. Bust Browserify - crypto = commonjsRequire('cry' + 'pto'); - if (crypto && crypto.randomBytes) return nodeBytes - } - - return noImpl - })(); - - // Make non enumerable as this is an internal function - Object.defineProperty(module.exports, 'randombytes', { - value: randombytes - }); - - module.exports.randombytes_buf = function (out) { - assert(out, 'out must be given'); - randombytes(out, out.byteLength); - }; - } (randombytes)); - return randombytes.exports; - } - - /* eslint-disable camelcase */ - - var memory$1; - var hasRequiredMemory; - - function requireMemory () { - if (hasRequiredMemory) return memory$1; - hasRequiredMemory = 1; - function sodium_malloc (n) { - return new Uint8Array(n) - } - - function sodium_free (n) { - sodium_memzero(n); - loadSink().port1.postMessage(n.buffer, [n.buffer]); - } - - function sodium_memzero (arr) { - arr.fill(0); - } - - var sink; - - function loadSink () { - if (sink) return sink - var MessageChannel = globalThis.MessageChannel; - if (MessageChannel == null) ({ MessageChannel } = commonjsRequire('worker' + '_threads')); - sink = new MessageChannel(); - return sink - } - - memory$1 = { - sodium_malloc, - sodium_free, - sodium_memzero - }; - return memory$1; - } - - var crypto_verify = {exports: {}}; - - /* eslint-disable camelcase */ - - var hasRequiredCrypto_verify; - - function requireCrypto_verify () { - if (hasRequiredCrypto_verify) return crypto_verify.exports; - hasRequiredCrypto_verify = 1; - (function (module) { - module.exports = { - crypto_verify_16, - crypto_verify_32, - crypto_verify_64 - }; - - function vn (x, xi, y, yi, n) { - var d = 0; - for (let i = 0; i < n; i++) d |= x[xi + i] ^ y[yi + i]; - return (1 & ((d - 1) >>> 8)) - 1 - } - - // Make non enumerable as this is an internal function - Object.defineProperty(module.exports, 'vn', { - value: vn - }); - - function crypto_verify_16 (x, xi, y, yi) { - return vn(x, xi, y, yi, 16) === 0 - } - - function crypto_verify_32 (x, xi, y, yi) { - return vn(x, xi, y, yi, 32) === 0 - } - - function crypto_verify_64 (x, xi, y, yi) { - return vn(x, xi, y, yi, 64) === 0 - } - } (crypto_verify)); - return crypto_verify.exports; - } - - /* eslint-disable camelcase */ - - var helpers$1; - var hasRequiredHelpers; - - function requireHelpers () { - if (hasRequiredHelpers) return helpers$1; - hasRequiredHelpers = 1; - const assert = requireNanoassert(); - const { vn } = requireCrypto_verify(); - - function sodium_increment (n) { - const nlen = n.byteLength; - var c = 1; - for (var i = 0; i < nlen; i++) { - c += n[i]; - n[i] = c; - c >>= 8; - } - } - - function sodium_memcmp (a, b) { - assert(a.byteLength === b.byteLength, 'buffers must be the same size'); - - return vn(a, 0, b, 0, a.byteLength) === 0 - } - - function sodium_is_zero (arr) { - var d = 0; - for (let i = 0; i < arr.length; i++) d |= arr[i]; - return d === 0 - } - - helpers$1 = { - sodium_increment, - sodium_memcmp, - sodium_is_zero - }; - return helpers$1; - } - - var sha512Universal = {exports: {}}; - - var browser$1 = {exports: {}}; - - var ascii; - var hasRequiredAscii; - - function requireAscii () { - if (hasRequiredAscii) return ascii; - hasRequiredAscii = 1; - function byteLength (string) { - return string.length - } - - function toString (buffer) { - const len = buffer.byteLength; - - let result = ''; - - for (let i = 0; i < len; i++) { - result += String.fromCharCode(buffer[i]); - } - - return result - } - - function write (buffer, string, offset = 0, length = byteLength(string)) { - const len = Math.min(length, buffer.byteLength - offset); - - for (let i = 0; i < len; i++) { - buffer[offset + i] = string.charCodeAt(i); - } - - return len - } - - ascii = { - byteLength, - toString, - write - }; - return ascii; - } - - var base64$1; - var hasRequiredBase64$1; - - function requireBase64$1 () { - if (hasRequiredBase64$1) return base64$1; - hasRequiredBase64$1 = 1; - const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - - const codes = new Uint8Array(256); - - for (let i = 0; i < alphabet.length; i++) { - codes[alphabet.charCodeAt(i)] = i; - } - - codes[/* - */ 0x2d] = 62; - codes[/* _ */ 0x5f] = 63; - - function byteLength (string) { - let len = string.length; - - if (string.charCodeAt(len - 1) === 0x3d) len--; - if (len > 1 && string.charCodeAt(len - 1) === 0x3d) len--; - - return (len * 3) >>> 2 - } - - function toString (buffer) { - const len = buffer.byteLength; - - let result = ''; - - for (let i = 0; i < len; i += 3) { - result += ( - alphabet[buffer[i] >> 2] + - alphabet[((buffer[i] & 3) << 4) | (buffer[i + 1] >> 4)] + - alphabet[((buffer[i + 1] & 15) << 2) | (buffer[i + 2] >> 6)] + - alphabet[buffer[i + 2] & 63] - ); - } - - if (len % 3 === 2) { - result = result.substring(0, result.length - 1) + '='; - } else if (len % 3 === 1) { - result = result.substring(0, result.length - 2) + '=='; - } - - return result - } - function write (buffer, string, offset = 0, length = byteLength(string)) { - const len = Math.min(length, buffer.byteLength - offset); - - for (let i = 0, j = 0; j < len; i += 4) { - const a = codes[string.charCodeAt(i)]; - const b = codes[string.charCodeAt(i + 1)]; - const c = codes[string.charCodeAt(i + 2)]; - const d = codes[string.charCodeAt(i + 3)]; - - buffer[j++] = (a << 2) | (b >> 4); - buffer[j++] = ((b & 15) << 4) | (c >> 2); - buffer[j++] = ((c & 3) << 6) | (d & 63); - } - - return len - } - base64$1 = { - byteLength, - toString, - write - }; - return base64$1; - } - - var hex$1; - var hasRequiredHex$1; - - function requireHex$1 () { - if (hasRequiredHex$1) return hex$1; - hasRequiredHex$1 = 1; - function byteLength (string) { - return string.length >>> 1 - } - - function toString (buffer) { - const len = buffer.byteLength; - - buffer = new DataView(buffer.buffer, buffer.byteOffset, len); - - let result = ''; - let i = 0; - - for (let n = len - (len % 4); i < n; i += 4) { - result += buffer.getUint32(i).toString(16).padStart(8, '0'); - } - - for (; i < len; i++) { - result += buffer.getUint8(i).toString(16).padStart(2, '0'); - } - - return result - } - - function write (buffer, string, offset = 0, length = byteLength(string)) { - const len = Math.min(length, buffer.byteLength - offset); - - for (let i = 0; i < len; i++) { - const a = hexValue(string.charCodeAt(i * 2)); - const b = hexValue(string.charCodeAt(i * 2 + 1)); - - if (a === undefined || b === undefined) { - return buffer.subarray(0, i) - } - - buffer[offset + i] = (a << 4) | b; - } - - return len - } - - hex$1 = { - byteLength, - toString, - write - }; - - function hexValue (char) { - if (char >= 0x30 && char <= 0x39) return char - 0x30 - if (char >= 0x41 && char <= 0x46) return char - 0x41 + 10 - if (char >= 0x61 && char <= 0x66) return char - 0x61 + 10 - } - return hex$1; - } - - var utf8; - var hasRequiredUtf8; - - function requireUtf8 () { - if (hasRequiredUtf8) return utf8; - hasRequiredUtf8 = 1; - function byteLength (string) { - let length = 0; - - for (let i = 0, n = string.length; i < n; i++) { - const code = string.charCodeAt(i); - - if (code >= 0xd800 && code <= 0xdbff && i + 1 < n) { - const code = string.charCodeAt(i + 1); - - if (code >= 0xdc00 && code <= 0xdfff) { - length += 4; - i++; - continue - } - } - - if (code <= 0x7f) length += 1; - else if (code <= 0x7ff) length += 2; - else length += 3; - } - - return length - } - - let toString; - - if (typeof TextDecoder !== 'undefined') { - const decoder = new TextDecoder(); - - toString = function toString (buffer) { - return decoder.decode(buffer) - }; - } else { - toString = function toString (buffer) { - const len = buffer.byteLength; - - let output = ''; - let i = 0; - - while (i < len) { - let byte = buffer[i]; - - if (byte <= 0x7f) { - output += String.fromCharCode(byte); - i++; - continue - } - - let bytesNeeded = 0; - let codePoint = 0; - - if (byte <= 0xdf) { - bytesNeeded = 1; - codePoint = byte & 0x1f; - } else if (byte <= 0xef) { - bytesNeeded = 2; - codePoint = byte & 0x0f; - } else if (byte <= 0xf4) { - bytesNeeded = 3; - codePoint = byte & 0x07; - } - - if (len - i - bytesNeeded > 0) { - let k = 0; - - while (k < bytesNeeded) { - byte = buffer[i + k + 1]; - codePoint = (codePoint << 6) | (byte & 0x3f); - k += 1; - } - } else { - codePoint = 0xfffd; - bytesNeeded = len - i; - } - - output += String.fromCodePoint(codePoint); - i += bytesNeeded + 1; - } - - return output - }; - } - - let write; - - if (typeof TextEncoder !== 'undefined') { - const encoder = new TextEncoder(); - - write = function write (buffer, string, offset = 0, length = byteLength(string)) { - const len = Math.min(length, buffer.byteLength - offset); - encoder.encodeInto(string, buffer.subarray(offset, offset + len)); - return len - }; - } else { - write = function write (buffer, string, offset = 0, length = byteLength(string)) { - const len = Math.min(length, buffer.byteLength - offset); - - buffer = buffer.subarray(offset, offset + len); - - let i = 0; - let j = 0; - - while (i < string.length) { - const code = string.codePointAt(i); - - if (code <= 0x7f) { - buffer[j++] = code; - i++; - continue - } - - let count = 0; - let bits = 0; - - if (code <= 0x7ff) { - count = 6; - bits = 0xc0; - } else if (code <= 0xffff) { - count = 12; - bits = 0xe0; - } else if (code <= 0x1fffff) { - count = 18; - bits = 0xf0; - } - - buffer[j++] = bits | (code >> count); - count -= 6; - - while (count >= 0) { - buffer[j++] = 0x80 | ((code >> count) & 0x3f); - count -= 6; - } - - i += code >= 0x10000 ? 2 : 1; - } - - return len - }; - } - - utf8 = { - byteLength, - toString, - write - }; - return utf8; - } - - var utf16le; - var hasRequiredUtf16le; - - function requireUtf16le () { - if (hasRequiredUtf16le) return utf16le; - hasRequiredUtf16le = 1; - function byteLength (string) { - return string.length * 2 - } - - function toString (buffer) { - const len = buffer.byteLength; - - let result = ''; - - for (let i = 0; i < len - 1; i += 2) { - result += String.fromCharCode(buffer[i] + (buffer[i + 1] * 256)); - } - - return result - } - - function write (buffer, string, offset = 0, length = byteLength(string)) { - const len = Math.min(length, buffer.byteLength - offset); - - let units = len; - - for (let i = 0; i < string.length; ++i) { - if ((units -= 2) < 0) break - - const c = string.charCodeAt(i); - const hi = c >> 8; - const lo = c % 256; - - buffer[offset + i * 2] = lo; - buffer[offset + i * 2 + 1] = hi; - } - - return len - } - - utf16le = { - byteLength, - toString, - write - }; - return utf16le; - } - - var hasRequiredBrowser$1; - - function requireBrowser$1 () { - if (hasRequiredBrowser$1) return browser$1.exports; - hasRequiredBrowser$1 = 1; - (function (module, exports) { - const ascii = requireAscii(); - const base64 = requireBase64$1(); - const hex = requireHex$1(); - const utf8 = requireUtf8(); - const utf16le = requireUtf16le(); - - const LE = new Uint8Array(Uint16Array.of(0xff).buffer)[0] === 0xff; - - function codecFor (encoding) { - switch (encoding) { - case 'ascii': - return ascii - case 'base64': - return base64 - case 'hex': - return hex - case 'utf8': - case 'utf-8': - case undefined: - case null: - return utf8 - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16le - default: - throw new Error(`Unknown encoding: ${encoding}`) - } - } - - function isBuffer (value) { - return value instanceof Uint8Array - } - - function isEncoding (encoding) { - try { - codecFor(encoding); - return true - } catch { - return false - } - } - - function alloc (size, fill, encoding) { - const buffer = new Uint8Array(size); - if (fill !== undefined) exports.fill(buffer, fill, 0, buffer.byteLength, encoding); - return buffer - } - - function allocUnsafe (size) { - return new Uint8Array(size) - } - - function allocUnsafeSlow (size) { - return new Uint8Array(size) - } - - function byteLength (string, encoding) { - return codecFor(encoding).byteLength(string) - } - - function compare (a, b) { - if (a === b) return 0 - - const len = Math.min(a.byteLength, b.byteLength); - - a = new DataView(a.buffer, a.byteOffset, a.byteLength); - b = new DataView(b.buffer, b.byteOffset, b.byteLength); - - let i = 0; - - for (let n = len - (len % 4); i < n; i += 4) { - const x = a.getUint32(i, LE); - const y = b.getUint32(i, LE); - if (x !== y) break - } - - for (; i < len; i++) { - const x = a.getUint8(i); - const y = b.getUint8(i); - if (x < y) return -1 - if (x > y) return 1 - } - - return a.byteLength > b.byteLength ? 1 : a.byteLength < b.byteLength ? -1 : 0 - } - - function concat (buffers, totalLength) { - if (totalLength === undefined) { - totalLength = buffers.reduce((len, buffer) => len + buffer.byteLength, 0); - } - - const result = new Uint8Array(totalLength); - - let offset = 0; - for (const buffer of buffers) { - if (offset + buffer.byteLength > result.byteLength) { - const sub = buffer.subarray(0, result.byteLength - offset); - result.set(sub, offset); - return result - } - result.set(buffer, offset); - offset += buffer.byteLength; - } - - return result - } - - function copy (source, target, targetStart = 0, start = 0, end = source.byteLength) { - if (end > 0 && end < start) return 0 - if (end === start) return 0 - if (source.byteLength === 0 || target.byteLength === 0) return 0 - - if (targetStart < 0) throw new RangeError('targetStart is out of range') - if (start < 0 || start >= source.byteLength) throw new RangeError('sourceStart is out of range') - if (end < 0) throw new RangeError('sourceEnd is out of range') - - if (targetStart >= target.byteLength) targetStart = target.byteLength; - if (end > source.byteLength) end = source.byteLength; - if (target.byteLength - targetStart < end - start) { - end = target.length - targetStart + start; - } - - const len = end - start; - - if (source === target) { - target.copyWithin(targetStart, start, end); - } else { - target.set(source.subarray(start, end), targetStart); - } - - return len - } - - function equals (a, b) { - if (a === b) return true - if (a.byteLength !== b.byteLength) return false - - const len = a.byteLength; - - a = new DataView(a.buffer, a.byteOffset, a.byteLength); - b = new DataView(b.buffer, b.byteOffset, b.byteLength); - - let i = 0; - - for (let n = len - (len % 4); i < n; i += 4) { - if (a.getUint32(i, LE) !== b.getUint32(i, LE)) return false - } - - for (; i < len; i++) { - if (a.getUint8(i) !== b.getUint8(i)) return false - } - - return true - } - - function fill (buffer, value, offset, end, encoding) { - if (typeof value === 'string') { - // fill(buffer, string, encoding) - if (typeof offset === 'string') { - encoding = offset; - offset = 0; - end = buffer.byteLength; - - // fill(buffer, string, offset, encoding) - } else if (typeof end === 'string') { - encoding = end; - end = buffer.byteLength; - } - } else if (typeof value === 'number') { - value = value & 0xff; - } else if (typeof value === 'boolean') { - value = +value; - } - - if (offset < 0 || buffer.byteLength < offset || buffer.byteLength < end) { - throw new RangeError('Out of range index') - } - - if (offset === undefined) offset = 0; - if (end === undefined) end = buffer.byteLength; - - if (end <= offset) return buffer - - if (!value) value = 0; - - if (typeof value === 'number') { - for (let i = offset; i < end; ++i) { - buffer[i] = value; - } - } else { - value = isBuffer(value) ? value : from(value, encoding); - - const len = value.byteLength; - - for (let i = 0; i < end - offset; ++i) { - buffer[i + offset] = value[i % len]; - } - } - - return buffer - } - - function from (value, encodingOrOffset, length) { - // from(string, encoding) - if (typeof value === 'string') return fromString(value, encodingOrOffset) - - // from(array) - if (Array.isArray(value)) return fromArray(value) - - // from(buffer) - if (ArrayBuffer.isView(value)) return fromBuffer(value) - - // from(arrayBuffer[, byteOffset[, length]]) - return fromArrayBuffer(value, encodingOrOffset, length) - } - - function fromString (string, encoding) { - const codec = codecFor(encoding); - const buffer = new Uint8Array(codec.byteLength(string)); - codec.write(buffer, string, 0, buffer.byteLength); - return buffer - } - - function fromArray (array) { - const buffer = new Uint8Array(array.length); - buffer.set(array); - return buffer - } - - function fromBuffer (buffer) { - const copy = new Uint8Array(buffer.byteLength); - copy.set(buffer); - return copy - } - - function fromArrayBuffer (arrayBuffer, byteOffset, length) { - return new Uint8Array(arrayBuffer, byteOffset, length) - } - - function includes (buffer, value, byteOffset, encoding) { - return indexOf(buffer, value, byteOffset, encoding) !== -1 - } - - function bidirectionalIndexOf (buffer, value, byteOffset, encoding, first) { - if (buffer.byteLength === 0) return -1 - - if (typeof byteOffset === 'string') { - encoding = byteOffset; - byteOffset = 0; - } else if (byteOffset === undefined) { - byteOffset = first ? 0 : (buffer.length - 1); - } else if (byteOffset < 0) { - byteOffset += buffer.byteLength; - } - - if (byteOffset >= buffer.byteLength) { - if (first) return -1 - else byteOffset = buffer.byteLength - 1; - } else if (byteOffset < 0) { - if (first) byteOffset = 0; - else return -1 - } - - if (typeof value === 'string') { - value = from(value, encoding); - } else if (typeof value === 'number') { - value = value & 0xff; - - if (first) { - return buffer.indexOf(value, byteOffset) - } else { - return buffer.lastIndexOf(value, byteOffset) - } - } - - if (value.byteLength === 0) return -1 - - if (first) { - let foundIndex = -1; - - for (let i = byteOffset; i < buffer.byteLength; i++) { - if (buffer[i] === value[foundIndex === -1 ? 0 : i - foundIndex]) { - if (foundIndex === -1) foundIndex = i; - if (i - foundIndex + 1 === value.byteLength) return foundIndex - } else { - if (foundIndex !== -1) i -= i - foundIndex; - foundIndex = -1; - } - } - } else { - if (byteOffset + value.byteLength > buffer.byteLength) { - byteOffset = buffer.byteLength - value.byteLength; - } - - for (let i = byteOffset; i >= 0; i--) { - let found = true; - - for (let j = 0; j < value.byteLength; j++) { - if (buffer[i + j] !== value[j]) { - found = false; - break - } - } - - if (found) return i - } - } - - return -1 - } - - function indexOf (buffer, value, byteOffset, encoding) { - return bidirectionalIndexOf(buffer, value, byteOffset, encoding, true /* first */) - } - - function lastIndexOf (buffer, value, byteOffset, encoding) { - return bidirectionalIndexOf(buffer, value, byteOffset, encoding, false /* last */) - } - - function swap (buffer, n, m) { - const i = buffer[n]; - buffer[n] = buffer[m]; - buffer[m] = i; - } - - function swap16 (buffer) { - const len = buffer.byteLength; - - if (len % 2 !== 0) throw new RangeError('Buffer size must be a multiple of 16-bits') - - for (let i = 0; i < len; i += 2) swap(buffer, i, i + 1); - - return buffer - } - - function swap32 (buffer) { - const len = buffer.byteLength; - - if (len % 4 !== 0) throw new RangeError('Buffer size must be a multiple of 32-bits') - - for (let i = 0; i < len; i += 4) { - swap(buffer, i, i + 3); - swap(buffer, i + 1, i + 2); - } - - return buffer - } - - function swap64 (buffer) { - const len = buffer.byteLength; - - if (len % 8 !== 0) throw new RangeError('Buffer size must be a multiple of 64-bits') - - for (let i = 0; i < len; i += 8) { - swap(buffer, i, i + 7); - swap(buffer, i + 1, i + 6); - swap(buffer, i + 2, i + 5); - swap(buffer, i + 3, i + 4); - } - - return buffer - } - - function toBuffer (buffer) { - return buffer - } - - function toString (buffer, encoding, start = 0, end = buffer.byteLength) { - const len = buffer.byteLength; - - if (start >= len) return '' - if (end <= start) return '' - if (start < 0) start = 0; - if (end > len) end = len; - - if (start !== 0 || end < len) buffer = buffer.subarray(start, end); - - return codecFor(encoding).toString(buffer) - } - - function write (buffer, string, offset, length, encoding) { - // write(buffer, string) - if (offset === undefined) { - encoding = 'utf8'; - - // write(buffer, string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset; - offset = undefined; - - // write(buffer, string, offset, encoding) - } else if (encoding === undefined && typeof length === 'string') { - encoding = length; - length = undefined; - } - - return codecFor(encoding).write(buffer, string, offset, length) - } - - function writeDoubleLE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setFloat64(offset, value, true); - - return offset + 8 - } - - function writeFloatLE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setFloat32(offset, value, true); - - return offset + 4 - } - - function writeUInt32LE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setUint32(offset, value, true); - - return offset + 4 - } - - function writeInt32LE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setInt32(offset, value, true); - - return offset + 4 - } - - function readDoubleLE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getFloat64(offset, true) - } - - function readFloatLE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getFloat32(offset, true) - } - - function readUInt32LE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getUint32(offset, true) - } - - function readInt32LE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getInt32(offset, true) - } - - function writeDoubleBE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setFloat64(offset, value, false); - - return offset + 8 - } - - function writeFloatBE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setFloat32(offset, value, false); - - return offset + 4 - } - - function writeUInt32BE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setUint32(offset, value, false); - - return offset + 4 - } - - function writeInt32BE (buffer, value, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - view.setInt32(offset, value, false); - - return offset + 4 - } - - function readDoubleBE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getFloat64(offset, false) - } - - function readFloatBE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getFloat32(offset, false) - } - - function readUInt32BE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getUint32(offset, false) - } - - function readInt32BE (buffer, offset) { - if (offset === undefined) offset = 0; - - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); - - return view.getInt32(offset, false) - } - - module.exports = exports = { - isBuffer, - isEncoding, - alloc, - allocUnsafe, - allocUnsafeSlow, - byteLength, - compare, - concat, - copy, - equals, - fill, - from, - includes, - indexOf, - lastIndexOf, - swap16, - swap32, - swap64, - toBuffer, - toString, - write, - writeDoubleLE, - writeFloatLE, - writeUInt32LE, - writeInt32LE, - readDoubleLE, - readFloatLE, - readUInt32LE, - readInt32LE, - writeDoubleBE, - writeFloatBE, - writeUInt32BE, - writeInt32BE, - readDoubleBE, - readFloatBE, - readUInt32BE, - readInt32BE - }; - } (browser$1, browser$1.exports)); - return browser$1.exports; - } - - var sha512$3; - var hasRequiredSha512$3; - - function requireSha512$3 () { - if (hasRequiredSha512$3) return sha512$3; - hasRequiredSha512$3 = 1; - const assert = requireNanoassert(); - const b4a = requireBrowser$1(); - - sha512$3 = Sha512; - - const BLOCKSIZE = 128; - - var K = [ - 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, - 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, - 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, - 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, - 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, - 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, - 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, - 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, - 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, - 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, - 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, - 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, - 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, - 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, - 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, - 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, - 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, - 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, - 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, - 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, - 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, - 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, - 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, - 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, - 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, - 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, - 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, - 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, - 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, - 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, - 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, - 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, - 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, - 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, - 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, - 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, - 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, - 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, - 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, - 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 - ]; - - function Sha512 () { - if (!(this instanceof Sha512)) return new Sha512() - - this.hh = new Int32Array(8); - this.hl = new Int32Array(8); - this.buffer = new Uint8Array(128); - this.finalised = false; - this.bytesRead = 0; - this.pos = 0; - - this.hh[0] = 0x6a09e667; - this.hh[1] = 0xbb67ae85; - this.hh[2] = 0x3c6ef372; - this.hh[3] = 0xa54ff53a; - this.hh[4] = 0x510e527f; - this.hh[5] = 0x9b05688c; - this.hh[6] = 0x1f83d9ab; - this.hh[7] = 0x5be0cd19; - - this.hl[0] = 0xf3bcc908; - this.hl[1] = 0x84caa73b; - this.hl[2] = 0xfe94f82b; - this.hl[3] = 0x5f1d36f1; - this.hl[4] = 0xade682d1; - this.hl[5] = 0x2b3e6c1f; - this.hl[6] = 0xfb41bd6b; - this.hl[7] = 0x137e2179; - - return this - } - - Sha512.prototype.update = function (input, enc) { - assert(this.finalised === false, 'Hash instance finalised'); - - var [inputBuf, len] = formatInput(input, enc); - this.bytesRead += len; - - const full = (len + this.pos) & -128; - - this.buffer.set(inputBuf.subarray(0, BLOCKSIZE - this.pos), this.pos); - const pos = this.pos; - len -= BLOCKSIZE - this.pos; - - if (len >= 0) { - compress(this.hh, this.hl, this.buffer, 128); - this.pos = 0; - } - - if (len > 127) { - compress(this.hh, this.hl, inputBuf.subarray(BLOCKSIZE - pos, full - pos), full - BLOCKSIZE); - len %= 128; - } - - this.buffer.set(inputBuf.subarray(inputBuf.byteLength - len)); - this.pos = this.bytesRead & 0x7f; - this.buffer.fill(0, this.pos); - - return this - }; - - Sha512.prototype.digest = function (enc, offset = 0) { - assert(this.finalised === false, 'Hash instance finalised'); - this.finalised = true; - - this.buffer.fill(0, this.pos); - this.buffer[this.pos] = 128; - - if (this.pos > 111) { - compress(this.hh, this.hl, this.buffer, 128); - - this.buffer.fill(0); - this.pos = 0; - } - - ts64(this.buffer, 120, (this.bytesRead / 0x20000000) | 0, this.bytesRead << 3); - compress(this.hh, this.hl, this.buffer, 128); - - if (enc instanceof Uint8Array && enc.byteLength > 63) { - for (let i = 0; i < 8; i++) ts64(enc, 8 * i + offset, this.hh[i], this.hl[i]); - return enc - } - - const resultBuf = new Uint8Array(64); - for (let i = 0; i < 8; i++) ts64(resultBuf, 8 * i, this.hh[i], this.hl[i]); - - if (typeof enc === 'string') { - return b4a.toString(resultBuf, enc) - } - - return resultBuf - }; - - function ts64 (x, i, h, l) { - x[i] = (h >> 24) & 0xff; - x[i + 1] = (h >> 16) & 0xff; - x[i + 2] = (h >> 8) & 0xff; - x[i + 3] = h & 0xff; - x[i + 4] = (l >> 24) & 0xff; - x[i + 5] = (l >> 16) & 0xff; - x[i + 6] = (l >> 8) & 0xff; - x[i + 7] = l & 0xff; - } - - function formatInput (input, enc) { - var result = b4a.from(input, enc); - - return [result, result.byteLength] - } - - function compress(hh, hl, m, n) { - var wh = new Int32Array(16), wl = new Int32Array(16), - bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, - bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, - th, tl, i, j, h, l, a, b, c, d; - - var ah0 = hh[0], - ah1 = hh[1], - ah2 = hh[2], - ah3 = hh[3], - ah4 = hh[4], - ah5 = hh[5], - ah6 = hh[6], - ah7 = hh[7], - - al0 = hl[0], - al1 = hl[1], - al2 = hl[2], - al3 = hl[3], - al4 = hl[4], - al5 = hl[5], - al6 = hl[6], - al7 = hl[7]; - - var pos = 0; - while (n >= 128) { - for (i = 0; i < 16; i++) { - j = 8 * i + pos; - wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3]; - wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7]; - } - for (i = 0; i < 80; i++) { - bh0 = ah0; - bh1 = ah1; - bh2 = ah2; - bh3 = ah3; - bh4 = ah4; - bh5 = ah5; - bh6 = ah6; - bh7 = ah7; - - bl0 = al0; - bl1 = al1; - bl2 = al2; - bl3 = al3; - bl4 = al4; - bl5 = al5; - bl6 = al6; - bl7 = al7; - - // add - h = ah7; - l = al7; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - // Sigma1 - h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32)))); - l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32)))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // Ch - h = (ah4 & ah5) ^ (~ah4 & ah6); - l = (al4 & al5) ^ (~al4 & al6); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // K - h = K[i*2]; - l = K[i*2+1]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // w - h = wh[i%16]; - l = wl[i%16]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - th = c & 0xffff | d << 16; - tl = a & 0xffff | b << 16; - - // add - h = th; - l = tl; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - // Sigma0 - h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32)))); - l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32)))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // Maj - h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2); - l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - bh7 = (c & 0xffff) | (d << 16); - bl7 = (a & 0xffff) | (b << 16); - - // add - h = bh3; - l = bl3; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = th; - l = tl; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - bh3 = (c & 0xffff) | (d << 16); - bl3 = (a & 0xffff) | (b << 16); - - ah1 = bh0; - ah2 = bh1; - ah3 = bh2; - ah4 = bh3; - ah5 = bh4; - ah6 = bh5; - ah7 = bh6; - ah0 = bh7; - - al1 = bl0; - al2 = bl1; - al3 = bl2; - al4 = bl3; - al5 = bl4; - al6 = bl5; - al7 = bl6; - al0 = bl7; - - if (i%16 === 15) { - for (j = 0; j < 16; j++) { - // add - h = wh[j]; - l = wl[j]; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = wh[(j+9)%16]; - l = wl[(j+9)%16]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // sigma0 - th = wh[(j+1)%16]; - tl = wl[(j+1)%16]; - h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7); - l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - // sigma1 - th = wh[(j+14)%16]; - tl = wl[(j+14)%16]; - h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6); - l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6))); - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - wh[j] = (c & 0xffff) | (d << 16); - wl[j] = (a & 0xffff) | (b << 16); - } - } - } - - // add - h = ah0; - l = al0; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[0]; - l = hl[0]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[0] = ah0 = (c & 0xffff) | (d << 16); - hl[0] = al0 = (a & 0xffff) | (b << 16); - - h = ah1; - l = al1; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[1]; - l = hl[1]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[1] = ah1 = (c & 0xffff) | (d << 16); - hl[1] = al1 = (a & 0xffff) | (b << 16); - - h = ah2; - l = al2; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[2]; - l = hl[2]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[2] = ah2 = (c & 0xffff) | (d << 16); - hl[2] = al2 = (a & 0xffff) | (b << 16); - - h = ah3; - l = al3; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[3]; - l = hl[3]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[3] = ah3 = (c & 0xffff) | (d << 16); - hl[3] = al3 = (a & 0xffff) | (b << 16); - - h = ah4; - l = al4; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[4]; - l = hl[4]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[4] = ah4 = (c & 0xffff) | (d << 16); - hl[4] = al4 = (a & 0xffff) | (b << 16); - - h = ah5; - l = al5; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[5]; - l = hl[5]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[5] = ah5 = (c & 0xffff) | (d << 16); - hl[5] = al5 = (a & 0xffff) | (b << 16); - - h = ah6; - l = al6; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[6]; - l = hl[6]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[6] = ah6 = (c & 0xffff) | (d << 16); - hl[6] = al6 = (a & 0xffff) | (b << 16); - - h = ah7; - l = al7; - - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; - - h = hh[7]; - l = hl[7]; - - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; - - b += a >>> 16; - c += b >>> 16; - d += c >>> 16; - - hh[7] = ah7 = (c & 0xffff) | (d << 16); - hl[7] = al7 = (a & 0xffff) | (b << 16); - - pos += 128; - n -= 128; - } - } - - function HMAC (key) { - if (!(this instanceof HMAC)) return new HMAC(key) - - this.pad = b4a.alloc(128); - this.inner = Sha512(); - this.outer = Sha512(); - - const keyhash = b4a.alloc(64); - if (key.byteLength > 128) { - Sha512().update(key).digest(keyhash); - key = keyhash; - } - - this.pad.fill(0x36); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.inner.update(this.pad); - - this.pad.fill(0x5c); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.outer.update(this.pad); - - this.pad.fill(0); - keyhash.fill(0); - } - - HMAC.prototype.update = function (input, enc) { - this.inner.update(input, enc); - return this - }; - - HMAC.prototype.digest = function (enc, offset = 0) { - this.outer.update(this.inner.digest()); - return this.outer.digest(enc, offset) - }; - - Sha512.HMAC = HMAC; - return sha512$3; - } - - var sha512Wasm = {exports: {}}; - - var sha512$2; - var hasRequiredSha512$2; - - function requireSha512$2 () { - if (hasRequiredSha512$2) return sha512$2; - hasRequiredSha512$2 = 1; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __toBinary = /* @__PURE__ */ (() => { - var table = new Uint8Array(128); - for (var i = 0; i < 64; i++) - table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i; - return (base64) => { - var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0); - for (var i2 = 0, j = 0; i2 < n; ) { - var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)]; - var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)]; - bytes2[j++] = c0 << 2 | c1 >> 4; - bytes2[j++] = c1 << 4 | c2 >> 2; - bytes2[j++] = c2 << 6 | c3; - } - return bytes2; - }; - })(); - - // wasm-binary:./sha512.wat - var require_sha512 = __commonJS({ - "wasm-binary:./sha512.wat"(exports2, module2) { - module2.exports = __toBinary("AGFzbQEAAAABNAVgAX4BfmAIfn5+fn5+fn4AYAR+fn5+AX5gEX9+fn5+fn5+fn5+fn5+fn5+AGAEf39/fwADBgUAAQIDBAUDAQABBikIfgFCAAt+AUIAC34BQgALfgFCAAt+AUIAC34BQgALfgFCAAt+AUIACwcTAgZtZW1vcnkCAAZzaGE1MTIABAqZHgVCACAAQoCA/P+PgECDQhCJIABC//+DgPD/P4NCEIqEIQAgAEL/gfyH8J/A/wCDQgiJIABCgP6D+I/gv4B/g0IIioQLvAMBBn4jBCMFgyMEQn+FIwaDhSEKIwAjAYMjACMCg4UjASMCg4UhCyMAQhyKIwBCIoqFIwBCJ4qFIQwjBEIOiiMEQhKKhSMEQimKhSENIwcgCnwgDXwgAHwgBHwhCCAMIAt8IQkjAyAIfCQHIAggCXwkAyMHIwSDIwdCf4UjBYOFIQojAyMAgyMDIwGDhSMAIwGDhSELIwNCHIojA0IiioUjA0InioUhDCMHQg6KIwdCEoqFIwdCKYqFIQ0jBiAKfCANfCABfCAFfCEIIAwgC3whCSMCIAh8JAYgCCAJfCQCIwYjB4MjBkJ/hSMEg4UhCiMCIwODIwIjAIOFIwMjAIOFIQsjAkIciiMCQiKKhSMCQieKhSEMIwZCDoojBkISioUjBkIpioUhDSMFIAp8IA18IAJ8IAZ8IQggDCALfCEJIwEgCHwkBSAIIAl8JAEjBSMGgyMFQn+FIweDhSEKIwEjAoMjASMDg4UjAyMCg4UhCyMBQhyKIwFCIoqFIwFCJ4qFIQwjBUIOiiMFQhKKhSMFQimKhSENIwQgCnwgDXwgA3wgB3whCCAMIAt8IQkjACAIfCQEIAggCXwkAAsrACAAQhOKIABCPYqFIABCBoiFIAF8IAJCAYogAkIIioUgAkIHiIUgA3x8C6QRACAAKQPQAUIAUQRAIABCiJLznf/M+YTqADcDACAAQrvOqqbY0Ouzu383AwggAEKr8NP0r+68tzw3AxAgAELx7fT4paf9p6V/NwMYIABC0YWa7/rPlIfRADcDICAAQp/Y+dnCkdqCm383AyggAELr+obav7X2wR83AzAgAEL5wvibkaOz8NsANwM4IABCATcD0AELIAApAwAkACAAKQMIJAEgACkDECQCIAApAxgkAyAAKQMgJAQgACkDKCQFIAApAzAkBiAAKQM4JAcgARAAIQEgAhAAIQIgAxAAIQMgBBAAIQQgBRAAIQUgBhAAIQYgBxAAIQcgCBAAIQggCRAAIQkgChAAIQogCxAAIQsgDBAAIQwgDRAAIQ0gDhAAIQ4gDxAAIQ8gEBAAIRAgASACIAMgBEKi3KK5jfOLxcIAQs3LvZ+SktGb8QBCr/a04v75vuC1f0K8t6eM2PT22mkQASAFIAYgByAIQrjqopq/y7CrOUKZoJewm77E+NkAQpuf5fjK1OCfkn9CmIK2093al46rfxABIAkgCiALIAxCwoSMmIrT6oNYQr7fwauU4NbBEkKM5ZL35LfhmCRC4un+r724n4bVABABIA0gDiAPIBBC75Luk8+ul9/yAEKxrdrY47+s74B/QrWknK7y1IHum39ClM2k+8yu/M1BEAEgDyAKIAIgARACIQEgECALIAMgAhACIQIgASAMIAQgAxACIQMgAiANIAUgBBACIQQgAyAOIAYgBRACIQUgBCAPIAcgBhACIQYgBSAQIAggBxACIQcgBiABIAkgCBACIQggByACIAogCRACIQkgCCADIAsgChACIQogCSAEIAwgCxACIQsgCiAFIA0gDBACIQwgCyAGIA4gDRACIQ0gDCAHIA8gDhACIQ4gDSAIIBAgDxACIQ8gDiAJIAEgEBACIRAgASACIAMgBELSlcX3mbjazWRC48u8wuPwkd9vQrWrs9zouOfgD0LluLK9x7mohiQQASAFIAYgByAIQvWErMn1jcv0LUKDyZv1ppWhusoAQtT3h+rLu6rY3ABCtafFmKib4vz2ABABIAkgCiALIAxCq7+b866qlJ+Yf0KQ5NDt0s3xmKh/Qr/C7MeJ+cmBsH9C5J289/v436y/fxABIA0gDiAPIBBCwp+i7bP+gvBGQqXOqpj5qOTTVULvhI6AnuqY5QZC8Ny50PCsypQUEAEgDyAKIAIgARACIQEgECALIAMgAhACIQIgASAMIAQgAxACIQMgAiANIAUgBBACIQQgAyAOIAYgBRACIQUgBCAPIAcgBhACIQYgBSAQIAggBxACIQcgBiABIAkgCBACIQggByACIAogCRACIQkgCCADIAsgChACIQogCSAEIAwgCxACIQsgCiAFIA0gDBACIQwgCyAGIA4gDRACIQ0gDCAHIA8gDhACIQ4gDSAIIBAgDxACIQ8gDiAJIAEgEBACIRAgASACIAMgBEL838i21NDC2ydCppKb4YWnyI0uQu3VkNbFv5uWzQBC3+fW7Lmig5zTABABIAUgBiAHIAhC3se93cjqnIXlAEKo5d7js9eCtfYAQubdtr/kpbLhgX9Cu+qIpNGQi7mSfxABIAkgCiALIAxC5IbE55SU+t+if0KB4Ijiu8mZjah/QpGv4oeN7uKlQkKw/NKysLSUtkcQASANIA4gDyAQQpikvbedg7rJUUKQ0parxcTBzFZCqsDEu9WwjYd0Qrij75WDjqi1EBABIA8gCiACIAEQAiEBIBAgCyADIAIQAiECIAEgDCAEIAMQAiEDIAIgDSAFIAQQAiEEIAMgDiAGIAUQAiEFIAQgDyAHIAYQAiEGIAUgECAIIAcQAiEHIAYgASAJIAgQAiEIIAcgAiAKIAkQAiEJIAggAyALIAoQAiEKIAkgBCAMIAsQAiELIAogBSANIAwQAiEMIAsgBiAOIA0QAiENIAwgByAPIA4QAiEOIA0gCCAQIA8QAiEPIA4gCSABIBAQAiEQIAEgAiADIARCyKHLxuuisNIZQtPWhoqFgdubHkKZ17v8zemdpCdCqJHtjN6Wr9g0EAEgBSAGIAcgCELjtKWuvJaDjjlCy5WGmq7JquzOAELzxo+798myztsAQqPxyrW9/puX6AAQASAJIAogCyAMQvzlvu/l3eDH9ABC4N7cmPTt2NL4AELy1sKPyoKe5IR/QuzzkNOBwcDjjH8QASANIA4gDyAQQqi8jJui/7/fkH9C6fuK9L2dm6ikf0KV8pmW+/7o/L5/QqumyZuunt64RhABIA8gCiACIAEQAiEBIBAgCyADIAIQAiECIAEgDCAEIAMQAiEDIAIgDSAFIAQQAiEEIAMgDiAGIAUQAiEFIAQgDyAHIAYQAiEGIAUgECAIIAcQAiEHIAYgASAJIAgQAiEIIAcgAiAKIAkQAiEJIAggAyALIAoQAiEKIAkgBCAMIAsQAiELIAogBSANIAwQAiEMIAsgBiAOIA0QAiENIAwgByAPIA4QAiEOIA0gCCAQIA8QAiEPIA4gCSABIBAQAiEQIAEgAiADIARCnMOZ0e7Zz5NKQoeEg47ymK7DUUKe1oPv7Lqf7WpC+KK78/7v0751EAEgBSAGIAcgCEK6392Qp/WZ+AZCprGiltq437EKQq6b5PfLgOafEUKbjvGY0ebCuBsQASAJIAogCyAMQoT7kZjS/t3tKEKTyZyGtO+q5TJCvP2mrqHBr888QsyawODJ+NmOwwAQASANIA4gDyAQQraF+dnsl/XizABCqvyV48+zyr/ZAELs9dvWs/Xb5d8AQpewndLEsYai7AAQASAAIAApAwAjAHw3AwAgACAAKQMIIwF8NwMIIAAgACkDECMCfDcDECAAIAApAxgjA3w3AxggACAAKQMgIwR8NwMgIAAgACkDKCMFfDcDKCAAIAApAzAjBnw3AzAgACAAKQM4Iwd8NwM4C8MIARV+IAApA0AhBCAAKQNIIQUgBEL/AIMgAq18IQggBCEGIAQgAq18IQQgACAENwNAIAQgBlQEQCAFQgF8IQUgACAFNwNICwJAIAApA1AhCSAAKQNYIQogACkDYCELIAApA2ghDCAAKQNwIQ0gACkDeCEOIAApA4ABIQ8gACkDiAEhECAAKQOQASERIAApA5gBIRIgACkDoAEhEyAAKQOoASEUIAApA7ABIRUgACkDuAEhFiAAKQPAASEXIAApA8gBIRggCEKAAX0iCEIAUw0AIAAgCSAKIAsgDCANIA4gDyAQIBEgEiATIBQgFSAWIBcgGBADA0AgASkDACEJIAEpAwghCiABKQMQIQsgASkDGCEMIAEpAyAhDSABKQMoIQ4gASkDMCEPIAEpAzghECABKQNAIREgASkDSCESIAEpA1AhEyABKQNYIRQgASkDYCEVIAEpA2ghFiABKQNwIRcgASkDeCEYIAFBgAFqIQEgCEKAAX0iCEIAUwRAIAAgCTcDUCAAIAo3A1ggACALNwNgIAAgDDcDaCAAIA03A3AgACAONwN4IAAgDzcDgAEgACAQNwOIASAAIBE3A5ABIAAgEjcDmAEgACATNwOgASAAIBQ3A6gBIAAgFTcDsAEgACAWNwO4ASAAIBc3A8ABIAAgGDcDyAEMAgsgACAJIAogCyAMIA0gDiAPIBAgESASIBMgFCAVIBYgFyAYEAMMAAsLIANBAUYEQCAEQv8AgyEIQoABIAhCB4NCA4aGIQcCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCKdBA3YODwMEBQYHCAkKCwwNDg8QAQILCyAHIBeEIRdCACEHCyAHIBiEIRhCACEHIAAgCSAKIAsgDCANIA4gDyAQIBEgEiATIBQgFSAWIBcgGBADIAAgBDcDQEIAIQlCACEKQgAhC0IAIQxCACENQgAhDkIAIQ9CACEQQgAhEUIAIRJCACETQgAhFEIAIRVCACEWQgAhF0IAIRgLIAcgCYQhCUIAIQcLIAcgCoQhCkIAIQcLIAcgC4QhC0IAIQcLIAcgDIQhDEIAIQcLIAcgDYQhDUIAIQcLIAcgDoQhDkIAIQcLIAcgD4QhD0IAIQcLIAcgEIQhEEIAIQcLIAcgEYQhEUIAIQcLIAcgEoQhEkIAIQcLIAcgE4QhE0IAIQcLIAcgFIQhFEIAIQcLIAcgFYQhFUIAIQcLIAcgFoQhFkIAIQcLIARCPYggBUIDiHwQACEXIARCCH4QACEYIAAgCSAKIAsgDCANIA4gDyAQIBEgEiATIBQgFSAWIBcgGBADIAAgACkDABAANwMAIAAgACkDCBAANwMIIAAgACkDEBAANwMQIAAgACkDGBAANwMYIAAgACkDIBAANwMgIAAgACkDKBAANwMoIAAgACkDMBAANwMwIAAgACkDOBAANwM4Cws="); - } - }); - - // wasm-module:./sha512.wat - var bytes = require_sha512(); - var compiled = new WebAssembly.Module(bytes); - sha512$2 = (imports) => { - const instance = new WebAssembly.Instance(compiled, imports); - return instance.exports; - }; - return sha512$2; - } - - var hasRequiredSha512Wasm; - - function requireSha512Wasm () { - if (hasRequiredSha512Wasm) return sha512Wasm.exports; - hasRequiredSha512Wasm = 1; - const assert = requireNanoassert(); - const b4a = requireBrowser$1(); - - const wasm = typeof WebAssembly !== 'undefined' && requireSha512$2()({ - imports: { - debug: { - log (...args) { - console.log(...args.map(int => (int >>> 0).toString(16).padStart(8, '0'))); - }, - log_tee (arg) { - console.log((arg >>> 0).toString(16).padStart(8, '0')); - return arg - } - } - } - }); - - let head = 0; - // assetrt head % 8 === 0 to guarantee alignment - const freeList = []; - - sha512Wasm.exports = Sha512; - const SHA512_BYTES = sha512Wasm.exports.SHA512_BYTES = 64; - const INPUT_OFFSET = 80; - const STATEBYTES = 216; - const BLOCKSIZE = 128; - - function Sha512 () { - if (!(this instanceof Sha512)) return new Sha512() - if (!(wasm)) throw new Error('WASM not loaded. Wait for Sha512.ready(cb)') - - if (!freeList.length) { - freeList.push(head); - head += STATEBYTES; - } - - this.finalized = false; - this.digestLength = SHA512_BYTES; - this.pointer = freeList.pop(); - this.pos = 0; - this.wasm = wasm; - - this._memory = new Uint8Array(wasm.memory.buffer); - this._memory.fill(0, this.pointer, this.pointer + STATEBYTES); - - if (this.pointer + this.digestLength > this._memory.length) this._realloc(this.pointer + STATEBYTES); - } - - Sha512.prototype._realloc = function (size) { - wasm.memory.grow(Math.max(0, Math.ceil(Math.abs(size - this._memory.length) / 65536))); - this._memory = new Uint8Array(wasm.memory.buffer); - }; - - Sha512.prototype.update = function (input, enc) { - assert(this.finalized === false, 'Hash instance finalized'); - - if (head % 8 !== 0) head += 8 - head % 8; - assert(head % 8 === 0, 'input should be aligned for int64'); - - const [inputBuf, length] = formatInput(input, enc); - - assert(inputBuf instanceof Uint8Array, 'input must be Uint8Array or Buffer'); - - if (head + input.length > this._memory.length) this._realloc(head + input.length); - - this._memory.fill(0, head, head + roundUp(length, BLOCKSIZE) - BLOCKSIZE); - this._memory.set(inputBuf.subarray(0, BLOCKSIZE - this.pos), this.pointer + INPUT_OFFSET + this.pos); - this._memory.set(inputBuf.subarray(BLOCKSIZE - this.pos), head); - - this.pos = (this.pos + length) & 0x7f; - wasm.sha512(this.pointer, head, length, 0); - - return this - }; - - Sha512.prototype.digest = function (enc, offset = 0) { - assert(this.finalized === false, 'Hash instance finalized'); - - this.finalized = true; - freeList.push(this.pointer); - - const paddingStart = this.pointer + INPUT_OFFSET + this.pos; - this._memory.fill(0, paddingStart, this.pointer + INPUT_OFFSET + BLOCKSIZE); - wasm.sha512(this.pointer, head, 0, 1); - - const resultBuf = this._memory.subarray(this.pointer, this.pointer + this.digestLength); - - if (!enc) { - return resultBuf - } - - if (typeof enc === 'string') { - return b4a.toString(resultBuf, enc) - } - - assert(enc instanceof Uint8Array, 'output must be Uint8Array or Buffer'); - assert(enc.byteLength >= this.digestLength + offset, - "output must have at least 'SHA512_BYTES' bytes remaining"); - - for (let i = 0; i < this.digestLength; i++) { - enc[i + offset] = resultBuf[i]; - } - - return enc - }; - - Sha512.WASM = wasm; - Sha512.WASM_SUPPORTED = typeof WebAssembly !== 'undefined'; - - Sha512.ready = function (cb) { - if (!cb) cb = noop; - if (!wasm) return cb(new Error('WebAssembly not supported')) - cb(); - return Promise.resolve() - }; - - Sha512.prototype.ready = Sha512.ready; - - function HMAC (key) { - if (!(this instanceof HMAC)) return new HMAC(key) - - this.pad = b4a.alloc(128); - this.inner = Sha512(); - this.outer = Sha512(); - - const keyhash = b4a.alloc(64); - if (key.byteLength > 128) { - Sha512().update(key).digest(keyhash); - key = keyhash; - } - - this.pad.fill(0x36); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.inner.update(this.pad); - - this.pad.fill(0x5c); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.outer.update(this.pad); - - this.pad.fill(0); - keyhash.fill(0); - } - - HMAC.prototype.update = function (input, enc) { - this.inner.update(input, enc); - return this - }; - - HMAC.prototype.digest = function (enc, offset = 0) { - this.outer.update(this.inner.digest()); - return this.outer.digest(enc, offset) - }; - - Sha512.HMAC = HMAC; - - function noop () {} - - function formatInput (input, enc) { - var result = b4a.from(input, enc); - - return [result, result.byteLength] - } - - // only works for base that is power of 2 - function roundUp (n, base) { - return (n + base - 1) & -base - } - return sha512Wasm.exports; - } - - var hasRequiredSha512Universal; - - function requireSha512Universal () { - if (hasRequiredSha512Universal) return sha512Universal.exports; - hasRequiredSha512Universal = 1; - const js = requireSha512$3(); - const wasm = requireSha512Wasm(); - - var Proto = js; - - sha512Universal.exports = function () { - return new Proto() - }; - - sha512Universal.exports.ready = function (cb) { - wasm.ready(function () { // ignore errors - cb(); - }); - }; - - sha512Universal.exports.WASM_SUPPORTED = wasm.SUPPORTED; - sha512Universal.exports.WASM_LOADED = false; - - sha512Universal.exports.SHA512_BYTES = 64; - - wasm.ready(function (err) { - if (!err) { - sha512Universal.exports.WASM_LOADED = true; - sha512Universal.exports = Proto = wasm; - } - }); - return sha512Universal.exports; - } - - /* eslint-disable camelcase */ - - var crypto_auth_1; - var hasRequiredCrypto_auth; - - function requireCrypto_auth () { - if (hasRequiredCrypto_auth) return crypto_auth_1; - hasRequiredCrypto_auth = 1; - const { crypto_verify_32 } = requireCrypto_verify(); - const Sha512 = requireSha512Universal(); - const assert = requireNanoassert(); - - const crypto_auth_BYTES = 32; - const crypto_auth_KEYBYTES = 32; - - function crypto_auth (out, input, k) { - assert(out.byteLength === crypto_auth_BYTES, "out should be 'crypto_auth_BYTES' in length"); - assert(k.byteLength === crypto_auth_KEYBYTES, "key should be 'crypto_auth_KEYBYTES' in length"); - - const out0 = new Uint8Array(64); - const hmac = Sha512.HMAC(k); - hmac.update(input); - hmac.digest(out0); - - out.set(out0.subarray(0, 32)); - } - - function crypto_auth_verify (h, input, k) { - assert(h.byteLength === crypto_auth_BYTES, "h should be 'crypto_auth_BYTES' in length"); - assert(k.byteLength === crypto_auth_KEYBYTES, "key should be 'crypto_auth_KEYBYTES' in length"); - - const correct = Sha512.HMAC(k).update(input).digest(); - - return crypto_verify_32(h, 0, correct, 0) - } - - crypto_auth_1 = { - crypto_auth_BYTES, - crypto_auth_KEYBYTES, - crypto_auth, - crypto_auth_verify - }; - return crypto_auth_1; - } - - /* eslint-disable camelcase */ - - var crypto_hash_1; - var hasRequiredCrypto_hash; - - function requireCrypto_hash () { - if (hasRequiredCrypto_hash) return crypto_hash_1; - hasRequiredCrypto_hash = 1; - const sha512 = requireSha512Universal(); - const assert = requireNanoassert(); - - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - const crypto_hash_sha512_BYTES = 64; - const crypto_hash_BYTES = crypto_hash_sha512_BYTES; - - function crypto_hash_sha512 (out, m, n) { - assert(out.byteLength === crypto_hash_sha512_BYTES, "out must be 'crypto_hash_sha512_BYTES' bytes long"); - - sha512().update(m.subarray(0, n)).digest(out); - return 0 - } - - function crypto_hash (out, m, n) { - return crypto_hash_sha512(out, m, n) - } - - crypto_hash_1 = { - crypto_hash, - crypto_hash_sha512, - crypto_hash_sha512_BYTES, - crypto_hash_BYTES - }; - return crypto_hash_1; - } - - var ed25519$2; - var hasRequiredEd25519$2; - - function requireEd25519$2 () { - if (hasRequiredEd25519$2) return ed25519$2; - hasRequiredEd25519$2 = 1; - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - var gf = function(init) { - var i, r = new Float64Array(16); - if (init) for (i = 0; i < init.length; i++) r[i] = init[i]; - return r; - }; - var _9 = new Uint8Array(32); _9[0] = 9; - - var gf0 = gf(), - gf1 = gf([1]), - _121665 = gf([0xdb41, 1]), - D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]), - D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]), - X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]), - Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]), - I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]); - - function A(o, a, b) { - for (var i = 0; i < 16; i++) o[i] = a[i] + b[i]; - } - - function Z(o, a, b) { - for (var i = 0; i < 16; i++) o[i] = a[i] - b[i]; - } - - function M(o, a, b) { - var v, c, - t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, - t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, - t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, - t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, - b0 = b[0], - b1 = b[1], - b2 = b[2], - b3 = b[3], - b4 = b[4], - b5 = b[5], - b6 = b[6], - b7 = b[7], - b8 = b[8], - b9 = b[9], - b10 = b[10], - b11 = b[11], - b12 = b[12], - b13 = b[13], - b14 = b[14], - b15 = b[15]; - - v = a[0]; - t0 += v * b0; - t1 += v * b1; - t2 += v * b2; - t3 += v * b3; - t4 += v * b4; - t5 += v * b5; - t6 += v * b6; - t7 += v * b7; - t8 += v * b8; - t9 += v * b9; - t10 += v * b10; - t11 += v * b11; - t12 += v * b12; - t13 += v * b13; - t14 += v * b14; - t15 += v * b15; - v = a[1]; - t1 += v * b0; - t2 += v * b1; - t3 += v * b2; - t4 += v * b3; - t5 += v * b4; - t6 += v * b5; - t7 += v * b6; - t8 += v * b7; - t9 += v * b8; - t10 += v * b9; - t11 += v * b10; - t12 += v * b11; - t13 += v * b12; - t14 += v * b13; - t15 += v * b14; - t16 += v * b15; - v = a[2]; - t2 += v * b0; - t3 += v * b1; - t4 += v * b2; - t5 += v * b3; - t6 += v * b4; - t7 += v * b5; - t8 += v * b6; - t9 += v * b7; - t10 += v * b8; - t11 += v * b9; - t12 += v * b10; - t13 += v * b11; - t14 += v * b12; - t15 += v * b13; - t16 += v * b14; - t17 += v * b15; - v = a[3]; - t3 += v * b0; - t4 += v * b1; - t5 += v * b2; - t6 += v * b3; - t7 += v * b4; - t8 += v * b5; - t9 += v * b6; - t10 += v * b7; - t11 += v * b8; - t12 += v * b9; - t13 += v * b10; - t14 += v * b11; - t15 += v * b12; - t16 += v * b13; - t17 += v * b14; - t18 += v * b15; - v = a[4]; - t4 += v * b0; - t5 += v * b1; - t6 += v * b2; - t7 += v * b3; - t8 += v * b4; - t9 += v * b5; - t10 += v * b6; - t11 += v * b7; - t12 += v * b8; - t13 += v * b9; - t14 += v * b10; - t15 += v * b11; - t16 += v * b12; - t17 += v * b13; - t18 += v * b14; - t19 += v * b15; - v = a[5]; - t5 += v * b0; - t6 += v * b1; - t7 += v * b2; - t8 += v * b3; - t9 += v * b4; - t10 += v * b5; - t11 += v * b6; - t12 += v * b7; - t13 += v * b8; - t14 += v * b9; - t15 += v * b10; - t16 += v * b11; - t17 += v * b12; - t18 += v * b13; - t19 += v * b14; - t20 += v * b15; - v = a[6]; - t6 += v * b0; - t7 += v * b1; - t8 += v * b2; - t9 += v * b3; - t10 += v * b4; - t11 += v * b5; - t12 += v * b6; - t13 += v * b7; - t14 += v * b8; - t15 += v * b9; - t16 += v * b10; - t17 += v * b11; - t18 += v * b12; - t19 += v * b13; - t20 += v * b14; - t21 += v * b15; - v = a[7]; - t7 += v * b0; - t8 += v * b1; - t9 += v * b2; - t10 += v * b3; - t11 += v * b4; - t12 += v * b5; - t13 += v * b6; - t14 += v * b7; - t15 += v * b8; - t16 += v * b9; - t17 += v * b10; - t18 += v * b11; - t19 += v * b12; - t20 += v * b13; - t21 += v * b14; - t22 += v * b15; - v = a[8]; - t8 += v * b0; - t9 += v * b1; - t10 += v * b2; - t11 += v * b3; - t12 += v * b4; - t13 += v * b5; - t14 += v * b6; - t15 += v * b7; - t16 += v * b8; - t17 += v * b9; - t18 += v * b10; - t19 += v * b11; - t20 += v * b12; - t21 += v * b13; - t22 += v * b14; - t23 += v * b15; - v = a[9]; - t9 += v * b0; - t10 += v * b1; - t11 += v * b2; - t12 += v * b3; - t13 += v * b4; - t14 += v * b5; - t15 += v * b6; - t16 += v * b7; - t17 += v * b8; - t18 += v * b9; - t19 += v * b10; - t20 += v * b11; - t21 += v * b12; - t22 += v * b13; - t23 += v * b14; - t24 += v * b15; - v = a[10]; - t10 += v * b0; - t11 += v * b1; - t12 += v * b2; - t13 += v * b3; - t14 += v * b4; - t15 += v * b5; - t16 += v * b6; - t17 += v * b7; - t18 += v * b8; - t19 += v * b9; - t20 += v * b10; - t21 += v * b11; - t22 += v * b12; - t23 += v * b13; - t24 += v * b14; - t25 += v * b15; - v = a[11]; - t11 += v * b0; - t12 += v * b1; - t13 += v * b2; - t14 += v * b3; - t15 += v * b4; - t16 += v * b5; - t17 += v * b6; - t18 += v * b7; - t19 += v * b8; - t20 += v * b9; - t21 += v * b10; - t22 += v * b11; - t23 += v * b12; - t24 += v * b13; - t25 += v * b14; - t26 += v * b15; - v = a[12]; - t12 += v * b0; - t13 += v * b1; - t14 += v * b2; - t15 += v * b3; - t16 += v * b4; - t17 += v * b5; - t18 += v * b6; - t19 += v * b7; - t20 += v * b8; - t21 += v * b9; - t22 += v * b10; - t23 += v * b11; - t24 += v * b12; - t25 += v * b13; - t26 += v * b14; - t27 += v * b15; - v = a[13]; - t13 += v * b0; - t14 += v * b1; - t15 += v * b2; - t16 += v * b3; - t17 += v * b4; - t18 += v * b5; - t19 += v * b6; - t20 += v * b7; - t21 += v * b8; - t22 += v * b9; - t23 += v * b10; - t24 += v * b11; - t25 += v * b12; - t26 += v * b13; - t27 += v * b14; - t28 += v * b15; - v = a[14]; - t14 += v * b0; - t15 += v * b1; - t16 += v * b2; - t17 += v * b3; - t18 += v * b4; - t19 += v * b5; - t20 += v * b6; - t21 += v * b7; - t22 += v * b8; - t23 += v * b9; - t24 += v * b10; - t25 += v * b11; - t26 += v * b12; - t27 += v * b13; - t28 += v * b14; - t29 += v * b15; - v = a[15]; - t15 += v * b0; - t16 += v * b1; - t17 += v * b2; - t18 += v * b3; - t19 += v * b4; - t20 += v * b5; - t21 += v * b6; - t22 += v * b7; - t23 += v * b8; - t24 += v * b9; - t25 += v * b10; - t26 += v * b11; - t27 += v * b12; - t28 += v * b13; - t29 += v * b14; - t30 += v * b15; - - t0 += 38 * t16; - t1 += 38 * t17; - t2 += 38 * t18; - t3 += 38 * t19; - t4 += 38 * t20; - t5 += 38 * t21; - t6 += 38 * t22; - t7 += 38 * t23; - t8 += 38 * t24; - t9 += 38 * t25; - t10 += 38 * t26; - t11 += 38 * t27; - t12 += 38 * t28; - t13 += 38 * t29; - t14 += 38 * t30; - // t15 left as is - - // first car - c = 1; - v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536; - v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536; - v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536; - v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536; - v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536; - v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536; - v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536; - v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536; - v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536; - v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536; - v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536; - v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536; - v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536; - v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536; - v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536; - v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536; - t0 += c-1 + 37 * (c-1); - - // second car - c = 1; - v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536; - v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536; - v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536; - v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536; - v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536; - v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536; - v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536; - v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536; - v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536; - v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536; - v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536; - v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536; - v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536; - v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536; - v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536; - v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536; - t0 += c-1 + 37 * (c-1); - - o[ 0] = t0; - o[ 1] = t1; - o[ 2] = t2; - o[ 3] = t3; - o[ 4] = t4; - o[ 5] = t5; - o[ 6] = t6; - o[ 7] = t7; - o[ 8] = t8; - o[ 9] = t9; - o[10] = t10; - o[11] = t11; - o[12] = t12; - o[13] = t13; - o[14] = t14; - o[15] = t15; - } - - function S(o, a) { - M(o, a, a); - } - - function sel25519(p, q, b) { - var t, c = ~(b-1); - for (var i = 0; i < 16; i++) { - t = c & (p[i] ^ q[i]); - p[i] ^= t; - q[i] ^= t; - } - } - - function pack25519(o, n) { - var i, j, b; - var m = gf(), t = gf(); - for (i = 0; i < 16; i++) t[i] = n[i]; - car25519(t); - car25519(t); - car25519(t); - for (j = 0; j < 2; j++) { - m[0] = t[0] - 0xffed; - for (i = 1; i < 15; i++) { - m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1); - m[i-1] &= 0xffff; - } - m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1); - b = (m[15]>>16) & 1; - m[14] &= 0xffff; - sel25519(t, m, 1-b); - } - for (i = 0; i < 16; i++) { - o[2*i] = t[i] & 0xff; - o[2*i+1] = t[i]>>8; - } - } - - function unpack25519(o, n) { - var i; - for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8); - o[15] &= 0x7fff; - } - - function inv25519(o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 253; a >= 0; a--) { - S(c, c); - if(a !== 2 && a !== 4) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; - } - - function car25519(o) { - var i, v, c = 1; - for (i = 0; i < 16; i++) { - v = o[i] + c + 65535; - c = Math.floor(v / 65536); - o[i] = v - c * 65536; - } - o[0] += c-1 + 37 * (c-1); - } - - ed25519$2 = { - gf, - A, - Z, - M, - S, - sel25519, - pack25519, - unpack25519, - inv25519, - gf0, - gf1, - _9, - _121665, - D, - D2, - X, - Y, - I - }; - return ed25519$2; - } - - /* eslint-disable camelcase, one-var */ - - var crypto_scalarmult_1; - var hasRequiredCrypto_scalarmult; - - function requireCrypto_scalarmult () { - if (hasRequiredCrypto_scalarmult) return crypto_scalarmult_1; - hasRequiredCrypto_scalarmult = 1; - const { _9, _121665, gf, inv25519, pack25519, unpack25519, sel25519, A, M, Z, S } = requireEd25519$2(); - - const crypto_scalarmult_BYTES = 32; - const crypto_scalarmult_SCALARBYTES = 32; - - crypto_scalarmult_1 = { - crypto_scalarmult, - crypto_scalarmult_base, - crypto_scalarmult_BYTES, - crypto_scalarmult_SCALARBYTES - }; - - function crypto_scalarmult (q, n, p) { - check(q, crypto_scalarmult_BYTES); - check(n, crypto_scalarmult_SCALARBYTES); - check(p, crypto_scalarmult_BYTES); - var z = new Uint8Array(32); - var x = new Float64Array(80), r, i; - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(); - for (i = 0; i < 31; i++) z[i] = n[i]; - z[31] = (n[31] & 127) | 64; - z[0] &= 248; - unpack25519(x, p); - for (i = 0; i < 16; i++) { - b[i] = x[i]; - d[i] = a[i] = c[i] = 0; - } - a[0] = d[0] = 1; - for (i = 254; i >= 0; --i) { - r = (z[i >>> 3] >>> (i & 7)) & 1; - sel25519(a, b, r); - sel25519(c, d, r); - A(e, a, c); - Z(a, a, c); - A(c, b, d); - Z(b, b, d); - S(d, e); - S(f, a); - M(a, c, a); - M(c, b, e); - A(e, a, c); - Z(a, a, c); - S(b, a); - Z(c, d, f); - M(a, c, _121665); - A(a, a, d); - M(c, c, a); - M(a, d, f); - M(d, b, x); - S(b, e); - sel25519(a, b, r); - sel25519(c, d, r); - } - for (i = 0; i < 16; i++) { - x[i + 16] = a[i]; - x[i + 32] = c[i]; - x[i + 48] = b[i]; - x[i + 64] = d[i]; - } - var x32 = x.subarray(32); - var x16 = x.subarray(16); - inv25519(x32, x32); - M(x16, x16, x32); - pack25519(q, x16); - return 0 - } - - function crypto_scalarmult_base (q, n) { - return crypto_scalarmult(q, n, _9) - } - - function check (buf, len) { - if (!buf || (buf.length < len)) throw new Error('Argument must be a buffer' + (' of length ' + len )) - } - return crypto_scalarmult_1; - } - - var crypto_generichash = {exports: {}}; - - var blake2b$1 = {exports: {}}; - - var blake2bWasm = {exports: {}}; - - var blake2b; - var hasRequiredBlake2b$1; - - function requireBlake2b$1 () { - if (hasRequiredBlake2b$1) return blake2b; - hasRequiredBlake2b$1 = 1; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __toBinary = /* @__PURE__ */ (() => { - var table = new Uint8Array(128); - for (var i = 0; i < 64; i++) - table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i; - return (base64) => { - var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0); - for (var i2 = 0, j = 0; i2 < n; ) { - var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)]; - var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)]; - bytes2[j++] = c0 << 2 | c1 >> 4; - bytes2[j++] = c1 << 4 | c2 >> 2; - bytes2[j++] = c2 << 6 | c3; - } - return bytes2; - }; - })(); - - // wasm-binary:./blake2b.wat - var require_blake2b = __commonJS({ - "wasm-binary:./blake2b.wat"(exports2, module2) { - module2.exports = __toBinary("AGFzbQEAAAABEANgAn9/AGADf39/AGABfwADBQQAAQICBQUBAQroBwdNBQZtZW1vcnkCAAxibGFrZTJiX2luaXQAAA5ibGFrZTJiX3VwZGF0ZQABDWJsYWtlMmJfZmluYWwAAhBibGFrZTJiX2NvbXByZXNzAAMKvz8EwAIAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIABCADcDeCAAQoiS853/zPmE6gBBACkDAIU3A4ABIABCu86qptjQ67O7f0EIKQMAhTcDiAEgAEKr8NP0r+68tzxBECkDAIU3A5ABIABC8e30+KWn/aelf0EYKQMAhTcDmAEgAELRhZrv+s+Uh9EAQSApAwCFNwOgASAAQp/Y+dnCkdqCm39BKCkDAIU3A6gBIABC6/qG2r+19sEfQTApAwCFNwOwASAAQvnC+JuRo7Pw2wBBOCkDAIU3A7gBIABCADcDwAEgAEIANwPIASAAQgA3A9ABC20BA38gAEHAAWohAyAAQcgBaiEEIAQpAwCnIQUCQANAIAEgAkYNASAFQYABRgRAIAMgAykDACAFrXw3AwBBACEFIAAQAwsgACAFaiABLQAAOgAAIAVBAWohBSABQQFqIQEMAAsLIAQgBa03AwALYQEDfyAAQcABaiEBIABByAFqIQIgASABKQMAIAIpAwB8NwMAIABCfzcD0AEgAikDAKchAwJAA0AgA0GAAUYNASAAIANqQQA6AAAgA0EBaiEDDAALCyACIAOtNwMAIAAQAwuqOwIgfgl/IABBgAFqISEgAEGIAWohIiAAQZABaiEjIABBmAFqISQgAEGgAWohJSAAQagBaiEmIABBsAFqIScgAEG4AWohKCAhKQMAIQEgIikDACECICMpAwAhAyAkKQMAIQQgJSkDACEFICYpAwAhBiAnKQMAIQcgKCkDACEIQoiS853/zPmE6gAhCUK7zqqm2NDrs7t/IQpCq/DT9K/uvLc8IQtC8e30+KWn/aelfyEMQtGFmu/6z5SH0QAhDUKf2PnZwpHagpt/IQ5C6/qG2r+19sEfIQ9C+cL4m5Gjs/DbACEQIAApAwAhESAAKQMIIRIgACkDECETIAApAxghFCAAKQMgIRUgACkDKCEWIAApAzAhFyAAKQM4IRggACkDQCEZIAApA0ghGiAAKQNQIRsgACkDWCEcIAApA2AhHSAAKQNoIR4gACkDcCEfIAApA3ghICANIAApA8ABhSENIA8gACkD0AGFIQ8gASAFIBF8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSASfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgE3x8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBR8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAVfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgFnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBd8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAYfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgGXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBp8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAbfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgHHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIB18fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAefHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgH3x8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFICB8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAffHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgG3x8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBV8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAZfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgGnx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHICB8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAefHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggF3x8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBJ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAdfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgEXx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBN8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAcfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGHx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBZ8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAUfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgHHx8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBl8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAdfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgEXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBZ8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByATfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggIHx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIB58fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAbfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgH3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBR8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAXfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggGHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBJ8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAafHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFXx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBh8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAafHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgFHx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBJ8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAefHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHXx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBx8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAffHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgE3x8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBd8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAWfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgG3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBV8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCARfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgIHx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBl8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAafHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEXx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBZ8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAYfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgE3x8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBV8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAbfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggIHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIB98fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiASfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgHHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIB18fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAXfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggGXx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBR8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAefHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgE3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIB18fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAXfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgG3x8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBF8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAcfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggGXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBR8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAVfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHnx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBh8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAWfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggIHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIB98fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSASfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgGnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIB18fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSAWfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgEnx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGICB8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAffHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgHnx8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBV8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAbfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgEXx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBh8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAXfHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgFHx8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBp8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCATfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgGXx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBx8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSAefHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgHHx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBh8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAffHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgHXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBJ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAUfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGnx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBZ8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiARfHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgIHx8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBV8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAZfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggF3x8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIBN8fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAbfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgF3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFICB8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAffHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGnx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBx8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAUfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggEXx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBl8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiAdfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgE3x8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIB58fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByAYfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggEnx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBV8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAbfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFnx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgASAFIBt8fCEBIA0gAYVCIIohDSAJIA18IQkgBSAJhUIYiiEFIAEgBSATfHwhASANIAGFQhCKIQ0gCSANfCEJIAUgCYVCP4ohBSACIAYgGXx8IQIgDiAChUIgiiEOIAogDnwhCiAGIAqFQhiKIQYgAiAGIBV8fCECIA4gAoVCEIohDiAKIA58IQogBiAKhUI/iiEGIAMgByAYfHwhAyAPIAOFQiCKIQ8gCyAPfCELIAcgC4VCGIohByADIAcgF3x8IQMgDyADhUIQiiEPIAsgD3whCyAHIAuFQj+KIQcgBCAIIBJ8fCEEIBAgBIVCIIohECAMIBB8IQwgCCAMhUIYiiEIIAQgCCAWfHwhBCAQIASFQhCKIRAgDCAQfCEMIAggDIVCP4ohCCABIAYgIHx8IQEgECABhUIgiiEQIAsgEHwhCyAGIAuFQhiKIQYgASAGIBx8fCEBIBAgAYVCEIohECALIBB8IQsgBiALhUI/iiEGIAIgByAafHwhAiANIAKFQiCKIQ0gDCANfCEMIAcgDIVCGIohByACIAcgH3x8IQIgDSAChUIQiiENIAwgDXwhDCAHIAyFQj+KIQcgAyAIIBR8fCEDIA4gA4VCIIohDiAJIA58IQkgCCAJhUIYiiEIIAMgCCAdfHwhAyAOIAOFQhCKIQ4gCSAOfCEJIAggCYVCP4ohCCAEIAUgHnx8IQQgDyAEhUIgiiEPIAogD3whCiAFIAqFQhiKIQUgBCAFIBF8fCEEIA8gBIVCEIohDyAKIA98IQogBSAKhUI/iiEFIAEgBSARfHwhASANIAGFQiCKIQ0gCSANfCEJIAUgCYVCGIohBSABIAUgEnx8IQEgDSABhUIQiiENIAkgDXwhCSAFIAmFQj+KIQUgAiAGIBN8fCECIA4gAoVCIIohDiAKIA58IQogBiAKhUIYiiEGIAIgBiAUfHwhAiAOIAKFQhCKIQ4gCiAOfCEKIAYgCoVCP4ohBiADIAcgFXx8IQMgDyADhUIgiiEPIAsgD3whCyAHIAuFQhiKIQcgAyAHIBZ8fCEDIA8gA4VCEIohDyALIA98IQsgByALhUI/iiEHIAQgCCAXfHwhBCAQIASFQiCKIRAgDCAQfCEMIAggDIVCGIohCCAEIAggGHx8IQQgECAEhUIQiiEQIAwgEHwhDCAIIAyFQj+KIQggASAGIBl8fCEBIBAgAYVCIIohECALIBB8IQsgBiALhUIYiiEGIAEgBiAafHwhASAQIAGFQhCKIRAgCyAQfCELIAYgC4VCP4ohBiACIAcgG3x8IQIgDSAChUIgiiENIAwgDXwhDCAHIAyFQhiKIQcgAiAHIBx8fCECIA0gAoVCEIohDSAMIA18IQwgByAMhUI/iiEHIAMgCCAdfHwhAyAOIAOFQiCKIQ4gCSAOfCEJIAggCYVCGIohCCADIAggHnx8IQMgDiADhUIQiiEOIAkgDnwhCSAIIAmFQj+KIQggBCAFIB98fCEEIA8gBIVCIIohDyAKIA98IQogBSAKhUIYiiEFIAQgBSAgfHwhBCAPIASFQhCKIQ8gCiAPfCEKIAUgCoVCP4ohBSABIAUgH3x8IQEgDSABhUIgiiENIAkgDXwhCSAFIAmFQhiKIQUgASAFIBt8fCEBIA0gAYVCEIohDSAJIA18IQkgBSAJhUI/iiEFIAIgBiAVfHwhAiAOIAKFQiCKIQ4gCiAOfCEKIAYgCoVCGIohBiACIAYgGXx8IQIgDiAChUIQiiEOIAogDnwhCiAGIAqFQj+KIQYgAyAHIBp8fCEDIA8gA4VCIIohDyALIA98IQsgByALhUIYiiEHIAMgByAgfHwhAyAPIAOFQhCKIQ8gCyAPfCELIAcgC4VCP4ohByAEIAggHnx8IQQgECAEhUIgiiEQIAwgEHwhDCAIIAyFQhiKIQggBCAIIBd8fCEEIBAgBIVCEIohECAMIBB8IQwgCCAMhUI/iiEIIAEgBiASfHwhASAQIAGFQiCKIRAgCyAQfCELIAYgC4VCGIohBiABIAYgHXx8IQEgECABhUIQiiEQIAsgEHwhCyAGIAuFQj+KIQYgAiAHIBF8fCECIA0gAoVCIIohDSAMIA18IQwgByAMhUIYiiEHIAIgByATfHwhAiANIAKFQhCKIQ0gDCANfCEMIAcgDIVCP4ohByADIAggHHx8IQMgDiADhUIgiiEOIAkgDnwhCSAIIAmFQhiKIQggAyAIIBh8fCEDIA4gA4VCEIohDiAJIA58IQkgCCAJhUI/iiEIIAQgBSAWfHwhBCAPIASFQiCKIQ8gCiAPfCEKIAUgCoVCGIohBSAEIAUgFHx8IQQgDyAEhUIQiiEPIAogD3whCiAFIAqFQj+KIQUgISAhKQMAIAEgCYWFNwMAICIgIikDACACIAqFhTcDACAjICMpAwAgAyALhYU3AwAgJCAkKQMAIAQgDIWFNwMAICUgJSkDACAFIA2FhTcDACAmICYpAwAgBiAOhYU3AwAgJyAnKQMAIAcgD4WFNwMAICggKCkDACAIIBCFhTcDAAs="); - } - }); - - // wasm-module:./blake2b.wat - var bytes = require_blake2b(); - var compiled = WebAssembly.compile(bytes); - blake2b = async (imports) => { - const instance = await WebAssembly.instantiate(await compiled, imports); - return instance.exports; - }; - return blake2b; - } - - var hasRequiredBlake2bWasm; - - function requireBlake2bWasm () { - if (hasRequiredBlake2bWasm) return blake2bWasm.exports; - hasRequiredBlake2bWasm = 1; - var assert = requireNanoassert(); - var b4a = requireBrowser$1(); - - var wasm = null; - var wasmPromise = typeof WebAssembly !== "undefined" && requireBlake2b$1()().then(mod => { - wasm = mod; - }); - - var head = 64; - var freeList = []; - - blake2bWasm.exports = Blake2b; - var BYTES_MIN = blake2bWasm.exports.BYTES_MIN = 16; - var BYTES_MAX = blake2bWasm.exports.BYTES_MAX = 64; - blake2bWasm.exports.BYTES = 32; - var KEYBYTES_MIN = blake2bWasm.exports.KEYBYTES_MIN = 16; - var KEYBYTES_MAX = blake2bWasm.exports.KEYBYTES_MAX = 64; - blake2bWasm.exports.KEYBYTES = 32; - var SALTBYTES = blake2bWasm.exports.SALTBYTES = 16; - var PERSONALBYTES = blake2bWasm.exports.PERSONALBYTES = 16; - - function Blake2b (digestLength, key, salt, personal, noAssert) { - if (!(this instanceof Blake2b)) return new Blake2b(digestLength, key, salt, personal, noAssert) - if (!wasm) throw new Error('WASM not loaded. Wait for Blake2b.ready(cb)') - if (!digestLength) digestLength = 32; - - if (noAssert !== true) { - assert(digestLength >= BYTES_MIN, 'digestLength must be at least ' + BYTES_MIN + ', was given ' + digestLength); - assert(digestLength <= BYTES_MAX, 'digestLength must be at most ' + BYTES_MAX + ', was given ' + digestLength); - if (key != null) { - assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer'); - assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length); - assert(key.length <= KEYBYTES_MAX, 'key must be at least ' + KEYBYTES_MAX + ', was given ' + key.length); - } - if (salt != null) { - assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer'); - assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length); - } - if (personal != null) { - assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer'); - assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length); - } - } - - if (!freeList.length) { - freeList.push(head); - head += 216; - } - - this.digestLength = digestLength; - this.finalized = false; - this.pointer = freeList.pop(); - this._memory = new Uint8Array(wasm.memory.buffer); - - this._memory.fill(0, 0, 64); - this._memory[0] = this.digestLength; - this._memory[1] = key ? key.length : 0; - this._memory[2] = 1; // fanout - this._memory[3] = 1; // depth - - if (salt) this._memory.set(salt, 32); - if (personal) this._memory.set(personal, 48); - - if (this.pointer + 216 > this._memory.length) this._realloc(this.pointer + 216); // we need 216 bytes for the state - wasm.blake2b_init(this.pointer, this.digestLength); - - if (key) { - this.update(key); - this._memory.fill(0, head, head + key.length); // whiteout key - this._memory[this.pointer + 200] = 128; - } - } - - Blake2b.prototype._realloc = function (size) { - wasm.memory.grow(Math.max(0, Math.ceil(Math.abs(size - this._memory.length) / 65536))); - this._memory = new Uint8Array(wasm.memory.buffer); - }; - - Blake2b.prototype.update = function (input) { - assert(this.finalized === false, 'Hash instance finalized'); - assert(input instanceof Uint8Array, 'input must be Uint8Array or Buffer'); - - if (head + input.length > this._memory.length) this._realloc(head + input.length); - this._memory.set(input, head); - wasm.blake2b_update(this.pointer, head, head + input.length); - return this - }; - - Blake2b.prototype.digest = function (enc) { - assert(this.finalized === false, 'Hash instance finalized'); - this.finalized = true; - - freeList.push(this.pointer); - wasm.blake2b_final(this.pointer); - - if (!enc || enc === 'binary') { - return this._memory.slice(this.pointer + 128, this.pointer + 128 + this.digestLength) - } - - if (typeof enc === 'string') { - return b4a.toString(this._memory, enc, this.pointer + 128, this.pointer + 128 + this.digestLength) - } - - assert(enc instanceof Uint8Array && enc.length >= this.digestLength, 'input must be Uint8Array or Buffer'); - for (var i = 0; i < this.digestLength; i++) { - enc[i] = this._memory[this.pointer + 128 + i]; - } - - return enc - }; - - // libsodium compat - Blake2b.prototype.final = Blake2b.prototype.digest; - - Blake2b.WASM = wasm; - Blake2b.SUPPORTED = typeof WebAssembly !== 'undefined'; - - Blake2b.ready = function (cb) { - if (!cb) cb = noop; - if (!wasmPromise) return cb(new Error('WebAssembly not supported')) - return wasmPromise.then(() => cb(), cb) - }; - - Blake2b.prototype.ready = Blake2b.ready; - - Blake2b.prototype.getPartialHash = function () { - return this._memory.slice(this.pointer, this.pointer + 216); - }; - - Blake2b.prototype.setPartialHash = function (ph) { - this._memory.set(ph, this.pointer); - }; - - function noop () {} - return blake2bWasm.exports; - } - - var hasRequiredBlake2b; - - function requireBlake2b () { - if (hasRequiredBlake2b) return blake2b$1.exports; - hasRequiredBlake2b = 1; - var assert = requireNanoassert(); - var b2wasm = requireBlake2bWasm(); - - // 64-bit unsigned addition - // Sets v[a,a+1] += v[b,b+1] - // v should be a Uint32Array - function ADD64AA (v, a, b) { - var o0 = v[a] + v[b]; - var o1 = v[a + 1] + v[b + 1]; - if (o0 >= 0x100000000) { - o1++; - } - v[a] = o0; - v[a + 1] = o1; - } - - // 64-bit unsigned addition - // Sets v[a,a+1] += b - // b0 is the low 32 bits of b, b1 represents the high 32 bits - function ADD64AC (v, a, b0, b1) { - var o0 = v[a] + b0; - if (b0 < 0) { - o0 += 0x100000000; - } - var o1 = v[a + 1] + b1; - if (o0 >= 0x100000000) { - o1++; - } - v[a] = o0; - v[a + 1] = o1; - } - - // Little-endian byte access - function B2B_GET32 (arr, i) { - return (arr[i] ^ - (arr[i + 1] << 8) ^ - (arr[i + 2] << 16) ^ - (arr[i + 3] << 24)) - } - - // G Mixing function - // The ROTRs are inlined for speed - function B2B_G (a, b, c, d, ix, iy) { - var x0 = m[ix]; - var x1 = m[ix + 1]; - var y0 = m[iy]; - var y1 = m[iy + 1]; - - ADD64AA(v, a, b); // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s - ADD64AC(v, a, x0, x1); // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits - - // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits - var xor0 = v[d] ^ v[a]; - var xor1 = v[d + 1] ^ v[a + 1]; - v[d] = xor1; - v[d + 1] = xor0; - - ADD64AA(v, c, d); - - // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits - xor0 = v[b] ^ v[c]; - xor1 = v[b + 1] ^ v[c + 1]; - v[b] = (xor0 >>> 24) ^ (xor1 << 8); - v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8); - - ADD64AA(v, a, b); - ADD64AC(v, a, y0, y1); - - // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits - xor0 = v[d] ^ v[a]; - xor1 = v[d + 1] ^ v[a + 1]; - v[d] = (xor0 >>> 16) ^ (xor1 << 16); - v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16); - - ADD64AA(v, c, d); - - // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits - xor0 = v[b] ^ v[c]; - xor1 = v[b + 1] ^ v[c + 1]; - v[b] = (xor1 >>> 31) ^ (xor0 << 1); - v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1); - } - - // Initialization Vector - var BLAKE2B_IV32 = new Uint32Array([ - 0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85, - 0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A, - 0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C, - 0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19 - ]); - - var SIGMA8 = [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3, - 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4, - 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8, - 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13, - 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9, - 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, - 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, - 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5, - 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 - ]; - - // These are offsets into a uint64 buffer. - // Multiply them all by 2 to make them offsets into a uint32 buffer, - // because this is Javascript and we don't have uint64s - var SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 })); - - // Compression function. 'last' flag indicates last block. - // Note we're representing 16 uint64s as 32 uint32s - var v = new Uint32Array(32); - var m = new Uint32Array(32); - function blake2bCompress (ctx, last) { - var i = 0; - - // init work variables - for (i = 0; i < 16; i++) { - v[i] = ctx.h[i]; - v[i + 16] = BLAKE2B_IV32[i]; - } - - // low 64 bits of offset - v[24] = v[24] ^ ctx.t; - v[25] = v[25] ^ (ctx.t / 0x100000000); - // high 64 bits not supported, offset may not be higher than 2**53-1 - - // last block flag set ? - if (last) { - v[28] = ~v[28]; - v[29] = ~v[29]; - } - - // get little-endian words - for (i = 0; i < 32; i++) { - m[i] = B2B_GET32(ctx.b, 4 * i); - } - - // twelve rounds of mixing - for (i = 0; i < 12; i++) { - B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1]); - B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3]); - B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5]); - B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7]); - B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9]); - B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11]); - B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13]); - B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15]); - } - - for (i = 0; i < 16; i++) { - ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]; - } - } - - // reusable parameter_block - var parameter_block = new Uint8Array([ - 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth - 0, 0, 0, 0, // 4: leaf length, sequential mode - 0, 0, 0, 0, // 8: node offset - 0, 0, 0, 0, // 12: node offset - 0, 0, 0, 0, // 16: node depth, inner length, rfu - 0, 0, 0, 0, // 20: rfu - 0, 0, 0, 0, // 24: rfu - 0, 0, 0, 0, // 28: rfu - 0, 0, 0, 0, // 32: salt - 0, 0, 0, 0, // 36: salt - 0, 0, 0, 0, // 40: salt - 0, 0, 0, 0, // 44: salt - 0, 0, 0, 0, // 48: personal - 0, 0, 0, 0, // 52: personal - 0, 0, 0, 0, // 56: personal - 0, 0, 0, 0 // 60: personal - ]); - - // Creates a BLAKE2b hashing context - // Requires an output length between 1 and 64 bytes - // Takes an optional Uint8Array key - function Blake2b (outlen, key, salt, personal) { - // zero out parameter_block before usage - parameter_block.fill(0); - // state, 'param block' - - this.b = new Uint8Array(128); - this.h = new Uint32Array(16); - this.t = 0; // input count - this.c = 0; // pointer within buffer - this.outlen = outlen; // output length in bytes - - parameter_block[0] = outlen; - if (key) parameter_block[1] = key.length; - parameter_block[2] = 1; // fanout - parameter_block[3] = 1; // depth - - if (salt) parameter_block.set(salt, 32); - if (personal) parameter_block.set(personal, 48); - - // initialize hash state - for (var i = 0; i < 16; i++) { - this.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameter_block, i * 4); - } - - // key the hash, if applicable - if (key) { - blake2bUpdate(this, key); - // at the end - this.c = 128; - } - } - - Blake2b.prototype.update = function (input) { - assert(input instanceof Uint8Array, 'input must be Uint8Array or Buffer'); - blake2bUpdate(this, input); - return this - }; - - Blake2b.prototype.digest = function (out) { - var buf = (!out || out === 'binary' || out === 'hex') ? new Uint8Array(this.outlen) : out; - assert(buf instanceof Uint8Array, 'out must be "binary", "hex", Uint8Array, or Buffer'); - assert(buf.length >= this.outlen, 'out must have at least outlen bytes of space'); - blake2bFinal(this, buf); - if (out === 'hex') return hexSlice(buf) - return buf - }; - - Blake2b.prototype.final = Blake2b.prototype.digest; - - Blake2b.ready = function (cb) { - b2wasm.ready(function () { - cb(); // ignore the error - }); - }; - - // Updates a BLAKE2b streaming hash - // Requires hash context and Uint8Array (byte array) - function blake2bUpdate (ctx, input) { - for (var i = 0; i < input.length; i++) { - if (ctx.c === 128) { // buffer full ? - ctx.t += ctx.c; // add counters - blake2bCompress(ctx, false); // compress (not last) - ctx.c = 0; // counter to zero - } - ctx.b[ctx.c++] = input[i]; - } - } - - // Completes a BLAKE2b streaming hash - // Returns a Uint8Array containing the message digest - function blake2bFinal (ctx, out) { - ctx.t += ctx.c; // mark last block offset - - while (ctx.c < 128) { // fill up with zeros - ctx.b[ctx.c++] = 0; - } - blake2bCompress(ctx, true); // final block flag = 1 - - for (var i = 0; i < ctx.outlen; i++) { - out[i] = ctx.h[i >> 2] >> (8 * (i & 3)); - } - return out - } - - function hexSlice (buf) { - var str = ''; - for (var i = 0; i < buf.length; i++) str += toHex(buf[i]); - return str - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - var Proto = Blake2b; - - blake2b$1.exports = function createHash (outlen, key, salt, personal, noAssert) { - if (noAssert !== true) { - assert(outlen >= BYTES_MIN, 'outlen must be at least ' + BYTES_MIN + ', was given ' + outlen); - assert(outlen <= BYTES_MAX, 'outlen must be at most ' + BYTES_MAX + ', was given ' + outlen); - if (key != null) { - assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer'); - assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length); - assert(key.length <= KEYBYTES_MAX, 'key must be at most ' + KEYBYTES_MAX + ', was given ' + key.length); - } - if (salt != null) { - assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer'); - assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length); - } - if (personal != null) { - assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer'); - assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length); - } - } - - return new Proto(outlen, key, salt, personal) - }; - - blake2b$1.exports.ready = function (cb) { - b2wasm.ready(function () { // ignore errors - cb(); - }); - }; - - blake2b$1.exports.WASM_SUPPORTED = b2wasm.SUPPORTED; - blake2b$1.exports.WASM_LOADED = false; - - var BYTES_MIN = blake2b$1.exports.BYTES_MIN = 16; - var BYTES_MAX = blake2b$1.exports.BYTES_MAX = 64; - blake2b$1.exports.BYTES = 32; - var KEYBYTES_MIN = blake2b$1.exports.KEYBYTES_MIN = 16; - var KEYBYTES_MAX = blake2b$1.exports.KEYBYTES_MAX = 64; - blake2b$1.exports.KEYBYTES = 32; - var SALTBYTES = blake2b$1.exports.SALTBYTES = 16; - var PERSONALBYTES = blake2b$1.exports.PERSONALBYTES = 16; - - b2wasm.ready(function (err) { - if (!err) { - blake2b$1.exports.WASM_LOADED = true; - blake2b$1.exports = b2wasm; - } - }); - return blake2b$1.exports; - } - - var hasRequiredCrypto_generichash; - - function requireCrypto_generichash () { - if (hasRequiredCrypto_generichash) return crypto_generichash.exports; - hasRequiredCrypto_generichash = 1; - (function (module) { - var blake2b = requireBlake2b(); - - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - module.exports.crypto_generichash_PRIMITIVE = 'blake2b'; - module.exports.crypto_generichash_BYTES_MIN = blake2b.BYTES_MIN; - module.exports.crypto_generichash_BYTES_MAX = blake2b.BYTES_MAX; - module.exports.crypto_generichash_BYTES = blake2b.BYTES; - module.exports.crypto_generichash_KEYBYTES_MIN = blake2b.KEYBYTES_MIN; - module.exports.crypto_generichash_KEYBYTES_MAX = blake2b.KEYBYTES_MAX; - module.exports.crypto_generichash_KEYBYTES = blake2b.KEYBYTES; - module.exports.crypto_generichash_WASM_SUPPORTED = blake2b.WASM_SUPPORTED; - module.exports.crypto_generichash_WASM_LOADED = false; - - module.exports.crypto_generichash = function (output, input, key) { - blake2b(output.length, key).update(input).final(output); - }; - - module.exports.crypto_generichash_ready = blake2b.ready; - - module.exports.crypto_generichash_batch = function (output, inputArray, key) { - var ctx = blake2b(output.length, key); - for (var i = 0; i < inputArray.length; i++) { - ctx.update(inputArray[i]); - } - ctx.final(output); - }; - - module.exports.crypto_generichash_instance = function (key, outlen) { - if (outlen == null) outlen = module.exports.crypto_generichash_BYTES; - return blake2b(outlen, key) - }; - - blake2b.ready(function (_) { - module.exports.crypto_generichash_WASM_LOADED = blake2b.WASM_LOADED; - }); - } (crypto_generichash)); - return crypto_generichash.exports; - } - - var crypto_stream = {}; - - var xsalsa20; - var hasRequiredXsalsa20$1; - - function requireXsalsa20$1 () { - if (hasRequiredXsalsa20$1) return xsalsa20; - hasRequiredXsalsa20$1 = 1; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __toBinary = /* @__PURE__ */ (() => { - var table = new Uint8Array(128); - for (var i = 0; i < 64; i++) - table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i; - return (base64) => { - var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0); - for (var i2 = 0, j = 0; i2 < n; ) { - var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)]; - var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)]; - bytes2[j++] = c0 << 2 | c1 >> 4; - bytes2[j++] = c1 << 4 | c2 >> 2; - bytes2[j++] = c2 << 6 | c3; - } - return bytes2; - }; - })(); - - // wasm-binary:./xsalsa20.wat - var require_xsalsa20 = __commonJS({ - "wasm-binary:./xsalsa20.wat"(exports2, module2) { - module2.exports = __toBinary("AGFzbQEAAAABGgNgBn9/f39/fwBgBn9/f39+fwF+YAN/f38AAwcGAAEBAgICBQUBAQroBwcoAwZtZW1vcnkCAAx4c2Fsc2EyMF94b3IAAAxjb3JlX3NhbHNhMjAABArqEQYYACAAIAEgAiADIAQgACkDACAFEAE3AwALPQBB8AAgAyAFEAMgACABIAIgA0EQaiAEQfAAEAJB8ABCADcDAEH4AEIANwMAQYABQgA3AwBBiAFCADcDAAuHBQEBfyACQQBGBEBCAA8LQdAAIAUpAwA3AwBB2AAgBUEIaikDADcDAEHgACAFQRBqKQMANwMAQegAIAVBGGopAwA3AwBBACADKQMANwMAQQggBDcDAAJAA0AgAkHAAEkNAUEQQQBB0AAQBSAAIAEpAwBBECkDAIU3AwAgAEEIaiABQQhqKQMAQRgpAwCFNwMAIABBEGogAUEQaikDAEEgKQMAhTcDACAAQRhqIAFBGGopAwBBKCkDAIU3AwAgAEEgaiABQSBqKQMAQTApAwCFNwMAIABBKGogAUEoaikDAEE4KQMAhTcDACAAQTBqIAFBMGopAwBBwAApAwCFNwMAIABBOGogAUE4aikDAEHIACkDAIU3AwBBCEEIKQMAQgF8NwMAIABBwABqIQAgAUHAAGohASACQcAAayECDAALC0EIKQMAIQQgAkEASwRAQRBBAEHQABAFAkACQAJAAkACQAJAAkACQCACQQhuDgcHBgUEAwIBAAsgAEE4aiABQThqKQMAQcgAKQMAhTcDAAsgAEEwaiABQTBqKQMAQcAAKQMAhTcDAAsgAEEoaiABQShqKQMAQTgpAwCFNwMACyAAQSBqIAFBIGopAwBBMCkDAIU3AwALIABBGGogAUEYaikDAEEoKQMAhTcDAAsgAEEQaiABQRBqKQMAQSApAwCFNwMACyAAQQhqIAFBCGopAwBBGCkDAIU3AwALIAAgASkDAEEQKQMAhTcDAAtBEEIANwMAQRhCADcDAEEgQgA3AwBBKEIANwMAQTBCADcDAEE4QgA3AwBBwABCADcDAEHIAEIANwMAQdAAQgA3AwBB2ABCADcDAEHgAEIANwMAQegAQgA3AwAgBA8LnQUBEX9B5fDBiwYhA0HuyIGZAyEIQbLaiMsHIQ1B9MqB2QYhEiACKAIAIQQgAkEEaigCACEFIAJBCGooAgAhBiACQQxqKAIAIQcgAkEQaigCACEOIAJBFGooAgAhDyACQRhqKAIAIRAgAkEcaigCACERIAEoAgAhCSABQQRqKAIAIQogAUEIaigCACELIAFBDGooAgAhDEEUIRMCQANAIBNBAEYNASAHIAMgD2pBB3dzIQcgCyAHIANqQQl3cyELIA8gCyAHakENd3MhDyADIA8gC2pBEndzIQMgDCAIIARqQQd3cyEMIBAgDCAIakEJd3MhECAEIBAgDGpBDXdzIQQgCCAEIBBqQRJ3cyEIIBEgDSAJakEHd3MhESAFIBEgDWpBCXdzIQUgCSAFIBFqQQ13cyEJIA0gCSAFakESd3MhDSAGIBIgDmpBB3dzIQYgCiAGIBJqQQl3cyEKIA4gCiAGakENd3MhDiASIA4gCmpBEndzIRIgBCADIAZqQQd3cyEEIAUgBCADakEJd3MhBSAGIAUgBGpBDXdzIQYgAyAGIAVqQRJ3cyEDIAkgCCAHakEHd3MhCSAKIAkgCGpBCXdzIQogByAKIAlqQQ13cyEHIAggByAKakESd3MhCCAOIA0gDGpBB3dzIQ4gCyAOIA1qQQl3cyELIAwgCyAOakENd3MhDCANIAwgC2pBEndzIQ0gDyASIBFqQQd3cyEPIBAgDyASakEJd3MhECARIBAgD2pBDXdzIREgEiARIBBqQRJ3cyESIBNBAmshEwwACwsgACADNgIAIABBBGogCDYCACAAQQhqIA02AgAgAEEMaiASNgIAIABBEGogCTYCACAAQRRqIAo2AgAgAEEYaiALNgIAIABBHGogDDYCAAsKACAAIAEgAhAFC90GASF/QeXwwYsGIQNB7siBmQMhCEGy2ojLByENQfTKgdkGIRIgAigCACEEIAJBBGooAgAhBSACQQhqKAIAIQYgAkEMaigCACEHIAJBEGooAgAhDiACQRRqKAIAIQ8gAkEYaigCACEQIAJBHGooAgAhESABKAIAIQkgAUEEaigCACEKIAFBCGooAgAhCyABQQxqKAIAIQwgAyETIAQhFCAFIRUgBiEWIAchFyAIIRggCSEZIAohGiALIRsgDCEcIA0hHSAOIR4gDyEfIBAhICARISEgEiEiQRQhIwJAA0AgI0EARg0BIAcgAyAPakEHd3MhByALIAcgA2pBCXdzIQsgDyALIAdqQQ13cyEPIAMgDyALakESd3MhAyAMIAggBGpBB3dzIQwgECAMIAhqQQl3cyEQIAQgECAMakENd3MhBCAIIAQgEGpBEndzIQggESANIAlqQQd3cyERIAUgESANakEJd3MhBSAJIAUgEWpBDXdzIQkgDSAJIAVqQRJ3cyENIAYgEiAOakEHd3MhBiAKIAYgEmpBCXdzIQogDiAKIAZqQQ13cyEOIBIgDiAKakESd3MhEiAEIAMgBmpBB3dzIQQgBSAEIANqQQl3cyEFIAYgBSAEakENd3MhBiADIAYgBWpBEndzIQMgCSAIIAdqQQd3cyEJIAogCSAIakEJd3MhCiAHIAogCWpBDXdzIQcgCCAHIApqQRJ3cyEIIA4gDSAMakEHd3MhDiALIA4gDWpBCXdzIQsgDCALIA5qQQ13cyEMIA0gDCALakESd3MhDSAPIBIgEWpBB3dzIQ8gECAPIBJqQQl3cyEQIBEgECAPakENd3MhESASIBEgEGpBEndzIRIgI0ECayEjDAALCyAAIAMgE2o2AgAgAEEEaiAEIBRqNgIAIABBCGogBSAVajYCACAAQQxqIAYgFmo2AgAgAEEQaiAHIBdqNgIAIABBFGogCCAYajYCACAAQRhqIAkgGWo2AgAgAEEcaiAKIBpqNgIAIABBIGogCyAbajYCACAAQSRqIAwgHGo2AgAgAEEoaiANIB1qNgIAIABBLGogDiAeajYCACAAQTBqIA8gH2o2AgAgAEE0aiAQICBqNgIAIABBOGogESAhajYCACAAQTxqIBIgImo2AgAL"); - } - }); - - // wasm-module:./xsalsa20.wat - var bytes = require_xsalsa20(); - var compiled = new WebAssembly.Module(bytes); - xsalsa20 = (imports) => { - const instance = new WebAssembly.Instance(compiled, imports); - return instance.exports; - }; - return xsalsa20; - } - - var xsalsa20_1; - var hasRequiredXsalsa20; - - function requireXsalsa20 () { - if (hasRequiredXsalsa20) return xsalsa20_1; - hasRequiredXsalsa20 = 1; - var xsalsa20 = typeof WebAssembly !== "undefined" && requireXsalsa20$1()(); - - var SIGMA = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]); - var head = 144; - var top = head; - var free = []; - - xsalsa20_1 = XSalsa20; - - XSalsa20.NONCEBYTES = 24; - XSalsa20.KEYBYTES = 32; - - XSalsa20.core_hsalsa20 = core_hsalsa20; - XSalsa20.SIGMA = SIGMA; - - function XSalsa20 (nonce, key) { - if (!(this instanceof XSalsa20)) return new XSalsa20(nonce, key) - if (!nonce || nonce.length < 24) throw new Error('nonce must be at least 24 bytes') - if (!key || key.length < 32) throw new Error('key must be at least 32 bytes') - this._xor = xsalsa20 ? new WASM(nonce, key) : new Fallback(nonce, key); - } - - XSalsa20.prototype.update = function (input, output) { - if (!input) throw new Error('input must be Uint8Array or Buffer') - if (!output) output = new Uint8Array(input.length); - if (input.length) this._xor.update(input, output); - return output - }; - - XSalsa20.prototype.final = - XSalsa20.prototype.finalize = function () { - this._xor.finalize(); - this._xor = null; - }; - - function WASM (nonce, key) { - if (!free.length) { - free.push(head); - head += 64; - } - - this._pointer = free.pop(); - this._nonce = this._pointer + 8; - this._key = this._nonce + 24; - this._overflow = 0; - this._memory = new Uint8Array(xsalsa20.memory.buffer); - - this._memory.fill(0, this._pointer, this._pointer + 8); - this._memory.set(nonce, this._nonce); - this._memory.set(key, this._key); - } - - WASM.prototype.realloc = function (size) { - xsalsa20.memory.grow(Math.ceil(Math.abs(size - this._memory.length) / 65536)); - this._memory = new Uint8Array(xsalsa20.memory.buffer); - }; - - WASM.prototype.update = function (input, output) { - var len = this._overflow + input.length; - var start = head + this._overflow; - - top = head + len; - if (top >= this._memory.length) this.realloc(top); - - this._memory.set(input, start); - xsalsa20.xsalsa20_xor(this._pointer, head, head, len, this._nonce, this._key); - output.set(this._memory.subarray(start, head + len)); - - this._overflow = len & 63; - }; - - WASM.prototype.finalize = function () { - this._memory.fill(0, this._pointer, this._key + 32); - if (top > head) { - this._memory.fill(0, head, top); - top = 0; - } - free.push(this._pointer); - }; - - function Fallback (nonce, key) { - this._s = new Uint8Array(32); - this._z = new Uint8Array(16); - this._overflow = 0; - core_hsalsa20(this._s, nonce, key, SIGMA); - for (var i = 0; i < 8; i++) this._z[i] = nonce[i + 16]; - } - - Fallback.prototype.update = function (input, output) { - var x = new Uint8Array(64); - var u = 0; - var i = this._overflow; - var b = input.length + this._overflow; - var z = this._z; - var mpos = -this._overflow; - var cpos = -this._overflow; - - while (b >= 64) { - core_salsa20(x, z, this._s, SIGMA); - for (; i < 64; i++) output[cpos + i] = input[mpos + i] ^ x[i]; - u = 1; - for (i = 8; i < 16; i++) { - u += (z[i] & 0xff) | 0; - z[i] = u & 0xff; - u >>>= 8; - } - b -= 64; - cpos += 64; - mpos += 64; - i = 0; - } - if (b > 0) { - core_salsa20(x, z, this._s, SIGMA); - for (; i < b; i++) output[cpos + i] = input[mpos + i] ^ x[i]; - } - - this._overflow = b & 63; - }; - - Fallback.prototype.finalize = function () { - this._s.fill(0); - this._z.fill(0); - }; - - // below methods are ported from tweet nacl - - function core_salsa20(o, p, k, c) { - var j0 = c[ 0] & 0xff | (c[ 1] & 0xff) << 8 | (c[ 2] & 0xff) << 16 | (c[ 3] & 0xff) << 24, - j1 = k[ 0] & 0xff | (k[ 1] & 0xff) << 8 | (k[ 2] & 0xff) << 16 | (k[ 3] & 0xff) << 24, - j2 = k[ 4] & 0xff | (k[ 5] & 0xff) << 8 | (k[ 6] & 0xff) << 16 | (k[ 7] & 0xff) << 24, - j3 = k[ 8] & 0xff | (k[ 9] & 0xff) << 8 | (k[10] & 0xff) << 16 | (k[11] & 0xff) << 24, - j4 = k[12] & 0xff | (k[13] & 0xff) << 8 | (k[14] & 0xff) << 16 | (k[15] & 0xff) << 24, - j5 = c[ 4] & 0xff | (c[ 5] & 0xff) << 8 | (c[ 6] & 0xff) << 16 | (c[ 7] & 0xff) << 24, - j6 = p[ 0] & 0xff | (p[ 1] & 0xff) << 8 | (p[ 2] & 0xff) << 16 | (p[ 3] & 0xff) << 24, - j7 = p[ 4] & 0xff | (p[ 5] & 0xff) << 8 | (p[ 6] & 0xff) << 16 | (p[ 7] & 0xff) << 24, - j8 = p[ 8] & 0xff | (p[ 9] & 0xff) << 8 | (p[10] & 0xff) << 16 | (p[11] & 0xff) << 24, - j9 = p[12] & 0xff | (p[13] & 0xff) << 8 | (p[14] & 0xff) << 16 | (p[15] & 0xff) << 24, - j10 = c[ 8] & 0xff | (c[ 9] & 0xff) << 8 | (c[10] & 0xff) << 16 | (c[11] & 0xff) << 24, - j11 = k[16] & 0xff | (k[17] & 0xff) << 8 | (k[18] & 0xff) << 16 | (k[19] & 0xff) << 24, - j12 = k[20] & 0xff | (k[21] & 0xff) << 8 | (k[22] & 0xff) << 16 | (k[23] & 0xff) << 24, - j13 = k[24] & 0xff | (k[25] & 0xff) << 8 | (k[26] & 0xff) << 16 | (k[27] & 0xff) << 24, - j14 = k[28] & 0xff | (k[29] & 0xff) << 8 | (k[30] & 0xff) << 16 | (k[31] & 0xff) << 24, - j15 = c[12] & 0xff | (c[13] & 0xff) << 8 | (c[14] & 0xff) << 16 | (c[15] & 0xff) << 24; - - var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, - x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, - x15 = j15, u; - - for (var i = 0; i < 20; i += 2) { - u = x0 + x12 | 0; - x4 ^= u << 7 | u >>> 25; - u = x4 + x0 | 0; - x8 ^= u << 9 | u >>> 23; - u = x8 + x4 | 0; - x12 ^= u << 13 | u >>> 19; - u = x12 + x8 | 0; - x0 ^= u << 18 | u >>> 14; - - u = x5 + x1 | 0; - x9 ^= u << 7 | u >>> 25; - u = x9 + x5 | 0; - x13 ^= u << 9 | u >>> 23; - u = x13 + x9 | 0; - x1 ^= u << 13 | u >>> 19; - u = x1 + x13 | 0; - x5 ^= u << 18 | u >>> 14; - - u = x10 + x6 | 0; - x14 ^= u << 7 | u >>> 25; - u = x14 + x10 | 0; - x2 ^= u << 9 | u >>> 23; - u = x2 + x14 | 0; - x6 ^= u << 13 | u >>> 19; - u = x6 + x2 | 0; - x10 ^= u << 18 | u >>> 14; - - u = x15 + x11 | 0; - x3 ^= u << 7 | u >>> 25; - u = x3 + x15 | 0; - x7 ^= u << 9 | u >>> 23; - u = x7 + x3 | 0; - x11 ^= u << 13 | u >>> 19; - u = x11 + x7 | 0; - x15 ^= u << 18 | u >>> 14; - - u = x0 + x3 | 0; - x1 ^= u << 7 | u >>> 25; - u = x1 + x0 | 0; - x2 ^= u << 9 | u >>> 23; - u = x2 + x1 | 0; - x3 ^= u << 13 | u >>> 19; - u = x3 + x2 | 0; - x0 ^= u << 18 | u >>> 14; - - u = x5 + x4 | 0; - x6 ^= u << 7 | u >>> 25; - u = x6 + x5 | 0; - x7 ^= u << 9 | u >>> 23; - u = x7 + x6 | 0; - x4 ^= u << 13 | u >>> 19; - u = x4 + x7 | 0; - x5 ^= u << 18 | u >>> 14; - - u = x10 + x9 | 0; - x11 ^= u << 7 | u >>> 25; - u = x11 + x10 | 0; - x8 ^= u << 9 | u >>> 23; - u = x8 + x11 | 0; - x9 ^= u << 13 | u >>> 19; - u = x9 + x8 | 0; - x10 ^= u << 18 | u >>> 14; - - u = x15 + x14 | 0; - x12 ^= u << 7 | u >>> 25; - u = x12 + x15 | 0; - x13 ^= u << 9 | u >>> 23; - u = x13 + x12 | 0; - x14 ^= u << 13 | u >>> 19; - u = x14 + x13 | 0; - x15 ^= u << 18 | u >>> 14; - } - x0 = x0 + j0 | 0; - x1 = x1 + j1 | 0; - x2 = x2 + j2 | 0; - x3 = x3 + j3 | 0; - x4 = x4 + j4 | 0; - x5 = x5 + j5 | 0; - x6 = x6 + j6 | 0; - x7 = x7 + j7 | 0; - x8 = x8 + j8 | 0; - x9 = x9 + j9 | 0; - x10 = x10 + j10 | 0; - x11 = x11 + j11 | 0; - x12 = x12 + j12 | 0; - x13 = x13 + j13 | 0; - x14 = x14 + j14 | 0; - x15 = x15 + j15 | 0; - - o[ 0] = x0 >>> 0 & 0xff; - o[ 1] = x0 >>> 8 & 0xff; - o[ 2] = x0 >>> 16 & 0xff; - o[ 3] = x0 >>> 24 & 0xff; - - o[ 4] = x1 >>> 0 & 0xff; - o[ 5] = x1 >>> 8 & 0xff; - o[ 6] = x1 >>> 16 & 0xff; - o[ 7] = x1 >>> 24 & 0xff; - - o[ 8] = x2 >>> 0 & 0xff; - o[ 9] = x2 >>> 8 & 0xff; - o[10] = x2 >>> 16 & 0xff; - o[11] = x2 >>> 24 & 0xff; - - o[12] = x3 >>> 0 & 0xff; - o[13] = x3 >>> 8 & 0xff; - o[14] = x3 >>> 16 & 0xff; - o[15] = x3 >>> 24 & 0xff; - - o[16] = x4 >>> 0 & 0xff; - o[17] = x4 >>> 8 & 0xff; - o[18] = x4 >>> 16 & 0xff; - o[19] = x4 >>> 24 & 0xff; - - o[20] = x5 >>> 0 & 0xff; - o[21] = x5 >>> 8 & 0xff; - o[22] = x5 >>> 16 & 0xff; - o[23] = x5 >>> 24 & 0xff; - - o[24] = x6 >>> 0 & 0xff; - o[25] = x6 >>> 8 & 0xff; - o[26] = x6 >>> 16 & 0xff; - o[27] = x6 >>> 24 & 0xff; - - o[28] = x7 >>> 0 & 0xff; - o[29] = x7 >>> 8 & 0xff; - o[30] = x7 >>> 16 & 0xff; - o[31] = x7 >>> 24 & 0xff; - - o[32] = x8 >>> 0 & 0xff; - o[33] = x8 >>> 8 & 0xff; - o[34] = x8 >>> 16 & 0xff; - o[35] = x8 >>> 24 & 0xff; - - o[36] = x9 >>> 0 & 0xff; - o[37] = x9 >>> 8 & 0xff; - o[38] = x9 >>> 16 & 0xff; - o[39] = x9 >>> 24 & 0xff; - - o[40] = x10 >>> 0 & 0xff; - o[41] = x10 >>> 8 & 0xff; - o[42] = x10 >>> 16 & 0xff; - o[43] = x10 >>> 24 & 0xff; - - o[44] = x11 >>> 0 & 0xff; - o[45] = x11 >>> 8 & 0xff; - o[46] = x11 >>> 16 & 0xff; - o[47] = x11 >>> 24 & 0xff; - - o[48] = x12 >>> 0 & 0xff; - o[49] = x12 >>> 8 & 0xff; - o[50] = x12 >>> 16 & 0xff; - o[51] = x12 >>> 24 & 0xff; - - o[52] = x13 >>> 0 & 0xff; - o[53] = x13 >>> 8 & 0xff; - o[54] = x13 >>> 16 & 0xff; - o[55] = x13 >>> 24 & 0xff; - - o[56] = x14 >>> 0 & 0xff; - o[57] = x14 >>> 8 & 0xff; - o[58] = x14 >>> 16 & 0xff; - o[59] = x14 >>> 24 & 0xff; - - o[60] = x15 >>> 0 & 0xff; - o[61] = x15 >>> 8 & 0xff; - o[62] = x15 >>> 16 & 0xff; - o[63] = x15 >>> 24 & 0xff; - } - - function core_hsalsa20(o,p,k,c) { - var j0 = c[ 0] & 0xff | (c[ 1] & 0xff) << 8 | (c[ 2] & 0xff) << 16 | (c[ 3] & 0xff) << 24, - j1 = k[ 0] & 0xff | (k[ 1] & 0xff) << 8 | (k[ 2] & 0xff) << 16 | (k[ 3] & 0xff) << 24, - j2 = k[ 4] & 0xff | (k[ 5] & 0xff) << 8 | (k[ 6] & 0xff) << 16 | (k[ 7] & 0xff) << 24, - j3 = k[ 8] & 0xff | (k[ 9] & 0xff) << 8 | (k[10] & 0xff) << 16 | (k[11] & 0xff) << 24, - j4 = k[12] & 0xff | (k[13] & 0xff) << 8 | (k[14] & 0xff) << 16 | (k[15] & 0xff) << 24, - j5 = c[ 4] & 0xff | (c[ 5] & 0xff) << 8 | (c[ 6] & 0xff) << 16 | (c[ 7] & 0xff) << 24, - j6 = p[ 0] & 0xff | (p[ 1] & 0xff) << 8 | (p[ 2] & 0xff) << 16 | (p[ 3] & 0xff) << 24, - j7 = p[ 4] & 0xff | (p[ 5] & 0xff) << 8 | (p[ 6] & 0xff) << 16 | (p[ 7] & 0xff) << 24, - j8 = p[ 8] & 0xff | (p[ 9] & 0xff) << 8 | (p[10] & 0xff) << 16 | (p[11] & 0xff) << 24, - j9 = p[12] & 0xff | (p[13] & 0xff) << 8 | (p[14] & 0xff) << 16 | (p[15] & 0xff) << 24, - j10 = c[ 8] & 0xff | (c[ 9] & 0xff) << 8 | (c[10] & 0xff) << 16 | (c[11] & 0xff) << 24, - j11 = k[16] & 0xff | (k[17] & 0xff) << 8 | (k[18] & 0xff) << 16 | (k[19] & 0xff) << 24, - j12 = k[20] & 0xff | (k[21] & 0xff) << 8 | (k[22] & 0xff) << 16 | (k[23] & 0xff) << 24, - j13 = k[24] & 0xff | (k[25] & 0xff) << 8 | (k[26] & 0xff) << 16 | (k[27] & 0xff) << 24, - j14 = k[28] & 0xff | (k[29] & 0xff) << 8 | (k[30] & 0xff) << 16 | (k[31] & 0xff) << 24, - j15 = c[12] & 0xff | (c[13] & 0xff) << 8 | (c[14] & 0xff) << 16 | (c[15] & 0xff) << 24; - - var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7, - x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14, - x15 = j15, u; - - for (var i = 0; i < 20; i += 2) { - u = x0 + x12 | 0; - x4 ^= u << 7 | u >>> 25; - u = x4 + x0 | 0; - x8 ^= u << 9 | u >>> 23; - u = x8 + x4 | 0; - x12 ^= u << 13 | u >>> 19; - u = x12 + x8 | 0; - x0 ^= u << 18 | u >>> 14; - - u = x5 + x1 | 0; - x9 ^= u << 7 | u >>> 25; - u = x9 + x5 | 0; - x13 ^= u << 9 | u >>> 23; - u = x13 + x9 | 0; - x1 ^= u << 13 | u >>> 19; - u = x1 + x13 | 0; - x5 ^= u << 18 | u >>> 14; - - u = x10 + x6 | 0; - x14 ^= u << 7 | u >>> 25; - u = x14 + x10 | 0; - x2 ^= u << 9 | u >>> 23; - u = x2 + x14 | 0; - x6 ^= u << 13 | u >>> 19; - u = x6 + x2 | 0; - x10 ^= u << 18 | u >>> 14; - - u = x15 + x11 | 0; - x3 ^= u << 7 | u >>> 25; - u = x3 + x15 | 0; - x7 ^= u << 9 | u >>> 23; - u = x7 + x3 | 0; - x11 ^= u << 13 | u >>> 19; - u = x11 + x7 | 0; - x15 ^= u << 18 | u >>> 14; - - u = x0 + x3 | 0; - x1 ^= u << 7 | u >>> 25; - u = x1 + x0 | 0; - x2 ^= u << 9 | u >>> 23; - u = x2 + x1 | 0; - x3 ^= u << 13 | u >>> 19; - u = x3 + x2 | 0; - x0 ^= u << 18 | u >>> 14; - - u = x5 + x4 | 0; - x6 ^= u << 7 | u >>> 25; - u = x6 + x5 | 0; - x7 ^= u << 9 | u >>> 23; - u = x7 + x6 | 0; - x4 ^= u << 13 | u >>> 19; - u = x4 + x7 | 0; - x5 ^= u << 18 | u >>> 14; - - u = x10 + x9 | 0; - x11 ^= u << 7 | u >>> 25; - u = x11 + x10 | 0; - x8 ^= u << 9 | u >>> 23; - u = x8 + x11 | 0; - x9 ^= u << 13 | u >>> 19; - u = x9 + x8 | 0; - x10 ^= u << 18 | u >>> 14; - - u = x15 + x14 | 0; - x12 ^= u << 7 | u >>> 25; - u = x12 + x15 | 0; - x13 ^= u << 9 | u >>> 23; - u = x13 + x12 | 0; - x14 ^= u << 13 | u >>> 19; - u = x14 + x13 | 0; - x15 ^= u << 18 | u >>> 14; - } - - o[ 0] = x0 >>> 0 & 0xff; - o[ 1] = x0 >>> 8 & 0xff; - o[ 2] = x0 >>> 16 & 0xff; - o[ 3] = x0 >>> 24 & 0xff; - - o[ 4] = x5 >>> 0 & 0xff; - o[ 5] = x5 >>> 8 & 0xff; - o[ 6] = x5 >>> 16 & 0xff; - o[ 7] = x5 >>> 24 & 0xff; - - o[ 8] = x10 >>> 0 & 0xff; - o[ 9] = x10 >>> 8 & 0xff; - o[10] = x10 >>> 16 & 0xff; - o[11] = x10 >>> 24 & 0xff; - - o[12] = x15 >>> 0 & 0xff; - o[13] = x15 >>> 8 & 0xff; - o[14] = x15 >>> 16 & 0xff; - o[15] = x15 >>> 24 & 0xff; - - o[16] = x6 >>> 0 & 0xff; - o[17] = x6 >>> 8 & 0xff; - o[18] = x6 >>> 16 & 0xff; - o[19] = x6 >>> 24 & 0xff; - - o[20] = x7 >>> 0 & 0xff; - o[21] = x7 >>> 8 & 0xff; - o[22] = x7 >>> 16 & 0xff; - o[23] = x7 >>> 24 & 0xff; - - o[24] = x8 >>> 0 & 0xff; - o[25] = x8 >>> 8 & 0xff; - o[26] = x8 >>> 16 & 0xff; - o[27] = x8 >>> 24 & 0xff; - - o[28] = x9 >>> 0 & 0xff; - o[29] = x9 >>> 8 & 0xff; - o[30] = x9 >>> 16 & 0xff; - o[31] = x9 >>> 24 & 0xff; - } - return xsalsa20_1; - } - - /* eslint-disable camelcase */ - - var hasRequiredCrypto_stream; - - function requireCrypto_stream () { - if (hasRequiredCrypto_stream) return crypto_stream; - hasRequiredCrypto_stream = 1; - (function (exports) { - const xsalsa20 = requireXsalsa20(); - - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - exports.crypto_stream_KEYBYTES = 32; - exports.crypto_stream_NONCEBYTES = 24; - exports.crypto_stream_PRIMITIVE = 'xsalsa20'; - exports.crypto_stream_xsalsa20_MESSAGEBYTES_MAX = Number.MAX_SAFE_INTEGER; - - exports.crypto_stream = function (c, nonce, key) { - c.fill(0); - exports.crypto_stream_xor(c, c, nonce, key); - }; - - exports.crypto_stream_xor = function (c, m, nonce, key) { - const xor = xsalsa20(nonce, key); - - xor.update(m, c); - xor.final(); - }; - - exports.crypto_stream_xor_instance = function (nonce, key) { - return new XOR(nonce, key) - }; - - function XOR (nonce, key) { - this._instance = xsalsa20(nonce, key); - } - - XOR.prototype.update = function (out, inp) { - this._instance.update(inp, out); - }; - - XOR.prototype.final = function () { - this._instance.finalize(); - this._instance = null; - }; - } (crypto_stream)); - return crypto_stream; - } - - /* - * Port of Andrew Moon's Poly1305-donna-16. Public domain. - * https://github.com/floodyberry/poly1305-donna - */ - - var poly1305_1; - var hasRequiredPoly1305; - - function requirePoly1305 () { - if (hasRequiredPoly1305) return poly1305_1; - hasRequiredPoly1305 = 1; - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - var poly1305 = function(key) { - this.buffer = new Uint8Array(16); - this.r = new Uint16Array(10); - this.h = new Uint16Array(10); - this.pad = new Uint16Array(8); - this.leftover = 0; - this.fin = 0; - - var t0, t1, t2, t3, t4, t5, t6, t7; - - t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff; - t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff; - t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03; - t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff; - t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff; - this.r[5] = ((t4 >>> 1)) & 0x1ffe; - t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff; - t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81; - t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff; - this.r[9] = ((t7 >>> 5)) & 0x007f; - - this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8; - this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8; - this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8; - this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8; - this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8; - this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8; - this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8; - this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8; - }; - - poly1305.prototype.blocks = function(m, mpos, bytes) { - var hibit = this.fin ? 0 : (1 << 11); - var t0, t1, t2, t3, t4, t5, t6, t7, c; - var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9; - - var h0 = this.h[0], - h1 = this.h[1], - h2 = this.h[2], - h3 = this.h[3], - h4 = this.h[4], - h5 = this.h[5], - h6 = this.h[6], - h7 = this.h[7], - h8 = this.h[8], - h9 = this.h[9]; - - var r0 = this.r[0], - r1 = this.r[1], - r2 = this.r[2], - r3 = this.r[3], - r4 = this.r[4], - r5 = this.r[5], - r6 = this.r[6], - r7 = this.r[7], - r8 = this.r[8], - r9 = this.r[9]; - - while (bytes >= 16) { - t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff; - t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff; - t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff; - t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff; - t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff; - h5 += ((t4 >>> 1)) & 0x1fff; - t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff; - t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff; - t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff; - h9 += ((t7 >>> 5)) | hibit; - - c = 0; - - d0 = c; - d0 += h0 * r0; - d0 += h1 * (5 * r9); - d0 += h2 * (5 * r8); - d0 += h3 * (5 * r7); - d0 += h4 * (5 * r6); - c = (d0 >>> 13); d0 &= 0x1fff; - d0 += h5 * (5 * r5); - d0 += h6 * (5 * r4); - d0 += h7 * (5 * r3); - d0 += h8 * (5 * r2); - d0 += h9 * (5 * r1); - c += (d0 >>> 13); d0 &= 0x1fff; - - d1 = c; - d1 += h0 * r1; - d1 += h1 * r0; - d1 += h2 * (5 * r9); - d1 += h3 * (5 * r8); - d1 += h4 * (5 * r7); - c = (d1 >>> 13); d1 &= 0x1fff; - d1 += h5 * (5 * r6); - d1 += h6 * (5 * r5); - d1 += h7 * (5 * r4); - d1 += h8 * (5 * r3); - d1 += h9 * (5 * r2); - c += (d1 >>> 13); d1 &= 0x1fff; - - d2 = c; - d2 += h0 * r2; - d2 += h1 * r1; - d2 += h2 * r0; - d2 += h3 * (5 * r9); - d2 += h4 * (5 * r8); - c = (d2 >>> 13); d2 &= 0x1fff; - d2 += h5 * (5 * r7); - d2 += h6 * (5 * r6); - d2 += h7 * (5 * r5); - d2 += h8 * (5 * r4); - d2 += h9 * (5 * r3); - c += (d2 >>> 13); d2 &= 0x1fff; - - d3 = c; - d3 += h0 * r3; - d3 += h1 * r2; - d3 += h2 * r1; - d3 += h3 * r0; - d3 += h4 * (5 * r9); - c = (d3 >>> 13); d3 &= 0x1fff; - d3 += h5 * (5 * r8); - d3 += h6 * (5 * r7); - d3 += h7 * (5 * r6); - d3 += h8 * (5 * r5); - d3 += h9 * (5 * r4); - c += (d3 >>> 13); d3 &= 0x1fff; - - d4 = c; - d4 += h0 * r4; - d4 += h1 * r3; - d4 += h2 * r2; - d4 += h3 * r1; - d4 += h4 * r0; - c = (d4 >>> 13); d4 &= 0x1fff; - d4 += h5 * (5 * r9); - d4 += h6 * (5 * r8); - d4 += h7 * (5 * r7); - d4 += h8 * (5 * r6); - d4 += h9 * (5 * r5); - c += (d4 >>> 13); d4 &= 0x1fff; - - d5 = c; - d5 += h0 * r5; - d5 += h1 * r4; - d5 += h2 * r3; - d5 += h3 * r2; - d5 += h4 * r1; - c = (d5 >>> 13); d5 &= 0x1fff; - d5 += h5 * r0; - d5 += h6 * (5 * r9); - d5 += h7 * (5 * r8); - d5 += h8 * (5 * r7); - d5 += h9 * (5 * r6); - c += (d5 >>> 13); d5 &= 0x1fff; - - d6 = c; - d6 += h0 * r6; - d6 += h1 * r5; - d6 += h2 * r4; - d6 += h3 * r3; - d6 += h4 * r2; - c = (d6 >>> 13); d6 &= 0x1fff; - d6 += h5 * r1; - d6 += h6 * r0; - d6 += h7 * (5 * r9); - d6 += h8 * (5 * r8); - d6 += h9 * (5 * r7); - c += (d6 >>> 13); d6 &= 0x1fff; - - d7 = c; - d7 += h0 * r7; - d7 += h1 * r6; - d7 += h2 * r5; - d7 += h3 * r4; - d7 += h4 * r3; - c = (d7 >>> 13); d7 &= 0x1fff; - d7 += h5 * r2; - d7 += h6 * r1; - d7 += h7 * r0; - d7 += h8 * (5 * r9); - d7 += h9 * (5 * r8); - c += (d7 >>> 13); d7 &= 0x1fff; - - d8 = c; - d8 += h0 * r8; - d8 += h1 * r7; - d8 += h2 * r6; - d8 += h3 * r5; - d8 += h4 * r4; - c = (d8 >>> 13); d8 &= 0x1fff; - d8 += h5 * r3; - d8 += h6 * r2; - d8 += h7 * r1; - d8 += h8 * r0; - d8 += h9 * (5 * r9); - c += (d8 >>> 13); d8 &= 0x1fff; - - d9 = c; - d9 += h0 * r9; - d9 += h1 * r8; - d9 += h2 * r7; - d9 += h3 * r6; - d9 += h4 * r5; - c = (d9 >>> 13); d9 &= 0x1fff; - d9 += h5 * r4; - d9 += h6 * r3; - d9 += h7 * r2; - d9 += h8 * r1; - d9 += h9 * r0; - c += (d9 >>> 13); d9 &= 0x1fff; - - c = (((c << 2) + c)) | 0; - c = (c + d0) | 0; - d0 = c & 0x1fff; - c = (c >>> 13); - d1 += c; - - h0 = d0; - h1 = d1; - h2 = d2; - h3 = d3; - h4 = d4; - h5 = d5; - h6 = d6; - h7 = d7; - h8 = d8; - h9 = d9; - - mpos += 16; - bytes -= 16; - } - this.h[0] = h0; - this.h[1] = h1; - this.h[2] = h2; - this.h[3] = h3; - this.h[4] = h4; - this.h[5] = h5; - this.h[6] = h6; - this.h[7] = h7; - this.h[8] = h8; - this.h[9] = h9; - }; - - poly1305.prototype.finish = function(mac, macpos) { - var g = new Uint16Array(10); - var c, mask, f, i; - - if (this.leftover) { - i = this.leftover; - this.buffer[i++] = 1; - for (; i < 16; i++) this.buffer[i] = 0; - this.fin = 1; - this.blocks(this.buffer, 0, 16); - } - - c = this.h[1] >>> 13; - this.h[1] &= 0x1fff; - for (i = 2; i < 10; i++) { - this.h[i] += c; - c = this.h[i] >>> 13; - this.h[i] &= 0x1fff; - } - this.h[0] += (c * 5); - c = this.h[0] >>> 13; - this.h[0] &= 0x1fff; - this.h[1] += c; - c = this.h[1] >>> 13; - this.h[1] &= 0x1fff; - this.h[2] += c; - - g[0] = this.h[0] + 5; - c = g[0] >>> 13; - g[0] &= 0x1fff; - for (i = 1; i < 10; i++) { - g[i] = this.h[i] + c; - c = g[i] >>> 13; - g[i] &= 0x1fff; - } - g[9] -= (1 << 13); - - mask = (c ^ 1) - 1; - for (i = 0; i < 10; i++) g[i] &= mask; - mask = ~mask; - for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i]; - - this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff; - this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff; - this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff; - this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff; - this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff; - this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff; - this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff; - this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff; - - f = this.h[0] + this.pad[0]; - this.h[0] = f & 0xffff; - for (i = 1; i < 8; i++) { - f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0; - this.h[i] = f & 0xffff; - } - - mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff; - mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff; - mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff; - mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff; - mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff; - mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff; - mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff; - mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff; - mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff; - mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff; - mac[macpos+10] = (this.h[5] >>> 0) & 0xff; - mac[macpos+11] = (this.h[5] >>> 8) & 0xff; - mac[macpos+12] = (this.h[6] >>> 0) & 0xff; - mac[macpos+13] = (this.h[6] >>> 8) & 0xff; - mac[macpos+14] = (this.h[7] >>> 0) & 0xff; - mac[macpos+15] = (this.h[7] >>> 8) & 0xff; - }; - - poly1305.prototype.update = function(m, mpos, bytes) { - var i, want; - - if (this.leftover) { - want = (16 - this.leftover); - if (want > bytes) - want = bytes; - for (i = 0; i < want; i++) - this.buffer[this.leftover + i] = m[mpos+i]; - bytes -= want; - mpos += want; - this.leftover += want; - if (this.leftover < 16) - return; - this.blocks(this.buffer, 0, 16); - this.leftover = 0; - } - - if (bytes >= 16) { - want = bytes - (bytes % 16); - this.blocks(m, mpos, want); - mpos += want; - bytes -= want; - } - - if (bytes) { - for (i = 0; i < bytes; i++) - this.buffer[this.leftover + i] = m[mpos+i]; - this.leftover += bytes; - } - }; - - poly1305_1 = poly1305; - return poly1305_1; - } - - /* eslint-disable camelcase */ - - var crypto_onetimeauth_1; - var hasRequiredCrypto_onetimeauth; - - function requireCrypto_onetimeauth () { - if (hasRequiredCrypto_onetimeauth) return crypto_onetimeauth_1; - hasRequiredCrypto_onetimeauth = 1; - const assert = requireNanoassert(); - const Poly1305 = requirePoly1305(); - const { crypto_verify_16 } = requireCrypto_verify(); - - const crypto_onetimeauth_BYTES = 16; - const crypto_onetimeauth_KEYBYTES = 32; - const crypto_onetimeauth_PRIMITIVE = 'poly1305'; - - crypto_onetimeauth_1 = { - crypto_onetimeauth, - crypto_onetimeauth_verify, - crypto_onetimeauth_BYTES, - crypto_onetimeauth_KEYBYTES, - crypto_onetimeauth_PRIMITIVE - }; - - function crypto_onetimeauth (mac, msg, key) { - assert(mac.byteLength === crypto_onetimeauth_BYTES, "mac must be 'crypto_onetimeauth_BYTES' bytes"); - assert(msg.byteLength != null, 'msg must be buffer'); - assert(key.byteLength === crypto_onetimeauth_KEYBYTES, "key must be 'crypto_onetimeauth_KEYBYTES' bytes"); - - var s = new Poly1305(key); - s.update(msg, 0, msg.byteLength); - s.finish(mac, 0); - } - - function crypto_onetimeauth_verify (mac, msg, key) { - assert(mac.byteLength === crypto_onetimeauth_BYTES, "mac must be 'crypto_onetimeauth_BYTES' bytes"); - assert(msg.byteLength != null, 'msg must be buffer'); - assert(key.byteLength === crypto_onetimeauth_KEYBYTES, "key must be 'crypto_onetimeauth_KEYBYTES' bytes"); - - var tmp = new Uint8Array(16); - crypto_onetimeauth(tmp, msg, key); - return crypto_verify_16(mac, 0, tmp, 0) - } - return crypto_onetimeauth_1; - } - - /* eslint-disable camelcase */ - - var crypto_secretbox_1; - var hasRequiredCrypto_secretbox; - - function requireCrypto_secretbox () { - if (hasRequiredCrypto_secretbox) return crypto_secretbox_1; - hasRequiredCrypto_secretbox = 1; - const assert = requireNanoassert(); - const { crypto_stream, crypto_stream_xor } = requireCrypto_stream(); - const { crypto_onetimeauth, crypto_onetimeauth_verify, crypto_onetimeauth_BYTES, crypto_onetimeauth_KEYBYTES } = requireCrypto_onetimeauth(); - - const crypto_secretbox_KEYBYTES = 32; - const crypto_secretbox_NONCEBYTES = 24; - const crypto_secretbox_ZEROBYTES = 32; - const crypto_secretbox_BOXZEROBYTES = 16; - const crypto_secretbox_MACBYTES = 16; - - crypto_secretbox_1 = { - crypto_secretbox, - crypto_secretbox_open, - crypto_secretbox_detached, - crypto_secretbox_open_detached, - crypto_secretbox_easy, - crypto_secretbox_open_easy, - crypto_secretbox_KEYBYTES, - crypto_secretbox_NONCEBYTES, - crypto_secretbox_ZEROBYTES, - crypto_secretbox_BOXZEROBYTES, - crypto_secretbox_MACBYTES - }; - - function crypto_secretbox (c, m, n, k) { - assert(c.byteLength === m.byteLength, "c must be 'm.byteLength' bytes"); - const mlen = m.byteLength; - assert(mlen >= crypto_secretbox_ZEROBYTES, "mlen must be at least 'crypto_secretbox_ZEROBYTES'"); - assert(n.byteLength === crypto_secretbox_NONCEBYTES, "n must be 'crypto_secretbox_NONCEBYTES' bytes"); - assert(k.byteLength === crypto_secretbox_KEYBYTES, "k must be 'crypto_secretbox_KEYBYTES' bytes"); - - crypto_stream_xor(c, m, n, k); - crypto_onetimeauth( - c.subarray(crypto_secretbox_BOXZEROBYTES, crypto_secretbox_BOXZEROBYTES + crypto_onetimeauth_BYTES), - c.subarray(crypto_secretbox_BOXZEROBYTES + crypto_onetimeauth_BYTES, c.byteLength), - c.subarray(0, crypto_onetimeauth_KEYBYTES) - ); - c.fill(0, 0, crypto_secretbox_BOXZEROBYTES); - } - - function crypto_secretbox_open (m, c, n, k) { - assert(c.byteLength === m.byteLength, "c must be 'm.byteLength' bytes"); - const mlen = m.byteLength; - assert(mlen >= crypto_secretbox_ZEROBYTES, "mlen must be at least 'crypto_secretbox_ZEROBYTES'"); - assert(n.byteLength === crypto_secretbox_NONCEBYTES, "n must be 'crypto_secretbox_NONCEBYTES' bytes"); - assert(k.byteLength === crypto_secretbox_KEYBYTES, "k must be 'crypto_secretbox_KEYBYTES' bytes"); - - const x = new Uint8Array(crypto_onetimeauth_KEYBYTES); - crypto_stream(x, n, k); - const validMac = crypto_onetimeauth_verify( - c.subarray(crypto_secretbox_BOXZEROBYTES, crypto_secretbox_BOXZEROBYTES + crypto_onetimeauth_BYTES), - c.subarray(crypto_secretbox_BOXZEROBYTES + crypto_onetimeauth_BYTES, c.byteLength), - x - ); - - if (validMac === false) return false - crypto_stream_xor(m, c, n, k); - m.fill(0, 0, 32); - return true - } - - function crypto_secretbox_detached (o, mac, msg, n, k) { - assert(o.byteLength === msg.byteLength, "o must be 'msg.byteLength' bytes"); - assert(mac.byteLength === crypto_secretbox_MACBYTES, "mac must be 'crypto_secretbox_MACBYTES' bytes"); - assert(n.byteLength === crypto_secretbox_NONCEBYTES, "n must be 'crypto_secretbox_NONCEBYTES' bytes"); - assert(k.byteLength === crypto_secretbox_KEYBYTES, "k must be 'crypto_secretbox_KEYBYTES' bytes"); - - const tmp = new Uint8Array(msg.byteLength + mac.byteLength); - crypto_secretbox_easy(tmp, msg, n, k); - mac.set(tmp.subarray(0, mac.byteLength)); - o.set(tmp.subarray(mac.byteLength)); - return true - } - - function crypto_secretbox_open_detached (msg, o, mac, n, k) { - assert(o.byteLength === msg.byteLength, "o must be 'msg.byteLength' bytes"); - assert(mac.byteLength === crypto_secretbox_MACBYTES, "mac must be 'crypto_secretbox_MACBYTES' bytes"); - assert(n.byteLength === crypto_secretbox_NONCEBYTES, "n must be 'crypto_secretbox_NONCEBYTES' bytes"); - assert(k.byteLength === crypto_secretbox_KEYBYTES, "k must be 'crypto_secretbox_KEYBYTES' bytes"); - - const tmp = new Uint8Array(o.byteLength + mac.byteLength); - tmp.set(mac); - tmp.set(o, mac.byteLength); - return crypto_secretbox_open_easy(msg, tmp, n, k) - } - - function crypto_secretbox_easy (o, msg, n, k) { - assert(o.byteLength === msg.byteLength + crypto_secretbox_MACBYTES, "o must be 'msg.byteLength + crypto_secretbox_MACBYTES' bytes"); - assert(n.byteLength === crypto_secretbox_NONCEBYTES, "n must be 'crypto_secretbox_NONCEBYTES' bytes"); - assert(k.byteLength === crypto_secretbox_KEYBYTES, "k must be 'crypto_secretbox_KEYBYTES' bytes"); - - const m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.byteLength); - const c = new Uint8Array(m.byteLength); - m.set(msg, crypto_secretbox_ZEROBYTES); - crypto_secretbox(c, m, n, k); - o.set(c.subarray(crypto_secretbox_BOXZEROBYTES)); - } - - function crypto_secretbox_open_easy (msg, box, n, k) { - assert(box.byteLength === msg.byteLength + crypto_secretbox_MACBYTES, "box must be 'msg.byteLength + crypto_secretbox_MACBYTES' bytes"); - assert(n.byteLength === crypto_secretbox_NONCEBYTES, "n must be 'crypto_secretbox_NONCEBYTES' bytes"); - assert(k.byteLength === crypto_secretbox_KEYBYTES, "k must be 'crypto_secretbox_KEYBYTES' bytes"); - - const c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.byteLength); - const m = new Uint8Array(c.byteLength); - c.set(box, crypto_secretbox_BOXZEROBYTES); - if (crypto_secretbox_open(m, c, n, k) === false) return false - msg.set(m.subarray(crypto_secretbox_ZEROBYTES)); - return true - } - return crypto_secretbox_1; - } - - /* eslint-disable camelcase */ - - var crypto_box; - var hasRequiredCrypto_box; - - function requireCrypto_box () { - if (hasRequiredCrypto_box) return crypto_box; - hasRequiredCrypto_box = 1; - const { crypto_hash_sha512 } = requireCrypto_hash(); - const { crypto_scalarmult, crypto_scalarmult_base } = requireCrypto_scalarmult(); - const { randombytes } = requireRandombytes(); - const { crypto_generichash_batch } = requireCrypto_generichash(); - const { crypto_stream_xsalsa20_MESSAGEBYTES_MAX } = requireCrypto_stream(); - const { - crypto_secretbox_open_easy, - crypto_secretbox_easy, - crypto_secretbox_detached, - crypto_secretbox_open_detached - } = requireCrypto_secretbox(); - const xsalsa20 = requireXsalsa20(); - const assert = requireNanoassert(); - - const crypto_box_PUBLICKEYBYTES = 32; - const crypto_box_SECRETKEYBYTES = 32; - const crypto_box_NONCEBYTES = 24; - const crypto_box_ZEROBYTES = 32; - const crypto_box_BOXZEROBYTES = 16; - const crypto_box_SEALBYTES = 48; - const crypto_box_SEEDBYTES = 32; - const crypto_box_BEFORENMBYTES = 32; - const crypto_box_MACBYTES = 16; - - const crypto_box_curve25519xsalsa20poly1305_MACBYTES = 16; - - const crypto_box_MESSAGEBYTES_MAX = - crypto_stream_xsalsa20_MESSAGEBYTES_MAX - - crypto_box_curve25519xsalsa20poly1305_MACBYTES; - - crypto_box = { - crypto_box_easy, - crypto_box_open_easy, - crypto_box_keypair, - crypto_box_seed_keypair, - crypto_box_seal, - crypto_box_seal_open, - crypto_box_PUBLICKEYBYTES, - crypto_box_SECRETKEYBYTES, - crypto_box_NONCEBYTES, - crypto_box_ZEROBYTES, - crypto_box_BOXZEROBYTES, - crypto_box_SEALBYTES, - crypto_box_SEEDBYTES, - crypto_box_BEFORENMBYTES, - crypto_box_MACBYTES - }; - - function crypto_box_keypair (pk, sk) { - check(pk, crypto_box_PUBLICKEYBYTES); - check(sk, crypto_box_SECRETKEYBYTES); - randombytes(sk, 32); - return crypto_scalarmult_base(pk, sk) - } - function crypto_box_seed_keypair (pk, sk, seed) { - assert(pk.byteLength === crypto_box_PUBLICKEYBYTES, "pk should be 'crypto_box_PUBLICKEYBYTES' bytes"); - assert(sk.byteLength === crypto_box_SECRETKEYBYTES, "sk should be 'crypto_box_SECRETKEYBYTES' bytes"); - assert(sk.byteLength === crypto_box_SEEDBYTES, "sk should be 'crypto_box_SEEDBYTES' bytes"); - - const hash = new Uint8Array(64); - crypto_hash_sha512(hash, seed, 32); - sk.set(hash.subarray(0, 32)); - hash.fill(0); - - return crypto_scalarmult_base(pk, sk) - } - - function crypto_box_seal (c, m, pk) { - check(c, crypto_box_SEALBYTES + m.length); - check(pk, crypto_box_PUBLICKEYBYTES); - - var epk = c.subarray(0, crypto_box_PUBLICKEYBYTES); - var esk = new Uint8Array(crypto_box_SECRETKEYBYTES); - crypto_box_keypair(epk, esk); - - var n = new Uint8Array(crypto_box_NONCEBYTES); - crypto_generichash_batch(n, [epk, pk]); - - var s = new Uint8Array(crypto_box_PUBLICKEYBYTES); - crypto_scalarmult(s, esk, pk); - - var k = new Uint8Array(crypto_box_BEFORENMBYTES); - var zero = new Uint8Array(16); - xsalsa20.core_hsalsa20(k, zero, s, xsalsa20.SIGMA); - - crypto_secretbox_easy(c.subarray(epk.length), m, n, k); - - cleanup(esk); - } - - function crypto_box_seal_open (m, c, pk, sk) { - check(c, crypto_box_SEALBYTES); - check(m, c.length - crypto_box_SEALBYTES); - check(pk, crypto_box_PUBLICKEYBYTES); - check(sk, crypto_box_SECRETKEYBYTES); - - var epk = c.subarray(0, crypto_box_PUBLICKEYBYTES); - - var n = new Uint8Array(crypto_box_NONCEBYTES); - crypto_generichash_batch(n, [epk, pk]); - - var s = new Uint8Array(crypto_box_PUBLICKEYBYTES); - crypto_scalarmult(s, sk, epk); - - var k = new Uint8Array(crypto_box_BEFORENMBYTES); - var zero = new Uint8Array(16); - xsalsa20.core_hsalsa20(k, zero, s, xsalsa20.SIGMA); - - return crypto_secretbox_open_easy(m, c.subarray(epk.length), n, k) - } - - function crypto_box_beforenm (k, pk, sk) { - const zero = new Uint8Array(16); - const s = new Uint8Array(32); - - assert(crypto_scalarmult(s, sk, pk) === 0); - - xsalsa20.core_hsalsa20(k, zero, s, xsalsa20.SIGMA); - - return true - } - - function crypto_box_detached_afternm (c, mac, m, n, k) { - return crypto_secretbox_detached(c, mac, m, n, k) - } - - function crypto_box_detached (c, mac, m, n, pk, sk) { - check(mac, crypto_box_MACBYTES); - check(n, crypto_box_NONCEBYTES); - check(pk, crypto_box_PUBLICKEYBYTES); - check(sk, crypto_box_SECRETKEYBYTES); - - const k = new Uint8Array(crypto_box_BEFORENMBYTES); - - assert(crypto_box_beforenm(k, pk, sk)); - - const ret = crypto_box_detached_afternm(c, mac, m, n, k); - cleanup(k); - - return ret - } - - function crypto_box_easy (c, m, n, pk, sk) { - assert( - c.length >= m.length + crypto_box_MACBYTES, - "c should be at least 'm.length + crypto_box_MACBYTES' bytes" - ); - assert( - m.length <= crypto_box_MESSAGEBYTES_MAX, - "m should be at most 'crypto_box_MESSAGEBYTES_MAX' bytes" - ); - - return crypto_box_detached( - c.subarray(crypto_box_MACBYTES, m.length + crypto_box_MACBYTES), - c.subarray(0, crypto_box_MACBYTES), - m, - n, - pk, - sk - ) - } - - function crypto_box_open_detached_afternm (m, c, mac, n, k) { - return crypto_secretbox_open_detached(m, c, mac, n, k) - } - - function crypto_box_open_detached (m, c, mac, n, pk, sk) { - const k = new Uint8Array(crypto_box_BEFORENMBYTES); - assert(crypto_box_beforenm(k, pk, sk)); - - const ret = crypto_box_open_detached_afternm(m, c, mac, n, k); - cleanup(k); - - return ret - } - - function crypto_box_open_easy (m, c, n, pk, sk) { - assert( - c.length >= m.length + crypto_box_MACBYTES, - "c should be at least 'm.length + crypto_box_MACBYTES' bytes" - ); - - return crypto_box_open_detached( - m, - c.subarray(crypto_box_MACBYTES, m.length + crypto_box_MACBYTES), - c.subarray(0, crypto_box_MACBYTES), - n, - pk, - sk - ) - } - - function check (buf, len) { - if (!buf || (len && buf.length < len)) throw new Error('Argument must be a buffer' + (len ? ' of length ' + len : '')) - } - - function cleanup (arr) { - for (let i = 0; i < arr.length; i++) arr[i] = 0; - } - return crypto_box; - } - - var sha256Universal = {exports: {}}; - - var sha256$3 = {exports: {}}; - - var hasRequiredSha256$3; - - function requireSha256$3 () { - if (hasRequiredSha256$3) return sha256$3.exports; - hasRequiredSha256$3 = 1; - const assert = requireNanoassert(); - const b4a = requireBrowser$1(); - - sha256$3.exports = Sha256; - const SHA256_BYTES = sha256$3.exports.SHA256_BYTES = 32; - const BLOCKSIZE = 64; - - const K = [ - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, - 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, - 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, - 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, - 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, - 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, - 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 - ]; - - function expand (a, b, c, d) { - var b_ = (((a >>> 17) | (a << 15)) ^ ((a >>> 19) | (a << 13)) ^ (a >>> 10)) + b; - var d_ = (((c >>> 7) | (c << 25)) ^ ((c >>> 18) | (c << 14)) ^ (c >>> 3)) + d; - - return (b_ + d_) << 0 - } - - function compress (state, words) { - // initialise registers - var ch, maj, s0, s1, T1, T2; - var [a, b, c, d, e, f, g, h] = state; - - // expand message schedule - const w = new Uint32Array(64); - for (let i = 0; i < 16; i++) w[i] = bswap(words[i]); - for (let i = 16; i < 64; i++) w[i] = expand(w[i - 2], w[i - 7], w[i - 15], w[i - 16]); - for (let i = 0; i < 64; i += 4) round(i); - - state[0] = state[0] + a; - state[1] = state[1] + b; - state[2] = state[2] + c; - state[3] = state[3] + d; - state[4] = state[4] + e; - state[5] = state[5] + f; - state[6] = state[6] + g; - state[7] = state[7] + h; - - function round (n) { - ch = (e & f) ^ (~e & g); - maj = (a & b) ^ (a & c) ^ (b & c); - s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10)); - s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7)); - T1 = h + ch + s1 + w[n] + K[n]; - T2 = s0 + maj; - h = d + T1; - d = T1 + T2; - - ch = (h & e) ^ (~h & f); - maj = (d & a) ^ (d & b) ^ (a & b); - s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10)); - s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7)); - T1 = g + ch + s1 + w[n + 1] + K[n + 1]; - T2 = s0 + maj; - g = c + T1; - c = T1 + T2; - - ch = (g & h) ^ (~g & e); - maj = (c & d) ^ (c & a) ^ (d & a); - s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10)); - s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7)); - T1 = f + ch + s1 + w[n + 2] + K[n + 2]; - T2 = s0 + maj; - f = b + T1; - b = T1 + T2; - - ch = (f & g) ^ (~f & h); - maj = (b & c) ^ (b & d) ^ (c & d); - s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10)); - s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7)); - T1 = e + ch + s1 + w[n + 3] + K[n + 3]; - T2 = s0 + maj; - e = a + T1; - a = T1 + T2; - } - } - - function Sha256 () { - if (!(this instanceof Sha256)) return new Sha256() - - this.buffer = new ArrayBuffer(64); - this.bytesRead = 0; - this.pos = 0; - this.digestLength = SHA256_BYTES; - this.finalised = false; - - this.load = new Uint8Array(this.buffer); - this.words = new Uint32Array(this.buffer); - - this.state = new Uint32Array([ - 0x6a09e667, - 0xbb67ae85, - 0x3c6ef372, - 0xa54ff53a, - 0x510e527f, - 0x9b05688c, - 0x1f83d9ab, - 0x5be0cd19 - ]); - - return this - } - - Sha256.prototype.update = function (input, enc) { - assert(this.finalised === false, 'Hash instance finalised'); - - var [inputBuf, len] = formatInput(input, enc); - var i = 0; - this.bytesRead += len; - - while (len > 0) { - this.load.set(inputBuf.subarray(i, i + BLOCKSIZE - this.pos), this.pos); - i += BLOCKSIZE - this.pos; - len -= BLOCKSIZE - this.pos; - - if (len < 0) break - - this.pos = 0; - compress(this.state, this.words); - } - - this.pos = this.bytesRead & 0x3f; - this.load.fill(0, this.pos); - - return this - }; - - Sha256.prototype.digest = function (enc, offset = 0) { - assert(this.finalised === false, 'Hash instance finalised'); - this.finalised = true; - - this.load.fill(0, this.pos); - this.load[this.pos] = 0x80; - - if (this.pos > 55) { - compress(this.state, this.words); - - this.words.fill(0); - this.pos = 0; - } - - const view = new DataView(this.buffer); - view.setUint32(56, this.bytesRead / 2 ** 29); - view.setUint32(60, this.bytesRead << 3); - - compress(this.state, this.words); - - const resultBuf = new Uint8Array(this.state.map(bswap).buffer); - - if (!enc) { - return new Uint8Array(resultBuf) - } - - if (typeof enc === 'string') { - return b4a.toString(resultBuf, enc) - } - - assert(enc instanceof Uint8Array, 'input must be Uint8Array or Buffer'); - assert(enc.byteLength >= this.digestLength + offset, 'input not large enough for digest'); - - for (let i = 0; i < this.digestLength; i++) { - enc[i + offset] = resultBuf[i]; - } - - return enc - }; - - function HMAC (key) { - if (!(this instanceof HMAC)) return new HMAC(key) - - this.pad = b4a.alloc(64); - this.inner = Sha256(); - this.outer = Sha256(); - - const keyhash = b4a.alloc(32); - if (key.byteLength > 64) { - Sha256().update(key).digest(keyhash); - key = keyhash; - } - - this.pad.fill(0x36); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.inner.update(this.pad); - - this.pad.fill(0x5c); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.outer.update(this.pad); - - this.pad.fill(0); - keyhash.fill(0); - } - - HMAC.prototype.update = function (input, enc) { - this.inner.update(input, enc); - return this - }; - - HMAC.prototype.digest = function (enc, offset = 0) { - this.outer.update(this.inner.digest()); - return this.outer.digest(enc, offset) - }; - - Sha256.HMAC = HMAC; - - function formatInput (input, enc) { - var result = b4a.from(input, enc); - - return [result, result.byteLength] - } - - function bswap (a) { - var r = ((a & 0x00ff00ff) >>> 8) | ((a & 0x00ff00ff) << 24); - var l = ((a & 0xff00ff00) << 8) | ((a & 0xff00ff00) >>> 24); - - return r | l - } - return sha256$3.exports; - } - - var sha256Wasm = {exports: {}}; - - var sha256$2; - var hasRequiredSha256$2; - - function requireSha256$2 () { - if (hasRequiredSha256$2) return sha256$2; - hasRequiredSha256$2 = 1; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __toBinary = /* @__PURE__ */ (() => { - var table = new Uint8Array(128); - for (var i = 0; i < 64; i++) - table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i; - return (base64) => { - var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0); - for (var i2 = 0, j = 0; i2 < n; ) { - var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)]; - var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)]; - bytes2[j++] = c0 << 2 | c1 >> 4; - bytes2[j++] = c1 << 4 | c2 >> 2; - bytes2[j++] = c2 << 6 | c3; - } - return bytes2; - }; - })(); - - // wasm-binary:./sha256.wat - var require_sha256 = __commonJS({ - "wasm-binary:./sha256.wat"(exports2, module2) { - module2.exports = __toBinary("AGFzbQEAAAABNAVgAX8Bf2AIf39/f39/f38AYAR/f39/AX9gEX9/f39/f39/f39/f39/f39/AGAEf39/fwADBgUAAQIDBAUDAQABBikIfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwcTAgZtZW1vcnkCAAZzaGEyNTYABAreFwUZACAAQf+B/AdxQQh4IABBgP6DeHFBCHdyC7wDAQZ/IwQjBXEjBEF/cyMGcXMhCiMAIwFxIwAjAnFzIwEjAnFzIQsjAEECeCMAQQ14cyMAQRZ4cyEMIwRBBngjBEELeHMjBEEZeHMhDSMHIApqIA1qIABqIARqIQggDCALaiEJIwMgCGokByAIIAlqJAMjByMEcSMHQX9zIwVxcyEKIwMjAHEjAyMBcXMjACMBcXMhCyMDQQJ4IwNBDXhzIwNBFnhzIQwjB0EGeCMHQQt4cyMHQRl4cyENIwYgCmogDWogAWogBWohCCAMIAtqIQkjAiAIaiQGIAggCWokAiMGIwdxIwZBf3MjBHFzIQojAiMDcSMCIwBxcyMDIwBxcyELIwJBAngjAkENeHMjAkEWeHMhDCMGQQZ4IwZBC3hzIwZBGXhzIQ0jBSAKaiANaiACaiAGaiEIIAwgC2ohCSMBIAhqJAUgCCAJaiQBIwUjBnEjBUF/cyMHcXMhCiMBIwJxIwEjA3FzIwIjA3FzIQsjAUECeCMBQQ14cyMBQRZ4cyEMIwVBBngjBUELeHMjBUEZeHMhDSMEIApqIA1qIANqIAdqIQggDCALaiEJIwAgCGokBCAIIAlqJAALKwAgAEEReCAAQRN4cyAAQQp2cyABaiACQQd4IAJBEnhzIAJBA3ZzIANqagvLCwEwfyAAKAJoRQRAIABB58yn0AY2AgAgAEGF3Z7bezYCBCAAQfLmu+MDNgIIIABBuuq/qno2AgwgAEH/pLmIBTYCECAAQYzRldh5NgIUIABBq7OP/AE2AhggAEGZmoPfBTYCHCAAQQE2AmgLIAAoAgAkACAAKAIEJAEgACgCCCQCIAAoAgwkAyAAKAIQJAQgACgCFCQFIAAoAhgkBiAAKAIcJAcgARAAIQEgAhAAIQIgAxAAIQMgBBAAIQQgBRAAIQUgBhAAIQYgBxAAIQcgCBAAIQggCRAAIQkgChAAIQogCxAAIQsgDBAAIQwgDRAAIQ0gDhAAIQ4gDxAAIQ8gEBAAIRAgASACIAMgBEGY36iUBEGRid2JB0HP94Oue0Glt9fNfhABIAUgBiAHIAhB24TbygNB8aPEzwVBpIX+kXlB1b3x2HoQASAJIAogCyAMQZjVnsB9QYG2jZQBQb6LxqECQcP7sagFEAEgDSAOIA8gEEH0uvmVB0H+4/qGeEGnjfDeeUH04u+MfBABIA8gCiACIAEQAiEBIBAgCyADIAIQAiECIAEgDCAEIAMQAiEDIAIgDSAFIAQQAiEEIAMgDiAGIAUQAiEFIAQgDyAHIAYQAiEGIAUgECAIIAcQAiEHIAYgASAJIAgQAiEIIAcgAiAKIAkQAiEJIAggAyALIAoQAiEKIAkgBCAMIAsQAiELIAogBSANIAwQAiEMIAsgBiAOIA0QAiENIAwgByAPIA4QAiEOIA0gCCAQIA8QAiEPIA4gCSABIBAQAiEQIAEgAiADIARBwdPtpH5Bho/5/X5BxruG/gBBzMOyoAIQASAFIAYgByAIQe/YpO8CQaqJ0tMEQdzTwuUFQdqR5rcHEAEgCSAKIAsgDEHSovnBeUHtjMfBekHIz4yAe0HH/+X6exABIA0gDiAPIBBB85eAt3xBx6KerX1B0capNkHn0qShARABIA8gCiACIAEQAiEBIBAgCyADIAIQAiECIAEgDCAEIAMQAiEDIAIgDSAFIAQQAiEEIAMgDiAGIAUQAiEFIAQgDyAHIAYQAiEGIAUgECAIIAcQAiEHIAYgASAJIAgQAiEIIAcgAiAKIAkQAiEJIAggAyALIAoQAiEKIAkgBCAMIAsQAiELIAogBSANIAwQAiEMIAsgBiAOIA0QAiENIAwgByAPIA4QAiEOIA0gCCAQIA8QAiEPIA4gCSABIBAQAiEQIAEgAiADIARBhZXcvQJBuMLs8AJB/Nux6QRBk5rgmQUQASAFIAYgByAIQdTmqagGQbuVqLMHQa6Si454QYXZyJN5EAEgCSAKIAsgDEGh0f+VekHLzOnAekHwlq6SfEGjo7G7fBABIA0gDiAPIBBBmdDLjH1BpIzktH1Bheu4oH9B8MCqgwEQASAPIAogAiABEAIhASAQIAsgAyACEAIhAiABIAwgBCADEAIhAyACIA0gBSAEEAIhBCADIA4gBiAFEAIhBSAEIA8gByAGEAIhBiAFIBAgCCAHEAIhByAGIAEgCSAIEAIhCCAHIAIgCiAJEAIhCSAIIAMgCyAKEAIhCiAJIAQgDCALEAIhCyAKIAUgDSAMEAIhDCALIAYgDiANEAIhDSAMIAcgDyAOEAIhDiANIAggECAPEAIhDyAOIAkgASAQEAIhECABIAIgAyAEQZaCk80BQYjY3fEBQczuoboCQbX5wqUDEAEgBSAGIAcgCEGzmfDIA0HK1OL2BEHPlPPcBUHz37nBBhABIAkgCiALIAxB7oW+pAdB78aVxQdBlPChpnhBiISc5ngQASANIA4gDyAQQfr/+4V5QevZwaJ6QffH5vd7QfLxxbN8EAEgACAAKAIAIwBqNgIAIAAgACgCBCMBajYCBCAAIAAoAggjAmo2AgggACAAKAIMIwNqNgIMIAAgACgCECMEajYCECAAIAAoAhQjBWo2AhQgACAAKAIYIwZqNgIYIAAgACgCHCMHajYCHAuKCAIBfhJ/IAApAyAhBCAEp0E/cSACaiEGIAQgAq18IQQgACAENwMgAkAgACgCKCEHIAAoAiwhCCAAKAIwIQkgACgCNCEKIAAoAjghCyAAKAI8IQwgACgCQCENIAAoAkQhDiAAKAJIIQ8gACgCTCEQIAAoAlAhESAAKAJUIRIgACgCWCETIAAoAlwhFCAAKAJgIRUgACgCZCEWIAZBwABrIgZBAEgNACAAIAcgCCAJIAogCyAMIA0gDiAPIBAgESASIBMgFCAVIBYQAwNAIAEoAgAhByABKAIEIQggASgCCCEJIAEoAgwhCiABKAIQIQsgASgCFCEMIAEoAhghDSABKAIcIQ4gASgCICEPIAEoAiQhECABKAIoIREgASgCLCESIAEoAjAhEyABKAI0IRQgASgCOCEVIAEoAjwhFiABQcAAaiEBIAZBwABrIgZBAEgEQCAAIAc2AiggACAINgIsIAAgCTYCMCAAIAo2AjQgACALNgI4IAAgDDYCPCAAIA02AkAgACAONgJEIAAgDzYCSCAAIBA2AkwgACARNgJQIAAgEjYCVCAAIBM2AlggACAUNgJcIAAgFTYCYCAAIBY2AmQMAgsgACAHIAggCSAKIAsgDCANIA4gDyAQIBEgEiATIBQgFSAWEAMMAAsLIANBAUYEQCAEp0E/cSEGQYABIAZBA3FBA3R0IQUCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBkECdg4PAwQFBgcICQoLDA0ODxABAgsLIAUgFXIhFUEAIQULIAUgFnIhFkEAIQUgACAHIAggCSAKIAsgDCANIA4gDyAQIBEgEiATIBQgFSAWEAMgACAENwMgQQAhB0EAIQhBACEJQQAhCkEAIQtBACEMQQAhDUEAIQ5BACEPQQAhEEEAIRFBACESQQAhE0EAIRRBACEVQQAhFgsgBSAHciEHQQAhBQsgBSAIciEIQQAhBQsgBSAJciEJQQAhBQsgBSAKciEKQQAhBQsgBSALciELQQAhBQsgBSAMciEMQQAhBQsgBSANciENQQAhBQsgBSAOciEOQQAhBQsgBSAPciEPQQAhBQsgBSAQciEQQQAhBQsgBSARciERQQAhBQsgBSASciESQQAhBQsgBSATciETQQAhBQsgBSAUciEUQQAhBQsgBEIdiKcQACEVIARCA4anEAAhFiAAIAcgCCAJIAogCyAMIA0gDiAPIBAgESASIBMgFCAVIBYQAyAAIAAoAgAQADYCACAAIAAoAgQQADYCBCAAIAAoAggQADYCCCAAIAAoAgwQADYCDCAAIAAoAhAQADYCECAAIAAoAhQQADYCFCAAIAAoAhgQADYCGCAAIAAoAhwQADYCHAsL"); - } - }); - - // wasm-module:./sha256.wat - var bytes = require_sha256(); - var compiled = new WebAssembly.Module(bytes); - sha256$2 = (imports) => { - const instance = new WebAssembly.Instance(compiled, imports); - return instance.exports; - }; - return sha256$2; - } - - var hasRequiredSha256Wasm; - - function requireSha256Wasm () { - if (hasRequiredSha256Wasm) return sha256Wasm.exports; - hasRequiredSha256Wasm = 1; - const assert = requireNanoassert(); - const b4a = requireBrowser$1(); - - const wasm = typeof WebAssembly !== 'undefined' && requireSha256$2()({ - imports: { - debug: { - log (...args) { - console.log(...args.map(int => (int >>> 0).toString(16).padStart(8, '0'))); - }, - log_tee (arg) { - console.log((arg >>> 0).toString(16).padStart(8, '0')); - return arg - } - } - } - }); - - let head = 0; - const freeList = []; - - sha256Wasm.exports = Sha256; - const SHA256_BYTES = sha256Wasm.exports.SHA256_BYTES = 32; - const INPUT_OFFSET = 40; - const STATEBYTES = 108; - const BLOCKSIZE = 64; - - function Sha256 () { - if (!(this instanceof Sha256)) return new Sha256() - if (!(wasm)) throw new Error('WASM not loaded. Wait for Sha256.ready(cb)') - - if (!freeList.length) { - freeList.push(head); - head += STATEBYTES; // need 100 bytes for internal state - } - - this.finalized = false; - this.digestLength = SHA256_BYTES; - this.pointer = freeList.pop(); - this.pos = 0; - - this._memory = new Uint8Array(wasm.memory.buffer); - this._memory.fill(0, this.pointer, this.pointer + STATEBYTES); - - if (this.pointer + this.digestLength > this._memory.length) this._realloc(this.pointer + STATEBYTES); - } - - Sha256.prototype._realloc = function (size) { - wasm.memory.grow(Math.max(0, Math.ceil(Math.abs(size - this._memory.length) / 65536))); - this._memory = new Uint8Array(wasm.memory.buffer); - }; - - Sha256.prototype.update = function (input, enc) { - assert(this.finalized === false, 'Hash instance finalized'); - - if (head % 4 !== 0) head += 4 - head % 4; - assert(head % 4 === 0, 'input shoud be aligned for int32'); - - const [inputBuf, length] = formatInput(input, enc); - - assert(inputBuf instanceof Uint8Array, 'input must be Uint8Array or Buffer'); - - if (head + length > this._memory.length) this._realloc(head + input.length); - - this._memory.fill(0, head, head + roundUp(length, BLOCKSIZE) - BLOCKSIZE); - this._memory.set(inputBuf.subarray(0, BLOCKSIZE - this.pos), this.pointer + INPUT_OFFSET + this.pos); - this._memory.set(inputBuf.subarray(BLOCKSIZE - this.pos), head); - - this.pos = (this.pos + length) & 0x3f; - wasm.sha256(this.pointer, head, length, 0); - - return this - }; - - Sha256.prototype.digest = function (enc, offset = 0) { - assert(this.finalized === false, 'Hash instance finalized'); - - this.finalized = true; - freeList.push(this.pointer); - - const paddingStart = this.pointer + INPUT_OFFSET + this.pos; - this._memory.fill(0, paddingStart, this.pointer + INPUT_OFFSET + BLOCKSIZE); - wasm.sha256(this.pointer, head, 0, 1); - - const resultBuf = this._memory.subarray(this.pointer, this.pointer + this.digestLength); - - if (!enc) { - return resultBuf - } - - if (typeof enc === 'string') { - return b4a.toString(resultBuf, enc) - } - - assert(enc instanceof Uint8Array, 'output must be Uint8Array or Buffer'); - assert(enc.byteLength >= this.digestLength + offset, - "output must have at least 'SHA256_BYTES' bytes remaining"); - - for (let i = 0; i < this.digestLength; i++) { - enc[i + offset] = resultBuf[i]; - } - - return enc - }; - - Sha256.WASM = wasm; - Sha256.WASM_SUPPORTED = typeof WebAssembly !== 'undefined'; - - Sha256.ready = function (cb) { - if (!cb) cb = noop; - if (!wasm) return cb(new Error('WebAssembly not supported')) - cb(); - return Promise.resolve() - }; - - Sha256.prototype.ready = Sha256.ready; - - function HMAC (key) { - if (!(this instanceof HMAC)) return new HMAC(key) - - this.pad = b4a.alloc(64); - this.inner = Sha256(); - this.outer = Sha256(); - - const keyhash = b4a.alloc(32); - if (key.byteLength > 64) { - Sha256().update(key).digest(keyhash); - key = keyhash; - } - - this.pad.fill(0x36); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.inner.update(this.pad); - - this.pad.fill(0x5c); - for (let i = 0; i < key.byteLength; i++) { - this.pad[i] ^= key[i]; - } - this.outer.update(this.pad); - - this.pad.fill(0); - keyhash.fill(0); - } - - HMAC.prototype.update = function (input, enc) { - this.inner.update(input, enc); - return this - }; - - HMAC.prototype.digest = function (enc, offset = 0) { - this.outer.update(this.inner.digest()); - return this.outer.digest(enc, offset) - }; - - Sha256.HMAC = HMAC; - - function noop () {} - - function formatInput (input, enc) { - var result = b4a.from(input, enc); - - return [result, result.byteLength] - } - - // only works for base that is power of 2 - function roundUp (n, base) { - return (n + base - 1) & -base - } - return sha256Wasm.exports; - } - - var hasRequiredSha256Universal; - - function requireSha256Universal () { - if (hasRequiredSha256Universal) return sha256Universal.exports; - hasRequiredSha256Universal = 1; - const js = requireSha256$3(); - const wasm = requireSha256Wasm(); - - var Proto = js; - - sha256Universal.exports = function () { - return new Proto() - }; - - sha256Universal.exports.ready = function (cb) { - wasm.ready(function () { // ignore errors - cb(); - }); - }; - - sha256Universal.exports.WASM_SUPPORTED = wasm.WASM_SUPPORTED; - sha256Universal.exports.WASM_LOADED = false; - - sha256Universal.exports.SHA256_BYTES = 32; - - wasm.ready(function (err) { - if (!err) { - sha256Universal.exports.WASM_LOADED = true; - sha256Universal.exports = Proto = wasm; - } - }); - return sha256Universal.exports; - } - - /* eslint-disable camelcase */ - - var crypto_hash_sha256_1; - var hasRequiredCrypto_hash_sha256; - - function requireCrypto_hash_sha256 () { - if (hasRequiredCrypto_hash_sha256) return crypto_hash_sha256_1; - hasRequiredCrypto_hash_sha256 = 1; - const sha256 = requireSha256Universal(); - const assert = requireNanoassert(); - - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - const crypto_hash_sha256_BYTES = 32; - - function crypto_hash_sha256 (out, m, n) { - assert(out.byteLength === crypto_hash_sha256_BYTES, "out must be 'crypto_hash_sha256_BYTES' bytes long"); - - sha256().update(m.subarray(0, n)).digest(out); - return 0 - } - - crypto_hash_sha256_1 = { - crypto_hash_sha256, - crypto_hash_sha256_BYTES - }; - return crypto_hash_sha256_1; - } - - var crypto_kdf = {exports: {}}; - - /* eslint-disable camelcase */ - - var hasRequiredCrypto_kdf; - - function requireCrypto_kdf () { - if (hasRequiredCrypto_kdf) return crypto_kdf.exports; - hasRequiredCrypto_kdf = 1; - (function (module) { - const assert = requireNanoassert(); - const randombytes_buf = requireRandombytes().randombytes_buf; - const blake2b = requireBlake2b(); - - module.exports.crypto_kdf_PRIMITIVE = 'blake2b'; - module.exports.crypto_kdf_BYTES_MIN = 16; - module.exports.crypto_kdf_BYTES_MAX = 64; - module.exports.crypto_kdf_CONTEXTBYTES = 8; - module.exports.crypto_kdf_KEYBYTES = 32; - - function STORE64_LE (dest, int) { - var mul = 1; - var i = 0; - dest[0] = int & 0xFF; - while (++i < 8 && (mul *= 0x100)) { - dest[i] = (int / mul) & 0xFF; - } - } - - module.exports.crypto_kdf_derive_from_key = function crypto_kdf_derive_from_key (subkey, subkey_id, ctx, key) { - assert(subkey.length >= module.exports.crypto_kdf_BYTES_MIN, 'subkey must be at least crypto_kdf_BYTES_MIN'); - assert(subkey_id >= 0 && subkey_id <= 0x1fffffffffffff, 'subkey_id must be safe integer'); - assert(ctx.length >= module.exports.crypto_kdf_CONTEXTBYTES, 'context must be at least crypto_kdf_CONTEXTBYTES'); - - var ctx_padded = new Uint8Array(blake2b.PERSONALBYTES); - var salt = new Uint8Array(blake2b.SALTBYTES); - - ctx_padded.set(ctx, 0, module.exports.crypto_kdf_CONTEXTBYTES); - STORE64_LE(salt, subkey_id); - - var outlen = Math.min(subkey.length, module.exports.crypto_kdf_BYTES_MAX); - blake2b(outlen, key.subarray(0, module.exports.crypto_kdf_KEYBYTES), salt, ctx_padded, true) - .final(subkey); - }; - - module.exports.crypto_kdf_keygen = function crypto_kdf_keygen (out) { - assert(out.length >= module.exports.crypto_kdf_KEYBYTES, 'out.length must be crypto_kdf_KEYBYTES'); - randombytes_buf(out.subarray(0, module.exports.crypto_kdf_KEYBYTES)); - }; - } (crypto_kdf)); - return crypto_kdf.exports; - } - - /* eslint-disable camelcase */ - - var crypto_kx; - var hasRequiredCrypto_kx; - - function requireCrypto_kx () { - if (hasRequiredCrypto_kx) return crypto_kx; - hasRequiredCrypto_kx = 1; - const { crypto_scalarmult_base } = requireCrypto_scalarmult(); - const { crypto_generichash } = requireCrypto_generichash(); - const { randombytes_buf } = requireRandombytes(); - const assert = requireNanoassert(); - - const crypto_kx_SEEDBYTES = 32; - const crypto_kx_PUBLICKEYBYTES = 32; - const crypto_kx_SECRETKEYBYTES = 32; - - function crypto_kx_keypair (pk, sk) { - assert(pk.byteLength === crypto_kx_PUBLICKEYBYTES, "pk must be 'crypto_kx_PUBLICKEYBYTES' bytes"); - assert(sk.byteLength === crypto_kx_SECRETKEYBYTES, "sk must be 'crypto_kx_SECRETKEYBYTES' bytes"); - - randombytes_buf(sk, crypto_kx_SECRETKEYBYTES); - return crypto_scalarmult_base(pk, sk) - } - - function crypto_kx_seed_keypair (pk, sk, seed) { - assert(pk.byteLength === crypto_kx_PUBLICKEYBYTES, "pk must be 'crypto_kx_PUBLICKEYBYTES' bytes"); - assert(sk.byteLength === crypto_kx_SECRETKEYBYTES, "sk must be 'crypto_kx_SECRETKEYBYTES' bytes"); - assert(seed.byteLength === crypto_kx_SEEDBYTES, "seed must be 'crypto_kx_SEEDBYTES' bytes"); - - crypto_generichash(sk, seed); - return crypto_scalarmult_base(pk, sk) - } - - crypto_kx = { - crypto_kx_keypair, - crypto_kx_seed_keypair, - crypto_kx_SEEDBYTES, - crypto_kx_SECRETKEYBYTES, - crypto_kx_PUBLICKEYBYTES - }; - return crypto_kx; - } - - var crypto_stream_chacha20 = {}; - - var chacha20Universal; - var hasRequiredChacha20Universal; - - function requireChacha20Universal () { - if (hasRequiredChacha20Universal) return chacha20Universal; - hasRequiredChacha20Universal = 1; - const assert = requireNanoassert(); - - chacha20Universal = Chacha20; - - const constant = [1634760805, 857760878, 2036477234, 1797285236]; - - function Chacha20 (nonce, key, counter) { - assert(key.byteLength === 32); - assert(nonce.byteLength === 8 || nonce.byteLength === 12); - - const n = new Uint32Array(nonce.buffer, nonce.byteOffset, nonce.byteLength / 4); - const k = new Uint32Array(key.buffer, key.byteOffset, key.byteLength / 4); - - if (!counter) counter = 0; - assert(counter < Number.MAX_SAFE_INTEGER); - - this.finalized = false; - this.pos = 0; - this.state = new Uint32Array(16); - - for (let i = 0; i < 4; i++) this.state[i] = constant[i]; - for (let i = 0; i < 8; i++) this.state[4 + i] = k[i]; - - this.state[12] = counter & 0xffffffff; - - if (n.byteLength === 8) { - this.state[13] = (counter && 0xffffffff00000000) >> 32; - this.state[14] = n[0]; - this.state[15] = n[1]; - } else { - this.state[13] = n[0]; - this.state[14] = n[1]; - this.state[15] = n[2]; - } - - return this - } - - Chacha20.prototype.update = function (output, input) { - assert(!this.finalized, 'cipher finalized.'); - assert(output.byteLength >= input.byteLength, - 'output cannot be shorter than input.'); - - let len = input.length; - let offset = this.pos % 64; - this.pos += len; - - // input position - let j = 0; - - let keyStream = chacha20Block(this.state); - - // try to finsih the current block - while (offset > 0 && len > 0) { - output[j] = input[j++] ^ keyStream[offset]; - offset = (offset + 1) & 0x3f; - if (!offset) this.state[12]++; - len--; - } - - // encrypt rest block at a time - while (len > 0) { - keyStream = chacha20Block(this.state); - - // less than a full block remaining - if (len < 64) { - for (let i = 0; i < len; i++) { - output[j] = input[j++] ^ keyStream[offset++]; - offset &= 0x3f; - } - - return - } - - for (; offset < 64;) { - output[j] = input[j++] ^ keyStream[offset++]; - } - - this.state[12]++; - offset = 0; - len -= 64; - } - }; - - Chacha20.prototype.final = function () { - this.state.fill(0); - this.pos = 0; - this.finalized = true; - }; - - function chacha20Block (state) { - // working state - const ws = new Uint32Array(16); - for (let i = 16; i--;) ws[i] = state[i]; - - for (let i = 0; i < 20; i += 2) { - QR(ws, 0, 4, 8, 12); // column 0 - QR(ws, 1, 5, 9, 13); // column 1 - QR(ws, 2, 6, 10, 14); // column 2 - QR(ws, 3, 7, 11, 15); // column 3 - - QR(ws, 0, 5, 10, 15); // diagonal 1 (main diagonal) - QR(ws, 1, 6, 11, 12); // diagonal 2 - QR(ws, 2, 7, 8, 13); // diagonal 3 - QR(ws, 3, 4, 9, 14); // diagonal 4 - } - - for (let i = 0; i < 16; i++) { - ws[i] += state[i]; - } - - return new Uint8Array(ws.buffer, ws.byteOffset, ws.byteLength) - } - - function rotl (a, b) { - return ((a << b) | (a >>> (32 - b))) - } - - function QR (obj, a, b, c, d) { - obj[a] += obj[b]; - obj[d] ^= obj[a]; - obj[d] = rotl(obj[d], 16); - - obj[c] += obj[d]; - obj[b] ^= obj[c]; - obj[b] = rotl(obj[b], 12); - - obj[a] += obj[b]; - obj[d] ^= obj[a]; - obj[d] = rotl(obj[d], 8); - - obj[c] += obj[d]; - obj[b] ^= obj[c]; - obj[b] = rotl(obj[b], 7); - } - return chacha20Universal; - } - - var hasRequiredCrypto_stream_chacha20; - - function requireCrypto_stream_chacha20 () { - if (hasRequiredCrypto_stream_chacha20) return crypto_stream_chacha20; - hasRequiredCrypto_stream_chacha20 = 1; - (function (exports) { - const assert = requireNanoassert(); - const Chacha20 = requireChacha20Universal(); - - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - exports.crypto_stream_chacha20_KEYBYTES = 32; - exports.crypto_stream_chacha20_NONCEBYTES = 8; - exports.crypto_stream_chacha20_MESSAGEBYTES_MAX = Number.MAX_SAFE_INTEGER; - - exports.crypto_stream_chacha20_ietf_KEYBYTES = 32; - exports.crypto_stream_chacha20_ietf_NONCEBYTES = 12; - exports.crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX = 2 ** 32; - - exports.crypto_stream_chacha20 = function (c, n, k) { - c.fill(0); - exports.crypto_stream_chacha20_xor(c, c, n, k); - }; - - exports.crypto_stream_chacha20_xor = function (c, m, n, k) { - assert(n.byteLength === exports.crypto_stream_chacha20_NONCEBYTES, - 'n should be crypto_stream_chacha20_NONCEBYTES'); - assert(k.byteLength === exports.crypto_stream_chacha20_KEYBYTES, - 'k should be crypto_stream_chacha20_KEYBYTES'); - - const xor = new Chacha20(n, k); - xor.update(c, m); - xor.final(); - }; - - exports.crypto_stream_chacha20_xor_ic = function (c, m, n, ic, k) { - assert(n.byteLength === exports.crypto_stream_chacha20_NONCEBYTES, - 'n should be crypto_stream_chacha20_NONCEBYTES'); - assert(k.byteLength === exports.crypto_stream_chacha20_KEYBYTES, - 'k should be crypto_stream_chacha20_KEYBYTES'); - - const xor = new Chacha20(n, k, ic); - xor.update(c, m); - xor.final(); - }; - - exports.crypto_stream_chacha20_xor_instance = function (n, k) { - assert(n.byteLength === exports.crypto_stream_chacha20_NONCEBYTES, - 'n should be crypto_stream_chacha20_NONCEBYTES'); - assert(k.byteLength === exports.crypto_stream_chacha20_KEYBYTES, - 'k should be crypto_stream_chacha20_KEYBYTES'); - - return new Chacha20(n, k) - }; - - exports.crypto_stream_chacha20_ietf = function (c, n, k) { - c.fill(0); - exports.crypto_stream_chacha20_ietf_xor(c, c, n, k); - }; - - exports.crypto_stream_chacha20_ietf_xor = function (c, m, n, k) { - assert(n.byteLength === exports.crypto_stream_chacha20_ietf_NONCEBYTES, - 'n should be crypto_stream_chacha20_ietf_NONCEBYTES'); - assert(k.byteLength === exports.crypto_stream_chacha20_ietf_KEYBYTES, - 'k should be crypto_stream_chacha20_ietf_KEYBYTES'); - - const xor = new Chacha20(n, k); - xor.update(c, m); - xor.final(); - }; - - exports.crypto_stream_chacha20_ietf_xor_ic = function (c, m, n, ic, k) { - assert(n.byteLength === exports.crypto_stream_chacha20_ietf_NONCEBYTES, - 'n should be crypto_stream_chacha20_ietf_NONCEBYTES'); - assert(k.byteLength === exports.crypto_stream_chacha20_ietf_KEYBYTES, - 'k should be crypto_stream_chacha20_ietf_KEYBYTES'); - - const xor = new Chacha20(n, k, ic); - xor.update(c, m); - xor.final(); - }; - - exports.crypto_stream_chacha20_ietf_xor_instance = function (n, k) { - assert(n.byteLength === exports.crypto_stream_chacha20_ietf_NONCEBYTES, - 'n should be crypto_stream_chacha20_ietf_NONCEBYTES'); - assert(k.byteLength === exports.crypto_stream_chacha20_ietf_KEYBYTES, - 'k should be crypto_stream_chacha20_ietf_KEYBYTES'); - - return new Chacha20(n, k) - }; - } (crypto_stream_chacha20)); - return crypto_stream_chacha20; - } - - /* eslint-disable camelcase */ - - var crypto_aead; - var hasRequiredCrypto_aead; - - function requireCrypto_aead () { - if (hasRequiredCrypto_aead) return crypto_aead; - hasRequiredCrypto_aead = 1; - const { crypto_stream_chacha20_ietf, crypto_stream_chacha20_ietf_xor_ic } = requireCrypto_stream_chacha20(); - const { crypto_verify_16 } = requireCrypto_verify(); - const Poly1305 = requirePoly1305(); - const assert = requireNanoassert(); - - const crypto_aead_chacha20poly1305_ietf_KEYBYTES = 32; - const crypto_aead_chacha20poly1305_ietf_NSECBYTES = 0; - const crypto_aead_chacha20poly1305_ietf_NPUBBYTES = 12; - const crypto_aead_chacha20poly1305_ietf_ABYTES = 16; - const crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX = Number.MAX_SAFE_INTEGER; - - const _pad0 = new Uint8Array(16); - - function crypto_aead_chacha20poly1305_ietf_encrypt (c, m, ad, nsec, npub, k) { - if (ad === null) return crypto_aead_chacha20poly1305_ietf_encrypt(c, m, new Uint8Array(0), nsec, npub, k) - - assert(c.byteLength === m.byteLength + crypto_aead_chacha20poly1305_ietf_ABYTES, - "ciphertext should be 'crypto_aead_chacha20poly1305_ietf_ABYTES' longer than message"); - assert(npub.byteLength === crypto_aead_chacha20poly1305_ietf_NPUBBYTES, - "npub should be 'crypto_aead_chacha20poly1305_ietf_NPUBBYTES' long"); - assert(k.byteLength === crypto_aead_chacha20poly1305_ietf_KEYBYTES, - "k should be 'crypto_aead_chacha20poly1305_ietf_KEYBYTES' long"); - assert(m.byteLength <= crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX, 'message is too large'); - - const ret = crypto_aead_chacha20poly1305_ietf_encrypt_detached(c.subarray(0, m.byteLength), - c.subarray(m.byteLength), m, ad, nsec, npub, k); - - return m.byteLength + ret - } - - function crypto_aead_chacha20poly1305_ietf_encrypt_detached (c, mac, m, ad, nsec, npub, k) { - if (ad === null) return crypto_aead_chacha20poly1305_ietf_encrypt_detached(c, mac, m, new Uint8Array(0), nsec, npub, k) - - assert(c.byteLength === m.byteLength, 'ciphertext should be same length than message'); - assert(npub.byteLength === crypto_aead_chacha20poly1305_ietf_NPUBBYTES, - "npub should be 'crypto_aead_chacha20poly1305_ietf_NPUBBYTES' long"); - assert(k.byteLength === crypto_aead_chacha20poly1305_ietf_KEYBYTES, - "k should be 'crypto_aead_chacha20poly1305_ietf_KEYBYTES' long"); - assert(m.byteLength <= crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX, 'message is too large'); - assert(mac.byteLength <= crypto_aead_chacha20poly1305_ietf_ABYTES, - "mac should be 'crypto_aead_chacha20poly1305_ietf_ABYTES' long"); - - const block0 = new Uint8Array(64); - var slen = new Uint8Array(8); - - crypto_stream_chacha20_ietf(block0, npub, k); - const poly = new Poly1305(block0); - block0.fill(0); - - poly.update(ad, 0, ad.byteLength); - poly.update(_pad0, 0, (0x10 - ad.byteLength) & 0xf); - - crypto_stream_chacha20_ietf_xor_ic(c, m, npub, 1, k); - - poly.update(c, 0, m.byteLength); - poly.update(_pad0, 0, (0x10 - m.byteLength) & 0xf); - - write64LE(slen, 0, ad.byteLength); - poly.update(slen, 0, slen.byteLength); - - write64LE(slen, 0, m.byteLength); - poly.update(slen, 0, slen.byteLength); - - poly.finish(mac, 0); - slen.fill(0); - - return crypto_aead_chacha20poly1305_ietf_ABYTES - } - - function crypto_aead_chacha20poly1305_ietf_decrypt (m, nsec, c, ad, npub, k) { - if (ad === null) return crypto_aead_chacha20poly1305_ietf_decrypt(m, nsec, c, new Uint8Array(0), npub, k) - - assert(m.byteLength === c.byteLength - crypto_aead_chacha20poly1305_ietf_ABYTES, - "message should be 'crypto_aead_chacha20poly1305_ietf_ABYTES' shorter than ciphertext"); - assert(npub.byteLength === crypto_aead_chacha20poly1305_ietf_NPUBBYTES, - "npub should be 'crypto_aead_chacha20poly1305_ietf_NPUBBYTES' long"); - assert(k.byteLength === crypto_aead_chacha20poly1305_ietf_KEYBYTES, - "k should be 'crypto_aead_chacha20poly1305_ietf_KEYBYTES' long"); - assert(m.byteLength <= crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX, 'message is too large'); - - if (c.byteLength < crypto_aead_chacha20poly1305_ietf_ABYTES) throw new Error('could not verify data') - - crypto_aead_chacha20poly1305_ietf_decrypt_detached( - m, nsec, - c.subarray(0, c.byteLength - crypto_aead_chacha20poly1305_ietf_ABYTES), - c.subarray(c.byteLength - crypto_aead_chacha20poly1305_ietf_ABYTES), - ad, npub, k); - - return c.byteLength - crypto_aead_chacha20poly1305_ietf_ABYTES - } - - function crypto_aead_chacha20poly1305_ietf_decrypt_detached (m, nsec, c, mac, ad, npub, k) { - if (ad === null) return crypto_aead_chacha20poly1305_ietf_decrypt_detached(m, nsec, c, mac, new Uint8Array(0), npub, k) - - assert(c.byteLength === m.byteLength, 'message should be same length than ciphertext'); - assert(npub.byteLength === crypto_aead_chacha20poly1305_ietf_NPUBBYTES, - "npub should be 'crypto_aead_chacha20poly1305_ietf_NPUBBYTES' long"); - assert(k.byteLength === crypto_aead_chacha20poly1305_ietf_KEYBYTES, - "k should be 'crypto_aead_chacha20poly1305_ietf_KEYBYTES' long"); - assert(m.byteLength <= crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX, 'message is too large'); - assert(mac.byteLength <= crypto_aead_chacha20poly1305_ietf_ABYTES, - "mac should be 'crypto_aead_chacha20poly1305_ietf_ABYTES' long"); - - const block0 = new Uint8Array(64); - const slen = new Uint8Array(8); - const computed_mac = new Uint8Array(crypto_aead_chacha20poly1305_ietf_ABYTES); - - crypto_stream_chacha20_ietf(block0, npub, k); - const poly = new Poly1305(block0); - block0.fill(0); - - poly.update(ad, 0, ad.byteLength); - poly.update(_pad0, 0, (0x10 - ad.byteLength) & 0xf); - - const mlen = c.byteLength; - poly.update(c, 0, mlen); - poly.update(_pad0, 0, (0x10 - mlen) & 0xf); - - write64LE(slen, 0, ad.byteLength); - poly.update(slen, 0, slen.byteLength); - - write64LE(slen, 0, mlen); - poly.update(slen, 0, slen.byteLength); - - poly.finish(computed_mac, 0); - - assert(computed_mac.byteLength === 16); - const ret = crypto_verify_16(computed_mac, 0, mac, 0); - - computed_mac.fill(0); - slen.fill(0); - - if (!ret) { - m.fill(0); - throw new Error('could not verify data') - } - - crypto_stream_chacha20_ietf_xor_ic(m, c, npub, 1, k); - } - - function write64LE (buf, offset, int) { - buf.fill(0, 0, 8); - - const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength); - view.setUint32(offset, int & 0xffffffff, true); - view.setUint32(offset + 4, (int / 2 ** 32) & 0xffffffff, true); - } - - crypto_aead = { - crypto_aead_chacha20poly1305_ietf_encrypt, - crypto_aead_chacha20poly1305_ietf_encrypt_detached, - crypto_aead_chacha20poly1305_ietf_decrypt, - crypto_aead_chacha20poly1305_ietf_decrypt_detached, - crypto_aead_chacha20poly1305_ietf_ABYTES, - crypto_aead_chacha20poly1305_ietf_KEYBYTES, - crypto_aead_chacha20poly1305_ietf_NPUBBYTES, - crypto_aead_chacha20poly1305_ietf_NSECBYTES, - crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX - }; - return crypto_aead; - } - - /* eslint-disable camelcase */ - - var hchacha20; - var hasRequiredHchacha20; - - function requireHchacha20 () { - if (hasRequiredHchacha20) return hchacha20; - hasRequiredHchacha20 = 1; - const { sodium_malloc } = requireMemory(); - const assert = requireNanoassert(); - - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - const crypto_core_hchacha20_OUTPUTBYTES = 32; - const crypto_core_hchacha20_INPUTBYTES = 16; - const crypto_core_hchacha20_KEYBYTES = 32; - const crypto_core_hchacha20_CONSTBYTES = 16; - - function ROTL32 (x, b) { - x &= 0xFFFFFFFF; - b &= 0xFFFFFFFF; - return (x << b) | (x >>> (32 - b)) - } - - function LOAD32_LE (src, offset) { - assert(src instanceof Uint8Array, 'src not byte array'); - let w = src[offset]; - w |= src[offset + 1] << 8; - w |= src[offset + 2] << 16; - w |= src[offset + 3] << 24; - return w - } - - function STORE32_LE (dest, int, offset) { - assert(dest instanceof Uint8Array, 'dest not byte array'); - var mul = 1; - var i = 0; - dest[offset] = int & 0xFF; // grab bottom byte - while (++i < 4 && (mul *= 0x100)) { - dest[offset + i] = (int / mul) & 0xFF; - } - } - - function QUARTERROUND (l, A, B, C, D) { - l[A] += l[B]; - l[D] = ROTL32(l[D] ^ l[A], 16); - l[C] += l[D]; - l[B] = ROTL32(l[B] ^ l[C], 12); - l[A] += l[B]; - l[D] = ROTL32(l[D] ^ l[A], 8); - l[C] += l[D]; - l[B] = ROTL32(l[B] ^ l[C], 7); - } - - function crypto_core_hchacha20 (out, _in, k, c) { - assert(out instanceof Uint8Array && out.length === 32, 'out is not an array of 32 bytes'); - assert(k instanceof Uint8Array && k.length === 32, 'k is not an array of 32 bytes'); - assert(c === null || (c instanceof Uint8Array && c.length === 16), 'c is not null or an array of 16 bytes'); - - let i = 0; - const x = new Uint32Array(16); - if (!c) { - x[0] = 0x61707865; - x[1] = 0x3320646E; - x[2] = 0x79622D32; - x[3] = 0x6B206574; - } else { - x[0] = LOAD32_LE(c, 0); - x[1] = LOAD32_LE(c, 4); - x[2] = LOAD32_LE(c, 8); - x[3] = LOAD32_LE(c, 12); - } - x[4] = LOAD32_LE(k, 0); - x[5] = LOAD32_LE(k, 4); - x[6] = LOAD32_LE(k, 8); - x[7] = LOAD32_LE(k, 12); - x[8] = LOAD32_LE(k, 16); - x[9] = LOAD32_LE(k, 20); - x[10] = LOAD32_LE(k, 24); - x[11] = LOAD32_LE(k, 28); - x[12] = LOAD32_LE(_in, 0); - x[13] = LOAD32_LE(_in, 4); - x[14] = LOAD32_LE(_in, 8); - x[15] = LOAD32_LE(_in, 12); - - for (i = 0; i < 10; i++) { - QUARTERROUND(x, 0, 4, 8, 12); - QUARTERROUND(x, 1, 5, 9, 13); - QUARTERROUND(x, 2, 6, 10, 14); - QUARTERROUND(x, 3, 7, 11, 15); - QUARTERROUND(x, 0, 5, 10, 15); - QUARTERROUND(x, 1, 6, 11, 12); - QUARTERROUND(x, 2, 7, 8, 13); - QUARTERROUND(x, 3, 4, 9, 14); - } - - STORE32_LE(out, x[0], 0); - STORE32_LE(out, x[1], 4); - STORE32_LE(out, x[2], 8); - STORE32_LE(out, x[3], 12); - STORE32_LE(out, x[12], 16); - STORE32_LE(out, x[13], 20); - STORE32_LE(out, x[14], 24); - STORE32_LE(out, x[15], 28); - - return 0 - } - - function crypto_core_hchacha20_outputbytes () { - return crypto_core_hchacha20_OUTPUTBYTES - } - - function crypto_core_hchacha20_inputbytes () { - return crypto_core_hchacha20_INPUTBYTES - } - - function crypto_core_hchacha20_keybytes () { - return crypto_core_hchacha20_KEYBYTES - } - - function crypto_core_hchacha20_constbytes () { - return crypto_core_hchacha20_CONSTBYTES - } - - hchacha20 = { - crypto_core_hchacha20_INPUTBYTES, - LOAD32_LE, - STORE32_LE, - QUARTERROUND, - crypto_core_hchacha20, - crypto_core_hchacha20_outputbytes, - crypto_core_hchacha20_inputbytes, - crypto_core_hchacha20_keybytes, - crypto_core_hchacha20_constbytes - }; - return hchacha20; - } - - /* eslint-disable camelcase */ - - var crypto_secretstream; - var hasRequiredCrypto_secretstream; - - function requireCrypto_secretstream () { - if (hasRequiredCrypto_secretstream) return crypto_secretstream; - hasRequiredCrypto_secretstream = 1; - const assert = requireNanoassert(); - const { randombytes_buf } = requireRandombytes(); - const { - crypto_stream_chacha20_ietf, - crypto_stream_chacha20_ietf_xor, - crypto_stream_chacha20_ietf_xor_ic, - crypto_stream_chacha20_ietf_KEYBYTES - } = requireCrypto_stream_chacha20(); - const { crypto_core_hchacha20, crypto_core_hchacha20_INPUTBYTES } = requireHchacha20(); - const Poly1305 = requirePoly1305(); - const { sodium_increment, sodium_is_zero, sodium_memcmp } = requireHelpers(); - - const crypto_onetimeauth_poly1305_BYTES = 16; - const crypto_secretstream_xchacha20poly1305_COUNTERBYTES = 4; - const crypto_secretstream_xchacha20poly1305_INONCEBYTES = 8; - const crypto_aead_xchacha20poly1305_ietf_KEYBYTES = 32; - const crypto_secretstream_xchacha20poly1305_KEYBYTES = crypto_aead_xchacha20poly1305_ietf_KEYBYTES; - const crypto_aead_xchacha20poly1305_ietf_NPUBBYTES = 24; - const crypto_secretstream_xchacha20poly1305_HEADERBYTES = crypto_aead_xchacha20poly1305_ietf_NPUBBYTES; - const crypto_aead_xchacha20poly1305_ietf_ABYTES = 16; - const crypto_secretstream_xchacha20poly1305_ABYTES = 1 + crypto_aead_xchacha20poly1305_ietf_ABYTES; - const crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX = Number.MAX_SAFE_INTEGER; - const crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX = Number.MAX_SAFE_INTEGER; - const crypto_secretstream_xchacha20poly1305_TAGBYTES = 1; - const crypto_secretstream_xchacha20poly1305_TAG_MESSAGE = new Uint8Array([0]); - const crypto_secretstream_xchacha20poly1305_TAG_PUSH = new Uint8Array([1]); - const crypto_secretstream_xchacha20poly1305_TAG_REKEY = new Uint8Array([2]); - const crypto_secretstream_xchacha20poly1305_TAG_FINAL = new Uint8Array([crypto_secretstream_xchacha20poly1305_TAG_PUSH | crypto_secretstream_xchacha20poly1305_TAG_REKEY]); - const crypto_secretstream_xchacha20poly1305_STATEBYTES = crypto_secretstream_xchacha20poly1305_KEYBYTES + - crypto_secretstream_xchacha20poly1305_INONCEBYTES + crypto_secretstream_xchacha20poly1305_COUNTERBYTES + 8; - - const KEY_OFFSET = 0; - const NONCE_OFFSET = crypto_secretstream_xchacha20poly1305_KEYBYTES; - const PAD_OFFSET = NONCE_OFFSET + crypto_secretstream_xchacha20poly1305_INONCEBYTES + crypto_secretstream_xchacha20poly1305_COUNTERBYTES; - - const _pad0 = new Uint8Array(16); - - function STORE64_LE (dest, int) { - let mul = 1; - let i = 0; - dest[0] = int & 0xFF; - while (++i < 8 && (mul *= 0x100)) { - dest[i] = (int / mul) & 0xFF; - } - } - - function crypto_secretstream_xchacha20poly1305_counter_reset (state) { - assert(state.byteLength === crypto_secretstream_xchacha20poly1305_STATEBYTES, - 'state is should be crypto_secretstream_xchacha20poly1305_STATEBYTES long'); - - const nonce = state.subarray(NONCE_OFFSET, PAD_OFFSET); - for (let i = 0; i < crypto_secretstream_xchacha20poly1305_COUNTERBYTES; i++) { - nonce[i] = 0; - } - nonce[0] = 1; - } - - function crypto_secretstream_xchacha20poly1305_keygen (k) { - assert(k.length === crypto_secretstream_xchacha20poly1305_KEYBYTES); - randombytes_buf(k); - } - - function crypto_secretstream_xchacha20poly1305_init_push (state, out, key) { - assert(state.byteLength === crypto_secretstream_xchacha20poly1305_STATEBYTES, - 'state is should be crypto_secretstream_xchacha20poly1305_STATEBYTES long'); - assert(out instanceof Uint8Array && out.length === crypto_secretstream_xchacha20poly1305_HEADERBYTES, 'out not byte array of length crypto_secretstream_xchacha20poly1305_HEADERBYTES'); - assert(key instanceof Uint8Array && key.length === crypto_secretstream_xchacha20poly1305_KEYBYTES, 'key not byte array of length crypto_secretstream_xchacha20poly1305_KEYBYTES'); - - const k = state.subarray(KEY_OFFSET, NONCE_OFFSET); - const nonce = state.subarray(NONCE_OFFSET, PAD_OFFSET); - const pad = state.subarray(PAD_OFFSET); - - randombytes_buf(out, crypto_secretstream_xchacha20poly1305_HEADERBYTES); - crypto_core_hchacha20(k, out, key, null); - crypto_secretstream_xchacha20poly1305_counter_reset(state); - for (let i = 0; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - nonce[i + crypto_secretstream_xchacha20poly1305_COUNTERBYTES] = out[i + crypto_core_hchacha20_INPUTBYTES]; - } - pad.fill(0); - } - - function crypto_secretstream_xchacha20poly1305_init_pull (state, _in, key) { - assert(state.byteLength === crypto_secretstream_xchacha20poly1305_STATEBYTES, - 'state is should be crypto_secretstream_xchacha20poly1305_STATEBYTES long'); - assert(_in instanceof Uint8Array && _in.length === crypto_secretstream_xchacha20poly1305_HEADERBYTES, - '_in not byte array of length crypto_secretstream_xchacha20poly1305_HEADERBYTES'); - assert(key instanceof Uint8Array && key.length === crypto_secretstream_xchacha20poly1305_KEYBYTES, - 'key not byte array of length crypto_secretstream_xchacha20poly1305_KEYBYTES'); - - const k = state.subarray(KEY_OFFSET, NONCE_OFFSET); - const nonce = state.subarray(NONCE_OFFSET, PAD_OFFSET); - const pad = state.subarray(PAD_OFFSET); - - crypto_core_hchacha20(k, _in, key, null); - crypto_secretstream_xchacha20poly1305_counter_reset(state); - - for (let i = 0; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - nonce[i + crypto_secretstream_xchacha20poly1305_COUNTERBYTES] = _in[i + crypto_core_hchacha20_INPUTBYTES]; - } - pad.fill(0); - } - - function crypto_secretstream_xchacha20poly1305_rekey (state) { - assert(state.byteLength === crypto_secretstream_xchacha20poly1305_STATEBYTES, - 'state is should be crypto_secretstream_xchacha20poly1305_STATEBYTES long'); - - const k = state.subarray(KEY_OFFSET, NONCE_OFFSET); - const nonce = state.subarray(NONCE_OFFSET, PAD_OFFSET); - - const new_key_and_inonce = new Uint8Array( - crypto_stream_chacha20_ietf_KEYBYTES + crypto_secretstream_xchacha20poly1305_INONCEBYTES); - let i; - for (i = 0; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) { - new_key_and_inonce[i] = k[i]; - } - for (i = 0; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i] = - nonce[crypto_secretstream_xchacha20poly1305_COUNTERBYTES + i]; - } - crypto_stream_chacha20_ietf_xor(new_key_and_inonce, new_key_and_inonce, nonce, k); - for (i = 0; i < crypto_stream_chacha20_ietf_KEYBYTES; i++) { - k[i] = new_key_and_inonce[i]; - } - for (i = 0; i < crypto_secretstream_xchacha20poly1305_INONCEBYTES; i++) { - nonce[crypto_secretstream_xchacha20poly1305_COUNTERBYTES + i] = - new_key_and_inonce[crypto_stream_chacha20_ietf_KEYBYTES + i]; - } - crypto_secretstream_xchacha20poly1305_counter_reset(state); - } - - function crypto_secretstream_xchacha20poly1305_push (state, out, m, ad, tag) { - assert(state.byteLength === crypto_secretstream_xchacha20poly1305_STATEBYTES, - 'state is should be crypto_secretstream_xchacha20poly1305_STATEBYTES long'); - if (!ad) ad = new Uint8Array(0); - - const k = state.subarray(KEY_OFFSET, NONCE_OFFSET); - const nonce = state.subarray(NONCE_OFFSET, PAD_OFFSET); - - const block = new Uint8Array(64); - const slen = new Uint8Array(8); - - assert(crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX <= - crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX); - - crypto_stream_chacha20_ietf(block, nonce, k); - const poly = new Poly1305(block); - block.fill(0); - - poly.update(ad, 0, ad.byteLength); - poly.update(_pad0, 0, (0x10 - ad.byteLength) & 0xf); - - block[0] = tag[0]; - crypto_stream_chacha20_ietf_xor_ic(block, block, nonce, 1, k); - - poly.update(block, 0, block.byteLength); - out[0] = block[0]; - - const c = out.subarray(1, out.byteLength); - crypto_stream_chacha20_ietf_xor_ic(c, m, nonce, 2, k); - poly.update(c, 0, m.byteLength); - poly.update(_pad0, 0, (0x10 - block.byteLength + m.byteLength) & 0xf); - - STORE64_LE(slen, ad.byteLength); - poly.update(slen, 0, slen.byteLength); - STORE64_LE(slen, block.byteLength + m.byteLength); - poly.update(slen, 0, slen.byteLength); - - const mac = out.subarray(1 + m.byteLength, out.byteLength); - poly.finish(mac, 0); - - assert(crypto_onetimeauth_poly1305_BYTES >= - crypto_secretstream_xchacha20poly1305_INONCEBYTES); - xor_buf(nonce.subarray(crypto_secretstream_xchacha20poly1305_COUNTERBYTES, nonce.length), - mac, crypto_secretstream_xchacha20poly1305_INONCEBYTES); - sodium_increment(nonce); - - if ((tag[0] & crypto_secretstream_xchacha20poly1305_TAG_REKEY) !== 0 || - sodium_is_zero(nonce.subarray(0, crypto_secretstream_xchacha20poly1305_COUNTERBYTES))) { - crypto_secretstream_xchacha20poly1305_rekey(state); - } - - return crypto_secretstream_xchacha20poly1305_ABYTES + m.byteLength - } - - function crypto_secretstream_xchacha20poly1305_pull (state, m, tag, _in, ad) { - assert(state.byteLength === crypto_secretstream_xchacha20poly1305_STATEBYTES, - 'state is should be crypto_secretstream_xchacha20poly1305_STATEBYTES long'); - if (!ad) ad = new Uint8Array(0); - - const k = state.subarray(KEY_OFFSET, NONCE_OFFSET); - const nonce = state.subarray(NONCE_OFFSET, PAD_OFFSET); - - const block = new Uint8Array(64); - const slen = new Uint8Array(8); - const mac = new Uint8Array(crypto_onetimeauth_poly1305_BYTES); - - assert(_in.byteLength >= crypto_secretstream_xchacha20poly1305_ABYTES, - 'ciphertext is too short.'); - - const mlen = _in.byteLength - crypto_secretstream_xchacha20poly1305_ABYTES; - crypto_stream_chacha20_ietf(block, nonce, k); - const poly = new Poly1305(block); - block.fill(0); // sodium_memzero(block, sizeof block); - - poly.update(ad, 0, ad.byteLength); - poly.update(_pad0, 0, (0x10 - ad.byteLength) & 0xf); - - block.fill(0); // memset(block, 0, sizeof block); - block[0] = _in[0]; - crypto_stream_chacha20_ietf_xor_ic(block, block, nonce, 1, k); - - tag[0] = block[0]; - block[0] = _in[0]; - poly.update(block, 0, block.byteLength); - - const c = _in.subarray(1, _in.length); - poly.update(c, 0, mlen); - - poly.update(_pad0, 0, (0x10 - block.byteLength + mlen) & 0xf); - - STORE64_LE(slen, ad.byteLength); - poly.update(slen, 0, slen.byteLength); - STORE64_LE(slen, block.byteLength + m.byteLength); - poly.update(slen, 0, slen.byteLength); - - poly.finish(mac, 0); - const stored_mac = _in.subarray(1 + mlen, _in.length); - - if (!sodium_memcmp(mac, stored_mac)) { - mac.fill(0); - throw new Error('MAC could not be verified.') - } - - crypto_stream_chacha20_ietf_xor_ic(m, c.subarray(0, m.length), nonce, 2, k); - xor_buf(nonce.subarray(crypto_secretstream_xchacha20poly1305_COUNTERBYTES, nonce.length), - mac, crypto_secretstream_xchacha20poly1305_INONCEBYTES); - sodium_increment(nonce); - - if ((tag & crypto_secretstream_xchacha20poly1305_TAG_REKEY) !== 0 || - sodium_is_zero(nonce.subarray(0, crypto_secretstream_xchacha20poly1305_COUNTERBYTES))) { - crypto_secretstream_xchacha20poly1305_rekey(state); - } - - return mlen - } - - function xor_buf (out, _in, n) { - for (let i = 0; i < n; i++) { - out[i] ^= _in[i]; - } - } - - crypto_secretstream = { - crypto_secretstream_xchacha20poly1305_keygen, - crypto_secretstream_xchacha20poly1305_init_push, - crypto_secretstream_xchacha20poly1305_init_pull, - crypto_secretstream_xchacha20poly1305_rekey, - crypto_secretstream_xchacha20poly1305_push, - crypto_secretstream_xchacha20poly1305_pull, - crypto_secretstream_xchacha20poly1305_STATEBYTES, - crypto_secretstream_xchacha20poly1305_ABYTES, - crypto_secretstream_xchacha20poly1305_HEADERBYTES, - crypto_secretstream_xchacha20poly1305_KEYBYTES, - crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX, - crypto_secretstream_xchacha20poly1305_TAGBYTES, - crypto_secretstream_xchacha20poly1305_TAG_MESSAGE, - crypto_secretstream_xchacha20poly1305_TAG_PUSH, - crypto_secretstream_xchacha20poly1305_TAG_REKEY, - crypto_secretstream_xchacha20poly1305_TAG_FINAL - }; - return crypto_secretstream; - } - - var crypto_shorthash = {}; - - var siphash24; - var hasRequiredSiphash24$1; - - function requireSiphash24$1 () { - if (hasRequiredSiphash24$1) return siphash24; - hasRequiredSiphash24$1 = 1; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __toBinary = /* @__PURE__ */ (() => { - var table = new Uint8Array(128); - for (var i = 0; i < 64; i++) - table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i; - return (base64) => { - var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0); - for (var i2 = 0, j = 0; i2 < n; ) { - var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)]; - var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)]; - bytes2[j++] = c0 << 2 | c1 >> 4; - bytes2[j++] = c1 << 4 | c2 >> 2; - bytes2[j++] = c2 << 6 | c3; - } - return bytes2; - }; - })(); - - // wasm-binary:./siphash24.wat - var require_siphash24 = __commonJS({ - "wasm-binary:./siphash24.wat"(exports2, module2) { - module2.exports = __toBinary("AGFzbQEAAAABBgFgAn9/AAMCAQAFBQEBCpBOBxQCBm1lbW9yeQIAB3NpcGhhc2gAAArdCAHaCAIIfgJ/QvXKzYPXrNu38wAhAkLt3pHzlszct+QAIQNC4eSV89bs2bzsACEEQvPK0cunjNmy9AAhBUEIKQMAIQdBECkDACEIIAGtQjiGIQYgAUEHcSELIAAgAWogC2shCiAFIAiFIQUgBCAHhSEEIAMgCIUhAyACIAeFIQICQANAIAAgCkYNASAAKQMAIQkgBSAJhSEFIAIgA3whAiADQg2JIQMgAyAChSEDIAJCIIkhAiAEIAV8IQQgBUIQiSEFIAUgBIUhBSACIAV8IQIgBUIViSEFIAUgAoUhBSAEIAN8IQQgA0IRiSEDIAMgBIUhAyAEQiCJIQQgAiADfCECIANCDYkhAyADIAKFIQMgAkIgiSECIAQgBXwhBCAFQhCJIQUgBSAEhSEFIAIgBXwhAiAFQhWJIQUgBSAChSEFIAQgA3whBCADQhGJIQMgAyAEhSEDIARCIIkhBCACIAmFIQIgAEEIaiEADAALCwJAAkACQAJAAkACQAJAAkAgCw4HBwYFBAMCAQALIAYgADEABkIwhoQhBgsgBiAAMQAFQiiGhCEGCyAGIAAxAARCIIaEIQYLIAYgADEAA0IYhoQhBgsgBiAAMQACQhCGhCEGCyAGIAAxAAFCCIaEIQYLIAYgADEAAIQhBgsgBSAGhSEFIAIgA3whAiADQg2JIQMgAyAChSEDIAJCIIkhAiAEIAV8IQQgBUIQiSEFIAUgBIUhBSACIAV8IQIgBUIViSEFIAUgAoUhBSAEIAN8IQQgA0IRiSEDIAMgBIUhAyAEQiCJIQQgAiADfCECIANCDYkhAyADIAKFIQMgAkIgiSECIAQgBXwhBCAFQhCJIQUgBSAEhSEFIAIgBXwhAiAFQhWJIQUgBSAChSEFIAQgA3whBCADQhGJIQMgAyAEhSEDIARCIIkhBCACIAaFIQIgBEL/AYUhBCACIAN8IQIgA0INiSEDIAMgAoUhAyACQiCJIQIgBCAFfCEEIAVCEIkhBSAFIASFIQUgAiAFfCECIAVCFYkhBSAFIAKFIQUgBCADfCEEIANCEYkhAyADIASFIQMgBEIgiSEEIAIgA3whAiADQg2JIQMgAyAChSEDIAJCIIkhAiAEIAV8IQQgBUIQiSEFIAUgBIUhBSACIAV8IQIgBUIViSEFIAUgAoUhBSAEIAN8IQQgA0IRiSEDIAMgBIUhAyAEQiCJIQQgAiADfCECIANCDYkhAyADIAKFIQMgAkIgiSECIAQgBXwhBCAFQhCJIQUgBSAEhSEFIAIgBXwhAiAFQhWJIQUgBSAChSEFIAQgA3whBCADQhGJIQMgAyAEhSEDIARCIIkhBCACIAN8IQIgA0INiSEDIAMgAoUhAyACQiCJIQIgBCAFfCEEIAVCEIkhBSAFIASFIQUgAiAFfCECIAVCFYkhBSAFIAKFIQUgBCADfCEEIANCEYkhAyADIASFIQMgBEIgiSEEQQAgAiADIAQgBYWFhTcDAAs="); - } - }); - - // wasm-module:./siphash24.wat - var bytes = require_siphash24(); - var compiled = new WebAssembly.Module(bytes); - siphash24 = (imports) => { - const instance = new WebAssembly.Instance(compiled, imports); - return instance.exports; - }; - return siphash24; - } - - var fallback_1; - var hasRequiredFallback; - - function requireFallback () { - if (hasRequiredFallback) return fallback_1; - hasRequiredFallback = 1; - fallback_1 = fallback; - - function _add (a, b) { - var rl = a.l + b.l; - var a2 = { - h: a.h + b.h + (rl / 2 >>> 31) >>> 0, - l: rl >>> 0 - }; - a.h = a2.h; - a.l = a2.l; - } - - function _xor (a, b) { - a.h ^= b.h; - a.h >>>= 0; - a.l ^= b.l; - a.l >>>= 0; - } - - function _rotl (a, n) { - var a2 = { - h: a.h << n | a.l >>> (32 - n), - l: a.l << n | a.h >>> (32 - n) - }; - a.h = a2.h; - a.l = a2.l; - } - - function _rotl32 (a) { - var al = a.l; - a.l = a.h; - a.h = al; - } - - function _compress (v0, v1, v2, v3) { - _add(v0, v1); - _add(v2, v3); - _rotl(v1, 13); - _rotl(v3, 16); - _xor(v1, v0); - _xor(v3, v2); - _rotl32(v0); - _add(v2, v1); - _add(v0, v3); - _rotl(v1, 17); - _rotl(v3, 21); - _xor(v1, v2); - _xor(v3, v0); - _rotl32(v2); - } - - function _get_int (a, offset) { - return (a[offset + 3] << 24) | (a[offset + 2] << 16) | (a[offset + 1] << 8) | a[offset] - } - - function fallback (out, m, key) { // modified from https://github.com/jedisct1/siphash-js to use uint8arrays - var k0 = {h: _get_int(key, 4), l: _get_int(key, 0)}; - var k1 = {h: _get_int(key, 12), l: _get_int(key, 8)}; - var v0 = {h: k0.h, l: k0.l}; - var v2 = k0; - var v1 = {h: k1.h, l: k1.l}; - var v3 = k1; - var mi; - var mp = 0; - var ml = m.length; - var ml7 = ml - 7; - var buf = new Uint8Array(new ArrayBuffer(8)); - - _xor(v0, {h: 0x736f6d65, l: 0x70736575}); - _xor(v1, {h: 0x646f7261, l: 0x6e646f6d}); - _xor(v2, {h: 0x6c796765, l: 0x6e657261}); - _xor(v3, {h: 0x74656462, l: 0x79746573}); - - while (mp < ml7) { - mi = {h: _get_int(m, mp + 4), l: _get_int(m, mp)}; - _xor(v3, mi); - _compress(v0, v1, v2, v3); - _compress(v0, v1, v2, v3); - _xor(v0, mi); - mp += 8; - } - - buf[7] = ml; - var ic = 0; - while (mp < ml) { - buf[ic++] = m[mp++]; - } - while (ic < 7) { - buf[ic++] = 0; - } - - mi = { - h: buf[7] << 24 | buf[6] << 16 | buf[5] << 8 | buf[4], - l: buf[3] << 24 | buf[2] << 16 | buf[1] << 8 | buf[0] - }; - - _xor(v3, mi); - _compress(v0, v1, v2, v3); - _compress(v0, v1, v2, v3); - _xor(v0, mi); - _xor(v2, { h: 0, l: 0xff }); - _compress(v0, v1, v2, v3); - _compress(v0, v1, v2, v3); - _compress(v0, v1, v2, v3); - _compress(v0, v1, v2, v3); - - var h = v0; - _xor(h, v1); - _xor(h, v2); - _xor(h, v3); - - out[0] = h.l & 0xff; - out[1] = (h.l >> 8) & 0xff; - out[2] = (h.l >> 16) & 0xff; - out[3] = (h.l >> 24) & 0xff; - out[4] = h.h & 0xff; - out[5] = (h.h >> 8) & 0xff; - out[6] = (h.h >> 16) & 0xff; - out[7] = (h.h >> 24) & 0xff; - } - return fallback_1; - } - - var siphash24_1; - var hasRequiredSiphash24; - - function requireSiphash24 () { - if (hasRequiredSiphash24) return siphash24_1; - hasRequiredSiphash24 = 1; - var assert = requireNanoassert(); - var wasm = typeof WebAssembly !== 'undefined' && requireSiphash24$1()(); - var fallback = requireFallback(); - - siphash24_1 = siphash24; - - var BYTES = siphash24.BYTES = 8; - var KEYBYTES = siphash24.KEYBYTES = 16; - - siphash24.WASM_SUPPORTED = !!wasm; - siphash24.WASM_LOADED = !!wasm; - - var memory = new Uint8Array(wasm ? wasm.memory.buffer : 0); - - function siphash24 (data, key, out, noAssert) { - if (!out) out = new Uint8Array(8); - - if (noAssert !== true) { - assert(out.length >= BYTES, 'output must be at least ' + BYTES); - assert(key.length >= KEYBYTES, 'key must be at least ' + KEYBYTES); - } - - if (wasm) { - if (data.length + 24 > memory.length) realloc(data.length + 24); - memory.set(key, 8); - memory.set(data, 24); - wasm.siphash(24, data.length); - out.set(memory.subarray(0, 8)); - } else { - fallback(out, data, key); - } - - return out - } - - function realloc (size) { - wasm.memory.grow(Math.max(0, Math.ceil(Math.abs(size - memory.length) / 65536))); - memory = new Uint8Array(wasm.memory.buffer); - } - return siphash24_1; - } - - var hasRequiredCrypto_shorthash; - - function requireCrypto_shorthash () { - if (hasRequiredCrypto_shorthash) return crypto_shorthash; - hasRequiredCrypto_shorthash = 1; - var siphash = requireSiphash24(); - - if (new Uint16Array([1])[0] !== 1) throw new Error('Big endian architecture is not supported.') - - crypto_shorthash.crypto_shorthash_PRIMITIVE = 'siphash24'; - crypto_shorthash.crypto_shorthash_BYTES = siphash.BYTES; - crypto_shorthash.crypto_shorthash_KEYBYTES = siphash.KEYBYTES; - crypto_shorthash.crypto_shorthash_WASM_SUPPORTED = siphash.WASM_SUPPORTED; - crypto_shorthash.crypto_shorthash_WASM_LOADED = siphash.WASM_LOADED; - crypto_shorthash.crypto_shorthash = shorthash; - - function shorthash (out, data, key, noAssert) { - siphash(data, key, out, noAssert); - } - return crypto_shorthash; - } - - /* eslint-disable camelcase, one-var */ - - var crypto_sign_1; - var hasRequiredCrypto_sign; - - function requireCrypto_sign () { - if (hasRequiredCrypto_sign) return crypto_sign_1; - hasRequiredCrypto_sign = 1; - const { crypto_verify_32 } = requireCrypto_verify(); - const { crypto_hash } = requireCrypto_hash(); - const { - gf, gf0, gf1, D, D2, - X, Y, I, A, Z, M, S, - sel25519, pack25519, - inv25519, unpack25519 - } = requireEd25519$2(); - const { randombytes } = requireRandombytes(); - const { crypto_scalarmult_BYTES } = requireCrypto_scalarmult(); - const { crypto_hash_sha512_BYTES } = requireCrypto_hash(); - const assert = requireNanoassert(); - - const crypto_sign_ed25519_PUBLICKEYBYTES = 32; - const crypto_sign_ed25519_SECRETKEYBYTES = 64; - const crypto_sign_ed25519_SEEDBYTES = 32; - const crypto_sign_ed25519_BYTES = 64; - - const crypto_sign_BYTES = crypto_sign_ed25519_BYTES; - const crypto_sign_PUBLICKEYBYTES = crypto_sign_ed25519_PUBLICKEYBYTES; - const crypto_sign_SECRETKEYBYTES = crypto_sign_ed25519_SECRETKEYBYTES; - const crypto_sign_SEEDBYTES = crypto_sign_ed25519_SEEDBYTES; - - crypto_sign_1 = { - crypto_sign_keypair, - crypto_sign_seed_keypair, - crypto_sign, - crypto_sign_detached, - crypto_sign_open, - crypto_sign_verify_detached, - crypto_sign_BYTES, - crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES, - crypto_sign_SEEDBYTES, - crypto_sign_ed25519_PUBLICKEYBYTES, - crypto_sign_ed25519_SECRETKEYBYTES, - crypto_sign_ed25519_SEEDBYTES, - crypto_sign_ed25519_BYTES, - crypto_sign_ed25519_pk_to_curve25519, - crypto_sign_ed25519_sk_to_curve25519, - crypto_sign_ed25519_sk_to_pk, - unpackneg, - pack - }; - - function set25519 (r, a) { - for (let i = 0; i < 16; i++) r[i] = a[i] | 0; - } - - function pow2523 (o, i) { - var c = gf(); - var a; - for (a = 0; a < 16; a++) c[a] = i[a]; - for (a = 250; a >= 0; a--) { - S(c, c); - if (a !== 1) M(c, c, i); - } - for (a = 0; a < 16; a++) o[a] = c[a]; - } - - function add (p, q) { - var a = gf(), b = gf(), c = gf(), - d = gf(), e = gf(), f = gf(), - g = gf(), h = gf(), t = gf(); - - Z(a, p[1], p[0]); - Z(t, q[1], q[0]); - M(a, a, t); - A(b, p[0], p[1]); - A(t, q[0], q[1]); - M(b, b, t); - M(c, p[3], q[3]); - M(c, c, D2); - M(d, p[2], q[2]); - A(d, d, d); - Z(e, b, a); - Z(f, d, c); - A(g, d, c); - A(h, b, a); - - M(p[0], e, f); - M(p[1], h, g); - M(p[2], g, f); - M(p[3], e, h); - } - - function cswap (p, q, b) { - var i; - for (i = 0; i < 4; i++) { - sel25519(p[i], q[i], b); - } - } - - function pack (r, p) { - var tx = gf(), ty = gf(), zi = gf(); - inv25519(zi, p[2]); - M(tx, p[0], zi); - M(ty, p[1], zi); - pack25519(r, ty); - r[31] ^= par25519(tx) << 7; - } - - function scalarmult (p, q, s) { - // don't mutate q - var h = [gf(q[0]), gf(q[1]), gf(q[2]), gf(q[3])]; - var b, i; - set25519(p[0], gf0); - set25519(p[1], gf1); - set25519(p[2], gf1); - set25519(p[3], gf0); - for (i = 255; i >= 0; --i) { - b = (s[(i / 8) | 0] >> (i & 7)) & 1; - cswap(p, h, b); - add(h, p); - add(p, p); - cswap(p, h, b); - } - } - - function scalarbase (p, s) { - var q = [gf(), gf(), gf(), gf()]; - set25519(q[0], X); - set25519(q[1], Y); - set25519(q[2], gf1); - M(q[3], X, Y); - scalarmult(p, q, s); - } - - function crypto_sign_keypair (pk, sk, seeded) { - check(pk, crypto_sign_PUBLICKEYBYTES); - check(sk, crypto_sign_SECRETKEYBYTES); - - var d = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()]; - var i; - - if (!seeded) randombytes(sk, 32); - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - scalarbase(p, d); - pack(pk, p); - - for (i = 0; i < 32; i++) sk[i + 32] = pk[i]; - } - - function crypto_sign_seed_keypair (pk, sk, seed) { - check(seed, crypto_sign_SEEDBYTES); - sk.set(seed); - return crypto_sign_keypair(pk, sk, true) - } - - var 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]); - - function modL (r, x) { - var carry, i, j, k; - for (i = 63; i >= 32; --i) { - carry = 0; - for (j = i - 32, k = i - 12; j < k; ++j) { - x[j] += carry - 16 * x[i] * L[j - (i - 32)]; - carry = (x[j] + 128) >> 8; - x[j] -= carry * 256; - } - x[j] += carry; - x[i] = 0; - } - carry = 0; - for (j = 0; j < 32; j++) { - x[j] += carry - (x[31] >> 4) * L[j]; - carry = x[j] >> 8; - x[j] &= 255; - } - for (j = 0; j < 32; j++) x[j] -= carry * L[j]; - for (i = 0; i < 32; i++) { - x[i + 1] += x[i] >> 8; - r[i] = x[i] & 255; - } - } - - function reduce (r) { - var x = new Float64Array(64); - for (let i = 0; i < 64; i++) x[i] = r[i]; - for (let i = 0; i < 64; i++) r[i] = 0; - modL(r, x); - } - - // Note: difference from C - smlen returned, not passed as argument. - function crypto_sign (sm, m, sk) { - check(sm, crypto_sign_BYTES + m.length); - check(m, 0); - check(sk, crypto_sign_SECRETKEYBYTES); - var n = m.length; - - var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64); - var i, j, x = new Float64Array(64); - var p = [gf(), gf(), gf(), gf()]; - - crypto_hash(d, sk, 32); - d[0] &= 248; - d[31] &= 127; - d[31] |= 64; - - var smlen = n + 64; - for (i = 0; i < n; i++) sm[64 + i] = m[i]; - for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i]; - - crypto_hash(r, sm.subarray(32), n + 32); - reduce(r); - scalarbase(p, r); - pack(sm, p); - - for (i = 32; i < 64; i++) sm[i] = sk[i]; - crypto_hash(h, sm, n + 64); - reduce(h); - - for (i = 0; i < 64; i++) x[i] = 0; - for (i = 0; i < 32; i++) x[i] = r[i]; - for (i = 0; i < 32; i++) { - for (j = 0; j < 32; j++) { - x[i + j] += h[i] * d[j]; - } - } - - modL(sm.subarray(32), x); - return smlen - } - - function crypto_sign_detached (sig, m, sk) { - var sm = new Uint8Array(m.length + crypto_sign_BYTES); - crypto_sign(sm, m, sk); - for (let i = 0; i < crypto_sign_BYTES; i++) sig[i] = sm[i]; - } - - function unpackneg (r, p) { - var t = gf(), chk = gf(), num = gf(), - den = gf(), den2 = gf(), den4 = gf(), - den6 = gf(); - - set25519(r[2], gf1); - unpack25519(r[1], p); - S(num, r[1]); - M(den, num, D); - Z(num, num, r[2]); - A(den, r[2], den); - - S(den2, den); - S(den4, den2); - M(den6, den4, den2); - M(t, den6, num); - M(t, t, den); - - pow2523(t, t); - M(t, t, num); - M(t, t, den); - M(t, t, den); - M(r[0], t, den); - - S(chk, r[0]); - M(chk, chk, den); - if (!neq25519(chk, num)) M(r[0], r[0], I); - - S(chk, r[0]); - M(chk, chk, den); - if (!neq25519(chk, num)) return false - - if (par25519(r[0]) === (p[31] >> 7)) { - Z(r[0], gf(), r[0]); - } - - M(r[3], r[0], r[1]); - return true - } - - /* eslint-disable no-unused-vars */ - function crypto_sign_open (msg, sm, pk) { - check(msg, sm.length - crypto_sign_BYTES); - check(sm, crypto_sign_BYTES); - check(pk, crypto_sign_PUBLICKEYBYTES); - var n = sm.length; - var m = new Uint8Array(sm.length); - - var i; - var t = new Uint8Array(32), h = new Uint8Array(64); - var p = [gf(), gf(), gf(), gf()], - q = [gf(), gf(), gf(), gf()]; - if (n < 64) return false - - if (!unpackneg(q, pk)) return false - - for (i = 0; i < n; i++) m[i] = sm[i]; - for (i = 0; i < 32; i++) m[i + 32] = pk[i]; - crypto_hash(h, m, n); - reduce(h); - scalarmult(p, q, h); - - scalarbase(q, sm.subarray(32)); - add(p, q); - pack(t, p); - - n -= 64; - if (!crypto_verify_32(sm, 0, t, 0)) { - for (i = 0; i < n; i++) m[i] = 0; - return false - // throw new Error('crypto_sign_open failed') - } - - for (i = 0; i < n; i++) msg[i] = sm[i + 64]; - return true - } - /* eslint-enable no-unused-vars */ - - function crypto_sign_verify_detached (sig, m, pk) { - check(sig, crypto_sign_BYTES); - var sm = new Uint8Array(m.length + crypto_sign_BYTES); - var i = 0; - for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i]; - for (i = 0; i < m.length; i++) sm[i + crypto_sign_BYTES] = m[i]; - return crypto_sign_open(m, sm, pk) - } - - function par25519 (a) { - var d = new Uint8Array(32); - pack25519(d, a); - return d[0] & 1 - } - - function neq25519 (a, b) { - var c = new Uint8Array(32), d = new Uint8Array(32); - pack25519(c, a); - pack25519(d, b); - return crypto_verify_32(c, 0, d, 0) - } - - function ed25519_mul_l (p, q) { - scalarmult(p, q, L); - } - - function ed25519_is_on_main_subgroup (p) { - var pl = [gf(), gf(), gf(), gf()]; - - ed25519_mul_l(pl, p); - - var zero = 0; - for (let i = 0; i < 16; i++) { - zero |= (pl[0][i] & 0xffff); - } - - return zero === 0 - } - - function crypto_sign_ed25519_pk_to_curve25519 (x25519_pk, ed25519_pk) { - check(x25519_pk, crypto_sign_PUBLICKEYBYTES); - check(ed25519_pk, crypto_sign_ed25519_PUBLICKEYBYTES); - - var a = [gf(), gf(), gf(), gf()]; - var x = gf([1]); - var one_minus_y = gf([1]); - - assert( - isSmallOrder(ed25519_pk) && - unpackneg(a, ed25519_pk) && - ed25519_is_on_main_subgroup(a), 'Cannot convert key: bad point'); - - for (let i = 0; i < a.length; i++) { - pack25519(x25519_pk, a[i]); - } - - Z(one_minus_y, one_minus_y, a[1]); - A(x, x, a[1]); - inv25519(one_minus_y, one_minus_y); - M(x, x, one_minus_y); - pack25519(x25519_pk, x); - - return 0 - } - - function isSmallOrder (s) { - Uint8Array.from([]); - - var bad_points = [ - // 0 (order 4) - Uint8Array.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), - - // 1 (order 1) - Uint8Array.from([0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), - - // 2707385501144840649318225287225658788936804267575313519463743609750303402022(order 8) - Uint8Array.from([0x26, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, 0x45, 0xc3, - 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, 0xd5, 0xdf, 0xac, 0x05, 0xd3, - 0xc6, 0x33, 0x39, 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x05]), - - // 55188659117513257062467267217118295137698188065244968500265048394206261417927 (order 8) - Uint8Array.from([0xc7, 0x17, 0x6a, 0x70, 0x3d, 0x4d, 0xd8, 0x4f, 0xba, 0x3c, - 0x0b, 0x76, 0x0d, 0x10, 0x67, 0x0f, 0x2a, 0x20, 0x53, 0xfa, 0x2c, - 0x39, 0xcc, 0xc6, 0x4e, 0xc7, 0xfd, 0x77, 0x92, 0xac, 0x03, 0x7a]), - - // p-1 (order 2) - Uint8Array.from([0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f]), - - // p (=0 order 4) - Uint8Array.from([0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f]), - - // p + 1 (=1 order 1) - Uint8Array.from([0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f]) - ]; - - var c = new Uint8Array(7); - var j; - - check(bad_points, 7); - for (let i = 0; i < bad_points.length; i++) { - for (j = 0; j < 31; j++) { - c[i] |= s[j] ^ bad_points[i][j]; - } - } - - for (let i = 0; i < bad_points.length; i++) { - c[i] |= (s[j] & 0x7f) ^ bad_points[i][j]; - } - - var k = 0; - for (let i = 0; i < bad_points.length; i++) { - k |= (c[i] - 1); - } - - return ((k >> 8) & 1) === 0 - } - - function crypto_sign_ed25519_sk_to_pk (pk, sk) { - check(pk, crypto_sign_ed25519_PUBLICKEYBYTES); - pk.set(sk.subarray(crypto_sign_ed25519_SEEDBYTES)); - return pk - } - - function crypto_sign_ed25519_sk_to_curve25519 (curveSk, edSk) { - assert(curveSk && curveSk.byteLength === crypto_scalarmult_BYTES, "curveSk must be 'crypto_sign_SECRETKEYBYTES' long"); - assert(edSk && edSk.byteLength === crypto_sign_ed25519_SECRETKEYBYTES, "edSk must be 'crypto_sign_ed25519_SECRETKEYBYTES' long"); - - var h = new Uint8Array(crypto_hash_sha512_BYTES); - crypto_hash(h, edSk, 32); - - h[0] &= 248; - h[31] &= 127; - h[31] |= 64; - - curveSk.set(h.subarray(0, crypto_scalarmult_BYTES)); - h.fill(0); - return curveSk - } - - function check (buf, len, arg = 'Argument') { - if (!buf || (len && buf.length < len)) throw new Error(arg + ' must be a buffer' + (len ? ' of length ' + len : '')) - } - return crypto_sign_1; - } - - var hasRequiredSodiumJavascript; - - function requireSodiumJavascript () { - if (hasRequiredSodiumJavascript) return sodiumJavascript.exports; - hasRequiredSodiumJavascript = 1; - (function (module) { - - // Based on https://github.com/dchest/tweetnacl-js/blob/6dcbcaf5f5cbfd313f2dcfe763db35c828c8ff5b/nacl-fast.js. - - // Ported in 2014 by Dmitry Chestnykh and Devi Mandiri. - // Public domain. - // - // Implementation derived from TweetNaCl version 20140427. - // See for details: http://tweetnacl.cr.yp.to/ - - forward(requireRandombytes()); - forward(requireMemory()); - forward(requireHelpers()); - forward(requireCrypto_verify()); - forward(requireCrypto_auth()); - forward(requireCrypto_box()); - forward(requireCrypto_generichash()); - forward(requireCrypto_hash()); - forward(requireCrypto_hash_sha256()); - forward(requireCrypto_kdf()); - forward(requireCrypto_kx()); - forward(requireCrypto_aead()); - forward(requireCrypto_onetimeauth()); - forward(requireCrypto_scalarmult()); - forward(requireCrypto_secretbox()); - forward(requireCrypto_secretstream()); - forward(requireCrypto_shorthash()); - forward(requireCrypto_sign()); - forward(requireCrypto_stream()); - forward(requireCrypto_stream_chacha20()); - - function forward (submodule) { - Object.keys(submodule).forEach(function (prop) { - module.exports[prop] = submodule[prop]; - }); - } - } (sodiumJavascript)); - return sodiumJavascript.exports; - } - - var sodiumUniversal; - var hasRequiredSodiumUniversal; - - function requireSodiumUniversal () { - if (hasRequiredSodiumUniversal) return sodiumUniversal; - hasRequiredSodiumUniversal = 1; - sodiumUniversal = requireSodiumJavascript(); - return sodiumUniversal; - } - - var abdikace = [ - "czech" - ]; - var abeceda = [ - "czech" - ]; - var adresa = [ - "czech" - ]; - var agrese = [ - "czech" - ]; - var akce = [ - "czech" - ]; - var aktovka = [ - "czech" - ]; - var alej = [ - "czech" - ]; - var alkohol = [ - "czech" - ]; - var amputace = [ - "czech" - ]; - var ananas = [ - "czech" - ]; - var andulka = [ - "czech" - ]; - var anekdota = [ - "czech" - ]; - var anketa = [ - "czech" - ]; - var antika = [ - "czech" - ]; - var anulovat = [ - "czech" - ]; - var archa = [ - "czech" - ]; - var arogance = [ - "czech" - ]; - var asfalt = [ - "czech", - "turkish" - ]; - var asistent = [ - "czech" - ]; - var aspirace = [ - "czech" - ]; - var astma = [ - "czech" - ]; - var astronom = [ - "czech" - ]; - var atlas = [ - "czech" - ]; - var atletika = [ - "czech" - ]; - var atol = [ - "czech" - ]; - var autobus = [ - "czech" - ]; - var azyl = [ - "czech" - ]; - var babka = [ - "czech" - ]; - var bachor = [ - "czech" - ]; - var bacil = [ - "czech" - ]; - var baculka = [ - "czech" - ]; - var badatel = [ - "czech" - ]; - var bageta = [ - "czech" - ]; - var bagr = [ - "czech" - ]; - var bahno = [ - "czech" - ]; - var bakterie = [ - "czech" - ]; - var balada = [ - "czech" - ]; - var baletka = [ - "czech" - ]; - var balkon = [ - "czech" - ]; - var balonek = [ - "czech" - ]; - var balvan = [ - "czech" - ]; - var balza = [ - "czech" - ]; - var bambus = [ - "czech" - ]; - var bankomat = [ - "czech" - ]; - var barbar = [ - "czech" - ]; - var baret = [ - "czech" - ]; - var barman = [ - "czech" - ]; - var baroko = [ - "czech" - ]; - var barva = [ - "czech" - ]; - var baterka = [ - "czech" - ]; - var batoh = [ - "czech" - ]; - var bavlna = [ - "czech" - ]; - var bazalka = [ - "czech" - ]; - var bazilika = [ - "czech" - ]; - var bazuka = [ - "czech" - ]; - var bedna = [ - "czech" - ]; - var beran = [ - "czech" - ]; - var beseda = [ - "czech" - ]; - var bestie = [ - "czech" - ]; - var beton = [ - "czech", - "turkish" - ]; - var bezinka = [ - "czech" - ]; - var bezmoc = [ - "czech" - ]; - var beztak = [ - "czech" - ]; - var bicykl = [ - "czech" - ]; - var bidlo = [ - "czech" - ]; - var biftek = [ - "czech", - "turkish" - ]; - var bikiny = [ - "czech" - ]; - var bilance = [ - "czech" - ]; - var biograf = [ - "czech" - ]; - var biolog = [ - "czech" - ]; - var bitva = [ - "czech" - ]; - var bizon = [ - "czech" - ]; - var blahobyt = [ - "czech" - ]; - var blatouch = [ - "czech" - ]; - var blecha = [ - "czech" - ]; - var bledule = [ - "czech" - ]; - var blesk = [ - "czech" - ]; - var blikat = [ - "czech" - ]; - var blizna = [ - "czech" - ]; - var blokovat = [ - "czech" - ]; - var bloudit = [ - "czech" - ]; - var blud = [ - "czech" - ]; - var bobek = [ - "czech" - ]; - var bobr = [ - "czech" - ]; - var bodlina = [ - "czech" - ]; - var bodnout = [ - "czech" - ]; - var bohatost = [ - "czech" - ]; - var bojkot = [ - "czech" - ]; - var bojovat = [ - "czech" - ]; - var bokorys = [ - "czech" - ]; - var bolest = [ - "czech" - ]; - var borec = [ - "czech" - ]; - var borovice = [ - "czech" - ]; - var bota = [ - "czech" - ]; - var boubel = [ - "czech" - ]; - var bouchat = [ - "czech" - ]; - var bouda = [ - "czech" - ]; - var boule = [ - "czech" - ]; - var bourat = [ - "czech" - ]; - var boxer = [ - "czech" - ]; - var bradavka = [ - "czech" - ]; - var brambora = [ - "czech" - ]; - var branka = [ - "czech" - ]; - var bratr = [ - "czech" - ]; - var brepta = [ - "czech" - ]; - var briketa = [ - "czech" - ]; - var brko = [ - "czech" - ]; - var brloh = [ - "czech" - ]; - var bronz = [ - "czech" - ]; - var broskev = [ - "czech" - ]; - var brunetka = [ - "czech" - ]; - var brusinka = [ - "czech" - ]; - var brzda = [ - "czech" - ]; - var brzy = [ - "czech" - ]; - var bublina = [ - "czech" - ]; - var bubnovat = [ - "czech" - ]; - var buchta = [ - "czech" - ]; - var buditel = [ - "czech" - ]; - var budka = [ - "czech" - ]; - var budova = [ - "czech" - ]; - var bufet = [ - "czech" - ]; - var bujarost = [ - "czech" - ]; - var bukvice = [ - "czech" - ]; - var buldok = [ - "czech" - ]; - var bulva = [ - "czech" - ]; - var bunda = [ - "czech" - ]; - var bunkr = [ - "czech" - ]; - var burza = [ - "czech" - ]; - var butik = [ - "czech", - "turkish" - ]; - var buvol = [ - "czech" - ]; - var buzola = [ - "czech" - ]; - var bydlet = [ - "czech" - ]; - var bylina = [ - "czech" - ]; - var bytovka = [ - "czech" - ]; - var bzukot = [ - "czech" - ]; - var capart = [ - "czech" - ]; - var carevna = [ - "czech" - ]; - var cedr = [ - "czech" - ]; - var cedule = [ - "czech" - ]; - var cejch = [ - "czech" - ]; - var cejn = [ - "czech" - ]; - var cela = [ - "czech" - ]; - var celer = [ - "czech" - ]; - var celkem = [ - "czech" - ]; - var celnice = [ - "czech" - ]; - var cenina = [ - "czech" - ]; - var cennost = [ - "czech" - ]; - var cenovka = [ - "czech" - ]; - var centrum = [ - "czech" - ]; - var cenzor = [ - "czech" - ]; - var cestopis = [ - "czech" - ]; - var cetka = [ - "czech" - ]; - var chalupa = [ - "czech" - ]; - var chapadlo = [ - "czech" - ]; - var charita = [ - "czech" - ]; - var chata = [ - "czech" - ]; - var chechtat = [ - "czech" - ]; - var chemie = [ - "czech" - ]; - var chichot = [ - "czech" - ]; - var chirurg = [ - "czech" - ]; - var chlad = [ - "czech" - ]; - var chleba = [ - "czech" - ]; - var chlubit = [ - "czech" - ]; - var chmel = [ - "czech" - ]; - var chmura = [ - "czech" - ]; - var chobot = [ - "czech" - ]; - var chochol = [ - "czech" - ]; - var chodba = [ - "czech" - ]; - var cholera = [ - "czech" - ]; - var chomout = [ - "czech" - ]; - var chopit = [ - "czech" - ]; - var choroba = [ - "czech" - ]; - var chov = [ - "czech" - ]; - var chrapot = [ - "czech" - ]; - var chrlit = [ - "czech" - ]; - var chrt = [ - "czech" - ]; - var chrup = [ - "czech" - ]; - var chtivost = [ - "czech" - ]; - var chudina = [ - "czech" - ]; - var chutnat = [ - "czech" - ]; - var chvat = [ - "czech" - ]; - var chvilka = [ - "czech" - ]; - var chvost = [ - "czech" - ]; - var chyba = [ - "czech" - ]; - var chystat = [ - "czech" - ]; - var chytit = [ - "czech" - ]; - var cibule = [ - "czech" - ]; - var cigareta = [ - "czech" - ]; - var cihelna = [ - "czech" - ]; - var cihla = [ - "czech" - ]; - var cinkot = [ - "czech" - ]; - var cirkus = [ - "czech" - ]; - var cisterna = [ - "czech" - ]; - var citace = [ - "czech" - ]; - var citrus = [ - "czech" - ]; - var cizinec = [ - "czech" - ]; - var cizost = [ - "czech" - ]; - var clona = [ - "czech" - ]; - var cokoliv = [ - "czech" - ]; - var couvat = [ - "czech" - ]; - var ctitel = [ - "czech" - ]; - var ctnost = [ - "czech" - ]; - var cudnost = [ - "czech" - ]; - var cuketa = [ - "czech" - ]; - var cukr = [ - "czech" - ]; - var cupot = [ - "czech" - ]; - var cvaknout = [ - "czech" - ]; - var cval = [ - "czech" - ]; - var cvik = [ - "czech" - ]; - var cvrkot = [ - "czech" - ]; - var cyklista = [ - "czech" - ]; - var daleko = [ - "czech" - ]; - var dareba = [ - "czech" - ]; - var datel = [ - "czech" - ]; - var datum = [ - "czech" - ]; - var dcera = [ - "czech" - ]; - var debata = [ - "czech" - ]; - var dechovka = [ - "czech" - ]; - var decibel = [ - "czech" - ]; - var deficit = [ - "czech" - ]; - var deflace = [ - "czech" - ]; - var dekl = [ - "czech" - ]; - var dekret = [ - "czech" - ]; - var demokrat = [ - "czech" - ]; - var deprese = [ - "czech" - ]; - var derby = [ - "czech" - ]; - var deska = [ - "czech" - ]; - var detektiv = [ - "czech" - ]; - var dikobraz = [ - "czech" - ]; - var diktovat = [ - "czech" - ]; - var dioda = [ - "czech" - ]; - var diplom = [ - "czech" - ]; - var disk = [ - "czech", - "turkish" - ]; - var displej = [ - "czech" - ]; - var divadlo = [ - "czech" - ]; - var divoch = [ - "czech" - ]; - var dlaha = [ - "czech" - ]; - var dlouho = [ - "czech" - ]; - var dluhopis = [ - "czech" - ]; - var dnes = [ - "czech" - ]; - var dobro = [ - "czech" - ]; - var dobytek = [ - "czech" - ]; - var docent = [ - "czech" - ]; - var dochutit = [ - "czech" - ]; - var dodnes = [ - "czech" - ]; - var dohled = [ - "czech" - ]; - var dohoda = [ - "czech" - ]; - var dohra = [ - "czech" - ]; - var dojem = [ - "czech" - ]; - var dojnice = [ - "czech" - ]; - var doklad = [ - "czech" - ]; - var dokola = [ - "czech" - ]; - var doktor = [ - "czech", - "turkish" - ]; - var dokument = [ - "czech" - ]; - var dolar = [ - "czech" - ]; - var doleva = [ - "czech" - ]; - var dolina = [ - "czech" - ]; - var doma = [ - "czech" - ]; - var dominant = [ - "czech" - ]; - var domluvit = [ - "czech" - ]; - var domov = [ - "czech" - ]; - var donutit = [ - "czech" - ]; - var dopad = [ - "czech" - ]; - var dopis = [ - "czech" - ]; - var doplnit = [ - "czech" - ]; - var doposud = [ - "czech" - ]; - var doprovod = [ - "czech" - ]; - var dopustit = [ - "czech" - ]; - var dorazit = [ - "czech" - ]; - var dorost = [ - "czech" - ]; - var dort = [ - "czech" - ]; - var dosah = [ - "czech" - ]; - var doslov = [ - "czech" - ]; - var dostatek = [ - "czech" - ]; - var dosud = [ - "czech" - ]; - var dosyta = [ - "czech" - ]; - var dotaz = [ - "czech" - ]; - var dotek = [ - "czech" - ]; - var dotknout = [ - "czech" - ]; - var doufat = [ - "czech" - ]; - var doutnat = [ - "czech" - ]; - var dovozce = [ - "czech" - ]; - var dozadu = [ - "czech" - ]; - var doznat = [ - "czech" - ]; - var dozorce = [ - "czech" - ]; - var drahota = [ - "czech" - ]; - var drak = [ - "czech" - ]; - var dramatik = [ - "czech" - ]; - var dravec = [ - "czech" - ]; - var draze = [ - "czech" - ]; - var drdol = [ - "czech" - ]; - var drobnost = [ - "czech" - ]; - var drogerie = [ - "czech" - ]; - var drozd = [ - "czech" - ]; - var drsnost = [ - "czech" - ]; - var drtit = [ - "czech" - ]; - var drzost = [ - "czech" - ]; - var duben = [ - "czech" - ]; - var duchovno = [ - "czech" - ]; - var dudek = [ - "czech" - ]; - var duha = [ - "czech" - ]; - var duhovka = [ - "czech" - ]; - var dusit = [ - "czech" - ]; - var dusno = [ - "czech" - ]; - var dutost = [ - "czech" - ]; - var dvojice = [ - "czech" - ]; - var dvorec = [ - "czech" - ]; - var dynamit = [ - "czech" - ]; - var ekolog = [ - "czech" - ]; - var ekonomie = [ - "czech" - ]; - var elektron = [ - "czech" - ]; - var elipsa = [ - "czech" - ]; - var email = [ - "czech" - ]; - var emise = [ - "czech" - ]; - var emoce = [ - "czech" - ]; - var empatie = [ - "czech" - ]; - var epizoda = [ - "czech" - ]; - var epocha = [ - "czech" - ]; - var epopej = [ - "czech" - ]; - var epos = [ - "czech" - ]; - var esej = [ - "czech" - ]; - var esence = [ - "czech" - ]; - var eskorta = [ - "czech" - ]; - var eskymo = [ - "czech" - ]; - var etiketa = [ - "czech" - ]; - var euforie = [ - "czech" - ]; - var evoluce = [ - "czech" - ]; - var exekuce = [ - "czech" - ]; - var exkurze = [ - "czech" - ]; - var expedice = [ - "czech" - ]; - var exploze = [ - "czech" - ]; - var extrakt = [ - "czech" - ]; - var facka = [ - "czech" - ]; - var fajfka = [ - "czech" - ]; - var fakulta = [ - "czech" - ]; - var fanatik = [ - "czech", - "turkish" - ]; - var fantazie = [ - "czech" - ]; - var farmacie = [ - "czech" - ]; - var favorit = [ - "czech" - ]; - var fazole = [ - "czech" - ]; - var federace = [ - "czech" - ]; - var fejeton = [ - "czech" - ]; - var fenka = [ - "czech" - ]; - var fialka = [ - "czech" - ]; - var figurant = [ - "czech" - ]; - var filozof = [ - "czech" - ]; - var filtr = [ - "czech" - ]; - var finance = [ - "czech" - ]; - var finta = [ - "czech" - ]; - var fixace = [ - "czech" - ]; - var fjord = [ - "czech" - ]; - var flanel = [ - "czech" - ]; - var flirt = [ - "czech" - ]; - var flotila = [ - "czech" - ]; - var fond = [ - "czech" - ]; - var fosfor = [ - "czech" - ]; - var fotbal = [ - "czech" - ]; - var fotka = [ - "czech" - ]; - var foton = [ - "czech" - ]; - var frakce = [ - "czech" - ]; - var freska = [ - "czech" - ]; - var fronta = [ - "czech" - ]; - var fukar = [ - "czech" - ]; - var funkce = [ - "czech" - ]; - var fyzika = [ - "czech" - ]; - var galeje = [ - "czech" - ]; - var garant = [ - "czech" - ]; - var genetika = [ - "czech" - ]; - var geolog = [ - "czech" - ]; - var gilotina = [ - "czech" - ]; - var glazura = [ - "czech" - ]; - var glejt = [ - "czech" - ]; - var golem = [ - "czech" - ]; - var golfista = [ - "czech" - ]; - var gotika = [ - "czech" - ]; - var graf = [ - "czech" - ]; - var gramofon = [ - "czech" - ]; - var granule = [ - "czech" - ]; - var grep = [ - "czech" - ]; - var gril = [ - "czech" - ]; - var grog = [ - "czech" - ]; - var groteska = [ - "czech" - ]; - var guma = [ - "czech" - ]; - var hadice = [ - "czech" - ]; - var hadr = [ - "czech" - ]; - var hala = [ - "czech" - ]; - var halenka = [ - "czech" - ]; - var hanba = [ - "czech" - ]; - var hanopis = [ - "czech" - ]; - var harfa = [ - "czech" - ]; - var harpuna = [ - "czech" - ]; - var havran = [ - "czech" - ]; - var hebkost = [ - "czech" - ]; - var hejkal = [ - "czech" - ]; - var hejno = [ - "czech" - ]; - var hejtman = [ - "czech" - ]; - var hektar = [ - "czech", - "turkish" - ]; - var helma = [ - "czech" - ]; - var hematom = [ - "czech" - ]; - var herec = [ - "czech" - ]; - var herna = [ - "czech" - ]; - var heslo = [ - "czech" - ]; - var hezky = [ - "czech" - ]; - var historik = [ - "czech" - ]; - var hladovka = [ - "czech" - ]; - var hlasivky = [ - "czech" - ]; - var hlava = [ - "czech" - ]; - var hledat = [ - "czech" - ]; - var hlen = [ - "czech" - ]; - var hlodavec = [ - "czech" - ]; - var hloh = [ - "czech" - ]; - var hloupost = [ - "czech" - ]; - var hltat = [ - "czech" - ]; - var hlubina = [ - "czech" - ]; - var hluchota = [ - "czech" - ]; - var hmat = [ - "czech" - ]; - var hmota = [ - "czech" - ]; - var hmyz = [ - "czech" - ]; - var hnis = [ - "czech" - ]; - var hnojivo = [ - "czech" - ]; - var hnout = [ - "czech" - ]; - var hoblina = [ - "czech" - ]; - var hoboj = [ - "czech" - ]; - var hoch = [ - "czech" - ]; - var hodiny = [ - "czech" - ]; - var hodlat = [ - "czech" - ]; - var hodnota = [ - "czech" - ]; - var hodovat = [ - "czech" - ]; - var hojnost = [ - "czech" - ]; - var hokej = [ - "czech" - ]; - var holinka = [ - "czech" - ]; - var holka = [ - "czech" - ]; - var holub = [ - "czech" - ]; - var homole = [ - "czech" - ]; - var honitba = [ - "czech" - ]; - var honorace = [ - "czech" - ]; - var horal = [ - "czech" - ]; - var horda = [ - "czech" - ]; - var horizont = [ - "czech" - ]; - var horko = [ - "czech" - ]; - var horlivec = [ - "czech" - ]; - var hormon = [ - "czech", - "turkish" - ]; - var hornina = [ - "czech" - ]; - var horoskop = [ - "czech" - ]; - var horstvo = [ - "czech" - ]; - var hospoda = [ - "czech" - ]; - var hostina = [ - "czech" - ]; - var hotovost = [ - "czech" - ]; - var houba = [ - "czech" - ]; - var houf = [ - "czech" - ]; - var houpat = [ - "czech" - ]; - var houska = [ - "czech" - ]; - var hovor = [ - "czech" - ]; - var hradba = [ - "czech" - ]; - var hranice = [ - "czech" - ]; - var hravost = [ - "czech" - ]; - var hrazda = [ - "czech" - ]; - var hrbolek = [ - "czech" - ]; - var hrdina = [ - "czech" - ]; - var hrdlo = [ - "czech" - ]; - var hrdost = [ - "czech" - ]; - var hrnek = [ - "czech" - ]; - var hrobka = [ - "czech" - ]; - var hromada = [ - "czech" - ]; - var hrot = [ - "czech" - ]; - var hrouda = [ - "czech" - ]; - var hrozen = [ - "czech" - ]; - var hrstka = [ - "czech" - ]; - var hrubost = [ - "czech" - ]; - var hryzat = [ - "czech" - ]; - var hubenost = [ - "czech" - ]; - var hubnout = [ - "czech" - ]; - var hudba = [ - "czech" - ]; - var hukot = [ - "czech" - ]; - var humr = [ - "czech" - ]; - var husita = [ - "czech" - ]; - var hustota = [ - "czech" - ]; - var hvozd = [ - "czech" - ]; - var hybnost = [ - "czech" - ]; - var hydrant = [ - "czech" - ]; - var hygiena = [ - "czech" - ]; - var hymna = [ - "czech" - ]; - var hysterik = [ - "czech" - ]; - var idylka = [ - "czech" - ]; - var ihned = [ - "czech" - ]; - var ikona = [ - "czech" - ]; - var iluze = [ - "czech" - ]; - var imunita = [ - "czech" - ]; - var infekce = [ - "czech" - ]; - var inflace = [ - "czech" - ]; - var inkaso = [ - "czech" - ]; - var inovace = [ - "czech" - ]; - var inspekce = [ - "czech" - ]; - var internet = [ - "czech" - ]; - var invalida = [ - "czech" - ]; - var investor = [ - "czech" - ]; - var inzerce = [ - "czech" - ]; - var ironie = [ - "czech" - ]; - var jablko = [ - "czech" - ]; - var jachta = [ - "czech" - ]; - var jahoda = [ - "czech" - ]; - var jakmile = [ - "czech" - ]; - var jakost = [ - "czech" - ]; - var jalovec = [ - "czech" - ]; - var jantar = [ - "czech" - ]; - var jarmark = [ - "czech" - ]; - var jaro = [ - "czech" - ]; - var jasan = [ - "czech" - ]; - var jasno = [ - "czech" - ]; - var jatka = [ - "czech" - ]; - var javor = [ - "czech" - ]; - var jazyk = [ - "czech" - ]; - var jedinec = [ - "czech" - ]; - var jedle = [ - "czech" - ]; - var jednatel = [ - "czech" - ]; - var jehlan = [ - "czech" - ]; - var jekot = [ - "czech" - ]; - var jelen = [ - "czech" - ]; - var jelito = [ - "czech" - ]; - var jemnost = [ - "czech" - ]; - var jenom = [ - "czech" - ]; - var jepice = [ - "czech" - ]; - var jeseter = [ - "czech" - ]; - var jevit = [ - "czech" - ]; - var jezdec = [ - "czech" - ]; - var jezero = [ - "czech" - ]; - var jinak = [ - "czech" - ]; - var jindy = [ - "czech" - ]; - var jinoch = [ - "czech" - ]; - var jiskra = [ - "czech" - ]; - var jistota = [ - "czech" - ]; - var jitrnice = [ - "czech" - ]; - var jizva = [ - "czech" - ]; - var jmenovat = [ - "czech" - ]; - var jogurt = [ - "czech" - ]; - var jurta = [ - "czech" - ]; - var kabaret = [ - "czech" - ]; - var kabel = [ - "czech" - ]; - var kabinet = [ - "czech" - ]; - var kachna = [ - "czech" - ]; - var kadet = [ - "czech" - ]; - var kadidlo = [ - "czech" - ]; - var kahan = [ - "czech" - ]; - var kajak = [ - "czech" - ]; - var kajuta = [ - "czech" - ]; - var kakao = [ - "czech" - ]; - var kaktus = [ - "czech" - ]; - var kalamita = [ - "czech" - ]; - var kalhoty = [ - "czech" - ]; - var kalibr = [ - "czech" - ]; - var kalnost = [ - "czech" - ]; - var kamera = [ - "czech" - ]; - var kamkoliv = [ - "czech" - ]; - var kamna = [ - "czech" - ]; - var kanibal = [ - "czech" - ]; - var kanoe = [ - "czech" - ]; - var kantor = [ - "czech" - ]; - var kapalina = [ - "czech" - ]; - var kapela = [ - "czech" - ]; - var kapitola = [ - "czech" - ]; - var kapka = [ - "czech" - ]; - var kaple = [ - "czech" - ]; - var kapota = [ - "czech" - ]; - var kapr = [ - "czech" - ]; - var kapusta = [ - "czech" - ]; - var kapybara = [ - "czech" - ]; - var karamel = [ - "czech" - ]; - var karotka = [ - "czech" - ]; - var karton = [ - "czech" - ]; - var kasa = [ - "czech" - ]; - var katalog = [ - "czech" - ]; - var katedra = [ - "czech" - ]; - var kauce = [ - "czech" - ]; - var kauza = [ - "czech" - ]; - var kavalec = [ - "czech" - ]; - var kazajka = [ - "czech" - ]; - var kazeta = [ - "czech" - ]; - var kazivost = [ - "czech" - ]; - var kdekoliv = [ - "czech" - ]; - var kdesi = [ - "czech" - ]; - var kedluben = [ - "czech" - ]; - var kemp = [ - "czech" - ]; - var keramika = [ - "czech" - ]; - var kino = [ - "czech" - ]; - var klacek = [ - "czech" - ]; - var kladivo = [ - "czech" - ]; - var klam = [ - "czech" - ]; - var klapot = [ - "czech" - ]; - var klasika = [ - "czech" - ]; - var klaun = [ - "czech" - ]; - var klec = [ - "czech" - ]; - var klenba = [ - "czech" - ]; - var klepat = [ - "czech" - ]; - var klesnout = [ - "czech" - ]; - var klid = [ - "czech" - ]; - var klima = [ - "czech" - ]; - var klisna = [ - "czech" - ]; - var klobouk = [ - "czech" - ]; - var klokan = [ - "czech" - ]; - var klopa = [ - "czech" - ]; - var kloub = [ - "czech" - ]; - var klubovna = [ - "czech" - ]; - var klusat = [ - "czech" - ]; - var kluzkost = [ - "czech" - ]; - var kmen = [ - "czech" - ]; - var kmitat = [ - "czech" - ]; - var kmotr = [ - "czech" - ]; - var kniha = [ - "czech" - ]; - var knot = [ - "czech" - ]; - var koalice = [ - "czech" - ]; - var koberec = [ - "czech" - ]; - var kobka = [ - "czech" - ]; - var kobliha = [ - "czech" - ]; - var kobyla = [ - "czech" - ]; - var kocour = [ - "czech" - ]; - var kohout = [ - "czech" - ]; - var kojenec = [ - "czech" - ]; - var kokos = [ - "czech" - ]; - var koktejl = [ - "czech" - ]; - var kolaps = [ - "czech" - ]; - var koleda = [ - "czech" - ]; - var kolize = [ - "czech" - ]; - var kolo = [ - "czech" - ]; - var komando = [ - "czech" - ]; - var kometa = [ - "czech" - ]; - var komik = [ - "czech" - ]; - var komnata = [ - "czech" - ]; - var komora = [ - "czech" - ]; - var kompas = [ - "czech" - ]; - var komunita = [ - "czech" - ]; - var konat = [ - "czech" - ]; - var koncept = [ - "czech" - ]; - var kondice = [ - "czech" - ]; - var konec = [ - "czech" - ]; - var konfese = [ - "czech" - ]; - var kongres = [ - "czech" - ]; - var konina = [ - "czech" - ]; - var konkurs = [ - "czech" - ]; - var kontakt = [ - "czech" - ]; - var konzerva = [ - "czech" - ]; - var kopanec = [ - "czech" - ]; - var kopie = [ - "czech" - ]; - var kopnout = [ - "czech" - ]; - var koprovka = [ - "czech" - ]; - var korbel = [ - "czech" - ]; - var korektor = [ - "czech" - ]; - var kormidlo = [ - "czech" - ]; - var koroptev = [ - "czech" - ]; - var korpus = [ - "czech" - ]; - var koruna = [ - "czech" - ]; - var koryto = [ - "czech" - ]; - var korzet = [ - "czech" - ]; - var kosatec = [ - "czech" - ]; - var kostka = [ - "czech" - ]; - var kotel = [ - "czech" - ]; - var kotleta = [ - "czech" - ]; - var kotoul = [ - "czech" - ]; - var koukat = [ - "czech" - ]; - var koupelna = [ - "czech" - ]; - var kousek = [ - "czech" - ]; - var kouzlo = [ - "czech" - ]; - var kovboj = [ - "czech" - ]; - var koza = [ - "czech" - ]; - var kozoroh = [ - "czech" - ]; - var krabice = [ - "czech" - ]; - var krach = [ - "czech" - ]; - var krajina = [ - "czech" - ]; - var kralovat = [ - "czech" - ]; - var krasopis = [ - "czech" - ]; - var kravata = [ - "czech" - ]; - var kredit = [ - "czech" - ]; - var krejcar = [ - "czech" - ]; - var kresba = [ - "czech" - ]; - var kreveta = [ - "czech" - ]; - var kriket = [ - "czech" - ]; - var kritik = [ - "czech" - ]; - var krize = [ - "czech" - ]; - var krkavec = [ - "czech" - ]; - var krmelec = [ - "czech" - ]; - var krmivo = [ - "czech" - ]; - var krocan = [ - "czech" - ]; - var krok = [ - "czech" - ]; - var kronika = [ - "czech" - ]; - var kropit = [ - "czech" - ]; - var kroupa = [ - "czech" - ]; - var krovka = [ - "czech" - ]; - var krtek = [ - "czech" - ]; - var kruhadlo = [ - "czech" - ]; - var krupice = [ - "czech" - ]; - var krutost = [ - "czech" - ]; - var krvinka = [ - "czech" - ]; - var krychle = [ - "czech" - ]; - var krypta = [ - "czech" - ]; - var krystal = [ - "czech" - ]; - var kryt = [ - "czech" - ]; - var kudlanka = [ - "czech" - ]; - var kufr = [ - "czech" - ]; - var kujnost = [ - "czech" - ]; - var kukla = [ - "czech" - ]; - var kulajda = [ - "czech" - ]; - var kulich = [ - "czech" - ]; - var kulka = [ - "czech" - ]; - var kulomet = [ - "czech" - ]; - var kultura = [ - "czech" - ]; - var kuna = [ - "czech" - ]; - var kupodivu = [ - "czech" - ]; - var kurt = [ - "czech" - ]; - var kurzor = [ - "czech" - ]; - var kutil = [ - "czech" - ]; - var kvalita = [ - "czech" - ]; - var kvasinka = [ - "czech" - ]; - var kvestor = [ - "czech" - ]; - var kynolog = [ - "czech" - ]; - var kyselina = [ - "czech" - ]; - var kytara = [ - "czech" - ]; - var kytice = [ - "czech" - ]; - var kytka = [ - "czech" - ]; - var kytovec = [ - "czech" - ]; - var kyvadlo = [ - "czech" - ]; - var labrador = [ - "czech" - ]; - var lachtan = [ - "czech" - ]; - var ladnost = [ - "czech" - ]; - var laik = [ - "czech" - ]; - var lakomec = [ - "czech" - ]; - var lamela = [ - "czech" - ]; - var lampa = [ - "czech" - ]; - var lanovka = [ - "czech" - ]; - var lasice = [ - "czech" - ]; - var laso = [ - "czech" - ]; - var lastura = [ - "czech" - ]; - var latinka = [ - "czech" - ]; - var lavina = [ - "czech" - ]; - var lebka = [ - "czech" - ]; - var leckdy = [ - "czech" - ]; - var leden = [ - "czech" - ]; - var lednice = [ - "czech" - ]; - var ledovka = [ - "czech" - ]; - var ledvina = [ - "czech" - ]; - var legenda = [ - "czech" - ]; - var legie = [ - "czech" - ]; - var legrace = [ - "czech" - ]; - var lehce = [ - "czech" - ]; - var lehkost = [ - "czech" - ]; - var lehnout = [ - "czech" - ]; - var lektvar = [ - "czech" - ]; - var lenochod = [ - "czech" - ]; - var lentilka = [ - "czech" - ]; - var lepenka = [ - "czech" - ]; - var lepidlo = [ - "czech" - ]; - var letadlo = [ - "czech" - ]; - var letec = [ - "czech" - ]; - var letmo = [ - "czech" - ]; - var letokruh = [ - "czech" - ]; - var levhart = [ - "czech" - ]; - var levitace = [ - "czech" - ]; - var levobok = [ - "czech" - ]; - var libra = [ - "czech" - ]; - var lichotka = [ - "czech" - ]; - var lidojed = [ - "czech" - ]; - var lidskost = [ - "czech" - ]; - var lihovina = [ - "czech" - ]; - var lijavec = [ - "czech" - ]; - var lilek = [ - "czech" - ]; - var limetka = [ - "czech" - ]; - var linie = [ - "czech" - ]; - var linka = [ - "czech" - ]; - var linoleum = [ - "czech" - ]; - var listopad = [ - "czech" - ]; - var litina = [ - "czech" - ]; - var litovat = [ - "czech" - ]; - var lobista = [ - "czech" - ]; - var lodivod = [ - "czech" - ]; - var logika = [ - "czech" - ]; - var logoped = [ - "czech" - ]; - var lokalita = [ - "czech" - ]; - var loket = [ - "czech" - ]; - var lomcovat = [ - "czech" - ]; - var lopata = [ - "czech" - ]; - var lopuch = [ - "czech" - ]; - var lord = [ - "czech" - ]; - var losos = [ - "czech" - ]; - var lotr = [ - "czech" - ]; - var loudal = [ - "czech" - ]; - var louh = [ - "czech" - ]; - var louka = [ - "czech" - ]; - var louskat = [ - "czech" - ]; - var lovec = [ - "czech" - ]; - var lstivost = [ - "czech" - ]; - var lucerna = [ - "czech" - ]; - var lucifer = [ - "czech" - ]; - var lump = [ - "czech" - ]; - var lusk = [ - "czech" - ]; - var lustrace = [ - "czech" - ]; - var lvice = [ - "czech" - ]; - var lyra = [ - "czech" - ]; - var lyrika = [ - "czech" - ]; - var lysina = [ - "czech" - ]; - var madam = [ - "czech" - ]; - var madlo = [ - "czech" - ]; - var magistr = [ - "czech" - ]; - var mahagon = [ - "czech" - ]; - var majetek = [ - "czech" - ]; - var majitel = [ - "czech" - ]; - var majorita = [ - "czech" - ]; - var makak = [ - "czech" - ]; - var makovice = [ - "czech" - ]; - var makrela = [ - "czech" - ]; - var malba = [ - "czech" - ]; - var malina = [ - "czech" - ]; - var malovat = [ - "czech" - ]; - var malvice = [ - "czech" - ]; - var maminka = [ - "czech" - ]; - var mandle = [ - "czech" - ]; - var manko = [ - "czech" - ]; - var marnost = [ - "czech" - ]; - var masakr = [ - "czech" - ]; - var maskot = [ - "czech" - ]; - var masopust = [ - "czech" - ]; - var matice = [ - "czech" - ]; - var matrika = [ - "czech" - ]; - var maturita = [ - "czech" - ]; - var mazanec = [ - "czech" - ]; - var mazivo = [ - "czech" - ]; - var mazlit = [ - "czech" - ]; - var mazurka = [ - "czech" - ]; - var mdloba = [ - "czech" - ]; - var mechanik = [ - "czech" - ]; - var meditace = [ - "czech" - ]; - var medovina = [ - "czech" - ]; - var melasa = [ - "czech" - ]; - var meloun = [ - "czech" - ]; - var mentolka = [ - "czech" - ]; - var metla = [ - "czech" - ]; - var metoda = [ - "czech" - ]; - var metr = [ - "czech" - ]; - var mezera = [ - "czech" - ]; - var migrace = [ - "czech" - ]; - var mihnout = [ - "czech" - ]; - var mihule = [ - "czech" - ]; - var mikina = [ - "czech" - ]; - var mikrofon = [ - "czech", - "turkish" - ]; - var milenec = [ - "czech" - ]; - var milimetr = [ - "czech" - ]; - var milost = [ - "czech" - ]; - var mimika = [ - "czech" - ]; - var mincovna = [ - "czech" - ]; - var minibar = [ - "czech" - ]; - var minomet = [ - "czech" - ]; - var minulost = [ - "czech" - ]; - var miska = [ - "czech" - ]; - var mistr = [ - "czech" - ]; - var mixovat = [ - "czech" - ]; - var mladost = [ - "czech" - ]; - var mlha = [ - "czech" - ]; - var mlhovina = [ - "czech" - ]; - var mlok = [ - "czech" - ]; - var mlsat = [ - "czech" - ]; - var mluvit = [ - "czech" - ]; - var mnich = [ - "czech" - ]; - var mnohem = [ - "czech" - ]; - var mobil = [ - "czech" - ]; - var mocnost = [ - "czech" - ]; - var modelka = [ - "czech" - ]; - var modlitba = [ - "czech" - ]; - var mohyla = [ - "czech" - ]; - var mokro = [ - "czech" - ]; - var molekula = [ - "czech" - ]; - var momentka = [ - "czech" - ]; - var monarcha = [ - "czech" - ]; - var monokl = [ - "czech" - ]; - var monstrum = [ - "czech" - ]; - var montovat = [ - "czech" - ]; - var monzun = [ - "czech" - ]; - var mosaz = [ - "czech" - ]; - var moskyt = [ - "czech" - ]; - var most = [ - "czech" - ]; - var motivace = [ - "czech" - ]; - var motorka = [ - "czech" - ]; - var motyka = [ - "czech" - ]; - var moucha = [ - "czech" - ]; - var moudrost = [ - "czech" - ]; - var mozaika = [ - "czech" - ]; - var mozek = [ - "czech" - ]; - var mozol = [ - "czech" - ]; - var mramor = [ - "czech" - ]; - var mravenec = [ - "czech" - ]; - var mrkev = [ - "czech" - ]; - var mrtvola = [ - "czech" - ]; - var mrzet = [ - "czech" - ]; - var mrzutost = [ - "czech" - ]; - var mstitel = [ - "czech" - ]; - var mudrc = [ - "czech" - ]; - var muflon = [ - "czech" - ]; - var mulat = [ - "czech" - ]; - var mumie = [ - "czech" - ]; - var munice = [ - "czech" - ]; - var muset = [ - "czech" - ]; - var mutace = [ - "czech" - ]; - var muzeum = [ - "czech" - ]; - var muzikant = [ - "czech" - ]; - var myslivec = [ - "czech" - ]; - var mzda = [ - "czech" - ]; - var nabourat = [ - "czech" - ]; - var nachytat = [ - "czech" - ]; - var nadace = [ - "czech" - ]; - var nadbytek = [ - "czech" - ]; - var nadhoz = [ - "czech" - ]; - var nadobro = [ - "czech" - ]; - var nadpis = [ - "czech" - ]; - var nahlas = [ - "czech" - ]; - var nahnat = [ - "czech" - ]; - var nahodile = [ - "czech" - ]; - var nahradit = [ - "czech" - ]; - var naivita = [ - "czech" - ]; - var najednou = [ - "czech" - ]; - var najisto = [ - "czech" - ]; - var najmout = [ - "czech" - ]; - var naklonit = [ - "czech" - ]; - var nakonec = [ - "czech" - ]; - var nakrmit = [ - "czech" - ]; - var nalevo = [ - "czech" - ]; - var namazat = [ - "czech" - ]; - var namluvit = [ - "czech" - ]; - var nanometr = [ - "czech" - ]; - var naoko = [ - "czech" - ]; - var naopak = [ - "czech" - ]; - var naostro = [ - "czech" - ]; - var napadat = [ - "czech" - ]; - var napevno = [ - "czech" - ]; - var naplnit = [ - "czech" - ]; - var napnout = [ - "czech" - ]; - var naposled = [ - "czech" - ]; - var naprosto = [ - "czech" - ]; - var narodit = [ - "czech" - ]; - var naruby = [ - "czech" - ]; - var narychlo = [ - "czech" - ]; - var nasadit = [ - "czech" - ]; - var nasekat = [ - "czech" - ]; - var naslepo = [ - "czech" - ]; - var nastat = [ - "czech" - ]; - var natolik = [ - "czech" - ]; - var navenek = [ - "czech" - ]; - var navrch = [ - "czech" - ]; - var navzdory = [ - "czech" - ]; - var nazvat = [ - "czech" - ]; - var nebe = [ - "czech" - ]; - var nechat = [ - "czech" - ]; - var necky = [ - "czech" - ]; - var nedaleko = [ - "czech" - ]; - var nedbat = [ - "czech" - ]; - var neduh = [ - "czech" - ]; - var negace = [ - "czech" - ]; - var nehet = [ - "czech" - ]; - var nehoda = [ - "czech" - ]; - var nejen = [ - "czech" - ]; - var nejprve = [ - "czech" - ]; - var neklid = [ - "czech" - ]; - var nelibost = [ - "czech" - ]; - var nemilost = [ - "czech" - ]; - var nemoc = [ - "czech" - ]; - var neochota = [ - "czech" - ]; - var neonka = [ - "czech" - ]; - var nepokoj = [ - "czech" - ]; - var nerost = [ - "czech" - ]; - var nerv = [ - "czech" - ]; - var nesmysl = [ - "czech" - ]; - var nesoulad = [ - "czech" - ]; - var netvor = [ - "czech" - ]; - var neuron = [ - "czech" - ]; - var nevina = [ - "czech" - ]; - var nezvykle = [ - "czech" - ]; - var nicota = [ - "czech" - ]; - var nijak = [ - "czech" - ]; - var nikam = [ - "czech" - ]; - var nikdy = [ - "czech" - ]; - var nikl = [ - "czech" - ]; - var nikterak = [ - "czech" - ]; - var nitro = [ - "czech" - ]; - var nocleh = [ - "czech" - ]; - var nohavice = [ - "czech" - ]; - var nominace = [ - "czech" - ]; - var nora = [ - "czech" - ]; - var norek = [ - "czech" - ]; - var nositel = [ - "czech" - ]; - var nosnost = [ - "czech" - ]; - var nouze = [ - "czech" - ]; - var noviny = [ - "czech" - ]; - var novota = [ - "czech" - ]; - var nozdra = [ - "czech" - ]; - var nuda = [ - "czech" - ]; - var nudle = [ - "czech" - ]; - var nuget = [ - "czech" - ]; - var nutit = [ - "czech" - ]; - var nutnost = [ - "czech" - ]; - var nutrie = [ - "czech" - ]; - var nymfa = [ - "czech" - ]; - var obal = [ - "czech" - ]; - var obarvit = [ - "czech" - ]; - var obava = [ - "czech" - ]; - var obdiv = [ - "czech" - ]; - var obec = [ - "czech" - ]; - var obehnat = [ - "czech" - ]; - var obejmout = [ - "czech" - ]; - var obezita = [ - "czech" - ]; - var obhajoba = [ - "czech" - ]; - var obilnice = [ - "czech" - ]; - var objasnit = [ - "czech" - ]; - var objekt = [ - "czech" - ]; - var obklopit = [ - "czech" - ]; - var oblast = [ - "czech" - ]; - var oblek = [ - "czech" - ]; - var obliba = [ - "czech" - ]; - var obloha = [ - "czech" - ]; - var obluda = [ - "czech" - ]; - var obnos = [ - "czech" - ]; - var obohatit = [ - "czech" - ]; - var obojek = [ - "czech" - ]; - var obout = [ - "czech" - ]; - var obrazec = [ - "czech" - ]; - var obrna = [ - "czech" - ]; - var obruba = [ - "czech" - ]; - var obrys = [ - "czech" - ]; - var obsah = [ - "czech" - ]; - var obsluha = [ - "czech" - ]; - var obstarat = [ - "czech" - ]; - var obuv = [ - "czech" - ]; - var obvaz = [ - "czech" - ]; - var obvinit = [ - "czech" - ]; - var obvod = [ - "czech" - ]; - var obvykle = [ - "czech" - ]; - var obyvatel = [ - "czech" - ]; - var obzor = [ - "czech" - ]; - var ocas = [ - "czech" - ]; - var ocel = [ - "czech" - ]; - var ocenit = [ - "czech" - ]; - var ochladit = [ - "czech" - ]; - var ochota = [ - "czech" - ]; - var ochrana = [ - "czech" - ]; - var ocitnout = [ - "czech" - ]; - var odboj = [ - "czech" - ]; - var odbyt = [ - "czech" - ]; - var odchod = [ - "czech" - ]; - var odcizit = [ - "czech" - ]; - var odebrat = [ - "czech" - ]; - var odeslat = [ - "czech" - ]; - var odevzdat = [ - "czech" - ]; - var odezva = [ - "czech" - ]; - var odhadce = [ - "czech" - ]; - var odhodit = [ - "czech" - ]; - var odjet = [ - "czech" - ]; - var odjinud = [ - "czech" - ]; - var odkaz = [ - "czech" - ]; - var odkoupit = [ - "czech" - ]; - var odliv = [ - "czech" - ]; - var odluka = [ - "czech" - ]; - var odmlka = [ - "czech" - ]; - var odolnost = [ - "czech" - ]; - var odpad = [ - "czech" - ]; - var odpis = [ - "czech" - ]; - var odplout = [ - "czech" - ]; - var odpor = [ - "czech" - ]; - var odpustit = [ - "czech" - ]; - var odpykat = [ - "czech" - ]; - var odrazka = [ - "czech" - ]; - var odsoudit = [ - "czech" - ]; - var odstup = [ - "czech" - ]; - var odsun = [ - "czech" - ]; - var odtok = [ - "czech" - ]; - var odtud = [ - "czech" - ]; - var odvaha = [ - "czech" - ]; - var odveta = [ - "czech" - ]; - var odvolat = [ - "czech" - ]; - var odvracet = [ - "czech" - ]; - var odznak = [ - "czech" - ]; - var ofina = [ - "czech" - ]; - var ofsajd = [ - "czech" - ]; - var ohlas = [ - "czech" - ]; - var ohnisko = [ - "czech" - ]; - var ohrada = [ - "czech" - ]; - var ohrozit = [ - "czech" - ]; - var ohryzek = [ - "czech" - ]; - var okap = [ - "czech" - ]; - var okenice = [ - "czech" - ]; - var oklika = [ - "czech" - ]; - var okno = [ - "czech" - ]; - var okouzlit = [ - "czech" - ]; - var okovy = [ - "czech" - ]; - var okrasa = [ - "czech" - ]; - var okres = [ - "czech" - ]; - var okrsek = [ - "czech" - ]; - var okruh = [ - "czech" - ]; - var okupant = [ - "czech" - ]; - var okurka = [ - "czech" - ]; - var okusit = [ - "czech" - ]; - var olejnina = [ - "czech" - ]; - var olizovat = [ - "czech" - ]; - var omak = [ - "czech" - ]; - var omeleta = [ - "czech" - ]; - var omezit = [ - "czech" - ]; - var omladina = [ - "czech" - ]; - var omlouvat = [ - "czech" - ]; - var omluva = [ - "czech" - ]; - var omyl = [ - "czech" - ]; - var onehdy = [ - "czech" - ]; - var opakovat = [ - "czech" - ]; - var opasek = [ - "czech" - ]; - var operace = [ - "czech" - ]; - var opice = [ - "czech" - ]; - var opilost = [ - "czech" - ]; - var opisovat = [ - "czech" - ]; - var opora = [ - "czech" - ]; - var opozice = [ - "czech" - ]; - var opravdu = [ - "czech" - ]; - var oproti = [ - "czech" - ]; - var orbital = [ - "czech" - ]; - var orchestr = [ - "czech" - ]; - var orgie = [ - "czech" - ]; - var orlice = [ - "czech" - ]; - var orloj = [ - "czech" - ]; - var ortel = [ - "czech" - ]; - var osada = [ - "czech" - ]; - var oschnout = [ - "czech" - ]; - var osika = [ - "czech" - ]; - var osivo = [ - "czech" - ]; - var oslava = [ - "czech" - ]; - var oslepit = [ - "czech" - ]; - var oslnit = [ - "czech" - ]; - var oslovit = [ - "czech" - ]; - var osnova = [ - "czech" - ]; - var osoba = [ - "czech" - ]; - var osolit = [ - "czech" - ]; - var ospalec = [ - "czech" - ]; - var osten = [ - "czech" - ]; - var ostraha = [ - "czech" - ]; - var ostuda = [ - "czech" - ]; - var ostych = [ - "czech" - ]; - var osvojit = [ - "czech" - ]; - var oteplit = [ - "czech" - ]; - var otisk = [ - "czech" - ]; - var otop = [ - "czech" - ]; - var otrhat = [ - "czech" - ]; - var otrlost = [ - "czech" - ]; - var otrok = [ - "czech" - ]; - var otruby = [ - "czech" - ]; - var otvor = [ - "czech" - ]; - var ovanout = [ - "czech" - ]; - var ovar = [ - "czech" - ]; - var oves = [ - "czech" - ]; - var ovlivnit = [ - "czech" - ]; - var ovoce = [ - "czech" - ]; - var oxid = [ - "czech" - ]; - var ozdoba = [ - "czech" - ]; - var pachatel = [ - "czech" - ]; - var pacient = [ - "czech" - ]; - var padouch = [ - "czech" - ]; - var pahorek = [ - "czech" - ]; - var pakt = [ - "czech" - ]; - var palanda = [ - "czech" - ]; - var palec = [ - "czech" - ]; - var palivo = [ - "czech" - ]; - var paluba = [ - "czech" - ]; - var pamflet = [ - "czech" - ]; - var pamlsek = [ - "czech" - ]; - var panenka = [ - "czech" - ]; - var panika = [ - "czech" - ]; - var panna = [ - "czech" - ]; - var panovat = [ - "czech" - ]; - var panstvo = [ - "czech" - ]; - var pantofle = [ - "czech" - ]; - var paprika = [ - "czech" - ]; - var parketa = [ - "czech" - ]; - var parodie = [ - "czech" - ]; - var parta = [ - "czech" - ]; - var paruka = [ - "czech" - ]; - var paryba = [ - "czech" - ]; - var paseka = [ - "czech" - ]; - var pasivita = [ - "czech" - ]; - var pastelka = [ - "czech" - ]; - var patent = [ - "czech" - ]; - var patrona = [ - "czech" - ]; - var pavouk = [ - "czech" - ]; - var pazneht = [ - "czech" - ]; - var pazourek = [ - "czech" - ]; - var pecka = [ - "czech" - ]; - var pedagog = [ - "czech" - ]; - var pejsek = [ - "czech" - ]; - var peklo = [ - "czech" - ]; - var peloton = [ - "czech" - ]; - var penalta = [ - "czech" - ]; - var pendrek = [ - "czech" - ]; - var penze = [ - "czech" - ]; - var periskop = [ - "czech" - ]; - var pero = [ - "czech" - ]; - var pestrost = [ - "czech" - ]; - var petarda = [ - "czech" - ]; - var petice = [ - "czech" - ]; - var petrolej = [ - "czech" - ]; - var pevnina = [ - "czech" - ]; - var pexeso = [ - "czech" - ]; - var pianista = [ - "czech" - ]; - var piha = [ - "czech" - ]; - var pijavice = [ - "czech" - ]; - var pikle = [ - "czech" - ]; - var piknik = [ - "czech", - "turkish" - ]; - var pilina = [ - "czech" - ]; - var pilnost = [ - "czech" - ]; - var pilulka = [ - "czech" - ]; - var pinzeta = [ - "czech" - ]; - var pipeta = [ - "czech" - ]; - var pisatel = [ - "czech" - ]; - var pistole = [ - "czech" - ]; - var pitevna = [ - "czech" - ]; - var pivnice = [ - "czech" - ]; - var pivovar = [ - "czech" - ]; - var placenta = [ - "czech" - ]; - var plakat = [ - "czech" - ]; - var plamen = [ - "czech" - ]; - var planeta = [ - "czech" - ]; - var plastika = [ - "czech" - ]; - var platit = [ - "czech" - ]; - var plavidlo = [ - "czech" - ]; - var plaz = [ - "czech" - ]; - var plech = [ - "czech" - ]; - var plemeno = [ - "czech" - ]; - var plenta = [ - "czech" - ]; - var ples = [ - "czech" - ]; - var pletivo = [ - "czech" - ]; - var plevel = [ - "czech" - ]; - var plivat = [ - "czech" - ]; - var plnit = [ - "czech" - ]; - var plno = [ - "czech" - ]; - var plocha = [ - "czech" - ]; - var plodina = [ - "czech" - ]; - var plomba = [ - "czech" - ]; - var plout = [ - "czech" - ]; - var pluk = [ - "czech" - ]; - var plyn = [ - "czech" - ]; - var pobavit = [ - "czech" - ]; - var pobyt = [ - "czech" - ]; - var pochod = [ - "czech" - ]; - var pocit = [ - "czech" - ]; - var poctivec = [ - "czech" - ]; - var podat = [ - "czech" - ]; - var podcenit = [ - "czech" - ]; - var podepsat = [ - "czech" - ]; - var podhled = [ - "czech" - ]; - var podivit = [ - "czech" - ]; - var podklad = [ - "czech" - ]; - var podmanit = [ - "czech" - ]; - var podnik = [ - "czech" - ]; - var podoba = [ - "czech" - ]; - var podpora = [ - "czech" - ]; - var podraz = [ - "czech" - ]; - var podstata = [ - "czech" - ]; - var podvod = [ - "czech" - ]; - var podzim = [ - "czech" - ]; - var poezie = [ - "czech" - ]; - var pohanka = [ - "czech" - ]; - var pohnutka = [ - "czech" - ]; - var pohovor = [ - "czech" - ]; - var pohroma = [ - "czech" - ]; - var pohyb = [ - "czech" - ]; - var pointa = [ - "czech" - ]; - var pojistka = [ - "czech" - ]; - var pojmout = [ - "czech" - ]; - var pokazit = [ - "czech" - ]; - var pokles = [ - "czech" - ]; - var pokoj = [ - "czech" - ]; - var pokrok = [ - "czech" - ]; - var pokuta = [ - "czech" - ]; - var pokyn = [ - "czech" - ]; - var poledne = [ - "czech" - ]; - var polibek = [ - "czech" - ]; - var polknout = [ - "czech" - ]; - var poloha = [ - "czech" - ]; - var polynom = [ - "czech" - ]; - var pomalu = [ - "czech" - ]; - var pominout = [ - "czech" - ]; - var pomlka = [ - "czech" - ]; - var pomoc = [ - "czech" - ]; - var pomsta = [ - "czech" - ]; - var pomyslet = [ - "czech" - ]; - var ponechat = [ - "czech" - ]; - var ponorka = [ - "czech" - ]; - var ponurost = [ - "czech" - ]; - var popadat = [ - "czech" - ]; - var popel = [ - "czech" - ]; - var popisek = [ - "czech" - ]; - var poplach = [ - "czech" - ]; - var poprosit = [ - "czech" - ]; - var popsat = [ - "czech" - ]; - var popud = [ - "czech" - ]; - var poradce = [ - "czech" - ]; - var porce = [ - "czech" - ]; - var porod = [ - "czech" - ]; - var porucha = [ - "czech" - ]; - var poryv = [ - "czech" - ]; - var posadit = [ - "czech" - ]; - var posed = [ - "czech" - ]; - var posila = [ - "czech" - ]; - var poskok = [ - "czech" - ]; - var poslanec = [ - "czech" - ]; - var posoudit = [ - "czech" - ]; - var pospolu = [ - "czech" - ]; - var postava = [ - "czech" - ]; - var posudek = [ - "czech" - ]; - var posyp = [ - "czech" - ]; - var potah = [ - "czech" - ]; - var potkan = [ - "czech" - ]; - var potlesk = [ - "czech" - ]; - var potomek = [ - "czech" - ]; - var potrava = [ - "czech" - ]; - var potupa = [ - "czech" - ]; - var potvora = [ - "czech" - ]; - var poukaz = [ - "czech" - ]; - var pouto = [ - "czech" - ]; - var pouzdro = [ - "czech" - ]; - var povaha = [ - "czech" - ]; - var povidla = [ - "czech" - ]; - var povlak = [ - "czech" - ]; - var povoz = [ - "czech" - ]; - var povrch = [ - "czech" - ]; - var povstat = [ - "czech" - ]; - var povyk = [ - "czech" - ]; - var povzdech = [ - "czech" - ]; - var pozdrav = [ - "czech" - ]; - var pozemek = [ - "czech" - ]; - var poznatek = [ - "czech" - ]; - var pozor = [ - "czech" - ]; - var pozvat = [ - "czech" - ]; - var pracovat = [ - "czech" - ]; - var prahory = [ - "czech" - ]; - var praktika = [ - "czech" - ]; - var prales = [ - "czech" - ]; - var praotec = [ - "czech" - ]; - var praporek = [ - "czech" - ]; - var prase = [ - "czech" - ]; - var pravda = [ - "czech" - ]; - var princip = [ - "czech" - ]; - var prkno = [ - "czech" - ]; - var probudit = [ - "czech" - ]; - var procento = [ - "czech" - ]; - var prodej = [ - "czech" - ]; - var profese = [ - "czech" - ]; - var prohra = [ - "czech" - ]; - var projekt = [ - "czech" - ]; - var prolomit = [ - "czech" - ]; - var promile = [ - "czech" - ]; - var pronikat = [ - "czech" - ]; - var propad = [ - "czech" - ]; - var prorok = [ - "czech" - ]; - var prosba = [ - "czech" - ]; - var proton = [ - "czech" - ]; - var proutek = [ - "czech" - ]; - var provaz = [ - "czech" - ]; - var prskavka = [ - "czech" - ]; - var prsten = [ - "czech" - ]; - var prudkost = [ - "czech" - ]; - var prut = [ - "czech" - ]; - var prvek = [ - "czech" - ]; - var prvohory = [ - "czech" - ]; - var psanec = [ - "czech" - ]; - var psovod = [ - "czech" - ]; - var pstruh = [ - "czech" - ]; - var ptactvo = [ - "czech" - ]; - var puberta = [ - "czech" - ]; - var puch = [ - "czech" - ]; - var pudl = [ - "czech" - ]; - var pukavec = [ - "czech" - ]; - var puklina = [ - "czech" - ]; - var pukrle = [ - "czech" - ]; - var pult = [ - "czech" - ]; - var pumpa = [ - "czech" - ]; - var punc = [ - "czech" - ]; - var pupen = [ - "czech" - ]; - var pusa = [ - "czech" - ]; - var pusinka = [ - "czech" - ]; - var pustina = [ - "czech" - ]; - var putovat = [ - "czech" - ]; - var putyka = [ - "czech" - ]; - var pyramida = [ - "czech" - ]; - var pysk = [ - "czech" - ]; - var pytel = [ - "czech" - ]; - var racek = [ - "czech" - ]; - var rachot = [ - "czech" - ]; - var radiace = [ - "czech" - ]; - var radnice = [ - "czech" - ]; - var radon = [ - "czech" - ]; - var raft = [ - "czech" - ]; - var ragby = [ - "czech" - ]; - var raketa = [ - "czech" - ]; - var rakovina = [ - "czech" - ]; - var rameno = [ - "czech" - ]; - var rampouch = [ - "czech" - ]; - var rande = [ - "czech" - ]; - var rarach = [ - "czech" - ]; - var rarita = [ - "czech" - ]; - var rasovna = [ - "czech" - ]; - var rastr = [ - "czech" - ]; - var ratolest = [ - "czech" - ]; - var razance = [ - "czech" - ]; - var razidlo = [ - "czech" - ]; - var reagovat = [ - "czech" - ]; - var reakce = [ - "czech" - ]; - var recept = [ - "czech" - ]; - var redaktor = [ - "czech" - ]; - var referent = [ - "czech" - ]; - var reflex = [ - "czech" - ]; - var rejnok = [ - "czech" - ]; - var reklama = [ - "czech" - ]; - var rekord = [ - "czech" - ]; - var rekrut = [ - "czech" - ]; - var rektor = [ - "czech" - ]; - var reputace = [ - "czech" - ]; - var revize = [ - "czech", - "turkish" - ]; - var revma = [ - "czech" - ]; - var revolver = [ - "czech" - ]; - var rezerva = [ - "czech" - ]; - var riskovat = [ - "czech" - ]; - var riziko = [ - "czech" - ]; - var robotika = [ - "czech" - ]; - var rodokmen = [ - "czech" - ]; - var rohovka = [ - "czech" - ]; - var rokle = [ - "czech" - ]; - var rokoko = [ - "czech" - ]; - var romaneto = [ - "czech" - ]; - var ropovod = [ - "czech" - ]; - var ropucha = [ - "czech" - ]; - var rorejs = [ - "czech" - ]; - var rosol = [ - "czech" - ]; - var rostlina = [ - "czech" - ]; - var rotmistr = [ - "czech" - ]; - var rotoped = [ - "czech" - ]; - var rotunda = [ - "czech" - ]; - var roubenka = [ - "czech" - ]; - var roucho = [ - "czech" - ]; - var roup = [ - "czech" - ]; - var roura = [ - "czech" - ]; - var rovina = [ - "czech" - ]; - var rovnice = [ - "czech" - ]; - var rozbor = [ - "czech" - ]; - var rozchod = [ - "czech" - ]; - var rozdat = [ - "czech" - ]; - var rozeznat = [ - "czech" - ]; - var rozhodce = [ - "czech" - ]; - var rozinka = [ - "czech" - ]; - var rozjezd = [ - "czech" - ]; - var rozkaz = [ - "czech" - ]; - var rozloha = [ - "czech" - ]; - var rozmar = [ - "czech" - ]; - var rozpad = [ - "czech" - ]; - var rozruch = [ - "czech" - ]; - var rozsah = [ - "czech" - ]; - var roztok = [ - "czech" - ]; - var rozum = [ - "czech" - ]; - var rozvod = [ - "czech" - ]; - var rubrika = [ - "czech" - ]; - var ruchadlo = [ - "czech" - ]; - var rukavice = [ - "czech" - ]; - var rukopis = [ - "czech" - ]; - var ryba = [ - "czech" - ]; - var rybolov = [ - "czech" - ]; - var rychlost = [ - "czech" - ]; - var rydlo = [ - "czech" - ]; - var rypadlo = [ - "czech" - ]; - var rytina = [ - "czech" - ]; - var ryzost = [ - "czech" - ]; - var sadista = [ - "czech" - ]; - var sahat = [ - "czech" - ]; - var sako = [ - "czech" - ]; - var samec = [ - "czech" - ]; - var samizdat = [ - "czech" - ]; - var samota = [ - "czech" - ]; - var sanitka = [ - "czech" - ]; - var sardinka = [ - "czech" - ]; - var sasanka = [ - "czech" - ]; - var satelit = [ - "czech" - ]; - var sazba = [ - "czech" - ]; - var sazenice = [ - "czech" - ]; - var sbor = [ - "czech" - ]; - var schovat = [ - "czech" - ]; - var sebranka = [ - "czech" - ]; - var secese = [ - "czech" - ]; - var sedadlo = [ - "czech" - ]; - var sediment = [ - "czech" - ]; - var sedlo = [ - "czech" - ]; - var sehnat = [ - "czech" - ]; - var sejmout = [ - "czech" - ]; - var sekera = [ - "czech" - ]; - var sekta = [ - "czech" - ]; - var sekunda = [ - "czech" - ]; - var sekvoje = [ - "czech" - ]; - var semeno = [ - "czech" - ]; - var seno = [ - "czech" - ]; - var servis = [ - "czech", - "turkish" - ]; - var sesadit = [ - "czech" - ]; - var seshora = [ - "czech" - ]; - var seskok = [ - "czech" - ]; - var seslat = [ - "czech" - ]; - var sestra = [ - "czech" - ]; - var sesuv = [ - "czech" - ]; - var sesypat = [ - "czech" - ]; - var setba = [ - "czech" - ]; - var setina = [ - "czech" - ]; - var setkat = [ - "czech" - ]; - var setnout = [ - "czech" - ]; - var setrvat = [ - "czech" - ]; - var sever = [ - "czech" - ]; - var seznam = [ - "czech" - ]; - var shoda = [ - "czech" - ]; - var shrnout = [ - "czech" - ]; - var sifon = [ - "czech" - ]; - var silnice = [ - "czech" - ]; - var sirka = [ - "czech" - ]; - var sirotek = [ - "czech" - ]; - var sirup = [ - "czech" - ]; - var situace = [ - "czech" - ]; - var skafandr = [ - "czech" - ]; - var skalisko = [ - "czech" - ]; - var skanzen = [ - "czech" - ]; - var skaut = [ - "czech" - ]; - var skeptik = [ - "czech" - ]; - var skica = [ - "czech" - ]; - var skladba = [ - "czech" - ]; - var sklenice = [ - "czech" - ]; - var sklo = [ - "czech" - ]; - var skluz = [ - "czech" - ]; - var skoba = [ - "czech" - ]; - var skokan = [ - "czech" - ]; - var skoro = [ - "czech" - ]; - var skripta = [ - "czech" - ]; - var skrz = [ - "czech" - ]; - var skupina = [ - "czech" - ]; - var skvost = [ - "czech" - ]; - var skvrna = [ - "czech" - ]; - var slabika = [ - "czech" - ]; - var sladidlo = [ - "czech" - ]; - var slanina = [ - "czech" - ]; - var slast = [ - "czech" - ]; - var slavnost = [ - "czech" - ]; - var sledovat = [ - "czech" - ]; - var slepec = [ - "czech" - ]; - var sleva = [ - "czech" - ]; - var slezina = [ - "czech" - ]; - var slib = [ - "czech" - ]; - var slina = [ - "czech" - ]; - var sliznice = [ - "czech" - ]; - var slon = [ - "czech" - ]; - var sloupek = [ - "czech" - ]; - var slovo = [ - "czech" - ]; - var sluch = [ - "czech" - ]; - var sluha = [ - "czech" - ]; - var slunce = [ - "czech" - ]; - var slupka = [ - "czech" - ]; - var slza = [ - "czech" - ]; - var smaragd = [ - "czech" - ]; - var smetana = [ - "czech" - ]; - var smilstvo = [ - "czech" - ]; - var smlouva = [ - "czech" - ]; - var smog = [ - "czech" - ]; - var smrad = [ - "czech" - ]; - var smrk = [ - "czech" - ]; - var smrtka = [ - "czech" - ]; - var smutek = [ - "czech" - ]; - var smysl = [ - "czech" - ]; - var snad = [ - "czech" - ]; - var snaha = [ - "czech" - ]; - var snob = [ - "czech" - ]; - var sobota = [ - "czech" - ]; - var socha = [ - "czech" - ]; - var sodovka = [ - "czech" - ]; - var sokol = [ - "czech" - ]; - var sopka = [ - "czech" - ]; - var sotva = [ - "czech" - ]; - var souboj = [ - "czech" - ]; - var soucit = [ - "czech" - ]; - var soudce = [ - "czech" - ]; - var souhlas = [ - "czech" - ]; - var soulad = [ - "czech" - ]; - var soumrak = [ - "czech" - ]; - var souprava = [ - "czech" - ]; - var soused = [ - "czech" - ]; - var soutok = [ - "czech" - ]; - var souviset = [ - "czech" - ]; - var spalovna = [ - "czech" - ]; - var spasitel = [ - "czech" - ]; - var spis = [ - "czech" - ]; - var splav = [ - "czech" - ]; - var spodek = [ - "czech" - ]; - var spojenec = [ - "czech" - ]; - var spolu = [ - "czech" - ]; - var sponzor = [ - "czech" - ]; - var spornost = [ - "czech" - ]; - var spousta = [ - "czech" - ]; - var sprcha = [ - "czech" - ]; - var spustit = [ - "czech" - ]; - var sranda = [ - "czech" - ]; - var sraz = [ - "czech" - ]; - var srdce = [ - "czech" - ]; - var srna = [ - "czech" - ]; - var srnec = [ - "czech" - ]; - var srovnat = [ - "czech" - ]; - var srpen = [ - "czech" - ]; - var srst = [ - "czech" - ]; - var srub = [ - "czech" - ]; - var stanice = [ - "czech" - ]; - var starosta = [ - "czech" - ]; - var statika = [ - "czech" - ]; - var stavba = [ - "czech" - ]; - var stehno = [ - "czech" - ]; - var stezka = [ - "czech" - ]; - var stodola = [ - "czech" - ]; - var stolek = [ - "czech" - ]; - var stopa = [ - "czech" - ]; - var storno = [ - "czech" - ]; - var stoupat = [ - "czech" - ]; - var strach = [ - "czech" - ]; - var stres = [ - "czech" - ]; - var strhnout = [ - "czech" - ]; - var strom = [ - "czech" - ]; - var struna = [ - "czech" - ]; - var studna = [ - "czech" - ]; - var stupnice = [ - "czech" - ]; - var stvol = [ - "czech" - ]; - var styk = [ - "czech" - ]; - var subjekt = [ - "czech" - ]; - var subtropy = [ - "czech" - ]; - var suchar = [ - "czech" - ]; - var sudost = [ - "czech" - ]; - var sukno = [ - "czech" - ]; - var sundat = [ - "czech" - ]; - var sunout = [ - "czech" - ]; - var surikata = [ - "czech" - ]; - var surovina = [ - "czech" - ]; - var svah = [ - "czech" - ]; - var svalstvo = [ - "czech" - ]; - var svetr = [ - "czech" - ]; - var svatba = [ - "czech" - ]; - var svazek = [ - "czech" - ]; - var svisle = [ - "czech" - ]; - var svitek = [ - "czech" - ]; - var svoboda = [ - "czech" - ]; - var svodidlo = [ - "czech" - ]; - var svorka = [ - "czech" - ]; - var svrab = [ - "czech" - ]; - var sykavka = [ - "czech" - ]; - var sykot = [ - "czech" - ]; - var synek = [ - "czech" - ]; - var synovec = [ - "czech" - ]; - var sypat = [ - "czech" - ]; - var sypkost = [ - "czech" - ]; - var syrovost = [ - "czech" - ]; - var sysel = [ - "czech" - ]; - var sytost = [ - "czech" - ]; - var tabletka = [ - "czech" - ]; - var tabule = [ - "czech" - ]; - var tahoun = [ - "czech" - ]; - var tajemno = [ - "czech" - ]; - var tajfun = [ - "czech" - ]; - var tajga = [ - "czech" - ]; - var tajit = [ - "czech" - ]; - var tajnost = [ - "czech" - ]; - var taktika = [ - "czech" - ]; - var tamhle = [ - "czech" - ]; - var tampon = [ - "czech", - "turkish" - ]; - var tancovat = [ - "czech" - ]; - var tanec = [ - "czech" - ]; - var tanker = [ - "czech" - ]; - var tapeta = [ - "czech" - ]; - var tavenina = [ - "czech" - ]; - var tazatel = [ - "czech" - ]; - var technika = [ - "czech" - ]; - var tehdy = [ - "czech" - ]; - var tekutina = [ - "czech" - ]; - var telefon = [ - "czech" - ]; - var temnota = [ - "czech" - ]; - var tendence = [ - "czech" - ]; - var tenista = [ - "czech" - ]; - var tenor = [ - "czech" - ]; - var teplota = [ - "czech" - ]; - var tepna = [ - "czech" - ]; - var teprve = [ - "czech" - ]; - var terapie = [ - "czech" - ]; - var termoska = [ - "czech" - ]; - var textil = [ - "czech" - ]; - var ticho = [ - "czech" - ]; - var tiskopis = [ - "czech" - ]; - var titulek = [ - "czech" - ]; - var tkadlec = [ - "czech" - ]; - var tkanina = [ - "czech" - ]; - var tlapka = [ - "czech" - ]; - var tleskat = [ - "czech" - ]; - var tlukot = [ - "czech" - ]; - var tlupa = [ - "czech" - ]; - var tmel = [ - "czech" - ]; - var toaleta = [ - "czech" - ]; - var topinka = [ - "czech" - ]; - var topol = [ - "czech" - ]; - var torzo = [ - "czech" - ]; - var touha = [ - "czech" - ]; - var toulec = [ - "czech" - ]; - var tradice = [ - "czech" - ]; - var traktor = [ - "czech" - ]; - var tramp = [ - "czech" - ]; - var trasa = [ - "czech" - ]; - var traverza = [ - "czech" - ]; - var trefit = [ - "czech" - ]; - var trest = [ - "czech" - ]; - var trezor = [ - "czech" - ]; - var trhavina = [ - "czech" - ]; - var trhlina = [ - "czech" - ]; - var trochu = [ - "czech" - ]; - var trojice = [ - "czech" - ]; - var troska = [ - "czech" - ]; - var trouba = [ - "czech" - ]; - var trpce = [ - "czech" - ]; - var trpitel = [ - "czech" - ]; - var trpkost = [ - "czech" - ]; - var trubec = [ - "czech" - ]; - var truchlit = [ - "czech" - ]; - var truhlice = [ - "czech" - ]; - var trus = [ - "czech" - ]; - var trvat = [ - "czech" - ]; - var tudy = [ - "czech" - ]; - var tuhnout = [ - "czech" - ]; - var tuhost = [ - "czech" - ]; - var tundra = [ - "czech" - ]; - var turista = [ - "czech" - ]; - var turnaj = [ - "czech" - ]; - var tuzemsko = [ - "czech" - ]; - var tvaroh = [ - "czech" - ]; - var tvorba = [ - "czech" - ]; - var tvrdost = [ - "czech" - ]; - var tvrz = [ - "czech" - ]; - var tygr = [ - "czech" - ]; - var tykev = [ - "czech" - ]; - var ubohost = [ - "czech" - ]; - var uboze = [ - "czech" - ]; - var ubrat = [ - "czech" - ]; - var ubrousek = [ - "czech" - ]; - var ubrus = [ - "czech" - ]; - var ubytovna = [ - "czech" - ]; - var ucho = [ - "czech" - ]; - var uctivost = [ - "czech" - ]; - var udivit = [ - "czech" - ]; - var uhradit = [ - "czech" - ]; - var ujednat = [ - "czech" - ]; - var ujistit = [ - "czech" - ]; - var ujmout = [ - "czech" - ]; - var ukazatel = [ - "czech" - ]; - var uklidnit = [ - "czech" - ]; - var uklonit = [ - "czech" - ]; - var ukotvit = [ - "czech" - ]; - var ukrojit = [ - "czech" - ]; - var ulice = [ - "czech" - ]; - var ulita = [ - "czech" - ]; - var ulovit = [ - "czech" - ]; - var umyvadlo = [ - "czech" - ]; - var unavit = [ - "czech" - ]; - var uniforma = [ - "czech" - ]; - var uniknout = [ - "czech" - ]; - var upadnout = [ - "czech" - ]; - var uplatnit = [ - "czech" - ]; - var uplynout = [ - "czech" - ]; - var upoutat = [ - "czech" - ]; - var upravit = [ - "czech" - ]; - var uran = [ - "czech" - ]; - var urazit = [ - "czech" - ]; - var usednout = [ - "czech" - ]; - var usilovat = [ - "czech" - ]; - var usmrtit = [ - "czech" - ]; - var usnadnit = [ - "czech" - ]; - var usnout = [ - "czech" - ]; - var usoudit = [ - "czech" - ]; - var ustlat = [ - "czech" - ]; - var ustrnout = [ - "czech" - ]; - var utahovat = [ - "czech" - ]; - var utkat = [ - "czech" - ]; - var utlumit = [ - "czech" - ]; - var utonout = [ - "czech" - ]; - var utopenec = [ - "czech" - ]; - var utrousit = [ - "czech" - ]; - var uvalit = [ - "czech" - ]; - var uvolnit = [ - "czech" - ]; - var uvozovka = [ - "czech" - ]; - var uzdravit = [ - "czech" - ]; - var uzel = [ - "czech" - ]; - var uzenina = [ - "czech" - ]; - var uzlina = [ - "czech" - ]; - var uznat = [ - "czech" - ]; - var vagon = [ - "czech", - "turkish" - ]; - var valcha = [ - "czech" - ]; - var valoun = [ - "czech" - ]; - var vana = [ - "czech" - ]; - var vandal = [ - "czech" - ]; - var vanilka = [ - "czech" - ]; - var varan = [ - "czech" - ]; - var varhany = [ - "czech" - ]; - var varovat = [ - "czech" - ]; - var vcelku = [ - "czech" - ]; - var vchod = [ - "czech" - ]; - var vdova = [ - "czech" - ]; - var vedro = [ - "czech" - ]; - var vegetace = [ - "czech" - ]; - var vejce = [ - "czech" - ]; - var velbloud = [ - "czech" - ]; - var veletrh = [ - "czech" - ]; - var velitel = [ - "czech" - ]; - var velmoc = [ - "czech" - ]; - var velryba = [ - "czech" - ]; - var venkov = [ - "czech" - ]; - var veranda = [ - "czech" - ]; - var verze = [ - "czech" - ]; - var veselka = [ - "czech" - ]; - var veskrze = [ - "czech" - ]; - var vesnice = [ - "czech" - ]; - var vespodu = [ - "czech" - ]; - var vesta = [ - "czech" - ]; - var veterina = [ - "czech" - ]; - var veverka = [ - "czech" - ]; - var vibrace = [ - "czech" - ]; - var vichr = [ - "czech" - ]; - var videohra = [ - "czech" - ]; - var vidina = [ - "czech" - ]; - var vidle = [ - "czech" - ]; - var vila = [ - "czech" - ]; - var vinice = [ - "czech" - ]; - var viset = [ - "czech" - ]; - var vitalita = [ - "czech" - ]; - var vize = [ - "czech" - ]; - var vizitka = [ - "czech" - ]; - var vjezd = [ - "czech" - ]; - var vklad = [ - "czech" - ]; - var vkus = [ - "czech" - ]; - var vlajka = [ - "czech" - ]; - var vlak = [ - "czech" - ]; - var vlasec = [ - "czech" - ]; - var vlevo = [ - "czech" - ]; - var vlhkost = [ - "czech" - ]; - var vliv = [ - "czech" - ]; - var vlnovka = [ - "czech" - ]; - var vloupat = [ - "czech" - ]; - var vnucovat = [ - "czech" - ]; - var vnuk = [ - "czech" - ]; - var voda = [ - "czech" - ]; - var vodivost = [ - "czech" - ]; - var vodoznak = [ - "czech" - ]; - var vodstvo = [ - "czech" - ]; - var vojensky = [ - "czech" - ]; - var vojna = [ - "czech" - ]; - var vojsko = [ - "czech" - ]; - var volant = [ - "czech" - ]; - var volba = [ - "czech" - ]; - var volit = [ - "czech" - ]; - var volno = [ - "czech" - ]; - var voskovka = [ - "czech" - ]; - var vozidlo = [ - "czech" - ]; - var vozovna = [ - "czech" - ]; - var vpravo = [ - "czech" - ]; - var vrabec = [ - "czech" - ]; - var vracet = [ - "czech" - ]; - var vrah = [ - "czech" - ]; - var vrata = [ - "czech" - ]; - var vrba = [ - "czech" - ]; - var vrcholek = [ - "czech" - ]; - var vrhat = [ - "czech" - ]; - var vrstva = [ - "czech" - ]; - var vrtule = [ - "czech" - ]; - var vsadit = [ - "czech" - ]; - var vstoupit = [ - "czech" - ]; - var vstup = [ - "czech" - ]; - var vtip = [ - "czech" - ]; - var vybavit = [ - "czech" - ]; - var vybrat = [ - "czech" - ]; - var vychovat = [ - "czech" - ]; - var vydat = [ - "czech" - ]; - var vydra = [ - "czech" - ]; - var vyfotit = [ - "czech" - ]; - var vyhledat = [ - "czech" - ]; - var vyhnout = [ - "czech" - ]; - var vyhodit = [ - "czech" - ]; - var vyhradit = [ - "czech" - ]; - var vyhubit = [ - "czech" - ]; - var vyjasnit = [ - "czech" - ]; - var vyjet = [ - "czech" - ]; - var vyjmout = [ - "czech" - ]; - var vyklopit = [ - "czech" - ]; - var vykonat = [ - "czech" - ]; - var vylekat = [ - "czech" - ]; - var vymazat = [ - "czech" - ]; - var vymezit = [ - "czech" - ]; - var vymizet = [ - "czech" - ]; - var vymyslet = [ - "czech" - ]; - var vynechat = [ - "czech" - ]; - var vynikat = [ - "czech" - ]; - var vynutit = [ - "czech" - ]; - var vypadat = [ - "czech" - ]; - var vyplatit = [ - "czech" - ]; - var vypravit = [ - "czech" - ]; - var vypustit = [ - "czech" - ]; - var vyrazit = [ - "czech" - ]; - var vyrovnat = [ - "czech" - ]; - var vyrvat = [ - "czech" - ]; - var vyslovit = [ - "czech" - ]; - var vysoko = [ - "czech" - ]; - var vystavit = [ - "czech" - ]; - var vysunout = [ - "czech" - ]; - var vysypat = [ - "czech" - ]; - var vytasit = [ - "czech" - ]; - var vytesat = [ - "czech" - ]; - var vytratit = [ - "czech" - ]; - var vyvinout = [ - "czech" - ]; - var vyvolat = [ - "czech" - ]; - var vyvrhel = [ - "czech" - ]; - var vyzdobit = [ - "czech" - ]; - var vyznat = [ - "czech" - ]; - var vzadu = [ - "czech" - ]; - var vzbudit = [ - "czech" - ]; - var vzchopit = [ - "czech" - ]; - var vzdor = [ - "czech" - ]; - var vzduch = [ - "czech" - ]; - var vzdychat = [ - "czech" - ]; - var vzestup = [ - "czech" - ]; - var vzhledem = [ - "czech" - ]; - var vzkaz = [ - "czech" - ]; - var vzlykat = [ - "czech" - ]; - var vznik = [ - "czech" - ]; - var vzorek = [ - "czech" - ]; - var vzpoura = [ - "czech" - ]; - var vztah = [ - "czech" - ]; - var vztek = [ - "czech" - ]; - var xylofon = [ - "czech" - ]; - var zabrat = [ - "czech" - ]; - var zabydlet = [ - "czech" - ]; - var zachovat = [ - "czech" - ]; - var zadarmo = [ - "czech" - ]; - var zadusit = [ - "czech" - ]; - var zafoukat = [ - "czech" - ]; - var zahltit = [ - "czech" - ]; - var zahodit = [ - "czech" - ]; - var zahrada = [ - "czech" - ]; - var zahynout = [ - "czech" - ]; - var zajatec = [ - "czech" - ]; - var zajet = [ - "czech" - ]; - var zajistit = [ - "czech" - ]; - var zaklepat = [ - "czech" - ]; - var zakoupit = [ - "czech" - ]; - var zalepit = [ - "czech" - ]; - var zamezit = [ - "czech" - ]; - var zamotat = [ - "czech" - ]; - var zamyslet = [ - "czech" - ]; - var zanechat = [ - "czech" - ]; - var zanikat = [ - "czech" - ]; - var zaplatit = [ - "czech" - ]; - var zapojit = [ - "czech" - ]; - var zapsat = [ - "czech" - ]; - var zarazit = [ - "czech" - ]; - var zastavit = [ - "czech" - ]; - var zasunout = [ - "czech" - ]; - var zatajit = [ - "czech" - ]; - var zatemnit = [ - "czech" - ]; - var zatknout = [ - "czech" - ]; - var zaujmout = [ - "czech" - ]; - var zavalit = [ - "czech" - ]; - var zavelet = [ - "czech" - ]; - var zavinit = [ - "czech" - ]; - var zavolat = [ - "czech" - ]; - var zavrtat = [ - "czech" - ]; - var zazvonit = [ - "czech" - ]; - var zbavit = [ - "czech" - ]; - var zbrusu = [ - "czech" - ]; - var zbudovat = [ - "czech" - ]; - var zbytek = [ - "czech" - ]; - var zdaleka = [ - "czech" - ]; - var zdarma = [ - "czech" - ]; - var zdatnost = [ - "czech" - ]; - var zdivo = [ - "czech" - ]; - var zdobit = [ - "czech" - ]; - var zdroj = [ - "czech" - ]; - var zdvih = [ - "czech" - ]; - var zdymadlo = [ - "czech" - ]; - var zelenina = [ - "czech" - ]; - var zeman = [ - "czech" - ]; - var zemina = [ - "czech" - ]; - var zeptat = [ - "czech" - ]; - var zezadu = [ - "czech" - ]; - var zezdola = [ - "czech" - ]; - var zhatit = [ - "czech" - ]; - var zhltnout = [ - "czech" - ]; - var zhluboka = [ - "czech" - ]; - var zhotovit = [ - "czech" - ]; - var zhruba = [ - "czech" - ]; - var zima = [ - "czech" - ]; - var zimnice = [ - "czech" - ]; - var zjemnit = [ - "czech" - ]; - var zklamat = [ - "czech" - ]; - var zkoumat = [ - "czech" - ]; - var zkratka = [ - "czech" - ]; - var zkumavka = [ - "czech" - ]; - var zlato = [ - "czech" - ]; - var zlehka = [ - "czech" - ]; - var zloba = [ - "czech" - ]; - var zlom = [ - "czech" - ]; - var zlost = [ - "czech" - ]; - var zlozvyk = [ - "czech" - ]; - var zmapovat = [ - "czech" - ]; - var zmar = [ - "czech" - ]; - var zmatek = [ - "czech" - ]; - var zmije = [ - "czech" - ]; - var zmizet = [ - "czech" - ]; - var zmocnit = [ - "czech" - ]; - var zmodrat = [ - "czech" - ]; - var zmrzlina = [ - "czech" - ]; - var zmutovat = [ - "czech" - ]; - var znak = [ - "czech" - ]; - var znalost = [ - "czech" - ]; - var znamenat = [ - "czech" - ]; - var znovu = [ - "czech" - ]; - var zobrazit = [ - "czech" - ]; - var zotavit = [ - "czech" - ]; - var zoubek = [ - "czech" - ]; - var zoufale = [ - "czech" - ]; - var zplodit = [ - "czech" - ]; - var zpomalit = [ - "czech" - ]; - var zprava = [ - "czech" - ]; - var zprostit = [ - "czech" - ]; - var zprudka = [ - "czech" - ]; - var zprvu = [ - "czech" - ]; - var zrada = [ - "czech" - ]; - var zranit = [ - "czech" - ]; - var zrcadlo = [ - "czech" - ]; - var zrnitost = [ - "czech" - ]; - var zrno = [ - "czech" - ]; - var zrovna = [ - "czech" - ]; - var zrychlit = [ - "czech" - ]; - var zrzavost = [ - "czech" - ]; - var zticha = [ - "czech" - ]; - var ztratit = [ - "czech" - ]; - var zubovina = [ - "czech" - ]; - var zubr = [ - "czech" - ]; - var zvednout = [ - "czech" - ]; - var zvenku = [ - "czech" - ]; - var zvesela = [ - "czech" - ]; - var zvon = [ - "czech" - ]; - var zvrat = [ - "czech" - ]; - var zvukovod = [ - "czech" - ]; - var zvyk = [ - "czech" - ]; - var abandon = [ - "english", - "french" - ]; - var ability = [ - "english" - ]; - var able = [ - "english" - ]; - var about = [ - "english" - ]; - var above = [ - "english" - ]; - var absent = [ - "english" - ]; - var absorb = [ - "english" - ]; - var abstract = [ - "english" - ]; - var absurd = [ - "english" - ]; - var abuse = [ - "english" - ]; - var access = [ - "english" - ]; - var accident = [ - "english" - ]; - var account = [ - "english" - ]; - var accuse = [ - "english" - ]; - var achieve = [ - "english" - ]; - var acid = [ - "english" - ]; - var acoustic = [ - "english" - ]; - var acquire = [ - "english" - ]; - var across = [ - "english" - ]; - var act = [ - "english" - ]; - var action = [ - "english" - ]; - var actor = [ - "english" - ]; - var actress = [ - "english" - ]; - var actual = [ - "english" - ]; - var adapt = [ - "english" - ]; - var add = [ - "english" - ]; - var addict = [ - "english" - ]; - var address$1 = [ - "english" - ]; - var adjust = [ - "english" - ]; - var admit = [ - "english" - ]; - var adult = [ - "english" - ]; - var advance = [ - "english" - ]; - var advice = [ - "english" - ]; - var aerobic = [ - "english" - ]; - var affair = [ - "english" - ]; - var afford = [ - "english" - ]; - var afraid = [ - "english" - ]; - var again = [ - "english" - ]; - var age = [ - "english" - ]; - var agent = [ - "english" - ]; - var agree = [ - "english" - ]; - var ahead = [ - "english" - ]; - var aim = [ - "english" - ]; - var air = [ - "english" - ]; - var airport = [ - "english" - ]; - var aisle = [ - "english" - ]; - var alarm = [ - "english" - ]; - var album = [ - "english" - ]; - var alcohol = [ - "english" - ]; - var alert = [ - "english" - ]; - var alien = [ - "english" - ]; - var all = [ - "english" - ]; - var alley = [ - "english" - ]; - var allow = [ - "english" - ]; - var almost = [ - "english" - ]; - var alone = [ - "english" - ]; - var alpha = [ - "english" - ]; - var already = [ - "english" - ]; - var also = [ - "english" - ]; - var alter = [ - "english" - ]; - var always = [ - "english" - ]; - var amateur = [ - "english", - "french" - ]; - var amazing = [ - "english" - ]; - var among = [ - "english" - ]; - var amount = [ - "english" - ]; - var amused = [ - "english" - ]; - var analyst = [ - "english" - ]; - var anchor = [ - "english" - ]; - var ancient = [ - "english" - ]; - var anger = [ - "english" - ]; - var angle = [ - "english", - "french" - ]; - var angry = [ - "english" - ]; - var animal = [ - "english", - "french" - ]; - var ankle = [ - "english" - ]; - var announce = [ - "english" - ]; - var annual = [ - "english" - ]; - var another = [ - "english" - ]; - var answer = [ - "english" - ]; - var antenna = [ - "english" - ]; - var antique = [ - "english" - ]; - var anxiety = [ - "english" - ]; - var any = [ - "english" - ]; - var apart = [ - "english" - ]; - var apology = [ - "english" - ]; - var appear = [ - "english" - ]; - var apple = [ - "english" - ]; - var approve = [ - "english" - ]; - var april = [ - "english" - ]; - var arch = [ - "english" - ]; - var arctic = [ - "english" - ]; - var area = [ - "english" - ]; - var arena = [ - "english", - "turkish" - ]; - var argue = [ - "english" - ]; - var arm = [ - "english" - ]; - var armed = [ - "english" - ]; - var armor = [ - "english" - ]; - var army = [ - "english" - ]; - var around = [ - "english" - ]; - var arrange = [ - "english" - ]; - var arrest = [ - "english" - ]; - var arrive = [ - "english" - ]; - var arrow = [ - "english" - ]; - var art = [ - "english" - ]; - var artefact = [ - "english" - ]; - var artist = [ - "english", - "turkish" - ]; - var artwork = [ - "english" - ]; - var ask = [ - "english" - ]; - var aspect = [ - "english", - "french" - ]; - var assault = [ - "english" - ]; - var asset = [ - "english" - ]; - var assist = [ - "english" - ]; - var assume = [ - "english" - ]; - var asthma = [ - "english" - ]; - var athlete = [ - "english" - ]; - var atom = [ - "english", - "turkish" - ]; - var attack = [ - "english" - ]; - var attend = [ - "english" - ]; - var attitude = [ - "english" - ]; - var attract = [ - "english" - ]; - var auction = [ - "english" - ]; - var audit = [ - "english" - ]; - var august = [ - "english" - ]; - var aunt = [ - "english" - ]; - var author = [ - "english" - ]; - var auto = [ - "english" - ]; - var autumn = [ - "english" - ]; - var average = [ - "english" - ]; - var avocado = [ - "english" - ]; - var avoid = [ - "english" - ]; - var awake = [ - "english" - ]; - var aware = [ - "english" - ]; - var away = [ - "english" - ]; - var awesome = [ - "english" - ]; - var awful = [ - "english" - ]; - var awkward = [ - "english" - ]; - var axis = [ - "english" - ]; - var baby = [ - "english" - ]; - var bachelor = [ - "english" - ]; - var bacon = [ - "english" - ]; - var badge = [ - "english", - "french" - ]; - var bag = [ - "english" - ]; - var balance = [ - "english" - ]; - var balcony = [ - "english" - ]; - var ball = [ - "english" - ]; - var bamboo = [ - "english" - ]; - var banana = [ - "english" - ]; - var banner = [ - "english" - ]; - var bar = [ - "english" - ]; - var barely = [ - "english" - ]; - var bargain = [ - "english" - ]; - var barrel = [ - "english" - ]; - var base = [ - "english" - ]; - var basic = [ - "english" - ]; - var basket = [ - "english" - ]; - var battle = [ - "english" - ]; - var beach = [ - "english" - ]; - var bean = [ - "english" - ]; - var beauty = [ - "english" - ]; - var because = [ - "english" - ]; - var become = [ - "english" - ]; - var beef = [ - "english" - ]; - var before = [ - "english" - ]; - var begin = [ - "english" - ]; - var behave = [ - "english" - ]; - var behind = [ - "english" - ]; - var believe = [ - "english" - ]; - var below = [ - "english" - ]; - var belt = [ - "english" - ]; - var bench = [ - "english" - ]; - var benefit = [ - "english" - ]; - var best = [ - "english" - ]; - var betray = [ - "english" - ]; - var better = [ - "english" - ]; - var between = [ - "english" - ]; - var beyond = [ - "english" - ]; - var bicycle = [ - "english", - "french" - ]; - var bid = [ - "english" - ]; - var bike = [ - "english" - ]; - var bind = [ - "english" - ]; - var biology = [ - "english" - ]; - var bird = [ - "english" - ]; - var birth = [ - "english" - ]; - var bitter = [ - "english" - ]; - var black = [ - "english" - ]; - var blade = [ - "english" - ]; - var blame = [ - "english" - ]; - var blanket = [ - "english" - ]; - var blast = [ - "english" - ]; - var bleak = [ - "english" - ]; - var bless = [ - "english" - ]; - var blind = [ - "english" - ]; - var blood = [ - "english" - ]; - var blossom = [ - "english" - ]; - var blouse = [ - "english" - ]; - var blue = [ - "english" - ]; - var blur = [ - "english" - ]; - var blush = [ - "english" - ]; - var board = [ - "english" - ]; - var boat = [ - "english" - ]; - var body = [ - "english" - ]; - var boil = [ - "english" - ]; - var bomb = [ - "english" - ]; - var bone = [ - "english" - ]; - var bonus = [ - "english", - "french" - ]; - var book = [ - "english" - ]; - var boost = [ - "english" - ]; - var border = [ - "english" - ]; - var boring = [ - "english" - ]; - var borrow = [ - "english" - ]; - var boss = [ - "english" - ]; - var bottom = [ - "english" - ]; - var bounce = [ - "english" - ]; - var box = [ - "english" - ]; - var boy = [ - "english" - ]; - var bracket = [ - "english" - ]; - var brain = [ - "english" - ]; - var brand = [ - "english" - ]; - var brass = [ - "english" - ]; - var brave = [ - "english", - "french" - ]; - var bread = [ - "english" - ]; - var breeze = [ - "english" - ]; - var brick = [ - "english" - ]; - var bridge = [ - "english" - ]; - var brief = [ - "english" - ]; - var bright = [ - "english" - ]; - var bring = [ - "english" - ]; - var brisk = [ - "english" - ]; - var broccoli = [ - "english" - ]; - var broken = [ - "english" - ]; - var bronze = [ - "english" - ]; - var broom = [ - "english" - ]; - var brother = [ - "english" - ]; - var brown = [ - "english" - ]; - var brush = [ - "english" - ]; - var bubble = [ - "english" - ]; - var buddy = [ - "english" - ]; - var budget = [ - "english" - ]; - var buffalo = [ - "english" - ]; - var build = [ - "english" - ]; - var bulb = [ - "english" - ]; - var bulk = [ - "english" - ]; - var bullet = [ - "english" - ]; - var bundle = [ - "english" - ]; - var bunker = [ - "english" - ]; - var burden = [ - "english" - ]; - var burger = [ - "english" - ]; - var burst = [ - "english" - ]; - var bus = [ - "english" - ]; - var business = [ - "english" - ]; - var busy = [ - "english" - ]; - var butter = [ - "english" - ]; - var buyer = [ - "english" - ]; - var buzz = [ - "english" - ]; - var cabbage = [ - "english" - ]; - var cabin = [ - "english" - ]; - var cable = [ - "english" - ]; - var cactus = [ - "english" - ]; - var cage = [ - "english" - ]; - var cake = [ - "english" - ]; - var call = [ - "english" - ]; - var calm = [ - "english" - ]; - var camera = [ - "english" - ]; - var camp = [ - "english" - ]; - var can = [ - "english" - ]; - var canal = [ - "english", - "french" - ]; - var cancel = [ - "english" - ]; - var candy = [ - "english" - ]; - var cannon = [ - "english" - ]; - var canoe = [ - "english" - ]; - var canvas = [ - "english" - ]; - var canyon = [ - "english" - ]; - var capable = [ - "english", - "french" - ]; - var capital = [ - "english" - ]; - var captain = [ - "english" - ]; - var car = [ - "english" - ]; - var carbon = [ - "english" - ]; - var card = [ - "english" - ]; - var cargo = [ - "english" - ]; - var carpet = [ - "english" - ]; - var carry = [ - "english" - ]; - var cart = [ - "english" - ]; - var cash = [ - "english" - ]; - var casino = [ - "english" - ]; - var castle = [ - "english" - ]; - var casual = [ - "english" - ]; - var cat = [ - "english" - ]; - var catalog = [ - "english" - ]; - var category = [ - "english" - ]; - var cattle = [ - "english" - ]; - var caught = [ - "english" - ]; - var cause = [ - "english" - ]; - var caution = [ - "english", - "french" - ]; - var cave = [ - "english" - ]; - var ceiling = [ - "english" - ]; - var celery = [ - "english" - ]; - var cement = [ - "english" - ]; - var census = [ - "english" - ]; - var century = [ - "english" - ]; - var cereal = [ - "english" - ]; - var certain = [ - "english" - ]; - var chair = [ - "english" - ]; - var chalk = [ - "english" - ]; - var champion = [ - "english" - ]; - var change = [ - "english" - ]; - var chaos = [ - "english" - ]; - var chapter = [ - "english" - ]; - var charge = [ - "english" - ]; - var chase = [ - "english" - ]; - var chat = [ - "english" - ]; - var cheap = [ - "english" - ]; - var check = [ - "english" - ]; - var cheese = [ - "english" - ]; - var chef = [ - "english" - ]; - var cherry = [ - "english" - ]; - var chest = [ - "english" - ]; - var chicken = [ - "english" - ]; - var chief = [ - "english" - ]; - var child = [ - "english" - ]; - var chimney = [ - "english" - ]; - var choice = [ - "english" - ]; - var choose = [ - "english" - ]; - var chronic = [ - "english" - ]; - var chuckle = [ - "english" - ]; - var chunk = [ - "english" - ]; - var churn = [ - "english" - ]; - var cigar = [ - "english" - ]; - var cinnamon = [ - "english" - ]; - var circle = [ - "english" - ]; - var citizen = [ - "english" - ]; - var city = [ - "english" - ]; - var civil = [ - "english", - "french" - ]; - var claim = [ - "english" - ]; - var clap = [ - "english" - ]; - var clarify = [ - "english" - ]; - var claw = [ - "english" - ]; - var clay = [ - "english" - ]; - var clean = [ - "english" - ]; - var clerk = [ - "english" - ]; - var clever = [ - "english" - ]; - var click = [ - "english" - ]; - var client = [ - "english", - "french" - ]; - var cliff = [ - "english" - ]; - var climb = [ - "english" - ]; - var clinic = [ - "english" - ]; - var clip = [ - "english" - ]; - var clock = [ - "english" - ]; - var clog = [ - "english" - ]; - var close = [ - "english" - ]; - var cloth = [ - "english" - ]; - var cloud = [ - "english" - ]; - var clown = [ - "english" - ]; - var club = [ - "english" - ]; - var clump = [ - "english" - ]; - var cluster = [ - "english" - ]; - var clutch = [ - "english" - ]; - var coach = [ - "english" - ]; - var coast = [ - "english" - ]; - var coconut = [ - "english" - ]; - var code = [ - "english" - ]; - var coffee = [ - "english" - ]; - var coil = [ - "english" - ]; - var coin = [ - "english" - ]; - var collect = [ - "english" - ]; - var color = [ - "english" - ]; - var column = [ - "english" - ]; - var combine = [ - "english" - ]; - var come = [ - "english" - ]; - var comfort = [ - "english" - ]; - var comic = [ - "english" - ]; - var common$1 = [ - "english" - ]; - var company = [ - "english" - ]; - var concert = [ - "english", - "french" - ]; - var conduct = [ - "english" - ]; - var confirm = [ - "english" - ]; - var congress = [ - "english" - ]; - var connect = [ - "english" - ]; - var consider = [ - "english" - ]; - var control = [ - "english" - ]; - var convince = [ - "english" - ]; - var cook = [ - "english" - ]; - var cool = [ - "english" - ]; - var copper = [ - "english" - ]; - var copy = [ - "english" - ]; - var coral = [ - "english" - ]; - var core = [ - "english" - ]; - var corn = [ - "english" - ]; - var correct = [ - "english", - "french" - ]; - var cost = [ - "english" - ]; - var cotton = [ - "english" - ]; - var couch = [ - "english" - ]; - var country = [ - "english" - ]; - var couple = [ - "english" - ]; - var course = [ - "english" - ]; - var cousin = [ - "english" - ]; - var cover = [ - "english" - ]; - var coyote = [ - "english", - "french" - ]; - var crack = [ - "english" - ]; - var cradle = [ - "english" - ]; - var craft = [ - "english" - ]; - var cram = [ - "english" - ]; - var crane = [ - "english" - ]; - var crash = [ - "english" - ]; - var crater = [ - "english" - ]; - var crawl = [ - "english" - ]; - var crazy = [ - "english" - ]; - var cream = [ - "english" - ]; - var credit = [ - "english" - ]; - var creek = [ - "english" - ]; - var crew = [ - "english" - ]; - var cricket = [ - "english" - ]; - var crime = [ - "english" - ]; - var crisp = [ - "english" - ]; - var critic = [ - "english" - ]; - var crop = [ - "english" - ]; - var cross = [ - "english" - ]; - var crouch = [ - "english" - ]; - var crowd = [ - "english" - ]; - var crucial = [ - "english", - "french" - ]; - var cruel = [ - "english", - "french" - ]; - var cruise = [ - "english" - ]; - var crumble = [ - "english" - ]; - var crunch = [ - "english" - ]; - var crush = [ - "english" - ]; - var cry = [ - "english" - ]; - var crystal = [ - "english" - ]; - var cube = [ - "english" - ]; - var culture = [ - "english" - ]; - var cup = [ - "english" - ]; - var cupboard = [ - "english" - ]; - var curious = [ - "english" - ]; - var current = [ - "english" - ]; - var curtain = [ - "english" - ]; - var curve$2 = [ - "english" - ]; - var cushion = [ - "english" - ]; - var custom = [ - "english" - ]; - var cute = [ - "english" - ]; - var cycle = [ - "english", - "french" - ]; - var dad = [ - "english" - ]; - var damage = [ - "english" - ]; - var damp = [ - "english" - ]; - var dance = [ - "english" - ]; - var danger = [ - "english", - "french" - ]; - var daring = [ - "english" - ]; - var dash = [ - "english" - ]; - var daughter = [ - "english" - ]; - var dawn = [ - "english" - ]; - var day = [ - "english" - ]; - var deal = [ - "english" - ]; - var debate = [ - "english" - ]; - var debris = [ - "english" - ]; - var decade = [ - "english" - ]; - var december = [ - "english" - ]; - var decide = [ - "english" - ]; - var decline = [ - "english" - ]; - var decorate = [ - "english" - ]; - var decrease = [ - "english" - ]; - var deer = [ - "english" - ]; - var defense = [ - "english" - ]; - var define = [ - "english" - ]; - var defy = [ - "english" - ]; - var degree = [ - "english" - ]; - var delay = [ - "english" - ]; - var deliver = [ - "english" - ]; - var demand = [ - "english" - ]; - var demise = [ - "english" - ]; - var denial = [ - "english" - ]; - var dentist = [ - "english" - ]; - var deny = [ - "english" - ]; - var depart = [ - "english" - ]; - var depend = [ - "english" - ]; - var deposit = [ - "english" - ]; - var depth = [ - "english" - ]; - var deputy = [ - "english" - ]; - var derive = [ - "english" - ]; - var describe = [ - "english" - ]; - var desert = [ - "english" - ]; - var design = [ - "english" - ]; - var desk = [ - "english" - ]; - var despair = [ - "english" - ]; - var destroy = [ - "english" - ]; - var detail = [ - "english" - ]; - var detect = [ - "english" - ]; - var develop = [ - "english" - ]; - var device = [ - "english" - ]; - var devote = [ - "english" - ]; - var diagram = [ - "english" - ]; - var dial = [ - "english" - ]; - var diamond = [ - "english" - ]; - var diary = [ - "english" - ]; - var dice = [ - "english" - ]; - var diesel = [ - "english" - ]; - var diet = [ - "english" - ]; - var differ = [ - "english" - ]; - var digital = [ - "english", - "french" - ]; - var dignity = [ - "english" - ]; - var dilemma = [ - "english" - ]; - var dinner = [ - "english" - ]; - var dinosaur = [ - "english" - ]; - var direct = [ - "english" - ]; - var dirt = [ - "english" - ]; - var disagree = [ - "english" - ]; - var discover = [ - "english" - ]; - var disease = [ - "english" - ]; - var dish = [ - "english" - ]; - var dismiss = [ - "english" - ]; - var disorder = [ - "english" - ]; - var display = [ - "english" - ]; - var distance = [ - "english", - "french" - ]; - var divert = [ - "english" - ]; - var divide = [ - "english" - ]; - var divorce = [ - "english" - ]; - var dizzy = [ - "english" - ]; - var doctor = [ - "english" - ]; - var document$1 = [ - "english" - ]; - var dog = [ - "english" - ]; - var doll = [ - "english" - ]; - var dolphin = [ - "english" - ]; - var domain = [ - "english" - ]; - var donate = [ - "english" - ]; - var donkey = [ - "english" - ]; - var donor = [ - "english" - ]; - var door = [ - "english" - ]; - var dose = [ - "english" - ]; - var double = [ - "english", - "french" - ]; - var dove = [ - "english" - ]; - var draft = [ - "english" - ]; - var dragon = [ - "english", - "french" - ]; - var drama = [ - "english" - ]; - var drastic = [ - "english" - ]; - var draw = [ - "english" - ]; - var dream = [ - "english" - ]; - var dress = [ - "english" - ]; - var drift = [ - "english" - ]; - var drill = [ - "english" - ]; - var drink = [ - "english" - ]; - var drip = [ - "english" - ]; - var drive = [ - "english" - ]; - var drop = [ - "english" - ]; - var drum = [ - "english" - ]; - var dry = [ - "english" - ]; - var duck = [ - "english" - ]; - var dumb = [ - "english" - ]; - var dune = [ - "english" - ]; - var during = [ - "english" - ]; - var dust = [ - "english" - ]; - var dutch = [ - "english" - ]; - var duty = [ - "english" - ]; - var dwarf = [ - "english" - ]; - var dynamic = [ - "english" - ]; - var eager = [ - "english" - ]; - var eagle = [ - "english" - ]; - var early = [ - "english" - ]; - var earn = [ - "english" - ]; - var earth = [ - "english" - ]; - var easily = [ - "english" - ]; - var east = [ - "english" - ]; - var easy = [ - "english" - ]; - var echo = [ - "english" - ]; - var ecology = [ - "english" - ]; - var economy = [ - "english" - ]; - var edge = [ - "english" - ]; - var edit = [ - "english" - ]; - var educate = [ - "english" - ]; - var effort = [ - "english", - "french" - ]; - var egg = [ - "english" - ]; - var eight = [ - "english" - ]; - var either = [ - "english" - ]; - var elbow = [ - "english" - ]; - var elder = [ - "english" - ]; - var electric = [ - "english" - ]; - var elegant = [ - "english" - ]; - var element = [ - "english" - ]; - var elephant = [ - "english" - ]; - var elevator = [ - "english" - ]; - var elite = [ - "english" - ]; - var embark = [ - "english" - ]; - var embody = [ - "english" - ]; - var embrace = [ - "english" - ]; - var emerge = [ - "english" - ]; - var emotion = [ - "english" - ]; - var employ = [ - "english" - ]; - var empower = [ - "english" - ]; - var empty = [ - "english" - ]; - var enable = [ - "english" - ]; - var enact = [ - "english" - ]; - var end = [ - "english" - ]; - var endless = [ - "english" - ]; - var endorse = [ - "english" - ]; - var enemy = [ - "english" - ]; - var energy = [ - "english" - ]; - var enforce = [ - "english" - ]; - var engage = [ - "english" - ]; - var engine = [ - "english" - ]; - var enhance = [ - "english" - ]; - var enjoy = [ - "english" - ]; - var enlist = [ - "english" - ]; - var enough = [ - "english" - ]; - var enrich = [ - "english" - ]; - var enroll = [ - "english" - ]; - var ensure = [ - "english" - ]; - var enter = [ - "english" - ]; - var entire = [ - "english" - ]; - var entry = [ - "english" - ]; - var envelope = [ - "english" - ]; - var episode = [ - "english" - ]; - var equal = [ - "english" - ]; - var equip = [ - "english" - ]; - var era = [ - "english" - ]; - var erase = [ - "english" - ]; - var erode = [ - "english" - ]; - var erosion = [ - "english" - ]; - var error$1 = [ - "english" - ]; - var erupt = [ - "english" - ]; - var essay = [ - "english" - ]; - var essence = [ - "english", - "french" - ]; - var estate = [ - "english" - ]; - var eternal = [ - "english" - ]; - var ethics = [ - "english" - ]; - var evidence = [ - "english" - ]; - var evil = [ - "english" - ]; - var evoke = [ - "english" - ]; - var evolve = [ - "english" - ]; - var exact = [ - "english", - "french" - ]; - var example = [ - "english" - ]; - var excess = [ - "english" - ]; - var exchange = [ - "english" - ]; - var excite = [ - "english" - ]; - var exclude = [ - "english" - ]; - var excuse = [ - "english", - "french" - ]; - var execute = [ - "english" - ]; - var exercise = [ - "english" - ]; - var exhaust = [ - "english" - ]; - var exhibit = [ - "english" - ]; - var exile = [ - "english" - ]; - var exist = [ - "english" - ]; - var exit = [ - "english" - ]; - var exotic = [ - "english" - ]; - var expand = [ - "english" - ]; - var expect = [ - "english" - ]; - var expire = [ - "english" - ]; - var explain = [ - "english" - ]; - var expose = [ - "english" - ]; - var express = [ - "english" - ]; - var extend = [ - "english" - ]; - var extra = [ - "english" - ]; - var eye = [ - "english" - ]; - var eyebrow = [ - "english" - ]; - var fabric = [ - "english" - ]; - var face = [ - "english" - ]; - var faculty = [ - "english" - ]; - var fade = [ - "english" - ]; - var faint = [ - "english" - ]; - var faith = [ - "english" - ]; - var fall = [ - "english" - ]; - var fame = [ - "english" - ]; - var family = [ - "english" - ]; - var famous = [ - "english" - ]; - var fan = [ - "english" - ]; - var fancy = [ - "english" - ]; - var fantasy = [ - "english" - ]; - var farm = [ - "english" - ]; - var fashion = [ - "english" - ]; - var fat = [ - "english" - ]; - var fatal = [ - "english", - "french" - ]; - var father = [ - "english" - ]; - var fatigue = [ - "english", - "french" - ]; - var fault = [ - "english" - ]; - var favorite = [ - "english" - ]; - var feature = [ - "english" - ]; - var february = [ - "english" - ]; - var federal = [ - "english", - "turkish" - ]; - var fee = [ - "english" - ]; - var feed = [ - "english" - ]; - var feel = [ - "english" - ]; - var female = [ - "english" - ]; - var fence = [ - "english" - ]; - var festival = [ - "english", - "french", - "turkish" - ]; - var fetch = [ - "english" - ]; - var fever = [ - "english" - ]; - var few = [ - "english" - ]; - var fiber = [ - "english" - ]; - var fiction = [ - "english" - ]; - var field = [ - "english" - ]; - var figure = [ - "english", - "french" - ]; - var file = [ - "english" - ]; - var film = [ - "english" - ]; - var filter = [ - "english" - ]; - var final = [ - "english" - ]; - var find = [ - "english" - ]; - var fine = [ - "english" - ]; - var finger = [ - "english" - ]; - var finish = [ - "english" - ]; - var fire = [ - "english" - ]; - var firm = [ - "english" - ]; - var first = [ - "english" - ]; - var fiscal = [ - "english" - ]; - var fish = [ - "english" - ]; - var fit = [ - "english" - ]; - var fitness = [ - "english" - ]; - var fix = [ - "english" - ]; - var flag = [ - "english" - ]; - var flame = [ - "english" - ]; - var flash = [ - "english" - ]; - var flat = [ - "english" - ]; - var flavor = [ - "english" - ]; - var flee = [ - "english" - ]; - var flight = [ - "english" - ]; - var flip = [ - "english" - ]; - var float = [ - "english" - ]; - var flock = [ - "english" - ]; - var floor = [ - "english" - ]; - var flower = [ - "english" - ]; - var fluid = [ - "english" - ]; - var flush = [ - "english" - ]; - var fly = [ - "english" - ]; - var foam = [ - "english" - ]; - var focus = [ - "english" - ]; - var fog = [ - "english" - ]; - var foil = [ - "english" - ]; - var fold = [ - "english" - ]; - var follow = [ - "english" - ]; - var food = [ - "english" - ]; - var foot = [ - "english" - ]; - var force = [ - "english" - ]; - var forest = [ - "english" - ]; - var forget = [ - "english" - ]; - var fork = [ - "english" - ]; - var fortune = [ - "english", - "french" - ]; - var forum = [ - "english" - ]; - var forward = [ - "english" - ]; - var fossil = [ - "english" - ]; - var foster = [ - "english" - ]; - var found = [ - "english" - ]; - var fox = [ - "english" - ]; - var fragile = [ - "english", - "french" - ]; - var frame = [ - "english" - ]; - var frequent = [ - "english" - ]; - var fresh = [ - "english" - ]; - var friend = [ - "english" - ]; - var fringe = [ - "english" - ]; - var frog = [ - "english" - ]; - var front = [ - "english" - ]; - var frost = [ - "english" - ]; - var frown = [ - "english" - ]; - var frozen = [ - "english" - ]; - var fruit = [ - "english", - "french" - ]; - var fuel = [ - "english" - ]; - var fun = [ - "english" - ]; - var funny = [ - "english" - ]; - var furnace = [ - "english" - ]; - var fury = [ - "english" - ]; - var future = [ - "english" - ]; - var gadget = [ - "english" - ]; - var gain = [ - "english" - ]; - var galaxy = [ - "english" - ]; - var gallery = [ - "english" - ]; - var game = [ - "english" - ]; - var gap = [ - "english" - ]; - var garage = [ - "english" - ]; - var garbage = [ - "english" - ]; - var garden = [ - "english" - ]; - var garlic = [ - "english" - ]; - var garment = [ - "english" - ]; - var gas = [ - "english" - ]; - var gasp = [ - "english" - ]; - var gate = [ - "english" - ]; - var gather = [ - "english" - ]; - var gauge = [ - "english" - ]; - var gaze = [ - "english" - ]; - var general = [ - "english" - ]; - var genius = [ - "english" - ]; - var genre = [ - "english" - ]; - var gentle = [ - "english" - ]; - var genuine = [ - "english" - ]; - var gesture = [ - "english" - ]; - var ghost = [ - "english" - ]; - var giant = [ - "english" - ]; - var gift = [ - "english" - ]; - var giggle = [ - "english" - ]; - var ginger = [ - "english" - ]; - var giraffe = [ - "english" - ]; - var girl = [ - "english" - ]; - var give = [ - "english" - ]; - var glad = [ - "english" - ]; - var glance = [ - "english" - ]; - var glare = [ - "english" - ]; - var glass = [ - "english" - ]; - var glide = [ - "english" - ]; - var glimpse = [ - "english" - ]; - var globe = [ - "english", - "french" - ]; - var gloom = [ - "english" - ]; - var glory = [ - "english" - ]; - var glove = [ - "english" - ]; - var glow = [ - "english" - ]; - var glue = [ - "english" - ]; - var goat = [ - "english" - ]; - var goddess = [ - "english" - ]; - var gold = [ - "english" - ]; - var good = [ - "english" - ]; - var goose = [ - "english" - ]; - var gorilla = [ - "english" - ]; - var gospel = [ - "english" - ]; - var gossip = [ - "english" - ]; - var govern = [ - "english" - ]; - var gown = [ - "english" - ]; - var grab = [ - "english" - ]; - var grace = [ - "english" - ]; - var grain = [ - "english" - ]; - var grant = [ - "english" - ]; - var grape = [ - "english" - ]; - var grass = [ - "english" - ]; - var gravity = [ - "english" - ]; - var great = [ - "english" - ]; - var green = [ - "english" - ]; - var grid = [ - "english" - ]; - var grief = [ - "english" - ]; - var grit = [ - "english" - ]; - var grocery = [ - "english" - ]; - var group = [ - "english" - ]; - var grow = [ - "english" - ]; - var grunt = [ - "english" - ]; - var guard$1 = [ - "english" - ]; - var guess = [ - "english" - ]; - var guide = [ - "english", - "french" - ]; - var guilt = [ - "english" - ]; - var guitar = [ - "english" - ]; - var gun = [ - "english" - ]; - var gym = [ - "english" - ]; - var habit = [ - "english" - ]; - var hair = [ - "english" - ]; - var half = [ - "english" - ]; - var hammer = [ - "english" - ]; - var hamster = [ - "english" - ]; - var hand = [ - "english" - ]; - var happy = [ - "english" - ]; - var harbor = [ - "english" - ]; - var hard = [ - "english" - ]; - var harsh = [ - "english" - ]; - var harvest = [ - "english" - ]; - var hat = [ - "english" - ]; - var have = [ - "english" - ]; - var hawk = [ - "english" - ]; - var hazard = [ - "english" - ]; - var head = [ - "english" - ]; - var health = [ - "english" - ]; - var heart = [ - "english" - ]; - var heavy = [ - "english" - ]; - var hedgehog = [ - "english" - ]; - var height = [ - "english" - ]; - var hello = [ - "english" - ]; - var helmet = [ - "english" - ]; - var help = [ - "english" - ]; - var hen = [ - "english" - ]; - var hero = [ - "english" - ]; - var hidden = [ - "english" - ]; - var high = [ - "english" - ]; - var hill = [ - "english" - ]; - var hint = [ - "english" - ]; - var hip = [ - "english" - ]; - var hire = [ - "english" - ]; - var history = [ - "english" - ]; - var hobby = [ - "english" - ]; - var hockey = [ - "english" - ]; - var hold = [ - "english" - ]; - var hole = [ - "english" - ]; - var holiday = [ - "english" - ]; - var hollow = [ - "english" - ]; - var home = [ - "english" - ]; - var honey = [ - "english" - ]; - var hood = [ - "english" - ]; - var hope = [ - "english" - ]; - var horn = [ - "english" - ]; - var horror = [ - "english" - ]; - var horse = [ - "english" - ]; - var hospital = [ - "english" - ]; - var host = [ - "english" - ]; - var hotel = [ - "english" - ]; - var hour = [ - "english" - ]; - var hover = [ - "english" - ]; - var hub = [ - "english" - ]; - var huge = [ - "english" - ]; - var human = [ - "english" - ]; - var humble = [ - "english", - "french" - ]; - var humor = [ - "english" - ]; - var hundred = [ - "english" - ]; - var hungry = [ - "english" - ]; - var hunt = [ - "english" - ]; - var hurdle = [ - "english" - ]; - var hurry = [ - "english" - ]; - var hurt = [ - "english" - ]; - var husband = [ - "english" - ]; - var hybrid = [ - "english" - ]; - var ice = [ - "english" - ]; - var icon = [ - "english" - ]; - var idea = [ - "english" - ]; - var identify = [ - "english" - ]; - var idle = [ - "english" - ]; - var ignore = [ - "english" - ]; - var ill = [ - "english" - ]; - var illegal = [ - "english" - ]; - var illness = [ - "english" - ]; - var image = [ - "english", - "french" - ]; - var imitate = [ - "english" - ]; - var immense = [ - "english", - "french" - ]; - var immune = [ - "english" - ]; - var impact = [ - "english", - "french" - ]; - var impose = [ - "english" - ]; - var improve = [ - "english" - ]; - var impulse = [ - "english" - ]; - var inch = [ - "english" - ]; - var include = [ - "english" - ]; - var income = [ - "english" - ]; - var increase = [ - "english" - ]; - var index$1 = [ - "english" - ]; - var indicate = [ - "english" - ]; - var indoor = [ - "english" - ]; - var industry = [ - "english" - ]; - var infant = [ - "english" - ]; - var inflict = [ - "english" - ]; - var inform = [ - "english" - ]; - var inhale = [ - "english" - ]; - var inherit = [ - "english" - ]; - var initial = [ - "english" - ]; - var inject = [ - "english" - ]; - var injury = [ - "english" - ]; - var inmate = [ - "english" - ]; - var inner = [ - "english" - ]; - var innocent = [ - "english", - "french" - ]; - var input = [ - "english" - ]; - var inquiry = [ - "english" - ]; - var insane = [ - "english" - ]; - var insect = [ - "english" - ]; - var inside = [ - "english" - ]; - var inspire = [ - "english" - ]; - var install = [ - "english" - ]; - var intact = [ - "english", - "french" - ]; - var interest = [ - "english" - ]; - var into = [ - "english" - ]; - var invest = [ - "english" - ]; - var invite = [ - "english" - ]; - var involve = [ - "english" - ]; - var iron = [ - "english" - ]; - var island = [ - "english" - ]; - var isolate = [ - "english" - ]; - var issue = [ - "english" - ]; - var item = [ - "english" - ]; - var ivory = [ - "english" - ]; - var jacket = [ - "english" - ]; - var jaguar = [ - "english", - "french" - ]; - var jar = [ - "english" - ]; - var jazz = [ - "english" - ]; - var jealous = [ - "english" - ]; - var jeans = [ - "english" - ]; - var jelly = [ - "english" - ]; - var jewel = [ - "english" - ]; - var job = [ - "english" - ]; - var join = [ - "english" - ]; - var joke = [ - "english" - ]; - var journey = [ - "english" - ]; - var joy = [ - "english" - ]; - var judge = [ - "english" - ]; - var juice = [ - "english" - ]; - var jump = [ - "english" - ]; - var jungle = [ - "english" - ]; - var junior = [ - "english", - "french" - ]; - var junk = [ - "english" - ]; - var just = [ - "english" - ]; - var kangaroo = [ - "english" - ]; - var keen = [ - "english" - ]; - var keep = [ - "english" - ]; - var ketchup = [ - "english" - ]; - var key = [ - "english" - ]; - var kick = [ - "english" - ]; - var kid = [ - "english" - ]; - var kidney = [ - "english" - ]; - var kind = [ - "english" - ]; - var kingdom = [ - "english" - ]; - var kiss = [ - "english" - ]; - var kit = [ - "english" - ]; - var kitchen = [ - "english" - ]; - var kite = [ - "english" - ]; - var kitten = [ - "english" - ]; - var kiwi = [ - "english" - ]; - var knee = [ - "english" - ]; - var knife = [ - "english" - ]; - var knock = [ - "english" - ]; - var know = [ - "english" - ]; - var lab = [ - "english" - ]; - var label = [ - "english", - "french" - ]; - var labor = [ - "english" - ]; - var ladder = [ - "english" - ]; - var lady = [ - "english" - ]; - var lake = [ - "english" - ]; - var lamp = [ - "english" - ]; - var language = [ - "english" - ]; - var laptop = [ - "english" - ]; - var large = [ - "english" - ]; - var later = [ - "english" - ]; - var latin = [ - "english" - ]; - var laugh = [ - "english" - ]; - var laundry = [ - "english" - ]; - var lava = [ - "english" - ]; - var law = [ - "english" - ]; - var lawn = [ - "english" - ]; - var lawsuit = [ - "english" - ]; - var layer = [ - "english" - ]; - var lazy = [ - "english" - ]; - var leader = [ - "english" - ]; - var leaf = [ - "english" - ]; - var learn = [ - "english" - ]; - var leave = [ - "english" - ]; - var lecture = [ - "english", - "french" - ]; - var left = [ - "english" - ]; - var leg = [ - "english" - ]; - var legal = [ - "english" - ]; - var legend = [ - "english" - ]; - var leisure = [ - "english" - ]; - var lemon = [ - "english" - ]; - var lend = [ - "english" - ]; - var length = [ - "english" - ]; - var lens = [ - "english" - ]; - var leopard = [ - "english" - ]; - var lesson = [ - "english" - ]; - var letter = [ - "english" - ]; - var level = [ - "english" - ]; - var liar = [ - "english" - ]; - var liberty = [ - "english" - ]; - var library = [ - "english" - ]; - var license = [ - "english" - ]; - var life = [ - "english" - ]; - var lift = [ - "english" - ]; - var light = [ - "english" - ]; - var like = [ - "english" - ]; - var limb = [ - "english" - ]; - var limit = [ - "english" - ]; - var link = [ - "english" - ]; - var lion = [ - "english" - ]; - var liquid = [ - "english" - ]; - var list = [ - "english" - ]; - var little = [ - "english" - ]; - var live = [ - "english" - ]; - var lizard = [ - "english" - ]; - var load = [ - "english" - ]; - var loan = [ - "english" - ]; - var lobster = [ - "english" - ]; - var local = [ - "english" - ]; - var lock = [ - "english" - ]; - var logic = [ - "english" - ]; - var lonely = [ - "english" - ]; - var long = [ - "english" - ]; - var loop = [ - "english" - ]; - var lottery = [ - "english" - ]; - var loud = [ - "english" - ]; - var lounge = [ - "english" - ]; - var love = [ - "english" - ]; - var loyal = [ - "english", - "french" - ]; - var lucky = [ - "english" - ]; - var luggage = [ - "english" - ]; - var lumber = [ - "english" - ]; - var lunar = [ - "english" - ]; - var lunch = [ - "english" - ]; - var luxury = [ - "english" - ]; - var lyrics = [ - "english" - ]; - var machine = [ - "english", - "french" - ]; - var mad = [ - "english" - ]; - var magic = [ - "english" - ]; - var magnet = [ - "english" - ]; - var maid = [ - "english" - ]; - var mail = [ - "english" - ]; - var main = [ - "english" - ]; - var major = [ - "english" - ]; - var make = [ - "english" - ]; - var mammal = [ - "english" - ]; - var man = [ - "english" - ]; - var manage = [ - "english" - ]; - var mandate = [ - "english" - ]; - var mango = [ - "english" - ]; - var mansion = [ - "english" - ]; - var manual = [ - "english" - ]; - var maple = [ - "english" - ]; - var marble = [ - "english" - ]; - var march = [ - "english" - ]; - var margin = [ - "english" - ]; - var marine = [ - "english" - ]; - var market = [ - "english", - "turkish" - ]; - var marriage = [ - "english" - ]; - var mask = [ - "english" - ]; - var mass = [ - "english" - ]; - var master = [ - "english" - ]; - var match = [ - "english" - ]; - var material = [ - "english" - ]; - var math = [ - "english" - ]; - var matrix = [ - "english" - ]; - var matter = [ - "english" - ]; - var maximum = [ - "english" - ]; - var maze = [ - "english" - ]; - var meadow = [ - "english" - ]; - var mean = [ - "english" - ]; - var measure = [ - "english" - ]; - var meat = [ - "english" - ]; - var mechanic = [ - "english" - ]; - var medal = [ - "english" - ]; - var media = [ - "english" - ]; - var melody = [ - "english" - ]; - var melt = [ - "english" - ]; - var member = [ - "english" - ]; - var memory = [ - "english" - ]; - var mention = [ - "english" - ]; - var menu = [ - "english" - ]; - var mercy = [ - "english" - ]; - var merge = [ - "english" - ]; - var merit = [ - "english" - ]; - var merry = [ - "english" - ]; - var mesh = [ - "english" - ]; - var message = [ - "english" - ]; - var metal = [ - "english" - ]; - var method = [ - "english" - ]; - var middle = [ - "english" - ]; - var midnight = [ - "english" - ]; - var milk = [ - "english" - ]; - var million = [ - "english", - "french" - ]; - var mimic = [ - "english" - ]; - var mind = [ - "english" - ]; - var minimum = [ - "english" - ]; - var minor = [ - "english" - ]; - var minute = [ - "english", - "french" - ]; - var miracle = [ - "english", - "french" - ]; - var mirror = [ - "english" - ]; - var misery = [ - "english" - ]; - var miss = [ - "english" - ]; - var mistake = [ - "english" - ]; - var mix = [ - "english" - ]; - var mixed = [ - "english" - ]; - var mixture = [ - "english" - ]; - var mobile = [ - "english", - "french" - ]; - var model = [ - "english", - "turkish" - ]; - var modify = [ - "english" - ]; - var mom = [ - "english" - ]; - var moment = [ - "english" - ]; - var monitor = [ - "english" - ]; - var monkey = [ - "english" - ]; - var monster = [ - "english" - ]; - var month = [ - "english" - ]; - var moon = [ - "english" - ]; - var moral = [ - "english" - ]; - var more = [ - "english" - ]; - var morning = [ - "english" - ]; - var mosquito = [ - "english" - ]; - var mother = [ - "english" - ]; - var motion = [ - "english" - ]; - var motor = [ - "english", - "turkish" - ]; - var mountain = [ - "english" - ]; - var mouse = [ - "english" - ]; - var move = [ - "english" - ]; - var movie = [ - "english" - ]; - var much = [ - "english" - ]; - var muffin = [ - "english" - ]; - var mule = [ - "english" - ]; - var multiply = [ - "english" - ]; - var muscle = [ - "english", - "french" - ]; - var museum = [ - "english" - ]; - var mushroom = [ - "english" - ]; - var music = [ - "english" - ]; - var must = [ - "english" - ]; - var mutual = [ - "english" - ]; - var myself = [ - "english" - ]; - var mystery = [ - "english" - ]; - var myth = [ - "english" - ]; - var naive = [ - "english" - ]; - var name = [ - "english" - ]; - var napkin = [ - "english" - ]; - var narrow = [ - "english" - ]; - var nasty = [ - "english" - ]; - var nation = [ - "english", - "french" - ]; - var nature = [ - "english", - "french" - ]; - var near = [ - "english" - ]; - var neck = [ - "english" - ]; - var need = [ - "english" - ]; - var negative = [ - "english" - ]; - var neglect = [ - "english" - ]; - var neither = [ - "english" - ]; - var nephew = [ - "english" - ]; - var nerve = [ - "english" - ]; - var nest = [ - "english" - ]; - var net = [ - "english" - ]; - var network = [ - "english" - ]; - var neutral = [ - "english" - ]; - var never = [ - "english" - ]; - var news = [ - "english" - ]; - var next = [ - "english" - ]; - var nice = [ - "english" - ]; - var night = [ - "english" - ]; - var noble = [ - "english", - "french" - ]; - var noise = [ - "english" - ]; - var nominee = [ - "english" - ]; - var noodle = [ - "english" - ]; - var normal = [ - "english", - "turkish" - ]; - var north = [ - "english" - ]; - var nose = [ - "english" - ]; - var notable = [ - "english", - "french" - ]; - var note = [ - "english" - ]; - var nothing = [ - "english" - ]; - var notice = [ - "english" - ]; - var novel = [ - "english" - ]; - var now = [ - "english" - ]; - var nuclear = [ - "english" - ]; - var number$1 = [ - "english" - ]; - var nurse = [ - "english" - ]; - var nut = [ - "english" - ]; - var oak = [ - "english" - ]; - var obey = [ - "english" - ]; - var object = [ - "english" - ]; - var oblige = [ - "english" - ]; - var obscure = [ - "english" - ]; - var observe = [ - "english" - ]; - var obtain = [ - "english" - ]; - var obvious = [ - "english" - ]; - var occur = [ - "english" - ]; - var ocean = [ - "english" - ]; - var october = [ - "english" - ]; - var odor = [ - "english" - ]; - var off = [ - "english" - ]; - var offer = [ - "english" - ]; - var office = [ - "english" - ]; - var often = [ - "english" - ]; - var oil = [ - "english" - ]; - var okay = [ - "english" - ]; - var old = [ - "english" - ]; - var olive = [ - "english" - ]; - var olympic = [ - "english" - ]; - var omit = [ - "english" - ]; - var once = [ - "english" - ]; - var one = [ - "english" - ]; - var onion = [ - "english" - ]; - var online = [ - "english" - ]; - var only = [ - "english" - ]; - var open = [ - "english" - ]; - var opera = [ - "english", - "turkish" - ]; - var opinion = [ - "english", - "french" - ]; - var oppose = [ - "english" - ]; - var option = [ - "english" - ]; - var orange = [ - "english", - "french" - ]; - var orbit = [ - "english" - ]; - var orchard = [ - "english" - ]; - var order = [ - "english" - ]; - var ordinary = [ - "english" - ]; - var organ = [ - "english" - ]; - var orient = [ - "english" - ]; - var original = [ - "english" - ]; - var orphan = [ - "english" - ]; - var ostrich = [ - "english" - ]; - var other = [ - "english" - ]; - var outdoor = [ - "english" - ]; - var outer = [ - "english" - ]; - var output = [ - "english" - ]; - var outside = [ - "english" - ]; - var oval = [ - "english" - ]; - var oven = [ - "english" - ]; - var over = [ - "english" - ]; - var own = [ - "english" - ]; - var owner = [ - "english" - ]; - var oxygen = [ - "english" - ]; - var oyster = [ - "english" - ]; - var ozone = [ - "english", - "french" - ]; - var pact = [ - "english" - ]; - var paddle = [ - "english" - ]; - var page = [ - "english" - ]; - var pair = [ - "english" - ]; - var palace = [ - "english", - "french" - ]; - var palm = [ - "english" - ]; - var panda = [ - "english", - "french", - "turkish" - ]; - var panel = [ - "english", - "turkish" - ]; - var panic = [ - "english" - ]; - var panther = [ - "english" - ]; - var paper = [ - "english" - ]; - var parade = [ - "english" - ]; - var parent = [ - "english" - ]; - var park = [ - "english" - ]; - var parrot = [ - "english" - ]; - var party = [ - "english" - ]; - var pass = [ - "english" - ]; - var patch = [ - "english" - ]; - var path = [ - "english" - ]; - var patient = [ - "english" - ]; - var patrol = [ - "english" - ]; - var pattern = [ - "english" - ]; - var pause = [ - "english" - ]; - var pave = [ - "english" - ]; - var payment = [ - "english" - ]; - var peace = [ - "english" - ]; - var peanut = [ - "english" - ]; - var pear = [ - "english" - ]; - var peasant = [ - "english" - ]; - var pelican = [ - "english" - ]; - var pen = [ - "english" - ]; - var penalty = [ - "english" - ]; - var pencil = [ - "english" - ]; - var people = [ - "english" - ]; - var pepper = [ - "english" - ]; - var perfect = [ - "english" - ]; - var permit = [ - "english" - ]; - var person = [ - "english" - ]; - var pet = [ - "english" - ]; - var phone = [ - "english" - ]; - var photo = [ - "english" - ]; - var phrase = [ - "english", - "french" - ]; - var physical = [ - "english" - ]; - var piano = [ - "english", - "french" - ]; - var picnic = [ - "english" - ]; - var picture = [ - "english" - ]; - var piece = [ - "english" - ]; - var pig = [ - "english" - ]; - var pigeon = [ - "english" - ]; - var pill = [ - "english" - ]; - var pilot = [ - "english", - "turkish" - ]; - var pink = [ - "english" - ]; - var pioneer = [ - "english" - ]; - var pipe = [ - "english" - ]; - var pistol = [ - "english" - ]; - var pitch = [ - "english" - ]; - var pizza = [ - "english", - "french" - ]; - var place = [ - "english" - ]; - var planet = [ - "english" - ]; - var plastic = [ - "english" - ]; - var plate = [ - "english" - ]; - var play = [ - "english" - ]; - var please = [ - "english" - ]; - var pledge = [ - "english" - ]; - var pluck = [ - "english" - ]; - var plug = [ - "english" - ]; - var plunge = [ - "english" - ]; - var poem = [ - "english" - ]; - var poet = [ - "english" - ]; - var point = [ - "english" - ]; - var polar = [ - "english" - ]; - var pole = [ - "english" - ]; - var police = [ - "english" - ]; - var pond = [ - "english" - ]; - var pony = [ - "english" - ]; - var pool = [ - "english" - ]; - var popular = [ - "english" - ]; - var portion = [ - "english" - ]; - var position = [ - "english", - "french" - ]; - var possible = [ - "english" - ]; - var post = [ - "english" - ]; - var potato = [ - "english" - ]; - var pottery = [ - "english" - ]; - var poverty = [ - "english" - ]; - var powder = [ - "english" - ]; - var power = [ - "english" - ]; - var practice = [ - "english" - ]; - var praise = [ - "english" - ]; - var predict = [ - "english" - ]; - var prefer = [ - "english" - ]; - var prepare = [ - "english" - ]; - var present = [ - "english" - ]; - var pretty = [ - "english" - ]; - var prevent = [ - "english" - ]; - var price = [ - "english" - ]; - var pride = [ - "english" - ]; - var primary = [ - "english" - ]; - var print$1 = [ - "english" - ]; - var priority = [ - "english" - ]; - var prison = [ - "english", - "french" - ]; - var prize = [ - "english" - ]; - var problem = [ - "english", - "turkish" - ]; - var process$1 = [ - "english" - ]; - var produce = [ - "english" - ]; - var profit = [ - "english" - ]; - var program = [ - "english", - "turkish" - ]; - var project = [ - "english" - ]; - var promote = [ - "english" - ]; - var proof = [ - "english" - ]; - var property = [ - "english" - ]; - var prosper = [ - "english" - ]; - var protect = [ - "english" - ]; - var proud = [ - "english" - ]; - var provide = [ - "english" - ]; - var pudding = [ - "english" - ]; - var pull = [ - "english" - ]; - var pulp = [ - "english" - ]; - var pulse = [ - "english" - ]; - var pumpkin = [ - "english" - ]; - var punch = [ - "english" - ]; - var pupil = [ - "english" - ]; - var puppy = [ - "english" - ]; - var purchase = [ - "english" - ]; - var purity = [ - "english" - ]; - var purpose = [ - "english" - ]; - var purse = [ - "english" - ]; - var push = [ - "english" - ]; - var put = [ - "english" - ]; - var puzzle = [ - "english", - "french" - ]; - var pyramid = [ - "english" - ]; - var quality = [ - "english" - ]; - var quantum = [ - "english" - ]; - var quarter = [ - "english" - ]; - var question = [ - "english", - "french" - ]; - var quick = [ - "english" - ]; - var quit = [ - "english" - ]; - var quiz = [ - "english" - ]; - var quote = [ - "english" - ]; - var rabbit = [ - "english" - ]; - var raccoon = [ - "english" - ]; - var race = [ - "english" - ]; - var rack = [ - "english" - ]; - var radar = [ - "english", - "turkish" - ]; - var radio = [ - "english" - ]; - var rail = [ - "english" - ]; - var rain = [ - "english" - ]; - var raise = [ - "english" - ]; - var rally = [ - "english" - ]; - var ramp = [ - "english" - ]; - var ranch = [ - "english" - ]; - var random = [ - "english" - ]; - var range$1 = [ - "english" - ]; - var rapid = [ - "english" - ]; - var rare = [ - "english" - ]; - var rate = [ - "english" - ]; - var rather = [ - "english" - ]; - var raven = [ - "english" - ]; - var raw = [ - "english" - ]; - var razor = [ - "english" - ]; - var ready = [ - "english" - ]; - var real = [ - "english" - ]; - var reason = [ - "english" - ]; - var rebel = [ - "english" - ]; - var rebuild = [ - "english" - ]; - var recall = [ - "english" - ]; - var receive = [ - "english" - ]; - var recipe = [ - "english" - ]; - var record = [ - "english" - ]; - var recycle = [ - "english" - ]; - var reduce = [ - "english" - ]; - var reflect = [ - "english" - ]; - var reform = [ - "english", - "turkish" - ]; - var refuse = [ - "english" - ]; - var region = [ - "english" - ]; - var regret = [ - "english" - ]; - var regular = [ - "english" - ]; - var reject = [ - "english" - ]; - var relax = [ - "english" - ]; - var release = [ - "english" - ]; - var relief = [ - "english", - "french" - ]; - var rely = [ - "english" - ]; - var remain = [ - "english" - ]; - var remember = [ - "english" - ]; - var remind = [ - "english" - ]; - var remove = [ - "english" - ]; - var render = [ - "english" - ]; - var renew = [ - "english" - ]; - var rent = [ - "english" - ]; - var reopen = [ - "english" - ]; - var repair = [ - "english" - ]; - var repeat = [ - "english" - ]; - var replace = [ - "english" - ]; - var report = [ - "english" - ]; - var require$1 = [ - "english" - ]; - var rescue = [ - "english" - ]; - var resemble = [ - "english" - ]; - var resist = [ - "english" - ]; - var resource = [ - "english" - ]; - var response = [ - "english" - ]; - var result = [ - "english" - ]; - var retire = [ - "english" - ]; - var retreat = [ - "english" - ]; - var reunion = [ - "english" - ]; - var reveal = [ - "english" - ]; - var review = [ - "english" - ]; - var reward = [ - "english" - ]; - var rhythm = [ - "english" - ]; - var rib = [ - "english" - ]; - var ribbon = [ - "english" - ]; - var rice = [ - "english" - ]; - var rich = [ - "english" - ]; - var ride = [ - "english" - ]; - var ridge = [ - "english" - ]; - var rifle = [ - "english" - ]; - var right = [ - "english" - ]; - var rigid = [ - "english" - ]; - var ring = [ - "english" - ]; - var riot = [ - "english" - ]; - var ripple = [ - "english" - ]; - var risk = [ - "english" - ]; - var ritual = [ - "english" - ]; - var rival = [ - "english", - "french" - ]; - var river = [ - "english" - ]; - var road = [ - "english" - ]; - var roast = [ - "english" - ]; - var robot = [ - "english", - "turkish" - ]; - var robust = [ - "english" - ]; - var rocket = [ - "english" - ]; - var romance = [ - "english", - "french" - ]; - var roof = [ - "english" - ]; - var rookie = [ - "english" - ]; - var room = [ - "english" - ]; - var rose = [ - "english" - ]; - var rotate = [ - "english" - ]; - var rough = [ - "english" - ]; - var round = [ - "english" - ]; - var route = [ - "english" - ]; - var royal = [ - "english" - ]; - var rubber = [ - "english" - ]; - var rude = [ - "english" - ]; - var rug = [ - "english" - ]; - var rule = [ - "english" - ]; - var run = [ - "english" - ]; - var runway = [ - "english" - ]; - var rural = [ - "english" - ]; - var sad = [ - "english" - ]; - var saddle = [ - "english" - ]; - var sadness = [ - "english" - ]; - var safe = [ - "english" - ]; - var sail = [ - "english" - ]; - var salad = [ - "english" - ]; - var salmon = [ - "english" - ]; - var salon = [ - "english", - "french", - "turkish" - ]; - var salt = [ - "english" - ]; - var salute = [ - "english" - ]; - var same = [ - "english" - ]; - var sample = [ - "english" - ]; - var sand = [ - "english" - ]; - var satisfy = [ - "english" - ]; - var satoshi = [ - "english" - ]; - var sauce = [ - "english" - ]; - var sausage = [ - "english" - ]; - var save = [ - "english" - ]; - var say = [ - "english" - ]; - var scale = [ - "english" - ]; - var scan = [ - "english" - ]; - var scare = [ - "english" - ]; - var scatter = [ - "english" - ]; - var scene = [ - "english" - ]; - var scheme = [ - "english" - ]; - var school = [ - "english" - ]; - var science = [ - "english", - "french" - ]; - var scissors = [ - "english" - ]; - var scorpion = [ - "english" - ]; - var scout = [ - "english" - ]; - var scrap = [ - "english" - ]; - var screen = [ - "english" - ]; - var script = [ - "english" - ]; - var scrub = [ - "english" - ]; - var sea = [ - "english" - ]; - var search = [ - "english" - ]; - var season = [ - "english" - ]; - var seat = [ - "english" - ]; - var second = [ - "english" - ]; - var secret = [ - "english" - ]; - var section = [ - "english" - ]; - var security = [ - "english" - ]; - var seed = [ - "english" - ]; - var seek = [ - "english" - ]; - var segment = [ - "english" - ]; - var select = [ - "english" - ]; - var sell = [ - "english" - ]; - var seminar = [ - "english" - ]; - var senior = [ - "english" - ]; - var sense = [ - "english" - ]; - var sentence = [ - "english", - "french" - ]; - var series = [ - "english" - ]; - var service = [ - "english", - "french" - ]; - var session = [ - "english" - ]; - var settle = [ - "english" - ]; - var setup = [ - "english" - ]; - var seven = [ - "english" - ]; - var shadow = [ - "english" - ]; - var shaft = [ - "english" - ]; - var shallow = [ - "english" - ]; - var share = [ - "english" - ]; - var shed = [ - "english" - ]; - var shell = [ - "english" - ]; - var sheriff = [ - "english" - ]; - var shield = [ - "english" - ]; - var shift = [ - "english" - ]; - var shine = [ - "english" - ]; - var ship = [ - "english" - ]; - var shiver = [ - "english" - ]; - var shock = [ - "english" - ]; - var shoe = [ - "english" - ]; - var shoot = [ - "english" - ]; - var shop = [ - "english" - ]; - var short = [ - "english" - ]; - var shoulder = [ - "english" - ]; - var shove = [ - "english" - ]; - var shrimp = [ - "english" - ]; - var shrug = [ - "english" - ]; - var shuffle = [ - "english" - ]; - var shy = [ - "english" - ]; - var sibling = [ - "english" - ]; - var sick = [ - "english" - ]; - var side = [ - "english" - ]; - var siege = [ - "english" - ]; - var sight = [ - "english" - ]; - var sign = [ - "english" - ]; - var silent = [ - "english" - ]; - var silk = [ - "english" - ]; - var silly = [ - "english" - ]; - var silver = [ - "english" - ]; - var similar = [ - "english" - ]; - var simple = [ - "english", - "french" - ]; - var since = [ - "english" - ]; - var sing = [ - "english" - ]; - var siren = [ - "english" - ]; - var sister = [ - "english" - ]; - var situate = [ - "english" - ]; - var six = [ - "english" - ]; - var size = [ - "english" - ]; - var skate = [ - "english" - ]; - var sketch = [ - "english" - ]; - var ski = [ - "english" - ]; - var skill = [ - "english" - ]; - var skin = [ - "english" - ]; - var skirt = [ - "english" - ]; - var skull = [ - "english" - ]; - var slab = [ - "english" - ]; - var slam = [ - "english" - ]; - var sleep = [ - "english" - ]; - var slender = [ - "english" - ]; - var slice = [ - "english" - ]; - var slide = [ - "english" - ]; - var slight = [ - "english" - ]; - var slim = [ - "english" - ]; - var slogan = [ - "english", - "turkish" - ]; - var slot = [ - "english" - ]; - var slow = [ - "english" - ]; - var slush = [ - "english" - ]; - var small = [ - "english" - ]; - var smart = [ - "english" - ]; - var smile = [ - "english" - ]; - var smoke = [ - "english" - ]; - var smooth = [ - "english" - ]; - var snack = [ - "english" - ]; - var snake = [ - "english" - ]; - var snap = [ - "english" - ]; - var sniff = [ - "english" - ]; - var snow = [ - "english" - ]; - var soap = [ - "english" - ]; - var soccer = [ - "english" - ]; - var social = [ - "english", - "french" - ]; - var sock = [ - "english" - ]; - var soda = [ - "english" - ]; - var soft = [ - "english" - ]; - var solar = [ - "english" - ]; - var soldier = [ - "english" - ]; - var solid = [ - "english" - ]; - var solution = [ - "english" - ]; - var solve = [ - "english" - ]; - var someone = [ - "english" - ]; - var song = [ - "english" - ]; - var soon = [ - "english" - ]; - var sorry = [ - "english" - ]; - var sort = [ - "english" - ]; - var soul = [ - "english" - ]; - var sound = [ - "english" - ]; - var soup = [ - "english" - ]; - var source = [ - "english", - "french" - ]; - var south = [ - "english" - ]; - var space = [ - "english" - ]; - var spare = [ - "english" - ]; - var spatial = [ - "english", - "french" - ]; - var spawn = [ - "english" - ]; - var speak = [ - "english" - ]; - var special = [ - "english" - ]; - var speed = [ - "english" - ]; - var spell = [ - "english" - ]; - var spend = [ - "english" - ]; - var sphere = [ - "english" - ]; - var spice = [ - "english" - ]; - var spider = [ - "english" - ]; - var spike = [ - "english" - ]; - var spin = [ - "english" - ]; - var spirit = [ - "english" - ]; - var split = [ - "english" - ]; - var spoil = [ - "english" - ]; - var sponsor = [ - "english", - "turkish" - ]; - var spoon = [ - "english" - ]; - var sport = [ - "english" - ]; - var spot = [ - "english" - ]; - var spray = [ - "english" - ]; - var spread = [ - "english" - ]; - var spring = [ - "english" - ]; - var spy = [ - "english" - ]; - var square = [ - "english" - ]; - var squeeze = [ - "english" - ]; - var squirrel = [ - "english" - ]; - var stable = [ - "english", - "french" - ]; - var stadium = [ - "english" - ]; - var staff = [ - "english" - ]; - var stage = [ - "english" - ]; - var stairs = [ - "english" - ]; - var stamp = [ - "english" - ]; - var stand = [ - "english" - ]; - var start = [ - "english" - ]; - var state = [ - "english" - ]; - var stay = [ - "english" - ]; - var steak = [ - "english" - ]; - var steel = [ - "english" - ]; - var stem = [ - "english" - ]; - var step = [ - "english" - ]; - var stereo = [ - "english" - ]; - var stick = [ - "english" - ]; - var still = [ - "english" - ]; - var sting = [ - "english" - ]; - var stock = [ - "english" - ]; - var stomach = [ - "english" - ]; - var stone = [ - "english" - ]; - var stool = [ - "english" - ]; - var story = [ - "english" - ]; - var stove = [ - "english" - ]; - var strategy = [ - "english" - ]; - var street = [ - "english" - ]; - var strike = [ - "english" - ]; - var strong = [ - "english" - ]; - var struggle = [ - "english" - ]; - var student = [ - "english" - ]; - var stuff = [ - "english" - ]; - var stumble = [ - "english" - ]; - var style = [ - "english" - ]; - var subject = [ - "english" - ]; - var submit = [ - "english" - ]; - var subway = [ - "english" - ]; - var success = [ - "english" - ]; - var such = [ - "english" - ]; - var sudden = [ - "english" - ]; - var suffer = [ - "english" - ]; - var sugar = [ - "english" - ]; - var suggest = [ - "english" - ]; - var suit = [ - "english" - ]; - var summer = [ - "english" - ]; - var sun = [ - "english" - ]; - var sunny = [ - "english" - ]; - var sunset = [ - "english" - ]; - var supply = [ - "english" - ]; - var supreme = [ - "english" - ]; - var sure = [ - "english" - ]; - var surface = [ - "english", - "french" - ]; - var surge = [ - "english" - ]; - var surprise = [ - "english", - "french" - ]; - var surround = [ - "english" - ]; - var survey = [ - "english" - ]; - var suspect = [ - "english", - "french" - ]; - var sustain = [ - "english" - ]; - var swallow = [ - "english" - ]; - var swamp = [ - "english" - ]; - var swap = [ - "english" - ]; - var swarm = [ - "english" - ]; - var swear = [ - "english" - ]; - var sweet = [ - "english" - ]; - var swift = [ - "english" - ]; - var swim = [ - "english" - ]; - var swing = [ - "english" - ]; - var sword = [ - "english" - ]; - var symbol = [ - "english" - ]; - var symptom = [ - "english" - ]; - var syrup = [ - "english" - ]; - var system = [ - "english" - ]; - var table = [ - "english" - ]; - var tackle = [ - "english" - ]; - var tag = [ - "english" - ]; - var tail = [ - "english" - ]; - var talent = [ - "english", - "french" - ]; - var talk = [ - "english" - ]; - var tank = [ - "english" - ]; - var tape = [ - "english" - ]; - var target = [ - "english" - ]; - var task = [ - "english" - ]; - var taste = [ - "english" - ]; - var tattoo = [ - "english" - ]; - var taxi = [ - "english" - ]; - var teach = [ - "english" - ]; - var team = [ - "english" - ]; - var tell = [ - "english" - ]; - var ten = [ - "english" - ]; - var tenant = [ - "english" - ]; - var tennis = [ - "english" - ]; - var tent = [ - "english" - ]; - var term = [ - "english" - ]; - var test = [ - "english" - ]; - var text = [ - "english" - ]; - var thank = [ - "english" - ]; - var that = [ - "english" - ]; - var theme = [ - "english" - ]; - var then = [ - "english" - ]; - var theory = [ - "english" - ]; - var there = [ - "english" - ]; - var they = [ - "english" - ]; - var thing = [ - "english" - ]; - var thought = [ - "english" - ]; - var three = [ - "english" - ]; - var thrive = [ - "english" - ]; - var thumb = [ - "english" - ]; - var thunder = [ - "english" - ]; - var ticket = [ - "english" - ]; - var tide = [ - "english" - ]; - var tiger = [ - "english" - ]; - var tilt = [ - "english" - ]; - var timber = [ - "english" - ]; - var time$1 = [ - "english" - ]; - var tiny = [ - "english" - ]; - var tip = [ - "english" - ]; - var tired = [ - "english" - ]; - var tissue = [ - "english" - ]; - var title = [ - "english" - ]; - var toast = [ - "english" - ]; - var tobacco = [ - "english" - ]; - var today = [ - "english" - ]; - var toddler = [ - "english" - ]; - var toe = [ - "english" - ]; - var together = [ - "english" - ]; - var toilet = [ - "english" - ]; - var token = [ - "english" - ]; - var tomato = [ - "english" - ]; - var tomorrow = [ - "english" - ]; - var tone = [ - "english" - ]; - var tongue = [ - "english" - ]; - var tonight = [ - "english" - ]; - var tool = [ - "english" - ]; - var tooth = [ - "english" - ]; - var top = [ - "english" - ]; - var topic = [ - "english" - ]; - var topple = [ - "english" - ]; - var torch = [ - "english" - ]; - var tornado = [ - "english" - ]; - var tortoise = [ - "english" - ]; - var toss = [ - "english" - ]; - var total = [ - "english" - ]; - var tourist = [ - "english" - ]; - var toward = [ - "english" - ]; - var tower = [ - "english" - ]; - var town = [ - "english" - ]; - var toy = [ - "english" - ]; - var track = [ - "english" - ]; - var trade = [ - "english" - ]; - var traffic = [ - "english" - ]; - var tragic = [ - "english" - ]; - var train = [ - "english", - "french" - ]; - var transfer = [ - "english", - "turkish" - ]; - var trap = [ - "english" - ]; - var trash = [ - "english" - ]; - var travel = [ - "english" - ]; - var tray = [ - "english" - ]; - var treat = [ - "english" - ]; - var tree = [ - "english" - ]; - var trend = [ - "english" - ]; - var trial = [ - "english" - ]; - var tribe = [ - "english" - ]; - var trick = [ - "english" - ]; - var trigger = [ - "english" - ]; - var trim = [ - "english" - ]; - var trip = [ - "english" - ]; - var trophy = [ - "english" - ]; - var trouble = [ - "english" - ]; - var truck = [ - "english" - ]; - var truly = [ - "english" - ]; - var trumpet = [ - "english" - ]; - var trust = [ - "english" - ]; - var truth = [ - "english" - ]; - var tube = [ - "english" - ]; - var tuition = [ - "english" - ]; - var tumble = [ - "english" - ]; - var tuna = [ - "english" - ]; - var tunnel = [ - "english", - "french" - ]; - var turkey = [ - "english" - ]; - var turn = [ - "english" - ]; - var turtle = [ - "english" - ]; - var twelve = [ - "english" - ]; - var twenty = [ - "english" - ]; - var twice = [ - "english" - ]; - var twin = [ - "english" - ]; - var twist = [ - "english" - ]; - var two = [ - "english" - ]; - var type = [ - "english" - ]; - var typical = [ - "english" - ]; - var ugly = [ - "english" - ]; - var umbrella = [ - "english" - ]; - var unable = [ - "english" - ]; - var unaware = [ - "english" - ]; - var uncle = [ - "english" - ]; - var uncover = [ - "english" - ]; - var under = [ - "english" - ]; - var undo = [ - "english" - ]; - var unfair = [ - "english" - ]; - var unfold = [ - "english" - ]; - var unhappy = [ - "english" - ]; - var uniform = [ - "english" - ]; - var unique = [ - "english", - "french" - ]; - var unit = [ - "english" - ]; - var universe = [ - "english" - ]; - var unknown = [ - "english" - ]; - var unlock = [ - "english" - ]; - var until = [ - "english" - ]; - var unusual = [ - "english" - ]; - var unveil = [ - "english" - ]; - var update = [ - "english" - ]; - var upgrade = [ - "english" - ]; - var uphold = [ - "english" - ]; - var upon = [ - "english" - ]; - var upper = [ - "english" - ]; - var upset = [ - "english" - ]; - var urban = [ - "english" - ]; - var urge = [ - "english" - ]; - var usage = [ - "english", - "french" - ]; - var use = [ - "english" - ]; - var used = [ - "english" - ]; - var useful = [ - "english" - ]; - var useless = [ - "english" - ]; - var usual = [ - "english" - ]; - var utility = [ - "english" - ]; - var vacant = [ - "english" - ]; - var vacuum = [ - "english" - ]; - var vague = [ - "english", - "french" - ]; - var valid$1 = [ - "english" - ]; - var valley = [ - "english" - ]; - var valve = [ - "english", - "french" - ]; - var van = [ - "english" - ]; - var vanish = [ - "english" - ]; - var vapor = [ - "english" - ]; - var various = [ - "english" - ]; - var vast = [ - "english" - ]; - var vault = [ - "english" - ]; - var vehicle = [ - "english" - ]; - var velvet = [ - "english" - ]; - var vendor = [ - "english" - ]; - var venture = [ - "english" - ]; - var venue = [ - "english" - ]; - var verb = [ - "english" - ]; - var verify = [ - "english" - ]; - var version = [ - "english" - ]; - var very = [ - "english" - ]; - var vessel = [ - "english" - ]; - var veteran = [ - "english" - ]; - var viable = [ - "english" - ]; - var vibrant = [ - "english" - ]; - var vicious = [ - "english" - ]; - var victory = [ - "english" - ]; - var video = [ - "english" - ]; - var view = [ - "english" - ]; - var village = [ - "english", - "french" - ]; - var vintage = [ - "english" - ]; - var violin = [ - "english" - ]; - var virtual = [ - "english" - ]; - var virus = [ - "english", - "french" - ]; - var visa = [ - "english" - ]; - var visit = [ - "english" - ]; - var visual = [ - "english" - ]; - var vital = [ - "english", - "french" - ]; - var vivid = [ - "english" - ]; - var vocal = [ - "english" - ]; - var voice = [ - "english" - ]; - var volcano = [ - "english" - ]; - var volume = [ - "english", - "french" - ]; - var vote = [ - "english" - ]; - var voyage = [ - "english", - "french" - ]; - var wage = [ - "english" - ]; - var wagon = [ - "english", - "french" - ]; - var wait = [ - "english" - ]; - var walk = [ - "english" - ]; - var wall = [ - "english" - ]; - var walnut = [ - "english" - ]; - var want = [ - "english" - ]; - var warfare = [ - "english" - ]; - var warm = [ - "english" - ]; - var warrior = [ - "english" - ]; - var wash = [ - "english" - ]; - var wasp = [ - "english" - ]; - var waste = [ - "english" - ]; - var water = [ - "english" - ]; - var wave = [ - "english" - ]; - var way = [ - "english" - ]; - var wealth = [ - "english" - ]; - var weapon = [ - "english" - ]; - var wear = [ - "english" - ]; - var weasel = [ - "english" - ]; - var weather = [ - "english" - ]; - var web = [ - "english" - ]; - var wedding = [ - "english" - ]; - var weekend = [ - "english" - ]; - var weird = [ - "english" - ]; - var welcome = [ - "english" - ]; - var west = [ - "english" - ]; - var wet = [ - "english" - ]; - var whale = [ - "english" - ]; - var what = [ - "english" - ]; - var wheat = [ - "english" - ]; - var wheel = [ - "english" - ]; - var when = [ - "english" - ]; - var where = [ - "english" - ]; - var whip = [ - "english" - ]; - var whisper = [ - "english" - ]; - var wide = [ - "english" - ]; - var width = [ - "english" - ]; - var wife = [ - "english" - ]; - var wild = [ - "english" - ]; - var will = [ - "english" - ]; - var win = [ - "english" - ]; - var window$1 = [ - "english" - ]; - var wine = [ - "english" - ]; - var wing = [ - "english" - ]; - var wink = [ - "english" - ]; - var winner = [ - "english" - ]; - var winter = [ - "english" - ]; - var wire = [ - "english" - ]; - var wisdom = [ - "english" - ]; - var wise = [ - "english" - ]; - var wish = [ - "english" - ]; - var witness = [ - "english" - ]; - var wolf = [ - "english" - ]; - var woman = [ - "english" - ]; - var wonder = [ - "english" - ]; - var wood = [ - "english" - ]; - var wool = [ - "english" - ]; - var word = [ - "english" - ]; - var work = [ - "english" - ]; - var world = [ - "english" - ]; - var worry = [ - "english" - ]; - var worth = [ - "english" - ]; - var wrap = [ - "english" - ]; - var wreck = [ - "english" - ]; - var wrestle = [ - "english" - ]; - var wrist = [ - "english" - ]; - var write = [ - "english" - ]; - var wrong = [ - "english" - ]; - var yard = [ - "english" - ]; - var year = [ - "english" - ]; - var yellow = [ - "english" - ]; - var you = [ - "english" - ]; - var young = [ - "english" - ]; - var youth = [ - "english" - ]; - var zebra = [ - "english" - ]; - var zero = [ - "english" - ]; - var zone = [ - "english" - ]; - var zoo = [ - "english" - ]; - var abaisser = [ - "french" - ]; - var abdiquer = [ - "french" - ]; - var abeille = [ - "french" - ]; - var abolir = [ - "french" - ]; - var aborder = [ - "french" - ]; - var aboutir = [ - "french" - ]; - var aboyer = [ - "french" - ]; - var abrasif = [ - "french" - ]; - var abreuver = [ - "french" - ]; - var abriter = [ - "french" - ]; - var abroger = [ - "french" - ]; - var abrupt = [ - "french" - ]; - var absence = [ - "french" - ]; - var absolu = [ - "french" - ]; - var absurde = [ - "french" - ]; - var abusif = [ - "french" - ]; - var abyssal = [ - "french" - ]; - var acajou = [ - "french" - ]; - var acarien = [ - "french" - ]; - var accabler = [ - "french" - ]; - var accepter = [ - "french" - ]; - var acclamer = [ - "french" - ]; - var accolade = [ - "french" - ]; - var accroche = [ - "french" - ]; - var accuser = [ - "french" - ]; - var acerbe = [ - "french" - ]; - var achat = [ - "french" - ]; - var acheter = [ - "french" - ]; - var aciduler = [ - "french" - ]; - var acier = [ - "french" - ]; - var acompte = [ - "french" - ]; - var acronyme = [ - "french" - ]; - var acteur = [ - "french" - ]; - var actif = [ - "french" - ]; - var actuel = [ - "french" - ]; - var adepte = [ - "french" - ]; - var adjectif = [ - "french" - ]; - var adjuger = [ - "french" - ]; - var admettre = [ - "french" - ]; - var admirer = [ - "french" - ]; - var adopter = [ - "french" - ]; - var adorer = [ - "french" - ]; - var adoucir = [ - "french" - ]; - var adresse = [ - "french" - ]; - var adroit = [ - "french" - ]; - var adulte = [ - "french" - ]; - var adverbe = [ - "french" - ]; - var affaire = [ - "french" - ]; - var affecter = [ - "french" - ]; - var affiche = [ - "french" - ]; - var affreux = [ - "french" - ]; - var affubler = [ - "french" - ]; - var agacer = [ - "french" - ]; - var agencer = [ - "french" - ]; - var agile = [ - "french" - ]; - var agiter = [ - "french" - ]; - var agrafer = [ - "french" - ]; - var agrume = [ - "french" - ]; - var aider = [ - "french" - ]; - var aiguille = [ - "french" - ]; - var ailier = [ - "french" - ]; - var aimable = [ - "french" - ]; - var aisance = [ - "french" - ]; - var ajouter = [ - "french" - ]; - var ajuster = [ - "french" - ]; - var alarmer = [ - "french" - ]; - var alchimie = [ - "french" - ]; - var alerte = [ - "french" - ]; - var algue = [ - "french" - ]; - var aliment = [ - "french" - ]; - var alliage = [ - "french" - ]; - var allouer = [ - "french" - ]; - var allumer = [ - "french" - ]; - var alourdir = [ - "french" - ]; - var alpaga = [ - "french" - ]; - var altesse = [ - "french" - ]; - var ambigu = [ - "french" - ]; - var ambre = [ - "french" - ]; - var amertume = [ - "french" - ]; - var amidon = [ - "french" - ]; - var amiral = [ - "french" - ]; - var amorcer = [ - "french" - ]; - var amour = [ - "french" - ]; - var amovible = [ - "french" - ]; - var amphibie = [ - "french" - ]; - var ampleur = [ - "french" - ]; - var amusant = [ - "french" - ]; - var analyse = [ - "french" - ]; - var anaphore = [ - "french" - ]; - var anarchie = [ - "french" - ]; - var anatomie = [ - "french" - ]; - var ancien = [ - "french" - ]; - var angoisse = [ - "french" - ]; - var anguleux = [ - "french" - ]; - var annexer = [ - "french" - ]; - var annonce = [ - "french" - ]; - var annuel = [ - "french" - ]; - var anodin = [ - "french" - ]; - var anomalie = [ - "french" - ]; - var anonyme = [ - "french" - ]; - var anormal = [ - "french" - ]; - var antenne = [ - "french" - ]; - var antidote = [ - "french" - ]; - var anxieux = [ - "french" - ]; - var apaiser = [ - "french" - ]; - var aplanir = [ - "french" - ]; - var apologie = [ - "french" - ]; - var appareil = [ - "french" - ]; - var appeler = [ - "french" - ]; - var apporter = [ - "french" - ]; - var appuyer = [ - "french" - ]; - var aquarium = [ - "french" - ]; - var aqueduc = [ - "french" - ]; - var arbitre = [ - "french" - ]; - var arbuste = [ - "french" - ]; - var ardeur = [ - "french" - ]; - var ardoise = [ - "french" - ]; - var argent = [ - "french" - ]; - var arlequin = [ - "french" - ]; - var armature = [ - "french" - ]; - var armement = [ - "french" - ]; - var armoire = [ - "french" - ]; - var armure = [ - "french" - ]; - var arpenter = [ - "french" - ]; - var arracher = [ - "french" - ]; - var arriver = [ - "french" - ]; - var arroser = [ - "french" - ]; - var arsenic = [ - "french" - ]; - var article = [ - "french" - ]; - var asphalte = [ - "french" - ]; - var aspirer = [ - "french" - ]; - var assaut = [ - "french" - ]; - var asservir = [ - "french" - ]; - var assiette = [ - "french" - ]; - var associer = [ - "french" - ]; - var assurer = [ - "french" - ]; - var asticot = [ - "french" - ]; - var astre = [ - "french" - ]; - var astuce = [ - "french" - ]; - var atelier = [ - "french" - ]; - var atome = [ - "french" - ]; - var atrium = [ - "french" - ]; - var atroce = [ - "french" - ]; - var attaque = [ - "french" - ]; - var attentif = [ - "french" - ]; - var attirer = [ - "french" - ]; - var attraper = [ - "french" - ]; - var aubaine = [ - "french" - ]; - var auberge = [ - "french" - ]; - var audace = [ - "french" - ]; - var audible = [ - "french" - ]; - var augurer = [ - "french" - ]; - var aurore = [ - "french" - ]; - var automne = [ - "french" - ]; - var autruche = [ - "french" - ]; - var avaler = [ - "french" - ]; - var avancer = [ - "french" - ]; - var avarice = [ - "french" - ]; - var avenir = [ - "french" - ]; - var averse = [ - "french" - ]; - var aveugle = [ - "french" - ]; - var aviateur = [ - "french" - ]; - var avide = [ - "french" - ]; - var avion = [ - "french" - ]; - var aviser = [ - "french" - ]; - var avoine = [ - "french" - ]; - var avouer = [ - "french" - ]; - var avril = [ - "french" - ]; - var axial = [ - "french" - ]; - var axiome = [ - "french" - ]; - var bafouer = [ - "french" - ]; - var bagage = [ - "french" - ]; - var baguette = [ - "french" - ]; - var baignade = [ - "french" - ]; - var balancer = [ - "french" - ]; - var balcon = [ - "french" - ]; - var baleine = [ - "french" - ]; - var balisage = [ - "french" - ]; - var bambin = [ - "french" - ]; - var bancaire = [ - "french" - ]; - var bandage = [ - "french" - ]; - var banlieue = [ - "french" - ]; - var banquier = [ - "french" - ]; - var barbier = [ - "french" - ]; - var baril = [ - "french" - ]; - var baron = [ - "french" - ]; - var barque = [ - "french" - ]; - var barrage = [ - "french" - ]; - var bassin = [ - "french" - ]; - var bastion = [ - "french" - ]; - var bataille = [ - "french" - ]; - var bateau = [ - "french" - ]; - var batterie = [ - "french" - ]; - var baudrier = [ - "french" - ]; - var bavarder = [ - "french" - ]; - var belette = [ - "french" - ]; - var belote = [ - "french" - ]; - var berceau = [ - "french" - ]; - var berger = [ - "french" - ]; - var berline = [ - "french" - ]; - var bermuda = [ - "french", - "turkish" - ]; - var besace = [ - "french" - ]; - var besogne = [ - "french" - ]; - var beurre = [ - "french" - ]; - var biberon = [ - "french" - ]; - var bidule = [ - "french" - ]; - var bijou = [ - "french" - ]; - var bilan = [ - "french" - ]; - var bilingue = [ - "french" - ]; - var billard = [ - "french" - ]; - var binaire = [ - "french" - ]; - var biologie = [ - "french" - ]; - var biopsie = [ - "french" - ]; - var biotype = [ - "french" - ]; - var biscuit = [ - "french" - ]; - var bison = [ - "french" - ]; - var bistouri = [ - "french" - ]; - var bitume = [ - "french" - ]; - var bizarre = [ - "french" - ]; - var blafard = [ - "french" - ]; - var blague = [ - "french" - ]; - var blanchir = [ - "french" - ]; - var blessant = [ - "french" - ]; - var blinder = [ - "french" - ]; - var blond = [ - "french" - ]; - var bloquer = [ - "french" - ]; - var blouson = [ - "french" - ]; - var bobard = [ - "french" - ]; - var bobine = [ - "french" - ]; - var boire = [ - "french" - ]; - var boiser = [ - "french" - ]; - var bolide = [ - "french" - ]; - var bonbon = [ - "french" - ]; - var bondir = [ - "french" - ]; - var bonheur = [ - "french" - ]; - var bonifier = [ - "french" - ]; - var bordure = [ - "french" - ]; - var borne = [ - "french" - ]; - var botte = [ - "french" - ]; - var boucle = [ - "french" - ]; - var boueux = [ - "french" - ]; - var bougie = [ - "french" - ]; - var boulon = [ - "french" - ]; - var bouquin = [ - "french" - ]; - var bourse = [ - "french" - ]; - var boussole = [ - "french" - ]; - var boutique = [ - "french" - ]; - var boxeur = [ - "french" - ]; - var branche = [ - "french" - ]; - var brasier = [ - "french" - ]; - var brebis = [ - "french" - ]; - var breuvage = [ - "french" - ]; - var bricoler = [ - "french" - ]; - var brigade = [ - "french" - ]; - var brillant = [ - "french" - ]; - var brioche = [ - "french" - ]; - var brique = [ - "french" - ]; - var brochure = [ - "french" - ]; - var broder = [ - "french" - ]; - var bronzer = [ - "french" - ]; - var brousse = [ - "french" - ]; - var broyeur = [ - "french" - ]; - var brume = [ - "french" - ]; - var brusque = [ - "french" - ]; - var brutal = [ - "french" - ]; - var bruyant = [ - "french" - ]; - var buffle = [ - "french" - ]; - var buisson = [ - "french" - ]; - var bulletin = [ - "french" - ]; - var bureau = [ - "french" - ]; - var burin = [ - "french" - ]; - var bustier = [ - "french" - ]; - var butiner = [ - "french" - ]; - var butoir = [ - "french" - ]; - var buvable = [ - "french" - ]; - var buvette = [ - "french" - ]; - var cabanon = [ - "french" - ]; - var cabine = [ - "french" - ]; - var cachette = [ - "french" - ]; - var cadeau = [ - "french" - ]; - var cadre = [ - "french" - ]; - var caillou = [ - "french" - ]; - var caisson = [ - "french" - ]; - var calculer = [ - "french" - ]; - var calepin = [ - "french" - ]; - var calibre = [ - "french" - ]; - var calmer = [ - "french" - ]; - var calomnie = [ - "french" - ]; - var calvaire = [ - "french" - ]; - var camarade = [ - "french" - ]; - var camion = [ - "french" - ]; - var campagne = [ - "french" - ]; - var caneton = [ - "french" - ]; - var canon = [ - "french" - ]; - var cantine = [ - "french" - ]; - var canular = [ - "french" - ]; - var caporal = [ - "french" - ]; - var caprice = [ - "french" - ]; - var capsule = [ - "french" - ]; - var capter = [ - "french" - ]; - var capuche = [ - "french" - ]; - var carabine = [ - "french" - ]; - var carbone = [ - "french" - ]; - var caresser = [ - "french" - ]; - var caribou = [ - "french" - ]; - var carnage = [ - "french" - ]; - var carotte = [ - "french" - ]; - var carreau = [ - "french" - ]; - var carton = [ - "french" - ]; - var cascade = [ - "french" - ]; - var casier = [ - "french" - ]; - var casque = [ - "french" - ]; - var cassure = [ - "french" - ]; - var causer = [ - "french" - ]; - var cavalier = [ - "french" - ]; - var caverne = [ - "french" - ]; - var caviar = [ - "french" - ]; - var ceinture = [ - "french" - ]; - var cellule = [ - "french" - ]; - var cendrier = [ - "french" - ]; - var censurer = [ - "french" - ]; - var central = [ - "french" - ]; - var cercle = [ - "french" - ]; - var cerise = [ - "french" - ]; - var cerner = [ - "french" - ]; - var cerveau = [ - "french" - ]; - var cesser = [ - "french" - ]; - var chagrin = [ - "french" - ]; - var chaise = [ - "french" - ]; - var chaleur = [ - "french" - ]; - var chambre = [ - "french" - ]; - var chance = [ - "french" - ]; - var chapitre = [ - "french" - ]; - var charbon = [ - "french" - ]; - var chasseur = [ - "french" - ]; - var chaton = [ - "french" - ]; - var chausson = [ - "french" - ]; - var chavirer = [ - "french" - ]; - var chemise = [ - "french" - ]; - var chenille = [ - "french" - ]; - var chercher = [ - "french" - ]; - var cheval = [ - "french" - ]; - var chien = [ - "french" - ]; - var chiffre = [ - "french" - ]; - var chignon = [ - "french" - ]; - var chiot = [ - "french" - ]; - var chlorure = [ - "french" - ]; - var chocolat = [ - "french" - ]; - var choisir = [ - "french" - ]; - var chose = [ - "french" - ]; - var chouette = [ - "french" - ]; - var chrome = [ - "french" - ]; - var chute = [ - "french" - ]; - var cigare = [ - "french" - ]; - var cigogne = [ - "french" - ]; - var cimenter = [ - "french" - ]; - var cintrer = [ - "french" - ]; - var circuler = [ - "french" - ]; - var cirer = [ - "french" - ]; - var cirque = [ - "french" - ]; - var citerne = [ - "french" - ]; - var citoyen = [ - "french" - ]; - var citron = [ - "french" - ]; - var clairon = [ - "french" - ]; - var clameur = [ - "french" - ]; - var claquer = [ - "french" - ]; - var classe = [ - "french" - ]; - var clavier = [ - "french" - ]; - var cligner = [ - "french" - ]; - var climat = [ - "french" - ]; - var clivage = [ - "french" - ]; - var cloche = [ - "french" - ]; - var clonage = [ - "french" - ]; - var cloporte = [ - "french" - ]; - var cobalt = [ - "french" - ]; - var cobra = [ - "french" - ]; - var cocasse = [ - "french" - ]; - var cocotier = [ - "french" - ]; - var coder = [ - "french" - ]; - var codifier = [ - "french" - ]; - var coffre = [ - "french" - ]; - var cogner = [ - "french" - ]; - var coiffer = [ - "french" - ]; - var coincer = [ - "french" - ]; - var colibri = [ - "french" - ]; - var colline = [ - "french" - ]; - var colmater = [ - "french" - ]; - var colonel = [ - "french" - ]; - var combat = [ - "french" - ]; - var commande = [ - "french" - ]; - var compact = [ - "french" - ]; - var conduire = [ - "french" - ]; - var confier = [ - "french" - ]; - var congeler = [ - "french" - ]; - var connoter = [ - "french" - ]; - var consonne = [ - "french" - ]; - var contact = [ - "french" - ]; - var convexe = [ - "french" - ]; - var copain = [ - "french" - ]; - var copie = [ - "french" - ]; - var corail = [ - "french" - ]; - var corbeau = [ - "french" - ]; - var cordage = [ - "french" - ]; - var corniche = [ - "french" - ]; - var corpus = [ - "french" - ]; - var cosmique = [ - "french" - ]; - var costume = [ - "french" - ]; - var coton = [ - "french" - ]; - var coude = [ - "french" - ]; - var coupure = [ - "french" - ]; - var courage = [ - "french" - ]; - var couteau = [ - "french" - ]; - var couvrir = [ - "french" - ]; - var crabe = [ - "french" - ]; - var crainte = [ - "french" - ]; - var cravate = [ - "french" - ]; - var crayon = [ - "french" - ]; - var creuser = [ - "french" - ]; - var crevette = [ - "french" - ]; - var cribler = [ - "french" - ]; - var crier = [ - "french" - ]; - var cristal = [ - "french" - ]; - var croire = [ - "french" - ]; - var croquer = [ - "french" - ]; - var crotale = [ - "french" - ]; - var crypter = [ - "french" - ]; - var cubique = [ - "french" - ]; - var cueillir = [ - "french" - ]; - var cuisine = [ - "french" - ]; - var cuivre = [ - "french" - ]; - var culminer = [ - "french" - ]; - var cultiver = [ - "french" - ]; - var cumuler = [ - "french" - ]; - var cupide = [ - "french" - ]; - var curatif = [ - "french" - ]; - var curseur = [ - "french" - ]; - var cyanure = [ - "french" - ]; - var cylindre = [ - "french" - ]; - var cynique = [ - "french" - ]; - var daigner = [ - "french" - ]; - var damier = [ - "french" - ]; - var danseur = [ - "french" - ]; - var dauphin = [ - "french" - ]; - var demander = [ - "french" - ]; - var demeurer = [ - "french" - ]; - var dentelle = [ - "french" - ]; - var descente = [ - "french" - ]; - var dessiner = [ - "french" - ]; - var destrier = [ - "french" - ]; - var devancer = [ - "french" - ]; - var devenir = [ - "french" - ]; - var deviner = [ - "french" - ]; - var devoir = [ - "french" - ]; - var diable = [ - "french" - ]; - var dialogue = [ - "french" - ]; - var diamant = [ - "french" - ]; - var dicter = [ - "french" - ]; - var digne = [ - "french" - ]; - var diluer = [ - "french" - ]; - var dimanche = [ - "french" - ]; - var diminuer = [ - "french" - ]; - var dioxyde = [ - "french" - ]; - var directif = [ - "french" - ]; - var diriger = [ - "french" - ]; - var discuter = [ - "french" - ]; - var disposer = [ - "french" - ]; - var dissiper = [ - "french" - ]; - var divertir = [ - "french" - ]; - var diviser = [ - "french" - ]; - var docile = [ - "french" - ]; - var docteur = [ - "french" - ]; - var dogme = [ - "french" - ]; - var doigt = [ - "french" - ]; - var domaine = [ - "french" - ]; - var domicile = [ - "french" - ]; - var dompter = [ - "french" - ]; - var donateur = [ - "french" - ]; - var donjon = [ - "french" - ]; - var donner = [ - "french" - ]; - var dopamine = [ - "french" - ]; - var dortoir = [ - "french" - ]; - var dorure = [ - "french" - ]; - var dosage = [ - "french" - ]; - var doseur = [ - "french" - ]; - var dossier = [ - "french" - ]; - var dotation = [ - "french" - ]; - var douanier = [ - "french" - ]; - var douceur = [ - "french" - ]; - var douter = [ - "french" - ]; - var doyen = [ - "french" - ]; - var draper = [ - "french" - ]; - var dresser = [ - "french" - ]; - var dribbler = [ - "french" - ]; - var droiture = [ - "french" - ]; - var duperie = [ - "french" - ]; - var duplexe = [ - "french" - ]; - var durable = [ - "french" - ]; - var durcir = [ - "french" - ]; - var dynastie = [ - "french" - ]; - var effacer = [ - "french" - ]; - var effectif = [ - "french" - ]; - var effigie = [ - "french" - ]; - var effrayer = [ - "french" - ]; - var effusion = [ - "french" - ]; - var emballer = [ - "french" - ]; - var embellir = [ - "french" - ]; - var embryon = [ - "french" - ]; - var emmener = [ - "french" - ]; - var empereur = [ - "french" - ]; - var employer = [ - "french" - ]; - var emporter = [ - "french" - ]; - var emprise = [ - "french" - ]; - var encadrer = [ - "french" - ]; - var enclave = [ - "french" - ]; - var encoche = [ - "french" - ]; - var endiguer = [ - "french" - ]; - var endosser = [ - "french" - ]; - var endroit = [ - "french" - ]; - var enduire = [ - "french" - ]; - var enfance = [ - "french" - ]; - var enfermer = [ - "french" - ]; - var enfouir = [ - "french" - ]; - var engager = [ - "french" - ]; - var engin = [ - "french", - "turkish" - ]; - var englober = [ - "french" - ]; - var enjamber = [ - "french" - ]; - var enjeu = [ - "french" - ]; - var enlever = [ - "french" - ]; - var ennemi = [ - "french" - ]; - var ennuyeux = [ - "french" - ]; - var enrichir = [ - "french" - ]; - var enrobage = [ - "french" - ]; - var enseigne = [ - "french" - ]; - var entasser = [ - "french" - ]; - var entendre = [ - "french" - ]; - var entier = [ - "french" - ]; - var entourer = [ - "french" - ]; - var entraver = [ - "french" - ]; - var envahir = [ - "french" - ]; - var enviable = [ - "french" - ]; - var envoyer = [ - "french" - ]; - var enzyme = [ - "french" - ]; - var erreur = [ - "french" - ]; - var escalier = [ - "french" - ]; - var espadon = [ - "french" - ]; - var espoir = [ - "french" - ]; - var esprit = [ - "french" - ]; - var esquiver = [ - "french" - ]; - var essayer = [ - "french" - ]; - var essieu = [ - "french" - ]; - var essorer = [ - "french" - ]; - var estime = [ - "french" - ]; - var estomac = [ - "french" - ]; - var estrade = [ - "french" - ]; - var ethnie = [ - "french" - ]; - var euphorie = [ - "french" - ]; - var exaucer = [ - "french" - ]; - var exceller = [ - "french" - ]; - var excitant = [ - "french" - ]; - var exclusif = [ - "french" - ]; - var exemple = [ - "french" - ]; - var exercer = [ - "french" - ]; - var exhaler = [ - "french" - ]; - var exhorter = [ - "french" - ]; - var exigence = [ - "french" - ]; - var exiler = [ - "french" - ]; - var exister = [ - "french" - ]; - var exotique = [ - "french" - ]; - var explorer = [ - "french" - ]; - var exposer = [ - "french" - ]; - var exprimer = [ - "french" - ]; - var exquis = [ - "french" - ]; - var extensif = [ - "french" - ]; - var extraire = [ - "french" - ]; - var exulter = [ - "french" - ]; - var fable = [ - "french" - ]; - var fabuleux = [ - "french" - ]; - var facette = [ - "french" - ]; - var facile = [ - "french" - ]; - var facture = [ - "french" - ]; - var faiblir = [ - "french" - ]; - var falaise = [ - "french" - ]; - var fameux = [ - "french" - ]; - var famille = [ - "french" - ]; - var farceur = [ - "french" - ]; - var farfelu = [ - "french" - ]; - var farine = [ - "french" - ]; - var farouche = [ - "french" - ]; - var fasciner = [ - "french" - ]; - var faucon = [ - "french" - ]; - var fautif = [ - "french" - ]; - var faveur = [ - "french" - ]; - var favori = [ - "french", - "turkish" - ]; - var femme = [ - "french" - ]; - var fendoir = [ - "french" - ]; - var fermer = [ - "french" - ]; - var ferveur = [ - "french" - ]; - var feuille = [ - "french" - ]; - var feutre = [ - "french" - ]; - var fiasco = [ - "french" - ]; - var ficeler = [ - "french" - ]; - var fictif = [ - "french" - ]; - var filature = [ - "french" - ]; - var filetage = [ - "french" - ]; - var filleul = [ - "french" - ]; - var filmer = [ - "french" - ]; - var filou = [ - "french" - ]; - var filtrer = [ - "french" - ]; - var financer = [ - "french" - ]; - var finir = [ - "french" - ]; - var fiole = [ - "french" - ]; - var firme = [ - "french" - ]; - var fissure = [ - "french" - ]; - var fixer = [ - "french" - ]; - var flairer = [ - "french" - ]; - var flamme = [ - "french" - ]; - var flasque = [ - "french" - ]; - var flatteur = [ - "french" - ]; - var fleur = [ - "french" - ]; - var flexion = [ - "french" - ]; - var flocon = [ - "french" - ]; - var flore = [ - "french" - ]; - var fluctuer = [ - "french" - ]; - var fluide = [ - "french" - ]; - var fluvial = [ - "french" - ]; - var folie = [ - "french" - ]; - var fonderie = [ - "french" - ]; - var fongible = [ - "french" - ]; - var fontaine = [ - "french" - ]; - var forcer = [ - "french" - ]; - var forgeron = [ - "french" - ]; - var formuler = [ - "french" - ]; - var fossile = [ - "french" - ]; - var foudre = [ - "french" - ]; - var fouiller = [ - "french" - ]; - var foulure = [ - "french" - ]; - var fourmi = [ - "french" - ]; - var fraise = [ - "french" - ]; - var franchir = [ - "french" - ]; - var frapper = [ - "french" - ]; - var frayeur = [ - "french" - ]; - var freiner = [ - "french" - ]; - var frelon = [ - "french" - ]; - var friable = [ - "french" - ]; - var friction = [ - "french" - ]; - var frisson = [ - "french" - ]; - var frivole = [ - "french" - ]; - var froid = [ - "french" - ]; - var fromage = [ - "french" - ]; - var frontal = [ - "french" - ]; - var frotter = [ - "french" - ]; - var fugitif = [ - "french" - ]; - var fuite = [ - "french" - ]; - var fureur = [ - "french" - ]; - var furieux = [ - "french" - ]; - var furtif = [ - "french" - ]; - var fusion = [ - "french" - ]; - var futur = [ - "french" - ]; - var gagner = [ - "french" - ]; - var galaxie = [ - "french" - ]; - var galerie = [ - "french" - ]; - var gambader = [ - "french" - ]; - var garantir = [ - "french" - ]; - var gardien = [ - "french" - ]; - var garnir = [ - "french" - ]; - var garrigue = [ - "french" - ]; - var gazelle = [ - "french" - ]; - var gazon = [ - "french" - ]; - var gendarme = [ - "french" - ]; - var genou = [ - "french" - ]; - var gentil = [ - "french" - ]; - var germe = [ - "french" - ]; - var gestuel = [ - "french" - ]; - var geyser = [ - "french" - ]; - var gibier = [ - "french" - ]; - var gicler = [ - "french" - ]; - var girafe = [ - "french" - ]; - var givre = [ - "french" - ]; - var glace = [ - "french" - ]; - var glaive = [ - "french" - ]; - var glisser = [ - "french" - ]; - var gloire = [ - "french" - ]; - var glorieux = [ - "french" - ]; - var golfeur = [ - "french" - ]; - var gomme = [ - "french" - ]; - var gonfler = [ - "french" - ]; - var gorge = [ - "french" - ]; - var gorille = [ - "french" - ]; - var goudron = [ - "french" - ]; - var gouffre = [ - "french" - ]; - var goulot = [ - "french" - ]; - var goupille = [ - "french" - ]; - var gourmand = [ - "french" - ]; - var goutte = [ - "french" - ]; - var graduel = [ - "french" - ]; - var graffiti = [ - "french" - ]; - var graine = [ - "french" - ]; - var grand = [ - "french" - ]; - var grappin = [ - "french" - ]; - var gratuit = [ - "french" - ]; - var gravir = [ - "french" - ]; - var grenat = [ - "french" - ]; - var griffure = [ - "french" - ]; - var griller = [ - "french" - ]; - var grimper = [ - "french" - ]; - var grogner = [ - "french" - ]; - var gronder = [ - "french" - ]; - var grotte = [ - "french" - ]; - var groupe = [ - "french" - ]; - var gruger = [ - "french" - ]; - var grutier = [ - "french" - ]; - var guerrier = [ - "french" - ]; - var guimauve = [ - "french" - ]; - var guitare = [ - "french" - ]; - var gustatif = [ - "french" - ]; - var gymnaste = [ - "french" - ]; - var gyrostat = [ - "french" - ]; - var habitude = [ - "french" - ]; - var hachoir = [ - "french" - ]; - var halte = [ - "french" - ]; - var hameau = [ - "french" - ]; - var hangar = [ - "french", - "turkish" - ]; - var hanneton = [ - "french" - ]; - var haricot = [ - "french" - ]; - var harmonie = [ - "french" - ]; - var harpon = [ - "french" - ]; - var hasard = [ - "french" - ]; - var herbe = [ - "french" - ]; - var hermine = [ - "french" - ]; - var heureux = [ - "french" - ]; - var hiberner = [ - "french" - ]; - var hibou = [ - "french" - ]; - var hilarant = [ - "french" - ]; - var histoire = [ - "french" - ]; - var hiver = [ - "french" - ]; - var homard = [ - "french" - ]; - var hommage = [ - "french" - ]; - var honneur = [ - "french" - ]; - var honorer = [ - "french" - ]; - var honteux = [ - "french" - ]; - var horde = [ - "french" - ]; - var horizon = [ - "french" - ]; - var horloge = [ - "french" - ]; - var hormone = [ - "french" - ]; - var horrible = [ - "french" - ]; - var houleux = [ - "french" - ]; - var housse = [ - "french" - ]; - var hublot = [ - "french" - ]; - var huileux = [ - "french" - ]; - var humain = [ - "french" - ]; - var humide = [ - "french" - ]; - var humour = [ - "french" - ]; - var hurler = [ - "french" - ]; - var hydromel = [ - "french" - ]; - var hymne = [ - "french" - ]; - var hypnose = [ - "french" - ]; - var idylle = [ - "french" - ]; - var ignorer = [ - "french" - ]; - var iguane = [ - "french" - ]; - var illicite = [ - "french" - ]; - var illusion = [ - "french" - ]; - var imbiber = [ - "french" - ]; - var imiter = [ - "french" - ]; - var immobile = [ - "french" - ]; - var immuable = [ - "french" - ]; - var implorer = [ - "french" - ]; - var imposer = [ - "french" - ]; - var imprimer = [ - "french" - ]; - var imputer = [ - "french" - ]; - var incarner = [ - "french" - ]; - var incendie = [ - "french" - ]; - var incident = [ - "french" - ]; - var incliner = [ - "french" - ]; - var incolore = [ - "french" - ]; - var indexer = [ - "french" - ]; - var indice = [ - "french" - ]; - var inductif = [ - "french" - ]; - var ineptie = [ - "french" - ]; - var inexact = [ - "french" - ]; - var infini = [ - "french" - ]; - var infliger = [ - "french" - ]; - var informer = [ - "french" - ]; - var infusion = [ - "french" - ]; - var inhaler = [ - "french" - ]; - var inhiber = [ - "french" - ]; - var injecter = [ - "french" - ]; - var injure = [ - "french" - ]; - var inoculer = [ - "french" - ]; - var inonder = [ - "french" - ]; - var inscrire = [ - "french" - ]; - var insecte = [ - "french" - ]; - var insigne = [ - "french" - ]; - var insolite = [ - "french" - ]; - var inspirer = [ - "french" - ]; - var instinct = [ - "french" - ]; - var insulter = [ - "french" - ]; - var intense = [ - "french" - ]; - var intime = [ - "french" - ]; - var intrigue = [ - "french" - ]; - var intuitif = [ - "french" - ]; - var inutile = [ - "french" - ]; - var invasion = [ - "french" - ]; - var inventer = [ - "french" - ]; - var inviter = [ - "french" - ]; - var invoquer = [ - "french" - ]; - var ironique = [ - "french" - ]; - var irradier = [ - "french" - ]; - var irriter = [ - "french" - ]; - var isoler = [ - "french" - ]; - var ivoire = [ - "french" - ]; - var ivresse = [ - "french" - ]; - var jaillir = [ - "french" - ]; - var jambe = [ - "french" - ]; - var janvier = [ - "french" - ]; - var jardin = [ - "french" - ]; - var jauger = [ - "french" - ]; - var jaune = [ - "french" - ]; - var javelot = [ - "french" - ]; - var jetable = [ - "french" - ]; - var jeton = [ - "french" - ]; - var jeudi = [ - "french" - ]; - var jeunesse = [ - "french" - ]; - var joindre = [ - "french" - ]; - var joncher = [ - "french" - ]; - var jongler = [ - "french" - ]; - var joueur = [ - "french" - ]; - var jouissif = [ - "french" - ]; - var journal = [ - "french" - ]; - var jovial = [ - "french" - ]; - var joyau = [ - "french" - ]; - var joyeux = [ - "french" - ]; - var jubiler = [ - "french" - ]; - var jugement = [ - "french" - ]; - var jupon = [ - "french" - ]; - var juriste = [ - "french" - ]; - var justice = [ - "french" - ]; - var juteux = [ - "french" - ]; - var kayak = [ - "french" - ]; - var kimono = [ - "french" - ]; - var kiosque = [ - "french" - ]; - var labial = [ - "french" - ]; - var labourer = [ - "french" - ]; - var lactose = [ - "french" - ]; - var lagune = [ - "french" - ]; - var laine = [ - "french" - ]; - var laisser = [ - "french" - ]; - var laitier = [ - "french" - ]; - var lambeau = [ - "french" - ]; - var lamelle = [ - "french" - ]; - var lampe = [ - "french" - ]; - var lanceur = [ - "french" - ]; - var langage = [ - "french" - ]; - var lanterne = [ - "french" - ]; - var lapin = [ - "french" - ]; - var largeur = [ - "french" - ]; - var larme = [ - "french" - ]; - var laurier = [ - "french" - ]; - var lavabo = [ - "french" - ]; - var lavoir = [ - "french" - ]; - var lessive = [ - "french" - ]; - var lettre = [ - "french" - ]; - var levier = [ - "french" - ]; - var lexique = [ - "french" - ]; - var liasse = [ - "french" - ]; - var libre = [ - "french" - ]; - var licence = [ - "french" - ]; - var licorne = [ - "french" - ]; - var ligature = [ - "french" - ]; - var ligoter = [ - "french" - ]; - var ligue = [ - "french" - ]; - var limer = [ - "french" - ]; - var limite = [ - "french" - ]; - var limonade = [ - "french" - ]; - var limpide = [ - "french" - ]; - var lingot = [ - "french" - ]; - var lionceau = [ - "french" - ]; - var liquide = [ - "french" - ]; - var lister = [ - "french" - ]; - var lithium = [ - "french" - ]; - var litige = [ - "french" - ]; - var littoral = [ - "french" - ]; - var livreur = [ - "french" - ]; - var logique = [ - "french" - ]; - var lointain = [ - "french" - ]; - var loisir = [ - "french" - ]; - var lombric = [ - "french" - ]; - var loterie = [ - "french" - ]; - var louer = [ - "french" - ]; - var lourd = [ - "french" - ]; - var loutre = [ - "french" - ]; - var louve = [ - "french" - ]; - var lubie = [ - "french" - ]; - var lucide = [ - "french" - ]; - var lucratif = [ - "french" - ]; - var lueur = [ - "french" - ]; - var lugubre = [ - "french" - ]; - var luisant = [ - "french" - ]; - var lunaire = [ - "french" - ]; - var lundi = [ - "french" - ]; - var luron = [ - "french" - ]; - var lutter = [ - "french" - ]; - var luxueux = [ - "french" - ]; - var magasin = [ - "french" - ]; - var magenta = [ - "french" - ]; - var magique = [ - "french" - ]; - var maigre = [ - "french" - ]; - var maillon = [ - "french" - ]; - var maintien = [ - "french" - ]; - var mairie = [ - "french" - ]; - var maison = [ - "french" - ]; - var majorer = [ - "french" - ]; - var malaxer = [ - "french" - ]; - var malheur = [ - "french" - ]; - var malice = [ - "french" - ]; - var mallette = [ - "french" - ]; - var mammouth = [ - "french" - ]; - var mandater = [ - "french" - ]; - var maniable = [ - "french" - ]; - var manquant = [ - "french" - ]; - var manteau = [ - "french" - ]; - var manuel = [ - "french" - ]; - var marathon = [ - "french" - ]; - var marbre = [ - "french" - ]; - var marchand = [ - "french" - ]; - var mardi = [ - "french" - ]; - var maritime = [ - "french" - ]; - var marqueur = [ - "french" - ]; - var marron = [ - "french" - ]; - var marteler = [ - "french" - ]; - var mascotte = [ - "french" - ]; - var massif = [ - "french" - ]; - var matraque = [ - "french" - ]; - var maudire = [ - "french" - ]; - var maussade = [ - "french" - ]; - var mauve = [ - "french" - ]; - var maximal = [ - "french" - ]; - var meilleur = [ - "french" - ]; - var membre = [ - "french" - ]; - var menacer = [ - "french" - ]; - var mener = [ - "french" - ]; - var menhir = [ - "french" - ]; - var mensonge = [ - "french" - ]; - var mentor = [ - "french" - ]; - var mercredi = [ - "french" - ]; - var merle = [ - "french" - ]; - var messager = [ - "french" - ]; - var mesure = [ - "french" - ]; - var meuble = [ - "french" - ]; - var miauler = [ - "french" - ]; - var microbe = [ - "french" - ]; - var miette = [ - "french" - ]; - var mignon = [ - "french" - ]; - var migrer = [ - "french" - ]; - var milieu = [ - "french" - ]; - var mimique = [ - "french" - ]; - var mince = [ - "french" - ]; - var minimal = [ - "french" - ]; - var minorer = [ - "french" - ]; - var miroiter = [ - "french" - ]; - var missile = [ - "french" - ]; - var mixte = [ - "french" - ]; - var moderne = [ - "french" - ]; - var moelleux = [ - "french" - ]; - var mondial = [ - "french" - ]; - var moniteur = [ - "french" - ]; - var monnaie = [ - "french" - ]; - var monotone = [ - "french" - ]; - var monstre = [ - "french" - ]; - var montagne = [ - "french" - ]; - var monument = [ - "french" - ]; - var moqueur = [ - "french" - ]; - var morceau = [ - "french" - ]; - var morsure = [ - "french" - ]; - var mortier = [ - "french" - ]; - var moteur = [ - "french" - ]; - var motif = [ - "french" - ]; - var mouche = [ - "french" - ]; - var moufle = [ - "french" - ]; - var moulin = [ - "french" - ]; - var mousson = [ - "french" - ]; - var mouton = [ - "french" - ]; - var mouvant = [ - "french" - ]; - var multiple = [ - "french" - ]; - var munition = [ - "french" - ]; - var muraille = [ - "french" - ]; - var murmure = [ - "french" - ]; - var musicien = [ - "french" - ]; - var mutation = [ - "french" - ]; - var muter = [ - "french" - ]; - var mutuel = [ - "french" - ]; - var myriade = [ - "french" - ]; - var myrtille = [ - "french" - ]; - var mythique = [ - "french" - ]; - var nageur = [ - "french" - ]; - var nappe = [ - "french" - ]; - var narquois = [ - "french" - ]; - var narrer = [ - "french" - ]; - var natation = [ - "french" - ]; - var naufrage = [ - "french" - ]; - var nautique = [ - "french" - ]; - var navire = [ - "french" - ]; - var nectar = [ - "french" - ]; - var neige = [ - "french" - ]; - var nerveux = [ - "french" - ]; - var nettoyer = [ - "french" - ]; - var neurone = [ - "french" - ]; - var neutron = [ - "french" - ]; - var neveu = [ - "french" - ]; - var niche = [ - "french" - ]; - var nickel = [ - "french" - ]; - var nitrate = [ - "french" - ]; - var niveau = [ - "french" - ]; - var nocif = [ - "french" - ]; - var nocturne = [ - "french" - ]; - var noirceur = [ - "french" - ]; - var noisette = [ - "french" - ]; - var nomade = [ - "french" - ]; - var nombreux = [ - "french" - ]; - var nommer = [ - "french" - ]; - var normatif = [ - "french" - ]; - var notifier = [ - "french" - ]; - var notoire = [ - "french" - ]; - var nourrir = [ - "french" - ]; - var nouveau = [ - "french" - ]; - var novateur = [ - "french" - ]; - var novembre = [ - "french" - ]; - var novice = [ - "french" - ]; - var nuage = [ - "french" - ]; - var nuancer = [ - "french" - ]; - var nuire = [ - "french" - ]; - var nuisible = [ - "french" - ]; - var nuptial = [ - "french" - ]; - var nuque = [ - "french" - ]; - var nutritif = [ - "french" - ]; - var objectif = [ - "french" - ]; - var obliger = [ - "french" - ]; - var obscur = [ - "french" - ]; - var observer = [ - "french" - ]; - var obstacle = [ - "french" - ]; - var obtenir = [ - "french" - ]; - var obturer = [ - "french" - ]; - var occasion = [ - "french" - ]; - var occuper = [ - "french" - ]; - var octobre = [ - "french" - ]; - var octroyer = [ - "french" - ]; - var octupler = [ - "french" - ]; - var oculaire = [ - "french" - ]; - var odeur = [ - "french" - ]; - var odorant = [ - "french" - ]; - var offenser = [ - "french" - ]; - var officier = [ - "french" - ]; - var offrir = [ - "french" - ]; - var ogive = [ - "french" - ]; - var oiseau = [ - "french" - ]; - var oisillon = [ - "french" - ]; - var olfactif = [ - "french" - ]; - var olivier = [ - "french" - ]; - var ombrage = [ - "french" - ]; - var omettre = [ - "french" - ]; - var onctueux = [ - "french" - ]; - var onduler = [ - "french" - ]; - var onirique = [ - "french" - ]; - var opale = [ - "french" - ]; - var opaque$1 = [ - "french" - ]; - var opportun = [ - "french" - ]; - var opprimer = [ - "french" - ]; - var opter = [ - "french" - ]; - var optique = [ - "french" - ]; - var orageux = [ - "french" - ]; - var orbite = [ - "french" - ]; - var ordonner = [ - "french" - ]; - var oreille = [ - "french" - ]; - var organe = [ - "french" - ]; - var orgueil = [ - "french" - ]; - var orifice = [ - "french" - ]; - var ornement = [ - "french" - ]; - var orque = [ - "french" - ]; - var ortie = [ - "french" - ]; - var osciller = [ - "french" - ]; - var osmose = [ - "french" - ]; - var ossature = [ - "french" - ]; - var otarie = [ - "french" - ]; - var ouragan = [ - "french" - ]; - var ourson = [ - "french" - ]; - var outil = [ - "french" - ]; - var outrager = [ - "french" - ]; - var ouvrage = [ - "french" - ]; - var ovation = [ - "french" - ]; - var oxyde = [ - "french" - ]; - var paisible = [ - "french" - ]; - var palourde = [ - "french" - ]; - var palper = [ - "french" - ]; - var panache = [ - "french" - ]; - var pangolin = [ - "french" - ]; - var paniquer = [ - "french" - ]; - var panneau = [ - "french" - ]; - var panorama = [ - "french" - ]; - var pantalon = [ - "french" - ]; - var papaye = [ - "french" - ]; - var papier = [ - "french" - ]; - var papoter = [ - "french" - ]; - var papyrus = [ - "french" - ]; - var paradoxe = [ - "french" - ]; - var parcelle = [ - "french" - ]; - var paresse = [ - "french" - ]; - var parfumer = [ - "french" - ]; - var parler = [ - "french" - ]; - var parole = [ - "french" - ]; - var parrain = [ - "french" - ]; - var parsemer = [ - "french" - ]; - var partager = [ - "french" - ]; - var parure = [ - "french" - ]; - var parvenir = [ - "french" - ]; - var passion = [ - "french" - ]; - var paternel = [ - "french" - ]; - var patience = [ - "french" - ]; - var patron = [ - "french", - "turkish" - ]; - var pavillon = [ - "french" - ]; - var pavoiser = [ - "french" - ]; - var payer = [ - "french" - ]; - var paysage = [ - "french" - ]; - var peigne = [ - "french" - ]; - var peintre = [ - "french" - ]; - var pelage = [ - "french" - ]; - var pelle = [ - "french" - ]; - var pelouse = [ - "french" - ]; - var peluche = [ - "french" - ]; - var pendule = [ - "french" - ]; - var pensif = [ - "french" - ]; - var perdrix = [ - "french" - ]; - var perforer = [ - "french" - ]; - var permuter = [ - "french" - ]; - var perplexe = [ - "french" - ]; - var persil = [ - "french" - ]; - var perte = [ - "french" - ]; - var peser = [ - "french" - ]; - var petit = [ - "french" - ]; - var peuple = [ - "french" - ]; - var pharaon = [ - "french" - ]; - var phobie = [ - "french" - ]; - var phoque = [ - "french" - ]; - var photon = [ - "french" - ]; - var physique = [ - "french" - ]; - var pictural = [ - "french" - ]; - var pierre = [ - "french" - ]; - var pieuvre = [ - "french" - ]; - var pilote = [ - "french" - ]; - var pinceau = [ - "french" - ]; - var pipette = [ - "french" - ]; - var piquer = [ - "french" - ]; - var pirogue = [ - "french" - ]; - var piscine = [ - "french" - ]; - var piston = [ - "french" - ]; - var pivoter = [ - "french" - ]; - var pixel = [ - "french" - ]; - var placard = [ - "french" - ]; - var plafond = [ - "french" - ]; - var plaisir = [ - "french" - ]; - var planer = [ - "french" - ]; - var plaque = [ - "french" - ]; - var plastron = [ - "french" - ]; - var plateau = [ - "french" - ]; - var pleurer = [ - "french" - ]; - var plexus = [ - "french" - ]; - var pliage = [ - "french" - ]; - var plomb = [ - "french" - ]; - var plonger = [ - "french" - ]; - var pluie = [ - "french" - ]; - var plumage = [ - "french" - ]; - var pochette = [ - "french" - ]; - var pointe = [ - "french" - ]; - var poirier = [ - "french" - ]; - var poisson = [ - "french" - ]; - var poivre = [ - "french" - ]; - var polaire = [ - "french" - ]; - var policier = [ - "french" - ]; - var pollen = [ - "french" - ]; - var polygone = [ - "french" - ]; - var pommade = [ - "french" - ]; - var pompier = [ - "french" - ]; - var ponctuel = [ - "french" - ]; - var poney = [ - "french" - ]; - var portique = [ - "french" - ]; - var posture = [ - "french" - ]; - var potager = [ - "french" - ]; - var poteau = [ - "french" - ]; - var potion = [ - "french" - ]; - var pouce = [ - "french" - ]; - var poulain = [ - "french" - ]; - var poumon = [ - "french" - ]; - var pourpre = [ - "french" - ]; - var poussin = [ - "french" - ]; - var pouvoir = [ - "french" - ]; - var prairie = [ - "french" - ]; - var pratique = [ - "french" - ]; - var primitif = [ - "french" - ]; - var prince = [ - "french" - ]; - var priver = [ - "french" - ]; - var prodige = [ - "french" - ]; - var profond = [ - "french" - ]; - var proie = [ - "french" - ]; - var projeter = [ - "french" - ]; - var prologue = [ - "french" - ]; - var promener = [ - "french" - ]; - var propre = [ - "french" - ]; - var prouesse = [ - "french" - ]; - var proverbe = [ - "french" - ]; - var prudence = [ - "french" - ]; - var pruneau = [ - "french" - ]; - var psychose = [ - "french" - ]; - var puceron = [ - "french" - ]; - var puiser = [ - "french" - ]; - var pulpe = [ - "french" - ]; - var pulsar = [ - "french" - ]; - var punaise = [ - "french" - ]; - var punitif = [ - "french" - ]; - var pupitre = [ - "french" - ]; - var purifier = [ - "french" - ]; - var pyramide = [ - "french" - ]; - var quasar = [ - "french" - ]; - var querelle = [ - "french" - ]; - var quitter = [ - "french" - ]; - var quotient = [ - "french" - ]; - var racine = [ - "french" - ]; - var raconter = [ - "french" - ]; - var radieux = [ - "french" - ]; - var ragondin = [ - "french" - ]; - var raideur = [ - "french" - ]; - var raisin = [ - "french" - ]; - var ralentir = [ - "french" - ]; - var rallonge = [ - "french" - ]; - var ramasser = [ - "french" - ]; - var rapide = [ - "french" - ]; - var rasage = [ - "french" - ]; - var ratisser = [ - "french" - ]; - var ravager = [ - "french" - ]; - var ravin = [ - "french" - ]; - var rayonner = [ - "french" - ]; - var recevoir = [ - "french" - ]; - var recruter = [ - "french" - ]; - var reculer = [ - "french" - ]; - var recycler = [ - "french" - ]; - var redouter = [ - "french" - ]; - var refaire = [ - "french" - ]; - var refrain = [ - "french" - ]; - var refuge = [ - "french" - ]; - var rejeter = [ - "french" - ]; - var rejouer = [ - "french" - ]; - var relatif = [ - "french" - ]; - var relever = [ - "french" - ]; - var remarque = [ - "french" - ]; - var remise = [ - "french" - ]; - var remonter = [ - "french" - ]; - var remplir = [ - "french" - ]; - var remuer = [ - "french" - ]; - var renard = [ - "french" - ]; - var renfort = [ - "french" - ]; - var renifler = [ - "french" - ]; - var renoncer = [ - "french" - ]; - var rentrer = [ - "french" - ]; - var renvoi = [ - "french" - ]; - var replier = [ - "french" - ]; - var reporter = [ - "french" - ]; - var reprise = [ - "french" - ]; - var reptile = [ - "french" - ]; - var requin = [ - "french" - ]; - var respect = [ - "french" - ]; - var rester = [ - "french" - ]; - var retenir = [ - "french" - ]; - var retomber = [ - "french" - ]; - var retracer = [ - "french" - ]; - var revanche = [ - "french" - ]; - var revivre = [ - "french" - ]; - var richesse = [ - "french" - ]; - var rideau = [ - "french" - ]; - var rieur = [ - "french" - ]; - var rigide = [ - "french" - ]; - var rigoler = [ - "french" - ]; - var rincer = [ - "french" - ]; - var riposter = [ - "french" - ]; - var risible = [ - "french" - ]; - var risque = [ - "french" - ]; - var rituel = [ - "french" - ]; - var rocheux = [ - "french" - ]; - var rompre = [ - "french" - ]; - var ronce = [ - "french" - ]; - var rondin = [ - "french" - ]; - var roseau = [ - "french" - ]; - var rosier = [ - "french" - ]; - var rotatif = [ - "french" - ]; - var rotor = [ - "french" - ]; - var rotule = [ - "french" - ]; - var rouge = [ - "french" - ]; - var rouille = [ - "french" - ]; - var rouleau = [ - "french" - ]; - var routine = [ - "french" - ]; - var royaume = [ - "french" - ]; - var ruban = [ - "french" - ]; - var rubis = [ - "french" - ]; - var ruche = [ - "french" - ]; - var ruelle = [ - "french" - ]; - var rugueux = [ - "french" - ]; - var ruiner = [ - "french" - ]; - var ruisseau = [ - "french" - ]; - var ruser = [ - "french" - ]; - var rustique = [ - "french" - ]; - var rythme = [ - "french" - ]; - var sabler = [ - "french" - ]; - var saboter = [ - "french" - ]; - var sabre = [ - "french" - ]; - var sacoche = [ - "french" - ]; - var safari = [ - "french" - ]; - var sagesse = [ - "french" - ]; - var saisir = [ - "french" - ]; - var salade = [ - "french" - ]; - var salive = [ - "french" - ]; - var saluer = [ - "french" - ]; - var samedi = [ - "french" - ]; - var sanction = [ - "french" - ]; - var sanglier = [ - "french" - ]; - var sarcasme = [ - "french" - ]; - var sardine = [ - "french" - ]; - var saturer = [ - "french" - ]; - var saugrenu = [ - "french" - ]; - var saumon = [ - "french" - ]; - var sauter = [ - "french" - ]; - var sauvage = [ - "french" - ]; - var savant = [ - "french" - ]; - var savonner = [ - "french" - ]; - var scalpel = [ - "french" - ]; - var scandale = [ - "french" - ]; - var sceptre = [ - "french" - ]; - var scinder = [ - "french" - ]; - var score = [ - "french" - ]; - var scrutin = [ - "french" - ]; - var sculpter = [ - "french" - ]; - var secouer = [ - "french" - ]; - var seigneur = [ - "french" - ]; - var semaine = [ - "french" - ]; - var sembler = [ - "french" - ]; - var semence = [ - "french" - ]; - var sensible = [ - "french" - ]; - var serein = [ - "french" - ]; - var sergent = [ - "french" - ]; - var serrure = [ - "french" - ]; - var sevrage = [ - "french" - ]; - var sextuple = [ - "french" - ]; - var siffler = [ - "french" - ]; - var sigle = [ - "french" - ]; - var signal = [ - "french" - ]; - var silence = [ - "french" - ]; - var silicium = [ - "french" - ]; - var sinistre = [ - "french" - ]; - var siphon = [ - "french" - ]; - var sirop = [ - "french" - ]; - var sismique = [ - "french" - ]; - var situer = [ - "french" - ]; - var skier = [ - "french" - ]; - var socle = [ - "french" - ]; - var sodium = [ - "french" - ]; - var soigneux = [ - "french" - ]; - var soldat = [ - "french" - ]; - var soleil = [ - "french" - ]; - var solitude = [ - "french" - ]; - var soluble = [ - "french" - ]; - var sombre = [ - "french" - ]; - var sommeil = [ - "french" - ]; - var somnoler = [ - "french" - ]; - var sonde = [ - "french" - ]; - var songeur = [ - "french" - ]; - var sonnette = [ - "french" - ]; - var sonore = [ - "french" - ]; - var sorcier = [ - "french" - ]; - var sortir = [ - "french" - ]; - var sosie = [ - "french" - ]; - var sottise = [ - "french" - ]; - var soucieux = [ - "french" - ]; - var soudure = [ - "french" - ]; - var souffle = [ - "french" - ]; - var soulever = [ - "french" - ]; - var soupape = [ - "french" - ]; - var soutirer = [ - "french" - ]; - var souvenir = [ - "french" - ]; - var spacieux = [ - "french" - ]; - var spiral = [ - "french", - "turkish" - ]; - var station = [ - "french" - ]; - var sternum = [ - "french" - ]; - var stimulus = [ - "french" - ]; - var stipuler = [ - "french" - ]; - var strict = [ - "french" - ]; - var studieux = [ - "french" - ]; - var stupeur = [ - "french" - ]; - var styliste = [ - "french" - ]; - var sublime = [ - "french" - ]; - var substrat = [ - "french" - ]; - var subtil = [ - "french" - ]; - var subvenir = [ - "french" - ]; - var sucre = [ - "french" - ]; - var suffixe = [ - "french" - ]; - var suiveur = [ - "french" - ]; - var sulfate = [ - "french" - ]; - var superbe = [ - "french" - ]; - var supplier = [ - "french" - ]; - var suricate = [ - "french" - ]; - var surmener = [ - "french" - ]; - var sursaut = [ - "french" - ]; - var survie = [ - "french" - ]; - var syllabe = [ - "french" - ]; - var symbole = [ - "french" - ]; - var synapse = [ - "french" - ]; - var syntaxe = [ - "french" - ]; - var tabac = [ - "french" - ]; - var tablier = [ - "french" - ]; - var tactile = [ - "french" - ]; - var tailler = [ - "french" - ]; - var talisman = [ - "french" - ]; - var talonner = [ - "french" - ]; - var tambour = [ - "french" - ]; - var tamiser = [ - "french" - ]; - var tangible = [ - "french" - ]; - var tapis = [ - "french" - ]; - var taquiner = [ - "french" - ]; - var tarder = [ - "french" - ]; - var tarif = [ - "french" - ]; - var tartine = [ - "french" - ]; - var tasse = [ - "french" - ]; - var tatami = [ - "french" - ]; - var tatouage = [ - "french" - ]; - var taupe = [ - "french" - ]; - var taureau = [ - "french" - ]; - var taxer = [ - "french" - ]; - var temporel = [ - "french" - ]; - var tenaille = [ - "french" - ]; - var tendre = [ - "french" - ]; - var teneur = [ - "french" - ]; - var tenir = [ - "french" - ]; - var tension = [ - "french" - ]; - var terminer = [ - "french" - ]; - var terne = [ - "french" - ]; - var terrible = [ - "french" - ]; - var texte = [ - "french" - ]; - var thorax = [ - "french" - ]; - var tibia = [ - "french" - ]; - var timide = [ - "french" - ]; - var tirelire = [ - "french" - ]; - var tiroir = [ - "french" - ]; - var tissu = [ - "french" - ]; - var titane = [ - "french" - ]; - var titre = [ - "french" - ]; - var tituber = [ - "french" - ]; - var toboggan = [ - "french" - ]; - var tomate = [ - "french" - ]; - var tonique = [ - "french" - ]; - var tonneau = [ - "french" - ]; - var toponyme = [ - "french" - ]; - var torche = [ - "french" - ]; - var tordre = [ - "french" - ]; - var tornade = [ - "french" - ]; - var torpille = [ - "french" - ]; - var torrent = [ - "french" - ]; - var torse = [ - "french" - ]; - var tortue = [ - "french" - ]; - var totem = [ - "french" - ]; - var toucher = [ - "french" - ]; - var tournage = [ - "french" - ]; - var tousser = [ - "french" - ]; - var toxine = [ - "french" - ]; - var traction = [ - "french" - ]; - var trafic = [ - "french" - ]; - var tragique = [ - "french" - ]; - var trahir = [ - "french" - ]; - var trancher = [ - "french" - ]; - var travail = [ - "french" - ]; - var tremper = [ - "french" - ]; - var treuil = [ - "french" - ]; - var triage = [ - "french" - ]; - var tribunal = [ - "french" - ]; - var tricoter = [ - "french" - ]; - var trilogie = [ - "french" - ]; - var triomphe = [ - "french" - ]; - var tripler = [ - "french" - ]; - var triturer = [ - "french" - ]; - var trivial = [ - "french" - ]; - var trombone = [ - "french" - ]; - var tronc = [ - "french" - ]; - var tropical = [ - "french" - ]; - var troupeau = [ - "french" - ]; - var tuile = [ - "french" - ]; - var tulipe = [ - "french" - ]; - var tumulte = [ - "french" - ]; - var turbine = [ - "french" - ]; - var tuteur = [ - "french" - ]; - var tutoyer = [ - "french" - ]; - var tuyau = [ - "french" - ]; - var tympan = [ - "french" - ]; - var typhon = [ - "french" - ]; - var typique = [ - "french" - ]; - var tyran = [ - "french" - ]; - var ubuesque = [ - "french" - ]; - var ultime = [ - "french" - ]; - var ultrason = [ - "french" - ]; - var unanime = [ - "french" - ]; - var unifier = [ - "french" - ]; - var union = [ - "french" - ]; - var unitaire = [ - "french" - ]; - var univers = [ - "french" - ]; - var uranium = [ - "french" - ]; - var urbain = [ - "french" - ]; - var urticant = [ - "french" - ]; - var usine = [ - "french" - ]; - var usuel = [ - "french" - ]; - var usure = [ - "french" - ]; - var utile = [ - "french" - ]; - var utopie = [ - "french" - ]; - var vacarme = [ - "french" - ]; - var vaccin = [ - "french" - ]; - var vagabond = [ - "french" - ]; - var vaillant = [ - "french" - ]; - var vaincre = [ - "french" - ]; - var vaisseau = [ - "french" - ]; - var valable = [ - "french" - ]; - var valise = [ - "french" - ]; - var vallon = [ - "french" - ]; - var vampire = [ - "french" - ]; - var vanille = [ - "french" - ]; - var vapeur = [ - "french" - ]; - var varier = [ - "french" - ]; - var vaseux = [ - "french" - ]; - var vassal = [ - "french" - ]; - var vaste = [ - "french" - ]; - var vecteur = [ - "french" - ]; - var vedette = [ - "french" - ]; - var veinard = [ - "french" - ]; - var vendredi = [ - "french" - ]; - var venger = [ - "french" - ]; - var venimeux = [ - "french" - ]; - var ventouse = [ - "french" - ]; - var verdure = [ - "french" - ]; - var vernir = [ - "french" - ]; - var verrou = [ - "french" - ]; - var verser = [ - "french" - ]; - var vertu = [ - "french" - ]; - var veston = [ - "french" - ]; - var vexant = [ - "french" - ]; - var vexer = [ - "french" - ]; - var viaduc = [ - "french" - ]; - var viande = [ - "french" - ]; - var victoire = [ - "french" - ]; - var vidange = [ - "french" - ]; - var vignette = [ - "french" - ]; - var vigueur = [ - "french" - ]; - var vilain = [ - "french" - ]; - var vinaigre = [ - "french" - ]; - var violon = [ - "french" - ]; - var virement = [ - "french" - ]; - var virtuose = [ - "french" - ]; - var visage = [ - "french" - ]; - var viseur = [ - "french" - ]; - var vision = [ - "french" - ]; - var visqueux = [ - "french" - ]; - var visuel = [ - "french" - ]; - var vitesse = [ - "french" - ]; - var viticole = [ - "french" - ]; - var vitrine = [ - "french" - ]; - var vivace = [ - "french" - ]; - var vivipare = [ - "french" - ]; - var vocation = [ - "french" - ]; - var voguer = [ - "french" - ]; - var voile = [ - "french" - ]; - var voisin = [ - "french" - ]; - var voiture = [ - "french" - ]; - var volaille = [ - "french" - ]; - var volcan = [ - "french" - ]; - var voltiger = [ - "french" - ]; - var vorace = [ - "french" - ]; - var vortex = [ - "french" - ]; - var voter = [ - "french" - ]; - var vouloir = [ - "french" - ]; - var voyelle = [ - "french" - ]; - var yacht = [ - "french" - ]; - var zeste = [ - "french" - ]; - var zoologie = [ - "french" - ]; - var abaco = [ - "italian" - ]; - var abbaglio = [ - "italian" - ]; - var abbinato = [ - "italian" - ]; - var abete = [ - "italian" - ]; - var abisso = [ - "italian" - ]; - var abolire = [ - "italian" - ]; - var abrasivo = [ - "italian" - ]; - var abrogato = [ - "italian" - ]; - var accadere = [ - "italian" - ]; - var accenno = [ - "italian" - ]; - var accusato = [ - "italian" - ]; - var acetone = [ - "italian" - ]; - var achille = [ - "italian" - ]; - var acido = [ - "italian" - ]; - var acqua = [ - "italian" - ]; - var acre = [ - "italian" - ]; - var acrilico = [ - "italian" - ]; - var acrobata = [ - "italian" - ]; - var acuto = [ - "italian" - ]; - var adagio = [ - "italian" - ]; - var addebito = [ - "italian" - ]; - var addome = [ - "italian" - ]; - var adeguato = [ - "italian" - ]; - var aderire = [ - "italian" - ]; - var adipe = [ - "italian" - ]; - var adottare = [ - "italian" - ]; - var adulare = [ - "italian" - ]; - var affabile = [ - "italian" - ]; - var affetto = [ - "italian" - ]; - var affisso = [ - "italian" - ]; - var affranto = [ - "italian" - ]; - var aforisma = [ - "italian" - ]; - var afoso = [ - "italian" - ]; - var africano = [ - "italian" - ]; - var agave = [ - "italian" - ]; - var agente = [ - "italian" - ]; - var agevole = [ - "italian" - ]; - var aggancio = [ - "italian" - ]; - var agire = [ - "italian" - ]; - var agitare = [ - "italian" - ]; - var agonismo = [ - "italian" - ]; - var agricolo = [ - "italian" - ]; - var agrumeto = [ - "italian" - ]; - var aguzzo = [ - "italian" - ]; - var alabarda = [ - "italian" - ]; - var alato = [ - "italian" - ]; - var albatro = [ - "italian" - ]; - var alberato = [ - "italian" - ]; - var albo = [ - "italian" - ]; - var albume = [ - "italian" - ]; - var alce = [ - "italian" - ]; - var alcolico = [ - "italian" - ]; - var alettone = [ - "italian" - ]; - var alfa = [ - "italian" - ]; - var algebra = [ - "italian" - ]; - var aliante = [ - "italian" - ]; - var alibi = [ - "italian" - ]; - var alimento = [ - "italian" - ]; - var allagato = [ - "italian" - ]; - var allegro = [ - "italian" - ]; - var allievo = [ - "italian" - ]; - var allodola = [ - "italian" - ]; - var allusivo = [ - "italian" - ]; - var almeno = [ - "italian" - ]; - var alogeno = [ - "italian" - ]; - var alpaca = [ - "italian" - ]; - var alpestre = [ - "italian" - ]; - var altalena = [ - "italian" - ]; - var alterno = [ - "italian" - ]; - var alticcio = [ - "italian" - ]; - var altrove = [ - "italian" - ]; - var alunno = [ - "italian" - ]; - var alveolo = [ - "italian" - ]; - var alzare = [ - "italian" - ]; - var amalgama = [ - "italian" - ]; - var amanita = [ - "italian" - ]; - var amarena = [ - "italian" - ]; - var ambito = [ - "italian" - ]; - var ambrato = [ - "italian" - ]; - var ameba = [ - "italian" - ]; - var america = [ - "italian" - ]; - var ametista = [ - "italian" - ]; - var amico = [ - "italian" - ]; - var ammasso = [ - "italian" - ]; - var ammenda = [ - "italian" - ]; - var ammirare = [ - "italian" - ]; - var ammonito = [ - "italian" - ]; - var amore = [ - "italian" - ]; - var ampio = [ - "italian" - ]; - var ampliare = [ - "italian" - ]; - var amuleto = [ - "italian" - ]; - var anacardo = [ - "italian" - ]; - var anagrafe = [ - "italian" - ]; - var analista = [ - "italian" - ]; - var anarchia = [ - "italian" - ]; - var anatra = [ - "italian" - ]; - var anca = [ - "italian" - ]; - var ancella = [ - "italian" - ]; - var ancora = [ - "italian" - ]; - var andare = [ - "italian" - ]; - var andrea = [ - "italian" - ]; - var anello = [ - "italian" - ]; - var angelo = [ - "italian" - ]; - var angolare = [ - "italian" - ]; - var angusto = [ - "italian" - ]; - var anima = [ - "italian" - ]; - var annegare = [ - "italian" - ]; - var annidato = [ - "italian" - ]; - var anno = [ - "italian" - ]; - var annuncio = [ - "italian" - ]; - var anonimo = [ - "italian" - ]; - var anticipo = [ - "italian" - ]; - var anzi = [ - "italian" - ]; - var apatico = [ - "italian" - ]; - var apertura = [ - "italian" - ]; - var apode = [ - "italian" - ]; - var apparire = [ - "italian" - ]; - var appetito = [ - "italian" - ]; - var appoggio = [ - "italian" - ]; - var approdo = [ - "italian" - ]; - var appunto = [ - "italian" - ]; - var aprile = [ - "italian" - ]; - var arabica = [ - "italian" - ]; - var arachide = [ - "italian" - ]; - var aragosta = [ - "italian" - ]; - var araldica = [ - "italian" - ]; - var arancio = [ - "italian" - ]; - var aratura = [ - "italian" - ]; - var arazzo = [ - "italian" - ]; - var arbitro = [ - "italian" - ]; - var archivio = [ - "italian" - ]; - var ardito = [ - "italian" - ]; - var arenile = [ - "italian" - ]; - var argento = [ - "italian" - ]; - var argine = [ - "italian" - ]; - var arguto = [ - "italian" - ]; - var aria = [ - "italian" - ]; - var armonia = [ - "italian" - ]; - var arnese = [ - "italian" - ]; - var arredato = [ - "italian" - ]; - var arringa = [ - "italian" - ]; - var arrosto = [ - "italian" - ]; - var arsenico = [ - "italian" - ]; - var arso = [ - "italian" - ]; - var artefice = [ - "italian" - ]; - var arzillo = [ - "italian" - ]; - var asciutto = [ - "italian" - ]; - var ascolto = [ - "italian" - ]; - var asepsi = [ - "italian" - ]; - var asettico = [ - "italian" - ]; - var asfalto = [ - "italian" - ]; - var asino = [ - "italian" - ]; - var asola = [ - "italian" - ]; - var aspirato = [ - "italian" - ]; - var aspro = [ - "italian" - ]; - var assaggio = [ - "italian" - ]; - var asse = [ - "italian" - ]; - var assoluto = [ - "italian" - ]; - var assurdo = [ - "italian" - ]; - var asta = [ - "italian" - ]; - var astenuto = [ - "italian" - ]; - var astice = [ - "italian" - ]; - var astratto = [ - "italian" - ]; - var atavico = [ - "italian" - ]; - var ateismo = [ - "italian" - ]; - var atomico = [ - "italian" - ]; - var atono = [ - "italian" - ]; - var attesa = [ - "italian" - ]; - var attivare = [ - "italian" - ]; - var attorno = [ - "italian" - ]; - var attrito = [ - "italian" - ]; - var attuale = [ - "italian" - ]; - var ausilio = [ - "italian" - ]; - var austria = [ - "italian" - ]; - var autista = [ - "italian" - ]; - var autonomo = [ - "italian" - ]; - var autunno = [ - "italian" - ]; - var avanzato = [ - "italian" - ]; - var avere = [ - "italian" - ]; - var avvenire = [ - "italian" - ]; - var avviso = [ - "italian" - ]; - var avvolgere = [ - "italian" - ]; - var azione = [ - "italian" - ]; - var azoto = [ - "italian" - ]; - var azzimo = [ - "italian" - ]; - var azzurro = [ - "italian" - ]; - var babele = [ - "italian" - ]; - var baccano = [ - "italian" - ]; - var bacino = [ - "italian" - ]; - var baco = [ - "italian" - ]; - var badessa = [ - "italian" - ]; - var badilata = [ - "italian" - ]; - var bagnato = [ - "italian" - ]; - var baita = [ - "italian" - ]; - var balcone = [ - "italian" - ]; - var baldo = [ - "italian" - ]; - var balena = [ - "italian" - ]; - var ballata = [ - "italian" - ]; - var balzano = [ - "italian" - ]; - var bambino = [ - "italian" - ]; - var bandire = [ - "italian" - ]; - var baraonda = [ - "italian" - ]; - var barbaro = [ - "italian" - ]; - var barca = [ - "italian" - ]; - var baritono = [ - "italian" - ]; - var barlume = [ - "italian" - ]; - var barocco = [ - "italian" - ]; - var basilico = [ - "italian" - ]; - var basso = [ - "italian" - ]; - var batosta = [ - "italian" - ]; - var battuto = [ - "italian" - ]; - var baule = [ - "italian" - ]; - var bava = [ - "italian" - ]; - var bavosa = [ - "italian" - ]; - var becco = [ - "italian" - ]; - var beffa = [ - "italian" - ]; - var belgio = [ - "italian" - ]; - var belva = [ - "italian" - ]; - var benda = [ - "italian" - ]; - var benevole = [ - "italian" - ]; - var benigno = [ - "italian" - ]; - var benzina = [ - "italian" - ]; - var bere = [ - "italian" - ]; - var berlina = [ - "italian" - ]; - var beta = [ - "italian" - ]; - var bibita = [ - "italian" - ]; - var bici = [ - "italian" - ]; - var bidone = [ - "italian" - ]; - var bifido = [ - "italian" - ]; - var biga = [ - "italian" - ]; - var bilancia = [ - "italian" - ]; - var bimbo = [ - "italian" - ]; - var binocolo = [ - "italian" - ]; - var biologo = [ - "italian" - ]; - var bipede = [ - "italian" - ]; - var bipolare = [ - "italian" - ]; - var birbante = [ - "italian" - ]; - var birra = [ - "italian" - ]; - var biscotto = [ - "italian" - ]; - var bisesto = [ - "italian" - ]; - var bisnonno = [ - "italian" - ]; - var bisonte = [ - "italian" - ]; - var bisturi = [ - "italian" - ]; - var bizzarro = [ - "italian" - ]; - var blando = [ - "italian" - ]; - var blatta = [ - "italian" - ]; - var bollito = [ - "italian" - ]; - var bonifico = [ - "italian" - ]; - var bordo = [ - "italian" - ]; - var bosco = [ - "italian" - ]; - var botanico = [ - "italian" - ]; - var bottino = [ - "italian" - ]; - var bozzolo = [ - "italian" - ]; - var braccio = [ - "italian" - ]; - var bradipo = [ - "italian" - ]; - var brama = [ - "italian" - ]; - var branca = [ - "italian" - ]; - var bravura = [ - "italian" - ]; - var bretella = [ - "italian" - ]; - var brevetto = [ - "italian" - ]; - var brezza = [ - "italian" - ]; - var briglia = [ - "italian" - ]; - var brillante = [ - "italian" - ]; - var brindare = [ - "italian" - ]; - var broccolo = [ - "italian" - ]; - var brodo = [ - "italian" - ]; - var bronzina = [ - "italian" - ]; - var brullo = [ - "italian" - ]; - var bruno = [ - "italian" - ]; - var bubbone = [ - "italian" - ]; - var buca = [ - "italian" - ]; - var budino = [ - "italian" - ]; - var buffone = [ - "italian" - ]; - var buio = [ - "italian" - ]; - var bulbo = [ - "italian" - ]; - var buono = [ - "italian" - ]; - var burlone = [ - "italian" - ]; - var burrasca = [ - "italian" - ]; - var bussola = [ - "italian" - ]; - var busta = [ - "italian" - ]; - var cadetto = [ - "italian" - ]; - var caduco = [ - "italian" - ]; - var calamaro = [ - "italian" - ]; - var calcolo = [ - "italian" - ]; - var calesse = [ - "italian" - ]; - var calibro = [ - "italian" - ]; - var calmo = [ - "italian" - ]; - var caloria = [ - "italian" - ]; - var cambusa = [ - "italian" - ]; - var camerata = [ - "italian" - ]; - var camicia = [ - "italian" - ]; - var cammino = [ - "italian" - ]; - var camola = [ - "italian" - ]; - var campale = [ - "italian" - ]; - var canapa = [ - "italian" - ]; - var candela = [ - "italian" - ]; - var cane = [ - "italian" - ]; - var canino = [ - "italian" - ]; - var canotto = [ - "italian" - ]; - var cantina = [ - "italian" - ]; - var capace = [ - "italian" - ]; - var capello = [ - "italian" - ]; - var capitolo = [ - "italian" - ]; - var capogiro = [ - "italian" - ]; - var cappero = [ - "italian" - ]; - var capra = [ - "italian" - ]; - var capsula = [ - "italian" - ]; - var carapace = [ - "italian" - ]; - var carcassa = [ - "italian" - ]; - var cardo = [ - "italian" - ]; - var carisma = [ - "italian" - ]; - var carovana = [ - "italian" - ]; - var carretto = [ - "italian" - ]; - var cartolina = [ - "italian" - ]; - var casaccio = [ - "italian" - ]; - var cascata = [ - "italian" - ]; - var caserma = [ - "italian" - ]; - var caso = [ - "italian" - ]; - var cassone = [ - "italian" - ]; - var castello = [ - "italian" - ]; - var casuale = [ - "italian" - ]; - var catasta = [ - "italian" - ]; - var catena = [ - "italian" - ]; - var catrame = [ - "italian" - ]; - var cauto = [ - "italian" - ]; - var cavillo = [ - "italian" - ]; - var cedibile = [ - "italian" - ]; - var cedrata = [ - "italian" - ]; - var cefalo = [ - "italian" - ]; - var celebre = [ - "italian" - ]; - var cellulare = [ - "italian" - ]; - var cena = [ - "italian" - ]; - var cenone = [ - "italian" - ]; - var centesimo = [ - "italian" - ]; - var ceramica = [ - "italian" - ]; - var cercare = [ - "italian" - ]; - var certo = [ - "italian" - ]; - var cerume = [ - "italian" - ]; - var cervello = [ - "italian" - ]; - var cesoia = [ - "italian" - ]; - var cespo = [ - "italian" - ]; - var ceto = [ - "italian" - ]; - var chela = [ - "italian" - ]; - var chiaro = [ - "italian" - ]; - var chicca = [ - "italian" - ]; - var chiedere = [ - "italian" - ]; - var chimera = [ - "italian" - ]; - var china = [ - "italian" - ]; - var chirurgo = [ - "italian" - ]; - var chitarra = [ - "italian" - ]; - var ciao = [ - "italian" - ]; - var ciclismo = [ - "italian" - ]; - var cifrare = [ - "italian" - ]; - var cigno = [ - "italian" - ]; - var cilindro = [ - "italian" - ]; - var ciottolo = [ - "italian" - ]; - var circa = [ - "italian" - ]; - var cirrosi = [ - "italian" - ]; - var citrico = [ - "italian" - ]; - var cittadino = [ - "italian" - ]; - var ciuffo = [ - "italian" - ]; - var civetta = [ - "italian" - ]; - var civile = [ - "italian" - ]; - var classico = [ - "italian" - ]; - var clinica = [ - "italian" - ]; - var cloro = [ - "italian" - ]; - var cocco = [ - "italian" - ]; - var codardo = [ - "italian" - ]; - var codice = [ - "italian" - ]; - var coerente = [ - "italian" - ]; - var cognome = [ - "italian" - ]; - var collare = [ - "italian" - ]; - var colmato = [ - "italian" - ]; - var colore = [ - "italian" - ]; - var colposo = [ - "italian" - ]; - var coltivato = [ - "italian" - ]; - var colza = [ - "italian" - ]; - var coma = [ - "italian" - ]; - var cometa = [ - "italian" - ]; - var commando = [ - "italian" - ]; - var comodo = [ - "italian" - ]; - var computer = [ - "italian" - ]; - var comune = [ - "italian" - ]; - var conciso = [ - "italian" - ]; - var condurre = [ - "italian" - ]; - var conferma = [ - "italian" - ]; - var congelare = [ - "italian" - ]; - var coniuge = [ - "italian" - ]; - var connesso = [ - "italian" - ]; - var conoscere = [ - "italian" - ]; - var consumo = [ - "italian" - ]; - var continuo = [ - "italian" - ]; - var convegno = [ - "italian" - ]; - var coperto = [ - "italian" - ]; - var copione = [ - "italian" - ]; - var coppia = [ - "italian" - ]; - var copricapo = [ - "italian" - ]; - var corazza = [ - "italian" - ]; - var cordata = [ - "italian" - ]; - var coricato = [ - "italian" - ]; - var cornice = [ - "italian" - ]; - var corolla = [ - "italian" - ]; - var corpo = [ - "italian" - ]; - var corredo = [ - "italian" - ]; - var corsia = [ - "italian" - ]; - var cortese = [ - "italian" - ]; - var cosmico = [ - "italian" - ]; - var costante = [ - "italian" - ]; - var cottura = [ - "italian" - ]; - var covato = [ - "italian" - ]; - var cratere = [ - "italian" - ]; - var cravatta = [ - "italian" - ]; - var creato = [ - "italian" - ]; - var credere = [ - "italian" - ]; - var cremoso = [ - "italian" - ]; - var crescita = [ - "italian" - ]; - var creta = [ - "italian" - ]; - var criceto = [ - "italian" - ]; - var crinale = [ - "italian" - ]; - var crisi = [ - "italian" - ]; - var critico = [ - "italian" - ]; - var croce = [ - "italian" - ]; - var cronaca = [ - "italian" - ]; - var crostata = [ - "italian" - ]; - var cruciale = [ - "italian" - ]; - var crusca = [ - "italian" - ]; - var cucire = [ - "italian" - ]; - var cuculo = [ - "italian" - ]; - var cugino = [ - "italian" - ]; - var cullato = [ - "italian" - ]; - var cupola = [ - "italian" - ]; - var curatore = [ - "italian" - ]; - var cursore = [ - "italian" - ]; - var curvo = [ - "italian" - ]; - var cuscino = [ - "italian" - ]; - var custode = [ - "italian" - ]; - var dado = [ - "italian" - ]; - var daino = [ - "italian" - ]; - var dalmata = [ - "italian" - ]; - var damerino = [ - "italian" - ]; - var daniela = [ - "italian" - ]; - var dannoso = [ - "italian" - ]; - var danzare = [ - "italian" - ]; - var datato = [ - "italian" - ]; - var davanti = [ - "italian" - ]; - var davvero = [ - "italian" - ]; - var debutto = [ - "italian" - ]; - var decennio = [ - "italian" - ]; - var deciso = [ - "italian" - ]; - var declino = [ - "italian" - ]; - var decollo = [ - "italian" - ]; - var decreto = [ - "italian" - ]; - var dedicato = [ - "italian" - ]; - var definito = [ - "italian" - ]; - var deforme = [ - "italian" - ]; - var degno = [ - "italian" - ]; - var delegare = [ - "italian" - ]; - var delfino = [ - "italian" - ]; - var delirio = [ - "italian" - ]; - var delta = [ - "italian" - ]; - var demenza = [ - "italian" - ]; - var denotato = [ - "italian" - ]; - var dentro = [ - "italian" - ]; - var deposito = [ - "italian" - ]; - var derapata = [ - "italian" - ]; - var derivare = [ - "italian" - ]; - var deroga = [ - "italian" - ]; - var descritto = [ - "italian" - ]; - var deserto = [ - "italian" - ]; - var desiderio = [ - "italian" - ]; - var desumere = [ - "italian" - ]; - var detersivo = [ - "italian" - ]; - var devoto = [ - "italian" - ]; - var diametro = [ - "italian" - ]; - var dicembre = [ - "italian" - ]; - var diedro = [ - "italian" - ]; - var difeso = [ - "italian" - ]; - var diffuso = [ - "italian" - ]; - var digerire = [ - "italian" - ]; - var digitale = [ - "italian" - ]; - var diluvio = [ - "italian" - ]; - var dinamico = [ - "italian" - ]; - var dinnanzi = [ - "italian" - ]; - var dipinto = [ - "italian" - ]; - var diploma = [ - "italian" - ]; - var dipolo = [ - "italian" - ]; - var diradare = [ - "italian" - ]; - var dire = [ - "italian" - ]; - var dirotto = [ - "italian" - ]; - var dirupo = [ - "italian" - ]; - var disagio = [ - "italian" - ]; - var discreto = [ - "italian" - ]; - var disfare = [ - "italian" - ]; - var disgelo = [ - "italian" - ]; - var disposto = [ - "italian" - ]; - var distanza = [ - "italian" - ]; - var disumano = [ - "italian" - ]; - var dito = [ - "italian" - ]; - var divano = [ - "italian" - ]; - var divelto = [ - "italian" - ]; - var dividere = [ - "italian" - ]; - var divorato = [ - "italian" - ]; - var doblone = [ - "italian" - ]; - var docente = [ - "italian" - ]; - var doganale = [ - "italian" - ]; - var dogma = [ - "italian" - ]; - var dolce = [ - "italian" - ]; - var domato = [ - "italian" - ]; - var domenica = [ - "italian" - ]; - var dominare = [ - "italian" - ]; - var dondolo = [ - "italian" - ]; - var dono = [ - "italian" - ]; - var dormire = [ - "italian" - ]; - var dote = [ - "italian" - ]; - var dottore = [ - "italian" - ]; - var dovuto = [ - "italian" - ]; - var dozzina = [ - "italian" - ]; - var drago = [ - "italian" - ]; - var druido = [ - "italian" - ]; - var dubbio = [ - "italian" - ]; - var dubitare = [ - "italian" - ]; - var ducale = [ - "italian" - ]; - var duna = [ - "italian" - ]; - var duomo = [ - "italian" - ]; - var duplice = [ - "italian" - ]; - var duraturo = [ - "italian" - ]; - var ebano = [ - "italian" - ]; - var eccesso = [ - "italian" - ]; - var ecco = [ - "italian" - ]; - var eclissi = [ - "italian" - ]; - var economia = [ - "italian" - ]; - var edera = [ - "italian" - ]; - var edicola = [ - "italian" - ]; - var edile = [ - "italian" - ]; - var editoria = [ - "italian" - ]; - var educare = [ - "italian" - ]; - var egemonia = [ - "italian" - ]; - var egli = [ - "italian" - ]; - var egoismo = [ - "italian" - ]; - var egregio = [ - "italian" - ]; - var elaborato = [ - "italian" - ]; - var elargire = [ - "italian" - ]; - var elegante = [ - "italian" - ]; - var elencato = [ - "italian" - ]; - var eletto = [ - "italian" - ]; - var elevare = [ - "italian" - ]; - var elfico = [ - "italian" - ]; - var elica = [ - "italian" - ]; - var elmo = [ - "italian" - ]; - var elsa = [ - "italian" - ]; - var eluso = [ - "italian" - ]; - var emanato = [ - "italian" - ]; - var emblema = [ - "italian" - ]; - var emesso = [ - "italian" - ]; - var emiro = [ - "italian" - ]; - var emotivo = [ - "italian" - ]; - var emozione = [ - "italian" - ]; - var empirico = [ - "italian" - ]; - var emulo = [ - "italian" - ]; - var endemico = [ - "italian" - ]; - var enduro = [ - "italian" - ]; - var energia = [ - "italian" - ]; - var enfasi = [ - "italian" - ]; - var enoteca = [ - "italian" - ]; - var entrare = [ - "italian" - ]; - var enzima = [ - "italian" - ]; - var epatite = [ - "italian" - ]; - var epilogo = [ - "italian" - ]; - var episodio = [ - "italian" - ]; - var epocale = [ - "italian" - ]; - var eppure = [ - "italian" - ]; - var equatore = [ - "italian" - ]; - var erario = [ - "italian" - ]; - var erba = [ - "italian" - ]; - var erboso = [ - "italian" - ]; - var erede = [ - "italian" - ]; - var eremita = [ - "italian" - ]; - var erigere = [ - "italian" - ]; - var ermetico = [ - "italian" - ]; - var eroe = [ - "italian" - ]; - var erosivo = [ - "italian" - ]; - var errante = [ - "italian" - ]; - var esagono = [ - "italian" - ]; - var esame = [ - "italian" - ]; - var esanime = [ - "italian" - ]; - var esaudire = [ - "italian" - ]; - var esca = [ - "italian" - ]; - var esempio = [ - "italian" - ]; - var esercito = [ - "italian" - ]; - var esibito = [ - "italian" - ]; - var esigente = [ - "italian" - ]; - var esistere = [ - "italian" - ]; - var esito = [ - "italian" - ]; - var esofago = [ - "italian" - ]; - var esortato = [ - "italian" - ]; - var esoso = [ - "italian" - ]; - var espanso = [ - "italian" - ]; - var espresso = [ - "italian" - ]; - var essenza = [ - "italian" - ]; - var esso = [ - "italian" - ]; - var esteso = [ - "italian" - ]; - var estimare = [ - "italian" - ]; - var estonia = [ - "italian" - ]; - var estroso = [ - "italian" - ]; - var esultare = [ - "italian" - ]; - var etilico = [ - "italian" - ]; - var etnico = [ - "italian" - ]; - var etrusco = [ - "italian" - ]; - var etto = [ - "italian" - ]; - var euclideo = [ - "italian" - ]; - var europa = [ - "italian" - ]; - var evaso = [ - "italian" - ]; - var evidenza = [ - "italian" - ]; - var evitato = [ - "italian" - ]; - var evoluto = [ - "italian" - ]; - var evviva = [ - "italian" - ]; - var fabbrica = [ - "italian" - ]; - var faccenda = [ - "italian" - ]; - var fachiro = [ - "italian" - ]; - var falco = [ - "italian" - ]; - var famiglia = [ - "italian" - ]; - var fanale = [ - "italian" - ]; - var fanfara = [ - "italian" - ]; - var fango = [ - "italian" - ]; - var fantasma = [ - "italian" - ]; - var fare = [ - "italian" - ]; - var farfalla = [ - "italian" - ]; - var farinoso = [ - "italian" - ]; - var farmaco = [ - "italian" - ]; - var fascia = [ - "italian" - ]; - var fastoso = [ - "italian" - ]; - var fasullo = [ - "italian" - ]; - var faticare = [ - "italian" - ]; - var fato = [ - "italian" - ]; - var favoloso = [ - "italian" - ]; - var febbre = [ - "italian" - ]; - var fecola = [ - "italian" - ]; - var fede = [ - "italian" - ]; - var fegato = [ - "italian" - ]; - var felpa = [ - "italian" - ]; - var feltro = [ - "italian" - ]; - var femmina = [ - "italian" - ]; - var fendere = [ - "italian" - ]; - var fenomeno = [ - "italian" - ]; - var fermento = [ - "italian" - ]; - var ferro = [ - "italian" - ]; - var fertile = [ - "italian" - ]; - var fessura = [ - "italian" - ]; - var festivo = [ - "italian" - ]; - var fetta = [ - "italian" - ]; - var feudo = [ - "italian" - ]; - var fiaba = [ - "italian" - ]; - var fiducia = [ - "italian" - ]; - var fifa = [ - "italian" - ]; - var figurato = [ - "italian" - ]; - var filo = [ - "italian", - "turkish" - ]; - var finanza = [ - "italian" - ]; - var finestra = [ - "italian" - ]; - var finire = [ - "italian" - ]; - var fiore = [ - "italian" - ]; - var fiscale = [ - "italian" - ]; - var fisico = [ - "italian" - ]; - var fiume = [ - "italian" - ]; - var flacone = [ - "italian" - ]; - var flamenco = [ - "italian" - ]; - var flebo = [ - "italian" - ]; - var flemma = [ - "italian" - ]; - var florido = [ - "italian" - ]; - var fluente = [ - "italian" - ]; - var fluoro = [ - "italian" - ]; - var fobico = [ - "italian" - ]; - var focaccia = [ - "italian" - ]; - var focoso = [ - "italian" - ]; - var foderato = [ - "italian" - ]; - var foglio = [ - "italian" - ]; - var folata = [ - "italian" - ]; - var folclore = [ - "italian" - ]; - var folgore = [ - "italian" - ]; - var fondente = [ - "italian" - ]; - var fonetico = [ - "italian" - ]; - var fonia = [ - "italian" - ]; - var fontana = [ - "italian" - ]; - var forbito = [ - "italian" - ]; - var forchetta = [ - "italian" - ]; - var foresta = [ - "italian" - ]; - var formica = [ - "italian" - ]; - var fornaio = [ - "italian" - ]; - var foro = [ - "italian" - ]; - var fortezza = [ - "italian" - ]; - var forzare = [ - "italian" - ]; - var fosfato = [ - "italian" - ]; - var fosso = [ - "italian" - ]; - var fracasso = [ - "italian" - ]; - var frana = [ - "italian" - ]; - var frassino = [ - "italian" - ]; - var fratello = [ - "italian" - ]; - var freccetta = [ - "italian" - ]; - var frenata = [ - "italian" - ]; - var fresco = [ - "italian" - ]; - var frigo = [ - "italian" - ]; - var frollino = [ - "italian" - ]; - var fronde = [ - "italian" - ]; - var frugale = [ - "italian" - ]; - var frutta = [ - "italian" - ]; - var fucilata = [ - "italian" - ]; - var fucsia = [ - "italian" - ]; - var fuggente = [ - "italian" - ]; - var fulmine = [ - "italian" - ]; - var fulvo = [ - "italian" - ]; - var fumante = [ - "italian" - ]; - var fumetto = [ - "italian" - ]; - var fumoso = [ - "italian" - ]; - var fune = [ - "italian" - ]; - var funzione = [ - "italian" - ]; - var fuoco = [ - "italian" - ]; - var furbo = [ - "italian" - ]; - var furgone = [ - "italian" - ]; - var furore = [ - "italian" - ]; - var fuso = [ - "italian" - ]; - var futile = [ - "italian" - ]; - var gabbiano = [ - "italian" - ]; - var gaffe = [ - "italian" - ]; - var galateo = [ - "italian" - ]; - var gallina = [ - "italian" - ]; - var galoppo = [ - "italian" - ]; - var gambero = [ - "italian" - ]; - var gamma = [ - "italian" - ]; - var garanzia = [ - "italian" - ]; - var garbo = [ - "italian" - ]; - var garofano = [ - "italian" - ]; - var garzone = [ - "italian" - ]; - var gasdotto = [ - "italian" - ]; - var gasolio = [ - "italian" - ]; - var gastrico = [ - "italian" - ]; - var gatto = [ - "italian" - ]; - var gaudio = [ - "italian" - ]; - var gazebo = [ - "italian" - ]; - var gazzella = [ - "italian" - ]; - var geco = [ - "italian" - ]; - var gelatina = [ - "italian" - ]; - var gelso = [ - "italian" - ]; - var gemello = [ - "italian" - ]; - var gemmato = [ - "italian" - ]; - var gene = [ - "italian" - ]; - var genitore = [ - "italian" - ]; - var gennaio = [ - "italian" - ]; - var genotipo = [ - "italian" - ]; - var gergo = [ - "italian" - ]; - var ghepardo = [ - "italian" - ]; - var ghiaccio = [ - "italian" - ]; - var ghisa = [ - "italian" - ]; - var giallo = [ - "italian" - ]; - var gilda = [ - "italian" - ]; - var ginepro = [ - "italian" - ]; - var giocare = [ - "italian" - ]; - var gioiello = [ - "italian" - ]; - var giorno = [ - "italian" - ]; - var giove = [ - "italian" - ]; - var girato = [ - "italian" - ]; - var girone = [ - "italian" - ]; - var gittata = [ - "italian" - ]; - var giudizio = [ - "italian" - ]; - var giurato = [ - "italian" - ]; - var giusto = [ - "italian" - ]; - var globulo = [ - "italian" - ]; - var glutine = [ - "italian" - ]; - var gnomo = [ - "italian" - ]; - var gobba = [ - "italian" - ]; - var golf = [ - "italian" - ]; - var gomito = [ - "italian" - ]; - var gommone = [ - "italian" - ]; - var gonfio = [ - "italian" - ]; - var gonna = [ - "italian" - ]; - var governo = [ - "italian" - ]; - var gracile = [ - "italian" - ]; - var grado = [ - "italian" - ]; - var grafico = [ - "italian" - ]; - var grammo = [ - "italian" - ]; - var grande = [ - "italian" - ]; - var grattare = [ - "italian" - ]; - var gravoso = [ - "italian" - ]; - var grazia = [ - "italian" - ]; - var greca = [ - "italian" - ]; - var gregge = [ - "italian" - ]; - var grifone = [ - "italian" - ]; - var grigio = [ - "italian" - ]; - var grinza = [ - "italian" - ]; - var grotta = [ - "italian" - ]; - var gruppo = [ - "italian" - ]; - var guadagno = [ - "italian" - ]; - var guaio = [ - "italian" - ]; - var guanto = [ - "italian" - ]; - var guardare = [ - "italian" - ]; - var gufo = [ - "italian" - ]; - var guidare = [ - "italian" - ]; - var ibernato = [ - "italian" - ]; - var icona = [ - "italian" - ]; - var identico = [ - "italian" - ]; - var idillio = [ - "italian" - ]; - var idolo = [ - "italian" - ]; - var idra = [ - "italian" - ]; - var idrico = [ - "italian" - ]; - var idrogeno = [ - "italian" - ]; - var igiene = [ - "italian" - ]; - var ignaro = [ - "italian" - ]; - var ignorato = [ - "italian" - ]; - var ilare = [ - "italian" - ]; - var illeso = [ - "italian" - ]; - var illogico = [ - "italian" - ]; - var illudere = [ - "italian" - ]; - var imballo = [ - "italian" - ]; - var imbevuto = [ - "italian" - ]; - var imbocco = [ - "italian" - ]; - var imbuto = [ - "italian" - ]; - var immane = [ - "italian" - ]; - var immerso = [ - "italian" - ]; - var immolato = [ - "italian" - ]; - var impacco = [ - "italian" - ]; - var impeto = [ - "italian" - ]; - var impiego = [ - "italian" - ]; - var importo = [ - "italian" - ]; - var impronta = [ - "italian" - ]; - var inalare = [ - "italian" - ]; - var inarcare = [ - "italian" - ]; - var inattivo = [ - "italian" - ]; - var incanto = [ - "italian" - ]; - var incendio = [ - "italian" - ]; - var inchino = [ - "italian" - ]; - var incisivo = [ - "italian" - ]; - var incluso = [ - "italian" - ]; - var incontro = [ - "italian" - ]; - var incrocio = [ - "italian" - ]; - var incubo = [ - "italian" - ]; - var indagine = [ - "italian" - ]; - var india = [ - "italian" - ]; - var indole = [ - "italian" - ]; - var inedito = [ - "italian" - ]; - var infatti = [ - "italian" - ]; - var infilare = [ - "italian" - ]; - var inflitto = [ - "italian" - ]; - var ingaggio = [ - "italian" - ]; - var ingegno = [ - "italian" - ]; - var inglese = [ - "italian" - ]; - var ingordo = [ - "italian" - ]; - var ingrosso = [ - "italian" - ]; - var innesco = [ - "italian" - ]; - var inodore = [ - "italian" - ]; - var inoltrare = [ - "italian" - ]; - var inondato = [ - "italian" - ]; - var insano = [ - "italian" - ]; - var insetto = [ - "italian" - ]; - var insieme = [ - "italian" - ]; - var insonnia = [ - "italian" - ]; - var insulina = [ - "italian" - ]; - var intasato = [ - "italian" - ]; - var intero = [ - "italian" - ]; - var intonaco = [ - "italian" - ]; - var intuito = [ - "italian" - ]; - var inumidire = [ - "italian" - ]; - var invalido = [ - "italian" - ]; - var invece = [ - "italian" - ]; - var invito = [ - "italian" - ]; - var iperbole = [ - "italian" - ]; - var ipnotico = [ - "italian" - ]; - var ipotesi = [ - "italian" - ]; - var ippica = [ - "italian" - ]; - var iride = [ - "italian" - ]; - var irlanda = [ - "italian" - ]; - var ironico = [ - "italian" - ]; - var irrigato = [ - "italian" - ]; - var irrorare = [ - "italian" - ]; - var isolato = [ - "italian" - ]; - var isotopo = [ - "italian" - ]; - var isterico = [ - "italian" - ]; - var istituto = [ - "italian" - ]; - var istrice = [ - "italian" - ]; - var italia = [ - "italian" - ]; - var iterare = [ - "italian" - ]; - var labbro = [ - "italian" - ]; - var labirinto = [ - "italian" - ]; - var lacca = [ - "italian" - ]; - var lacerato = [ - "italian" - ]; - var lacrima = [ - "italian" - ]; - var lacuna = [ - "italian" - ]; - var laddove = [ - "italian" - ]; - var lago = [ - "italian" - ]; - var lampo = [ - "italian" - ]; - var lancetta = [ - "italian" - ]; - var lanterna = [ - "italian" - ]; - var lardoso = [ - "italian" - ]; - var larga = [ - "italian" - ]; - var laringe = [ - "italian" - ]; - var lastra = [ - "italian" - ]; - var latenza = [ - "italian" - ]; - var latino = [ - "italian" - ]; - var lattuga = [ - "italian" - ]; - var lavagna = [ - "italian" - ]; - var lavoro = [ - "italian" - ]; - var legale = [ - "italian" - ]; - var leggero = [ - "italian" - ]; - var lembo = [ - "italian" - ]; - var lentezza = [ - "italian" - ]; - var lenza = [ - "italian" - ]; - var leone = [ - "italian" - ]; - var lepre = [ - "italian" - ]; - var lesivo = [ - "italian" - ]; - var lessato = [ - "italian" - ]; - var lesto = [ - "italian" - ]; - var letterale = [ - "italian" - ]; - var leva = [ - "italian" - ]; - var levigato = [ - "italian" - ]; - var libero = [ - "italian" - ]; - var lido = [ - "italian" - ]; - var lievito = [ - "italian" - ]; - var lilla = [ - "italian" - ]; - var limatura = [ - "italian" - ]; - var limitare = [ - "italian" - ]; - var limpido = [ - "italian" - ]; - var lineare = [ - "italian" - ]; - var lingua = [ - "italian" - ]; - var liquido = [ - "italian" - ]; - var lira = [ - "italian" - ]; - var lirica = [ - "italian" - ]; - var lisca = [ - "italian" - ]; - var lite = [ - "italian" - ]; - var litigio = [ - "italian" - ]; - var livrea = [ - "italian" - ]; - var locanda = [ - "italian" - ]; - var lode = [ - "italian" - ]; - var logica = [ - "italian" - ]; - var lombare = [ - "italian" - ]; - var londra = [ - "italian" - ]; - var longevo = [ - "italian" - ]; - var loquace = [ - "italian" - ]; - var lorenzo = [ - "italian" - ]; - var loto = [ - "italian" - ]; - var lotteria = [ - "italian" - ]; - var luce = [ - "italian" - ]; - var lucidato = [ - "italian" - ]; - var lumaca = [ - "italian" - ]; - var luminoso = [ - "italian" - ]; - var lungo = [ - "italian" - ]; - var lupo = [ - "italian" - ]; - var luppolo = [ - "italian" - ]; - var lusinga = [ - "italian" - ]; - var lusso = [ - "italian" - ]; - var lutto = [ - "italian" - ]; - var macabro = [ - "italian" - ]; - var macchina = [ - "italian" - ]; - var macero = [ - "italian" - ]; - var macinato = [ - "italian" - ]; - var madama = [ - "italian" - ]; - var magico = [ - "italian" - ]; - var maglia = [ - "italian" - ]; - var magnete = [ - "italian" - ]; - var magro = [ - "italian" - ]; - var maiolica = [ - "italian" - ]; - var malafede = [ - "italian" - ]; - var malgrado = [ - "italian" - ]; - var malinteso = [ - "italian" - ]; - var malsano = [ - "italian" - ]; - var malto = [ - "italian" - ]; - var malumore = [ - "italian" - ]; - var mana = [ - "italian" - ]; - var mancia = [ - "italian" - ]; - var mandorla = [ - "italian" - ]; - var mangiare = [ - "italian" - ]; - var manifesto = [ - "italian" - ]; - var mannaro = [ - "italian" - ]; - var manovra = [ - "italian" - ]; - var mansarda = [ - "italian" - ]; - var mantide = [ - "italian" - ]; - var manubrio = [ - "italian" - ]; - var mappa = [ - "italian" - ]; - var maratona = [ - "italian" - ]; - var marcire = [ - "italian" - ]; - var maretta = [ - "italian" - ]; - var marmo = [ - "italian" - ]; - var marsupio = [ - "italian" - ]; - var maschera = [ - "italian" - ]; - var massaia = [ - "italian" - ]; - var mastino = [ - "italian" - ]; - var materasso = [ - "italian" - ]; - var matricola = [ - "italian" - ]; - var mattone = [ - "italian" - ]; - var maturo = [ - "italian" - ]; - var mazurca = [ - "italian" - ]; - var meandro = [ - "italian" - ]; - var meccanico = [ - "italian" - ]; - var mecenate = [ - "italian" - ]; - var medesimo = [ - "italian" - ]; - var meditare = [ - "italian" - ]; - var mega = [ - "italian" - ]; - var melassa = [ - "italian" - ]; - var melis = [ - "italian" - ]; - var melodia = [ - "italian" - ]; - var meninge = [ - "italian" - ]; - var meno = [ - "italian" - ]; - var mensola = [ - "italian" - ]; - var mercurio = [ - "italian" - ]; - var merenda = [ - "italian" - ]; - var merlo = [ - "italian" - ]; - var meschino = [ - "italian" - ]; - var mese = [ - "italian" - ]; - var messere = [ - "italian" - ]; - var mestolo = [ - "italian" - ]; - var metallo = [ - "italian" - ]; - var metodo = [ - "italian" - ]; - var mettere = [ - "italian" - ]; - var miagolare = [ - "italian" - ]; - var mica = [ - "italian" - ]; - var micelio = [ - "italian" - ]; - var michele = [ - "italian" - ]; - var microbo = [ - "italian" - ]; - var midollo = [ - "italian" - ]; - var miele = [ - "italian" - ]; - var migliore = [ - "italian" - ]; - var milano = [ - "italian" - ]; - var milite = [ - "italian" - ]; - var mimosa = [ - "italian" - ]; - var minerale = [ - "italian" - ]; - var mini = [ - "italian" - ]; - var minore = [ - "italian" - ]; - var mirino = [ - "italian" - ]; - var mirtillo = [ - "italian" - ]; - var miscela = [ - "italian" - ]; - var missiva = [ - "italian" - ]; - var misto = [ - "italian" - ]; - var misurare = [ - "italian" - ]; - var mitezza = [ - "italian" - ]; - var mitigare = [ - "italian" - ]; - var mitra = [ - "italian" - ]; - var mittente = [ - "italian" - ]; - var mnemonico = [ - "italian" - ]; - var modello = [ - "italian" - ]; - var modifica = [ - "italian" - ]; - var modulo = [ - "italian" - ]; - var mogano = [ - "italian" - ]; - var mogio = [ - "italian" - ]; - var mole = [ - "italian" - ]; - var molosso = [ - "italian" - ]; - var monastero = [ - "italian" - ]; - var monco = [ - "italian" - ]; - var mondina = [ - "italian" - ]; - var monetario = [ - "italian" - ]; - var monile = [ - "italian" - ]; - var monotono = [ - "italian" - ]; - var monsone = [ - "italian" - ]; - var montato = [ - "italian" - ]; - var monviso = [ - "italian" - ]; - var mora = [ - "italian" - ]; - var mordere = [ - "italian" - ]; - var morsicato = [ - "italian" - ]; - var mostro = [ - "italian" - ]; - var motivato = [ - "italian" - ]; - var motosega = [ - "italian" - ]; - var motto = [ - "italian" - ]; - var movenza = [ - "italian" - ]; - var movimento = [ - "italian" - ]; - var mozzo = [ - "italian" - ]; - var mucca = [ - "italian" - ]; - var mucosa = [ - "italian" - ]; - var muffa = [ - "italian" - ]; - var mughetto = [ - "italian" - ]; - var mugnaio = [ - "italian" - ]; - var mulatto = [ - "italian" - ]; - var mulinello = [ - "italian" - ]; - var multiplo = [ - "italian" - ]; - var mummia = [ - "italian" - ]; - var munto = [ - "italian" - ]; - var muovere = [ - "italian" - ]; - var murale = [ - "italian" - ]; - var musa = [ - "italian" - ]; - var muscolo = [ - "italian" - ]; - var musica = [ - "italian" - ]; - var mutevole = [ - "italian" - ]; - var muto = [ - "italian" - ]; - var nababbo = [ - "italian" - ]; - var nafta = [ - "italian" - ]; - var nanometro = [ - "italian" - ]; - var narciso = [ - "italian" - ]; - var narice = [ - "italian" - ]; - var narrato = [ - "italian" - ]; - var nascere = [ - "italian" - ]; - var nastrare = [ - "italian" - ]; - var naturale = [ - "italian" - ]; - var nautica = [ - "italian" - ]; - var naviglio = [ - "italian" - ]; - var nebulosa = [ - "italian" - ]; - var necrosi = [ - "italian" - ]; - var negativo = [ - "italian" - ]; - var negozio = [ - "italian" - ]; - var nemmeno = [ - "italian" - ]; - var neofita = [ - "italian" - ]; - var neretto = [ - "italian" - ]; - var nervo = [ - "italian" - ]; - var nessuno = [ - "italian" - ]; - var nettuno = [ - "italian" - ]; - var neutrale = [ - "italian" - ]; - var neve = [ - "italian" - ]; - var nevrotico = [ - "italian" - ]; - var nicchia = [ - "italian" - ]; - var ninfa = [ - "italian" - ]; - var nitido = [ - "italian" - ]; - var nobile = [ - "italian" - ]; - var nocivo = [ - "italian" - ]; - var nodo = [ - "italian" - ]; - var nome = [ - "italian" - ]; - var nomina = [ - "italian" - ]; - var nordico = [ - "italian" - ]; - var normale = [ - "italian" - ]; - var norvegese = [ - "italian" - ]; - var nostrano = [ - "italian" - ]; - var notare = [ - "italian" - ]; - var notizia = [ - "italian" - ]; - var notturno = [ - "italian" - ]; - var novella = [ - "italian" - ]; - var nucleo = [ - "italian" - ]; - var nulla = [ - "italian" - ]; - var numero = [ - "italian" - ]; - var nuovo = [ - "italian" - ]; - var nutrire = [ - "italian" - ]; - var nuvola = [ - "italian" - ]; - var nuziale = [ - "italian" - ]; - var oasi = [ - "italian" - ]; - var obbedire = [ - "italian" - ]; - var obbligo = [ - "italian" - ]; - var obelisco = [ - "italian" - ]; - var oblio = [ - "italian" - ]; - var obolo = [ - "italian" - ]; - var obsoleto = [ - "italian" - ]; - var occasione = [ - "italian" - ]; - var occhio = [ - "italian" - ]; - var occidente = [ - "italian" - ]; - var occorrere = [ - "italian" - ]; - var occultare = [ - "italian" - ]; - var ocra = [ - "italian" - ]; - var oculato = [ - "italian" - ]; - var odierno = [ - "italian" - ]; - var odorare = [ - "italian" - ]; - var offerta = [ - "italian" - ]; - var offrire = [ - "italian" - ]; - var offuscato = [ - "italian" - ]; - var oggetto = [ - "italian" - ]; - var oggi = [ - "italian" - ]; - var ognuno = [ - "italian" - ]; - var olandese = [ - "italian" - ]; - var olfatto = [ - "italian" - ]; - var oliato = [ - "italian" - ]; - var oliva = [ - "italian" - ]; - var ologramma = [ - "italian" - ]; - var oltre = [ - "italian" - ]; - var omaggio = [ - "italian" - ]; - var ombelico = [ - "italian" - ]; - var ombra = [ - "italian" - ]; - var omega = [ - "italian" - ]; - var omissione = [ - "italian" - ]; - var ondoso = [ - "italian" - ]; - var onere = [ - "italian" - ]; - var onice = [ - "italian" - ]; - var onnivoro = [ - "italian" - ]; - var onorevole = [ - "italian" - ]; - var onta = [ - "italian" - ]; - var operato = [ - "italian" - ]; - var opinione = [ - "italian" - ]; - var opposto = [ - "italian" - ]; - var oracolo = [ - "italian" - ]; - var orafo = [ - "italian" - ]; - var ordine = [ - "italian" - ]; - var orecchino = [ - "italian" - ]; - var orefice = [ - "italian" - ]; - var orfano = [ - "italian" - ]; - var organico = [ - "italian" - ]; - var origine = [ - "italian" - ]; - var orizzonte = [ - "italian" - ]; - var orma = [ - "italian" - ]; - var ormeggio = [ - "italian" - ]; - var ornativo = [ - "italian" - ]; - var orologio = [ - "italian" - ]; - var orrendo = [ - "italian" - ]; - var orribile = [ - "italian" - ]; - var ortensia = [ - "italian" - ]; - var ortica = [ - "italian" - ]; - var orzata = [ - "italian" - ]; - var orzo = [ - "italian" - ]; - var osare = [ - "italian" - ]; - var oscurare = [ - "italian" - ]; - var osmosi = [ - "italian" - ]; - var ospedale = [ - "italian" - ]; - var ospite = [ - "italian" - ]; - var ossa = [ - "italian" - ]; - var ossidare = [ - "italian" - ]; - var ostacolo = [ - "italian" - ]; - var oste = [ - "italian" - ]; - var otite = [ - "italian" - ]; - var otre = [ - "italian" - ]; - var ottagono = [ - "italian" - ]; - var ottimo = [ - "italian" - ]; - var ottobre = [ - "italian" - ]; - var ovale = [ - "italian" - ]; - var ovest = [ - "italian" - ]; - var ovino = [ - "italian" - ]; - var oviparo = [ - "italian" - ]; - var ovocito = [ - "italian" - ]; - var ovunque = [ - "italian" - ]; - var ovviare = [ - "italian" - ]; - var ozio = [ - "italian" - ]; - var pacchetto = [ - "italian" - ]; - var pace = [ - "italian" - ]; - var pacifico = [ - "italian" - ]; - var padella = [ - "italian" - ]; - var padrone = [ - "italian" - ]; - var paese = [ - "italian" - ]; - var paga = [ - "italian" - ]; - var pagina = [ - "italian" - ]; - var palazzina = [ - "italian" - ]; - var palesare = [ - "italian" - ]; - var pallido = [ - "italian" - ]; - var palo = [ - "italian" - ]; - var palude = [ - "italian" - ]; - var pandoro = [ - "italian" - ]; - var pannello = [ - "italian" - ]; - var paolo = [ - "italian" - ]; - var paonazzo = [ - "italian" - ]; - var paprica = [ - "italian" - ]; - var parabola = [ - "italian" - ]; - var parcella = [ - "italian" - ]; - var parere = [ - "italian" - ]; - var pargolo = [ - "italian" - ]; - var pari = [ - "italian" - ]; - var parlato = [ - "italian" - ]; - var parola = [ - "italian" - ]; - var partire = [ - "italian" - ]; - var parvenza = [ - "italian" - ]; - var parziale = [ - "italian" - ]; - var passivo = [ - "italian" - ]; - var pasticca = [ - "italian" - ]; - var patacca = [ - "italian" - ]; - var patologia = [ - "italian" - ]; - var pattume = [ - "italian" - ]; - var pavone = [ - "italian" - ]; - var peccato = [ - "italian" - ]; - var pedalare = [ - "italian" - ]; - var pedonale = [ - "italian" - ]; - var peggio = [ - "italian" - ]; - var peloso = [ - "italian" - ]; - var penare = [ - "italian" - ]; - var pendice = [ - "italian" - ]; - var penisola = [ - "italian" - ]; - var pennuto = [ - "italian" - ]; - var penombra = [ - "italian" - ]; - var pensare = [ - "italian" - ]; - var pentola = [ - "italian" - ]; - var pepe = [ - "italian" - ]; - var pepita = [ - "italian" - ]; - var perbene = [ - "italian" - ]; - var percorso = [ - "italian" - ]; - var perdonato = [ - "italian" - ]; - var perforare = [ - "italian" - ]; - var pergamena = [ - "italian" - ]; - var periodo = [ - "italian" - ]; - var permesso = [ - "italian" - ]; - var perno = [ - "italian" - ]; - var perplesso = [ - "italian" - ]; - var persuaso = [ - "italian" - ]; - var pertugio = [ - "italian" - ]; - var pervaso = [ - "italian" - ]; - var pesatore = [ - "italian" - ]; - var pesista = [ - "italian" - ]; - var peso = [ - "italian" - ]; - var pestifero = [ - "italian" - ]; - var petalo = [ - "italian" - ]; - var pettine = [ - "italian" - ]; - var petulante = [ - "italian" - ]; - var pezzo = [ - "italian" - ]; - var piacere = [ - "italian" - ]; - var pianta = [ - "italian" - ]; - var piattino = [ - "italian" - ]; - var piccino = [ - "italian" - ]; - var picozza = [ - "italian" - ]; - var piega = [ - "italian" - ]; - var pietra = [ - "italian" - ]; - var piffero = [ - "italian" - ]; - var pigiama = [ - "italian" - ]; - var pigolio = [ - "italian" - ]; - var pigro = [ - "italian" - ]; - var pila = [ - "italian" - ]; - var pilifero = [ - "italian" - ]; - var pillola = [ - "italian" - ]; - var pilota = [ - "italian" - ]; - var pimpante = [ - "italian" - ]; - var pineta = [ - "italian" - ]; - var pinna = [ - "italian" - ]; - var pinolo = [ - "italian" - ]; - var pioggia = [ - "italian" - ]; - var piombo = [ - "italian" - ]; - var piramide = [ - "italian" - ]; - var piretico = [ - "italian" - ]; - var pirite = [ - "italian" - ]; - var pirolisi = [ - "italian" - ]; - var pitone = [ - "italian" - ]; - var pizzico = [ - "italian" - ]; - var placebo = [ - "italian" - ]; - var planare = [ - "italian" - ]; - var plasma = [ - "italian" - ]; - var platano = [ - "italian" - ]; - var plenario = [ - "italian" - ]; - var pochezza = [ - "italian" - ]; - var poderoso = [ - "italian" - ]; - var podismo = [ - "italian" - ]; - var poesia = [ - "italian" - ]; - var poggiare = [ - "italian" - ]; - var polenta = [ - "italian" - ]; - var poligono = [ - "italian" - ]; - var pollice = [ - "italian" - ]; - var polmonite = [ - "italian" - ]; - var polpetta = [ - "italian" - ]; - var polso = [ - "italian" - ]; - var poltrona = [ - "italian" - ]; - var polvere = [ - "italian" - ]; - var pomice = [ - "italian" - ]; - var pomodoro = [ - "italian" - ]; - var ponte = [ - "italian" - ]; - var popoloso = [ - "italian" - ]; - var porfido = [ - "italian" - ]; - var poroso = [ - "italian" - ]; - var porpora = [ - "italian" - ]; - var porre = [ - "italian" - ]; - var portata = [ - "italian" - ]; - var posa = [ - "italian", - "turkish" - ]; - var positivo = [ - "italian" - ]; - var possesso = [ - "italian" - ]; - var postulato = [ - "italian" - ]; - var potassio = [ - "italian" - ]; - var potere = [ - "italian" - ]; - var pranzo = [ - "italian" - ]; - var prassi = [ - "italian" - ]; - var pratica = [ - "italian" - ]; - var precluso = [ - "italian" - ]; - var predica = [ - "italian" - ]; - var prefisso = [ - "italian" - ]; - var pregiato = [ - "italian" - ]; - var prelievo = [ - "italian" - ]; - var premere = [ - "italian" - ]; - var prenotare = [ - "italian" - ]; - var preparato = [ - "italian" - ]; - var presenza = [ - "italian" - ]; - var pretesto = [ - "italian" - ]; - var prevalso = [ - "italian" - ]; - var prima = [ - "italian" - ]; - var principe = [ - "italian" - ]; - var privato = [ - "italian" - ]; - var problema = [ - "italian" - ]; - var procura = [ - "italian" - ]; - var produrre = [ - "italian" - ]; - var profumo = [ - "italian" - ]; - var progetto = [ - "italian" - ]; - var prolunga = [ - "italian" - ]; - var promessa = [ - "italian" - ]; - var pronome = [ - "italian" - ]; - var proposta = [ - "italian" - ]; - var proroga = [ - "italian" - ]; - var proteso = [ - "italian" - ]; - var prova = [ - "italian", - "turkish" - ]; - var prudente = [ - "italian" - ]; - var prugna = [ - "italian" - ]; - var prurito = [ - "italian" - ]; - var psiche = [ - "italian" - ]; - var pubblico = [ - "italian" - ]; - var pudica = [ - "italian" - ]; - var pugilato = [ - "italian" - ]; - var pugno = [ - "italian" - ]; - var pulce = [ - "italian" - ]; - var pulito = [ - "italian" - ]; - var pulsante = [ - "italian" - ]; - var puntare = [ - "italian" - ]; - var pupazzo = [ - "italian" - ]; - var pupilla = [ - "italian" - ]; - var puro = [ - "italian" - ]; - var quadro = [ - "italian" - ]; - var qualcosa = [ - "italian" - ]; - var quasi = [ - "italian" - ]; - var querela = [ - "italian" - ]; - var quota = [ - "italian" - ]; - var raccolto = [ - "italian" - ]; - var raddoppio = [ - "italian" - ]; - var radicale = [ - "italian" - ]; - var radunato = [ - "italian" - ]; - var raffica = [ - "italian" - ]; - var ragazzo = [ - "italian" - ]; - var ragione = [ - "italian" - ]; - var ragno = [ - "italian" - ]; - var ramarro = [ - "italian" - ]; - var ramingo = [ - "italian" - ]; - var ramo = [ - "italian" - ]; - var randagio = [ - "italian" - ]; - var rantolare = [ - "italian" - ]; - var rapato = [ - "italian" - ]; - var rapina = [ - "italian" - ]; - var rappreso = [ - "italian" - ]; - var rasatura = [ - "italian" - ]; - var raschiato = [ - "italian" - ]; - var rasente = [ - "italian" - ]; - var rassegna = [ - "italian" - ]; - var rastrello = [ - "italian" - ]; - var rata = [ - "italian" - ]; - var ravveduto = [ - "italian" - ]; - var reale = [ - "italian" - ]; - var recepire = [ - "italian" - ]; - var recinto = [ - "italian" - ]; - var recluta = [ - "italian" - ]; - var recondito = [ - "italian" - ]; - var recupero = [ - "italian" - ]; - var reddito = [ - "italian" - ]; - var redimere = [ - "italian" - ]; - var regalato = [ - "italian" - ]; - var registro = [ - "italian" - ]; - var regola = [ - "italian" - ]; - var regresso = [ - "italian" - ]; - var relazione = [ - "italian" - ]; - var remare = [ - "italian" - ]; - var remoto = [ - "italian" - ]; - var renna = [ - "italian" - ]; - var replica = [ - "italian" - ]; - var reprimere = [ - "italian" - ]; - var reputare = [ - "italian" - ]; - var resa = [ - "italian" - ]; - var residente = [ - "italian" - ]; - var responso = [ - "italian" - ]; - var restauro = [ - "italian" - ]; - var rete = [ - "italian" - ]; - var retina = [ - "italian" - ]; - var retorica = [ - "italian" - ]; - var rettifica = [ - "italian" - ]; - var revocato = [ - "italian" - ]; - var riassunto = [ - "italian" - ]; - var ribadire = [ - "italian" - ]; - var ribelle = [ - "italian" - ]; - var ribrezzo = [ - "italian" - ]; - var ricarica = [ - "italian" - ]; - var ricco = [ - "italian" - ]; - var ricevere = [ - "italian" - ]; - var riciclato = [ - "italian" - ]; - var ricordo = [ - "italian" - ]; - var ricreduto = [ - "italian" - ]; - var ridicolo = [ - "italian" - ]; - var ridurre = [ - "italian" - ]; - var rifasare = [ - "italian" - ]; - var riflesso = [ - "italian" - ]; - var riforma = [ - "italian" - ]; - var rifugio = [ - "italian" - ]; - var rigare = [ - "italian" - ]; - var rigettato = [ - "italian" - ]; - var righello = [ - "italian" - ]; - var rilassato = [ - "italian" - ]; - var rilevato = [ - "italian" - ]; - var rimanere = [ - "italian" - ]; - var rimbalzo = [ - "italian" - ]; - var rimedio = [ - "italian" - ]; - var rimorchio = [ - "italian" - ]; - var rinascita = [ - "italian" - ]; - var rincaro = [ - "italian" - ]; - var rinforzo = [ - "italian" - ]; - var rinnovo = [ - "italian" - ]; - var rinomato = [ - "italian" - ]; - var rinsavito = [ - "italian" - ]; - var rintocco = [ - "italian" - ]; - var rinuncia = [ - "italian" - ]; - var rinvenire = [ - "italian" - ]; - var riparato = [ - "italian" - ]; - var ripetuto = [ - "italian" - ]; - var ripieno = [ - "italian" - ]; - var riportare = [ - "italian" - ]; - var ripresa = [ - "italian" - ]; - var ripulire = [ - "italian" - ]; - var risata = [ - "italian" - ]; - var rischio = [ - "italian" - ]; - var riserva = [ - "italian" - ]; - var risibile = [ - "italian" - ]; - var riso = [ - "italian" - ]; - var rispetto = [ - "italian" - ]; - var ristoro = [ - "italian" - ]; - var risultato = [ - "italian" - ]; - var risvolto = [ - "italian" - ]; - var ritardo = [ - "italian" - ]; - var ritegno = [ - "italian" - ]; - var ritmico = [ - "italian" - ]; - var ritrovo = [ - "italian" - ]; - var riunione = [ - "italian" - ]; - var riva = [ - "italian" - ]; - var riverso = [ - "italian" - ]; - var rivincita = [ - "italian" - ]; - var rivolto = [ - "italian" - ]; - var rizoma = [ - "italian" - ]; - var roba = [ - "italian" - ]; - var robotico = [ - "italian" - ]; - var robusto = [ - "italian" - ]; - var roccia = [ - "italian" - ]; - var roco = [ - "italian" - ]; - var rodaggio = [ - "italian" - ]; - var rodere = [ - "italian" - ]; - var roditore = [ - "italian" - ]; - var rogito = [ - "italian" - ]; - var rollio = [ - "italian" - ]; - var romantico = [ - "italian" - ]; - var rompere = [ - "italian" - ]; - var ronzio = [ - "italian" - ]; - var rosolare = [ - "italian" - ]; - var rospo = [ - "italian" - ]; - var rotante = [ - "italian" - ]; - var rotondo = [ - "italian" - ]; - var rotula = [ - "italian" - ]; - var rovescio = [ - "italian" - ]; - var rubizzo = [ - "italian" - ]; - var rubrica = [ - "italian" - ]; - var ruga = [ - "italian" - ]; - var rullino = [ - "italian" - ]; - var rumine = [ - "italian" - ]; - var rumoroso = [ - "italian" - ]; - var ruolo = [ - "italian" - ]; - var rupe = [ - "italian" - ]; - var russare = [ - "italian" - ]; - var rustico = [ - "italian" - ]; - var sabato = [ - "italian" - ]; - var sabbiare = [ - "italian" - ]; - var sabotato = [ - "italian" - ]; - var sagoma = [ - "italian" - ]; - var salasso = [ - "italian" - ]; - var saldatura = [ - "italian" - ]; - var salgemma = [ - "italian" - ]; - var salivare = [ - "italian" - ]; - var salmone = [ - "italian" - ]; - var salone = [ - "italian" - ]; - var saltare = [ - "italian" - ]; - var saluto = [ - "italian" - ]; - var salvo = [ - "italian" - ]; - var sapere = [ - "italian" - ]; - var sapido = [ - "italian" - ]; - var saporito = [ - "italian" - ]; - var saraceno = [ - "italian" - ]; - var sarcasmo = [ - "italian" - ]; - var sarto = [ - "italian" - ]; - var sassoso = [ - "italian" - ]; - var satellite = [ - "italian" - ]; - var satira = [ - "italian" - ]; - var satollo = [ - "italian" - ]; - var saturno = [ - "italian" - ]; - var savana = [ - "italian" - ]; - var savio = [ - "italian" - ]; - var saziato = [ - "italian" - ]; - var sbadiglio = [ - "italian" - ]; - var sbalzo = [ - "italian" - ]; - var sbancato = [ - "italian" - ]; - var sbarra = [ - "italian" - ]; - var sbattere = [ - "italian" - ]; - var sbavare = [ - "italian" - ]; - var sbendare = [ - "italian" - ]; - var sbirciare = [ - "italian" - ]; - var sbloccato = [ - "italian" - ]; - var sbocciato = [ - "italian" - ]; - var sbrinare = [ - "italian" - ]; - var sbruffone = [ - "italian" - ]; - var sbuffare = [ - "italian" - ]; - var scabroso = [ - "italian" - ]; - var scadenza = [ - "italian" - ]; - var scala = [ - "italian" - ]; - var scambiare = [ - "italian" - ]; - var scandalo = [ - "italian" - ]; - var scapola = [ - "italian" - ]; - var scarso = [ - "italian" - ]; - var scatenare = [ - "italian" - ]; - var scavato = [ - "italian" - ]; - var scelto = [ - "italian" - ]; - var scenico = [ - "italian" - ]; - var scettro = [ - "italian" - ]; - var scheda = [ - "italian" - ]; - var schiena = [ - "italian" - ]; - var sciarpa = [ - "italian" - ]; - var scienza = [ - "italian" - ]; - var scindere = [ - "italian" - ]; - var scippo = [ - "italian" - ]; - var sciroppo = [ - "italian" - ]; - var scivolo = [ - "italian" - ]; - var sclerare = [ - "italian" - ]; - var scodella = [ - "italian" - ]; - var scolpito = [ - "italian" - ]; - var scomparto = [ - "italian" - ]; - var sconforto = [ - "italian" - ]; - var scoprire = [ - "italian" - ]; - var scorta = [ - "italian" - ]; - var scossone = [ - "italian" - ]; - var scozzese = [ - "italian" - ]; - var scriba = [ - "italian" - ]; - var scrollare = [ - "italian" - ]; - var scrutinio = [ - "italian" - ]; - var scuderia = [ - "italian" - ]; - var scultore = [ - "italian" - ]; - var scuola = [ - "italian" - ]; - var scuro = [ - "italian" - ]; - var scusare = [ - "italian" - ]; - var sdebitare = [ - "italian" - ]; - var sdoganare = [ - "italian" - ]; - var seccatura = [ - "italian" - ]; - var secondo = [ - "italian" - ]; - var sedano = [ - "italian" - ]; - var seggiola = [ - "italian" - ]; - var segnalato = [ - "italian" - ]; - var segregato = [ - "italian" - ]; - var seguito = [ - "italian" - ]; - var selciato = [ - "italian" - ]; - var selettivo = [ - "italian" - ]; - var sella = [ - "italian" - ]; - var selvaggio = [ - "italian" - ]; - var semaforo = [ - "italian" - ]; - var sembrare = [ - "italian" - ]; - var seme = [ - "italian" - ]; - var seminato = [ - "italian" - ]; - var sempre = [ - "italian" - ]; - var senso = [ - "italian" - ]; - var sentire = [ - "italian" - ]; - var sepolto = [ - "italian" - ]; - var sequenza = [ - "italian" - ]; - var serata = [ - "italian" - ]; - var serbato = [ - "italian" - ]; - var sereno = [ - "italian" - ]; - var serio = [ - "italian" - ]; - var serpente = [ - "italian" - ]; - var serraglio = [ - "italian" - ]; - var servire = [ - "italian" - ]; - var sestina = [ - "italian" - ]; - var setola = [ - "italian" - ]; - var settimana = [ - "italian" - ]; - var sfacelo = [ - "italian" - ]; - var sfaldare = [ - "italian" - ]; - var sfamato = [ - "italian" - ]; - var sfarzoso = [ - "italian" - ]; - var sfaticato = [ - "italian" - ]; - var sfera = [ - "italian" - ]; - var sfida = [ - "italian" - ]; - var sfilato = [ - "italian" - ]; - var sfinge = [ - "italian" - ]; - var sfocato = [ - "italian" - ]; - var sfoderare = [ - "italian" - ]; - var sfogo = [ - "italian" - ]; - var sfoltire = [ - "italian" - ]; - var sforzato = [ - "italian" - ]; - var sfratto = [ - "italian" - ]; - var sfruttato = [ - "italian" - ]; - var sfuggito = [ - "italian" - ]; - var sfumare = [ - "italian" - ]; - var sfuso = [ - "italian" - ]; - var sgabello = [ - "italian" - ]; - var sgarbato = [ - "italian" - ]; - var sgonfiare = [ - "italian" - ]; - var sgorbio = [ - "italian" - ]; - var sgrassato = [ - "italian" - ]; - var sguardo = [ - "italian" - ]; - var sibilo = [ - "italian" - ]; - var siccome = [ - "italian" - ]; - var sierra = [ - "italian" - ]; - var sigla = [ - "italian" - ]; - var signore = [ - "italian" - ]; - var silenzio = [ - "italian" - ]; - var sillaba = [ - "italian" - ]; - var simbolo = [ - "italian" - ]; - var simpatico = [ - "italian" - ]; - var simulato = [ - "italian" - ]; - var sinfonia = [ - "italian" - ]; - var singolo = [ - "italian" - ]; - var sinistro = [ - "italian" - ]; - var sino = [ - "italian" - ]; - var sintesi = [ - "italian" - ]; - var sinusoide = [ - "italian" - ]; - var sipario = [ - "italian" - ]; - var sisma = [ - "italian" - ]; - var sistole = [ - "italian" - ]; - var situato = [ - "italian" - ]; - var slitta = [ - "italian" - ]; - var slogatura = [ - "italian" - ]; - var sloveno = [ - "italian" - ]; - var smarrito = [ - "italian" - ]; - var smemorato = [ - "italian" - ]; - var smentito = [ - "italian" - ]; - var smeraldo = [ - "italian" - ]; - var smilzo = [ - "italian" - ]; - var smontare = [ - "italian" - ]; - var smottato = [ - "italian" - ]; - var smussato = [ - "italian" - ]; - var snellire = [ - "italian" - ]; - var snervato = [ - "italian" - ]; - var snodo = [ - "italian" - ]; - var sobbalzo = [ - "italian" - ]; - var sobrio = [ - "italian" - ]; - var soccorso = [ - "italian" - ]; - var sociale = [ - "italian" - ]; - var sodale = [ - "italian" - ]; - var soffitto = [ - "italian" - ]; - var sogno = [ - "italian" - ]; - var soldato = [ - "italian" - ]; - var solenne = [ - "italian" - ]; - var solido = [ - "italian" - ]; - var sollazzo = [ - "italian" - ]; - var solo = [ - "italian" - ]; - var solubile = [ - "italian" - ]; - var solvente = [ - "italian" - ]; - var somatico = [ - "italian" - ]; - var somma = [ - "italian" - ]; - var sonda = [ - "italian" - ]; - var sonetto = [ - "italian" - ]; - var sonnifero = [ - "italian" - ]; - var sopire = [ - "italian" - ]; - var soppeso = [ - "italian" - ]; - var sopra = [ - "italian" - ]; - var sorgere = [ - "italian" - ]; - var sorpasso = [ - "italian" - ]; - var sorriso = [ - "italian" - ]; - var sorso = [ - "italian" - ]; - var sorteggio = [ - "italian" - ]; - var sorvolato = [ - "italian" - ]; - var sospiro = [ - "italian" - ]; - var sosta = [ - "italian" - ]; - var sottile = [ - "italian" - ]; - var spada = [ - "italian" - ]; - var spalla = [ - "italian" - ]; - var spargere = [ - "italian" - ]; - var spatola = [ - "italian" - ]; - var spavento = [ - "italian" - ]; - var spazzola = [ - "italian" - ]; - var specie = [ - "italian" - ]; - var spedire = [ - "italian" - ]; - var spegnere = [ - "italian" - ]; - var spelatura = [ - "italian" - ]; - var speranza = [ - "italian" - ]; - var spessore = [ - "italian" - ]; - var spettrale = [ - "italian" - ]; - var spezzato = [ - "italian" - ]; - var spia = [ - "italian" - ]; - var spigoloso = [ - "italian" - ]; - var spillato = [ - "italian" - ]; - var spinoso = [ - "italian" - ]; - var spirale = [ - "italian" - ]; - var splendido = [ - "italian" - ]; - var sportivo = [ - "italian" - ]; - var sposo = [ - "italian" - ]; - var spranga = [ - "italian" - ]; - var sprecare = [ - "italian" - ]; - var spronato = [ - "italian" - ]; - var spruzzo = [ - "italian" - ]; - var spuntino = [ - "italian" - ]; - var squillo = [ - "italian" - ]; - var sradicare = [ - "italian" - ]; - var srotolato = [ - "italian" - ]; - var stabile = [ - "italian" - ]; - var stacco = [ - "italian" - ]; - var staffa = [ - "italian" - ]; - var stagnare = [ - "italian" - ]; - var stampato = [ - "italian" - ]; - var stantio = [ - "italian" - ]; - var starnuto = [ - "italian" - ]; - var stasera = [ - "italian" - ]; - var statuto = [ - "italian" - ]; - var stelo = [ - "italian" - ]; - var steppa = [ - "italian" - ]; - var sterzo = [ - "italian" - ]; - var stiletto = [ - "italian" - ]; - var stima = [ - "italian" - ]; - var stirpe = [ - "italian" - ]; - var stivale = [ - "italian" - ]; - var stizzoso = [ - "italian" - ]; - var stonato = [ - "italian" - ]; - var storico = [ - "italian" - ]; - var strappo = [ - "italian" - ]; - var stregato = [ - "italian" - ]; - var stridulo = [ - "italian" - ]; - var strozzare = [ - "italian" - ]; - var strutto = [ - "italian" - ]; - var stuccare = [ - "italian" - ]; - var stufo = [ - "italian" - ]; - var stupendo = [ - "italian" - ]; - var subentro = [ - "italian" - ]; - var succoso = [ - "italian" - ]; - var sudore = [ - "italian" - ]; - var suggerito = [ - "italian" - ]; - var sugo = [ - "italian" - ]; - var sultano = [ - "italian" - ]; - var suonare = [ - "italian" - ]; - var superbo = [ - "italian" - ]; - var supporto = [ - "italian" - ]; - var surgelato = [ - "italian" - ]; - var surrogato = [ - "italian" - ]; - var sussurro = [ - "italian" - ]; - var sutura = [ - "italian" - ]; - var svagare = [ - "italian" - ]; - var svedese = [ - "italian" - ]; - var sveglio = [ - "italian" - ]; - var svelare = [ - "italian" - ]; - var svenuto = [ - "italian" - ]; - var svezia = [ - "italian" - ]; - var sviluppo = [ - "italian" - ]; - var svista = [ - "italian" - ]; - var svizzera = [ - "italian" - ]; - var svolta = [ - "italian" - ]; - var svuotare = [ - "italian" - ]; - var tabacco = [ - "italian" - ]; - var tabulato = [ - "italian" - ]; - var tacciare = [ - "italian" - ]; - var taciturno = [ - "italian" - ]; - var tale = [ - "italian" - ]; - var talismano = [ - "italian" - ]; - var tampone = [ - "italian" - ]; - var tannino = [ - "italian" - ]; - var tara = [ - "italian" - ]; - var tardivo = [ - "italian" - ]; - var targato = [ - "italian" - ]; - var tariffa = [ - "italian" - ]; - var tarpare = [ - "italian" - ]; - var tartaruga = [ - "italian" - ]; - var tasto = [ - "italian" - ]; - var tattico = [ - "italian" - ]; - var taverna = [ - "italian" - ]; - var tavolata = [ - "italian" - ]; - var tazza = [ - "italian" - ]; - var teca = [ - "italian" - ]; - var tecnico = [ - "italian" - ]; - var telefono = [ - "italian" - ]; - var temerario = [ - "italian" - ]; - var tempo = [ - "italian", - "turkish" - ]; - var temuto = [ - "italian" - ]; - var tendone = [ - "italian" - ]; - var tenero = [ - "italian" - ]; - var tensione = [ - "italian" - ]; - var tentacolo = [ - "italian" - ]; - var teorema = [ - "italian" - ]; - var terme = [ - "italian" - ]; - var terrazzo = [ - "italian" - ]; - var terzetto = [ - "italian" - ]; - var tesi = [ - "italian" - ]; - var tesserato = [ - "italian" - ]; - var testato = [ - "italian" - ]; - var tetro = [ - "italian" - ]; - var tettoia = [ - "italian" - ]; - var tifare = [ - "italian" - ]; - var tigella = [ - "italian" - ]; - var timbro = [ - "italian" - ]; - var tinto = [ - "italian" - ]; - var tipico = [ - "italian" - ]; - var tipografo = [ - "italian" - ]; - var tiraggio = [ - "italian" - ]; - var tiro = [ - "italian" - ]; - var titanio = [ - "italian" - ]; - var titolo = [ - "italian" - ]; - var titubante = [ - "italian" - ]; - var tizio = [ - "italian" - ]; - var tizzone = [ - "italian" - ]; - var toccare = [ - "italian" - ]; - var tollerare = [ - "italian" - ]; - var tolto = [ - "italian" - ]; - var tombola = [ - "italian" - ]; - var tomo = [ - "italian" - ]; - var tonfo = [ - "italian" - ]; - var tonsilla = [ - "italian" - ]; - var topazio = [ - "italian" - ]; - var topologia = [ - "italian" - ]; - var toppa = [ - "italian" - ]; - var torba = [ - "italian" - ]; - var tornare = [ - "italian" - ]; - var torrone = [ - "italian" - ]; - var tortora = [ - "italian" - ]; - var toscano = [ - "italian" - ]; - var tossire = [ - "italian" - ]; - var tostatura = [ - "italian" - ]; - var totano = [ - "italian" - ]; - var trabocco = [ - "italian" - ]; - var trachea = [ - "italian" - ]; - var trafila = [ - "italian" - ]; - var tragedia = [ - "italian" - ]; - var tralcio = [ - "italian" - ]; - var tramonto = [ - "italian" - ]; - var transito = [ - "italian" - ]; - var trapano = [ - "italian" - ]; - var trarre = [ - "italian" - ]; - var trasloco = [ - "italian" - ]; - var trattato = [ - "italian" - ]; - var trave = [ - "italian" - ]; - var treccia = [ - "italian" - ]; - var tremolio = [ - "italian" - ]; - var trespolo = [ - "italian" - ]; - var tributo = [ - "italian" - ]; - var tricheco = [ - "italian" - ]; - var trifoglio = [ - "italian" - ]; - var trillo = [ - "italian" - ]; - var trincea = [ - "italian" - ]; - var trio = [ - "italian" - ]; - var tristezza = [ - "italian" - ]; - var triturato = [ - "italian" - ]; - var trivella = [ - "italian" - ]; - var tromba = [ - "italian" - ]; - var trono = [ - "italian" - ]; - var troppo = [ - "italian" - ]; - var trottola = [ - "italian" - ]; - var trovare = [ - "italian" - ]; - var truccato = [ - "italian" - ]; - var tubatura = [ - "italian" - ]; - var tuffato = [ - "italian" - ]; - var tulipano = [ - "italian" - ]; - var tumulto = [ - "italian" - ]; - var tunisia = [ - "italian" - ]; - var turbare = [ - "italian" - ]; - var turchino = [ - "italian" - ]; - var tuta = [ - "italian" - ]; - var tutela = [ - "italian" - ]; - var ubicato = [ - "italian" - ]; - var uccello = [ - "italian" - ]; - var uccisore = [ - "italian" - ]; - var udire = [ - "italian" - ]; - var uditivo = [ - "italian" - ]; - var uffa = [ - "italian" - ]; - var ufficio = [ - "italian" - ]; - var uguale = [ - "italian" - ]; - var ulisse = [ - "italian" - ]; - var ultimato = [ - "italian" - ]; - var umano = [ - "italian" - ]; - var umile = [ - "italian" - ]; - var umorismo = [ - "italian" - ]; - var uncinetto = [ - "italian" - ]; - var ungere = [ - "italian" - ]; - var ungherese = [ - "italian" - ]; - var unicorno = [ - "italian" - ]; - var unificato = [ - "italian" - ]; - var unisono = [ - "italian" - ]; - var unitario = [ - "italian" - ]; - var unte = [ - "italian" - ]; - var uovo = [ - "italian" - ]; - var upupa = [ - "italian" - ]; - var uragano = [ - "italian" - ]; - var urgenza = [ - "italian" - ]; - var urlo = [ - "italian" - ]; - var usanza = [ - "italian" - ]; - var usato = [ - "italian" - ]; - var uscito = [ - "italian" - ]; - var usignolo = [ - "italian" - ]; - var usuraio = [ - "italian" - ]; - var utensile = [ - "italian" - ]; - var utilizzo = [ - "italian" - ]; - var utopia = [ - "italian" - ]; - var vacante = [ - "italian" - ]; - var vaccinato = [ - "italian" - ]; - var vagabondo = [ - "italian" - ]; - var vagliato = [ - "italian" - ]; - var valanga = [ - "italian" - ]; - var valgo = [ - "italian" - ]; - var valico = [ - "italian" - ]; - var valletta = [ - "italian" - ]; - var valoroso = [ - "italian" - ]; - var valutare = [ - "italian" - ]; - var valvola = [ - "italian" - ]; - var vampata = [ - "italian" - ]; - var vangare = [ - "italian" - ]; - var vanitoso = [ - "italian" - ]; - var vano = [ - "italian" - ]; - var vantaggio = [ - "italian" - ]; - var vanvera = [ - "italian" - ]; - var vapore = [ - "italian" - ]; - var varano = [ - "italian" - ]; - var varcato = [ - "italian" - ]; - var variante = [ - "italian" - ]; - var vasca = [ - "italian" - ]; - var vedetta = [ - "italian" - ]; - var vedova = [ - "italian" - ]; - var veduto = [ - "italian" - ]; - var vegetale = [ - "italian" - ]; - var veicolo = [ - "italian" - ]; - var velcro = [ - "italian" - ]; - var velina = [ - "italian" - ]; - var velluto = [ - "italian" - ]; - var veloce = [ - "italian" - ]; - var venato = [ - "italian" - ]; - var vendemmia = [ - "italian" - ]; - var vento = [ - "italian" - ]; - var verace = [ - "italian" - ]; - var verbale = [ - "italian" - ]; - var vergogna = [ - "italian" - ]; - var verifica = [ - "italian" - ]; - var vero = [ - "italian" - ]; - var verruca = [ - "italian" - ]; - var verticale = [ - "italian" - ]; - var vescica = [ - "italian" - ]; - var vessillo = [ - "italian" - ]; - var vestale = [ - "italian" - ]; - var veterano = [ - "italian" - ]; - var vetrina = [ - "italian" - ]; - var vetusto = [ - "italian" - ]; - var viandante = [ - "italian" - ]; - var vibrante = [ - "italian" - ]; - var vicenda = [ - "italian" - ]; - var vichingo = [ - "italian" - ]; - var vicinanza = [ - "italian" - ]; - var vidimare = [ - "italian" - ]; - var vigilia = [ - "italian" - ]; - var vigneto = [ - "italian" - ]; - var vigore = [ - "italian" - ]; - var vile = [ - "italian" - ]; - var villano = [ - "italian" - ]; - var vimini = [ - "italian" - ]; - var vincitore = [ - "italian" - ]; - var viola = [ - "italian" - ]; - var vipera = [ - "italian" - ]; - var virgola = [ - "italian" - ]; - var virologo = [ - "italian" - ]; - var virulento = [ - "italian" - ]; - var viscoso = [ - "italian" - ]; - var visione = [ - "italian" - ]; - var vispo = [ - "italian" - ]; - var vissuto = [ - "italian" - ]; - var visura = [ - "italian" - ]; - var vita = [ - "italian" - ]; - var vitello = [ - "italian" - ]; - var vittima = [ - "italian" - ]; - var vivanda = [ - "italian" - ]; - var vivido = [ - "italian" - ]; - var viziare = [ - "italian" - ]; - var voce = [ - "italian" - ]; - var voga = [ - "italian" - ]; - var volatile = [ - "italian" - ]; - var volere = [ - "italian" - ]; - var volpe = [ - "italian" - ]; - var voragine = [ - "italian" - ]; - var vulcano = [ - "italian" - ]; - var zampogna = [ - "italian" - ]; - var zanna = [ - "italian" - ]; - var zappato = [ - "italian" - ]; - var zattera = [ - "italian" - ]; - var zavorra = [ - "italian" - ]; - var zefiro = [ - "italian" - ]; - var zelante = [ - "italian" - ]; - var zelo = [ - "italian" - ]; - var zenzero = [ - "italian" - ]; - var zerbino = [ - "italian" - ]; - var zibetto = [ - "italian" - ]; - var zinco = [ - "italian" - ]; - var zircone = [ - "italian" - ]; - var zitto = [ - "italian" - ]; - var zolla = [ - "italian" - ]; - var zotico = [ - "italian" - ]; - var zucchero = [ - "italian" - ]; - var zufolo = [ - "italian" - ]; - var zulu = [ - "italian" - ]; - var zuppa = [ - "italian" - ]; - var abacate = [ - "portuguese" - ]; - var abaixo = [ - "portuguese" - ]; - var abalar = [ - "portuguese" - ]; - var abater = [ - "portuguese" - ]; - var abduzir = [ - "portuguese" - ]; - var abelha = [ - "portuguese" - ]; - var aberto = [ - "portuguese" - ]; - var abismo = [ - "portuguese" - ]; - var abotoar = [ - "portuguese" - ]; - var abranger = [ - "portuguese" - ]; - var abreviar = [ - "portuguese" - ]; - var abrigar = [ - "portuguese" - ]; - var abrupto = [ - "portuguese" - ]; - var absinto = [ - "portuguese" - ]; - var absoluto = [ - "portuguese" - ]; - var absurdo = [ - "portuguese" - ]; - var abutre = [ - "portuguese" - ]; - var acabado = [ - "portuguese" - ]; - var acalmar = [ - "portuguese" - ]; - var acampar = [ - "portuguese" - ]; - var acanhar = [ - "portuguese" - ]; - var acaso = [ - "portuguese" - ]; - var aceitar = [ - "portuguese" - ]; - var acelerar = [ - "portuguese" - ]; - var acenar = [ - "portuguese" - ]; - var acervo = [ - "portuguese" - ]; - var acessar = [ - "portuguese" - ]; - var acetona = [ - "portuguese" - ]; - var achatar = [ - "portuguese" - ]; - var acidez = [ - "portuguese" - ]; - var acima = [ - "portuguese" - ]; - var acionado = [ - "portuguese" - ]; - var acirrar = [ - "portuguese" - ]; - var aclamar = [ - "portuguese" - ]; - var aclive = [ - "portuguese" - ]; - var acolhida = [ - "portuguese" - ]; - var acomodar = [ - "portuguese" - ]; - var acoplar = [ - "portuguese" - ]; - var acordar = [ - "portuguese" - ]; - var acumular = [ - "portuguese" - ]; - var acusador = [ - "portuguese" - ]; - var adaptar = [ - "portuguese" - ]; - var adega = [ - "portuguese" - ]; - var adentro = [ - "portuguese" - ]; - var adepto = [ - "portuguese" - ]; - var adequar = [ - "portuguese" - ]; - var aderente = [ - "portuguese" - ]; - var adesivo = [ - "portuguese" - ]; - var adeus = [ - "portuguese" - ]; - var adiante = [ - "portuguese" - ]; - var aditivo = [ - "portuguese" - ]; - var adjetivo = [ - "portuguese" - ]; - var adjunto = [ - "portuguese" - ]; - var admirar = [ - "portuguese" - ]; - var adorar = [ - "portuguese" - ]; - var adquirir = [ - "portuguese" - ]; - var adubo = [ - "portuguese" - ]; - var adverso = [ - "portuguese" - ]; - var advogado = [ - "portuguese" - ]; - var aeronave = [ - "portuguese" - ]; - var afastar = [ - "portuguese" - ]; - var aferir = [ - "portuguese" - ]; - var afetivo = [ - "portuguese" - ]; - var afinador = [ - "portuguese" - ]; - var afivelar = [ - "portuguese" - ]; - var aflito = [ - "portuguese" - ]; - var afluente = [ - "portuguese" - ]; - var afrontar = [ - "portuguese" - ]; - var agachar = [ - "portuguese" - ]; - var agarrar = [ - "portuguese" - ]; - var agasalho = [ - "portuguese" - ]; - var agenciar = [ - "portuguese" - ]; - var agilizar = [ - "portuguese" - ]; - var agiota = [ - "portuguese" - ]; - var agitado = [ - "portuguese" - ]; - var agora = [ - "portuguese" - ]; - var agradar = [ - "portuguese" - ]; - var agreste = [ - "portuguese" - ]; - var agrupar = [ - "portuguese" - ]; - var aguardar = [ - "portuguese" - ]; - var agulha = [ - "portuguese" - ]; - var ajoelhar = [ - "portuguese" - ]; - var ajudar = [ - "portuguese" - ]; - var ajustar = [ - "portuguese" - ]; - var alameda = [ - "portuguese" - ]; - var alarme = [ - "portuguese" - ]; - var alastrar = [ - "portuguese" - ]; - var alavanca = [ - "portuguese" - ]; - var albergue = [ - "portuguese" - ]; - var albino = [ - "portuguese" - ]; - var alcatra = [ - "portuguese" - ]; - var aldeia = [ - "portuguese" - ]; - var alecrim = [ - "portuguese" - ]; - var alegria = [ - "portuguese" - ]; - var alertar = [ - "portuguese" - ]; - var alface = [ - "portuguese" - ]; - var alfinete = [ - "portuguese" - ]; - var algum = [ - "portuguese" - ]; - var alheio = [ - "portuguese" - ]; - var aliar = [ - "portuguese" - ]; - var alicate = [ - "portuguese" - ]; - var alienar = [ - "portuguese" - ]; - var alinhar = [ - "portuguese" - ]; - var aliviar = [ - "portuguese" - ]; - var almofada = [ - "portuguese" - ]; - var alocar = [ - "portuguese" - ]; - var alpiste = [ - "portuguese" - ]; - var alterar = [ - "portuguese" - ]; - var altitude = [ - "portuguese" - ]; - var alucinar = [ - "portuguese" - ]; - var alugar = [ - "portuguese" - ]; - var aluno = [ - "portuguese" - ]; - var alusivo = [ - "portuguese" - ]; - var alvo = [ - "portuguese" - ]; - var amaciar = [ - "portuguese" - ]; - var amador = [ - "portuguese" - ]; - var amarelo = [ - "portuguese" - ]; - var amassar = [ - "portuguese" - ]; - var ambas = [ - "portuguese" - ]; - var ambiente = [ - "portuguese" - ]; - var ameixa = [ - "portuguese" - ]; - var amenizar = [ - "portuguese" - ]; - var amido = [ - "portuguese" - ]; - var amistoso = [ - "portuguese" - ]; - var amizade = [ - "portuguese" - ]; - var amolador = [ - "portuguese" - ]; - var amontoar = [ - "portuguese" - ]; - var amoroso = [ - "portuguese" - ]; - var amostra = [ - "portuguese" - ]; - var amparar = [ - "portuguese" - ]; - var ampliar = [ - "portuguese" - ]; - var ampola = [ - "portuguese" - ]; - var anagrama = [ - "portuguese" - ]; - var analisar = [ - "portuguese" - ]; - var anarquia = [ - "portuguese" - ]; - var anatomia = [ - "portuguese" - ]; - var andaime = [ - "portuguese" - ]; - var anel = [ - "portuguese" - ]; - var anexo = [ - "portuguese" - ]; - var angular = [ - "portuguese" - ]; - var animar = [ - "portuguese" - ]; - var anjo = [ - "portuguese" - ]; - var anomalia = [ - "portuguese" - ]; - var anotado = [ - "portuguese" - ]; - var ansioso = [ - "portuguese" - ]; - var anterior = [ - "portuguese" - ]; - var anuidade = [ - "portuguese" - ]; - var anunciar = [ - "portuguese" - ]; - var anzol = [ - "portuguese" - ]; - var apagador = [ - "portuguese" - ]; - var apalpar = [ - "portuguese" - ]; - var apanhado = [ - "portuguese" - ]; - var apego = [ - "portuguese" - ]; - var apelido = [ - "portuguese" - ]; - var apertada = [ - "portuguese" - ]; - var apesar = [ - "portuguese" - ]; - var apetite = [ - "portuguese" - ]; - var apito = [ - "portuguese" - ]; - var aplauso = [ - "portuguese" - ]; - var aplicada = [ - "portuguese" - ]; - var apoio = [ - "portuguese" - ]; - var apontar = [ - "portuguese" - ]; - var aposta = [ - "portuguese" - ]; - var aprendiz = [ - "portuguese" - ]; - var aprovar = [ - "portuguese" - ]; - var aquecer = [ - "portuguese" - ]; - var arame = [ - "portuguese" - ]; - var aranha = [ - "portuguese" - ]; - var arara = [ - "portuguese" - ]; - var arcada = [ - "portuguese" - ]; - var ardente = [ - "portuguese" - ]; - var areia = [ - "portuguese" - ]; - var arejar = [ - "portuguese" - ]; - var arenito = [ - "portuguese" - ]; - var aresta = [ - "portuguese" - ]; - var argiloso = [ - "portuguese" - ]; - var argola = [ - "portuguese" - ]; - var arma = [ - "portuguese" - ]; - var arquivo = [ - "portuguese" - ]; - var arraial = [ - "portuguese" - ]; - var arrebate = [ - "portuguese" - ]; - var arriscar = [ - "portuguese" - ]; - var arroba = [ - "portuguese" - ]; - var arrumar = [ - "portuguese" - ]; - var arsenal = [ - "portuguese" - ]; - var arterial = [ - "portuguese" - ]; - var artigo = [ - "portuguese" - ]; - var arvoredo = [ - "portuguese" - ]; - var asfaltar = [ - "portuguese" - ]; - var asilado = [ - "portuguese" - ]; - var aspirar = [ - "portuguese" - ]; - var assador = [ - "portuguese" - ]; - var assinar = [ - "portuguese" - ]; - var assoalho = [ - "portuguese" - ]; - var assunto = [ - "portuguese" - ]; - var astral = [ - "portuguese" - ]; - var atacado = [ - "portuguese" - ]; - var atadura = [ - "portuguese" - ]; - var atalho = [ - "portuguese" - ]; - var atarefar = [ - "portuguese" - ]; - var atear = [ - "portuguese" - ]; - var atender = [ - "portuguese" - ]; - var aterro = [ - "portuguese" - ]; - var ateu = [ - "portuguese" - ]; - var atingir = [ - "portuguese" - ]; - var atirador = [ - "portuguese" - ]; - var ativo = [ - "portuguese" - ]; - var atoleiro = [ - "portuguese" - ]; - var atracar = [ - "portuguese" - ]; - var atrevido = [ - "portuguese" - ]; - var atriz = [ - "portuguese" - ]; - var atual = [ - "portuguese" - ]; - var atum = [ - "portuguese" - ]; - var auditor = [ - "portuguese" - ]; - var aumentar = [ - "portuguese" - ]; - var aura = [ - "portuguese" - ]; - var aurora = [ - "portuguese" - ]; - var autismo = [ - "portuguese" - ]; - var autoria = [ - "portuguese" - ]; - var autuar = [ - "portuguese" - ]; - var avaliar = [ - "portuguese" - ]; - var avante = [ - "portuguese" - ]; - var avaria = [ - "portuguese" - ]; - var avental = [ - "portuguese" - ]; - var avesso = [ - "portuguese" - ]; - var aviador = [ - "portuguese" - ]; - var avisar = [ - "portuguese" - ]; - var avulso = [ - "portuguese" - ]; - var axila = [ - "portuguese" - ]; - var azarar = [ - "portuguese" - ]; - var azedo = [ - "portuguese" - ]; - var azeite = [ - "portuguese" - ]; - var azulejo = [ - "portuguese" - ]; - var babar = [ - "portuguese" - ]; - var babosa = [ - "portuguese" - ]; - var bacalhau = [ - "portuguese" - ]; - var bacharel = [ - "portuguese" - ]; - var bacia = [ - "portuguese" - ]; - var bagagem = [ - "portuguese" - ]; - var baiano = [ - "portuguese" - ]; - var bailar = [ - "portuguese" - ]; - var baioneta = [ - "portuguese" - ]; - var bairro = [ - "portuguese" - ]; - var baixista = [ - "portuguese" - ]; - var bajular = [ - "portuguese" - ]; - var baleia = [ - "portuguese" - ]; - var baliza = [ - "portuguese" - ]; - var balsa = [ - "portuguese" - ]; - var banal = [ - "portuguese" - ]; - var bandeira = [ - "portuguese" - ]; - var banho = [ - "portuguese" - ]; - var banir = [ - "portuguese" - ]; - var banquete = [ - "portuguese" - ]; - var barato = [ - "portuguese" - ]; - var barbado = [ - "portuguese" - ]; - var baronesa = [ - "portuguese" - ]; - var barraca = [ - "portuguese" - ]; - var barulho = [ - "portuguese" - ]; - var baseado = [ - "portuguese" - ]; - var bastante = [ - "portuguese" - ]; - var batata = [ - "portuguese" - ]; - var batedor = [ - "portuguese" - ]; - var batida = [ - "portuguese" - ]; - var batom = [ - "portuguese" - ]; - var batucar = [ - "portuguese" - ]; - var baunilha = [ - "portuguese" - ]; - var beber = [ - "portuguese" - ]; - var beijo = [ - "portuguese" - ]; - var beirada = [ - "portuguese" - ]; - var beisebol = [ - "portuguese" - ]; - var beldade = [ - "portuguese" - ]; - var beleza = [ - "portuguese" - ]; - var belga = [ - "portuguese" - ]; - var beliscar = [ - "portuguese" - ]; - var bendito = [ - "portuguese" - ]; - var bengala = [ - "portuguese" - ]; - var benzer = [ - "portuguese", - "turkish" - ]; - var berimbau = [ - "portuguese" - ]; - var berlinda = [ - "portuguese" - ]; - var berro = [ - "portuguese" - ]; - var besouro = [ - "portuguese" - ]; - var bexiga = [ - "portuguese" - ]; - var bezerro = [ - "portuguese" - ]; - var bico = [ - "portuguese" - ]; - var bicudo = [ - "portuguese" - ]; - var bienal = [ - "portuguese" - ]; - var bifocal = [ - "portuguese" - ]; - var bifurcar = [ - "portuguese" - ]; - var bigorna = [ - "portuguese" - ]; - var bilhete = [ - "portuguese" - ]; - var bimestre = [ - "portuguese" - ]; - var bimotor = [ - "portuguese" - ]; - var biologia = [ - "portuguese" - ]; - var biombo = [ - "portuguese" - ]; - var biosfera = [ - "portuguese" - ]; - var bipolar = [ - "portuguese" - ]; - var birrento = [ - "portuguese" - ]; - var biscoito = [ - "portuguese" - ]; - var bisneto = [ - "portuguese" - ]; - var bispo = [ - "portuguese" - ]; - var bissexto = [ - "portuguese" - ]; - var bitola = [ - "portuguese" - ]; - var bizarro = [ - "portuguese" - ]; - var blindado = [ - "portuguese" - ]; - var bloco = [ - "portuguese" - ]; - var bloquear = [ - "portuguese" - ]; - var boato = [ - "portuguese" - ]; - var bobagem = [ - "portuguese" - ]; - var bocado = [ - "portuguese" - ]; - var bocejo = [ - "portuguese" - ]; - var bochecha = [ - "portuguese" - ]; - var boicotar = [ - "portuguese" - ]; - var bolada = [ - "portuguese" - ]; - var boletim = [ - "portuguese" - ]; - var bolha = [ - "portuguese" - ]; - var bolo = [ - "portuguese" - ]; - var bombeiro = [ - "portuguese" - ]; - var bonde = [ - "portuguese" - ]; - var boneco = [ - "portuguese" - ]; - var bonita = [ - "portuguese" - ]; - var borbulha = [ - "portuguese" - ]; - var borda = [ - "portuguese" - ]; - var boreal = [ - "portuguese" - ]; - var borracha = [ - "portuguese" - ]; - var bovino = [ - "portuguese" - ]; - var boxeador = [ - "portuguese" - ]; - var branco = [ - "portuguese" - ]; - var brasa = [ - "portuguese" - ]; - var braveza = [ - "portuguese" - ]; - var breu = [ - "portuguese" - ]; - var briga = [ - "portuguese" - ]; - var brilho = [ - "portuguese" - ]; - var brincar = [ - "portuguese" - ]; - var broa = [ - "portuguese" - ]; - var brochura = [ - "portuguese" - ]; - var bronzear = [ - "portuguese" - ]; - var broto = [ - "portuguese" - ]; - var bruxo = [ - "portuguese" - ]; - var bucha = [ - "portuguese" - ]; - var budismo = [ - "portuguese" - ]; - var bufar = [ - "portuguese" - ]; - var bule = [ - "portuguese" - ]; - var buraco = [ - "portuguese" - ]; - var busca = [ - "portuguese" - ]; - var busto = [ - "portuguese" - ]; - var buzina = [ - "portuguese" - ]; - var cabana = [ - "portuguese" - ]; - var cabelo = [ - "portuguese" - ]; - var cabide = [ - "portuguese" - ]; - var cabo = [ - "portuguese" - ]; - var cabrito = [ - "portuguese" - ]; - var cacau = [ - "portuguese" - ]; - var cacetada = [ - "portuguese" - ]; - var cachorro = [ - "portuguese" - ]; - var cacique = [ - "portuguese" - ]; - var cadastro = [ - "portuguese" - ]; - var cadeado = [ - "portuguese" - ]; - var cafezal = [ - "portuguese" - ]; - var caiaque = [ - "portuguese" - ]; - var caipira = [ - "portuguese" - ]; - var caixote = [ - "portuguese" - ]; - var cajado = [ - "portuguese" - ]; - var caju = [ - "portuguese" - ]; - var calafrio = [ - "portuguese" - ]; - var calcular = [ - "portuguese" - ]; - var caldeira = [ - "portuguese" - ]; - var calibrar = [ - "portuguese" - ]; - var calmante = [ - "portuguese" - ]; - var calota = [ - "portuguese" - ]; - var camada = [ - "portuguese" - ]; - var cambista = [ - "portuguese" - ]; - var camisa = [ - "portuguese" - ]; - var camomila = [ - "portuguese" - ]; - var campanha = [ - "portuguese" - ]; - var camuflar = [ - "portuguese" - ]; - var canavial = [ - "portuguese" - ]; - var cancelar = [ - "portuguese" - ]; - var caneta = [ - "portuguese" - ]; - var canguru = [ - "portuguese" - ]; - var canhoto = [ - "portuguese" - ]; - var canivete = [ - "portuguese" - ]; - var canoa = [ - "portuguese" - ]; - var cansado = [ - "portuguese" - ]; - var cantar = [ - "portuguese" - ]; - var canudo = [ - "portuguese" - ]; - var capacho = [ - "portuguese" - ]; - var capela = [ - "portuguese" - ]; - var capinar = [ - "portuguese" - ]; - var capotar = [ - "portuguese" - ]; - var capricho = [ - "portuguese" - ]; - var captador = [ - "portuguese" - ]; - var capuz = [ - "portuguese" - ]; - var caracol = [ - "portuguese" - ]; - var carbono = [ - "portuguese" - ]; - var cardeal = [ - "portuguese" - ]; - var careca = [ - "portuguese" - ]; - var carimbar = [ - "portuguese" - ]; - var carneiro = [ - "portuguese" - ]; - var carpete = [ - "portuguese" - ]; - var carreira = [ - "portuguese" - ]; - var cartaz = [ - "portuguese" - ]; - var carvalho = [ - "portuguese" - ]; - var casaco = [ - "portuguese" - ]; - var casca = [ - "portuguese" - ]; - var casebre = [ - "portuguese" - ]; - var castelo = [ - "portuguese" - ]; - var casulo = [ - "portuguese" - ]; - var catarata = [ - "portuguese" - ]; - var cativar = [ - "portuguese" - ]; - var caule = [ - "portuguese" - ]; - var causador = [ - "portuguese" - ]; - var cautelar = [ - "portuguese" - ]; - var cavalo = [ - "portuguese" - ]; - var caverna = [ - "portuguese" - ]; - var cebola = [ - "portuguese" - ]; - var cedilha = [ - "portuguese" - ]; - var cegonha = [ - "portuguese" - ]; - var celebrar = [ - "portuguese" - ]; - var celular = [ - "portuguese" - ]; - var cenoura = [ - "portuguese" - ]; - var censo = [ - "portuguese" - ]; - var centeio = [ - "portuguese" - ]; - var cercar = [ - "portuguese" - ]; - var cerrado = [ - "portuguese" - ]; - var certeiro = [ - "portuguese" - ]; - var cerveja = [ - "portuguese" - ]; - var cetim = [ - "portuguese" - ]; - var cevada = [ - "portuguese" - ]; - var chacota = [ - "portuguese" - ]; - var chaleira = [ - "portuguese" - ]; - var chamado = [ - "portuguese" - ]; - var chapada = [ - "portuguese" - ]; - var charme = [ - "portuguese" - ]; - var chatice = [ - "portuguese" - ]; - var chave = [ - "portuguese" - ]; - var chefe = [ - "portuguese" - ]; - var chegada = [ - "portuguese" - ]; - var cheiro = [ - "portuguese" - ]; - var cheque = [ - "portuguese" - ]; - var chicote = [ - "portuguese" - ]; - var chifre = [ - "portuguese" - ]; - var chinelo = [ - "portuguese" - ]; - var chocalho = [ - "portuguese" - ]; - var chover = [ - "portuguese" - ]; - var chumbo = [ - "portuguese" - ]; - var chutar = [ - "portuguese" - ]; - var chuva = [ - "portuguese" - ]; - var cicatriz = [ - "portuguese" - ]; - var ciclone = [ - "portuguese" - ]; - var cidade = [ - "portuguese" - ]; - var cidreira = [ - "portuguese" - ]; - var ciente = [ - "portuguese" - ]; - var cigana = [ - "portuguese" - ]; - var cimento = [ - "portuguese" - ]; - var cinto = [ - "portuguese" - ]; - var cinza = [ - "portuguese" - ]; - var ciranda = [ - "portuguese" - ]; - var circuito = [ - "portuguese" - ]; - var cirurgia = [ - "portuguese" - ]; - var citar = [ - "portuguese" - ]; - var clareza = [ - "portuguese" - ]; - var clero = [ - "portuguese" - ]; - var clicar = [ - "portuguese" - ]; - var clone = [ - "portuguese" - ]; - var clube = [ - "portuguese" - ]; - var coado = [ - "portuguese" - ]; - var coagir = [ - "portuguese" - ]; - var cobaia = [ - "portuguese" - ]; - var cobertor = [ - "portuguese" - ]; - var cobrar = [ - "portuguese" - ]; - var cocada = [ - "portuguese" - ]; - var coelho = [ - "portuguese" - ]; - var coentro = [ - "portuguese" - ]; - var coeso = [ - "portuguese" - ]; - var cogumelo = [ - "portuguese" - ]; - var coibir = [ - "portuguese" - ]; - var coifa = [ - "portuguese" - ]; - var coiote = [ - "portuguese" - ]; - var colar = [ - "portuguese" - ]; - var coleira = [ - "portuguese" - ]; - var colher = [ - "portuguese" - ]; - var colidir = [ - "portuguese" - ]; - var colmeia = [ - "portuguese" - ]; - var colono = [ - "portuguese" - ]; - var coluna = [ - "portuguese" - ]; - var comando = [ - "portuguese" - ]; - var combinar = [ - "portuguese" - ]; - var comentar = [ - "portuguese" - ]; - var comitiva = [ - "portuguese" - ]; - var comover = [ - "portuguese" - ]; - var complexo = [ - "portuguese" - ]; - var comum = [ - "portuguese" - ]; - var concha = [ - "portuguese" - ]; - var condor = [ - "portuguese" - ]; - var conectar = [ - "portuguese" - ]; - var confuso = [ - "portuguese" - ]; - var congelar = [ - "portuguese" - ]; - var conhecer = [ - "portuguese" - ]; - var conjugar = [ - "portuguese" - ]; - var consumir = [ - "portuguese" - ]; - var contrato = [ - "portuguese" - ]; - var convite = [ - "portuguese" - ]; - var cooperar = [ - "portuguese" - ]; - var copeiro = [ - "portuguese" - ]; - var copiador = [ - "portuguese" - ]; - var copo = [ - "portuguese" - ]; - var coquetel = [ - "portuguese" - ]; - var coragem = [ - "portuguese" - ]; - var cordial = [ - "portuguese" - ]; - var corneta = [ - "portuguese" - ]; - var coronha = [ - "portuguese" - ]; - var corporal = [ - "portuguese" - ]; - var correio = [ - "portuguese" - ]; - var cortejo = [ - "portuguese" - ]; - var coruja = [ - "portuguese" - ]; - var corvo = [ - "portuguese" - ]; - var cosseno = [ - "portuguese" - ]; - var costela = [ - "portuguese" - ]; - var cotonete = [ - "portuguese" - ]; - var couro = [ - "portuguese" - ]; - var couve = [ - "portuguese" - ]; - var covil = [ - "portuguese" - ]; - var cozinha = [ - "portuguese" - ]; - var cratera = [ - "portuguese" - ]; - var cravo = [ - "portuguese" - ]; - var creche = [ - "portuguese" - ]; - var credor = [ - "portuguese" - ]; - var creme = [ - "portuguese" - ]; - var crer = [ - "portuguese" - ]; - var crespo = [ - "portuguese" - ]; - var criada = [ - "portuguese" - ]; - var criminal = [ - "portuguese" - ]; - var crioulo = [ - "portuguese" - ]; - var crise = [ - "portuguese" - ]; - var criticar = [ - "portuguese" - ]; - var crosta = [ - "portuguese" - ]; - var crua = [ - "portuguese" - ]; - var cruzeiro = [ - "portuguese" - ]; - var cubano = [ - "portuguese" - ]; - var cueca = [ - "portuguese" - ]; - var cuidado = [ - "portuguese" - ]; - var cujo = [ - "portuguese" - ]; - var culatra = [ - "portuguese" - ]; - var culminar = [ - "portuguese" - ]; - var culpar = [ - "portuguese" - ]; - var cultura = [ - "portuguese" - ]; - var cumprir = [ - "portuguese" - ]; - var cunhado = [ - "portuguese" - ]; - var cupido = [ - "portuguese" - ]; - var curativo = [ - "portuguese" - ]; - var curral = [ - "portuguese" - ]; - var cursar = [ - "portuguese" - ]; - var curto = [ - "portuguese" - ]; - var cuspir = [ - "portuguese" - ]; - var custear = [ - "portuguese" - ]; - var cutelo = [ - "portuguese" - ]; - var damasco = [ - "portuguese" - ]; - var datar = [ - "portuguese" - ]; - var debater = [ - "portuguese" - ]; - var debitar = [ - "portuguese" - ]; - var deboche = [ - "portuguese" - ]; - var debulhar = [ - "portuguese" - ]; - var decalque = [ - "portuguese" - ]; - var decimal = [ - "portuguese" - ]; - var declive = [ - "portuguese" - ]; - var decote = [ - "portuguese" - ]; - var decretar = [ - "portuguese" - ]; - var dedal = [ - "portuguese" - ]; - var dedicado = [ - "portuguese" - ]; - var deduzir = [ - "portuguese" - ]; - var defesa = [ - "portuguese" - ]; - var defumar = [ - "portuguese" - ]; - var degelo = [ - "portuguese" - ]; - var degrau = [ - "portuguese" - ]; - var degustar = [ - "portuguese" - ]; - var deitado = [ - "portuguese" - ]; - var deixar = [ - "portuguese" - ]; - var delator = [ - "portuguese" - ]; - var delegado = [ - "portuguese" - ]; - var delinear = [ - "portuguese" - ]; - var delonga = [ - "portuguese" - ]; - var demanda = [ - "portuguese" - ]; - var demitir = [ - "portuguese" - ]; - var demolido = [ - "portuguese" - ]; - var dentista = [ - "portuguese" - ]; - var depenado = [ - "portuguese" - ]; - var depilar = [ - "portuguese" - ]; - var depois = [ - "portuguese" - ]; - var depressa = [ - "portuguese" - ]; - var depurar = [ - "portuguese" - ]; - var deriva = [ - "portuguese" - ]; - var derramar = [ - "portuguese" - ]; - var desafio = [ - "portuguese" - ]; - var desbotar = [ - "portuguese" - ]; - var descanso = [ - "portuguese" - ]; - var desenho = [ - "portuguese" - ]; - var desfiado = [ - "portuguese" - ]; - var desgaste = [ - "portuguese" - ]; - var desigual = [ - "portuguese" - ]; - var deslize = [ - "portuguese" - ]; - var desmamar = [ - "portuguese" - ]; - var desova = [ - "portuguese" - ]; - var despesa = [ - "portuguese" - ]; - var destaque = [ - "portuguese" - ]; - var desviar = [ - "portuguese" - ]; - var detalhar = [ - "portuguese" - ]; - var detentor = [ - "portuguese" - ]; - var detonar = [ - "portuguese" - ]; - var detrito = [ - "portuguese" - ]; - var deusa = [ - "portuguese" - ]; - var dever = [ - "portuguese" - ]; - var devido = [ - "portuguese" - ]; - var devotado = [ - "portuguese" - ]; - var dezena = [ - "portuguese" - ]; - var diagrama = [ - "portuguese" - ]; - var dialeto = [ - "portuguese" - ]; - var didata = [ - "portuguese" - ]; - var difuso = [ - "portuguese" - ]; - var digitar = [ - "portuguese" - ]; - var dilatado = [ - "portuguese" - ]; - var diluente = [ - "portuguese" - ]; - var diminuir = [ - "portuguese" - ]; - var dinastia = [ - "portuguese" - ]; - var dinheiro = [ - "portuguese" - ]; - var diocese = [ - "portuguese" - ]; - var direto = [ - "portuguese" - ]; - var discreta = [ - "portuguese" - ]; - var disfarce = [ - "portuguese" - ]; - var disparo = [ - "portuguese" - ]; - var disquete = [ - "portuguese" - ]; - var dissipar = [ - "portuguese" - ]; - var distante = [ - "portuguese" - ]; - var ditador = [ - "portuguese" - ]; - var diurno = [ - "portuguese" - ]; - var diverso = [ - "portuguese" - ]; - var divisor = [ - "portuguese" - ]; - var divulgar = [ - "portuguese" - ]; - var dizer = [ - "portuguese" - ]; - var dobrador = [ - "portuguese" - ]; - var dolorido = [ - "portuguese" - ]; - var domador = [ - "portuguese" - ]; - var dominado = [ - "portuguese" - ]; - var donativo = [ - "portuguese" - ]; - var donzela = [ - "portuguese" - ]; - var dormente = [ - "portuguese" - ]; - var dorsal = [ - "portuguese" - ]; - var dosagem = [ - "portuguese" - ]; - var dourado = [ - "portuguese" - ]; - var doutor = [ - "portuguese" - ]; - var drenagem = [ - "portuguese" - ]; - var drible = [ - "portuguese" - ]; - var drogaria = [ - "portuguese" - ]; - var duelar = [ - "portuguese" - ]; - var duende = [ - "portuguese" - ]; - var dueto = [ - "portuguese" - ]; - var duplo = [ - "portuguese" - ]; - var duquesa = [ - "portuguese" - ]; - var durante = [ - "portuguese" - ]; - var duvidoso = [ - "portuguese" - ]; - var eclodir = [ - "portuguese" - ]; - var ecoar = [ - "portuguese" - ]; - var ecologia = [ - "portuguese" - ]; - var edificar = [ - "portuguese" - ]; - var edital = [ - "portuguese" - ]; - var educado = [ - "portuguese" - ]; - var efeito = [ - "portuguese" - ]; - var efetivar = [ - "portuguese" - ]; - var ejetar = [ - "portuguese" - ]; - var elaborar = [ - "portuguese" - ]; - var eleger = [ - "portuguese" - ]; - var eleitor = [ - "portuguese" - ]; - var elenco = [ - "portuguese" - ]; - var elevador = [ - "portuguese" - ]; - var eliminar = [ - "portuguese" - ]; - var elogiar = [ - "portuguese" - ]; - var embargo = [ - "portuguese" - ]; - var embolado = [ - "portuguese" - ]; - var embrulho = [ - "portuguese" - ]; - var embutido = [ - "portuguese" - ]; - var emenda = [ - "portuguese" - ]; - var emergir = [ - "portuguese" - ]; - var emissor = [ - "portuguese" - ]; - var empatia = [ - "portuguese" - ]; - var empenho = [ - "portuguese" - ]; - var empinado = [ - "portuguese" - ]; - var empolgar = [ - "portuguese" - ]; - var emprego = [ - "portuguese" - ]; - var empurrar = [ - "portuguese" - ]; - var emulador = [ - "portuguese" - ]; - var encaixe = [ - "portuguese" - ]; - var encenado = [ - "portuguese" - ]; - var enchente = [ - "portuguese" - ]; - var encontro = [ - "portuguese" - ]; - var endeusar = [ - "portuguese" - ]; - var endossar = [ - "portuguese" - ]; - var enfaixar = [ - "portuguese" - ]; - var enfeite = [ - "portuguese" - ]; - var enfim = [ - "portuguese" - ]; - var engajado = [ - "portuguese" - ]; - var engenho = [ - "portuguese" - ]; - var englobar = [ - "portuguese" - ]; - var engomado = [ - "portuguese" - ]; - var engraxar = [ - "portuguese" - ]; - var enguia = [ - "portuguese" - ]; - var enjoar = [ - "portuguese" - ]; - var enlatar = [ - "portuguese" - ]; - var enquanto = [ - "portuguese" - ]; - var enraizar = [ - "portuguese" - ]; - var enrolado = [ - "portuguese" - ]; - var enrugar = [ - "portuguese" - ]; - var ensaio = [ - "portuguese" - ]; - var enseada = [ - "portuguese" - ]; - var ensino = [ - "portuguese" - ]; - var ensopado = [ - "portuguese" - ]; - var entanto = [ - "portuguese" - ]; - var enteado = [ - "portuguese" - ]; - var entidade = [ - "portuguese" - ]; - var entortar = [ - "portuguese" - ]; - var entrada = [ - "portuguese" - ]; - var entulho = [ - "portuguese" - ]; - var envergar = [ - "portuguese" - ]; - var enviado = [ - "portuguese" - ]; - var envolver = [ - "portuguese" - ]; - var enxame = [ - "portuguese" - ]; - var enxerto = [ - "portuguese" - ]; - var enxofre = [ - "portuguese" - ]; - var enxuto = [ - "portuguese" - ]; - var epiderme = [ - "portuguese" - ]; - var equipar = [ - "portuguese" - ]; - var ereto = [ - "portuguese" - ]; - var erguido = [ - "portuguese" - ]; - var errata = [ - "portuguese" - ]; - var erva = [ - "portuguese" - ]; - var ervilha = [ - "portuguese" - ]; - var esbanjar = [ - "portuguese" - ]; - var esbelto = [ - "portuguese" - ]; - var escama = [ - "portuguese" - ]; - var escola = [ - "portuguese" - ]; - var escrita = [ - "portuguese" - ]; - var escuta = [ - "portuguese" - ]; - var esfinge = [ - "portuguese" - ]; - var esfolar = [ - "portuguese" - ]; - var esfregar = [ - "portuguese" - ]; - var esfumado = [ - "portuguese" - ]; - var esgrima = [ - "portuguese" - ]; - var esmalte = [ - "portuguese" - ]; - var espanto = [ - "portuguese" - ]; - var espelho = [ - "portuguese" - ]; - var espiga = [ - "portuguese" - ]; - var esponja = [ - "portuguese" - ]; - var espreita = [ - "portuguese" - ]; - var espumar = [ - "portuguese" - ]; - var esquerda = [ - "portuguese" - ]; - var estaca = [ - "portuguese" - ]; - var esteira = [ - "portuguese" - ]; - var esticar = [ - "portuguese" - ]; - var estofado = [ - "portuguese" - ]; - var estrela = [ - "portuguese" - ]; - var estudo = [ - "portuguese" - ]; - var esvaziar = [ - "portuguese" - ]; - var etanol = [ - "portuguese" - ]; - var etiqueta = [ - "portuguese" - ]; - var euforia = [ - "portuguese" - ]; - var europeu = [ - "portuguese" - ]; - var evacuar = [ - "portuguese" - ]; - var evaporar = [ - "portuguese" - ]; - var evasivo = [ - "portuguese" - ]; - var eventual = [ - "portuguese" - ]; - var evidente = [ - "portuguese" - ]; - var evoluir = [ - "portuguese" - ]; - var exagero = [ - "portuguese" - ]; - var exalar = [ - "portuguese" - ]; - var examinar = [ - "portuguese" - ]; - var exato = [ - "portuguese" - ]; - var exausto = [ - "portuguese" - ]; - var excesso = [ - "portuguese" - ]; - var excitar = [ - "portuguese" - ]; - var exclamar = [ - "portuguese" - ]; - var executar = [ - "portuguese" - ]; - var exemplo = [ - "portuguese" - ]; - var exibir = [ - "portuguese" - ]; - var exigente = [ - "portuguese" - ]; - var exonerar = [ - "portuguese" - ]; - var expandir = [ - "portuguese" - ]; - var expelir = [ - "portuguese" - ]; - var expirar = [ - "portuguese" - ]; - var explanar = [ - "portuguese" - ]; - var exposto = [ - "portuguese" - ]; - var expresso = [ - "portuguese" - ]; - var expulsar = [ - "portuguese" - ]; - var externo = [ - "portuguese" - ]; - var extinto = [ - "portuguese" - ]; - var extrato = [ - "portuguese" - ]; - var fabricar = [ - "portuguese" - ]; - var fabuloso = [ - "portuguese" - ]; - var faceta = [ - "portuguese" - ]; - var facial = [ - "portuguese" - ]; - var fada = [ - "portuguese" - ]; - var fadiga = [ - "portuguese" - ]; - var faixa = [ - "portuguese" - ]; - var falar = [ - "portuguese" - ]; - var falta = [ - "portuguese" - ]; - var familiar = [ - "portuguese" - ]; - var fandango = [ - "portuguese" - ]; - var fanfarra = [ - "portuguese" - ]; - var fantoche = [ - "portuguese" - ]; - var fardado = [ - "portuguese" - ]; - var farelo = [ - "portuguese" - ]; - var farinha = [ - "portuguese" - ]; - var farofa = [ - "portuguese" - ]; - var farpa = [ - "portuguese" - ]; - var fartura = [ - "portuguese" - ]; - var fatia = [ - "portuguese" - ]; - var fator = [ - "portuguese" - ]; - var favorita = [ - "portuguese" - ]; - var faxina = [ - "portuguese" - ]; - var fazenda = [ - "portuguese" - ]; - var fechado = [ - "portuguese" - ]; - var feijoada = [ - "portuguese" - ]; - var feirante = [ - "portuguese" - ]; - var felino = [ - "portuguese" - ]; - var feminino = [ - "portuguese" - ]; - var fenda = [ - "portuguese" - ]; - var feno = [ - "portuguese" - ]; - var fera = [ - "portuguese" - ]; - var feriado = [ - "portuguese" - ]; - var ferrugem = [ - "portuguese" - ]; - var ferver = [ - "portuguese" - ]; - var festejar = [ - "portuguese" - ]; - var fetal = [ - "portuguese" - ]; - var feudal = [ - "portuguese" - ]; - var fiapo = [ - "portuguese" - ]; - var fibrose = [ - "portuguese" - ]; - var ficar = [ - "portuguese" - ]; - var ficheiro = [ - "portuguese" - ]; - var figurado = [ - "portuguese" - ]; - var fileira = [ - "portuguese" - ]; - var filho = [ - "portuguese" - ]; - var filme = [ - "portuguese" - ]; - var filtrar = [ - "portuguese" - ]; - var firmeza = [ - "portuguese" - ]; - var fisgada = [ - "portuguese" - ]; - var fissura = [ - "portuguese" - ]; - var fita = [ - "portuguese" - ]; - var fivela = [ - "portuguese" - ]; - var fixador = [ - "portuguese" - ]; - var fixo = [ - "portuguese" - ]; - var flacidez = [ - "portuguese" - ]; - var flamingo = [ - "portuguese" - ]; - var flanela = [ - "portuguese" - ]; - var flechada = [ - "portuguese" - ]; - var flora = [ - "portuguese" - ]; - var flutuar = [ - "portuguese" - ]; - var fluxo = [ - "portuguese" - ]; - var focal = [ - "portuguese" - ]; - var focinho = [ - "portuguese" - ]; - var fofocar = [ - "portuguese" - ]; - var fogo = [ - "portuguese" - ]; - var foguete = [ - "portuguese" - ]; - var foice = [ - "portuguese" - ]; - var folgado = [ - "portuguese" - ]; - var folheto = [ - "portuguese" - ]; - var forjar = [ - "portuguese" - ]; - var formiga = [ - "portuguese" - ]; - var forno = [ - "portuguese" - ]; - var forte = [ - "portuguese" - ]; - var fosco = [ - "portuguese" - ]; - var fossa = [ - "portuguese" - ]; - var fragata = [ - "portuguese" - ]; - var fralda = [ - "portuguese" - ]; - var frango = [ - "portuguese" - ]; - var frasco = [ - "portuguese" - ]; - var fraterno = [ - "portuguese" - ]; - var freira = [ - "portuguese" - ]; - var frente = [ - "portuguese" - ]; - var fretar = [ - "portuguese" - ]; - var frieza = [ - "portuguese" - ]; - var friso = [ - "portuguese" - ]; - var fritura = [ - "portuguese" - ]; - var fronha = [ - "portuguese" - ]; - var frustrar = [ - "portuguese" - ]; - var fruteira = [ - "portuguese" - ]; - var fugir = [ - "portuguese" - ]; - var fulano = [ - "portuguese" - ]; - var fuligem = [ - "portuguese" - ]; - var fundar = [ - "portuguese" - ]; - var fungo = [ - "portuguese" - ]; - var funil = [ - "portuguese" - ]; - var furador = [ - "portuguese" - ]; - var furioso = [ - "portuguese" - ]; - var futebol = [ - "portuguese" - ]; - var gabarito = [ - "portuguese" - ]; - var gabinete = [ - "portuguese" - ]; - var gado = [ - "portuguese" - ]; - var gaiato = [ - "portuguese" - ]; - var gaiola = [ - "portuguese" - ]; - var gaivota = [ - "portuguese" - ]; - var galega = [ - "portuguese" - ]; - var galho = [ - "portuguese" - ]; - var galinha = [ - "portuguese" - ]; - var galocha = [ - "portuguese" - ]; - var ganhar = [ - "portuguese" - ]; - var garagem = [ - "portuguese" - ]; - var garfo = [ - "portuguese" - ]; - var gargalo = [ - "portuguese" - ]; - var garimpo = [ - "portuguese" - ]; - var garoupa = [ - "portuguese" - ]; - var garrafa = [ - "portuguese" - ]; - var gasoduto = [ - "portuguese" - ]; - var gasto = [ - "portuguese" - ]; - var gata = [ - "portuguese" - ]; - var gatilho = [ - "portuguese" - ]; - var gaveta = [ - "portuguese" - ]; - var gazela = [ - "portuguese" - ]; - var gelado = [ - "portuguese" - ]; - var geleia = [ - "portuguese" - ]; - var gelo = [ - "portuguese" - ]; - var gemada = [ - "portuguese" - ]; - var gemer = [ - "portuguese" - ]; - var gemido = [ - "portuguese" - ]; - var generoso = [ - "portuguese" - ]; - var gengiva = [ - "portuguese" - ]; - var genial = [ - "portuguese" - ]; - var genoma = [ - "portuguese" - ]; - var genro = [ - "portuguese" - ]; - var geologia = [ - "portuguese" - ]; - var gerador = [ - "portuguese" - ]; - var germinar = [ - "portuguese" - ]; - var gesso = [ - "portuguese" - ]; - var gestor = [ - "portuguese" - ]; - var ginasta = [ - "portuguese" - ]; - var gincana = [ - "portuguese" - ]; - var gingado = [ - "portuguese" - ]; - var girafa = [ - "portuguese" - ]; - var girino = [ - "portuguese" - ]; - var glacial = [ - "portuguese" - ]; - var glicose = [ - "portuguese" - ]; - var global$1 = [ - "portuguese" - ]; - var glorioso = [ - "portuguese" - ]; - var goela = [ - "portuguese" - ]; - var goiaba = [ - "portuguese" - ]; - var golfe = [ - "portuguese" - ]; - var golpear = [ - "portuguese" - ]; - var gordura = [ - "portuguese" - ]; - var gorjeta = [ - "portuguese" - ]; - var gorro = [ - "portuguese" - ]; - var gostoso = [ - "portuguese" - ]; - var goteira = [ - "portuguese" - ]; - var governar = [ - "portuguese" - ]; - var gracejo = [ - "portuguese" - ]; - var gradual = [ - "portuguese" - ]; - var grafite = [ - "portuguese" - ]; - var gralha = [ - "portuguese" - ]; - var grampo = [ - "portuguese" - ]; - var granada = [ - "portuguese" - ]; - var gratuito = [ - "portuguese" - ]; - var graveto = [ - "portuguese" - ]; - var graxa = [ - "portuguese" - ]; - var grego = [ - "portuguese" - ]; - var grelhar = [ - "portuguese" - ]; - var greve = [ - "portuguese" - ]; - var grilo = [ - "portuguese" - ]; - var grisalho = [ - "portuguese" - ]; - var gritaria = [ - "portuguese" - ]; - var grosso = [ - "portuguese" - ]; - var grotesco = [ - "portuguese" - ]; - var grudado = [ - "portuguese" - ]; - var grunhido = [ - "portuguese" - ]; - var gruta = [ - "portuguese" - ]; - var guache = [ - "portuguese" - ]; - var guarani = [ - "portuguese" - ]; - var guaxinim = [ - "portuguese" - ]; - var guerrear = [ - "portuguese" - ]; - var guiar = [ - "portuguese" - ]; - var guincho = [ - "portuguese" - ]; - var guisado = [ - "portuguese" - ]; - var gula = [ - "portuguese" - ]; - var guloso = [ - "portuguese" - ]; - var guru = [ - "portuguese" - ]; - var habitar = [ - "portuguese" - ]; - var harmonia = [ - "portuguese" - ]; - var haste = [ - "portuguese" - ]; - var haver = [ - "portuguese" - ]; - var hectare = [ - "portuguese" - ]; - var herdar = [ - "portuguese" - ]; - var heresia = [ - "portuguese" - ]; - var hesitar = [ - "portuguese" - ]; - var hiato = [ - "portuguese" - ]; - var hibernar = [ - "portuguese" - ]; - var hidratar = [ - "portuguese" - ]; - var hiena = [ - "portuguese" - ]; - var hino = [ - "portuguese" - ]; - var hipismo = [ - "portuguese" - ]; - var hipnose = [ - "portuguese" - ]; - var hipoteca = [ - "portuguese" - ]; - var hoje = [ - "portuguese" - ]; - var holofote = [ - "portuguese" - ]; - var homem = [ - "portuguese" - ]; - var honesto = [ - "portuguese" - ]; - var honrado = [ - "portuguese" - ]; - var hormonal = [ - "portuguese" - ]; - var hospedar = [ - "portuguese" - ]; - var humorado = [ - "portuguese" - ]; - var iate = [ - "portuguese" - ]; - var ideia = [ - "portuguese" - ]; - var idoso = [ - "portuguese" - ]; - var ignorado = [ - "portuguese" - ]; - var igreja = [ - "portuguese" - ]; - var iguana = [ - "portuguese" - ]; - var ileso = [ - "portuguese" - ]; - var ilha = [ - "portuguese" - ]; - var iludido = [ - "portuguese" - ]; - var iluminar = [ - "portuguese" - ]; - var ilustrar = [ - "portuguese" - ]; - var imagem = [ - "portuguese" - ]; - var imediato = [ - "portuguese" - ]; - var imenso = [ - "portuguese" - ]; - var imersivo = [ - "portuguese" - ]; - var iminente = [ - "portuguese" - ]; - var imitador = [ - "portuguese" - ]; - var imortal = [ - "portuguese" - ]; - var impacto = [ - "portuguese" - ]; - var impedir = [ - "portuguese" - ]; - var implante = [ - "portuguese" - ]; - var impor = [ - "portuguese" - ]; - var imprensa = [ - "portuguese" - ]; - var impune = [ - "portuguese" - ]; - var imunizar = [ - "portuguese" - ]; - var inalador = [ - "portuguese" - ]; - var inapto = [ - "portuguese" - ]; - var inativo = [ - "portuguese" - ]; - var incenso = [ - "portuguese" - ]; - var inchar = [ - "portuguese" - ]; - var incidir = [ - "portuguese" - ]; - var incluir = [ - "portuguese" - ]; - var incolor = [ - "portuguese" - ]; - var indeciso = [ - "portuguese" - ]; - var indireto = [ - "portuguese" - ]; - var indutor = [ - "portuguese" - ]; - var ineficaz = [ - "portuguese" - ]; - var inerente = [ - "portuguese" - ]; - var infantil = [ - "portuguese" - ]; - var infestar = [ - "portuguese" - ]; - var infinito = [ - "portuguese" - ]; - var inflamar = [ - "portuguese" - ]; - var informal = [ - "portuguese" - ]; - var infrator = [ - "portuguese" - ]; - var ingerir = [ - "portuguese" - ]; - var inibido = [ - "portuguese" - ]; - var inicial = [ - "portuguese" - ]; - var inimigo = [ - "portuguese" - ]; - var injetar = [ - "portuguese" - ]; - var inocente = [ - "portuguese" - ]; - var inodoro = [ - "portuguese" - ]; - var inovador = [ - "portuguese" - ]; - var inox = [ - "portuguese" - ]; - var inquieto = [ - "portuguese" - ]; - var inscrito = [ - "portuguese" - ]; - var inseto = [ - "portuguese" - ]; - var insistir = [ - "portuguese" - ]; - var inspetor = [ - "portuguese" - ]; - var instalar = [ - "portuguese" - ]; - var insulto = [ - "portuguese" - ]; - var intacto = [ - "portuguese" - ]; - var integral = [ - "portuguese" - ]; - var intimar = [ - "portuguese" - ]; - var intocado = [ - "portuguese" - ]; - var intriga = [ - "portuguese" - ]; - var invasor = [ - "portuguese" - ]; - var inverno = [ - "portuguese" - ]; - var invicto = [ - "portuguese" - ]; - var invocar = [ - "portuguese" - ]; - var iogurte = [ - "portuguese" - ]; - var iraniano = [ - "portuguese" - ]; - var ironizar = [ - "portuguese" - ]; - var irreal = [ - "portuguese" - ]; - var irritado = [ - "portuguese" - ]; - var isca = [ - "portuguese" - ]; - var isento = [ - "portuguese" - ]; - var isolado = [ - "portuguese" - ]; - var isqueiro = [ - "portuguese" - ]; - var italiano = [ - "portuguese" - ]; - var janeiro = [ - "portuguese" - ]; - var jangada = [ - "portuguese" - ]; - var janta = [ - "portuguese" - ]; - var jararaca = [ - "portuguese" - ]; - var jardim = [ - "portuguese" - ]; - var jarro = [ - "portuguese" - ]; - var jasmim = [ - "portuguese" - ]; - var jato = [ - "portuguese" - ]; - var javali = [ - "portuguese" - ]; - var jazida = [ - "portuguese" - ]; - var jejum = [ - "portuguese" - ]; - var joaninha = [ - "portuguese" - ]; - var joelhada = [ - "portuguese" - ]; - var jogador = [ - "portuguese" - ]; - var joia = [ - "portuguese" - ]; - var jornal = [ - "portuguese" - ]; - var jorrar = [ - "portuguese" - ]; - var jovem = [ - "portuguese" - ]; - var juba = [ - "portuguese" - ]; - var judeu = [ - "portuguese" - ]; - var judoca = [ - "portuguese" - ]; - var juiz = [ - "portuguese" - ]; - var julgador = [ - "portuguese" - ]; - var julho = [ - "portuguese" - ]; - var jurado = [ - "portuguese" - ]; - var jurista = [ - "portuguese" - ]; - var juro = [ - "portuguese" - ]; - var justa = [ - "portuguese" - ]; - var labareda = [ - "portuguese" - ]; - var laboral = [ - "portuguese" - ]; - var lacre = [ - "portuguese" - ]; - var lactante = [ - "portuguese" - ]; - var ladrilho = [ - "portuguese" - ]; - var lagarta = [ - "portuguese" - ]; - var lagoa = [ - "portuguese" - ]; - var laje = [ - "portuguese" - ]; - var lamber = [ - "portuguese" - ]; - var lamentar = [ - "portuguese" - ]; - var laminar = [ - "portuguese" - ]; - var lampejo = [ - "portuguese" - ]; - var lanche = [ - "portuguese" - ]; - var lapidar = [ - "portuguese" - ]; - var lapso = [ - "portuguese" - ]; - var laranja = [ - "portuguese" - ]; - var lareira = [ - "portuguese" - ]; - var largura = [ - "portuguese" - ]; - var lasanha = [ - "portuguese" - ]; - var lastro = [ - "portuguese" - ]; - var lateral = [ - "portuguese" - ]; - var latido = [ - "portuguese" - ]; - var lavanda = [ - "portuguese" - ]; - var lavoura = [ - "portuguese" - ]; - var lavrador = [ - "portuguese" - ]; - var laxante = [ - "portuguese" - ]; - var lazer = [ - "portuguese" - ]; - var lealdade = [ - "portuguese" - ]; - var lebre = [ - "portuguese" - ]; - var legado = [ - "portuguese" - ]; - var legendar = [ - "portuguese" - ]; - var legista = [ - "portuguese" - ]; - var leigo = [ - "portuguese" - ]; - var leiloar = [ - "portuguese" - ]; - var leitura = [ - "portuguese" - ]; - var lembrete = [ - "portuguese" - ]; - var leme = [ - "portuguese" - ]; - var lenhador = [ - "portuguese" - ]; - var lentilha = [ - "portuguese" - ]; - var leoa = [ - "portuguese" - ]; - var lesma = [ - "portuguese" - ]; - var leste = [ - "portuguese" - ]; - var letivo = [ - "portuguese" - ]; - var letreiro = [ - "portuguese" - ]; - var levar = [ - "portuguese" - ]; - var leveza = [ - "portuguese" - ]; - var levitar = [ - "portuguese" - ]; - var liberal = [ - "portuguese" - ]; - var libido = [ - "portuguese" - ]; - var liderar = [ - "portuguese" - ]; - var ligar = [ - "portuguese" - ]; - var ligeiro = [ - "portuguese" - ]; - var limitar = [ - "portuguese" - ]; - var limoeiro = [ - "portuguese" - ]; - var limpador = [ - "portuguese" - ]; - var linda = [ - "portuguese" - ]; - var linear = [ - "portuguese" - ]; - var linhagem = [ - "portuguese" - ]; - var liquidez = [ - "portuguese" - ]; - var listagem = [ - "portuguese" - ]; - var lisura = [ - "portuguese" - ]; - var litoral = [ - "portuguese" - ]; - var livro = [ - "portuguese" - ]; - var lixa = [ - "portuguese" - ]; - var lixeira = [ - "portuguese" - ]; - var locador = [ - "portuguese" - ]; - var locutor = [ - "portuguese" - ]; - var lojista = [ - "portuguese" - ]; - var lombo = [ - "portuguese" - ]; - var lona = [ - "portuguese" - ]; - var longe = [ - "portuguese" - ]; - var lontra = [ - "portuguese" - ]; - var lorde = [ - "portuguese" - ]; - var lotado = [ - "portuguese" - ]; - var loteria = [ - "portuguese" - ]; - var loucura = [ - "portuguese" - ]; - var lousa = [ - "portuguese" - ]; - var louvar = [ - "portuguese" - ]; - var luar = [ - "portuguese" - ]; - var lucidez = [ - "portuguese" - ]; - var lucro = [ - "portuguese" - ]; - var luneta = [ - "portuguese" - ]; - var lustre = [ - "portuguese" - ]; - var lutador = [ - "portuguese" - ]; - var luva = [ - "portuguese" - ]; - var macaco = [ - "portuguese" - ]; - var macete = [ - "portuguese" - ]; - var machado = [ - "portuguese" - ]; - var macio = [ - "portuguese" - ]; - var madeira = [ - "portuguese" - ]; - var madrinha = [ - "portuguese" - ]; - var magnata = [ - "portuguese" - ]; - var magreza = [ - "portuguese" - ]; - var maior = [ - "portuguese" - ]; - var mais = [ - "portuguese" - ]; - var malandro = [ - "portuguese" - ]; - var malha = [ - "portuguese" - ]; - var malote = [ - "portuguese" - ]; - var maluco = [ - "portuguese" - ]; - var mamilo = [ - "portuguese" - ]; - var mamoeiro = [ - "portuguese" - ]; - var mamute = [ - "portuguese" - ]; - var manada = [ - "portuguese" - ]; - var mancha = [ - "portuguese" - ]; - var mandato = [ - "portuguese" - ]; - var manequim = [ - "portuguese" - ]; - var manhoso = [ - "portuguese" - ]; - var manivela = [ - "portuguese" - ]; - var manobrar = [ - "portuguese" - ]; - var mansa = [ - "portuguese" - ]; - var manter = [ - "portuguese" - ]; - var manusear = [ - "portuguese" - ]; - var mapeado = [ - "portuguese" - ]; - var maquinar = [ - "portuguese" - ]; - var marcador = [ - "portuguese" - ]; - var maresia = [ - "portuguese" - ]; - var marfim = [ - "portuguese" - ]; - var margem = [ - "portuguese" - ]; - var marinho = [ - "portuguese" - ]; - var marmita = [ - "portuguese" - ]; - var maroto = [ - "portuguese" - ]; - var marquise = [ - "portuguese" - ]; - var marreco = [ - "portuguese" - ]; - var martelo = [ - "portuguese" - ]; - var marujo = [ - "portuguese" - ]; - var mascote = [ - "portuguese" - ]; - var masmorra = [ - "portuguese" - ]; - var massagem = [ - "portuguese" - ]; - var mastigar = [ - "portuguese" - ]; - var matagal = [ - "portuguese" - ]; - var materno = [ - "portuguese" - ]; - var matinal = [ - "portuguese" - ]; - var matutar = [ - "portuguese" - ]; - var maxilar = [ - "portuguese" - ]; - var medalha = [ - "portuguese" - ]; - var medida = [ - "portuguese" - ]; - var medusa = [ - "portuguese" - ]; - var megafone = [ - "portuguese" - ]; - var meiga = [ - "portuguese" - ]; - var melancia = [ - "portuguese" - ]; - var melhor = [ - "portuguese" - ]; - var membro = [ - "portuguese" - ]; - var memorial = [ - "portuguese" - ]; - var menino = [ - "portuguese" - ]; - var menos = [ - "portuguese" - ]; - var mensagem = [ - "portuguese" - ]; - var mental = [ - "portuguese" - ]; - var merecer = [ - "portuguese" - ]; - var mergulho = [ - "portuguese" - ]; - var mesada = [ - "portuguese" - ]; - var mesclar = [ - "portuguese" - ]; - var mesmo = [ - "portuguese" - ]; - var mesquita = [ - "portuguese" - ]; - var mestre = [ - "portuguese" - ]; - var metade = [ - "portuguese" - ]; - var meteoro = [ - "portuguese" - ]; - var metragem = [ - "portuguese" - ]; - var mexer = [ - "portuguese" - ]; - var mexicano = [ - "portuguese" - ]; - var micro = [ - "portuguese" - ]; - var migalha = [ - "portuguese" - ]; - var migrar = [ - "portuguese" - ]; - var milagre = [ - "portuguese" - ]; - var milenar = [ - "portuguese" - ]; - var milhar = [ - "portuguese" - ]; - var mimado = [ - "portuguese" - ]; - var minerar = [ - "portuguese" - ]; - var minhoca = [ - "portuguese" - ]; - var ministro = [ - "portuguese" - ]; - var minoria = [ - "portuguese" - ]; - var miolo = [ - "portuguese" - ]; - var mirante = [ - "portuguese" - ]; - var mirtilo = [ - "portuguese" - ]; - var misturar = [ - "portuguese" - ]; - var mocidade = [ - "portuguese" - ]; - var moderno = [ - "portuguese" - ]; - var modular$1 = [ - "portuguese" - ]; - var moeda = [ - "portuguese" - ]; - var moer = [ - "portuguese" - ]; - var moinho = [ - "portuguese" - ]; - var moita = [ - "portuguese" - ]; - var moldura = [ - "portuguese" - ]; - var moleza = [ - "portuguese" - ]; - var molho = [ - "portuguese" - ]; - var molinete = [ - "portuguese" - ]; - var molusco = [ - "portuguese" - ]; - var montanha = [ - "portuguese" - ]; - var moqueca = [ - "portuguese" - ]; - var morango = [ - "portuguese" - ]; - var morcego = [ - "portuguese" - ]; - var mordomo = [ - "portuguese" - ]; - var morena = [ - "portuguese" - ]; - var mosaico = [ - "portuguese" - ]; - var mosquete = [ - "portuguese" - ]; - var mostarda = [ - "portuguese" - ]; - var motel = [ - "portuguese" - ]; - var motim = [ - "portuguese" - ]; - var moto = [ - "portuguese" - ]; - var motriz = [ - "portuguese" - ]; - var muda = [ - "portuguese" - ]; - var muito = [ - "portuguese" - ]; - var mulata = [ - "portuguese" - ]; - var mulher = [ - "portuguese" - ]; - var multar = [ - "portuguese" - ]; - var mundial = [ - "portuguese" - ]; - var munido = [ - "portuguese" - ]; - var muralha = [ - "portuguese" - ]; - var murcho = [ - "portuguese" - ]; - var muscular = [ - "portuguese" - ]; - var museu = [ - "portuguese" - ]; - var musical = [ - "portuguese" - ]; - var nacional = [ - "portuguese" - ]; - var nadador = [ - "portuguese" - ]; - var naja = [ - "portuguese" - ]; - var namoro = [ - "portuguese" - ]; - var narina = [ - "portuguese" - ]; - var narrado = [ - "portuguese" - ]; - var nascer = [ - "portuguese" - ]; - var nativa = [ - "portuguese" - ]; - var natureza = [ - "portuguese" - ]; - var navalha = [ - "portuguese" - ]; - var navegar = [ - "portuguese" - ]; - var navio = [ - "portuguese" - ]; - var neblina = [ - "portuguese" - ]; - var nebuloso = [ - "portuguese" - ]; - var negativa = [ - "portuguese" - ]; - var negociar = [ - "portuguese" - ]; - var negrito = [ - "portuguese" - ]; - var nervoso = [ - "portuguese" - ]; - var neta = [ - "portuguese" - ]; - var neural = [ - "portuguese" - ]; - var nevasca = [ - "portuguese" - ]; - var nevoeiro = [ - "portuguese" - ]; - var ninar = [ - "portuguese" - ]; - var ninho = [ - "portuguese" - ]; - var nitidez = [ - "portuguese" - ]; - var nivelar = [ - "portuguese" - ]; - var nobreza = [ - "portuguese" - ]; - var noite = [ - "portuguese" - ]; - var noiva = [ - "portuguese" - ]; - var nomear = [ - "portuguese" - ]; - var nominal = [ - "portuguese" - ]; - var nordeste = [ - "portuguese" - ]; - var nortear = [ - "portuguese" - ]; - var notar = [ - "portuguese" - ]; - var noticiar = [ - "portuguese" - ]; - var noturno = [ - "portuguese" - ]; - var novelo = [ - "portuguese" - ]; - var novilho = [ - "portuguese" - ]; - var novo = [ - "portuguese" - ]; - var nublado = [ - "portuguese" - ]; - var nudez = [ - "portuguese" - ]; - var numeral = [ - "portuguese" - ]; - var nupcial = [ - "portuguese" - ]; - var nutrir = [ - "portuguese" - ]; - var nuvem = [ - "portuguese" - ]; - var obcecado = [ - "portuguese" - ]; - var obedecer = [ - "portuguese" - ]; - var objetivo = [ - "portuguese" - ]; - var obrigado = [ - "portuguese" - ]; - var obscuro = [ - "portuguese" - ]; - var obstetra = [ - "portuguese" - ]; - var obter = [ - "portuguese" - ]; - var obturar = [ - "portuguese" - ]; - var ocidente = [ - "portuguese" - ]; - var ocioso = [ - "portuguese" - ]; - var ocorrer = [ - "portuguese" - ]; - var oculista = [ - "portuguese" - ]; - var ocupado = [ - "portuguese" - ]; - var ofegante = [ - "portuguese" - ]; - var ofensiva = [ - "portuguese" - ]; - var oferenda = [ - "portuguese" - ]; - var oficina = [ - "portuguese" - ]; - var ofuscado = [ - "portuguese" - ]; - var ogiva = [ - "portuguese" - ]; - var olaria = [ - "portuguese" - ]; - var oleoso = [ - "portuguese" - ]; - var olhar = [ - "portuguese" - ]; - var oliveira = [ - "portuguese" - ]; - var ombro = [ - "portuguese" - ]; - var omelete = [ - "portuguese" - ]; - var omisso = [ - "portuguese" - ]; - var omitir = [ - "portuguese" - ]; - var ondulado = [ - "portuguese" - ]; - var oneroso = [ - "portuguese" - ]; - var ontem = [ - "portuguese" - ]; - var opcional = [ - "portuguese" - ]; - var operador = [ - "portuguese" - ]; - var oponente = [ - "portuguese" - ]; - var oportuno = [ - "portuguese" - ]; - var oposto = [ - "portuguese" - ]; - var orar = [ - "portuguese" - ]; - var orbitar = [ - "portuguese" - ]; - var ordem = [ - "portuguese" - ]; - var ordinal = [ - "portuguese" - ]; - var orfanato = [ - "portuguese" - ]; - var orgasmo = [ - "portuguese" - ]; - var orgulho = [ - "portuguese" - ]; - var oriental = [ - "portuguese" - ]; - var origem = [ - "portuguese" - ]; - var oriundo = [ - "portuguese" - ]; - var orla = [ - "portuguese" - ]; - var ortodoxo = [ - "portuguese" - ]; - var orvalho = [ - "portuguese" - ]; - var oscilar = [ - "portuguese" - ]; - var ossada = [ - "portuguese" - ]; - var osso = [ - "portuguese" - ]; - var ostentar = [ - "portuguese" - ]; - var otimismo = [ - "portuguese" - ]; - var ousadia = [ - "portuguese" - ]; - var outono = [ - "portuguese" - ]; - var outubro = [ - "portuguese" - ]; - var ouvido = [ - "portuguese" - ]; - var ovelha = [ - "portuguese" - ]; - var ovular = [ - "portuguese" - ]; - var oxidar = [ - "portuguese" - ]; - var oxigenar = [ - "portuguese" - ]; - var pacato = [ - "portuguese" - ]; - var paciente = [ - "portuguese" - ]; - var pacote = [ - "portuguese" - ]; - var pactuar = [ - "portuguese" - ]; - var padaria = [ - "portuguese" - ]; - var padrinho = [ - "portuguese" - ]; - var pagar = [ - "portuguese" - ]; - var pagode = [ - "portuguese" - ]; - var painel = [ - "portuguese" - ]; - var pairar = [ - "portuguese" - ]; - var paisagem = [ - "portuguese" - ]; - var palavra = [ - "portuguese" - ]; - var palestra = [ - "portuguese" - ]; - var palheta = [ - "portuguese" - ]; - var palito = [ - "portuguese" - ]; - var palmada = [ - "portuguese" - ]; - var palpitar = [ - "portuguese" - ]; - var pancada = [ - "portuguese" - ]; - var panela = [ - "portuguese" - ]; - var panfleto = [ - "portuguese" - ]; - var panqueca = [ - "portuguese" - ]; - var pantanal = [ - "portuguese" - ]; - var papagaio = [ - "portuguese" - ]; - var papelada = [ - "portuguese" - ]; - var papiro = [ - "portuguese" - ]; - var parafina = [ - "portuguese" - ]; - var parcial = [ - "portuguese" - ]; - var pardal = [ - "portuguese" - ]; - var parede = [ - "portuguese" - ]; - var partida = [ - "portuguese" - ]; - var pasmo = [ - "portuguese" - ]; - var passado = [ - "portuguese" - ]; - var pastel = [ - "portuguese" - ]; - var patamar = [ - "portuguese" - ]; - var patente = [ - "portuguese" - ]; - var patinar = [ - "portuguese" - ]; - var patrono = [ - "portuguese" - ]; - var paulada = [ - "portuguese" - ]; - var pausar = [ - "portuguese" - ]; - var peculiar = [ - "portuguese" - ]; - var pedalar = [ - "portuguese" - ]; - var pedestre = [ - "portuguese" - ]; - var pediatra = [ - "portuguese" - ]; - var pedra = [ - "portuguese" - ]; - var pegada = [ - "portuguese" - ]; - var peitoral = [ - "portuguese" - ]; - var peixe = [ - "portuguese" - ]; - var pele = [ - "portuguese" - ]; - var pelicano = [ - "portuguese" - ]; - var penca = [ - "portuguese" - ]; - var pendurar = [ - "portuguese" - ]; - var peneira = [ - "portuguese" - ]; - var penhasco = [ - "portuguese" - ]; - var pensador = [ - "portuguese" - ]; - var pente = [ - "portuguese" - ]; - var perceber = [ - "portuguese" - ]; - var perfeito = [ - "portuguese" - ]; - var pergunta = [ - "portuguese" - ]; - var perito = [ - "portuguese" - ]; - var permitir = [ - "portuguese" - ]; - var perna = [ - "portuguese" - ]; - var perplexo = [ - "portuguese" - ]; - var persiana = [ - "portuguese" - ]; - var pertence = [ - "portuguese" - ]; - var peruca = [ - "portuguese" - ]; - var pescado = [ - "portuguese" - ]; - var pesquisa = [ - "portuguese" - ]; - var pessoa = [ - "portuguese" - ]; - var petiscar = [ - "portuguese" - ]; - var piada = [ - "portuguese" - ]; - var picado = [ - "portuguese" - ]; - var piedade = [ - "portuguese" - ]; - var pigmento = [ - "portuguese" - ]; - var pilastra = [ - "portuguese" - ]; - var pilhado = [ - "portuguese" - ]; - var pilotar = [ - "portuguese" - ]; - var pimenta = [ - "portuguese" - ]; - var pincel = [ - "portuguese" - ]; - var pinguim = [ - "portuguese" - ]; - var pinha = [ - "portuguese" - ]; - var pinote = [ - "portuguese" - ]; - var pintar = [ - "portuguese" - ]; - var pioneiro = [ - "portuguese" - ]; - var pipoca = [ - "portuguese" - ]; - var piquete = [ - "portuguese" - ]; - var piranha = [ - "portuguese" - ]; - var pires = [ - "portuguese" - ]; - var pirueta = [ - "portuguese" - ]; - var piscar = [ - "portuguese" - ]; - var pistola = [ - "portuguese" - ]; - var pitanga = [ - "portuguese" - ]; - var pivete = [ - "portuguese" - ]; - var planta = [ - "portuguese" - ]; - var plaqueta = [ - "portuguese" - ]; - var platina = [ - "portuguese" - ]; - var plebeu = [ - "portuguese" - ]; - var plumagem = [ - "portuguese" - ]; - var pluvial = [ - "portuguese" - ]; - var pneu = [ - "portuguese" - ]; - var poda = [ - "portuguese" - ]; - var poeira = [ - "portuguese" - ]; - var poetisa = [ - "portuguese" - ]; - var polegada = [ - "portuguese" - ]; - var policiar = [ - "portuguese" - ]; - var poluente = [ - "portuguese" - ]; - var polvilho = [ - "portuguese" - ]; - var pomar = [ - "portuguese" - ]; - var pomba = [ - "portuguese" - ]; - var ponderar = [ - "portuguese" - ]; - var pontaria = [ - "portuguese" - ]; - var populoso = [ - "portuguese" - ]; - var porta = [ - "portuguese" - ]; - var possuir = [ - "portuguese" - ]; - var postal = [ - "portuguese" - ]; - var pote = [ - "portuguese" - ]; - var poupar = [ - "portuguese" - ]; - var pouso = [ - "portuguese" - ]; - var povoar = [ - "portuguese" - ]; - var praia = [ - "portuguese" - ]; - var prancha = [ - "portuguese" - ]; - var prato = [ - "portuguese" - ]; - var praxe = [ - "portuguese" - ]; - var prece = [ - "portuguese" - ]; - var predador = [ - "portuguese" - ]; - var prefeito = [ - "portuguese" - ]; - var premiar = [ - "portuguese" - ]; - var prensar = [ - "portuguese" - ]; - var preparar = [ - "portuguese" - ]; - var presilha = [ - "portuguese" - ]; - var pretexto = [ - "portuguese" - ]; - var prevenir = [ - "portuguese" - ]; - var prezar = [ - "portuguese" - ]; - var primata = [ - "portuguese" - ]; - var princesa = [ - "portuguese" - ]; - var prisma = [ - "portuguese" - ]; - var privado = [ - "portuguese" - ]; - var processo = [ - "portuguese" - ]; - var produto = [ - "portuguese" - ]; - var profeta = [ - "portuguese" - ]; - var proibido = [ - "portuguese" - ]; - var projeto = [ - "portuguese" - ]; - var prometer = [ - "portuguese" - ]; - var propagar = [ - "portuguese" - ]; - var prosa = [ - "portuguese" - ]; - var protetor = [ - "portuguese" - ]; - var provador = [ - "portuguese" - ]; - var publicar = [ - "portuguese" - ]; - var pudim = [ - "portuguese" - ]; - var pular = [ - "portuguese" - ]; - var pulmonar = [ - "portuguese" - ]; - var pulseira = [ - "portuguese" - ]; - var punhal = [ - "portuguese" - ]; - var punir = [ - "portuguese" - ]; - var pupilo = [ - "portuguese" - ]; - var pureza = [ - "portuguese" - ]; - var puxador = [ - "portuguese" - ]; - var quadra = [ - "portuguese" - ]; - var quantia = [ - "portuguese" - ]; - var quarto = [ - "portuguese" - ]; - var quase = [ - "portuguese" - ]; - var quebrar = [ - "portuguese" - ]; - var queda = [ - "portuguese" - ]; - var queijo = [ - "portuguese" - ]; - var quente = [ - "portuguese" - ]; - var querido = [ - "portuguese" - ]; - var quimono = [ - "portuguese" - ]; - var quina = [ - "portuguese" - ]; - var quiosque = [ - "portuguese" - ]; - var rabanada = [ - "portuguese" - ]; - var rabisco = [ - "portuguese" - ]; - var rachar = [ - "portuguese" - ]; - var racionar = [ - "portuguese" - ]; - var radial = [ - "portuguese" - ]; - var raiar = [ - "portuguese" - ]; - var rainha = [ - "portuguese" - ]; - var raio = [ - "portuguese" - ]; - var raiva = [ - "portuguese" - ]; - var rajada = [ - "portuguese" - ]; - var ralado = [ - "portuguese" - ]; - var ramal = [ - "portuguese" - ]; - var ranger = [ - "portuguese" - ]; - var ranhura = [ - "portuguese" - ]; - var rapadura = [ - "portuguese" - ]; - var rapel = [ - "portuguese" - ]; - var rapidez = [ - "portuguese" - ]; - var raposa = [ - "portuguese" - ]; - var raquete = [ - "portuguese" - ]; - var raridade = [ - "portuguese" - ]; - var rasante = [ - "portuguese" - ]; - var rascunho = [ - "portuguese" - ]; - var rasgar = [ - "portuguese" - ]; - var raspador = [ - "portuguese" - ]; - var rasteira = [ - "portuguese" - ]; - var rasurar = [ - "portuguese" - ]; - var ratazana = [ - "portuguese" - ]; - var ratoeira = [ - "portuguese" - ]; - var realeza = [ - "portuguese" - ]; - var reanimar = [ - "portuguese" - ]; - var reaver = [ - "portuguese" - ]; - var rebaixar = [ - "portuguese" - ]; - var rebelde = [ - "portuguese" - ]; - var rebolar = [ - "portuguese" - ]; - var recado = [ - "portuguese" - ]; - var recente = [ - "portuguese" - ]; - var recheio = [ - "portuguese" - ]; - var recibo = [ - "portuguese" - ]; - var recordar = [ - "portuguese" - ]; - var recrutar = [ - "portuguese" - ]; - var recuar = [ - "portuguese" - ]; - var rede = [ - "portuguese" - ]; - var redimir = [ - "portuguese" - ]; - var redonda = [ - "portuguese" - ]; - var reduzida = [ - "portuguese" - ]; - var reenvio = [ - "portuguese" - ]; - var refinar = [ - "portuguese" - ]; - var refletir = [ - "portuguese" - ]; - var refogar = [ - "portuguese" - ]; - var refresco = [ - "portuguese" - ]; - var refugiar = [ - "portuguese" - ]; - var regalia = [ - "portuguese" - ]; - var regime = [ - "portuguese" - ]; - var regra = [ - "portuguese" - ]; - var reinado = [ - "portuguese" - ]; - var reitor = [ - "portuguese" - ]; - var rejeitar = [ - "portuguese" - ]; - var relativo = [ - "portuguese" - ]; - var remador = [ - "portuguese" - ]; - var remendo = [ - "portuguese" - ]; - var remorso = [ - "portuguese" - ]; - var renovado = [ - "portuguese" - ]; - var reparo = [ - "portuguese" - ]; - var repelir = [ - "portuguese" - ]; - var repleto = [ - "portuguese" - ]; - var repolho = [ - "portuguese" - ]; - var represa = [ - "portuguese" - ]; - var repudiar = [ - "portuguese" - ]; - var requerer = [ - "portuguese" - ]; - var resenha = [ - "portuguese" - ]; - var resfriar = [ - "portuguese" - ]; - var resgatar = [ - "portuguese" - ]; - var residir = [ - "portuguese" - ]; - var resolver = [ - "portuguese" - ]; - var respeito = [ - "portuguese" - ]; - var ressaca = [ - "portuguese" - ]; - var restante = [ - "portuguese" - ]; - var resumir = [ - "portuguese" - ]; - var retalho = [ - "portuguese" - ]; - var reter = [ - "portuguese" - ]; - var retirar = [ - "portuguese" - ]; - var retomada = [ - "portuguese" - ]; - var retratar = [ - "portuguese" - ]; - var revelar = [ - "portuguese" - ]; - var revisor = [ - "portuguese" - ]; - var revolta = [ - "portuguese" - ]; - var riacho = [ - "portuguese" - ]; - var rica = [ - "portuguese" - ]; - var rigidez = [ - "portuguese" - ]; - var rigoroso = [ - "portuguese" - ]; - var rimar = [ - "portuguese" - ]; - var ringue = [ - "portuguese" - ]; - var risada = [ - "portuguese" - ]; - var risco = [ - "portuguese" - ]; - var risonho = [ - "portuguese" - ]; - var robalo = [ - "portuguese" - ]; - var rochedo = [ - "portuguese" - ]; - var rodada = [ - "portuguese" - ]; - var rodeio = [ - "portuguese" - ]; - var rodovia = [ - "portuguese" - ]; - var roedor = [ - "portuguese" - ]; - var roleta = [ - "portuguese" - ]; - var romano = [ - "portuguese" - ]; - var roncar = [ - "portuguese" - ]; - var rosado = [ - "portuguese" - ]; - var roseira = [ - "portuguese" - ]; - var rosto = [ - "portuguese" - ]; - var rota = [ - "portuguese", - "turkish" - ]; - var roteiro = [ - "portuguese" - ]; - var rotina = [ - "portuguese" - ]; - var rotular = [ - "portuguese" - ]; - var rouco = [ - "portuguese" - ]; - var roupa = [ - "portuguese" - ]; - var roxo = [ - "portuguese" - ]; - var rubro = [ - "portuguese" - ]; - var rugido = [ - "portuguese" - ]; - var rugoso = [ - "portuguese" - ]; - var ruivo = [ - "portuguese" - ]; - var rumo = [ - "portuguese" - ]; - var rupestre = [ - "portuguese" - ]; - var russo = [ - "portuguese" - ]; - var sabor = [ - "portuguese" - ]; - var saciar = [ - "portuguese" - ]; - var sacola = [ - "portuguese" - ]; - var sacudir = [ - "portuguese" - ]; - var sadio = [ - "portuguese" - ]; - var safira = [ - "portuguese" - ]; - var saga = [ - "portuguese" - ]; - var sagrada = [ - "portuguese" - ]; - var saibro = [ - "portuguese" - ]; - var salada = [ - "portuguese" - ]; - var saleiro = [ - "portuguese" - ]; - var salgado = [ - "portuguese" - ]; - var saliva = [ - "portuguese" - ]; - var salpicar = [ - "portuguese" - ]; - var salsicha = [ - "portuguese" - ]; - var saltar = [ - "portuguese" - ]; - var salvador = [ - "portuguese" - ]; - var sambar = [ - "portuguese" - ]; - var samurai = [ - "portuguese" - ]; - var sanar = [ - "portuguese" - ]; - var sanfona = [ - "portuguese" - ]; - var sangue = [ - "portuguese" - ]; - var sanidade = [ - "portuguese" - ]; - var sapato = [ - "portuguese" - ]; - var sarda = [ - "portuguese" - ]; - var sargento = [ - "portuguese" - ]; - var sarjeta = [ - "portuguese" - ]; - var saturar = [ - "portuguese" - ]; - var saudade = [ - "portuguese" - ]; - var saxofone = [ - "portuguese" - ]; - var sazonal = [ - "portuguese" - ]; - var secar = [ - "portuguese" - ]; - var secular = [ - "portuguese" - ]; - var seda = [ - "portuguese", - "turkish" - ]; - var sedento = [ - "portuguese" - ]; - var sediado = [ - "portuguese" - ]; - var sedoso = [ - "portuguese" - ]; - var sedutor = [ - "portuguese" - ]; - var segmento = [ - "portuguese" - ]; - var segredo = [ - "portuguese" - ]; - var segundo = [ - "portuguese" - ]; - var seiva = [ - "portuguese" - ]; - var seleto = [ - "portuguese" - ]; - var selvagem = [ - "portuguese" - ]; - var semanal = [ - "portuguese" - ]; - var semente = [ - "portuguese" - ]; - var senador = [ - "portuguese" - ]; - var senhor = [ - "portuguese" - ]; - var sensual = [ - "portuguese" - ]; - var sentado = [ - "portuguese" - ]; - var separado = [ - "portuguese" - ]; - var sereia = [ - "portuguese" - ]; - var seringa = [ - "portuguese" - ]; - var serra = [ - "portuguese" - ]; - var servo = [ - "portuguese" - ]; - var setembro = [ - "portuguese" - ]; - var setor = [ - "portuguese" - ]; - var sigilo = [ - "portuguese" - ]; - var silhueta = [ - "portuguese" - ]; - var silicone = [ - "portuguese" - ]; - var simetria = [ - "portuguese" - ]; - var simpatia = [ - "portuguese" - ]; - var simular = [ - "portuguese" - ]; - var sinal = [ - "portuguese" - ]; - var sincero = [ - "portuguese" - ]; - var singular = [ - "portuguese" - ]; - var sinopse = [ - "portuguese" - ]; - var sintonia = [ - "portuguese" - ]; - var sirene = [ - "portuguese" - ]; - var siri = [ - "portuguese" - ]; - var situado = [ - "portuguese" - ]; - var soberano = [ - "portuguese" - ]; - var sobra = [ - "portuguese" - ]; - var socorro = [ - "portuguese" - ]; - var sogro = [ - "portuguese" - ]; - var soja = [ - "portuguese" - ]; - var solda = [ - "portuguese" - ]; - var soletrar = [ - "portuguese" - ]; - var solteiro = [ - "portuguese" - ]; - var sombrio = [ - "portuguese" - ]; - var sonata = [ - "portuguese" - ]; - var sondar = [ - "portuguese" - ]; - var sonegar = [ - "portuguese" - ]; - var sonhador = [ - "portuguese" - ]; - var sono = [ - "portuguese" - ]; - var soprano = [ - "portuguese" - ]; - var soquete = [ - "portuguese" - ]; - var sorrir = [ - "portuguese" - ]; - var sorteio = [ - "portuguese" - ]; - var sossego = [ - "portuguese" - ]; - var sotaque = [ - "portuguese" - ]; - var soterrar = [ - "portuguese" - ]; - var sovado = [ - "portuguese" - ]; - var sozinho = [ - "portuguese" - ]; - var suavizar = [ - "portuguese" - ]; - var subida = [ - "portuguese" - ]; - var submerso = [ - "portuguese" - ]; - var subsolo = [ - "portuguese" - ]; - var subtrair = [ - "portuguese" - ]; - var sucata = [ - "portuguese" - ]; - var sucesso = [ - "portuguese" - ]; - var suco = [ - "portuguese" - ]; - var sudeste = [ - "portuguese" - ]; - var sufixo = [ - "portuguese" - ]; - var sugador = [ - "portuguese" - ]; - var sugerir = [ - "portuguese" - ]; - var sujeito = [ - "portuguese" - ]; - var sulfato = [ - "portuguese" - ]; - var sumir = [ - "portuguese" - ]; - var suor = [ - "portuguese" - ]; - var superior = [ - "portuguese" - ]; - var suplicar = [ - "portuguese" - ]; - var suposto = [ - "portuguese" - ]; - var suprimir = [ - "portuguese" - ]; - var surdina = [ - "portuguese" - ]; - var surfista = [ - "portuguese" - ]; - var surpresa = [ - "portuguese" - ]; - var surreal = [ - "portuguese" - ]; - var surtir = [ - "portuguese" - ]; - var suspiro = [ - "portuguese" - ]; - var sustento = [ - "portuguese" - ]; - var tabela = [ - "portuguese", - "turkish" - ]; - var tablete = [ - "portuguese" - ]; - var tabuada = [ - "portuguese" - ]; - var tacho = [ - "portuguese" - ]; - var tagarela = [ - "portuguese" - ]; - var talher = [ - "portuguese" - ]; - var talo = [ - "portuguese" - ]; - var talvez = [ - "portuguese" - ]; - var tamanho = [ - "portuguese" - ]; - var tamborim = [ - "portuguese" - ]; - var tampa = [ - "portuguese" - ]; - var tangente = [ - "portuguese" - ]; - var tanto = [ - "portuguese" - ]; - var tapar = [ - "portuguese" - ]; - var tapioca = [ - "portuguese" - ]; - var tardio = [ - "portuguese" - ]; - var tarefa = [ - "portuguese" - ]; - var tarja = [ - "portuguese" - ]; - var tarraxa = [ - "portuguese" - ]; - var tatuagem = [ - "portuguese" - ]; - var taurino = [ - "portuguese" - ]; - var taxativo = [ - "portuguese" - ]; - var taxista = [ - "portuguese" - ]; - var teatral = [ - "portuguese" - ]; - var tecer = [ - "portuguese" - ]; - var tecido = [ - "portuguese" - ]; - var teclado = [ - "portuguese" - ]; - var tedioso = [ - "portuguese" - ]; - var teia = [ - "portuguese" - ]; - var teimar = [ - "portuguese" - ]; - var telefone = [ - "portuguese" - ]; - var telhado = [ - "portuguese" - ]; - var tempero = [ - "portuguese" - ]; - var tenente = [ - "portuguese" - ]; - var tensor = [ - "portuguese" - ]; - var tentar = [ - "portuguese" - ]; - var termal = [ - "portuguese" - ]; - var terno = [ - "portuguese" - ]; - var terreno = [ - "portuguese" - ]; - var tese = [ - "portuguese" - ]; - var tesoura = [ - "portuguese" - ]; - var testado = [ - "portuguese" - ]; - var teto = [ - "portuguese" - ]; - var textura = [ - "portuguese" - ]; - var texugo = [ - "portuguese" - ]; - var tiara = [ - "portuguese" - ]; - var tigela = [ - "portuguese" - ]; - var tijolo = [ - "portuguese" - ]; - var timbrar = [ - "portuguese" - ]; - var timidez = [ - "portuguese" - ]; - var tingido = [ - "portuguese" - ]; - var tinteiro = [ - "portuguese" - ]; - var tiragem = [ - "portuguese" - ]; - var titular = [ - "portuguese" - ]; - var toalha = [ - "portuguese" - ]; - var tocha = [ - "portuguese" - ]; - var tolerar = [ - "portuguese" - ]; - var tolice = [ - "portuguese" - ]; - var tomada = [ - "portuguese" - ]; - var tomilho = [ - "portuguese" - ]; - var tonel = [ - "portuguese" - ]; - var tontura = [ - "portuguese" - ]; - var topete = [ - "portuguese" - ]; - var tora = [ - "portuguese" - ]; - var torcido = [ - "portuguese" - ]; - var torneio = [ - "portuguese" - ]; - var torque = [ - "portuguese" - ]; - var torrada = [ - "portuguese" - ]; - var torto = [ - "portuguese" - ]; - var tostar = [ - "portuguese" - ]; - var touca = [ - "portuguese" - ]; - var toupeira = [ - "portuguese" - ]; - var toxina = [ - "portuguese" - ]; - var trabalho = [ - "portuguese" - ]; - var tracejar = [ - "portuguese" - ]; - var tradutor = [ - "portuguese" - ]; - var trafegar = [ - "portuguese" - ]; - var trajeto = [ - "portuguese" - ]; - var trama = [ - "portuguese" - ]; - var trancar = [ - "portuguese" - ]; - var trapo = [ - "portuguese" - ]; - var traseiro = [ - "portuguese" - ]; - var tratador = [ - "portuguese" - ]; - var travar = [ - "portuguese" - ]; - var treino = [ - "portuguese" - ]; - var tremer = [ - "portuguese" - ]; - var trepidar = [ - "portuguese" - ]; - var trevo = [ - "portuguese" - ]; - var triagem = [ - "portuguese" - ]; - var tribo = [ - "portuguese" - ]; - var triciclo = [ - "portuguese" - ]; - var tridente = [ - "portuguese" - ]; - var trilogia = [ - "portuguese" - ]; - var trindade = [ - "portuguese" - ]; - var triplo = [ - "portuguese" - ]; - var triturar = [ - "portuguese" - ]; - var triunfal = [ - "portuguese" - ]; - var trocar = [ - "portuguese" - ]; - var trombeta = [ - "portuguese" - ]; - var trova = [ - "portuguese" - ]; - var trunfo = [ - "portuguese" - ]; - var truque = [ - "portuguese" - ]; - var tubular = [ - "portuguese" - ]; - var tucano = [ - "portuguese" - ]; - var tudo = [ - "portuguese" - ]; - var tulipa = [ - "portuguese" - ]; - var tupi = [ - "portuguese" - ]; - var turbo = [ - "portuguese" - ]; - var turma = [ - "portuguese" - ]; - var turquesa = [ - "portuguese" - ]; - var tutelar = [ - "portuguese" - ]; - var tutorial = [ - "portuguese" - ]; - var uivar = [ - "portuguese" - ]; - var umbigo = [ - "portuguese" - ]; - var unha = [ - "portuguese" - ]; - var unidade = [ - "portuguese" - ]; - var uniforme = [ - "portuguese" - ]; - var urologia = [ - "portuguese" - ]; - var urso = [ - "portuguese" - ]; - var urtiga = [ - "portuguese" - ]; - var urubu = [ - "portuguese" - ]; - var usado = [ - "portuguese" - ]; - var usina = [ - "portuguese" - ]; - var usufruir = [ - "portuguese" - ]; - var vacina = [ - "portuguese" - ]; - var vadiar = [ - "portuguese" - ]; - var vagaroso = [ - "portuguese" - ]; - var vaidoso = [ - "portuguese" - ]; - var vala = [ - "portuguese" - ]; - var valente = [ - "portuguese" - ]; - var validade = [ - "portuguese" - ]; - var valores = [ - "portuguese" - ]; - var vantagem = [ - "portuguese" - ]; - var vaqueiro = [ - "portuguese" - ]; - var varanda = [ - "portuguese" - ]; - var vareta = [ - "portuguese" - ]; - var varrer = [ - "portuguese" - ]; - var vascular = [ - "portuguese" - ]; - var vasilha = [ - "portuguese" - ]; - var vassoura = [ - "portuguese" - ]; - var vazar = [ - "portuguese" - ]; - var vazio = [ - "portuguese" - ]; - var veado = [ - "portuguese" - ]; - var vedar = [ - "portuguese" - ]; - var vegetar = [ - "portuguese" - ]; - var veicular = [ - "portuguese" - ]; - var veleiro = [ - "portuguese" - ]; - var velhice = [ - "portuguese" - ]; - var veludo = [ - "portuguese" - ]; - var vencedor = [ - "portuguese" - ]; - var vendaval = [ - "portuguese" - ]; - var venerar = [ - "portuguese" - ]; - var ventre = [ - "portuguese" - ]; - var verbal = [ - "portuguese" - ]; - var verdade = [ - "portuguese" - ]; - var vereador = [ - "portuguese" - ]; - var vergonha = [ - "portuguese" - ]; - var vermelho = [ - "portuguese" - ]; - var verniz = [ - "portuguese" - ]; - var versar = [ - "portuguese" - ]; - var vertente = [ - "portuguese" - ]; - var vespa = [ - "portuguese" - ]; - var vestido = [ - "portuguese" - ]; - var vetorial = [ - "portuguese" - ]; - var viaduto = [ - "portuguese" - ]; - var viagem = [ - "portuguese" - ]; - var viajar = [ - "portuguese" - ]; - var viatura = [ - "portuguese" - ]; - var vibrador = [ - "portuguese" - ]; - var videira = [ - "portuguese" - ]; - var vidraria = [ - "portuguese" - ]; - var viela = [ - "portuguese" - ]; - var viga = [ - "portuguese" - ]; - var vigente = [ - "portuguese" - ]; - var vigiar = [ - "portuguese" - ]; - var vigorar = [ - "portuguese" - ]; - var vilarejo = [ - "portuguese" - ]; - var vinco = [ - "portuguese" - ]; - var vinheta = [ - "portuguese" - ]; - var vinil = [ - "portuguese" - ]; - var violeta = [ - "portuguese" - ]; - var virada = [ - "portuguese" - ]; - var virtude = [ - "portuguese" - ]; - var visitar = [ - "portuguese" - ]; - var visto = [ - "portuguese" - ]; - var vitral = [ - "portuguese" - ]; - var viveiro = [ - "portuguese" - ]; - var vizinho = [ - "portuguese" - ]; - var voador = [ - "portuguese" - ]; - var voar = [ - "portuguese" - ]; - var vogal = [ - "portuguese" - ]; - var volante = [ - "portuguese" - ]; - var voleibol = [ - "portuguese" - ]; - var voltagem = [ - "portuguese" - ]; - var volumoso = [ - "portuguese" - ]; - var vontade = [ - "portuguese" - ]; - var vulto = [ - "portuguese" - ]; - var vuvuzela = [ - "portuguese" - ]; - var xadrez = [ - "portuguese" - ]; - var xarope = [ - "portuguese" - ]; - var xeque = [ - "portuguese" - ]; - var xeretar = [ - "portuguese" - ]; - var xerife = [ - "portuguese" - ]; - var xingar = [ - "portuguese" - ]; - var zangado = [ - "portuguese" - ]; - var zarpar = [ - "portuguese" - ]; - var zebu = [ - "portuguese" - ]; - var zelador = [ - "portuguese" - ]; - var zombar = [ - "portuguese" - ]; - var zoologia = [ - "portuguese" - ]; - var zumbido = [ - "portuguese" - ]; - var abdomen = [ - "spanish" - ]; - var abeja = [ - "spanish" - ]; - var abierto = [ - "spanish" - ]; - var abogado = [ - "spanish" - ]; - var abono = [ - "spanish" - ]; - var aborto = [ - "spanish" - ]; - var abrazo = [ - "spanish" - ]; - var abrir = [ - "spanish" - ]; - var abuelo = [ - "spanish" - ]; - var abuso = [ - "spanish" - ]; - var acabar = [ - "spanish" - ]; - var academia = [ - "spanish" - ]; - var acceso = [ - "spanish" - ]; - var aceite = [ - "spanish" - ]; - var acelga = [ - "spanish" - ]; - var acento = [ - "spanish" - ]; - var aceptar = [ - "spanish" - ]; - var aclarar = [ - "spanish" - ]; - var acoger = [ - "spanish" - ]; - var acoso = [ - "spanish" - ]; - var activo = [ - "spanish" - ]; - var acto = [ - "spanish" - ]; - var actriz = [ - "spanish" - ]; - var actuar = [ - "spanish" - ]; - var acudir = [ - "spanish" - ]; - var acuerdo = [ - "spanish" - ]; - var acusar = [ - "spanish" - ]; - var adicto = [ - "spanish" - ]; - var admitir = [ - "spanish" - ]; - var adoptar = [ - "spanish" - ]; - var adorno = [ - "spanish" - ]; - var aduana = [ - "spanish" - ]; - var adulto = [ - "spanish" - ]; - var afectar = [ - "spanish" - ]; - var afinar = [ - "spanish" - ]; - var afirmar = [ - "spanish" - ]; - var agitar = [ - "spanish" - ]; - var agosto = [ - "spanish" - ]; - var agotar = [ - "spanish" - ]; - var agregar = [ - "spanish" - ]; - var agrio = [ - "spanish" - ]; - var agua = [ - "spanish" - ]; - var agudo = [ - "spanish" - ]; - var aguja = [ - "spanish" - ]; - var ahogo = [ - "spanish" - ]; - var ahorro = [ - "spanish" - ]; - var aire = [ - "spanish" - ]; - var aislar = [ - "spanish" - ]; - var ajedrez = [ - "spanish" - ]; - var ajeno = [ - "spanish" - ]; - var ajuste = [ - "spanish" - ]; - var alambre = [ - "spanish" - ]; - var alarma = [ - "spanish" - ]; - var alba = [ - "spanish" - ]; - var alcalde = [ - "spanish" - ]; - var aldea = [ - "spanish" - ]; - var alegre = [ - "spanish" - ]; - var alejar = [ - "spanish" - ]; - var alerta = [ - "spanish" - ]; - var aleta = [ - "spanish" - ]; - var alfiler = [ - "spanish" - ]; - var alga = [ - "spanish" - ]; - var aliado = [ - "spanish" - ]; - var aliento = [ - "spanish" - ]; - var alivio = [ - "spanish" - ]; - var alma = [ - "spanish" - ]; - var almeja = [ - "spanish" - ]; - var altar = [ - "spanish" - ]; - var alteza = [ - "spanish" - ]; - var altivo = [ - "spanish" - ]; - var alto = [ - "spanish" - ]; - var altura = [ - "spanish" - ]; - var alumno = [ - "spanish" - ]; - var alzar = [ - "spanish" - ]; - var amable = [ - "spanish" - ]; - var amante = [ - "spanish" - ]; - var amapola = [ - "spanish" - ]; - var amargo = [ - "spanish" - ]; - var amasar = [ - "spanish" - ]; - var ameno = [ - "spanish" - ]; - var amigo = [ - "spanish", - "turkish" - ]; - var amistad = [ - "spanish" - ]; - var amor = [ - "spanish" - ]; - var amparo = [ - "spanish" - ]; - var amplio = [ - "spanish" - ]; - var ancho = [ - "spanish" - ]; - var anciano = [ - "spanish" - ]; - var ancla = [ - "spanish" - ]; - var andar = [ - "spanish" - ]; - var anemia = [ - "spanish" - ]; - var anillo = [ - "spanish" - ]; - var anotar = [ - "spanish" - ]; - var antena = [ - "spanish" - ]; - var antiguo = [ - "spanish" - ]; - var antojo = [ - "spanish" - ]; - var anual = [ - "spanish" - ]; - var anular = [ - "spanish" - ]; - var anuncio = [ - "spanish" - ]; - var apagar = [ - "spanish" - ]; - var aparato = [ - "spanish" - ]; - var apetito = [ - "spanish" - ]; - var apio = [ - "spanish" - ]; - var aplicar = [ - "spanish" - ]; - var apodo = [ - "spanish" - ]; - var aporte = [ - "spanish" - ]; - var apoyo = [ - "spanish" - ]; - var aprender = [ - "spanish" - ]; - var aprobar = [ - "spanish" - ]; - var apuesta = [ - "spanish" - ]; - var apuro = [ - "spanish" - ]; - var arado = [ - "spanish" - ]; - var arar = [ - "spanish" - ]; - var arbusto = [ - "spanish" - ]; - var archivo = [ - "spanish" - ]; - var arco = [ - "spanish" - ]; - var arder = [ - "spanish" - ]; - var ardilla = [ - "spanish" - ]; - var arduo = [ - "spanish" - ]; - var aries = [ - "spanish" - ]; - var aroma = [ - "spanish", - "turkish" - ]; - var arpa = [ - "spanish" - ]; - var arreglo = [ - "spanish" - ]; - var arroz = [ - "spanish" - ]; - var arruga = [ - "spanish" - ]; - var arte = [ - "spanish" - ]; - var artista = [ - "spanish" - ]; - var asa = [ - "spanish" - ]; - var asado = [ - "spanish" - ]; - var asalto = [ - "spanish" - ]; - var ascenso = [ - "spanish" - ]; - var asegurar = [ - "spanish" - ]; - var aseo = [ - "spanish" - ]; - var asesor = [ - "spanish" - ]; - var asiento = [ - "spanish" - ]; - var asilo = [ - "spanish" - ]; - var asistir = [ - "spanish" - ]; - var asno = [ - "spanish" - ]; - var asombro = [ - "spanish" - ]; - var astilla = [ - "spanish" - ]; - var astro = [ - "spanish" - ]; - var astuto = [ - "spanish" - ]; - var asumir = [ - "spanish" - ]; - var asunto = [ - "spanish" - ]; - var atajo = [ - "spanish" - ]; - var ataque = [ - "spanish" - ]; - var atar = [ - "spanish" - ]; - var atento = [ - "spanish" - ]; - var ateo = [ - "spanish" - ]; - var atleta = [ - "spanish" - ]; - var atraer = [ - "spanish" - ]; - var atroz = [ - "spanish" - ]; - var audaz = [ - "spanish" - ]; - var audio = [ - "spanish" - ]; - var auge = [ - "spanish" - ]; - var aula = [ - "spanish" - ]; - var aumento = [ - "spanish" - ]; - var ausente = [ - "spanish" - ]; - var autor = [ - "spanish" - ]; - var aval = [ - "spanish" - ]; - var avance = [ - "spanish" - ]; - var avaro = [ - "spanish" - ]; - var ave = [ - "spanish" - ]; - var avellana = [ - "spanish" - ]; - var avena = [ - "spanish" - ]; - var avestruz = [ - "spanish" - ]; - var aviso = [ - "spanish" - ]; - var ayer = [ - "spanish" - ]; - var ayuda = [ - "spanish" - ]; - var ayuno = [ - "spanish" - ]; - var azar = [ - "spanish" - ]; - var azote = [ - "spanish" - ]; - var azufre = [ - "spanish" - ]; - var azul = [ - "spanish" - ]; - var baba = [ - "spanish" - ]; - var babor = [ - "spanish" - ]; - var bache = [ - "spanish" - ]; - var baile = [ - "spanish" - ]; - var bajar = [ - "spanish" - ]; - var balanza = [ - "spanish" - ]; - var balde = [ - "spanish" - ]; - var banco = [ - "spanish" - ]; - var banda = [ - "spanish" - ]; - var barba = [ - "spanish" - ]; - var barco = [ - "spanish" - ]; - var barniz = [ - "spanish" - ]; - var barro = [ - "spanish" - ]; - var basura = [ - "spanish" - ]; - var batalla = [ - "spanish" - ]; - var batir = [ - "spanish" - ]; - var batuta = [ - "spanish" - ]; - var bazar = [ - "spanish" - ]; - var bebida = [ - "spanish" - ]; - var bello = [ - "spanish" - ]; - var besar = [ - "spanish" - ]; - var beso = [ - "spanish" - ]; - var bestia = [ - "spanish" - ]; - var bicho = [ - "spanish" - ]; - var bien = [ - "spanish" - ]; - var bingo = [ - "spanish" - ]; - var blanco = [ - "spanish" - ]; - var bloque = [ - "spanish" - ]; - var blusa = [ - "spanish" - ]; - var boa = [ - "spanish" - ]; - var bobina = [ - "spanish" - ]; - var bobo = [ - "spanish" - ]; - var boca = [ - "spanish" - ]; - var bocina = [ - "spanish" - ]; - var boda = [ - "spanish" - ]; - var bodega = [ - "spanish" - ]; - var boina = [ - "spanish" - ]; - var bola = [ - "spanish" - ]; - var bolero = [ - "spanish", - "turkish" - ]; - var bolsa = [ - "spanish" - ]; - var bomba = [ - "spanish" - ]; - var bondad = [ - "spanish" - ]; - var bonito = [ - "spanish" - ]; - var bono = [ - "spanish" - ]; - var borde = [ - "spanish" - ]; - var borrar = [ - "spanish" - ]; - var bosque = [ - "spanish" - ]; - var bote = [ - "spanish" - ]; - var bozal = [ - "spanish" - ]; - var bravo = [ - "spanish" - ]; - var brazo = [ - "spanish" - ]; - var brecha = [ - "spanish" - ]; - var breve = [ - "spanish" - ]; - var brillo = [ - "spanish" - ]; - var brinco = [ - "spanish" - ]; - var brisa = [ - "spanish" - ]; - var broca = [ - "spanish" - ]; - var broma = [ - "spanish" - ]; - var bronce = [ - "spanish" - ]; - var brote = [ - "spanish" - ]; - var bruja = [ - "spanish" - ]; - var brusco = [ - "spanish" - ]; - var bruto = [ - "spanish" - ]; - var buceo = [ - "spanish" - ]; - var bucle = [ - "spanish" - ]; - var bueno = [ - "spanish" - ]; - var buey = [ - "spanish" - ]; - var bufanda = [ - "spanish" - ]; - var buitre = [ - "spanish" - ]; - var bulto = [ - "spanish" - ]; - var burbuja = [ - "spanish" - ]; - var burla = [ - "spanish" - ]; - var burro = [ - "spanish" - ]; - var buscar = [ - "spanish" - ]; - var butaca = [ - "spanish" - ]; - var caballo = [ - "spanish" - ]; - var cabeza = [ - "spanish" - ]; - var cabina = [ - "spanish" - ]; - var cabra = [ - "spanish" - ]; - var cacao = [ - "spanish" - ]; - var cadena = [ - "spanish" - ]; - var caer = [ - "spanish" - ]; - var caja = [ - "spanish" - ]; - var cal = [ - "spanish" - ]; - var calamar = [ - "spanish" - ]; - var calcio = [ - "spanish" - ]; - var caldo = [ - "spanish" - ]; - var calidad = [ - "spanish" - ]; - var calle = [ - "spanish" - ]; - var calma = [ - "spanish" - ]; - var calor = [ - "spanish" - ]; - var calvo = [ - "spanish" - ]; - var cama = [ - "spanish" - ]; - var cambio = [ - "spanish" - ]; - var camello = [ - "spanish" - ]; - var camino = [ - "spanish" - ]; - var campo = [ - "spanish" - ]; - var candil = [ - "spanish" - ]; - var canela = [ - "spanish" - ]; - var canguro = [ - "spanish" - ]; - var canica = [ - "spanish" - ]; - var canto = [ - "spanish" - ]; - var caoba = [ - "spanish" - ]; - var caos = [ - "spanish" - ]; - var capaz = [ - "spanish" - ]; - var capote = [ - "spanish" - ]; - var captar = [ - "spanish" - ]; - var capucha = [ - "spanish" - ]; - var cara = [ - "spanish" - ]; - var careta = [ - "spanish" - ]; - var carga = [ - "spanish" - ]; - var carne = [ - "spanish" - ]; - var carpeta = [ - "spanish" - ]; - var carro = [ - "spanish" - ]; - var carta = [ - "spanish" - ]; - var casa = [ - "spanish" - ]; - var casco = [ - "spanish" - ]; - var casero = [ - "spanish" - ]; - var caspa = [ - "spanish" - ]; - var castor = [ - "spanish" - ]; - var catorce = [ - "spanish" - ]; - var catre = [ - "spanish" - ]; - var caudal = [ - "spanish" - ]; - var causa = [ - "spanish" - ]; - var cazo = [ - "spanish" - ]; - var cebolla = [ - "spanish" - ]; - var ceder = [ - "spanish" - ]; - var cedro = [ - "spanish" - ]; - var celda = [ - "spanish" - ]; - var celoso = [ - "spanish" - ]; - var cemento = [ - "spanish" - ]; - var ceniza = [ - "spanish" - ]; - var centro = [ - "spanish" - ]; - var cerca = [ - "spanish" - ]; - var cerdo = [ - "spanish" - ]; - var cereza = [ - "spanish" - ]; - var cero = [ - "spanish" - ]; - var cerrar = [ - "spanish" - ]; - var certeza = [ - "spanish" - ]; - var cetro = [ - "spanish" - ]; - var chacal = [ - "spanish" - ]; - var chaleco = [ - "spanish" - ]; - var chancla = [ - "spanish" - ]; - var chapa = [ - "spanish" - ]; - var charla = [ - "spanish" - ]; - var chico = [ - "spanish" - ]; - var chiste = [ - "spanish" - ]; - var chivo = [ - "spanish" - ]; - var choque = [ - "spanish" - ]; - var choza = [ - "spanish" - ]; - var chuleta = [ - "spanish" - ]; - var chupar = [ - "spanish" - ]; - var ciego = [ - "spanish" - ]; - var cielo = [ - "spanish" - ]; - var cien = [ - "spanish" - ]; - var cierto = [ - "spanish" - ]; - var cifra = [ - "spanish" - ]; - var cigarro = [ - "spanish" - ]; - var cima = [ - "spanish" - ]; - var cinco = [ - "spanish" - ]; - var cine = [ - "spanish" - ]; - var cinta = [ - "spanish" - ]; - var circo = [ - "spanish" - ]; - var ciruela = [ - "spanish" - ]; - var cisne = [ - "spanish" - ]; - var cita = [ - "spanish" - ]; - var ciudad = [ - "spanish" - ]; - var clamor = [ - "spanish" - ]; - var clan = [ - "spanish" - ]; - var claro = [ - "spanish" - ]; - var clase = [ - "spanish" - ]; - var clave = [ - "spanish" - ]; - var cliente = [ - "spanish" - ]; - var clima = [ - "spanish" - ]; - var cobre = [ - "spanish" - ]; - var cochino = [ - "spanish" - ]; - var cocina = [ - "spanish" - ]; - var coco = [ - "spanish" - ]; - var codo = [ - "spanish" - ]; - var cofre = [ - "spanish" - ]; - var coger = [ - "spanish" - ]; - var cohete = [ - "spanish" - ]; - var cojo = [ - "spanish" - ]; - var cola = [ - "spanish" - ]; - var colcha = [ - "spanish" - ]; - var colegio = [ - "spanish" - ]; - var colgar = [ - "spanish" - ]; - var colina = [ - "spanish" - ]; - var collar = [ - "spanish" - ]; - var colmo = [ - "spanish" - ]; - var columna = [ - "spanish" - ]; - var combate = [ - "spanish" - ]; - var comer = [ - "spanish" - ]; - var comida = [ - "spanish" - ]; - var compra = [ - "spanish" - ]; - var conde = [ - "spanish" - ]; - var conejo = [ - "spanish" - ]; - var conga = [ - "spanish" - ]; - var conocer = [ - "spanish" - ]; - var consejo = [ - "spanish" - ]; - var contar = [ - "spanish" - ]; - var copa = [ - "spanish" - ]; - var copia = [ - "spanish" - ]; - var corbata = [ - "spanish" - ]; - var corcho = [ - "spanish" - ]; - var corona = [ - "spanish" - ]; - var correr = [ - "spanish" - ]; - var coser = [ - "spanish" - ]; - var cosmos = [ - "spanish" - ]; - var costa = [ - "spanish" - ]; - var crear = [ - "spanish" - ]; - var crecer = [ - "spanish" - ]; - var crema = [ - "spanish" - ]; - var crimen = [ - "spanish" - ]; - var cripta = [ - "spanish" - ]; - var crisis = [ - "spanish" - ]; - var cromo = [ - "spanish" - ]; - var croqueta = [ - "spanish" - ]; - var crudo = [ - "spanish" - ]; - var cruz = [ - "spanish" - ]; - var cuadro = [ - "spanish" - ]; - var cuarto = [ - "spanish" - ]; - var cuatro = [ - "spanish" - ]; - var cubo = [ - "spanish" - ]; - var cubrir = [ - "spanish" - ]; - var cuchara = [ - "spanish" - ]; - var cuello = [ - "spanish" - ]; - var cuento = [ - "spanish" - ]; - var cuerda = [ - "spanish" - ]; - var cuesta = [ - "spanish" - ]; - var cueva = [ - "spanish" - ]; - var cuidar = [ - "spanish" - ]; - var culebra = [ - "spanish" - ]; - var culpa = [ - "spanish" - ]; - var culto = [ - "spanish" - ]; - var cumbre = [ - "spanish" - ]; - var cumplir = [ - "spanish" - ]; - var cuna = [ - "spanish" - ]; - var cuneta = [ - "spanish" - ]; - var cuota = [ - "spanish" - ]; - var curar = [ - "spanish" - ]; - var curioso = [ - "spanish" - ]; - var curso = [ - "spanish" - ]; - var curva = [ - "spanish" - ]; - var cutis = [ - "spanish" - ]; - var dama = [ - "spanish" - ]; - var danza = [ - "spanish" - ]; - var dar = [ - "spanish" - ]; - var dardo = [ - "spanish" - ]; - var deber = [ - "spanish" - ]; - var decir = [ - "spanish" - ]; - var dedo = [ - "spanish" - ]; - var defensa = [ - "spanish" - ]; - var definir = [ - "spanish" - ]; - var dejar = [ - "spanish" - ]; - var delgado = [ - "spanish" - ]; - var delito = [ - "spanish" - ]; - var demora = [ - "spanish" - ]; - var denso = [ - "spanish" - ]; - var dental = [ - "spanish" - ]; - var deporte = [ - "spanish" - ]; - var derecho = [ - "spanish" - ]; - var derrota = [ - "spanish" - ]; - var desayuno = [ - "spanish" - ]; - var deseo = [ - "spanish" - ]; - var desfile = [ - "spanish" - ]; - var desnudo = [ - "spanish" - ]; - var destino = [ - "spanish" - ]; - var detalle = [ - "spanish" - ]; - var detener = [ - "spanish" - ]; - var deuda = [ - "spanish" - ]; - var diablo = [ - "spanish" - ]; - var diadema = [ - "spanish" - ]; - var diamante = [ - "spanish" - ]; - var diana = [ - "spanish" - ]; - var diario = [ - "spanish" - ]; - var dibujo = [ - "spanish" - ]; - var dictar = [ - "spanish" - ]; - var diente = [ - "spanish" - ]; - var dieta = [ - "spanish" - ]; - var diez = [ - "spanish" - ]; - var digno = [ - "spanish" - ]; - var dilema = [ - "spanish" - ]; - var diluir = [ - "spanish" - ]; - var dinero = [ - "spanish" - ]; - var directo = [ - "spanish" - ]; - var dirigir = [ - "spanish" - ]; - var disco = [ - "spanish" - ]; - var disfraz = [ - "spanish" - ]; - var diva = [ - "spanish" - ]; - var divino = [ - "spanish" - ]; - var doble = [ - "spanish" - ]; - var doce = [ - "spanish" - ]; - var dolor = [ - "spanish" - ]; - var domingo = [ - "spanish" - ]; - var don = [ - "spanish" - ]; - var donar = [ - "spanish" - ]; - var dorado = [ - "spanish" - ]; - var dormir = [ - "spanish" - ]; - var dorso = [ - "spanish" - ]; - var dos = [ - "spanish" - ]; - var dosis = [ - "spanish" - ]; - var droga = [ - "spanish" - ]; - var ducha = [ - "spanish" - ]; - var duda = [ - "spanish" - ]; - var duelo = [ - "spanish" - ]; - var dulce = [ - "spanish" - ]; - var duque = [ - "spanish" - ]; - var durar = [ - "spanish" - ]; - var dureza = [ - "spanish" - ]; - var duro = [ - "spanish" - ]; - var ebrio = [ - "spanish" - ]; - var echar = [ - "spanish" - ]; - var eco = [ - "spanish" - ]; - var ecuador = [ - "spanish" - ]; - var edad = [ - "spanish" - ]; - var edificio = [ - "spanish" - ]; - var editor = [ - "spanish" - ]; - var educar = [ - "spanish" - ]; - var efecto = [ - "spanish" - ]; - var eficaz = [ - "spanish" - ]; - var eje = [ - "spanish" - ]; - var ejemplo = [ - "spanish" - ]; - var elefante = [ - "spanish" - ]; - var elegir = [ - "spanish" - ]; - var elemento = [ - "spanish" - ]; - var elevar = [ - "spanish" - ]; - var elipse = [ - "spanish" - ]; - var elixir = [ - "spanish" - ]; - var elogio = [ - "spanish" - ]; - var eludir = [ - "spanish" - ]; - var embudo = [ - "spanish" - ]; - var emitir = [ - "spanish" - ]; - var empate = [ - "spanish" - ]; - var empleo = [ - "spanish" - ]; - var empresa = [ - "spanish" - ]; - var enano = [ - "spanish" - ]; - var encargo = [ - "spanish" - ]; - var enchufe = [ - "spanish" - ]; - var enemigo = [ - "spanish" - ]; - var enero = [ - "spanish" - ]; - var enfado = [ - "spanish" - ]; - var enfermo = [ - "spanish" - ]; - var enigma = [ - "spanish" - ]; - var enlace = [ - "spanish" - ]; - var enorme = [ - "spanish" - ]; - var enredo = [ - "spanish" - ]; - var ensayo = [ - "spanish" - ]; - var entero = [ - "spanish" - ]; - var entrar = [ - "spanish" - ]; - var envase = [ - "spanish" - ]; - var equipo = [ - "spanish" - ]; - var erizo = [ - "spanish" - ]; - var escala = [ - "spanish" - ]; - var escena = [ - "spanish" - ]; - var escolar = [ - "spanish" - ]; - var escribir = [ - "spanish" - ]; - var escudo = [ - "spanish" - ]; - var esencia = [ - "spanish" - ]; - var esfera = [ - "spanish" - ]; - var esfuerzo = [ - "spanish" - ]; - var espada = [ - "spanish" - ]; - var espejo = [ - "spanish" - ]; - var esposa = [ - "spanish" - ]; - var espuma = [ - "spanish" - ]; - var estar = [ - "spanish" - ]; - var este = [ - "spanish" - ]; - var estilo = [ - "spanish" - ]; - var estufa = [ - "spanish" - ]; - var etapa = [ - "spanish" - ]; - var eterno = [ - "spanish" - ]; - var etnia = [ - "spanish" - ]; - var evadir = [ - "spanish" - ]; - var evaluar = [ - "spanish" - ]; - var evento = [ - "spanish" - ]; - var evitar = [ - "spanish" - ]; - var exacto = [ - "spanish" - ]; - var examen = [ - "spanish" - ]; - var exceso = [ - "spanish" - ]; - var excusa = [ - "spanish" - ]; - var exento = [ - "spanish" - ]; - var exigir = [ - "spanish" - ]; - var exilio = [ - "spanish" - ]; - var existir = [ - "spanish" - ]; - var experto = [ - "spanish" - ]; - var explicar = [ - "spanish" - ]; - var exponer = [ - "spanish" - ]; - var extremo = [ - "spanish" - ]; - var fachada = [ - "spanish" - ]; - var factor = [ - "spanish" - ]; - var faena = [ - "spanish" - ]; - var faja = [ - "spanish" - ]; - var falda = [ - "spanish" - ]; - var fallo = [ - "spanish" - ]; - var falso = [ - "spanish" - ]; - var faltar = [ - "spanish" - ]; - var fama = [ - "spanish" - ]; - var familia = [ - "spanish" - ]; - var famoso = [ - "spanish" - ]; - var farmacia = [ - "spanish" - ]; - var farol = [ - "spanish" - ]; - var farsa = [ - "spanish" - ]; - var fase = [ - "spanish" - ]; - var fatiga = [ - "spanish" - ]; - var fauna = [ - "spanish", - "turkish" - ]; - var favor = [ - "spanish" - ]; - var fax = [ - "spanish" - ]; - var febrero = [ - "spanish" - ]; - var fecha = [ - "spanish" - ]; - var feliz = [ - "spanish" - ]; - var feo = [ - "spanish" - ]; - var feria = [ - "spanish" - ]; - var feroz = [ - "spanish" - ]; - var fervor = [ - "spanish" - ]; - var fiable = [ - "spanish" - ]; - var fianza = [ - "spanish" - ]; - var fiar = [ - "spanish" - ]; - var fibra = [ - "spanish" - ]; - var ficha = [ - "spanish" - ]; - var fideo = [ - "spanish" - ]; - var fiebre = [ - "spanish" - ]; - var fiel = [ - "spanish" - ]; - var fiera = [ - "spanish" - ]; - var fiesta = [ - "spanish" - ]; - var figura = [ - "spanish" - ]; - var fijar = [ - "spanish" - ]; - var fijo = [ - "spanish" - ]; - var fila = [ - "spanish" - ]; - var filete = [ - "spanish" - ]; - var filial = [ - "spanish" - ]; - var filtro = [ - "spanish" - ]; - var fin = [ - "spanish" - ]; - var finca = [ - "spanish" - ]; - var fingir = [ - "spanish" - ]; - var finito = [ - "spanish" - ]; - var firma = [ - "spanish" - ]; - var flaco = [ - "spanish" - ]; - var flauta = [ - "spanish" - ]; - var flecha = [ - "spanish" - ]; - var flor = [ - "spanish" - ]; - var flota = [ - "spanish" - ]; - var fluir = [ - "spanish" - ]; - var flujo = [ - "spanish" - ]; - var fobia = [ - "spanish" - ]; - var foca = [ - "spanish" - ]; - var fogata = [ - "spanish" - ]; - var folio = [ - "spanish" - ]; - var folleto = [ - "spanish" - ]; - var fondo = [ - "spanish" - ]; - var forma = [ - "spanish" - ]; - var forro = [ - "spanish" - ]; - var fortuna = [ - "spanish" - ]; - var forzar = [ - "spanish" - ]; - var fosa = [ - "spanish" - ]; - var foto = [ - "spanish" - ]; - var fracaso = [ - "spanish" - ]; - var franja = [ - "spanish" - ]; - var frase = [ - "spanish" - ]; - var fraude = [ - "spanish" - ]; - var freno = [ - "spanish" - ]; - var fresa = [ - "spanish" - ]; - var frito = [ - "spanish" - ]; - var fruta = [ - "spanish" - ]; - var fuego = [ - "spanish" - ]; - var fuente = [ - "spanish" - ]; - var fuerza = [ - "spanish" - ]; - var fuga = [ - "spanish" - ]; - var fumar = [ - "spanish" - ]; - var funda = [ - "spanish" - ]; - var furia = [ - "spanish" - ]; - var fusil = [ - "spanish" - ]; - var futuro = [ - "spanish" - ]; - var gacela = [ - "spanish" - ]; - var gafas = [ - "spanish" - ]; - var gaita = [ - "spanish" - ]; - var gajo = [ - "spanish" - ]; - var gala = [ - "spanish" - ]; - var gallo = [ - "spanish" - ]; - var gamba = [ - "spanish" - ]; - var ganar = [ - "spanish" - ]; - var gancho = [ - "spanish" - ]; - var ganga = [ - "spanish" - ]; - var ganso = [ - "spanish" - ]; - var garaje = [ - "spanish" - ]; - var garza = [ - "spanish" - ]; - var gasolina = [ - "spanish" - ]; - var gastar = [ - "spanish" - ]; - var gato = [ - "spanish" - ]; - var gemelo = [ - "spanish" - ]; - var gemir = [ - "spanish" - ]; - var gen = [ - "spanish" - ]; - var genio = [ - "spanish" - ]; - var gente = [ - "spanish" - ]; - var geranio = [ - "spanish" - ]; - var gerente = [ - "spanish" - ]; - var germen = [ - "spanish" - ]; - var gesto = [ - "spanish" - ]; - var gigante = [ - "spanish" - ]; - var gimnasio = [ - "spanish" - ]; - var girar = [ - "spanish" - ]; - var giro = [ - "spanish" - ]; - var glaciar = [ - "spanish" - ]; - var globo = [ - "spanish" - ]; - var gloria = [ - "spanish" - ]; - var gol = [ - "spanish" - ]; - var golfo = [ - "spanish" - ]; - var goloso = [ - "spanish" - ]; - var golpe = [ - "spanish" - ]; - var goma = [ - "spanish" - ]; - var gordo = [ - "spanish" - ]; - var gorila = [ - "spanish" - ]; - var gorra = [ - "spanish" - ]; - var gota = [ - "spanish" - ]; - var goteo = [ - "spanish" - ]; - var gozar = [ - "spanish" - ]; - var grada = [ - "spanish" - ]; - var grano = [ - "spanish" - ]; - var grasa = [ - "spanish" - ]; - var gratis = [ - "spanish" - ]; - var grave = [ - "spanish" - ]; - var grieta = [ - "spanish" - ]; - var grillo = [ - "spanish" - ]; - var gripe = [ - "spanish" - ]; - var gris = [ - "spanish" - ]; - var grito = [ - "spanish" - ]; - var grosor = [ - "spanish" - ]; - var grueso = [ - "spanish" - ]; - var grumo = [ - "spanish" - ]; - var grupo = [ - "spanish" - ]; - var guante = [ - "spanish" - ]; - var guapo = [ - "spanish" - ]; - var guardia = [ - "spanish" - ]; - var guerra = [ - "spanish" - ]; - var guion = [ - "spanish" - ]; - var guiso = [ - "spanish" - ]; - var guitarra = [ - "spanish" - ]; - var gusano = [ - "spanish" - ]; - var gustar = [ - "spanish" - ]; - var haber = [ - "spanish", - "turkish" - ]; - var hablar = [ - "spanish" - ]; - var hacer = [ - "spanish" - ]; - var hacha = [ - "spanish" - ]; - var hada = [ - "spanish" - ]; - var hallar = [ - "spanish" - ]; - var hamaca = [ - "spanish" - ]; - var harina = [ - "spanish" - ]; - var haz = [ - "spanish" - ]; - var hebilla = [ - "spanish" - ]; - var hebra = [ - "spanish" - ]; - var hecho = [ - "spanish" - ]; - var helado = [ - "spanish" - ]; - var helio = [ - "spanish" - ]; - var hembra = [ - "spanish" - ]; - var herir = [ - "spanish" - ]; - var hermano = [ - "spanish" - ]; - var hervir = [ - "spanish" - ]; - var hielo = [ - "spanish" - ]; - var hierro = [ - "spanish" - ]; - var higiene = [ - "spanish" - ]; - var hijo = [ - "spanish" - ]; - var himno = [ - "spanish" - ]; - var historia = [ - "spanish" - ]; - var hocico = [ - "spanish" - ]; - var hogar = [ - "spanish" - ]; - var hoguera = [ - "spanish" - ]; - var hoja = [ - "spanish" - ]; - var hombre = [ - "spanish" - ]; - var hongo = [ - "spanish" - ]; - var honor = [ - "spanish" - ]; - var honra = [ - "spanish" - ]; - var hora = [ - "spanish" - ]; - var hormiga = [ - "spanish" - ]; - var horno = [ - "spanish" - ]; - var hostil = [ - "spanish" - ]; - var hoyo = [ - "spanish" - ]; - var hueco = [ - "spanish" - ]; - var huelga = [ - "spanish" - ]; - var huerta = [ - "spanish" - ]; - var hueso = [ - "spanish" - ]; - var huevo = [ - "spanish" - ]; - var huida = [ - "spanish" - ]; - var huir = [ - "spanish" - ]; - var humano = [ - "spanish" - ]; - var humilde = [ - "spanish" - ]; - var humo = [ - "spanish" - ]; - var hundir = [ - "spanish" - ]; - var hurto = [ - "spanish" - ]; - var icono = [ - "spanish" - ]; - var ideal = [ - "spanish" - ]; - var idioma = [ - "spanish" - ]; - var iglesia = [ - "spanish" - ]; - var igual = [ - "spanish" - ]; - var ilegal = [ - "spanish" - ]; - var imagen = [ - "spanish" - ]; - var imitar = [ - "spanish" - ]; - var impar = [ - "spanish" - ]; - var imperio = [ - "spanish" - ]; - var imponer = [ - "spanish" - ]; - var impulso = [ - "spanish" - ]; - var incapaz = [ - "spanish" - ]; - var inerte = [ - "spanish" - ]; - var infiel = [ - "spanish" - ]; - var informe = [ - "spanish" - ]; - var ingenio = [ - "spanish" - ]; - var inicio = [ - "spanish" - ]; - var inmenso = [ - "spanish" - ]; - var inmune = [ - "spanish" - ]; - var innato = [ - "spanish" - ]; - var insecto = [ - "spanish" - ]; - var instante = [ - "spanish" - ]; - var intuir = [ - "spanish" - ]; - var invierno = [ - "spanish" - ]; - var ira = [ - "spanish" - ]; - var iris = [ - "spanish" - ]; - var isla = [ - "spanish" - ]; - var islote = [ - "spanish" - ]; - var jarabe = [ - "spanish" - ]; - var jarra = [ - "spanish" - ]; - var jaula = [ - "spanish" - ]; - var jefe = [ - "spanish" - ]; - var jeringa = [ - "spanish" - ]; - var jinete = [ - "spanish" - ]; - var jornada = [ - "spanish" - ]; - var joroba = [ - "spanish" - ]; - var joven = [ - "spanish" - ]; - var joya = [ - "spanish" - ]; - var juerga = [ - "spanish" - ]; - var jueves = [ - "spanish" - ]; - var juez = [ - "spanish" - ]; - var jugador = [ - "spanish" - ]; - var jugo = [ - "spanish" - ]; - var juguete = [ - "spanish" - ]; - var juicio = [ - "spanish" - ]; - var junco = [ - "spanish" - ]; - var jungla = [ - "spanish" - ]; - var junio = [ - "spanish" - ]; - var juntar = [ - "spanish" - ]; - var jurar = [ - "spanish" - ]; - var justo = [ - "spanish" - ]; - var juvenil = [ - "spanish" - ]; - var juzgar = [ - "spanish" - ]; - var kilo = [ - "spanish" - ]; - var koala = [ - "spanish" - ]; - var labio = [ - "spanish" - ]; - var lacio = [ - "spanish" - ]; - var lacra = [ - "spanish" - ]; - var lado = [ - "spanish" - ]; - var lagarto = [ - "spanish" - ]; - var laguna = [ - "spanish" - ]; - var laico = [ - "spanish" - ]; - var lamer = [ - "spanish" - ]; - var lana = [ - "spanish" - ]; - var lancha = [ - "spanish" - ]; - var langosta = [ - "spanish" - ]; - var lanza = [ - "spanish" - ]; - var largo = [ - "spanish" - ]; - var larva = [ - "spanish" - ]; - var lata = [ - "spanish" - ]; - var latir = [ - "spanish" - ]; - var laurel = [ - "spanish" - ]; - var lavar = [ - "spanish" - ]; - var lazo = [ - "spanish" - ]; - var leal = [ - "spanish" - ]; - var leche = [ - "spanish" - ]; - var lector = [ - "spanish" - ]; - var leer = [ - "spanish" - ]; - var legumbre = [ - "spanish" - ]; - var lejano = [ - "spanish" - ]; - var lengua = [ - "spanish" - ]; - var lento = [ - "spanish" - ]; - var leopardo = [ - "spanish" - ]; - var letal = [ - "spanish" - ]; - var letra = [ - "spanish" - ]; - var leve = [ - "spanish" - ]; - var leyenda = [ - "spanish" - ]; - var libertad = [ - "spanish" - ]; - var libro = [ - "spanish" - ]; - var licor = [ - "spanish" - ]; - var lidiar = [ - "spanish" - ]; - var lienzo = [ - "spanish" - ]; - var liga = [ - "spanish" - ]; - var ligero = [ - "spanish" - ]; - var lima = [ - "spanish" - ]; - var limpio = [ - "spanish" - ]; - var lince = [ - "spanish" - ]; - var lindo = [ - "spanish" - ]; - var lingote = [ - "spanish" - ]; - var lino = [ - "spanish" - ]; - var linterna = [ - "spanish" - ]; - var liso = [ - "spanish" - ]; - var lista = [ - "spanish" - ]; - var litera = [ - "spanish" - ]; - var litio = [ - "spanish" - ]; - var litro = [ - "spanish" - ]; - var llaga = [ - "spanish" - ]; - var llama = [ - "spanish" - ]; - var llanto = [ - "spanish" - ]; - var llave = [ - "spanish" - ]; - var llegar = [ - "spanish" - ]; - var llenar = [ - "spanish" - ]; - var llevar = [ - "spanish" - ]; - var llorar = [ - "spanish" - ]; - var llover = [ - "spanish" - ]; - var lluvia = [ - "spanish" - ]; - var lobo = [ - "spanish" - ]; - var loco = [ - "spanish" - ]; - var locura = [ - "spanish" - ]; - var logro = [ - "spanish" - ]; - var lombriz = [ - "spanish" - ]; - var lomo = [ - "spanish" - ]; - var lonja = [ - "spanish" - ]; - var lote = [ - "spanish" - ]; - var lucha = [ - "spanish" - ]; - var lucir = [ - "spanish" - ]; - var lugar = [ - "spanish" - ]; - var lujo = [ - "spanish" - ]; - var luna = [ - "spanish" - ]; - var lunes = [ - "spanish" - ]; - var lupa = [ - "spanish" - ]; - var lustro = [ - "spanish" - ]; - var luto = [ - "spanish" - ]; - var luz = [ - "spanish" - ]; - var maceta = [ - "spanish" - ]; - var macho = [ - "spanish" - ]; - var madera = [ - "spanish" - ]; - var madre = [ - "spanish" - ]; - var maduro = [ - "spanish" - ]; - var maestro = [ - "spanish" - ]; - var mafia = [ - "spanish" - ]; - var magia = [ - "spanish" - ]; - var mago = [ - "spanish" - ]; - var maldad = [ - "spanish" - ]; - var maleta = [ - "spanish" - ]; - var malla = [ - "spanish" - ]; - var malo = [ - "spanish" - ]; - var mambo = [ - "spanish" - ]; - var mamut = [ - "spanish" - ]; - var manco = [ - "spanish" - ]; - var mando = [ - "spanish" - ]; - var manejar = [ - "spanish" - ]; - var manga = [ - "spanish" - ]; - var manjar = [ - "spanish" - ]; - var mano = [ - "spanish" - ]; - var manso = [ - "spanish" - ]; - var manta = [ - "spanish" - ]; - var mapa = [ - "spanish" - ]; - var mar = [ - "spanish" - ]; - var marco = [ - "spanish" - ]; - var marea = [ - "spanish" - ]; - var marfil = [ - "spanish" - ]; - var margen = [ - "spanish" - ]; - var marido = [ - "spanish" - ]; - var martes = [ - "spanish" - ]; - var marzo = [ - "spanish" - ]; - var masa = [ - "spanish" - ]; - var masivo = [ - "spanish" - ]; - var matar = [ - "spanish" - ]; - var materia = [ - "spanish" - ]; - var matiz = [ - "spanish" - ]; - var matriz = [ - "spanish" - ]; - var mayor = [ - "spanish" - ]; - var mazorca = [ - "spanish" - ]; - var mecha = [ - "spanish" - ]; - var medalla = [ - "spanish" - ]; - var medio = [ - "spanish" - ]; - var mejilla = [ - "spanish" - ]; - var mejor = [ - "spanish" - ]; - var melena = [ - "spanish" - ]; - var memoria = [ - "spanish" - ]; - var menor = [ - "spanish" - ]; - var mensaje = [ - "spanish" - ]; - var mente = [ - "spanish" - ]; - var mercado = [ - "spanish" - ]; - var merengue = [ - "spanish" - ]; - var mes = [ - "spanish" - ]; - var meta = [ - "spanish" - ]; - var meter = [ - "spanish" - ]; - var metro = [ - "spanish" - ]; - var mezcla = [ - "spanish" - ]; - var miedo = [ - "spanish" - ]; - var miel = [ - "spanish" - ]; - var miembro = [ - "spanish" - ]; - var miga = [ - "spanish" - ]; - var mil = [ - "spanish" - ]; - var milagro = [ - "spanish" - ]; - var militar = [ - "spanish" - ]; - var mimo = [ - "spanish" - ]; - var mina = [ - "spanish" - ]; - var minero = [ - "spanish" - ]; - var minuto = [ - "spanish" - ]; - var miope = [ - "spanish" - ]; - var mirar = [ - "spanish" - ]; - var misa = [ - "spanish" - ]; - var miseria = [ - "spanish" - ]; - var misil = [ - "spanish" - ]; - var mismo = [ - "spanish" - ]; - var mitad = [ - "spanish" - ]; - var mito = [ - "spanish" - ]; - var mochila = [ - "spanish" - ]; - var moda = [ - "spanish" - ]; - var modelo = [ - "spanish" - ]; - var moho = [ - "spanish" - ]; - var mojar = [ - "spanish" - ]; - var molde = [ - "spanish" - ]; - var moler = [ - "spanish" - ]; - var molino = [ - "spanish" - ]; - var momento = [ - "spanish" - ]; - var momia = [ - "spanish" - ]; - var monarca = [ - "spanish" - ]; - var moneda = [ - "spanish" - ]; - var monja = [ - "spanish" - ]; - var monto = [ - "spanish" - ]; - var morada = [ - "spanish" - ]; - var morder = [ - "spanish" - ]; - var moreno = [ - "spanish" - ]; - var morir = [ - "spanish" - ]; - var morro = [ - "spanish" - ]; - var morsa = [ - "spanish" - ]; - var mortal = [ - "spanish" - ]; - var mosca = [ - "spanish" - ]; - var mostrar = [ - "spanish" - ]; - var motivo = [ - "spanish" - ]; - var mover = [ - "spanish" - ]; - var mozo = [ - "spanish" - ]; - var mucho = [ - "spanish" - ]; - var mudar = [ - "spanish" - ]; - var mueble = [ - "spanish" - ]; - var muela = [ - "spanish" - ]; - var muerte = [ - "spanish" - ]; - var muestra = [ - "spanish" - ]; - var mugre = [ - "spanish" - ]; - var mujer = [ - "spanish" - ]; - var mula = [ - "spanish" - ]; - var muleta = [ - "spanish" - ]; - var multa = [ - "spanish" - ]; - var mundo = [ - "spanish" - ]; - var mural = [ - "spanish" - ]; - var muro = [ - "spanish" - ]; - var museo = [ - "spanish" - ]; - var musgo = [ - "spanish" - ]; - var muslo = [ - "spanish" - ]; - var nadar = [ - "spanish" - ]; - var naipe = [ - "spanish" - ]; - var naranja = [ - "spanish" - ]; - var nariz = [ - "spanish" - ]; - var narrar = [ - "spanish" - ]; - var nasal = [ - "spanish" - ]; - var natal = [ - "spanish" - ]; - var nativo = [ - "spanish" - ]; - var natural = [ - "spanish" - ]; - var naval = [ - "spanish" - ]; - var nave = [ - "spanish" - ]; - var navidad = [ - "spanish" - ]; - var necio = [ - "spanish" - ]; - var negar = [ - "spanish" - ]; - var negocio = [ - "spanish" - ]; - var negro = [ - "spanish" - ]; - var nervio = [ - "spanish" - ]; - var neto = [ - "spanish" - ]; - var neutro = [ - "spanish" - ]; - var nevar = [ - "spanish" - ]; - var nevera = [ - "spanish" - ]; - var nicho = [ - "spanish" - ]; - var nido = [ - "spanish" - ]; - var niebla = [ - "spanish" - ]; - var nieto = [ - "spanish" - ]; - var nivel = [ - "spanish" - ]; - var nobleza = [ - "spanish" - ]; - var noche = [ - "spanish" - ]; - var noria = [ - "spanish" - ]; - var norma = [ - "spanish" - ]; - var norte = [ - "spanish" - ]; - var nota = [ - "spanish" - ]; - var noticia = [ - "spanish" - ]; - var novato = [ - "spanish" - ]; - var novela = [ - "spanish" - ]; - var novio = [ - "spanish" - ]; - var nube = [ - "spanish" - ]; - var nuca = [ - "spanish" - ]; - var nudillo = [ - "spanish" - ]; - var nudo = [ - "spanish" - ]; - var nuera = [ - "spanish" - ]; - var nueve = [ - "spanish" - ]; - var nuez = [ - "spanish" - ]; - var nulo = [ - "spanish" - ]; - var nutria = [ - "spanish" - ]; - var oasis = [ - "spanish" - ]; - var obeso = [ - "spanish" - ]; - var obispo = [ - "spanish" - ]; - var objeto = [ - "spanish" - ]; - var obra = [ - "spanish" - ]; - var obrero = [ - "spanish" - ]; - var observar = [ - "spanish" - ]; - var obtener = [ - "spanish" - ]; - var obvio = [ - "spanish" - ]; - var oca = [ - "spanish" - ]; - var ocaso = [ - "spanish" - ]; - var ochenta = [ - "spanish" - ]; - var ocho = [ - "spanish" - ]; - var ocio = [ - "spanish" - ]; - var ocre = [ - "spanish" - ]; - var octavo = [ - "spanish" - ]; - var octubre = [ - "spanish" - ]; - var oculto = [ - "spanish" - ]; - var ocupar = [ - "spanish" - ]; - var ocurrir = [ - "spanish" - ]; - var odiar = [ - "spanish" - ]; - var odio = [ - "spanish" - ]; - var odisea = [ - "spanish" - ]; - var oeste = [ - "spanish" - ]; - var ofensa = [ - "spanish" - ]; - var oferta = [ - "spanish" - ]; - var oficio = [ - "spanish" - ]; - var ofrecer = [ - "spanish" - ]; - var ogro = [ - "spanish" - ]; - var ojo = [ - "spanish" - ]; - var ola = [ - "spanish" - ]; - var oleada = [ - "spanish" - ]; - var olfato = [ - "spanish" - ]; - var olivo = [ - "spanish" - ]; - var olla = [ - "spanish" - ]; - var olmo = [ - "spanish" - ]; - var olor = [ - "spanish" - ]; - var olvido = [ - "spanish" - ]; - var ombligo = [ - "spanish" - ]; - var onda = [ - "spanish" - ]; - var onza = [ - "spanish" - ]; - var opaco = [ - "spanish" - ]; - var opinar = [ - "spanish" - ]; - var oponer = [ - "spanish" - ]; - var optar = [ - "spanish" - ]; - var opuesto = [ - "spanish" - ]; - var orador = [ - "spanish" - ]; - var oral = [ - "spanish", - "turkish" - ]; - var orca = [ - "spanish" - ]; - var orden = [ - "spanish" - ]; - var oreja = [ - "spanish" - ]; - var orgullo = [ - "spanish" - ]; - var oriente = [ - "spanish" - ]; - var origen = [ - "spanish" - ]; - var orilla = [ - "spanish" - ]; - var oro = [ - "spanish" - ]; - var orquesta = [ - "spanish" - ]; - var oruga = [ - "spanish" - ]; - var oscuro = [ - "spanish" - ]; - var osezno = [ - "spanish" - ]; - var oso = [ - "spanish" - ]; - var ostra = [ - "spanish" - ]; - var otro = [ - "spanish" - ]; - var oveja = [ - "spanish" - ]; - var oyente = [ - "spanish" - ]; - var ozono = [ - "spanish" - ]; - var pacto = [ - "spanish" - ]; - var padre = [ - "spanish" - ]; - var paella = [ - "spanish" - ]; - var pago = [ - "spanish" - ]; - var palabra = [ - "spanish" - ]; - var palco = [ - "spanish" - ]; - var paleta = [ - "spanish" - ]; - var palma = [ - "spanish" - ]; - var paloma = [ - "spanish" - ]; - var palpar = [ - "spanish" - ]; - var pan = [ - "spanish" - ]; - var panal = [ - "spanish" - ]; - var pantera = [ - "spanish" - ]; - var papel = [ - "spanish" - ]; - var papilla = [ - "spanish" - ]; - var paquete = [ - "spanish" - ]; - var parar = [ - "spanish" - ]; - var parcela = [ - "spanish" - ]; - var pared = [ - "spanish" - ]; - var parir = [ - "spanish" - ]; - var paro = [ - "spanish" - ]; - var parque = [ - "spanish" - ]; - var parte = [ - "spanish" - ]; - var pasar = [ - "spanish" - ]; - var paseo = [ - "spanish" - ]; - var paso = [ - "spanish" - ]; - var pasta = [ - "spanish" - ]; - var pata = [ - "spanish" - ]; - var patio = [ - "spanish" - ]; - var patria = [ - "spanish" - ]; - var pausa = [ - "spanish" - ]; - var pauta = [ - "spanish" - ]; - var pavo = [ - "spanish" - ]; - var payaso = [ - "spanish" - ]; - var pecado = [ - "spanish" - ]; - var pecera = [ - "spanish" - ]; - var pecho = [ - "spanish" - ]; - var pedal = [ - "spanish", - "turkish" - ]; - var pedir = [ - "spanish" - ]; - var pegar = [ - "spanish" - ]; - var peine = [ - "spanish" - ]; - var pelar = [ - "spanish" - ]; - var pelea = [ - "spanish" - ]; - var peligro = [ - "spanish" - ]; - var pellejo = [ - "spanish" - ]; - var pelo = [ - "spanish" - ]; - var peluca = [ - "spanish" - ]; - var pena = [ - "spanish", - "turkish" - ]; - var pensar = [ - "spanish" - ]; - var peor = [ - "spanish" - ]; - var pepino = [ - "spanish" - ]; - var pera = [ - "spanish" - ]; - var percha = [ - "spanish" - ]; - var perder = [ - "spanish" - ]; - var pereza = [ - "spanish" - ]; - var perfil = [ - "spanish" - ]; - var perico = [ - "spanish" - ]; - var perla = [ - "spanish" - ]; - var permiso = [ - "spanish" - ]; - var perro = [ - "spanish" - ]; - var persona = [ - "spanish" - ]; - var pesa = [ - "spanish" - ]; - var pesca = [ - "spanish" - ]; - var pez = [ - "spanish" - ]; - var picar = [ - "spanish" - ]; - var pie = [ - "spanish" - ]; - var piedra = [ - "spanish" - ]; - var pierna = [ - "spanish" - ]; - var pieza = [ - "spanish" - ]; - var pijama = [ - "spanish" - ]; - var pilar = [ - "spanish" - ]; - var piloto = [ - "spanish" - ]; - var pimienta = [ - "spanish" - ]; - var pino = [ - "spanish" - ]; - var pintor = [ - "spanish" - ]; - var pinza = [ - "spanish" - ]; - var piojo = [ - "spanish" - ]; - var pipa = [ - "spanish" - ]; - var pirata = [ - "spanish" - ]; - var pisar = [ - "spanish" - ]; - var piscina = [ - "spanish" - ]; - var piso = [ - "spanish" - ]; - var pista = [ - "spanish" - ]; - var pizca = [ - "spanish" - ]; - var placa = [ - "spanish" - ]; - var plan = [ - "spanish" - ]; - var plata = [ - "spanish" - ]; - var playa = [ - "spanish" - ]; - var plaza = [ - "spanish" - ]; - var pleito = [ - "spanish" - ]; - var pleno = [ - "spanish" - ]; - var plomo = [ - "spanish" - ]; - var pluma = [ - "spanish" - ]; - var plural = [ - "spanish" - ]; - var pobre = [ - "spanish" - ]; - var poco = [ - "spanish" - ]; - var poder = [ - "spanish" - ]; - var podio = [ - "spanish" - ]; - var poema = [ - "spanish" - ]; - var poeta = [ - "spanish" - ]; - var polen = [ - "spanish", - "turkish" - ]; - var pollo = [ - "spanish" - ]; - var polvo = [ - "spanish" - ]; - var pomada = [ - "spanish" - ]; - var pomelo = [ - "spanish" - ]; - var pomo = [ - "spanish" - ]; - var pompa = [ - "spanish", - "turkish" - ]; - var poner = [ - "spanish" - ]; - var portal = [ - "spanish" - ]; - var posada = [ - "spanish" - ]; - var poseer = [ - "spanish" - ]; - var posible = [ - "spanish" - ]; - var poste = [ - "spanish" - ]; - var potencia = [ - "spanish" - ]; - var potro = [ - "spanish" - ]; - var pozo = [ - "spanish" - ]; - var prado = [ - "spanish" - ]; - var precoz = [ - "spanish" - ]; - var pregunta = [ - "spanish" - ]; - var premio = [ - "spanish" - ]; - var prensa = [ - "spanish" - ]; - var preso = [ - "spanish" - ]; - var previo = [ - "spanish" - ]; - var primo = [ - "spanish" - ]; - var privar = [ - "spanish" - ]; - var proa = [ - "spanish" - ]; - var probar = [ - "spanish" - ]; - var proceso = [ - "spanish" - ]; - var producto = [ - "spanish" - ]; - var proeza = [ - "spanish" - ]; - var profesor = [ - "spanish" - ]; - var programa = [ - "spanish" - ]; - var prole = [ - "spanish" - ]; - var promesa = [ - "spanish" - ]; - var pronto = [ - "spanish" - ]; - var propio = [ - "spanish" - ]; - var prueba = [ - "spanish" - ]; - var puchero = [ - "spanish" - ]; - var pudor = [ - "spanish" - ]; - var pueblo = [ - "spanish" - ]; - var puerta = [ - "spanish" - ]; - var puesto = [ - "spanish" - ]; - var pulga = [ - "spanish" - ]; - var pulir = [ - "spanish" - ]; - var pulpo = [ - "spanish" - ]; - var pulso = [ - "spanish" - ]; - var puma = [ - "spanish" - ]; - var punto = [ - "spanish" - ]; - var pupa = [ - "spanish" - ]; - var pupila = [ - "spanish" - ]; - var quedar = [ - "spanish" - ]; - var queja = [ - "spanish" - ]; - var quemar = [ - "spanish" - ]; - var querer = [ - "spanish" - ]; - var queso = [ - "spanish" - ]; - var quieto = [ - "spanish" - ]; - var quince = [ - "spanish" - ]; - var quitar = [ - "spanish" - ]; - var rabia = [ - "spanish" - ]; - var rabo = [ - "spanish" - ]; - var radical = [ - "spanish" - ]; - var rama = [ - "spanish" - ]; - var rampa = [ - "spanish", - "turkish" - ]; - var rancho = [ - "spanish" - ]; - var rango = [ - "spanish" - ]; - var rapaz = [ - "spanish" - ]; - var rapto = [ - "spanish" - ]; - var rasgo = [ - "spanish" - ]; - var raspa = [ - "spanish" - ]; - var rato = [ - "spanish" - ]; - var rayo = [ - "spanish" - ]; - var raza = [ - "spanish" - ]; - var realidad = [ - "spanish" - ]; - var rebote = [ - "spanish" - ]; - var recaer = [ - "spanish" - ]; - var receta = [ - "spanish" - ]; - var rechazo = [ - "spanish" - ]; - var recoger = [ - "spanish" - ]; - var recreo = [ - "spanish" - ]; - var recto = [ - "spanish" - ]; - var recurso = [ - "spanish" - ]; - var red = [ - "spanish" - ]; - var redondo = [ - "spanish" - ]; - var reducir = [ - "spanish" - ]; - var reflejo = [ - "spanish" - ]; - var reforma = [ - "spanish" - ]; - var refugio = [ - "spanish" - ]; - var regalo = [ - "spanish" - ]; - var regir = [ - "spanish" - ]; - var regla = [ - "spanish" - ]; - var regreso = [ - "spanish" - ]; - var reino = [ - "spanish" - ]; - var reja = [ - "spanish" - ]; - var relato = [ - "spanish" - ]; - var relevo = [ - "spanish" - ]; - var relieve = [ - "spanish" - ]; - var relleno = [ - "spanish" - ]; - var reloj = [ - "spanish" - ]; - var remar = [ - "spanish" - ]; - var remedio = [ - "spanish" - ]; - var remo = [ - "spanish" - ]; - var rencor = [ - "spanish" - ]; - var rendir = [ - "spanish" - ]; - var renta = [ - "spanish" - ]; - var reparto = [ - "spanish" - ]; - var repetir = [ - "spanish" - ]; - var reposo = [ - "spanish" - ]; - var reptil = [ - "spanish" - ]; - var res = [ - "spanish" - ]; - var rescate = [ - "spanish" - ]; - var resina = [ - "spanish" - ]; - var respeto = [ - "spanish" - ]; - var resto = [ - "spanish" - ]; - var resumen = [ - "spanish" - ]; - var retiro = [ - "spanish" - ]; - var retorno = [ - "spanish" - ]; - var retrato = [ - "spanish" - ]; - var reunir = [ - "spanish" - ]; - var revista = [ - "spanish" - ]; - var rey = [ - "spanish" - ]; - var rezar = [ - "spanish" - ]; - var rico = [ - "spanish" - ]; - var riego = [ - "spanish" - ]; - var rienda = [ - "spanish" - ]; - var riesgo = [ - "spanish" - ]; - var rifa = [ - "spanish" - ]; - var rigor = [ - "spanish" - ]; - var riqueza = [ - "spanish" - ]; - var risa = [ - "spanish" - ]; - var ritmo = [ - "spanish" - ]; - var rito = [ - "spanish" - ]; - var rizo = [ - "spanish" - ]; - var roble = [ - "spanish" - ]; - var roce = [ - "spanish" - ]; - var rociar = [ - "spanish" - ]; - var rodar = [ - "spanish" - ]; - var rodeo = [ - "spanish" - ]; - var rodilla = [ - "spanish" - ]; - var roer = [ - "spanish" - ]; - var rojizo = [ - "spanish" - ]; - var rojo = [ - "spanish" - ]; - var romero = [ - "spanish" - ]; - var romper = [ - "spanish" - ]; - var ron = [ - "spanish" - ]; - var ronco = [ - "spanish" - ]; - var ronda = [ - "spanish" - ]; - var ropa = [ - "spanish" - ]; - var ropero = [ - "spanish" - ]; - var rosa = [ - "spanish" - ]; - var rosca = [ - "spanish" - ]; - var rostro = [ - "spanish" - ]; - var rotar = [ - "spanish" - ]; - var rubor = [ - "spanish" - ]; - var rudo = [ - "spanish" - ]; - var rueda = [ - "spanish" - ]; - var rugir = [ - "spanish" - ]; - var ruido = [ - "spanish" - ]; - var ruina = [ - "spanish" - ]; - var ruleta = [ - "spanish" - ]; - var rulo = [ - "spanish", - "turkish" - ]; - var rumbo = [ - "spanish" - ]; - var rumor = [ - "spanish" - ]; - var ruptura = [ - "spanish" - ]; - var ruta = [ - "spanish" - ]; - var rutina = [ - "spanish" - ]; - var saber = [ - "spanish" - ]; - var sabio = [ - "spanish" - ]; - var sable = [ - "spanish" - ]; - var sacar = [ - "spanish" - ]; - var sagaz = [ - "spanish" - ]; - var sagrado = [ - "spanish" - ]; - var sala = [ - "spanish" - ]; - var saldo = [ - "spanish" - ]; - var salero = [ - "spanish" - ]; - var salir = [ - "spanish" - ]; - var salsa = [ - "spanish" - ]; - var salto = [ - "spanish" - ]; - var salud = [ - "spanish" - ]; - var salvar = [ - "spanish" - ]; - var samba = [ - "spanish" - ]; - var sanear = [ - "spanish" - ]; - var sangre = [ - "spanish" - ]; - var sanidad = [ - "spanish" - ]; - var sano = [ - "spanish" - ]; - var santo = [ - "spanish" - ]; - var sapo = [ - "spanish" - ]; - var saque = [ - "spanish" - ]; - var sardina = [ - "spanish" - ]; - var sastre = [ - "spanish" - ]; - var sauna = [ - "spanish" - ]; - var seco = [ - "spanish" - ]; - var secreto = [ - "spanish" - ]; - var secta = [ - "spanish" - ]; - var sed = [ - "spanish" - ]; - var seguir = [ - "spanish" - ]; - var seis = [ - "spanish" - ]; - var sello = [ - "spanish" - ]; - var selva = [ - "spanish" - ]; - var semana = [ - "spanish" - ]; - var semilla = [ - "spanish" - ]; - var senda = [ - "spanish" - ]; - var sensor = [ - "spanish" - ]; - var separar = [ - "spanish" - ]; - var sepia = [ - "spanish" - ]; - var ser = [ - "spanish" - ]; - var serie = [ - "spanish" - ]; - var servir = [ - "spanish" - ]; - var sesenta = [ - "spanish" - ]; - var seta = [ - "spanish" - ]; - var setenta = [ - "spanish" - ]; - var severo = [ - "spanish" - ]; - var sexo = [ - "spanish" - ]; - var sexto = [ - "spanish" - ]; - var sidra = [ - "spanish" - ]; - var siesta = [ - "spanish" - ]; - var siete = [ - "spanish" - ]; - var siglo = [ - "spanish" - ]; - var signo = [ - "spanish" - ]; - var silbar = [ - "spanish" - ]; - var silencio = [ - "spanish" - ]; - var silla = [ - "spanish" - ]; - var simio = [ - "spanish" - ]; - var sirena = [ - "spanish" - ]; - var sistema = [ - "spanish" - ]; - var sitio = [ - "spanish" - ]; - var situar = [ - "spanish" - ]; - var sobre = [ - "spanish" - ]; - var socio = [ - "spanish" - ]; - var sodio = [ - "spanish" - ]; - var sol = [ - "spanish" - ]; - var solapa = [ - "spanish" - ]; - var soldado = [ - "spanish" - ]; - var soledad = [ - "spanish" - ]; - var soltar = [ - "spanish" - ]; - var sombra = [ - "spanish" - ]; - var sondeo = [ - "spanish" - ]; - var sonido = [ - "spanish" - ]; - var sonoro = [ - "spanish" - ]; - var sonrisa = [ - "spanish" - ]; - var sopa = [ - "spanish" - ]; - var soplar = [ - "spanish" - ]; - var soporte = [ - "spanish" - ]; - var sordo = [ - "spanish" - ]; - var sorpresa = [ - "spanish" - ]; - var sorteo = [ - "spanish" - ]; - var suave = [ - "spanish" - ]; - var subir = [ - "spanish" - ]; - var suceso = [ - "spanish" - ]; - var sudor = [ - "spanish" - ]; - var suegra = [ - "spanish" - ]; - var suelo = [ - "spanish" - ]; - var suerte = [ - "spanish" - ]; - var sufrir = [ - "spanish" - ]; - var sujeto = [ - "spanish" - ]; - var sumar = [ - "spanish" - ]; - var superar = [ - "spanish" - ]; - var suplir = [ - "spanish" - ]; - var suponer = [ - "spanish" - ]; - var supremo = [ - "spanish" - ]; - var sur = [ - "spanish" - ]; - var surco = [ - "spanish" - ]; - var surgir = [ - "spanish" - ]; - var susto = [ - "spanish" - ]; - var sutil = [ - "spanish" - ]; - var tabaco = [ - "spanish" - ]; - var tabique = [ - "spanish" - ]; - var tabla = [ - "spanish" - ]; - var taco = [ - "spanish" - ]; - var tacto = [ - "spanish" - ]; - var tajo = [ - "spanish" - ]; - var talar = [ - "spanish" - ]; - var talco = [ - "spanish" - ]; - var talento = [ - "spanish" - ]; - var talla = [ - "spanish" - ]; - var tambor = [ - "spanish" - ]; - var tango = [ - "spanish" - ]; - var tanque = [ - "spanish" - ]; - var tapa = [ - "spanish" - ]; - var tapete = [ - "spanish" - ]; - var tapia = [ - "spanish" - ]; - var taquilla = [ - "spanish" - ]; - var tarde = [ - "spanish" - ]; - var tarea = [ - "spanish" - ]; - var tarifa = [ - "spanish" - ]; - var tarjeta = [ - "spanish" - ]; - var tarot = [ - "spanish" - ]; - var tarro = [ - "spanish" - ]; - var tarta = [ - "spanish" - ]; - var tatuaje = [ - "spanish" - ]; - var tauro = [ - "spanish" - ]; - var taza = [ - "spanish" - ]; - var teatro = [ - "spanish" - ]; - var techo = [ - "spanish" - ]; - var tecla = [ - "spanish" - ]; - var tejado = [ - "spanish" - ]; - var tejer = [ - "spanish" - ]; - var tejido = [ - "spanish" - ]; - var tela = [ - "spanish" - ]; - var tema = [ - "spanish" - ]; - var temor = [ - "spanish" - ]; - var templo = [ - "spanish" - ]; - var tenaz = [ - "spanish" - ]; - var tender = [ - "spanish" - ]; - var tener = [ - "spanish" - ]; - var tenis = [ - "spanish" - ]; - var tenso = [ - "spanish" - ]; - var terapia = [ - "spanish" - ]; - var terco = [ - "spanish" - ]; - var ternura = [ - "spanish" - ]; - var terror = [ - "spanish" - ]; - var tesis = [ - "spanish" - ]; - var tesoro = [ - "spanish" - ]; - var testigo = [ - "spanish" - ]; - var tetera = [ - "spanish" - ]; - var texto = [ - "spanish" - ]; - var tez = [ - "spanish" - ]; - var tibio = [ - "spanish" - ]; - var tiempo = [ - "spanish" - ]; - var tienda = [ - "spanish" - ]; - var tierra = [ - "spanish" - ]; - var tieso = [ - "spanish" - ]; - var tigre = [ - "spanish" - ]; - var tijera = [ - "spanish" - ]; - var tilde = [ - "spanish" - ]; - var timbre = [ - "spanish" - ]; - var timo = [ - "spanish" - ]; - var tinta = [ - "spanish" - ]; - var tipo = [ - "spanish" - ]; - var tira = [ - "spanish" - ]; - var tiza = [ - "spanish" - ]; - var toalla = [ - "spanish" - ]; - var tobillo = [ - "spanish" - ]; - var tocar = [ - "spanish" - ]; - var tocino = [ - "spanish" - ]; - var todo = [ - "spanish" - ]; - var toga = [ - "spanish" - ]; - var toldo = [ - "spanish" - ]; - var tomar = [ - "spanish", - "turkish" - ]; - var tono = [ - "spanish" - ]; - var tonto = [ - "spanish" - ]; - var topar = [ - "spanish" - ]; - var tope = [ - "spanish" - ]; - var toque = [ - "spanish" - ]; - var torero = [ - "spanish" - ]; - var tormenta = [ - "spanish" - ]; - var torneo = [ - "spanish" - ]; - var toro = [ - "spanish" - ]; - var torpedo = [ - "spanish" - ]; - var torre = [ - "spanish" - ]; - var torso = [ - "spanish" - ]; - var tortuga = [ - "spanish" - ]; - var tos = [ - "spanish" - ]; - var tosco = [ - "spanish" - ]; - var toser = [ - "spanish" - ]; - var trabajo = [ - "spanish" - ]; - var tractor = [ - "spanish" - ]; - var traer = [ - "spanish" - ]; - var trago = [ - "spanish" - ]; - var traje = [ - "spanish" - ]; - var tramo = [ - "spanish" - ]; - var trance = [ - "spanish" - ]; - var trato = [ - "spanish" - ]; - var trauma = [ - "spanish" - ]; - var trazar = [ - "spanish" - ]; - var tregua = [ - "spanish" - ]; - var treinta = [ - "spanish" - ]; - var tren = [ - "spanish" - ]; - var trepar = [ - "spanish" - ]; - var tres = [ - "spanish" - ]; - var tribu = [ - "spanish" - ]; - var trigo = [ - "spanish" - ]; - var tripa = [ - "spanish" - ]; - var triste = [ - "spanish" - ]; - var triunfo = [ - "spanish" - ]; - var trofeo = [ - "spanish" - ]; - var trompa = [ - "spanish" - ]; - var tronco = [ - "spanish" - ]; - var tropa = [ - "spanish" - ]; - var trote = [ - "spanish" - ]; - var trozo = [ - "spanish" - ]; - var truco = [ - "spanish" - ]; - var trueno = [ - "spanish" - ]; - var trufa = [ - "spanish" - ]; - var tubo = [ - "spanish" - ]; - var tuerto = [ - "spanish" - ]; - var tumba = [ - "spanish" - ]; - var tumor = [ - "spanish" - ]; - var turbina = [ - "spanish" - ]; - var turismo = [ - "spanish" - ]; - var turno = [ - "spanish" - ]; - var tutor = [ - "spanish" - ]; - var ubicar = [ - "spanish" - ]; - var umbral = [ - "spanish" - ]; - var unidad = [ - "spanish" - ]; - var unir = [ - "spanish" - ]; - var universo = [ - "spanish" - ]; - var uno = [ - "spanish" - ]; - var untar = [ - "spanish" - ]; - var urbano = [ - "spanish" - ]; - var urbe = [ - "spanish" - ]; - var urgente = [ - "spanish" - ]; - var urna = [ - "spanish" - ]; - var usar = [ - "spanish" - ]; - var usuario = [ - "spanish" - ]; - var uva = [ - "spanish" - ]; - var vaca = [ - "spanish" - ]; - var vacuna = [ - "spanish" - ]; - var vagar = [ - "spanish" - ]; - var vago = [ - "spanish" - ]; - var vaina = [ - "spanish" - ]; - var vajilla = [ - "spanish" - ]; - var vale = [ - "spanish" - ]; - var valle = [ - "spanish" - ]; - var valor = [ - "spanish" - ]; - var vampiro = [ - "spanish" - ]; - var vara = [ - "spanish" - ]; - var variar = [ - "spanish" - ]; - var vaso = [ - "spanish" - ]; - var vecino = [ - "spanish" - ]; - var vector = [ - "spanish" - ]; - var veinte = [ - "spanish" - ]; - var vejez = [ - "spanish" - ]; - var vela = [ - "spanish" - ]; - var velero = [ - "spanish" - ]; - var veloz = [ - "spanish" - ]; - var vena = [ - "spanish" - ]; - var vencer = [ - "spanish" - ]; - var venda = [ - "spanish" - ]; - var veneno = [ - "spanish" - ]; - var vengar = [ - "spanish" - ]; - var venir = [ - "spanish" - ]; - var venta = [ - "spanish" - ]; - var venus = [ - "spanish" - ]; - var ver = [ - "spanish" - ]; - var verano = [ - "spanish" - ]; - var verbo = [ - "spanish" - ]; - var verde = [ - "spanish" - ]; - var vereda = [ - "spanish" - ]; - var verja = [ - "spanish" - ]; - var verso = [ - "spanish" - ]; - var verter = [ - "spanish" - ]; - var viaje = [ - "spanish" - ]; - var vibrar = [ - "spanish" - ]; - var vicio = [ - "spanish" - ]; - var vida = [ - "spanish" - ]; - var vidrio = [ - "spanish" - ]; - var viejo = [ - "spanish" - ]; - var viernes = [ - "spanish" - ]; - var vigor = [ - "spanish" - ]; - var vil = [ - "spanish" - ]; - var villa = [ - "spanish" - ]; - var vinagre = [ - "spanish" - ]; - var vino = [ - "spanish" - ]; - var viral = [ - "spanish" - ]; - var virgo = [ - "spanish" - ]; - var virtud = [ - "spanish" - ]; - var visor = [ - "spanish" - ]; - var vista = [ - "spanish" - ]; - var vitamina = [ - "spanish" - ]; - var viudo = [ - "spanish" - ]; - var vivaz = [ - "spanish" - ]; - var vivero = [ - "spanish" - ]; - var vivir = [ - "spanish" - ]; - var vivo = [ - "spanish" - ]; - var volumen = [ - "spanish" - ]; - var volver = [ - "spanish" - ]; - var voraz = [ - "spanish" - ]; - var votar = [ - "spanish" - ]; - var voto = [ - "spanish" - ]; - var voz = [ - "spanish" - ]; - var vuelo = [ - "spanish" - ]; - var vulgar = [ - "spanish" - ]; - var yacer = [ - "spanish" - ]; - var yate = [ - "spanish" - ]; - var yegua = [ - "spanish" - ]; - var yema = [ - "spanish" - ]; - var yerno = [ - "spanish" - ]; - var yeso = [ - "spanish" - ]; - var yodo = [ - "spanish" - ]; - var yoga = [ - "spanish" - ]; - var yogur = [ - "spanish" - ]; - var zafiro = [ - "spanish" - ]; - var zanja = [ - "spanish" - ]; - var zapato = [ - "spanish" - ]; - var zarza = [ - "spanish" - ]; - var zona = [ - "spanish" - ]; - var zorro = [ - "spanish" - ]; - var zumo = [ - "spanish" - ]; - var zurdo = [ - "spanish" - ]; - var abajur = [ - "turkish" - ]; - var abdal = [ - "turkish" - ]; - var abdest = [ - "turkish" - ]; - var abiye = [ - "turkish" - ]; - var abluka = [ - "turkish" - ]; - var abone = [ - "turkish" - ]; - var absorbe = [ - "turkish" - ]; - var acayip = [ - "turkish" - ]; - var acele = [ - "turkish" - ]; - var acemi = [ - "turkish" - ]; - var adalet = [ - "turkish" - ]; - var adam = [ - "turkish" - ]; - var adezyon = [ - "turkish" - ]; - var adisyon = [ - "turkish" - ]; - var adliye = [ - "turkish" - ]; - var adres = [ - "turkish" - ]; - var afacan = [ - "turkish" - ]; - var afili = [ - "turkish" - ]; - var afiyet = [ - "turkish" - ]; - var aforizm = [ - "turkish" - ]; - var afra = [ - "turkish" - ]; - var ahbap = [ - "turkish" - ]; - var ahkam = [ - "turkish" - ]; - var ahlak = [ - "turkish" - ]; - var ahtapot = [ - "turkish" - ]; - var aidat = [ - "turkish" - ]; - var aile = [ - "turkish" - ]; - var ajan = [ - "turkish" - ]; - var akademi = [ - "turkish" - ]; - var akarsu = [ - "turkish" - ]; - var akdeniz = [ - "turkish" - ]; - var akide = [ - "turkish" - ]; - var akrep = [ - "turkish" - ]; - var akrobasi = [ - "turkish" - ]; - var aksiyon = [ - "turkish" - ]; - var aktif = [ - "turkish" - ]; - var aktris = [ - "turkish" - ]; - var akustik = [ - "turkish" - ]; - var alaca = [ - "turkish" - ]; - var aldanma = [ - "turkish" - ]; - var aleni = [ - "turkish" - ]; - var alet = [ - "turkish" - ]; - var alfabe = [ - "turkish" - ]; - var alkol = [ - "turkish" - ]; - var alpay = [ - "turkish" - ]; - var alperen = [ - "turkish" - ]; - var alyuvar = [ - "turkish" - ]; - var amade = [ - "turkish" - ]; - var amazon = [ - "turkish" - ]; - var ambalaj = [ - "turkish" - ]; - var amblem = [ - "turkish" - ]; - var ambulans = [ - "turkish" - ]; - var amca = [ - "turkish" - ]; - var amel = [ - "turkish" - ]; - var amir = [ - "turkish" - ]; - var amiyane = [ - "turkish" - ]; - var amorti = [ - "turkish" - ]; - var ampul = [ - "turkish" - ]; - var anadolu = [ - "turkish" - ]; - var anahtar = [ - "turkish" - ]; - var anakonda = [ - "turkish" - ]; - var anaokul = [ - "turkish" - ]; - var anapara = [ - "turkish" - ]; - var anatomi = [ - "turkish" - ]; - var anayasa = [ - "turkish" - ]; - var anekdot = [ - "turkish" - ]; - var anestezi = [ - "turkish" - ]; - var angaje = [ - "turkish" - ]; - var anka = [ - "turkish" - ]; - var anket = [ - "turkish" - ]; - var anne = [ - "turkish" - ]; - var anomali = [ - "turkish" - ]; - var anonim = [ - "turkish" - ]; - var anten = [ - "turkish" - ]; - var apse = [ - "turkish" - ]; - var araba = [ - "turkish" - ]; - var araf = [ - "turkish" - ]; - var arbede = [ - "turkish" - ]; - var arda = [ - "turkish" - ]; - var arefe = [ - "turkish" - ]; - var argo = [ - "turkish" - ]; - var armoni = [ - "turkish" - ]; - var arsa = [ - "turkish" - ]; - var aruz = [ - "turkish" - ]; - var asgari = [ - "turkish" - ]; - var asil = [ - "turkish" - ]; - var asker = [ - "turkish" - ]; - var aslan = [ - "turkish" - ]; - var asosyal = [ - "turkish" - ]; - var astsubay = [ - "turkish" - ]; - var asya = [ - "turkish" - ]; - var atabey = [ - "turkish" - ]; - var ataman = [ - "turkish" - ]; - var atmaca = [ - "turkish" - ]; - var atmosfer = [ - "turkish" - ]; - var avdet = [ - "turkish" - ]; - var avize = [ - "turkish" - ]; - var avlu = [ - "turkish" - ]; - var avokado = [ - "turkish" - ]; - var avrupa = [ - "turkish" - ]; - var avukat = [ - "turkish" - ]; - var ayaz = [ - "turkish" - ]; - var ayna = [ - "turkish" - ]; - var ayran = [ - "turkish" - ]; - var azim = [ - "turkish" - ]; - var baca = [ - "turkish" - ]; - var bagaj = [ - "turkish" - ]; - var baki = [ - "turkish" - ]; - var bakkal = [ - "turkish" - ]; - var baklava = [ - "turkish" - ]; - var bakteri = [ - "turkish" - ]; - var balina = [ - "turkish" - ]; - var balo = [ - "turkish" - ]; - var balta = [ - "turkish" - ]; - var bant = [ - "turkish" - ]; - var banyo = [ - "turkish" - ]; - var bardak = [ - "turkish" - ]; - var bavul = [ - "turkish" - ]; - var bazlama = [ - "turkish" - ]; - var bedel = [ - "turkish" - ]; - var bekle = [ - "turkish" - ]; - var belge = [ - "turkish" - ]; - var belki = [ - "turkish" - ]; - var bencil = [ - "turkish" - ]; - var benek = [ - "turkish" - ]; - var bengi = [ - "turkish" - ]; - var berjer = [ - "turkish" - ]; - var berk = [ - "turkish" - ]; - var berrak = [ - "turkish" - ]; - var beyin = [ - "turkish" - ]; - var biberiye = [ - "turkish" - ]; - var bidon = [ - "turkish" - ]; - var bihaber = [ - "turkish" - ]; - var bikini = [ - "turkish" - ]; - var bilezik = [ - "turkish" - ]; - var bilye = [ - "turkish" - ]; - var bina = [ - "turkish" - ]; - var bisiklet = [ - "turkish" - ]; - var bitki = [ - "turkish" - ]; - var bizzat = [ - "turkish" - ]; - var bodrum = [ - "turkish" - ]; - var boncuk = [ - "turkish" - ]; - var bonfile = [ - "turkish" - ]; - var borsa = [ - "turkish" - ]; - var boru = [ - "turkish" - ]; - var bostan = [ - "turkish" - ]; - var botanik = [ - "turkish" - ]; - var boya = [ - "turkish" - ]; - var boykot = [ - "turkish" - ]; - var boynuz = [ - "turkish" - ]; - var bozgun = [ - "turkish" - ]; - var buhar = [ - "turkish" - ]; - var buhran = [ - "turkish" - ]; - var bulvar = [ - "turkish" - ]; - var buram = [ - "turkish" - ]; - var burs = [ - "turkish" - ]; - var burun = [ - "turkish" - ]; - var cahil = [ - "turkish" - ]; - var cambaz = [ - "turkish" - ]; - var casus = [ - "turkish" - ]; - var cazibe = [ - "turkish" - ]; - var cehalet = [ - "turkish" - ]; - var cehennem = [ - "turkish" - ]; - var ceket = [ - "turkish" - ]; - var cemre = [ - "turkish" - ]; - var cenin = [ - "turkish" - ]; - var cennet = [ - "turkish" - ]; - var cepken = [ - "turkish" - ]; - var cerrah = [ - "turkish" - ]; - var cesur = [ - "turkish" - ]; - var cetvel = [ - "turkish" - ]; - var cevher = [ - "turkish" - ]; - var ceylan = [ - "turkish" - ]; - var cilt = [ - "turkish" - ]; - var cisim = [ - "turkish" - ]; - var ciyak = [ - "turkish" - ]; - var cumba = [ - "turkish" - ]; - var daktilo = [ - "turkish" - ]; - var dalga = [ - "turkish" - ]; - var dalkavuk = [ - "turkish" - ]; - var damak = [ - "turkish" - ]; - var damla = [ - "turkish" - ]; - var dana = [ - "turkish" - ]; - var dandik = [ - "turkish" - ]; - var daniska = [ - "turkish" - ]; - var dantel = [ - "turkish" - ]; - var darphane = [ - "turkish" - ]; - var davet = [ - "turkish" - ]; - var defter = [ - "turkish" - ]; - var demir = [ - "turkish" - ]; - var deneyim = [ - "turkish" - ]; - var denge = [ - "turkish" - ]; - var depo = [ - "turkish" - ]; - var deprem = [ - "turkish" - ]; - var derdest = [ - "turkish" - ]; - var dere = [ - "turkish" - ]; - var derhal = [ - "turkish" - ]; - var derman = [ - "turkish" - ]; - var dernek = [ - "turkish" - ]; - var desen = [ - "turkish" - ]; - var destan = [ - "turkish" - ]; - var dijital = [ - "turkish" - ]; - var dinamik = [ - "turkish" - ]; - var dindar = [ - "turkish" - ]; - var dinleme = [ - "turkish" - ]; - var dinozor = [ - "turkish" - ]; - var dipnot = [ - "turkish" - ]; - var dirsek = [ - "turkish" - ]; - var disiplin = [ - "turkish" - ]; - var dobra = [ - "turkish" - ]; - var dodurga = [ - "turkish" - ]; - var dolap = [ - "turkish" - ]; - var dondurma = [ - "turkish" - ]; - var doruk = [ - "turkish" - ]; - var dost = [ - "turkish" - ]; - var dosya = [ - "turkish" - ]; - var dozer = [ - "turkish" - ]; - var dram = [ - "turkish" - ]; - var dublaj = [ - "turkish" - ]; - var durum = [ - "turkish" - ]; - var duvak = [ - "turkish" - ]; - var duyarga = [ - "turkish" - ]; - var duyma = [ - "turkish" - ]; - var duyuru = [ - "turkish" - ]; - var ebeveyn = [ - "turkish" - ]; - var ebru = [ - "turkish" - ]; - var ecel = [ - "turkish" - ]; - var ecnebi = [ - "turkish" - ]; - var ecza = [ - "turkish" - ]; - var edat = [ - "turkish" - ]; - var edilgen = [ - "turkish" - ]; - var efendi = [ - "turkish" - ]; - var efor = [ - "turkish" - ]; - var efsane = [ - "turkish" - ]; - var egemen = [ - "turkish" - ]; - var egzersiz = [ - "turkish" - ]; - var ekarte = [ - "turkish" - ]; - var ekip = [ - "turkish" - ]; - var eklem = [ - "turkish" - ]; - var ekmek = [ - "turkish" - ]; - var ekol = [ - "turkish" - ]; - var ekonomi = [ - "turkish" - ]; - var ekose = [ - "turkish" - ]; - var ekran = [ - "turkish" - ]; - var ekvator = [ - "turkish" - ]; - var elaman = [ - "turkish" - ]; - var elastik = [ - "turkish" - ]; - var elbet = [ - "turkish" - ]; - var elbise = [ - "turkish" - ]; - var eldiven = [ - "turkish" - ]; - var elma = [ - "turkish" - ]; - var elveda = [ - "turkish" - ]; - var emare = [ - "turkish" - ]; - var emisyon = [ - "turkish" - ]; - var emniyet = [ - "turkish" - ]; - var empati = [ - "turkish" - ]; - var emsal = [ - "turkish" - ]; - var emzik = [ - "turkish" - ]; - var enerji = [ - "turkish" - ]; - var engebe = [ - "turkish" - ]; - var enkaz = [ - "turkish" - ]; - var entari = [ - "turkish" - ]; - var entegre = [ - "turkish" - ]; - var entrika = [ - "turkish" - ]; - var enzim = [ - "turkish" - ]; - var erdem = [ - "turkish" - ]; - var ergen = [ - "turkish" - ]; - var erguvan = [ - "turkish" - ]; - var erkek = [ - "turkish" - ]; - var erozyon = [ - "turkish" - ]; - var ertesi = [ - "turkish" - ]; - var erzak = [ - "turkish" - ]; - var esaret = [ - "turkish" - ]; - var esenlik = [ - "turkish" - ]; - var eser = [ - "turkish" - ]; - var eski = [ - "turkish" - ]; - var esnek = [ - "turkish" - ]; - var etik = [ - "turkish" - ]; - var etken = [ - "turkish" - ]; - var etkinlik = [ - "turkish" - ]; - var evet = [ - "turkish" - ]; - var evire = [ - "turkish" - ]; - var evrak = [ - "turkish" - ]; - var evrim = [ - "turkish" - ]; - var eyalet = [ - "turkish" - ]; - var eyvah = [ - "turkish" - ]; - var ezber = [ - "turkish" - ]; - var fabrika = [ - "turkish" - ]; - var fanus = [ - "turkish" - ]; - var fason = [ - "turkish" - ]; - var fasulye = [ - "turkish" - ]; - var fatih = [ - "turkish" - ]; - var fatura = [ - "turkish" - ]; - var fayans = [ - "turkish" - ]; - var fayton = [ - "turkish" - ]; - var fazilet = [ - "turkish" - ]; - var felsefe = [ - "turkish" - ]; - var fener = [ - "turkish" - ]; - var feribot = [ - "turkish" - ]; - var fersah = [ - "turkish" - ]; - var fesih = [ - "turkish" - ]; - var feveran = [ - "turkish" - ]; - var feza = [ - "turkish" - ]; - var fidan = [ - "turkish" - ]; - var fidye = [ - "turkish" - ]; - var fihrist = [ - "turkish" - ]; - var fikir = [ - "turkish" - ]; - var filtre = [ - "turkish" - ]; - var fincan = [ - "turkish" - ]; - var firuze = [ - "turkish" - ]; - var fitil = [ - "turkish" - ]; - var fiyaka = [ - "turkish" - ]; - var fizik = [ - "turkish" - ]; - var fosil = [ - "turkish" - ]; - var fren = [ - "turkish" - ]; - var fukara = [ - "turkish" - ]; - var futbol = [ - "turkish" - ]; - var garabet = [ - "turkish" - ]; - var gariban = [ - "turkish" - ]; - var gazi = [ - "turkish" - ]; - var gece = [ - "turkish" - ]; - var gedik = [ - "turkish" - ]; - var gelenek = [ - "turkish" - ]; - var gelin = [ - "turkish" - ]; - var gemi = [ - "turkish" - ]; - var geometri = [ - "turkish" - ]; - var gevrek = [ - "turkish" - ]; - var gezegen = [ - "turkish" - ]; - var gezgin = [ - "turkish" - ]; - var geziyolu = [ - "turkish" - ]; - var girdap = [ - "turkish" - ]; - var gitar = [ - "turkish" - ]; - var giyecek = [ - "turkish" - ]; - var giysi = [ - "turkish" - ]; - var gizem = [ - "turkish" - ]; - var gofret = [ - "turkish" - ]; - var goril = [ - "turkish" - ]; - var grup = [ - "turkish" - ]; - var gurbet = [ - "turkish" - ]; - var hacamat = [ - "turkish" - ]; - var hacim = [ - "turkish" - ]; - var hademe = [ - "turkish" - ]; - var hafriyat = [ - "turkish" - ]; - var hafta = [ - "turkish" - ]; - var hakan = [ - "turkish" - ]; - var hakem = [ - "turkish" - ]; - var hakikat = [ - "turkish" - ]; - var haksever = [ - "turkish" - ]; - var hane = [ - "turkish" - ]; - var hapis = [ - "turkish" - ]; - var harf = [ - "turkish" - ]; - var haseki = [ - "turkish" - ]; - var hasret = [ - "turkish" - ]; - var hatun = [ - "turkish" - ]; - var haylaz = [ - "turkish" - ]; - var haysiyet = [ - "turkish" - ]; - var hayvan = [ - "turkish" - ]; - var hedef = [ - "turkish" - ]; - var hemen = [ - "turkish" - ]; - var hemfikir = [ - "turkish" - ]; - var hendek = [ - "turkish" - ]; - var hepsi = [ - "turkish" - ]; - var hergele = [ - "turkish" - ]; - var herhangi = [ - "turkish" - ]; - var hesap = [ - "turkish" - ]; - var heyecan = [ - "turkish" - ]; - var heykel = [ - "turkish" - ]; - var hezimet = [ - "turkish" - ]; - var hicviye = [ - "turkish" - ]; - var hikaye = [ - "turkish" - ]; - var hikmet = [ - "turkish" - ]; - var hile = [ - "turkish" - ]; - var hisse = [ - "turkish" - ]; - var hobi = [ - "turkish" - ]; - var hoca = [ - "turkish" - ]; - var horlama = [ - "turkish" - ]; - var hoyrat = [ - "turkish" - ]; - var hudut = [ - "turkish" - ]; - var hukuk = [ - "turkish" - ]; - var hunhar = [ - "turkish" - ]; - var hurda = [ - "turkish" - ]; - var huysuz = [ - "turkish" - ]; - var huzur = [ - "turkish" - ]; - var ibadet = [ - "turkish" - ]; - var icat = [ - "turkish" - ]; - var idman = [ - "turkish" - ]; - var iftihar = [ - "turkish" - ]; - var ihanet = [ - "turkish" - ]; - var ihbar = [ - "turkish" - ]; - var ihdas = [ - "turkish" - ]; - var ihmal = [ - "turkish" - ]; - var ihracat = [ - "turkish" - ]; - var ihsan = [ - "turkish" - ]; - var ikilem = [ - "turkish" - ]; - var ikindi = [ - "turkish" - ]; - var ikircik = [ - "turkish" - ]; - var iklim = [ - "turkish" - ]; - var iksir = [ - "turkish" - ]; - var iktibas = [ - "turkish" - ]; - var ileri = [ - "turkish" - ]; - var ilgi = [ - "turkish" - ]; - var ilhak = [ - "turkish" - ]; - var ilkbahar = [ - "turkish" - ]; - var ilkokul = [ - "turkish" - ]; - var ilmek = [ - "turkish" - ]; - var imkan = [ - "turkish" - ]; - var imsak = [ - "turkish" - ]; - var imtihan = [ - "turkish" - ]; - var imza = [ - "turkish" - ]; - var ince = [ - "turkish" - ]; - var inkar = [ - "turkish" - ]; - var ipek = [ - "turkish" - ]; - var ipucu = [ - "turkish" - ]; - var irade = [ - "turkish" - ]; - var irfan = [ - "turkish" - ]; - var irmik = [ - "turkish" - ]; - var isabet = [ - "turkish" - ]; - var iskele = [ - "turkish" - ]; - var israf = [ - "turkish" - ]; - var isyan = [ - "turkish" - ]; - var itibar = [ - "turkish" - ]; - var itiraf = [ - "turkish" - ]; - var ivedi = [ - "turkish" - ]; - var ivme = [ - "turkish" - ]; - var iyimser = [ - "turkish" - ]; - var izbandut = [ - "turkish" - ]; - var izci = [ - "turkish" - ]; - var izdiham = [ - "turkish" - ]; - var izin = [ - "turkish" - ]; - var jakoben = [ - "turkish" - ]; - var jandarma = [ - "turkish" - ]; - var jargon = [ - "turkish" - ]; - var kablo = [ - "turkish" - ]; - var kabus = [ - "turkish" - ]; - var kadeh = [ - "turkish" - ]; - var kadraj = [ - "turkish" - ]; - var kafa = [ - "turkish" - ]; - var kafkas = [ - "turkish" - ]; - var kahkaha = [ - "turkish" - ]; - var kahraman = [ - "turkish" - ]; - var kale = [ - "turkish" - ]; - var kalibre = [ - "turkish" - ]; - var kalkan = [ - "turkish" - ]; - var kalpak = [ - "turkish" - ]; - var kamyon = [ - "turkish" - ]; - var kanat = [ - "turkish" - ]; - var kanepe = [ - "turkish" - ]; - var kanser = [ - "turkish" - ]; - var kanun = [ - "turkish" - ]; - var kaos = [ - "turkish" - ]; - var kaptan = [ - "turkish" - ]; - var karga = [ - "turkish" - ]; - var kask = [ - "turkish" - ]; - var kasvet = [ - "turkish" - ]; - var katman = [ - "turkish" - ]; - var kavram = [ - "turkish" - ]; - var kaygan = [ - "turkish" - ]; - var kayyum = [ - "turkish" - ]; - var kedi = [ - "turkish" - ]; - var kehanet = [ - "turkish" - ]; - var kekik = [ - "turkish" - ]; - var kelebek = [ - "turkish" - ]; - var kenar = [ - "turkish" - ]; - var kerkenez = [ - "turkish" - ]; - var kesirli = [ - "turkish" - ]; - var kesmece = [ - "turkish" - ]; - var kestane = [ - "turkish" - ]; - var keyfiyet = [ - "turkish" - ]; - var kibar = [ - "turkish" - ]; - var kinaye = [ - "turkish" - ]; - var kira = [ - "turkish" - ]; - var kiremit = [ - "turkish" - ]; - var kirli = [ - "turkish" - ]; - var kirpik = [ - "turkish" - ]; - var kitap = [ - "turkish" - ]; - var kodaman = [ - "turkish" - ]; - var kokteyl = [ - "turkish" - ]; - var kolonya = [ - "turkish" - ]; - var koltuk = [ - "turkish" - ]; - var kolye = [ - "turkish" - ]; - var kombine = [ - "turkish" - ]; - var komedyen = [ - "turkish" - ]; - var komiser = [ - "turkish" - ]; - var komposto = [ - "turkish" - ]; - var komuta = [ - "turkish" - ]; - var konak = [ - "turkish" - ]; - var konfor = [ - "turkish" - ]; - var koni = [ - "turkish" - ]; - var kopya = [ - "turkish" - ]; - var korkusuz = [ - "turkish" - ]; - var korna = [ - "turkish" - ]; - var korse = [ - "turkish" - ]; - var korunak = [ - "turkish" - ]; - var korvet = [ - "turkish" - ]; - var koyu = [ - "turkish" - ]; - var kozmik = [ - "turkish" - ]; - var kravat = [ - "turkish" - ]; - var kriter = [ - "turkish" - ]; - var kuantum = [ - "turkish" - ]; - var kudurma = [ - "turkish" - ]; - var kumanya = [ - "turkish" - ]; - var kumbara = [ - "turkish" - ]; - var kumlu = [ - "turkish" - ]; - var kumpir = [ - "turkish" - ]; - var kumral = [ - "turkish" - ]; - var kundura = [ - "turkish" - ]; - var kupa = [ - "turkish" - ]; - var kupkuru = [ - "turkish" - ]; - var kuramsal = [ - "turkish" - ]; - var kurdele = [ - "turkish" - ]; - var kurgu = [ - "turkish" - ]; - var kurmay = [ - "turkish" - ]; - var kurultay = [ - "turkish" - ]; - var kurye = [ - "turkish" - ]; - var kusursuz = [ - "turkish" - ]; - var kutlama = [ - "turkish" - ]; - var kutsal = [ - "turkish" - ]; - var kutup = [ - "turkish" - ]; - var kuver = [ - "turkish" - ]; - var kuyruk = [ - "turkish" - ]; - var kuzey = [ - "turkish" - ]; - var kuzgun = [ - "turkish" - ]; - var lahana = [ - "turkish" - ]; - var lahmacun = [ - "turkish" - ]; - var lamba = [ - "turkish" - ]; - var lansman = [ - "turkish" - ]; - var levent = [ - "turkish" - ]; - var leziz = [ - "turkish" - ]; - var lezzet = [ - "turkish" - ]; - var lider = [ - "turkish" - ]; - var likide = [ - "turkish" - ]; - var liman = [ - "turkish" - ]; - var liste = [ - "turkish" - ]; - var litre = [ - "turkish" - ]; - var liyakat = [ - "turkish" - ]; - var lodos = [ - "turkish" - ]; - var lokanta = [ - "turkish" - ]; - var lokman = [ - "turkish" - ]; - var lokum = [ - "turkish" - ]; - var lunapark = [ - "turkish" - ]; - var nokta = [ - "turkish" - ]; - var mabet = [ - "turkish" - ]; - var macera = [ - "turkish" - ]; - var macun = [ - "turkish" - ]; - var madalya = [ - "turkish" - ]; - var madde = [ - "turkish" - ]; - var madem = [ - "turkish" - ]; - var mahalle = [ - "turkish" - ]; - var mahcup = [ - "turkish" - ]; - var mahir = [ - "turkish" - ]; - var mahkeme = [ - "turkish" - ]; - var mahlas = [ - "turkish" - ]; - var mahrum = [ - "turkish" - ]; - var mahsul = [ - "turkish" - ]; - var makas = [ - "turkish" - ]; - var makbuz = [ - "turkish" - ]; - var makine = [ - "turkish" - ]; - var makro = [ - "turkish" - ]; - var maksat = [ - "turkish" - ]; - var makul = [ - "turkish" - ]; - var maliye = [ - "turkish" - ]; - var manav = [ - "turkish" - ]; - var mangal = [ - "turkish" - ]; - var manidar = [ - "turkish" - ]; - var manken = [ - "turkish" - ]; - var manzara = [ - "turkish" - ]; - var margarin = [ - "turkish" - ]; - var marifet = [ - "turkish" - ]; - var marmelat = [ - "turkish" - ]; - var masmavi = [ - "turkish" - ]; - var masraf = [ - "turkish" - ]; - var masum = [ - "turkish" - ]; - var matah = [ - "turkish" - ]; - var materyal = [ - "turkish" - ]; - var matrak = [ - "turkish" - ]; - var maval = [ - "turkish" - ]; - var mavra = [ - "turkish" - ]; - var maydanoz = [ - "turkish" - ]; - var maytap = [ - "turkish" - ]; - var mazbata = [ - "turkish" - ]; - var mazeret = [ - "turkish" - ]; - var mazlum = [ - "turkish" - ]; - var mazot = [ - "turkish" - ]; - var mazur = [ - "turkish" - ]; - var mebus = [ - "turkish" - ]; - var mecaz = [ - "turkish" - ]; - var mecbur = [ - "turkish" - ]; - var meclis = [ - "turkish" - ]; - var mecmua = [ - "turkish" - ]; - var mecnun = [ - "turkish" - ]; - var medeni = [ - "turkish" - ]; - var mehtap = [ - "turkish" - ]; - var mekanik = [ - "turkish" - ]; - var melodi = [ - "turkish" - ]; - var meltem = [ - "turkish" - ]; - var memur = [ - "turkish" - ]; - var mendil = [ - "turkish" - ]; - var mercek = [ - "turkish" - ]; - var merdiven = [ - "turkish" - ]; - var merhaba = [ - "turkish" - ]; - var merinos = [ - "turkish" - ]; - var merkez = [ - "turkish" - ]; - var mermi = [ - "turkish" - ]; - var mert = [ - "turkish" - ]; - var mesafe = [ - "turkish" - ]; - var mesele = [ - "turkish" - ]; - var mesken = [ - "turkish" - ]; - var meslek = [ - "turkish" - ]; - var metafor = [ - "turkish" - ]; - var metin = [ - "turkish" - ]; - var metre = [ - "turkish" - ]; - var mevcut = [ - "turkish" - ]; - var meydan = [ - "turkish" - ]; - var meyil = [ - "turkish" - ]; - var meyve = [ - "turkish" - ]; - var meziyet = [ - "turkish" - ]; - var mezun = [ - "turkish" - ]; - var mihrak = [ - "turkish" - ]; - var miktar = [ - "turkish" - ]; - var milat = [ - "turkish" - ]; - var milli = [ - "turkish" - ]; - var mimar = [ - "turkish" - ]; - var minare = [ - "turkish" - ]; - var mineral = [ - "turkish" - ]; - var minik = [ - "turkish" - ]; - var minyon = [ - "turkish" - ]; - var mirliva = [ - "turkish" - ]; - var misafir = [ - "turkish" - ]; - var miskin = [ - "turkish" - ]; - var miting = [ - "turkish" - ]; - var miyop = [ - "turkish" - ]; - var mizah = [ - "turkish" - ]; - var mobilya = [ - "turkish" - ]; - var motive = [ - "turkish" - ]; - var mozaik = [ - "turkish" - ]; - var muavin = [ - "turkish" - ]; - var mucize = [ - "turkish" - ]; - var mukayese = [ - "turkish" - ]; - var mumya = [ - "turkish" - ]; - var musluk = [ - "turkish" - ]; - var mutfak = [ - "turkish" - ]; - var mutlu = [ - "turkish" - ]; - var muzaffer = [ - "turkish" - ]; - var muzdarip = [ - "turkish" - ]; - var nadas = [ - "turkish" - ]; - var nadir = [ - "turkish" - ]; - var nakarat = [ - "turkish" - ]; - var nalbur = [ - "turkish" - ]; - var namlu = [ - "turkish" - ]; - var namus = [ - "turkish" - ]; - var nargile = [ - "turkish" - ]; - var narkoz = [ - "turkish" - ]; - var nasip = [ - "turkish" - ]; - var naylon = [ - "turkish" - ]; - var nazar = [ - "turkish" - ]; - var nazik = [ - "turkish" - ]; - var neden = [ - "turkish" - ]; - var nefes = [ - "turkish" - ]; - var negatif = [ - "turkish" - ]; - var neon = [ - "turkish" - ]; - var nerede = [ - "turkish" - ]; - var nesil = [ - "turkish" - ]; - var nesnel = [ - "turkish" - ]; - var netice = [ - "turkish" - ]; - var nevresim = [ - "turkish" - ]; - var neyse = [ - "turkish" - ]; - var neyzen = [ - "turkish" - ]; - var nezaket = [ - "turkish" - ]; - var nezih = [ - "turkish" - ]; - var nezle = [ - "turkish" - ]; - var nicel = [ - "turkish" - ]; - var nimet = [ - "turkish" - ]; - var nisan = [ - "turkish" - ]; - var nispet = [ - "turkish" - ]; - var nitekim = [ - "turkish" - ]; - var nizam = [ - "turkish" - ]; - var nohut = [ - "turkish" - ]; - var noksan = [ - "turkish" - ]; - var nostalji = [ - "turkish" - ]; - var noter = [ - "turkish" - ]; - var numara = [ - "turkish" - ]; - var numune = [ - "turkish" - ]; - var nutuk = [ - "turkish" - ]; - var obez = [ - "turkish" - ]; - var obje = [ - "turkish" - ]; - var ocak = [ - "turkish" - ]; - var odun = [ - "turkish" - ]; - var ofansif = [ - "turkish" - ]; - var ofis = [ - "turkish" - ]; - var oklava = [ - "turkish" - ]; - var oksijen = [ - "turkish" - ]; - var okul = [ - "turkish" - ]; - var okutman = [ - "turkish" - ]; - var okuyucu = [ - "turkish" - ]; - var okyanus = [ - "turkish" - ]; - var olanak = [ - "turkish" - ]; - var olay = [ - "turkish" - ]; - var olgun = [ - "turkish" - ]; - var olimpik = [ - "turkish" - ]; - var olumlu = [ - "turkish" - ]; - var omlet = [ - "turkish" - ]; - var omurga = [ - "turkish" - ]; - var onursal = [ - "turkish" - ]; - var optik = [ - "turkish" - ]; - var ordu = [ - "turkish" - ]; - var organik = [ - "turkish" - ]; - var orijin = [ - "turkish" - ]; - var orkide = [ - "turkish" - ]; - var orman = [ - "turkish" - ]; - var orta = [ - "turkish" - ]; - var otantik = [ - "turkish" - ]; - var otel = [ - "turkish" - ]; - var otoban = [ - "turkish" - ]; - var otogar = [ - "turkish" - ]; - var otomobil = [ - "turkish" - ]; - var otonom = [ - "turkish" - ]; - var otopark = [ - "turkish" - ]; - var otorite = [ - "turkish" - ]; - var otoyol = [ - "turkish" - ]; - var oturum = [ - "turkish" - ]; - var oyuk = [ - "turkish" - ]; - var oyuncak = [ - "turkish" - ]; - var ozan = [ - "turkish" - ]; - var palamut = [ - "turkish" - ]; - var palmiye = [ - "turkish" - ]; - var palto = [ - "turkish" - ]; - var pamuk = [ - "turkish" - ]; - var pancar = [ - "turkish" - ]; - var panik = [ - "turkish" - ]; - var panjur = [ - "turkish" - ]; - var pankart = [ - "turkish" - ]; - var pano = [ - "turkish" - ]; - var pansuman = [ - "turkish" - ]; - var pantolon = [ - "turkish" - ]; - var panzehir = [ - "turkish" - ]; - var papatya = [ - "turkish" - ]; - var papyon = [ - "turkish" - ]; - var parkur = [ - "turkish" - ]; - var parmak = [ - "turkish" - ]; - var parodi = [ - "turkish" - ]; - var parsel = [ - "turkish" - ]; - var partner = [ - "turkish" - ]; - var pasaport = [ - "turkish" - ]; - var pasif = [ - "turkish" - ]; - var paskalya = [ - "turkish" - ]; - var patates = [ - "turkish" - ]; - var paten = [ - "turkish" - ]; - var patika = [ - "turkish" - ]; - var patolog = [ - "turkish" - ]; - var payanda = [ - "turkish" - ]; - var payidar = [ - "turkish" - ]; - var paytak = [ - "turkish" - ]; - var peder = [ - "turkish" - ]; - var pehlivan = [ - "turkish" - ]; - var pekala = [ - "turkish" - ]; - var pekmez = [ - "turkish" - ]; - var pelerin = [ - "turkish" - ]; - var pelikan = [ - "turkish" - ]; - var pembe = [ - "turkish" - ]; - var pencere = [ - "turkish" - ]; - var pense = [ - "turkish" - ]; - var perde = [ - "turkish" - ]; - var pergel = [ - "turkish" - ]; - var peron = [ - "turkish" - ]; - var personel = [ - "turkish" - ]; - var peruk = [ - "turkish" - ]; - var pervane = [ - "turkish" - ]; - var pespaye = [ - "turkish" - ]; - var pestil = [ - "turkish" - ]; - var petek = [ - "turkish" - ]; - var petrol = [ - "turkish" - ]; - var petunya = [ - "turkish" - ]; - var peynir = [ - "turkish" - ]; - var peyzaj = [ - "turkish" - ]; - var pide = [ - "turkish" - ]; - var pikap = [ - "turkish" - ]; - var pilav = [ - "turkish" - ]; - var pipet = [ - "turkish" - ]; - var pipo = [ - "turkish" - ]; - var piramit = [ - "turkish" - ]; - var pirzola = [ - "turkish" - ]; - var pist = [ - "turkish" - ]; - var piyasa = [ - "turkish" - ]; - var piyes = [ - "turkish" - ]; - var plaj = [ - "turkish" - ]; - var plaket = [ - "turkish" - ]; - var planlama = [ - "turkish" - ]; - var platform = [ - "turkish" - ]; - var plazma = [ - "turkish" - ]; - var podyum = [ - "turkish" - ]; - var polat = [ - "turkish" - ]; - var politika = [ - "turkish" - ]; - var porselen = [ - "turkish" - ]; - var portakal = [ - "turkish" - ]; - var poster = [ - "turkish" - ]; - var poyraz = [ - "turkish" - ]; - var pozitif = [ - "turkish" - ]; - var pranga = [ - "turkish" - ]; - var pratik = [ - "turkish" - ]; - var prenses = [ - "turkish" - ]; - var prim = [ - "turkish" - ]; - var profil = [ - "turkish" - ]; - var proje = [ - "turkish" - ]; - var protokol = [ - "turkish" - ]; - var puan = [ - "turkish" - ]; - var pudra = [ - "turkish" - ]; - var pusula = [ - "turkish" - ]; - var racon = [ - "turkish" - ]; - var radikal = [ - "turkish" - ]; - var radyo = [ - "turkish" - ]; - var rafadan = [ - "turkish" - ]; - var rafine = [ - "turkish" - ]; - var rahat = [ - "turkish" - ]; - var rahle = [ - "turkish" - ]; - var rakam = [ - "turkish" - ]; - var raket = [ - "turkish" - ]; - var rakip = [ - "turkish" - ]; - var rakun = [ - "turkish" - ]; - var ralli = [ - "turkish" - ]; - var randevu = [ - "turkish" - ]; - var ranza = [ - "turkish" - ]; - var rapor = [ - "turkish" - ]; - var rastgele = [ - "turkish" - ]; - var rasyonel = [ - "turkish" - ]; - var realite = [ - "turkish" - ]; - var refah = [ - "turkish" - ]; - var referans = [ - "turkish" - ]; - var refik = [ - "turkish" - ]; - var rehber = [ - "turkish" - ]; - var rehin = [ - "turkish" - ]; - var reis = [ - "turkish" - ]; - var rekabet = [ - "turkish" - ]; - var reklam = [ - "turkish" - ]; - var rekor = [ - "turkish" - ]; - var renk = [ - "turkish" - ]; - var resim = [ - "turkish" - ]; - var resmen = [ - "turkish" - ]; - var restoran = [ - "turkish" - ]; - var retorik = [ - "turkish" - ]; - var reyon = [ - "turkish" - ]; - var rezalet = [ - "turkish" - ]; - var rezerv = [ - "turkish" - ]; - var rezil = [ - "turkish" - ]; - var ritim = [ - "turkish" - ]; - var rivayet = [ - "turkish" - ]; - var roman = [ - "turkish" - ]; - var rozet = [ - "turkish" - ]; - var ruble = [ - "turkish" - ]; - var ruhban = [ - "turkish" - ]; - var ruhsat = [ - "turkish" - ]; - var rulet = [ - "turkish" - ]; - var runik = [ - "turkish" - ]; - var rutin = [ - "turkish" - ]; - var rutubet = [ - "turkish" - ]; - var sabah = [ - "turkish" - ]; - var sabit = [ - "turkish" - ]; - var sabun = [ - "turkish" - ]; - var sade = [ - "turkish" - ]; - var safahat = [ - "turkish" - ]; - var safdil = [ - "turkish" - ]; - var safkan = [ - "turkish" - ]; - var saha = [ - "turkish" - ]; - var sahiden = [ - "turkish" - ]; - var sahne = [ - "turkish" - ]; - var sakal = [ - "turkish" - ]; - var sakin = [ - "turkish" - ]; - var saklama = [ - "turkish" - ]; - var salamura = [ - "turkish" - ]; - var saltanat = [ - "turkish" - ]; - var sancak = [ - "turkish" - ]; - var sandalye = [ - "turkish" - ]; - var saniye = [ - "turkish" - ]; - var saray = [ - "turkish" - ]; - var savunma = [ - "turkish" - ]; - var saydam = [ - "turkish" - ]; - var sayfa = [ - "turkish" - ]; - var sebep = [ - "turkish" - ]; - var sedir = [ - "turkish" - ]; - var sedye = [ - "turkish" - ]; - var sefer = [ - "turkish" - ]; - var sehpa = [ - "turkish" - ]; - var sekizgen = [ - "turkish" - ]; - var selvi = [ - "turkish" - ]; - var semavi = [ - "turkish" - ]; - var sembol = [ - "turkish" - ]; - var seminer = [ - "turkish" - ]; - var senaryo = [ - "turkish" - ]; - var sendika = [ - "turkish" - ]; - var senkron = [ - "turkish" - ]; - var sentez = [ - "turkish" - ]; - var sepet = [ - "turkish" - ]; - var seramik = [ - "turkish" - ]; - var serbest = [ - "turkish" - ]; - var serdar = [ - "turkish" - ]; - var seremoni = [ - "turkish" - ]; - var sergi = [ - "turkish" - ]; - var serhat = [ - "turkish" - ]; - var serin = [ - "turkish" - ]; - var sermaye = [ - "turkish" - ]; - var sersem = [ - "turkish" - ]; - var sesli = [ - "turkish" - ]; - var sevap = [ - "turkish" - ]; - var seviye = [ - "turkish" - ]; - var seyahat = [ - "turkish" - ]; - var seyirci = [ - "turkish" - ]; - var sezon = [ - "turkish" - ]; - var siftah = [ - "turkish" - ]; - var sigorta = [ - "turkish" - ]; - var sihirbaz = [ - "turkish" - ]; - var silah = [ - "turkish" - ]; - var silecek = [ - "turkish" - ]; - var silindir = [ - "turkish" - ]; - var simetri = [ - "turkish" - ]; - var simge = [ - "turkish" - ]; - var simit = [ - "turkish" - ]; - var sincap = [ - "turkish" - ]; - var sindirim = [ - "turkish" - ]; - var sinema = [ - "turkish" - ]; - var sinirli = [ - "turkish" - ]; - var sirke = [ - "turkish" - ]; - var siroz = [ - "turkish" - ]; - var sistem = [ - "turkish" - ]; - var sivilce = [ - "turkish" - ]; - var siyasi = [ - "turkish" - ]; - var soba = [ - "turkish" - ]; - var sofra = [ - "turkish" - ]; - var sohbet = [ - "turkish" - ]; - var sokak = [ - "turkish" - ]; - var solfej = [ - "turkish" - ]; - var solunum = [ - "turkish" - ]; - var somut = [ - "turkish" - ]; - var sonbahar = [ - "turkish" - ]; - var sonraki = [ - "turkish" - ]; - var sonsuz = [ - "turkish" - ]; - var sorunsuz = [ - "turkish" - ]; - var sosyete = [ - "turkish" - ]; - var soygun = [ - "turkish" - ]; - var spatula = [ - "turkish" - ]; - var spektrum = [ - "turkish" - ]; - var spiker = [ - "turkish" - ]; - var sporcu = [ - "turkish" - ]; - var sprey = [ - "turkish" - ]; - var stabil = [ - "turkish" - ]; - var stok = [ - "turkish" - ]; - var stopaj = [ - "turkish" - ]; - var strateji = [ - "turkish" - ]; - var subay = [ - "turkish" - ]; - var sucuk = [ - "turkish" - ]; - var suhulet = [ - "turkish" - ]; - var sulama = [ - "turkish" - ]; - var sungur = [ - "turkish" - ]; - var sunucu = [ - "turkish" - ]; - var surat = [ - "turkish" - ]; - var susam = [ - "turkish" - ]; - var suskun = [ - "turkish" - ]; - var tabaka = [ - "turkish" - ]; - var tabure = [ - "turkish" - ]; - var tadilat = [ - "turkish" - ]; - var taharet = [ - "turkish" - ]; - var tahkim = [ - "turkish" - ]; - var tahlil = [ - "turkish" - ]; - var tahmin = [ - "turkish" - ]; - var tahrifat = [ - "turkish" - ]; - var tahsilat = [ - "turkish" - ]; - var tahta = [ - "turkish" - ]; - var taklit = [ - "turkish" - ]; - var takoz = [ - "turkish" - ]; - var taksici = [ - "turkish" - ]; - var taktik = [ - "turkish" - ]; - var takvim = [ - "turkish" - ]; - var talebe = [ - "turkish" - ]; - var talip = [ - "turkish" - ]; - var tamamen = [ - "turkish" - ]; - var tamirci = [ - "turkish" - ]; - var tanecik = [ - "turkish" - ]; - var tansiyon = [ - "turkish" - ]; - var tapan = [ - "turkish" - ]; - var taptaze = [ - "turkish" - ]; - var tapu = [ - "turkish" - ]; - var tarafgir = [ - "turkish" - ]; - var tarhana = [ - "turkish" - ]; - var tarih = [ - "turkish" - ]; - var tarla = [ - "turkish" - ]; - var tartak = [ - "turkish" - ]; - var tarumar = [ - "turkish" - ]; - var tasdik = [ - "turkish" - ]; - var taslak = [ - "turkish" - ]; - var tastamam = [ - "turkish" - ]; - var tatava = [ - "turkish" - ]; - var tatbikat = [ - "turkish" - ]; - var tatil = [ - "turkish" - ]; - var tavsiye = [ - "turkish" - ]; - var tavuk = [ - "turkish" - ]; - var taze = [ - "turkish" - ]; - var taziye = [ - "turkish" - ]; - var tazminat = [ - "turkish" - ]; - var tebrik = [ - "turkish" - ]; - var tedarik = [ - "turkish" - ]; - var tedbir = [ - "turkish" - ]; - var tehdit = [ - "turkish" - ]; - var tehlike = [ - "turkish" - ]; - var tekerlek = [ - "turkish" - ]; - var tekme = [ - "turkish" - ]; - var teknik = [ - "turkish" - ]; - var tekrar = [ - "turkish" - ]; - var telef = [ - "turkish" - ]; - var telsiz = [ - "turkish" - ]; - var telve = [ - "turkish" - ]; - var temas = [ - "turkish" - ]; - var tembel = [ - "turkish" - ]; - var temiz = [ - "turkish" - ]; - var temkin = [ - "turkish" - ]; - var temsilci = [ - "turkish" - ]; - var tendon = [ - "turkish" - ]; - var teneke = [ - "turkish" - ]; - var tenha = [ - "turkish" - ]; - var tenkit = [ - "turkish" - ]; - var tepki = [ - "turkish" - ]; - var terazi = [ - "turkish" - ]; - var terbiye = [ - "turkish" - ]; - var tercih = [ - "turkish" - ]; - var terfi = [ - "turkish" - ]; - var terim = [ - "turkish" - ]; - var terminal = [ - "turkish" - ]; - var tersane = [ - "turkish" - ]; - var tertip = [ - "turkish" - ]; - var tescil = [ - "turkish" - ]; - var tesir = [ - "turkish" - ]; - var teslimat = [ - "turkish" - ]; - var tespit = [ - "turkish" - ]; - var testere = [ - "turkish" - ]; - var teyze = [ - "turkish" - ]; - var tezgah = [ - "turkish" - ]; - var ticaret = [ - "turkish" - ]; - var tilki = [ - "turkish" - ]; - var tiryaki = [ - "turkish" - ]; - var tohum = [ - "turkish" - ]; - var tokat = [ - "turkish" - ]; - var tolere = [ - "turkish" - ]; - var tombak = [ - "turkish" - ]; - var tomurcuk = [ - "turkish" - ]; - var toplum = [ - "turkish" - ]; - var toprak = [ - "turkish" - ]; - var toptan = [ - "turkish" - ]; - var toraman = [ - "turkish" - ]; - var torpido = [ - "turkish" - ]; - var tortu = [ - "turkish" - ]; - var toynak = [ - "turkish" - ]; - var trafik = [ - "turkish" - ]; - var trajedi = [ - "turkish" - ]; - var tramvay = [ - "turkish" - ]; - var triko = [ - "turkish" - ]; - var tugay = [ - "turkish" - ]; - var tuhaf = [ - "turkish" - ]; - var tulumba = [ - "turkish" - ]; - var turan = [ - "turkish" - ]; - var turkuaz = [ - "turkish" - ]; - var turnusol = [ - "turkish" - ]; - var turuncu = [ - "turkish" - ]; - var tutanak = [ - "turkish" - ]; - var tutkal = [ - "turkish" - ]; - var tutsak = [ - "turkish" - ]; - var tutum = [ - "turkish" - ]; - var tuzlu = [ - "turkish" - ]; - var ucube = [ - "turkish" - ]; - var ucuz = [ - "turkish" - ]; - var ufuk = [ - "turkish" - ]; - var ukala = [ - "turkish" - ]; - var ulema = [ - "turkish" - ]; - var ulus = [ - "turkish" - ]; - var ulvi = [ - "turkish" - ]; - var umursama = [ - "turkish" - ]; - var umut = [ - "turkish" - ]; - var unutkan = [ - "turkish" - ]; - var uslu = [ - "turkish" - ]; - var ustura = [ - "turkish" - ]; - var usul = [ - "turkish" - ]; - var uydu = [ - "turkish" - ]; - var uygar = [ - "turkish" - ]; - var uygulama = [ - "turkish" - ]; - var uykusuz = [ - "turkish" - ]; - var uysal = [ - "turkish" - ]; - var uzay = [ - "turkish" - ]; - var uzman = [ - "turkish" - ]; - var uzun = [ - "turkish" - ]; - var vaka = [ - "turkish" - ]; - var vakfiye = [ - "turkish" - ]; - var vakit = [ - "turkish" - ]; - var vakum = [ - "turkish" - ]; - var vapur = [ - "turkish" - ]; - var varil = [ - "turkish" - ]; - var varyemez = [ - "turkish" - ]; - var vasiyet = [ - "turkish" - ]; - var vazife = [ - "turkish" - ]; - var vazo = [ - "turkish" - ]; - var veciz = [ - "turkish" - ]; - var vefa = [ - "turkish" - ]; - var vehim = [ - "turkish" - ]; - var veliaht = [ - "turkish" - ]; - var veresiye = [ - "turkish" - ]; - var verimli = [ - "turkish" - ]; - var vernik = [ - "turkish" - ]; - var vertigo = [ - "turkish" - ]; - var vesait = [ - "turkish" - ]; - var vesika = [ - "turkish" - ]; - var vestiyer = [ - "turkish" - ]; - var veznedar = [ - "turkish" - ]; - var vicdan = [ - "turkish" - ]; - var vilayet = [ - "turkish" - ]; - var virane = [ - "turkish" - ]; - var vites = [ - "turkish" - ]; - var vokal = [ - "turkish" - ]; - var volkan = [ - "turkish" - ]; - var vurma = [ - "turkish" - ]; - var vurucu = [ - "turkish" - ]; - var yabgu = [ - "turkish" - ]; - var yakamoz = [ - "turkish" - ]; - var yaman = [ - "turkish" - ]; - var yapay = [ - "turkish" - ]; - var yapboz = [ - "turkish" - ]; - var yaprak = [ - "turkish" - ]; - var yarbay = [ - "turkish" - ]; - var yasemin = [ - "turkish" - ]; - var yatak = [ - "turkish" - ]; - var yavru = [ - "turkish" - ]; - var yaygara = [ - "turkish" - ]; - var yayla = [ - "turkish" - ]; - var yekpare = [ - "turkish" - ]; - var yelkovan = [ - "turkish" - ]; - var yelpaze = [ - "turkish" - ]; - var yemek = [ - "turkish" - ]; - var yetenek = [ - "turkish" - ]; - var yetkili = [ - "turkish" - ]; - var yolcu = [ - "turkish" - ]; - var yolkesen = [ - "turkish" - ]; - var yordam = [ - "turkish" - ]; - var yorgan = [ - "turkish" - ]; - var yorumcu = [ - "turkish" - ]; - var yosun = [ - "turkish" - ]; - var yufka = [ - "turkish" - ]; - var yumruk = [ - "turkish" - ]; - var yumurta = [ - "turkish" - ]; - var yuvarlak = [ - "turkish" - ]; - var zafer = [ - "turkish" - ]; - var zahmet = [ - "turkish" - ]; - var zambak = [ - "turkish" - ]; - var zaptiye = [ - "turkish" - ]; - var zarafet = [ - "turkish" - ]; - var zaruret = [ - "turkish" - ]; - var zeka = [ - "turkish" - ]; - var zekice = [ - "turkish" - ]; - var zemberek = [ - "turkish" - ]; - var zemin = [ - "turkish" - ]; - var zencefil = [ - "turkish" - ]; - var zeplin = [ - "turkish" - ]; - var zeytin = [ - "turkish" - ]; - var zigon = [ - "turkish" - ]; - var zihinsel = [ - "turkish" - ]; - var zihniyet = [ - "turkish" - ]; - var zincir = [ - "turkish" - ]; - var zindan = [ - "turkish" - ]; - var zirzop = [ - "turkish" - ]; - var ziyaret = [ - "turkish" - ]; - var ziynet = [ - "turkish" - ]; - var zoraki = [ - "turkish" - ]; - var zorlu = [ - "turkish" - ]; - var zorunlu = [ - "turkish" - ]; - var require$$0$2 = { - "的": [ - "chinese_simplified", - "chinese_traditional" - ], - "一": [ - "chinese_simplified", - "chinese_traditional" - ], - "是": [ - "chinese_simplified", - "chinese_traditional" - ], - "在": [ - "chinese_simplified", - "chinese_traditional" - ], - "不": [ - "chinese_simplified", - "chinese_traditional" - ], - "了": [ - "chinese_simplified", - "chinese_traditional" - ], - "有": [ - "chinese_simplified", - "chinese_traditional" - ], - "和": [ - "chinese_simplified", - "chinese_traditional" - ], - "人": [ - "chinese_simplified", - "chinese_traditional" - ], - "这": [ - "chinese_simplified" - ], - "中": [ - "chinese_simplified", - "chinese_traditional" - ], - "大": [ - "chinese_simplified", - "chinese_traditional" - ], - "为": [ - "chinese_simplified" - ], - "上": [ - "chinese_simplified", - "chinese_traditional" - ], - "个": [ - "chinese_simplified" - ], - "国": [ - "chinese_simplified" - ], - "我": [ - "chinese_simplified", - "chinese_traditional" - ], - "以": [ - "chinese_simplified", - "chinese_traditional" - ], - "要": [ - "chinese_simplified", - "chinese_traditional" - ], - "他": [ - "chinese_simplified", - "chinese_traditional" - ], - "时": [ - "chinese_simplified" - ], - "来": [ - "chinese_simplified" - ], - "用": [ - "chinese_simplified", - "chinese_traditional" - ], - "们": [ - "chinese_simplified" - ], - "生": [ - "chinese_simplified", - "chinese_traditional" - ], - "到": [ - "chinese_simplified", - "chinese_traditional" - ], - "作": [ - "chinese_simplified", - "chinese_traditional" - ], - "地": [ - "chinese_simplified", - "chinese_traditional" - ], - "于": [ - "chinese_simplified" - ], - "出": [ - "chinese_simplified", - "chinese_traditional" - ], - "就": [ - "chinese_simplified", - "chinese_traditional" - ], - "分": [ - "chinese_simplified", - "chinese_traditional" - ], - "对": [ - "chinese_simplified" - ], - "成": [ - "chinese_simplified", - "chinese_traditional" - ], - "会": [ - "chinese_simplified" - ], - "可": [ - "chinese_simplified", - "chinese_traditional" - ], - "主": [ - "chinese_simplified", - "chinese_traditional" - ], - "发": [ - "chinese_simplified" - ], - "年": [ - "chinese_simplified", - "chinese_traditional" - ], - "动": [ - "chinese_simplified" - ], - "同": [ - "chinese_simplified", - "chinese_traditional" - ], - "工": [ - "chinese_simplified", - "chinese_traditional" - ], - "也": [ - "chinese_simplified", - "chinese_traditional" - ], - "能": [ - "chinese_simplified", - "chinese_traditional" - ], - "下": [ - "chinese_simplified", - "chinese_traditional" - ], - "过": [ - "chinese_simplified" - ], - "子": [ - "chinese_simplified", - "chinese_traditional" - ], - "说": [ - "chinese_simplified" - ], - "产": [ - "chinese_simplified" - ], - "种": [ - "chinese_simplified" - ], - "面": [ - "chinese_simplified", - "chinese_traditional" - ], - "而": [ - "chinese_simplified", - "chinese_traditional" - ], - "方": [ - "chinese_simplified", - "chinese_traditional" - ], - "后": [ - "chinese_simplified" - ], - "多": [ - "chinese_simplified", - "chinese_traditional" - ], - "定": [ - "chinese_simplified", - "chinese_traditional" - ], - "行": [ - "chinese_simplified", - "chinese_traditional" - ], - "学": [ - "chinese_simplified" - ], - "法": [ - "chinese_simplified", - "chinese_traditional" - ], - "所": [ - "chinese_simplified", - "chinese_traditional" - ], - "民": [ - "chinese_simplified", - "chinese_traditional" - ], - "得": [ - "chinese_simplified", - "chinese_traditional" - ], - "经": [ - "chinese_simplified" - ], - "十": [ - "chinese_simplified", - "chinese_traditional" - ], - "三": [ - "chinese_simplified", - "chinese_traditional" - ], - "之": [ - "chinese_simplified", - "chinese_traditional" - ], - "进": [ - "chinese_simplified" - ], - "着": [ - "chinese_simplified" - ], - "等": [ - "chinese_simplified", - "chinese_traditional" - ], - "部": [ - "chinese_simplified", - "chinese_traditional" - ], - "度": [ - "chinese_simplified", - "chinese_traditional" - ], - "家": [ - "chinese_simplified", - "chinese_traditional" - ], - "电": [ - "chinese_simplified" - ], - "力": [ - "chinese_simplified", - "chinese_traditional" - ], - "里": [ - "chinese_simplified" - ], - "如": [ - "chinese_simplified", - "chinese_traditional" - ], - "水": [ - "chinese_simplified", - "chinese_traditional" - ], - "化": [ - "chinese_simplified", - "chinese_traditional" - ], - "高": [ - "chinese_simplified", - "chinese_traditional" - ], - "自": [ - "chinese_simplified", - "chinese_traditional" - ], - "二": [ - "chinese_simplified", - "chinese_traditional" - ], - "理": [ - "chinese_simplified", - "chinese_traditional" - ], - "起": [ - "chinese_simplified", - "chinese_traditional" - ], - "小": [ - "chinese_simplified", - "chinese_traditional" - ], - "物": [ - "chinese_simplified", - "chinese_traditional" - ], - "现": [ - "chinese_simplified" - ], - "实": [ - "chinese_simplified" - ], - "加": [ - "chinese_simplified", - "chinese_traditional" - ], - "量": [ - "chinese_simplified", - "chinese_traditional" - ], - "都": [ - "chinese_simplified", - "chinese_traditional" - ], - "两": [ - "chinese_simplified" - ], - "体": [ - "chinese_simplified" - ], - "制": [ - "chinese_simplified", - "chinese_traditional" - ], - "机": [ - "chinese_simplified" - ], - "当": [ - "chinese_simplified" - ], - "使": [ - "chinese_simplified", - "chinese_traditional" - ], - "点": [ - "chinese_simplified" - ], - "从": [ - "chinese_simplified" - ], - "业": [ - "chinese_simplified" - ], - "本": [ - "chinese_simplified", - "chinese_traditional" - ], - "去": [ - "chinese_simplified", - "chinese_traditional" - ], - "把": [ - "chinese_simplified", - "chinese_traditional" - ], - "性": [ - "chinese_simplified", - "chinese_traditional" - ], - "好": [ - "chinese_simplified", - "chinese_traditional" - ], - "应": [ - "chinese_simplified" - ], - "开": [ - "chinese_simplified" - ], - "它": [ - "chinese_simplified", - "chinese_traditional" - ], - "合": [ - "chinese_simplified", - "chinese_traditional" - ], - "还": [ - "chinese_simplified" - ], - "因": [ - "chinese_simplified", - "chinese_traditional" - ], - "由": [ - "chinese_simplified", - "chinese_traditional" - ], - "其": [ - "chinese_simplified", - "chinese_traditional" - ], - "些": [ - "chinese_simplified", - "chinese_traditional" - ], - "然": [ - "chinese_simplified", - "chinese_traditional" - ], - "前": [ - "chinese_simplified", - "chinese_traditional" - ], - "外": [ - "chinese_simplified", - "chinese_traditional" - ], - "天": [ - "chinese_simplified", - "chinese_traditional" - ], - "政": [ - "chinese_simplified", - "chinese_traditional" - ], - "四": [ - "chinese_simplified", - "chinese_traditional" - ], - "日": [ - "chinese_simplified", - "chinese_traditional" - ], - "那": [ - "chinese_simplified", - "chinese_traditional" - ], - "社": [ - "chinese_simplified", - "chinese_traditional" - ], - "义": [ - "chinese_simplified" - ], - "事": [ - "chinese_simplified", - "chinese_traditional" - ], - "平": [ - "chinese_simplified", - "chinese_traditional" - ], - "形": [ - "chinese_simplified", - "chinese_traditional" - ], - "相": [ - "chinese_simplified", - "chinese_traditional" - ], - "全": [ - "chinese_simplified", - "chinese_traditional" - ], - "表": [ - "chinese_simplified", - "chinese_traditional" - ], - "间": [ - "chinese_simplified" - ], - "样": [ - "chinese_simplified" - ], - "与": [ - "chinese_simplified" - ], - "关": [ - "chinese_simplified" - ], - "各": [ - "chinese_simplified", - "chinese_traditional" - ], - "重": [ - "chinese_simplified", - "chinese_traditional" - ], - "新": [ - "chinese_simplified", - "chinese_traditional" - ], - "线": [ - "chinese_simplified" - ], - "内": [ - "chinese_simplified" - ], - "数": [ - "chinese_simplified" - ], - "正": [ - "chinese_simplified", - "chinese_traditional" - ], - "心": [ - "chinese_simplified", - "chinese_traditional" - ], - "反": [ - "chinese_simplified", - "chinese_traditional" - ], - "你": [ - "chinese_simplified", - "chinese_traditional" - ], - "明": [ - "chinese_simplified", - "chinese_traditional" - ], - "看": [ - "chinese_simplified", - "chinese_traditional" - ], - "原": [ - "chinese_simplified", - "chinese_traditional" - ], - "又": [ - "chinese_simplified", - "chinese_traditional" - ], - "么": [ - "chinese_simplified" - ], - "利": [ - "chinese_simplified", - "chinese_traditional" - ], - "比": [ - "chinese_simplified", - "chinese_traditional" - ], - "或": [ - "chinese_simplified", - "chinese_traditional" - ], - "但": [ - "chinese_simplified", - "chinese_traditional" - ], - "质": [ - "chinese_simplified" - ], - "气": [ - "chinese_simplified" - ], - "第": [ - "chinese_simplified", - "chinese_traditional" - ], - "向": [ - "chinese_simplified", - "chinese_traditional" - ], - "道": [ - "chinese_simplified", - "chinese_traditional" - ], - "命": [ - "chinese_simplified", - "chinese_traditional" - ], - "此": [ - "chinese_simplified", - "chinese_traditional" - ], - "变": [ - "chinese_simplified" - ], - "条": [ - "chinese_simplified" - ], - "只": [ - "chinese_simplified", - "chinese_traditional" - ], - "没": [ - "chinese_simplified" - ], - "结": [ - "chinese_simplified" - ], - "解": [ - "chinese_simplified", - "chinese_traditional" - ], - "问": [ - "chinese_simplified" - ], - "意": [ - "chinese_simplified", - "chinese_traditional" - ], - "建": [ - "chinese_simplified", - "chinese_traditional" - ], - "月": [ - "chinese_simplified", - "chinese_traditional" - ], - "公": [ - "chinese_simplified", - "chinese_traditional" - ], - "无": [ - "chinese_simplified" - ], - "系": [ - "chinese_simplified", - "chinese_traditional" - ], - "军": [ - "chinese_simplified" - ], - "很": [ - "chinese_simplified", - "chinese_traditional" - ], - "情": [ - "chinese_simplified", - "chinese_traditional" - ], - "者": [ - "chinese_simplified", - "chinese_traditional" - ], - "最": [ - "chinese_simplified", - "chinese_traditional" - ], - "立": [ - "chinese_simplified", - "chinese_traditional" - ], - "代": [ - "chinese_simplified", - "chinese_traditional" - ], - "想": [ - "chinese_simplified", - "chinese_traditional" - ], - "已": [ - "chinese_simplified", - "chinese_traditional" - ], - "通": [ - "chinese_simplified", - "chinese_traditional" - ], - "并": [ - "chinese_simplified" - ], - "提": [ - "chinese_simplified", - "chinese_traditional" - ], - "直": [ - "chinese_simplified", - "chinese_traditional" - ], - "题": [ - "chinese_simplified" - ], - "党": [ - "chinese_simplified" - ], - "程": [ - "chinese_simplified", - "chinese_traditional" - ], - "展": [ - "chinese_simplified", - "chinese_traditional" - ], - "五": [ - "chinese_simplified", - "chinese_traditional" - ], - "果": [ - "chinese_simplified", - "chinese_traditional" - ], - "料": [ - "chinese_simplified", - "chinese_traditional" - ], - "象": [ - "chinese_simplified", - "chinese_traditional" - ], - "员": [ - "chinese_simplified" - ], - "革": [ - "chinese_simplified", - "chinese_traditional" - ], - "位": [ - "chinese_simplified", - "chinese_traditional" - ], - "入": [ - "chinese_simplified", - "chinese_traditional" - ], - "常": [ - "chinese_simplified", - "chinese_traditional" - ], - "文": [ - "chinese_simplified", - "chinese_traditional" - ], - "总": [ - "chinese_simplified" - ], - "次": [ - "chinese_simplified", - "chinese_traditional" - ], - "品": [ - "chinese_simplified", - "chinese_traditional" - ], - "式": [ - "chinese_simplified", - "chinese_traditional" - ], - "活": [ - "chinese_simplified", - "chinese_traditional" - ], - "设": [ - "chinese_simplified" - ], - "及": [ - "chinese_simplified", - "chinese_traditional" - ], - "管": [ - "chinese_simplified", - "chinese_traditional" - ], - "特": [ - "chinese_simplified", - "chinese_traditional" - ], - "件": [ - "chinese_simplified", - "chinese_traditional" - ], - "长": [ - "chinese_simplified" - ], - "求": [ - "chinese_simplified", - "chinese_traditional" - ], - "老": [ - "chinese_simplified", - "chinese_traditional" - ], - "头": [ - "chinese_simplified" - ], - "基": [ - "chinese_simplified", - "chinese_traditional" - ], - "资": [ - "chinese_simplified" - ], - "边": [ - "chinese_simplified" - ], - "流": [ - "chinese_simplified", - "chinese_traditional" - ], - "路": [ - "chinese_simplified", - "chinese_traditional" - ], - "级": [ - "chinese_simplified" - ], - "少": [ - "chinese_simplified", - "chinese_traditional" - ], - "图": [ - "chinese_simplified" - ], - "山": [ - "chinese_simplified", - "chinese_traditional" - ], - "统": [ - "chinese_simplified" - ], - "接": [ - "chinese_simplified", - "chinese_traditional" - ], - "知": [ - "chinese_simplified", - "chinese_traditional" - ], - "较": [ - "chinese_simplified" - ], - "将": [ - "chinese_simplified" - ], - "组": [ - "chinese_simplified" - ], - "见": [ - "chinese_simplified" - ], - "计": [ - "chinese_simplified" - ], - "别": [ - "chinese_simplified" - ], - "她": [ - "chinese_simplified", - "chinese_traditional" - ], - "手": [ - "chinese_simplified", - "chinese_traditional" - ], - "角": [ - "chinese_simplified", - "chinese_traditional" - ], - "期": [ - "chinese_simplified", - "chinese_traditional" - ], - "根": [ - "chinese_simplified", - "chinese_traditional" - ], - "论": [ - "chinese_simplified" - ], - "运": [ - "chinese_simplified" - ], - "农": [ - "chinese_simplified" - ], - "指": [ - "chinese_simplified", - "chinese_traditional" - ], - "几": [ - "chinese_simplified" - ], - "九": [ - "chinese_simplified", - "chinese_traditional" - ], - "区": [ - "chinese_simplified" - ], - "强": [ - "chinese_simplified" - ], - "放": [ - "chinese_simplified", - "chinese_traditional" - ], - "决": [ - "chinese_simplified" - ], - "西": [ - "chinese_simplified", - "chinese_traditional" - ], - "被": [ - "chinese_simplified", - "chinese_traditional" - ], - "干": [ - "chinese_simplified" - ], - "做": [ - "chinese_simplified", - "chinese_traditional" - ], - "必": [ - "chinese_simplified", - "chinese_traditional" - ], - "战": [ - "chinese_simplified" - ], - "先": [ - "chinese_simplified", - "chinese_traditional" - ], - "回": [ - "chinese_simplified", - "chinese_traditional" - ], - "则": [ - "chinese_simplified" - ], - "任": [ - "chinese_simplified", - "chinese_traditional" - ], - "取": [ - "chinese_simplified", - "chinese_traditional" - ], - "据": [ - "chinese_simplified" - ], - "处": [ - "chinese_simplified" - ], - "队": [ - "chinese_simplified" - ], - "南": [ - "chinese_simplified", - "chinese_traditional" - ], - "给": [ - "chinese_simplified" - ], - "色": [ - "chinese_simplified", - "chinese_traditional" - ], - "光": [ - "chinese_simplified", - "chinese_traditional" - ], - "门": [ - "chinese_simplified" - ], - "即": [ - "chinese_simplified", - "chinese_traditional" - ], - "保": [ - "chinese_simplified", - "chinese_traditional" - ], - "治": [ - "chinese_simplified", - "chinese_traditional" - ], - "北": [ - "chinese_simplified", - "chinese_traditional" - ], - "造": [ - "chinese_simplified", - "chinese_traditional" - ], - "百": [ - "chinese_simplified", - "chinese_traditional" - ], - "规": [ - "chinese_simplified" - ], - "热": [ - "chinese_simplified" - ], - "领": [ - "chinese_simplified" - ], - "七": [ - "chinese_simplified", - "chinese_traditional" - ], - "海": [ - "chinese_simplified", - "chinese_traditional" - ], - "口": [ - "chinese_simplified", - "chinese_traditional" - ], - "东": [ - "chinese_simplified" - ], - "导": [ - "chinese_simplified" - ], - "器": [ - "chinese_simplified", - "chinese_traditional" - ], - "压": [ - "chinese_simplified" - ], - "志": [ - "chinese_simplified", - "chinese_traditional" - ], - "世": [ - "chinese_simplified", - "chinese_traditional" - ], - "金": [ - "chinese_simplified", - "chinese_traditional" - ], - "增": [ - "chinese_simplified", - "chinese_traditional" - ], - "争": [ - "chinese_simplified" - ], - "济": [ - "chinese_simplified" - ], - "阶": [ - "chinese_simplified" - ], - "油": [ - "chinese_simplified", - "chinese_traditional" - ], - "思": [ - "chinese_simplified", - "chinese_traditional" - ], - "术": [ - "chinese_simplified" - ], - "极": [ - "chinese_simplified" - ], - "交": [ - "chinese_simplified", - "chinese_traditional" - ], - "受": [ - "chinese_simplified", - "chinese_traditional" - ], - "联": [ - "chinese_simplified" - ], - "什": [ - "chinese_simplified", - "chinese_traditional" - ], - "认": [ - "chinese_simplified" - ], - "六": [ - "chinese_simplified", - "chinese_traditional" - ], - "共": [ - "chinese_simplified", - "chinese_traditional" - ], - "权": [ - "chinese_simplified" - ], - "收": [ - "chinese_simplified", - "chinese_traditional" - ], - "证": [ - "chinese_simplified" - ], - "改": [ - "chinese_simplified", - "chinese_traditional" - ], - "清": [ - "chinese_simplified", - "chinese_traditional" - ], - "美": [ - "chinese_simplified", - "chinese_traditional" - ], - "再": [ - "chinese_simplified", - "chinese_traditional" - ], - "采": [ - "chinese_simplified" - ], - "转": [ - "chinese_simplified" - ], - "更": [ - "chinese_simplified", - "chinese_traditional" - ], - "单": [ - "chinese_simplified" - ], - "风": [ - "chinese_simplified" - ], - "切": [ - "chinese_simplified", - "chinese_traditional" - ], - "打": [ - "chinese_simplified", - "chinese_traditional" - ], - "白": [ - "chinese_simplified", - "chinese_traditional" - ], - "教": [ - "chinese_simplified", - "chinese_traditional" - ], - "速": [ - "chinese_simplified", - "chinese_traditional" - ], - "花": [ - "chinese_simplified", - "chinese_traditional" - ], - "带": [ - "chinese_simplified" - ], - "安": [ - "chinese_simplified", - "chinese_traditional" - ], - "场": [ - "chinese_simplified" - ], - "身": [ - "chinese_simplified", - "chinese_traditional" - ], - "车": [ - "chinese_simplified" - ], - "例": [ - "chinese_simplified", - "chinese_traditional" - ], - "真": [ - "chinese_simplified", - "chinese_traditional" - ], - "务": [ - "chinese_simplified" - ], - "具": [ - "chinese_simplified", - "chinese_traditional" - ], - "万": [ - "chinese_simplified" - ], - "每": [ - "chinese_simplified", - "chinese_traditional" - ], - "目": [ - "chinese_simplified", - "chinese_traditional" - ], - "至": [ - "chinese_simplified", - "chinese_traditional" - ], - "达": [ - "chinese_simplified" - ], - "走": [ - "chinese_simplified", - "chinese_traditional" - ], - "积": [ - "chinese_simplified" - ], - "示": [ - "chinese_simplified", - "chinese_traditional" - ], - "议": [ - "chinese_simplified" - ], - "声": [ - "chinese_simplified" - ], - "报": [ - "chinese_simplified" - ], - "斗": [ - "chinese_simplified" - ], - "完": [ - "chinese_simplified", - "chinese_traditional" - ], - "类": [ - "chinese_simplified" - ], - "八": [ - "chinese_simplified", - "chinese_traditional" - ], - "离": [ - "chinese_simplified" - ], - "华": [ - "chinese_simplified" - ], - "名": [ - "chinese_simplified", - "chinese_traditional" - ], - "确": [ - "chinese_simplified" - ], - "才": [ - "chinese_simplified", - "chinese_traditional" - ], - "科": [ - "chinese_simplified", - "chinese_traditional" - ], - "张": [ - "chinese_simplified" - ], - "信": [ - "chinese_simplified", - "chinese_traditional" - ], - "马": [ - "chinese_simplified" - ], - "节": [ - "chinese_simplified" - ], - "话": [ - "chinese_simplified" - ], - "米": [ - "chinese_simplified", - "chinese_traditional" - ], - "整": [ - "chinese_simplified", - "chinese_traditional" - ], - "空": [ - "chinese_simplified", - "chinese_traditional" - ], - "元": [ - "chinese_simplified", - "chinese_traditional" - ], - "况": [ - "chinese_simplified" - ], - "今": [ - "chinese_simplified", - "chinese_traditional" - ], - "集": [ - "chinese_simplified", - "chinese_traditional" - ], - "温": [ - "chinese_simplified" - ], - "传": [ - "chinese_simplified" - ], - "土": [ - "chinese_simplified", - "chinese_traditional" - ], - "许": [ - "chinese_simplified" - ], - "步": [ - "chinese_simplified", - "chinese_traditional" - ], - "群": [ - "chinese_simplified", - "chinese_traditional" - ], - "广": [ - "chinese_simplified" - ], - "石": [ - "chinese_simplified", - "chinese_traditional" - ], - "记": [ - "chinese_simplified" - ], - "需": [ - "chinese_simplified", - "chinese_traditional" - ], - "段": [ - "chinese_simplified", - "chinese_traditional" - ], - "研": [ - "chinese_simplified", - "chinese_traditional" - ], - "界": [ - "chinese_simplified", - "chinese_traditional" - ], - "拉": [ - "chinese_simplified", - "chinese_traditional" - ], - "林": [ - "chinese_simplified", - "chinese_traditional" - ], - "律": [ - "chinese_simplified", - "chinese_traditional" - ], - "叫": [ - "chinese_simplified", - "chinese_traditional" - ], - "且": [ - "chinese_simplified", - "chinese_traditional" - ], - "究": [ - "chinese_simplified", - "chinese_traditional" - ], - "观": [ - "chinese_simplified" - ], - "越": [ - "chinese_simplified", - "chinese_traditional" - ], - "织": [ - "chinese_simplified" - ], - "装": [ - "chinese_simplified" - ], - "影": [ - "chinese_simplified", - "chinese_traditional" - ], - "算": [ - "chinese_simplified", - "chinese_traditional" - ], - "低": [ - "chinese_simplified", - "chinese_traditional" - ], - "持": [ - "chinese_simplified", - "chinese_traditional" - ], - "音": [ - "chinese_simplified", - "chinese_traditional" - ], - "众": [ - "chinese_simplified" - ], - "书": [ - "chinese_simplified" - ], - "布": [ - "chinese_simplified", - "chinese_traditional" - ], - "复": [ - "chinese_simplified", - "chinese_traditional" - ], - "容": [ - "chinese_simplified", - "chinese_traditional" - ], - "儿": [ - "chinese_simplified" - ], - "须": [ - "chinese_simplified" - ], - "际": [ - "chinese_simplified" - ], - "商": [ - "chinese_simplified", - "chinese_traditional" - ], - "非": [ - "chinese_simplified", - "chinese_traditional" - ], - "验": [ - "chinese_simplified" - ], - "连": [ - "chinese_simplified" - ], - "断": [ - "chinese_simplified" - ], - "深": [ - "chinese_simplified", - "chinese_traditional" - ], - "难": [ - "chinese_simplified" - ], - "近": [ - "chinese_simplified", - "chinese_traditional" - ], - "矿": [ - "chinese_simplified" - ], - "千": [ - "chinese_simplified", - "chinese_traditional" - ], - "周": [ - "chinese_simplified" - ], - "委": [ - "chinese_simplified", - "chinese_traditional" - ], - "素": [ - "chinese_simplified", - "chinese_traditional" - ], - "技": [ - "chinese_simplified", - "chinese_traditional" - ], - "备": [ - "chinese_simplified" - ], - "半": [ - "chinese_simplified", - "chinese_traditional" - ], - "办": [ - "chinese_simplified" - ], - "青": [ - "chinese_simplified", - "chinese_traditional" - ], - "省": [ - "chinese_simplified", - "chinese_traditional" - ], - "列": [ - "chinese_simplified", - "chinese_traditional" - ], - "习": [ - "chinese_simplified" - ], - "响": [ - "chinese_simplified" - ], - "约": [ - "chinese_simplified" - ], - "支": [ - "chinese_simplified", - "chinese_traditional" - ], - "般": [ - "chinese_simplified", - "chinese_traditional" - ], - "史": [ - "chinese_simplified", - "chinese_traditional" - ], - "感": [ - "chinese_simplified", - "chinese_traditional" - ], - "劳": [ - "chinese_simplified" - ], - "便": [ - "chinese_simplified", - "chinese_traditional" - ], - "团": [ - "chinese_simplified" - ], - "往": [ - "chinese_simplified", - "chinese_traditional" - ], - "酸": [ - "chinese_simplified", - "chinese_traditional" - ], - "历": [ - "chinese_simplified" - ], - "市": [ - "chinese_simplified", - "chinese_traditional" - ], - "克": [ - "chinese_simplified", - "chinese_traditional" - ], - "何": [ - "chinese_simplified", - "chinese_traditional" - ], - "除": [ - "chinese_simplified", - "chinese_traditional" - ], - "消": [ - "chinese_simplified", - "chinese_traditional" - ], - "构": [ - "chinese_simplified" - ], - "府": [ - "chinese_simplified", - "chinese_traditional" - ], - "称": [ - "chinese_simplified" - ], - "太": [ - "chinese_simplified", - "chinese_traditional" - ], - "准": [ - "chinese_simplified" - ], - "精": [ - "chinese_simplified", - "chinese_traditional" - ], - "值": [ - "chinese_simplified", - "chinese_traditional" - ], - "号": [ - "chinese_simplified" - ], - "率": [ - "chinese_simplified", - "chinese_traditional" - ], - "族": [ - "chinese_simplified", - "chinese_traditional" - ], - "维": [ - "chinese_simplified" - ], - "划": [ - "chinese_simplified" - ], - "选": [ - "chinese_simplified" - ], - "标": [ - "chinese_simplified" - ], - "写": [ - "chinese_simplified" - ], - "存": [ - "chinese_simplified", - "chinese_traditional" - ], - "候": [ - "chinese_simplified", - "chinese_traditional" - ], - "毛": [ - "chinese_simplified", - "chinese_traditional" - ], - "亲": [ - "chinese_simplified" - ], - "快": [ - "chinese_simplified", - "chinese_traditional" - ], - "效": [ - "chinese_simplified", - "chinese_traditional" - ], - "斯": [ - "chinese_simplified", - "chinese_traditional" - ], - "院": [ - "chinese_simplified", - "chinese_traditional" - ], - "查": [ - "chinese_simplified", - "chinese_traditional" - ], - "江": [ - "chinese_simplified", - "chinese_traditional" - ], - "型": [ - "chinese_simplified", - "chinese_traditional" - ], - "眼": [ - "chinese_simplified", - "chinese_traditional" - ], - "王": [ - "chinese_simplified", - "chinese_traditional" - ], - "按": [ - "chinese_simplified", - "chinese_traditional" - ], - "格": [ - "chinese_simplified", - "chinese_traditional" - ], - "养": [ - "chinese_simplified" - ], - "易": [ - "chinese_simplified", - "chinese_traditional" - ], - "置": [ - "chinese_simplified", - "chinese_traditional" - ], - "派": [ - "chinese_simplified", - "chinese_traditional" - ], - "层": [ - "chinese_simplified" - ], - "片": [ - "chinese_simplified", - "chinese_traditional" - ], - "始": [ - "chinese_simplified", - "chinese_traditional" - ], - "却": [ - "chinese_simplified" - ], - "专": [ - "chinese_simplified" - ], - "状": [ - "chinese_simplified" - ], - "育": [ - "chinese_simplified", - "chinese_traditional" - ], - "厂": [ - "chinese_simplified" - ], - "京": [ - "chinese_simplified", - "chinese_traditional" - ], - "识": [ - "chinese_simplified" - ], - "适": [ - "chinese_simplified" - ], - "属": [ - "chinese_simplified" - ], - "圆": [ - "chinese_simplified" - ], - "包": [ - "chinese_simplified", - "chinese_traditional" - ], - "火": [ - "chinese_simplified", - "chinese_traditional" - ], - "住": [ - "chinese_simplified", - "chinese_traditional" - ], - "调": [ - "chinese_simplified" - ], - "满": [ - "chinese_simplified" - ], - "县": [ - "chinese_simplified" - ], - "局": [ - "chinese_simplified", - "chinese_traditional" - ], - "照": [ - "chinese_simplified", - "chinese_traditional" - ], - "参": [ - "chinese_simplified" - ], - "红": [ - "chinese_simplified" - ], - "细": [ - "chinese_simplified" - ], - "引": [ - "chinese_simplified", - "chinese_traditional" - ], - "听": [ - "chinese_simplified" - ], - "该": [ - "chinese_simplified" - ], - "铁": [ - "chinese_simplified" - ], - "价": [ - "chinese_simplified" - ], - "严": [ - "chinese_simplified" - ], - "首": [ - "chinese_simplified", - "chinese_traditional" - ], - "底": [ - "chinese_simplified", - "chinese_traditional" - ], - "液": [ - "chinese_simplified", - "chinese_traditional" - ], - "官": [ - "chinese_simplified", - "chinese_traditional" - ], - "德": [ - "chinese_simplified", - "chinese_traditional" - ], - "随": [ - "chinese_simplified" - ], - "病": [ - "chinese_simplified", - "chinese_traditional" - ], - "苏": [ - "chinese_simplified" - ], - "失": [ - "chinese_simplified", - "chinese_traditional" - ], - "尔": [ - "chinese_simplified" - ], - "死": [ - "chinese_simplified", - "chinese_traditional" - ], - "讲": [ - "chinese_simplified" - ], - "配": [ - "chinese_simplified", - "chinese_traditional" - ], - "女": [ - "chinese_simplified", - "chinese_traditional" - ], - "黄": [ - "chinese_simplified" - ], - "推": [ - "chinese_simplified", - "chinese_traditional" - ], - "显": [ - "chinese_simplified" - ], - "谈": [ - "chinese_simplified" - ], - "罪": [ - "chinese_simplified", - "chinese_traditional" - ], - "神": [ - "chinese_simplified", - "chinese_traditional" - ], - "艺": [ - "chinese_simplified" - ], - "呢": [ - "chinese_simplified", - "chinese_traditional" - ], - "席": [ - "chinese_simplified", - "chinese_traditional" - ], - "含": [ - "chinese_simplified", - "chinese_traditional" - ], - "企": [ - "chinese_simplified", - "chinese_traditional" - ], - "望": [ - "chinese_simplified", - "chinese_traditional" - ], - "密": [ - "chinese_simplified", - "chinese_traditional" - ], - "批": [ - "chinese_simplified", - "chinese_traditional" - ], - "营": [ - "chinese_simplified" - ], - "项": [ - "chinese_simplified" - ], - "防": [ - "chinese_simplified", - "chinese_traditional" - ], - "举": [ - "chinese_simplified" - ], - "球": [ - "chinese_simplified", - "chinese_traditional" - ], - "英": [ - "chinese_simplified", - "chinese_traditional" - ], - "氧": [ - "chinese_simplified", - "chinese_traditional" - ], - "势": [ - "chinese_simplified" - ], - "告": [ - "chinese_simplified", - "chinese_traditional" - ], - "李": [ - "chinese_simplified", - "chinese_traditional" - ], - "台": [ - "chinese_simplified", - "chinese_traditional" - ], - "落": [ - "chinese_simplified", - "chinese_traditional" - ], - "木": [ - "chinese_simplified", - "chinese_traditional" - ], - "帮": [ - "chinese_simplified" - ], - "轮": [ - "chinese_simplified" - ], - "破": [ - "chinese_simplified", - "chinese_traditional" - ], - "亚": [ - "chinese_simplified" - ], - "师": [ - "chinese_simplified" - ], - "围": [ - "chinese_simplified" - ], - "注": [ - "chinese_simplified", - "chinese_traditional" - ], - "远": [ - "chinese_simplified" - ], - "字": [ - "chinese_simplified", - "chinese_traditional" - ], - "材": [ - "chinese_simplified", - "chinese_traditional" - ], - "排": [ - "chinese_simplified", - "chinese_traditional" - ], - "供": [ - "chinese_simplified", - "chinese_traditional" - ], - "河": [ - "chinese_simplified", - "chinese_traditional" - ], - "态": [ - "chinese_simplified" - ], - "封": [ - "chinese_simplified", - "chinese_traditional" - ], - "另": [ - "chinese_simplified", - "chinese_traditional" - ], - "施": [ - "chinese_simplified", - "chinese_traditional" - ], - "减": [ - "chinese_simplified" - ], - "树": [ - "chinese_simplified" - ], - "溶": [ - "chinese_simplified", - "chinese_traditional" - ], - "怎": [ - "chinese_simplified", - "chinese_traditional" - ], - "止": [ - "chinese_simplified", - "chinese_traditional" - ], - "案": [ - "chinese_simplified", - "chinese_traditional" - ], - "言": [ - "chinese_simplified", - "chinese_traditional" - ], - "士": [ - "chinese_simplified", - "chinese_traditional" - ], - "均": [ - "chinese_simplified", - "chinese_traditional" - ], - "武": [ - "chinese_simplified", - "chinese_traditional" - ], - "固": [ - "chinese_simplified", - "chinese_traditional" - ], - "叶": [ - "chinese_simplified" - ], - "鱼": [ - "chinese_simplified" - ], - "波": [ - "chinese_simplified", - "chinese_traditional" - ], - "视": [ - "chinese_simplified" - ], - "仅": [ - "chinese_simplified" - ], - "费": [ - "chinese_simplified" - ], - "紧": [ - "chinese_simplified" - ], - "爱": [ - "chinese_simplified" - ], - "左": [ - "chinese_simplified", - "chinese_traditional" - ], - "章": [ - "chinese_simplified", - "chinese_traditional" - ], - "早": [ - "chinese_simplified", - "chinese_traditional" - ], - "朝": [ - "chinese_simplified", - "chinese_traditional" - ], - "害": [ - "chinese_simplified", - "chinese_traditional" - ], - "续": [ - "chinese_simplified" - ], - "轻": [ - "chinese_simplified" - ], - "服": [ - "chinese_simplified", - "chinese_traditional" - ], - "试": [ - "chinese_simplified" - ], - "食": [ - "chinese_simplified", - "chinese_traditional" - ], - "充": [ - "chinese_simplified", - "chinese_traditional" - ], - "兵": [ - "chinese_simplified", - "chinese_traditional" - ], - "源": [ - "chinese_simplified", - "chinese_traditional" - ], - "判": [ - "chinese_simplified", - "chinese_traditional" - ], - "护": [ - "chinese_simplified" - ], - "司": [ - "chinese_simplified", - "chinese_traditional" - ], - "足": [ - "chinese_simplified", - "chinese_traditional" - ], - "某": [ - "chinese_simplified", - "chinese_traditional" - ], - "练": [ - "chinese_simplified" - ], - "差": [ - "chinese_simplified", - "chinese_traditional" - ], - "致": [ - "chinese_simplified", - "chinese_traditional" - ], - "板": [ - "chinese_simplified", - "chinese_traditional" - ], - "田": [ - "chinese_simplified", - "chinese_traditional" - ], - "降": [ - "chinese_simplified", - "chinese_traditional" - ], - "黑": [ - "chinese_simplified", - "chinese_traditional" - ], - "犯": [ - "chinese_simplified", - "chinese_traditional" - ], - "负": [ - "chinese_simplified" - ], - "击": [ - "chinese_simplified" - ], - "范": [ - "chinese_simplified", - "chinese_traditional" - ], - "继": [ - "chinese_simplified" - ], - "兴": [ - "chinese_simplified" - ], - "似": [ - "chinese_simplified", - "chinese_traditional" - ], - "余": [ - "chinese_simplified" - ], - "坚": [ - "chinese_simplified" - ], - "曲": [ - "chinese_simplified", - "chinese_traditional" - ], - "输": [ - "chinese_simplified" - ], - "修": [ - "chinese_simplified", - "chinese_traditional" - ], - "故": [ - "chinese_simplified", - "chinese_traditional" - ], - "城": [ - "chinese_simplified", - "chinese_traditional" - ], - "夫": [ - "chinese_simplified", - "chinese_traditional" - ], - "够": [ - "chinese_simplified" - ], - "送": [ - "chinese_simplified", - "chinese_traditional" - ], - "笔": [ - "chinese_simplified" - ], - "船": [ - "chinese_simplified", - "chinese_traditional" - ], - "占": [ - "chinese_simplified" - ], - "右": [ - "chinese_simplified", - "chinese_traditional" - ], - "财": [ - "chinese_simplified" - ], - "吃": [ - "chinese_simplified", - "chinese_traditional" - ], - "富": [ - "chinese_simplified", - "chinese_traditional" - ], - "春": [ - "chinese_simplified", - "chinese_traditional" - ], - "职": [ - "chinese_simplified" - ], - "觉": [ - "chinese_simplified" - ], - "汉": [ - "chinese_simplified" - ], - "画": [ - "chinese_simplified" - ], - "功": [ - "chinese_simplified", - "chinese_traditional" - ], - "巴": [ - "chinese_simplified", - "chinese_traditional" - ], - "跟": [ - "chinese_simplified", - "chinese_traditional" - ], - "虽": [ - "chinese_simplified" - ], - "杂": [ - "chinese_simplified" - ], - "飞": [ - "chinese_simplified" - ], - "检": [ - "chinese_simplified" - ], - "吸": [ - "chinese_simplified", - "chinese_traditional" - ], - "助": [ - "chinese_simplified", - "chinese_traditional" - ], - "升": [ - "chinese_simplified" - ], - "阳": [ - "chinese_simplified" - ], - "互": [ - "chinese_simplified", - "chinese_traditional" - ], - "初": [ - "chinese_simplified", - "chinese_traditional" - ], - "创": [ - "chinese_simplified" - ], - "抗": [ - "chinese_simplified", - "chinese_traditional" - ], - "考": [ - "chinese_simplified", - "chinese_traditional" - ], - "投": [ - "chinese_simplified", - "chinese_traditional" - ], - "坏": [ - "chinese_simplified" - ], - "策": [ - "chinese_simplified", - "chinese_traditional" - ], - "古": [ - "chinese_simplified", - "chinese_traditional" - ], - "径": [ - "chinese_simplified" - ], - "换": [ - "chinese_simplified" - ], - "未": [ - "chinese_simplified", - "chinese_traditional" - ], - "跑": [ - "chinese_simplified", - "chinese_traditional" - ], - "留": [ - "chinese_simplified", - "chinese_traditional" - ], - "钢": [ - "chinese_simplified" - ], - "曾": [ - "chinese_simplified", - "chinese_traditional" - ], - "端": [ - "chinese_simplified", - "chinese_traditional" - ], - "责": [ - "chinese_simplified" - ], - "站": [ - "chinese_simplified", - "chinese_traditional" - ], - "简": [ - "chinese_simplified" - ], - "述": [ - "chinese_simplified", - "chinese_traditional" - ], - "钱": [ - "chinese_simplified" - ], - "副": [ - "chinese_simplified", - "chinese_traditional" - ], - "尽": [ - "chinese_simplified" - ], - "帝": [ - "chinese_simplified", - "chinese_traditional" - ], - "射": [ - "chinese_simplified", - "chinese_traditional" - ], - "草": [ - "chinese_simplified", - "chinese_traditional" - ], - "冲": [ - "chinese_simplified" - ], - "承": [ - "chinese_simplified", - "chinese_traditional" - ], - "独": [ - "chinese_simplified" - ], - "令": [ - "chinese_simplified", - "chinese_traditional" - ], - "限": [ - "chinese_simplified", - "chinese_traditional" - ], - "阿": [ - "chinese_simplified", - "chinese_traditional" - ], - "宣": [ - "chinese_simplified", - "chinese_traditional" - ], - "环": [ - "chinese_simplified" - ], - "双": [ - "chinese_simplified" - ], - "请": [ - "chinese_simplified" - ], - "超": [ - "chinese_simplified", - "chinese_traditional" - ], - "微": [ - "chinese_simplified", - "chinese_traditional" - ], - "让": [ - "chinese_simplified" - ], - "控": [ - "chinese_simplified", - "chinese_traditional" - ], - "州": [ - "chinese_simplified", - "chinese_traditional" - ], - "良": [ - "chinese_simplified", - "chinese_traditional" - ], - "轴": [ - "chinese_simplified" - ], - "找": [ - "chinese_simplified", - "chinese_traditional" - ], - "否": [ - "chinese_simplified", - "chinese_traditional" - ], - "纪": [ - "chinese_simplified" - ], - "益": [ - "chinese_simplified", - "chinese_traditional" - ], - "依": [ - "chinese_simplified", - "chinese_traditional" - ], - "优": [ - "chinese_simplified" - ], - "顶": [ - "chinese_simplified" - ], - "础": [ - "chinese_simplified" - ], - "载": [ - "chinese_simplified" - ], - "倒": [ - "chinese_simplified", - "chinese_traditional" - ], - "房": [ - "chinese_simplified", - "chinese_traditional" - ], - "突": [ - "chinese_simplified", - "chinese_traditional" - ], - "坐": [ - "chinese_simplified", - "chinese_traditional" - ], - "粉": [ - "chinese_simplified", - "chinese_traditional" - ], - "敌": [ - "chinese_simplified" - ], - "略": [ - "chinese_simplified", - "chinese_traditional" - ], - "客": [ - "chinese_simplified", - "chinese_traditional" - ], - "袁": [ - "chinese_simplified", - "chinese_traditional" - ], - "冷": [ - "chinese_simplified", - "chinese_traditional" - ], - "胜": [ - "chinese_simplified" - ], - "绝": [ - "chinese_simplified" - ], - "析": [ - "chinese_simplified", - "chinese_traditional" - ], - "块": [ - "chinese_simplified" - ], - "剂": [ - "chinese_simplified" - ], - "测": [ - "chinese_simplified" - ], - "丝": [ - "chinese_simplified" - ], - "协": [ - "chinese_simplified" - ], - "诉": [ - "chinese_simplified" - ], - "念": [ - "chinese_simplified", - "chinese_traditional" - ], - "陈": [ - "chinese_simplified" - ], - "仍": [ - "chinese_simplified", - "chinese_traditional" - ], - "罗": [ - "chinese_simplified" - ], - "盐": [ - "chinese_simplified" - ], - "友": [ - "chinese_simplified", - "chinese_traditional" - ], - "洋": [ - "chinese_simplified", - "chinese_traditional" - ], - "错": [ - "chinese_simplified" - ], - "苦": [ - "chinese_simplified", - "chinese_traditional" - ], - "夜": [ - "chinese_simplified", - "chinese_traditional" - ], - "刑": [ - "chinese_simplified", - "chinese_traditional" - ], - "移": [ - "chinese_simplified", - "chinese_traditional" - ], - "频": [ - "chinese_simplified" - ], - "逐": [ - "chinese_simplified", - "chinese_traditional" - ], - "靠": [ - "chinese_simplified", - "chinese_traditional" - ], - "混": [ - "chinese_simplified", - "chinese_traditional" - ], - "母": [ - "chinese_simplified", - "chinese_traditional" - ], - "短": [ - "chinese_simplified", - "chinese_traditional" - ], - "皮": [ - "chinese_simplified", - "chinese_traditional" - ], - "终": [ - "chinese_simplified" - ], - "聚": [ - "chinese_simplified", - "chinese_traditional" - ], - "汽": [ - "chinese_simplified", - "chinese_traditional" - ], - "村": [ - "chinese_simplified", - "chinese_traditional" - ], - "云": [ - "chinese_simplified" - ], - "哪": [ - "chinese_simplified", - "chinese_traditional" - ], - "既": [ - "chinese_simplified", - "chinese_traditional" - ], - "距": [ - "chinese_simplified", - "chinese_traditional" - ], - "卫": [ - "chinese_simplified" - ], - "停": [ - "chinese_simplified", - "chinese_traditional" - ], - "烈": [ - "chinese_simplified", - "chinese_traditional" - ], - "央": [ - "chinese_simplified", - "chinese_traditional" - ], - "察": [ - "chinese_simplified", - "chinese_traditional" - ], - "烧": [ - "chinese_simplified" - ], - "迅": [ - "chinese_simplified", - "chinese_traditional" - ], - "境": [ - "chinese_simplified", - "chinese_traditional" - ], - "若": [ - "chinese_simplified", - "chinese_traditional" - ], - "印": [ - "chinese_simplified", - "chinese_traditional" - ], - "洲": [ - "chinese_simplified", - "chinese_traditional" - ], - "刻": [ - "chinese_simplified", - "chinese_traditional" - ], - "括": [ - "chinese_simplified", - "chinese_traditional" - ], - "激": [ - "chinese_simplified", - "chinese_traditional" - ], - "孔": [ - "chinese_simplified", - "chinese_traditional" - ], - "搞": [ - "chinese_simplified", - "chinese_traditional" - ], - "甚": [ - "chinese_simplified", - "chinese_traditional" - ], - "室": [ - "chinese_simplified", - "chinese_traditional" - ], - "待": [ - "chinese_simplified", - "chinese_traditional" - ], - "核": [ - "chinese_simplified", - "chinese_traditional" - ], - "校": [ - "chinese_simplified", - "chinese_traditional" - ], - "散": [ - "chinese_simplified", - "chinese_traditional" - ], - "侵": [ - "chinese_simplified", - "chinese_traditional" - ], - "吧": [ - "chinese_simplified", - "chinese_traditional" - ], - "甲": [ - "chinese_simplified", - "chinese_traditional" - ], - "游": [ - "chinese_simplified" - ], - "久": [ - "chinese_simplified", - "chinese_traditional" - ], - "菜": [ - "chinese_simplified", - "chinese_traditional" - ], - "味": [ - "chinese_simplified", - "chinese_traditional" - ], - "旧": [ - "chinese_simplified" - ], - "模": [ - "chinese_simplified", - "chinese_traditional" - ], - "湖": [ - "chinese_simplified", - "chinese_traditional" - ], - "货": [ - "chinese_simplified" - ], - "损": [ - "chinese_simplified" - ], - "预": [ - "chinese_simplified" - ], - "阻": [ - "chinese_simplified", - "chinese_traditional" - ], - "毫": [ - "chinese_simplified", - "chinese_traditional" - ], - "普": [ - "chinese_simplified", - "chinese_traditional" - ], - "稳": [ - "chinese_simplified" - ], - "乙": [ - "chinese_simplified", - "chinese_traditional" - ], - "妈": [ - "chinese_simplified" - ], - "植": [ - "chinese_simplified", - "chinese_traditional" - ], - "息": [ - "chinese_simplified", - "chinese_traditional" - ], - "扩": [ - "chinese_simplified" - ], - "银": [ - "chinese_simplified" - ], - "语": [ - "chinese_simplified" - ], - "挥": [ - "chinese_simplified" - ], - "酒": [ - "chinese_simplified", - "chinese_traditional" - ], - "守": [ - "chinese_simplified", - "chinese_traditional" - ], - "拿": [ - "chinese_simplified", - "chinese_traditional" - ], - "序": [ - "chinese_simplified", - "chinese_traditional" - ], - "纸": [ - "chinese_simplified" - ], - "医": [ - "chinese_simplified" - ], - "缺": [ - "chinese_simplified", - "chinese_traditional" - ], - "雨": [ - "chinese_simplified", - "chinese_traditional" - ], - "吗": [ - "chinese_simplified" - ], - "针": [ - "chinese_simplified" - ], - "刘": [ - "chinese_simplified" - ], - "啊": [ - "chinese_simplified", - "chinese_traditional" - ], - "急": [ - "chinese_simplified", - "chinese_traditional" - ], - "唱": [ - "chinese_simplified", - "chinese_traditional" - ], - "误": [ - "chinese_simplified" - ], - "训": [ - "chinese_simplified" - ], - "愿": [ - "chinese_simplified" - ], - "审": [ - "chinese_simplified" - ], - "附": [ - "chinese_simplified", - "chinese_traditional" - ], - "获": [ - "chinese_simplified" - ], - "茶": [ - "chinese_simplified", - "chinese_traditional" - ], - "鲜": [ - "chinese_simplified" - ], - "粮": [ - "chinese_simplified" - ], - "斤": [ - "chinese_simplified", - "chinese_traditional" - ], - "孩": [ - "chinese_simplified", - "chinese_traditional" - ], - "脱": [ - "chinese_simplified" - ], - "硫": [ - "chinese_simplified", - "chinese_traditional" - ], - "肥": [ - "chinese_simplified", - "chinese_traditional" - ], - "善": [ - "chinese_simplified", - "chinese_traditional" - ], - "龙": [ - "chinese_simplified" - ], - "演": [ - "chinese_simplified", - "chinese_traditional" - ], - "父": [ - "chinese_simplified", - "chinese_traditional" - ], - "渐": [ - "chinese_simplified" - ], - "血": [ - "chinese_simplified", - "chinese_traditional" - ], - "欢": [ - "chinese_simplified" - ], - "械": [ - "chinese_simplified", - "chinese_traditional" - ], - "掌": [ - "chinese_simplified", - "chinese_traditional" - ], - "歌": [ - "chinese_simplified", - "chinese_traditional" - ], - "沙": [ - "chinese_simplified", - "chinese_traditional" - ], - "刚": [ - "chinese_simplified" - ], - "攻": [ - "chinese_simplified", - "chinese_traditional" - ], - "谓": [ - "chinese_simplified" - ], - "盾": [ - "chinese_simplified", - "chinese_traditional" - ], - "讨": [ - "chinese_simplified" - ], - "晚": [ - "chinese_simplified", - "chinese_traditional" - ], - "粒": [ - "chinese_simplified", - "chinese_traditional" - ], - "乱": [ - "chinese_simplified" - ], - "燃": [ - "chinese_simplified", - "chinese_traditional" - ], - "矛": [ - "chinese_simplified", - "chinese_traditional" - ], - "乎": [ - "chinese_simplified", - "chinese_traditional" - ], - "杀": [ - "chinese_simplified" - ], - "药": [ - "chinese_simplified" - ], - "宁": [ - "chinese_simplified" - ], - "鲁": [ - "chinese_simplified" - ], - "贵": [ - "chinese_simplified" - ], - "钟": [ - "chinese_simplified" - ], - "煤": [ - "chinese_simplified", - "chinese_traditional" - ], - "读": [ - "chinese_simplified" - ], - "班": [ - "chinese_simplified", - "chinese_traditional" - ], - "伯": [ - "chinese_simplified", - "chinese_traditional" - ], - "香": [ - "chinese_simplified", - "chinese_traditional" - ], - "介": [ - "chinese_simplified", - "chinese_traditional" - ], - "迫": [ - "chinese_simplified", - "chinese_traditional" - ], - "句": [ - "chinese_simplified", - "chinese_traditional" - ], - "丰": [ - "chinese_simplified" - ], - "培": [ - "chinese_simplified", - "chinese_traditional" - ], - "握": [ - "chinese_simplified", - "chinese_traditional" - ], - "兰": [ - "chinese_simplified" - ], - "担": [ - "chinese_simplified" - ], - "弦": [ - "chinese_simplified", - "chinese_traditional" - ], - "蛋": [ - "chinese_simplified", - "chinese_traditional" - ], - "沉": [ - "chinese_simplified", - "chinese_traditional" - ], - "假": [ - "chinese_simplified", - "chinese_traditional" - ], - "穿": [ - "chinese_simplified", - "chinese_traditional" - ], - "执": [ - "chinese_simplified" - ], - "答": [ - "chinese_simplified", - "chinese_traditional" - ], - "乐": [ - "chinese_simplified" - ], - "谁": [ - "chinese_simplified" - ], - "顺": [ - "chinese_simplified" - ], - "烟": [ - "chinese_simplified" - ], - "缩": [ - "chinese_simplified" - ], - "征": [ - "chinese_simplified" - ], - "脸": [ - "chinese_simplified" - ], - "喜": [ - "chinese_simplified", - "chinese_traditional" - ], - "松": [ - "chinese_simplified", - "chinese_traditional" - ], - "脚": [ - "chinese_simplified" - ], - "困": [ - "chinese_simplified", - "chinese_traditional" - ], - "异": [ - "chinese_simplified" - ], - "免": [ - "chinese_simplified", - "chinese_traditional" - ], - "背": [ - "chinese_simplified", - "chinese_traditional" - ], - "星": [ - "chinese_simplified", - "chinese_traditional" - ], - "福": [ - "chinese_simplified", - "chinese_traditional" - ], - "买": [ - "chinese_simplified" - ], - "染": [ - "chinese_simplified", - "chinese_traditional" - ], - "井": [ - "chinese_simplified", - "chinese_traditional" - ], - "概": [ - "chinese_simplified", - "chinese_traditional" - ], - "慢": [ - "chinese_simplified", - "chinese_traditional" - ], - "怕": [ - "chinese_simplified", - "chinese_traditional" - ], - "磁": [ - "chinese_simplified", - "chinese_traditional" - ], - "倍": [ - "chinese_simplified", - "chinese_traditional" - ], - "祖": [ - "chinese_simplified", - "chinese_traditional" - ], - "皇": [ - "chinese_simplified", - "chinese_traditional" - ], - "促": [ - "chinese_simplified", - "chinese_traditional" - ], - "静": [ - "chinese_simplified" - ], - "补": [ - "chinese_simplified" - ], - "评": [ - "chinese_simplified" - ], - "翻": [ - "chinese_simplified", - "chinese_traditional" - ], - "肉": [ - "chinese_simplified", - "chinese_traditional" - ], - "践": [ - "chinese_simplified" - ], - "尼": [ - "chinese_simplified", - "chinese_traditional" - ], - "衣": [ - "chinese_simplified", - "chinese_traditional" - ], - "宽": [ - "chinese_simplified" - ], - "扬": [ - "chinese_simplified" - ], - "棉": [ - "chinese_simplified", - "chinese_traditional" - ], - "希": [ - "chinese_simplified", - "chinese_traditional" - ], - "伤": [ - "chinese_simplified" - ], - "操": [ - "chinese_simplified", - "chinese_traditional" - ], - "垂": [ - "chinese_simplified", - "chinese_traditional" - ], - "秋": [ - "chinese_simplified", - "chinese_traditional" - ], - "宜": [ - "chinese_simplified", - "chinese_traditional" - ], - "氢": [ - "chinese_simplified" - ], - "套": [ - "chinese_simplified", - "chinese_traditional" - ], - "督": [ - "chinese_simplified", - "chinese_traditional" - ], - "振": [ - "chinese_simplified", - "chinese_traditional" - ], - "架": [ - "chinese_simplified", - "chinese_traditional" - ], - "亮": [ - "chinese_simplified", - "chinese_traditional" - ], - "末": [ - "chinese_simplified", - "chinese_traditional" - ], - "宪": [ - "chinese_simplified" - ], - "庆": [ - "chinese_simplified" - ], - "编": [ - "chinese_simplified" - ], - "牛": [ - "chinese_simplified", - "chinese_traditional" - ], - "触": [ - "chinese_simplified" - ], - "映": [ - "chinese_simplified", - "chinese_traditional" - ], - "雷": [ - "chinese_simplified", - "chinese_traditional" - ], - "销": [ - "chinese_simplified" - ], - "诗": [ - "chinese_simplified" - ], - "座": [ - "chinese_simplified", - "chinese_traditional" - ], - "居": [ - "chinese_simplified", - "chinese_traditional" - ], - "抓": [ - "chinese_simplified", - "chinese_traditional" - ], - "裂": [ - "chinese_simplified", - "chinese_traditional" - ], - "胞": [ - "chinese_simplified", - "chinese_traditional" - ], - "呼": [ - "chinese_simplified", - "chinese_traditional" - ], - "娘": [ - "chinese_simplified", - "chinese_traditional" - ], - "景": [ - "chinese_simplified", - "chinese_traditional" - ], - "威": [ - "chinese_simplified", - "chinese_traditional" - ], - "绿": [ - "chinese_simplified" - ], - "晶": [ - "chinese_simplified", - "chinese_traditional" - ], - "厚": [ - "chinese_simplified", - "chinese_traditional" - ], - "盟": [ - "chinese_simplified", - "chinese_traditional" - ], - "衡": [ - "chinese_simplified", - "chinese_traditional" - ], - "鸡": [ - "chinese_simplified" - ], - "孙": [ - "chinese_simplified" - ], - "延": [ - "chinese_simplified", - "chinese_traditional" - ], - "危": [ - "chinese_simplified", - "chinese_traditional" - ], - "胶": [ - "chinese_simplified" - ], - "屋": [ - "chinese_simplified", - "chinese_traditional" - ], - "乡": [ - "chinese_simplified" - ], - "临": [ - "chinese_simplified" - ], - "陆": [ - "chinese_simplified" - ], - "顾": [ - "chinese_simplified" - ], - "掉": [ - "chinese_simplified", - "chinese_traditional" - ], - "呀": [ - "chinese_simplified", - "chinese_traditional" - ], - "灯": [ - "chinese_simplified" - ], - "岁": [ - "chinese_simplified" - ], - "措": [ - "chinese_simplified", - "chinese_traditional" - ], - "束": [ - "chinese_simplified", - "chinese_traditional" - ], - "耐": [ - "chinese_simplified", - "chinese_traditional" - ], - "剧": [ - "chinese_simplified" - ], - "玉": [ - "chinese_simplified", - "chinese_traditional" - ], - "赵": [ - "chinese_simplified" - ], - "跳": [ - "chinese_simplified", - "chinese_traditional" - ], - "哥": [ - "chinese_simplified", - "chinese_traditional" - ], - "季": [ - "chinese_simplified", - "chinese_traditional" - ], - "课": [ - "chinese_simplified" - ], - "凯": [ - "chinese_simplified" - ], - "胡": [ - "chinese_simplified", - "chinese_traditional" - ], - "额": [ - "chinese_simplified" - ], - "款": [ - "chinese_simplified", - "chinese_traditional" - ], - "绍": [ - "chinese_simplified" - ], - "卷": [ - "chinese_simplified", - "chinese_traditional" - ], - "齐": [ - "chinese_simplified" - ], - "伟": [ - "chinese_simplified" - ], - "蒸": [ - "chinese_simplified", - "chinese_traditional" - ], - "殖": [ - "chinese_simplified", - "chinese_traditional" - ], - "永": [ - "chinese_simplified", - "chinese_traditional" - ], - "宗": [ - "chinese_simplified", - "chinese_traditional" - ], - "苗": [ - "chinese_simplified", - "chinese_traditional" - ], - "川": [ - "chinese_simplified", - "chinese_traditional" - ], - "炉": [ - "chinese_simplified" - ], - "岩": [ - "chinese_simplified", - "chinese_traditional" - ], - "弱": [ - "chinese_simplified", - "chinese_traditional" - ], - "零": [ - "chinese_simplified", - "chinese_traditional" - ], - "杨": [ - "chinese_simplified" - ], - "奏": [ - "chinese_simplified", - "chinese_traditional" - ], - "沿": [ - "chinese_simplified", - "chinese_traditional" - ], - "露": [ - "chinese_simplified", - "chinese_traditional" - ], - "杆": [ - "chinese_simplified" - ], - "探": [ - "chinese_simplified", - "chinese_traditional" - ], - "滑": [ - "chinese_simplified", - "chinese_traditional" - ], - "镇": [ - "chinese_simplified" - ], - "饭": [ - "chinese_simplified" - ], - "浓": [ - "chinese_simplified" - ], - "航": [ - "chinese_simplified", - "chinese_traditional" - ], - "怀": [ - "chinese_simplified" - ], - "赶": [ - "chinese_simplified" - ], - "库": [ - "chinese_simplified" - ], - "夺": [ - "chinese_simplified" - ], - "伊": [ - "chinese_simplified", - "chinese_traditional" - ], - "灵": [ - "chinese_simplified" - ], - "税": [ - "chinese_simplified" - ], - "途": [ - "chinese_simplified", - "chinese_traditional" - ], - "灭": [ - "chinese_simplified" - ], - "赛": [ - "chinese_simplified" - ], - "归": [ - "chinese_simplified" - ], - "召": [ - "chinese_simplified", - "chinese_traditional" - ], - "鼓": [ - "chinese_simplified", - "chinese_traditional" - ], - "播": [ - "chinese_simplified", - "chinese_traditional" - ], - "盘": [ - "chinese_simplified" - ], - "裁": [ - "chinese_simplified", - "chinese_traditional" - ], - "险": [ - "chinese_simplified" - ], - "康": [ - "chinese_simplified", - "chinese_traditional" - ], - "唯": [ - "chinese_simplified", - "chinese_traditional" - ], - "录": [ - "chinese_simplified" - ], - "菌": [ - "chinese_simplified", - "chinese_traditional" - ], - "纯": [ - "chinese_simplified" - ], - "借": [ - "chinese_simplified", - "chinese_traditional" - ], - "糖": [ - "chinese_simplified", - "chinese_traditional" - ], - "盖": [ - "chinese_simplified" - ], - "横": [ - "chinese_simplified" - ], - "符": [ - "chinese_simplified", - "chinese_traditional" - ], - "私": [ - "chinese_simplified", - "chinese_traditional" - ], - "努": [ - "chinese_simplified", - "chinese_traditional" - ], - "堂": [ - "chinese_simplified", - "chinese_traditional" - ], - "域": [ - "chinese_simplified", - "chinese_traditional" - ], - "枪": [ - "chinese_simplified" - ], - "润": [ - "chinese_simplified" - ], - "幅": [ - "chinese_simplified", - "chinese_traditional" - ], - "哈": [ - "chinese_simplified", - "chinese_traditional" - ], - "竟": [ - "chinese_simplified", - "chinese_traditional" - ], - "熟": [ - "chinese_simplified", - "chinese_traditional" - ], - "虫": [ - "chinese_simplified" - ], - "泽": [ - "chinese_simplified" - ], - "脑": [ - "chinese_simplified" - ], - "壤": [ - "chinese_simplified", - "chinese_traditional" - ], - "碳": [ - "chinese_simplified", - "chinese_traditional" - ], - "欧": [ - "chinese_simplified" - ], - "遍": [ - "chinese_simplified", - "chinese_traditional" - ], - "侧": [ - "chinese_simplified" - ], - "寨": [ - "chinese_simplified", - "chinese_traditional" - ], - "敢": [ - "chinese_simplified", - "chinese_traditional" - ], - "彻": [ - "chinese_simplified" - ], - "虑": [ - "chinese_simplified" - ], - "斜": [ - "chinese_simplified", - "chinese_traditional" - ], - "薄": [ - "chinese_simplified", - "chinese_traditional" - ], - "庭": [ - "chinese_simplified", - "chinese_traditional" - ], - "纳": [ - "chinese_simplified" - ], - "弹": [ - "chinese_simplified" - ], - "饲": [ - "chinese_simplified" - ], - "伸": [ - "chinese_simplified", - "chinese_traditional" - ], - "折": [ - "chinese_simplified", - "chinese_traditional" - ], - "麦": [ - "chinese_simplified" - ], - "湿": [ - "chinese_simplified" - ], - "暗": [ - "chinese_simplified", - "chinese_traditional" - ], - "荷": [ - "chinese_simplified", - "chinese_traditional" - ], - "瓦": [ - "chinese_simplified", - "chinese_traditional" - ], - "塞": [ - "chinese_simplified", - "chinese_traditional" - ], - "床": [ - "chinese_simplified", - "chinese_traditional" - ], - "筑": [ - "chinese_simplified" - ], - "恶": [ - "chinese_simplified" - ], - "户": [ - "chinese_simplified" - ], - "访": [ - "chinese_simplified" - ], - "塔": [ - "chinese_simplified", - "chinese_traditional" - ], - "奇": [ - "chinese_simplified", - "chinese_traditional" - ], - "透": [ - "chinese_simplified", - "chinese_traditional" - ], - "梁": [ - "chinese_simplified", - "chinese_traditional" - ], - "刀": [ - "chinese_simplified", - "chinese_traditional" - ], - "旋": [ - "chinese_simplified", - "chinese_traditional" - ], - "迹": [ - "chinese_simplified" - ], - "卡": [ - "chinese_simplified", - "chinese_traditional" - ], - "氯": [ - "chinese_simplified", - "chinese_traditional" - ], - "遇": [ - "chinese_simplified", - "chinese_traditional" - ], - "份": [ - "chinese_simplified", - "chinese_traditional" - ], - "毒": [ - "chinese_simplified", - "chinese_traditional" - ], - "泥": [ - "chinese_simplified", - "chinese_traditional" - ], - "退": [ - "chinese_simplified", - "chinese_traditional" - ], - "洗": [ - "chinese_simplified", - "chinese_traditional" - ], - "摆": [ - "chinese_simplified" - ], - "灰": [ - "chinese_simplified", - "chinese_traditional" - ], - "彩": [ - "chinese_simplified", - "chinese_traditional" - ], - "卖": [ - "chinese_simplified" - ], - "耗": [ - "chinese_simplified", - "chinese_traditional" - ], - "夏": [ - "chinese_simplified", - "chinese_traditional" - ], - "择": [ - "chinese_simplified" - ], - "忙": [ - "chinese_simplified", - "chinese_traditional" - ], - "铜": [ - "chinese_simplified" - ], - "献": [ - "chinese_simplified" - ], - "硬": [ - "chinese_simplified", - "chinese_traditional" - ], - "予": [ - "chinese_simplified", - "chinese_traditional" - ], - "繁": [ - "chinese_simplified", - "chinese_traditional" - ], - "圈": [ - "chinese_simplified", - "chinese_traditional" - ], - "雪": [ - "chinese_simplified", - "chinese_traditional" - ], - "函": [ - "chinese_simplified", - "chinese_traditional" - ], - "亦": [ - "chinese_simplified", - "chinese_traditional" - ], - "抽": [ - "chinese_simplified", - "chinese_traditional" - ], - "篇": [ - "chinese_simplified", - "chinese_traditional" - ], - "阵": [ - "chinese_simplified" - ], - "阴": [ - "chinese_simplified" - ], - "丁": [ - "chinese_simplified", - "chinese_traditional" - ], - "尺": [ - "chinese_simplified", - "chinese_traditional" - ], - "追": [ - "chinese_simplified", - "chinese_traditional" - ], - "堆": [ - "chinese_simplified", - "chinese_traditional" - ], - "雄": [ - "chinese_simplified", - "chinese_traditional" - ], - "迎": [ - "chinese_simplified", - "chinese_traditional" - ], - "泛": [ - "chinese_simplified", - "chinese_traditional" - ], - "爸": [ - "chinese_simplified", - "chinese_traditional" - ], - "楼": [ - "chinese_simplified" - ], - "避": [ - "chinese_simplified", - "chinese_traditional" - ], - "谋": [ - "chinese_simplified" - ], - "吨": [ - "chinese_simplified" - ], - "野": [ - "chinese_simplified", - "chinese_traditional" - ], - "猪": [ - "chinese_simplified" - ], - "旗": [ - "chinese_simplified", - "chinese_traditional" - ], - "累": [ - "chinese_simplified", - "chinese_traditional" - ], - "偏": [ - "chinese_simplified", - "chinese_traditional" - ], - "典": [ - "chinese_simplified", - "chinese_traditional" - ], - "馆": [ - "chinese_simplified" - ], - "索": [ - "chinese_simplified", - "chinese_traditional" - ], - "秦": [ - "chinese_simplified", - "chinese_traditional" - ], - "脂": [ - "chinese_simplified", - "chinese_traditional" - ], - "潮": [ - "chinese_simplified", - "chinese_traditional" - ], - "爷": [ - "chinese_simplified" - ], - "豆": [ - "chinese_simplified", - "chinese_traditional" - ], - "忽": [ - "chinese_simplified", - "chinese_traditional" - ], - "托": [ - "chinese_simplified", - "chinese_traditional" - ], - "惊": [ - "chinese_simplified" - ], - "塑": [ - "chinese_simplified", - "chinese_traditional" - ], - "遗": [ - "chinese_simplified" - ], - "愈": [ - "chinese_simplified", - "chinese_traditional" - ], - "朱": [ - "chinese_simplified", - "chinese_traditional" - ], - "替": [ - "chinese_simplified", - "chinese_traditional" - ], - "纤": [ - "chinese_simplified" - ], - "粗": [ - "chinese_simplified", - "chinese_traditional" - ], - "倾": [ - "chinese_simplified" - ], - "尚": [ - "chinese_simplified", - "chinese_traditional" - ], - "痛": [ - "chinese_simplified", - "chinese_traditional" - ], - "楚": [ - "chinese_simplified", - "chinese_traditional" - ], - "谢": [ - "chinese_simplified" - ], - "奋": [ - "chinese_simplified" - ], - "购": [ - "chinese_simplified" - ], - "磨": [ - "chinese_simplified", - "chinese_traditional" - ], - "君": [ - "chinese_simplified", - "chinese_traditional" - ], - "池": [ - "chinese_simplified", - "chinese_traditional" - ], - "旁": [ - "chinese_simplified", - "chinese_traditional" - ], - "碎": [ - "chinese_simplified", - "chinese_traditional" - ], - "骨": [ - "chinese_simplified", - "chinese_traditional" - ], - "监": [ - "chinese_simplified" - ], - "捕": [ - "chinese_simplified", - "chinese_traditional" - ], - "弟": [ - "chinese_simplified", - "chinese_traditional" - ], - "暴": [ - "chinese_simplified", - "chinese_traditional" - ], - "割": [ - "chinese_simplified", - "chinese_traditional" - ], - "贯": [ - "chinese_simplified" - ], - "殊": [ - "chinese_simplified", - "chinese_traditional" - ], - "释": [ - "chinese_simplified" - ], - "词": [ - "chinese_simplified" - ], - "亡": [ - "chinese_simplified", - "chinese_traditional" - ], - "壁": [ - "chinese_simplified", - "chinese_traditional" - ], - "顿": [ - "chinese_simplified" - ], - "宝": [ - "chinese_simplified" - ], - "午": [ - "chinese_simplified", - "chinese_traditional" - ], - "尘": [ - "chinese_simplified" - ], - "闻": [ - "chinese_simplified" - ], - "揭": [ - "chinese_simplified", - "chinese_traditional" - ], - "炮": [ - "chinese_simplified", - "chinese_traditional" - ], - "残": [ - "chinese_simplified" - ], - "冬": [ - "chinese_simplified", - "chinese_traditional" - ], - "桥": [ - "chinese_simplified" - ], - "妇": [ - "chinese_simplified" - ], - "警": [ - "chinese_simplified", - "chinese_traditional" - ], - "综": [ - "chinese_simplified" - ], - "招": [ - "chinese_simplified", - "chinese_traditional" - ], - "吴": [ - "chinese_simplified" - ], - "付": [ - "chinese_simplified", - "chinese_traditional" - ], - "浮": [ - "chinese_simplified", - "chinese_traditional" - ], - "遭": [ - "chinese_simplified", - "chinese_traditional" - ], - "徐": [ - "chinese_simplified", - "chinese_traditional" - ], - "您": [ - "chinese_simplified", - "chinese_traditional" - ], - "摇": [ - "chinese_simplified" - ], - "谷": [ - "chinese_simplified", - "chinese_traditional" - ], - "赞": [ - "chinese_simplified" - ], - "箱": [ - "chinese_simplified", - "chinese_traditional" - ], - "隔": [ - "chinese_simplified", - "chinese_traditional" - ], - "订": [ - "chinese_simplified" - ], - "男": [ - "chinese_simplified", - "chinese_traditional" - ], - "吹": [ - "chinese_simplified", - "chinese_traditional" - ], - "园": [ - "chinese_simplified" - ], - "纷": [ - "chinese_simplified" - ], - "唐": [ - "chinese_simplified", - "chinese_traditional" - ], - "败": [ - "chinese_simplified" - ], - "宋": [ - "chinese_simplified", - "chinese_traditional" - ], - "玻": [ - "chinese_simplified", - "chinese_traditional" - ], - "巨": [ - "chinese_simplified", - "chinese_traditional" - ], - "耕": [ - "chinese_simplified", - "chinese_traditional" - ], - "坦": [ - "chinese_simplified", - "chinese_traditional" - ], - "荣": [ - "chinese_simplified" - ], - "闭": [ - "chinese_simplified" - ], - "湾": [ - "chinese_simplified" - ], - "键": [ - "chinese_simplified" - ], - "凡": [ - "chinese_simplified", - "chinese_traditional" - ], - "驻": [ - "chinese_simplified" - ], - "锅": [ - "chinese_simplified" - ], - "救": [ - "chinese_simplified", - "chinese_traditional" - ], - "恩": [ - "chinese_simplified", - "chinese_traditional" - ], - "剥": [ - "chinese_simplified" - ], - "凝": [ - "chinese_simplified", - "chinese_traditional" - ], - "碱": [ - "chinese_simplified" - ], - "齿": [ - "chinese_simplified" - ], - "截": [ - "chinese_simplified", - "chinese_traditional" - ], - "炼": [ - "chinese_simplified" - ], - "麻": [ - "chinese_simplified", - "chinese_traditional" - ], - "纺": [ - "chinese_simplified" - ], - "禁": [ - "chinese_simplified", - "chinese_traditional" - ], - "废": [ - "chinese_simplified" - ], - "盛": [ - "chinese_simplified", - "chinese_traditional" - ], - "版": [ - "chinese_simplified", - "chinese_traditional" - ], - "缓": [ - "chinese_simplified" - ], - "净": [ - "chinese_simplified" - ], - "睛": [ - "chinese_simplified", - "chinese_traditional" - ], - "昌": [ - "chinese_simplified", - "chinese_traditional" - ], - "婚": [ - "chinese_simplified", - "chinese_traditional" - ], - "涉": [ - "chinese_simplified", - "chinese_traditional" - ], - "筒": [ - "chinese_simplified", - "chinese_traditional" - ], - "嘴": [ - "chinese_simplified", - "chinese_traditional" - ], - "插": [ - "chinese_simplified", - "chinese_traditional" - ], - "岸": [ - "chinese_simplified", - "chinese_traditional" - ], - "朗": [ - "chinese_simplified", - "chinese_traditional" - ], - "庄": [ - "chinese_simplified" - ], - "街": [ - "chinese_simplified", - "chinese_traditional" - ], - "藏": [ - "chinese_simplified", - "chinese_traditional" - ], - "姑": [ - "chinese_simplified", - "chinese_traditional" - ], - "贸": [ - "chinese_simplified" - ], - "腐": [ - "chinese_simplified", - "chinese_traditional" - ], - "奴": [ - "chinese_simplified", - "chinese_traditional" - ], - "啦": [ - "chinese_simplified", - "chinese_traditional" - ], - "惯": [ - "chinese_simplified" - ], - "乘": [ - "chinese_simplified", - "chinese_traditional" - ], - "伙": [ - "chinese_simplified" - ], - "恢": [ - "chinese_simplified", - "chinese_traditional" - ], - "匀": [ - "chinese_simplified" - ], - "纱": [ - "chinese_simplified" - ], - "扎": [ - "chinese_simplified", - "chinese_traditional" - ], - "辩": [ - "chinese_simplified" - ], - "耳": [ - "chinese_simplified", - "chinese_traditional" - ], - "彪": [ - "chinese_simplified", - "chinese_traditional" - ], - "臣": [ - "chinese_simplified", - "chinese_traditional" - ], - "亿": [ - "chinese_simplified" - ], - "璃": [ - "chinese_simplified", - "chinese_traditional" - ], - "抵": [ - "chinese_simplified", - "chinese_traditional" - ], - "脉": [ - "chinese_simplified" - ], - "秀": [ - "chinese_simplified", - "chinese_traditional" - ], - "萨": [ - "chinese_simplified" - ], - "俄": [ - "chinese_simplified", - "chinese_traditional" - ], - "网": [ - "chinese_simplified" - ], - "舞": [ - "chinese_simplified", - "chinese_traditional" - ], - "店": [ - "chinese_simplified", - "chinese_traditional" - ], - "喷": [ - "chinese_simplified" - ], - "纵": [ - "chinese_simplified" - ], - "寸": [ - "chinese_simplified", - "chinese_traditional" - ], - "汗": [ - "chinese_simplified", - "chinese_traditional" - ], - "挂": [ - "chinese_simplified" - ], - "洪": [ - "chinese_simplified", - "chinese_traditional" - ], - "贺": [ - "chinese_simplified" - ], - "闪": [ - "chinese_simplified" - ], - "柬": [ - "chinese_simplified", - "chinese_traditional" - ], - "爆": [ - "chinese_simplified", - "chinese_traditional" - ], - "烯": [ - "chinese_simplified", - "chinese_traditional" - ], - "津": [ - "chinese_simplified", - "chinese_traditional" - ], - "稻": [ - "chinese_simplified", - "chinese_traditional" - ], - "墙": [ - "chinese_simplified" - ], - "软": [ - "chinese_simplified" - ], - "勇": [ - "chinese_simplified", - "chinese_traditional" - ], - "像": [ - "chinese_simplified", - "chinese_traditional" - ], - "滚": [ - "chinese_simplified" - ], - "厘": [ - "chinese_simplified", - "chinese_traditional" - ], - "蒙": [ - "chinese_simplified", - "chinese_traditional" - ], - "芳": [ - "chinese_simplified", - "chinese_traditional" - ], - "肯": [ - "chinese_simplified", - "chinese_traditional" - ], - "坡": [ - "chinese_simplified", - "chinese_traditional" - ], - "柱": [ - "chinese_simplified", - "chinese_traditional" - ], - "荡": [ - "chinese_simplified" - ], - "腿": [ - "chinese_simplified", - "chinese_traditional" - ], - "仪": [ - "chinese_simplified" - ], - "旅": [ - "chinese_simplified", - "chinese_traditional" - ], - "尾": [ - "chinese_simplified", - "chinese_traditional" - ], - "轧": [ - "chinese_simplified" - ], - "冰": [ - "chinese_simplified", - "chinese_traditional" - ], - "贡": [ - "chinese_simplified" - ], - "登": [ - "chinese_simplified", - "chinese_traditional" - ], - "黎": [ - "chinese_simplified", - "chinese_traditional" - ], - "削": [ - "chinese_simplified", - "chinese_traditional" - ], - "钻": [ - "chinese_simplified" - ], - "勒": [ - "chinese_simplified", - "chinese_traditional" - ], - "逃": [ - "chinese_simplified", - "chinese_traditional" - ], - "障": [ - "chinese_simplified", - "chinese_traditional" - ], - "氨": [ - "chinese_simplified", - "chinese_traditional" - ], - "郭": [ - "chinese_simplified", - "chinese_traditional" - ], - "峰": [ - "chinese_simplified", - "chinese_traditional" - ], - "币": [ - "chinese_simplified" - ], - "港": [ - "chinese_simplified", - "chinese_traditional" - ], - "伏": [ - "chinese_simplified", - "chinese_traditional" - ], - "轨": [ - "chinese_simplified" - ], - "亩": [ - "chinese_simplified" - ], - "毕": [ - "chinese_simplified" - ], - "擦": [ - "chinese_simplified", - "chinese_traditional" - ], - "莫": [ - "chinese_simplified", - "chinese_traditional" - ], - "刺": [ - "chinese_simplified", - "chinese_traditional" - ], - "浪": [ - "chinese_simplified", - "chinese_traditional" - ], - "秘": [ - "chinese_simplified", - "chinese_traditional" - ], - "援": [ - "chinese_simplified", - "chinese_traditional" - ], - "株": [ - "chinese_simplified", - "chinese_traditional" - ], - "健": [ - "chinese_simplified", - "chinese_traditional" - ], - "售": [ - "chinese_simplified", - "chinese_traditional" - ], - "股": [ - "chinese_simplified", - "chinese_traditional" - ], - "岛": [ - "chinese_simplified" - ], - "甘": [ - "chinese_simplified", - "chinese_traditional" - ], - "泡": [ - "chinese_simplified", - "chinese_traditional" - ], - "睡": [ - "chinese_simplified", - "chinese_traditional" - ], - "童": [ - "chinese_simplified", - "chinese_traditional" - ], - "铸": [ - "chinese_simplified" - ], - "汤": [ - "chinese_simplified" - ], - "阀": [ - "chinese_simplified" - ], - "休": [ - "chinese_simplified", - "chinese_traditional" - ], - "汇": [ - "chinese_simplified" - ], - "舍": [ - "chinese_simplified", - "chinese_traditional" - ], - "牧": [ - "chinese_simplified", - "chinese_traditional" - ], - "绕": [ - "chinese_simplified" - ], - "炸": [ - "chinese_simplified", - "chinese_traditional" - ], - "哲": [ - "chinese_simplified", - "chinese_traditional" - ], - "磷": [ - "chinese_simplified", - "chinese_traditional" - ], - "绩": [ - "chinese_simplified" - ], - "朋": [ - "chinese_simplified", - "chinese_traditional" - ], - "淡": [ - "chinese_simplified", - "chinese_traditional" - ], - "尖": [ - "chinese_simplified", - "chinese_traditional" - ], - "启": [ - "chinese_simplified" - ], - "陷": [ - "chinese_simplified", - "chinese_traditional" - ], - "柴": [ - "chinese_simplified", - "chinese_traditional" - ], - "呈": [ - "chinese_simplified", - "chinese_traditional" - ], - "徒": [ - "chinese_simplified", - "chinese_traditional" - ], - "颜": [ - "chinese_simplified" - ], - "泪": [ - "chinese_simplified" - ], - "稍": [ - "chinese_simplified", - "chinese_traditional" - ], - "忘": [ - "chinese_simplified", - "chinese_traditional" - ], - "泵": [ - "chinese_simplified", - "chinese_traditional" - ], - "蓝": [ - "chinese_simplified" - ], - "拖": [ - "chinese_simplified", - "chinese_traditional" - ], - "洞": [ - "chinese_simplified", - "chinese_traditional" - ], - "授": [ - "chinese_simplified", - "chinese_traditional" - ], - "镜": [ - "chinese_simplified" - ], - "辛": [ - "chinese_simplified", - "chinese_traditional" - ], - "壮": [ - "chinese_simplified" - ], - "锋": [ - "chinese_simplified" - ], - "贫": [ - "chinese_simplified" - ], - "虚": [ - "chinese_simplified" - ], - "弯": [ - "chinese_simplified" - ], - "摩": [ - "chinese_simplified", - "chinese_traditional" - ], - "泰": [ - "chinese_simplified", - "chinese_traditional" - ], - "幼": [ - "chinese_simplified", - "chinese_traditional" - ], - "廷": [ - "chinese_simplified", - "chinese_traditional" - ], - "尊": [ - "chinese_simplified", - "chinese_traditional" - ], - "窗": [ - "chinese_simplified", - "chinese_traditional" - ], - "纲": [ - "chinese_simplified" - ], - "弄": [ - "chinese_simplified", - "chinese_traditional" - ], - "隶": [ - "chinese_simplified" - ], - "疑": [ - "chinese_simplified", - "chinese_traditional" - ], - "氏": [ - "chinese_simplified", - "chinese_traditional" - ], - "宫": [ - "chinese_simplified" - ], - "姐": [ - "chinese_simplified", - "chinese_traditional" - ], - "震": [ - "chinese_simplified", - "chinese_traditional" - ], - "瑞": [ - "chinese_simplified", - "chinese_traditional" - ], - "怪": [ - "chinese_simplified", - "chinese_traditional" - ], - "尤": [ - "chinese_simplified", - "chinese_traditional" - ], - "琴": [ - "chinese_simplified", - "chinese_traditional" - ], - "循": [ - "chinese_simplified", - "chinese_traditional" - ], - "描": [ - "chinese_simplified", - "chinese_traditional" - ], - "膜": [ - "chinese_simplified", - "chinese_traditional" - ], - "违": [ - "chinese_simplified" - ], - "夹": [ - "chinese_simplified" - ], - "腰": [ - "chinese_simplified", - "chinese_traditional" - ], - "缘": [ - "chinese_simplified" - ], - "珠": [ - "chinese_simplified", - "chinese_traditional" - ], - "穷": [ - "chinese_simplified" - ], - "森": [ - "chinese_simplified", - "chinese_traditional" - ], - "枝": [ - "chinese_simplified", - "chinese_traditional" - ], - "竹": [ - "chinese_simplified", - "chinese_traditional" - ], - "沟": [ - "chinese_simplified" - ], - "催": [ - "chinese_simplified", - "chinese_traditional" - ], - "绳": [ - "chinese_simplified" - ], - "忆": [ - "chinese_simplified" - ], - "邦": [ - "chinese_simplified", - "chinese_traditional" - ], - "剩": [ - "chinese_simplified", - "chinese_traditional" - ], - "幸": [ - "chinese_simplified", - "chinese_traditional" - ], - "浆": [ - "chinese_simplified" - ], - "栏": [ - "chinese_simplified" - ], - "拥": [ - "chinese_simplified" - ], - "牙": [ - "chinese_simplified", - "chinese_traditional" - ], - "贮": [ - "chinese_simplified" - ], - "礼": [ - "chinese_simplified" - ], - "滤": [ - "chinese_simplified" - ], - "钠": [ - "chinese_simplified" - ], - "纹": [ - "chinese_simplified" - ], - "罢": [ - "chinese_simplified" - ], - "拍": [ - "chinese_simplified", - "chinese_traditional" - ], - "咱": [ - "chinese_simplified", - "chinese_traditional" - ], - "喊": [ - "chinese_simplified", - "chinese_traditional" - ], - "袖": [ - "chinese_simplified", - "chinese_traditional" - ], - "埃": [ - "chinese_simplified", - "chinese_traditional" - ], - "勤": [ - "chinese_simplified", - "chinese_traditional" - ], - "罚": [ - "chinese_simplified" - ], - "焦": [ - "chinese_simplified", - "chinese_traditional" - ], - "潜": [ - "chinese_simplified" - ], - "伍": [ - "chinese_simplified", - "chinese_traditional" - ], - "墨": [ - "chinese_simplified", - "chinese_traditional" - ], - "欲": [ - "chinese_simplified", - "chinese_traditional" - ], - "缝": [ - "chinese_simplified" - ], - "姓": [ - "chinese_simplified", - "chinese_traditional" - ], - "刊": [ - "chinese_simplified", - "chinese_traditional" - ], - "饱": [ - "chinese_simplified" - ], - "仿": [ - "chinese_simplified", - "chinese_traditional" - ], - "奖": [ - "chinese_simplified" - ], - "铝": [ - "chinese_simplified" - ], - "鬼": [ - "chinese_simplified", - "chinese_traditional" - ], - "丽": [ - "chinese_simplified" - ], - "跨": [ - "chinese_simplified", - "chinese_traditional" - ], - "默": [ - "chinese_simplified", - "chinese_traditional" - ], - "挖": [ - "chinese_simplified", - "chinese_traditional" - ], - "链": [ - "chinese_simplified" - ], - "扫": [ - "chinese_simplified" - ], - "喝": [ - "chinese_simplified", - "chinese_traditional" - ], - "袋": [ - "chinese_simplified", - "chinese_traditional" - ], - "炭": [ - "chinese_simplified", - "chinese_traditional" - ], - "污": [ - "chinese_simplified", - "chinese_traditional" - ], - "幕": [ - "chinese_simplified", - "chinese_traditional" - ], - "诸": [ - "chinese_simplified" - ], - "弧": [ - "chinese_simplified", - "chinese_traditional" - ], - "励": [ - "chinese_simplified" - ], - "梅": [ - "chinese_simplified", - "chinese_traditional" - ], - "奶": [ - "chinese_simplified", - "chinese_traditional" - ], - "洁": [ - "chinese_simplified" - ], - "灾": [ - "chinese_simplified" - ], - "舟": [ - "chinese_simplified", - "chinese_traditional" - ], - "鉴": [ - "chinese_simplified" - ], - "苯": [ - "chinese_simplified", - "chinese_traditional" - ], - "讼": [ - "chinese_simplified" - ], - "抱": [ - "chinese_simplified", - "chinese_traditional" - ], - "毁": [ - "chinese_simplified" - ], - "懂": [ - "chinese_simplified", - "chinese_traditional" - ], - "寒": [ - "chinese_simplified", - "chinese_traditional" - ], - "智": [ - "chinese_simplified", - "chinese_traditional" - ], - "埔": [ - "chinese_simplified", - "chinese_traditional" - ], - "寄": [ - "chinese_simplified", - "chinese_traditional" - ], - "届": [ - "chinese_simplified" - ], - "跃": [ - "chinese_simplified" - ], - "渡": [ - "chinese_simplified", - "chinese_traditional" - ], - "挑": [ - "chinese_simplified", - "chinese_traditional" - ], - "丹": [ - "chinese_simplified", - "chinese_traditional" - ], - "艰": [ - "chinese_simplified" - ], - "贝": [ - "chinese_simplified" - ], - "碰": [ - "chinese_simplified", - "chinese_traditional" - ], - "拔": [ - "chinese_simplified", - "chinese_traditional" - ], - "爹": [ - "chinese_simplified", - "chinese_traditional" - ], - "戴": [ - "chinese_simplified", - "chinese_traditional" - ], - "码": [ - "chinese_simplified" - ], - "梦": [ - "chinese_simplified" - ], - "芽": [ - "chinese_simplified", - "chinese_traditional" - ], - "熔": [ - "chinese_simplified", - "chinese_traditional" - ], - "赤": [ - "chinese_simplified", - "chinese_traditional" - ], - "渔": [ - "chinese_simplified" - ], - "哭": [ - "chinese_simplified", - "chinese_traditional" - ], - "敬": [ - "chinese_simplified", - "chinese_traditional" - ], - "颗": [ - "chinese_simplified" - ], - "奔": [ - "chinese_simplified", - "chinese_traditional" - ], - "铅": [ - "chinese_simplified" - ], - "仲": [ - "chinese_simplified", - "chinese_traditional" - ], - "虎": [ - "chinese_simplified", - "chinese_traditional" - ], - "稀": [ - "chinese_simplified", - "chinese_traditional" - ], - "妹": [ - "chinese_simplified", - "chinese_traditional" - ], - "乏": [ - "chinese_simplified", - "chinese_traditional" - ], - "珍": [ - "chinese_simplified", - "chinese_traditional" - ], - "申": [ - "chinese_simplified", - "chinese_traditional" - ], - "桌": [ - "chinese_simplified", - "chinese_traditional" - ], - "遵": [ - "chinese_simplified", - "chinese_traditional" - ], - "允": [ - "chinese_simplified", - "chinese_traditional" - ], - "隆": [ - "chinese_simplified", - "chinese_traditional" - ], - "螺": [ - "chinese_simplified", - "chinese_traditional" - ], - "仓": [ - "chinese_simplified" - ], - "魏": [ - "chinese_simplified", - "chinese_traditional" - ], - "锐": [ - "chinese_simplified" - ], - "晓": [ - "chinese_simplified" - ], - "氮": [ - "chinese_simplified", - "chinese_traditional" - ], - "兼": [ - "chinese_simplified", - "chinese_traditional" - ], - "隐": [ - "chinese_simplified" - ], - "碍": [ - "chinese_simplified" - ], - "赫": [ - "chinese_simplified", - "chinese_traditional" - ], - "拨": [ - "chinese_simplified" - ], - "忠": [ - "chinese_simplified", - "chinese_traditional" - ], - "肃": [ - "chinese_simplified" - ], - "缸": [ - "chinese_simplified", - "chinese_traditional" - ], - "牵": [ - "chinese_simplified" - ], - "抢": [ - "chinese_simplified" - ], - "博": [ - "chinese_simplified", - "chinese_traditional" - ], - "巧": [ - "chinese_simplified", - "chinese_traditional" - ], - "壳": [ - "chinese_simplified" - ], - "兄": [ - "chinese_simplified", - "chinese_traditional" - ], - "杜": [ - "chinese_simplified", - "chinese_traditional" - ], - "讯": [ - "chinese_simplified" - ], - "诚": [ - "chinese_simplified" - ], - "碧": [ - "chinese_simplified", - "chinese_traditional" - ], - "祥": [ - "chinese_simplified", - "chinese_traditional" - ], - "柯": [ - "chinese_simplified", - "chinese_traditional" - ], - "页": [ - "chinese_simplified" - ], - "巡": [ - "chinese_simplified", - "chinese_traditional" - ], - "矩": [ - "chinese_simplified", - "chinese_traditional" - ], - "悲": [ - "chinese_simplified", - "chinese_traditional" - ], - "灌": [ - "chinese_simplified", - "chinese_traditional" - ], - "龄": [ - "chinese_simplified" - ], - "伦": [ - "chinese_simplified" - ], - "票": [ - "chinese_simplified", - "chinese_traditional" - ], - "寻": [ - "chinese_simplified" - ], - "桂": [ - "chinese_simplified", - "chinese_traditional" - ], - "铺": [ - "chinese_simplified" - ], - "圣": [ - "chinese_simplified" - ], - "恐": [ - "chinese_simplified", - "chinese_traditional" - ], - "恰": [ - "chinese_simplified", - "chinese_traditional" - ], - "郑": [ - "chinese_simplified" - ], - "趣": [ - "chinese_simplified", - "chinese_traditional" - ], - "抬": [ - "chinese_simplified", - "chinese_traditional" - ], - "荒": [ - "chinese_simplified", - "chinese_traditional" - ], - "腾": [ - "chinese_simplified" - ], - "贴": [ - "chinese_simplified" - ], - "柔": [ - "chinese_simplified", - "chinese_traditional" - ], - "滴": [ - "chinese_simplified", - "chinese_traditional" - ], - "猛": [ - "chinese_simplified", - "chinese_traditional" - ], - "阔": [ - "chinese_simplified" - ], - "辆": [ - "chinese_simplified" - ], - "妻": [ - "chinese_simplified", - "chinese_traditional" - ], - "填": [ - "chinese_simplified", - "chinese_traditional" - ], - "撤": [ - "chinese_simplified", - "chinese_traditional" - ], - "储": [ - "chinese_simplified" - ], - "签": [ - "chinese_simplified" - ], - "闹": [ - "chinese_simplified" - ], - "扰": [ - "chinese_simplified" - ], - "紫": [ - "chinese_simplified", - "chinese_traditional" - ], - "砂": [ - "chinese_simplified", - "chinese_traditional" - ], - "递": [ - "chinese_simplified" - ], - "戏": [ - "chinese_simplified" - ], - "吊": [ - "chinese_simplified", - "chinese_traditional" - ], - "陶": [ - "chinese_simplified", - "chinese_traditional" - ], - "伐": [ - "chinese_simplified", - "chinese_traditional" - ], - "喂": [ - "chinese_simplified" - ], - "疗": [ - "chinese_simplified" - ], - "瓶": [ - "chinese_simplified", - "chinese_traditional" - ], - "婆": [ - "chinese_simplified", - "chinese_traditional" - ], - "抚": [ - "chinese_simplified" - ], - "臂": [ - "chinese_simplified", - "chinese_traditional" - ], - "摸": [ - "chinese_simplified", - "chinese_traditional" - ], - "忍": [ - "chinese_simplified", - "chinese_traditional" - ], - "虾": [ - "chinese_simplified" - ], - "蜡": [ - "chinese_simplified" - ], - "邻": [ - "chinese_simplified" - ], - "胸": [ - "chinese_simplified", - "chinese_traditional" - ], - "巩": [ - "chinese_simplified" - ], - "挤": [ - "chinese_simplified" - ], - "偶": [ - "chinese_simplified", - "chinese_traditional" - ], - "弃": [ - "chinese_simplified" - ], - "槽": [ - "chinese_simplified", - "chinese_traditional" - ], - "劲": [ - "chinese_simplified" - ], - "乳": [ - "chinese_simplified", - "chinese_traditional" - ], - "邓": [ - "chinese_simplified" - ], - "吉": [ - "chinese_simplified", - "chinese_traditional" - ], - "仁": [ - "chinese_simplified", - "chinese_traditional" - ], - "烂": [ - "chinese_simplified" - ], - "砖": [ - "chinese_simplified" - ], - "租": [ - "chinese_simplified", - "chinese_traditional" - ], - "乌": [ - "chinese_simplified" - ], - "舰": [ - "chinese_simplified" - ], - "伴": [ - "chinese_simplified", - "chinese_traditional" - ], - "瓜": [ - "chinese_simplified", - "chinese_traditional" - ], - "浅": [ - "chinese_simplified" - ], - "丙": [ - "chinese_simplified", - "chinese_traditional" - ], - "暂": [ - "chinese_simplified" - ], - "燥": [ - "chinese_simplified", - "chinese_traditional" - ], - "橡": [ - "chinese_simplified", - "chinese_traditional" - ], - "柳": [ - "chinese_simplified", - "chinese_traditional" - ], - "迷": [ - "chinese_simplified", - "chinese_traditional" - ], - "暖": [ - "chinese_simplified", - "chinese_traditional" - ], - "牌": [ - "chinese_simplified", - "chinese_traditional" - ], - "秧": [ - "chinese_simplified", - "chinese_traditional" - ], - "胆": [ - "chinese_simplified" - ], - "详": [ - "chinese_simplified" - ], - "簧": [ - "chinese_simplified", - "chinese_traditional" - ], - "踏": [ - "chinese_simplified", - "chinese_traditional" - ], - "瓷": [ - "chinese_simplified", - "chinese_traditional" - ], - "谱": [ - "chinese_simplified" - ], - "呆": [ - "chinese_simplified", - "chinese_traditional" - ], - "宾": [ - "chinese_simplified" - ], - "糊": [ - "chinese_simplified", - "chinese_traditional" - ], - "洛": [ - "chinese_simplified", - "chinese_traditional" - ], - "辉": [ - "chinese_simplified" - ], - "愤": [ - "chinese_simplified" - ], - "竞": [ - "chinese_simplified" - ], - "隙": [ - "chinese_simplified", - "chinese_traditional" - ], - "怒": [ - "chinese_simplified", - "chinese_traditional" - ], - "粘": [ - "chinese_simplified", - "chinese_traditional" - ], - "乃": [ - "chinese_simplified", - "chinese_traditional" - ], - "绪": [ - "chinese_simplified" - ], - "肩": [ - "chinese_simplified", - "chinese_traditional" - ], - "籍": [ - "chinese_simplified", - "chinese_traditional" - ], - "敏": [ - "chinese_simplified", - "chinese_traditional" - ], - "涂": [ - "chinese_simplified" - ], - "熙": [ - "chinese_simplified", - "chinese_traditional" - ], - "皆": [ - "chinese_simplified", - "chinese_traditional" - ], - "侦": [ - "chinese_simplified" - ], - "悬": [ - "chinese_simplified" - ], - "掘": [ - "chinese_simplified", - "chinese_traditional" - ], - "享": [ - "chinese_simplified", - "chinese_traditional" - ], - "纠": [ - "chinese_simplified" - ], - "醒": [ - "chinese_simplified", - "chinese_traditional" - ], - "狂": [ - "chinese_simplified", - "chinese_traditional" - ], - "锁": [ - "chinese_simplified" - ], - "淀": [ - "chinese_simplified", - "chinese_traditional" - ], - "恨": [ - "chinese_simplified", - "chinese_traditional" - ], - "牲": [ - "chinese_simplified", - "chinese_traditional" - ], - "霸": [ - "chinese_simplified", - "chinese_traditional" - ], - "爬": [ - "chinese_simplified", - "chinese_traditional" - ], - "赏": [ - "chinese_simplified" - ], - "逆": [ - "chinese_simplified", - "chinese_traditional" - ], - "玩": [ - "chinese_simplified", - "chinese_traditional" - ], - "陵": [ - "chinese_simplified", - "chinese_traditional" - ], - "祝": [ - "chinese_simplified", - "chinese_traditional" - ], - "秒": [ - "chinese_simplified", - "chinese_traditional" - ], - "浙": [ - "chinese_simplified", - "chinese_traditional" - ], - "貌": [ - "chinese_simplified", - "chinese_traditional" - ], - "役": [ - "chinese_simplified", - "chinese_traditional" - ], - "彼": [ - "chinese_simplified", - "chinese_traditional" - ], - "悉": [ - "chinese_simplified", - "chinese_traditional" - ], - "鸭": [ - "chinese_simplified" - ], - "趋": [ - "chinese_simplified" - ], - "凤": [ - "chinese_simplified" - ], - "晨": [ - "chinese_simplified", - "chinese_traditional" - ], - "畜": [ - "chinese_simplified", - "chinese_traditional" - ], - "辈": [ - "chinese_simplified" - ], - "秩": [ - "chinese_simplified", - "chinese_traditional" - ], - "卵": [ - "chinese_simplified", - "chinese_traditional" - ], - "署": [ - "chinese_simplified", - "chinese_traditional" - ], - "梯": [ - "chinese_simplified", - "chinese_traditional" - ], - "炎": [ - "chinese_simplified", - "chinese_traditional" - ], - "滩": [ - "chinese_simplified" - ], - "棋": [ - "chinese_simplified", - "chinese_traditional" - ], - "驱": [ - "chinese_simplified" - ], - "筛": [ - "chinese_simplified" - ], - "峡": [ - "chinese_simplified" - ], - "冒": [ - "chinese_simplified", - "chinese_traditional" - ], - "啥": [ - "chinese_simplified", - "chinese_traditional" - ], - "寿": [ - "chinese_simplified" - ], - "译": [ - "chinese_simplified" - ], - "浸": [ - "chinese_simplified", - "chinese_traditional" - ], - "泉": [ - "chinese_simplified", - "chinese_traditional" - ], - "帽": [ - "chinese_simplified", - "chinese_traditional" - ], - "迟": [ - "chinese_simplified" - ], - "硅": [ - "chinese_simplified" - ], - "疆": [ - "chinese_simplified", - "chinese_traditional" - ], - "贷": [ - "chinese_simplified" - ], - "漏": [ - "chinese_simplified", - "chinese_traditional" - ], - "稿": [ - "chinese_simplified", - "chinese_traditional" - ], - "冠": [ - "chinese_simplified", - "chinese_traditional" - ], - "嫩": [ - "chinese_simplified", - "chinese_traditional" - ], - "胁": [ - "chinese_simplified" - ], - "芯": [ - "chinese_simplified", - "chinese_traditional" - ], - "牢": [ - "chinese_simplified", - "chinese_traditional" - ], - "叛": [ - "chinese_simplified", - "chinese_traditional" - ], - "蚀": [ - "chinese_simplified" - ], - "奥": [ - "chinese_simplified" - ], - "鸣": [ - "chinese_simplified" - ], - "岭": [ - "chinese_simplified" - ], - "羊": [ - "chinese_simplified", - "chinese_traditional" - ], - "凭": [ - "chinese_simplified" - ], - "串": [ - "chinese_simplified", - "chinese_traditional" - ], - "塘": [ - "chinese_simplified", - "chinese_traditional" - ], - "绘": [ - "chinese_simplified" - ], - "酵": [ - "chinese_simplified", - "chinese_traditional" - ], - "融": [ - "chinese_simplified", - "chinese_traditional" - ], - "盆": [ - "chinese_simplified", - "chinese_traditional" - ], - "锡": [ - "chinese_simplified" - ], - "庙": [ - "chinese_simplified" - ], - "筹": [ - "chinese_simplified" - ], - "冻": [ - "chinese_simplified" - ], - "辅": [ - "chinese_simplified" - ], - "摄": [ - "chinese_simplified" - ], - "袭": [ - "chinese_simplified" - ], - "筋": [ - "chinese_simplified", - "chinese_traditional" - ], - "拒": [ - "chinese_simplified", - "chinese_traditional" - ], - "僚": [ - "chinese_simplified", - "chinese_traditional" - ], - "旱": [ - "chinese_simplified", - "chinese_traditional" - ], - "钾": [ - "chinese_simplified" - ], - "鸟": [ - "chinese_simplified" - ], - "漆": [ - "chinese_simplified", - "chinese_traditional" - ], - "沈": [ - "chinese_simplified", - "chinese_traditional" - ], - "眉": [ - "chinese_simplified", - "chinese_traditional" - ], - "疏": [ - "chinese_simplified", - "chinese_traditional" - ], - "添": [ - "chinese_simplified", - "chinese_traditional" - ], - "棒": [ - "chinese_simplified", - "chinese_traditional" - ], - "穗": [ - "chinese_simplified", - "chinese_traditional" - ], - "硝": [ - "chinese_simplified", - "chinese_traditional" - ], - "韩": [ - "chinese_simplified" - ], - "逼": [ - "chinese_simplified", - "chinese_traditional" - ], - "扭": [ - "chinese_simplified", - "chinese_traditional" - ], - "侨": [ - "chinese_simplified" - ], - "凉": [ - "chinese_simplified" - ], - "挺": [ - "chinese_simplified", - "chinese_traditional" - ], - "碗": [ - "chinese_simplified", - "chinese_traditional" - ], - "栽": [ - "chinese_simplified", - "chinese_traditional" - ], - "炒": [ - "chinese_simplified", - "chinese_traditional" - ], - "杯": [ - "chinese_simplified", - "chinese_traditional" - ], - "患": [ - "chinese_simplified", - "chinese_traditional" - ], - "馏": [ - "chinese_simplified" - ], - "劝": [ - "chinese_simplified" - ], - "豪": [ - "chinese_simplified", - "chinese_traditional" - ], - "辽": [ - "chinese_simplified" - ], - "勃": [ - "chinese_simplified", - "chinese_traditional" - ], - "鸿": [ - "chinese_simplified" - ], - "旦": [ - "chinese_simplified", - "chinese_traditional" - ], - "吏": [ - "chinese_simplified", - "chinese_traditional" - ], - "拜": [ - "chinese_simplified", - "chinese_traditional" - ], - "狗": [ - "chinese_simplified", - "chinese_traditional" - ], - "埋": [ - "chinese_simplified", - "chinese_traditional" - ], - "辊": [ - "chinese_simplified" - ], - "掩": [ - "chinese_simplified", - "chinese_traditional" - ], - "饮": [ - "chinese_simplified" - ], - "搬": [ - "chinese_simplified", - "chinese_traditional" - ], - "骂": [ - "chinese_simplified" - ], - "辞": [ - "chinese_simplified" - ], - "勾": [ - "chinese_simplified", - "chinese_traditional" - ], - "扣": [ - "chinese_simplified", - "chinese_traditional" - ], - "估": [ - "chinese_simplified", - "chinese_traditional" - ], - "蒋": [ - "chinese_simplified" - ], - "绒": [ - "chinese_simplified" - ], - "雾": [ - "chinese_simplified" - ], - "丈": [ - "chinese_simplified", - "chinese_traditional" - ], - "朵": [ - "chinese_simplified", - "chinese_traditional" - ], - "姆": [ - "chinese_simplified", - "chinese_traditional" - ], - "拟": [ - "chinese_simplified" - ], - "宇": [ - "chinese_simplified", - "chinese_traditional" - ], - "辑": [ - "chinese_simplified" - ], - "陕": [ - "chinese_simplified" - ], - "雕": [ - "chinese_simplified", - "chinese_traditional" - ], - "偿": [ - "chinese_simplified" - ], - "蓄": [ - "chinese_simplified", - "chinese_traditional" - ], - "崇": [ - "chinese_simplified", - "chinese_traditional" - ], - "剪": [ - "chinese_simplified", - "chinese_traditional" - ], - "倡": [ - "chinese_simplified", - "chinese_traditional" - ], - "厅": [ - "chinese_simplified" - ], - "咬": [ - "chinese_simplified", - "chinese_traditional" - ], - "驶": [ - "chinese_simplified" - ], - "薯": [ - "chinese_simplified", - "chinese_traditional" - ], - "刷": [ - "chinese_simplified", - "chinese_traditional" - ], - "斥": [ - "chinese_simplified", - "chinese_traditional" - ], - "番": [ - "chinese_simplified", - "chinese_traditional" - ], - "赋": [ - "chinese_simplified" - ], - "奉": [ - "chinese_simplified", - "chinese_traditional" - ], - "佛": [ - "chinese_simplified", - "chinese_traditional" - ], - "浇": [ - "chinese_simplified" - ], - "漫": [ - "chinese_simplified", - "chinese_traditional" - ], - "曼": [ - "chinese_simplified", - "chinese_traditional" - ], - "扇": [ - "chinese_simplified", - "chinese_traditional" - ], - "钙": [ - "chinese_simplified" - ], - "桃": [ - "chinese_simplified", - "chinese_traditional" - ], - "扶": [ - "chinese_simplified", - "chinese_traditional" - ], - "仔": [ - "chinese_simplified", - "chinese_traditional" - ], - "返": [ - "chinese_simplified", - "chinese_traditional" - ], - "俗": [ - "chinese_simplified", - "chinese_traditional" - ], - "亏": [ - "chinese_simplified" - ], - "腔": [ - "chinese_simplified", - "chinese_traditional" - ], - "鞋": [ - "chinese_simplified", - "chinese_traditional" - ], - "棱": [ - "chinese_simplified", - "chinese_traditional" - ], - "覆": [ - "chinese_simplified", - "chinese_traditional" - ], - "框": [ - "chinese_simplified", - "chinese_traditional" - ], - "悄": [ - "chinese_simplified", - "chinese_traditional" - ], - "叔": [ - "chinese_simplified", - "chinese_traditional" - ], - "撞": [ - "chinese_simplified", - "chinese_traditional" - ], - "骗": [ - "chinese_simplified" - ], - "勘": [ - "chinese_simplified", - "chinese_traditional" - ], - "旺": [ - "chinese_simplified", - "chinese_traditional" - ], - "沸": [ - "chinese_simplified", - "chinese_traditional" - ], - "孤": [ - "chinese_simplified", - "chinese_traditional" - ], - "吐": [ - "chinese_simplified", - "chinese_traditional" - ], - "孟": [ - "chinese_simplified", - "chinese_traditional" - ], - "渠": [ - "chinese_simplified", - "chinese_traditional" - ], - "屈": [ - "chinese_simplified", - "chinese_traditional" - ], - "疾": [ - "chinese_simplified", - "chinese_traditional" - ], - "妙": [ - "chinese_simplified", - "chinese_traditional" - ], - "惜": [ - "chinese_simplified", - "chinese_traditional" - ], - "仰": [ - "chinese_simplified", - "chinese_traditional" - ], - "狠": [ - "chinese_simplified", - "chinese_traditional" - ], - "胀": [ - "chinese_simplified" - ], - "谐": [ - "chinese_simplified" - ], - "抛": [ - "chinese_simplified" - ], - "霉": [ - "chinese_simplified" - ], - "桑": [ - "chinese_simplified", - "chinese_traditional" - ], - "岗": [ - "chinese_simplified" - ], - "嘛": [ - "chinese_simplified", - "chinese_traditional" - ], - "衰": [ - "chinese_simplified", - "chinese_traditional" - ], - "盗": [ - "chinese_simplified" - ], - "渗": [ - "chinese_simplified" - ], - "脏": [ - "chinese_simplified" - ], - "赖": [ - "chinese_simplified" - ], - "涌": [ - "chinese_simplified" - ], - "甜": [ - "chinese_simplified", - "chinese_traditional" - ], - "曹": [ - "chinese_simplified", - "chinese_traditional" - ], - "阅": [ - "chinese_simplified" - ], - "肌": [ - "chinese_simplified", - "chinese_traditional" - ], - "哩": [ - "chinese_simplified", - "chinese_traditional" - ], - "厉": [ - "chinese_simplified" - ], - "烃": [ - "chinese_simplified" - ], - "纬": [ - "chinese_simplified" - ], - "毅": [ - "chinese_simplified", - "chinese_traditional" - ], - "昨": [ - "chinese_simplified", - "chinese_traditional" - ], - "伪": [ - "chinese_simplified" - ], - "症": [ - "chinese_simplified", - "chinese_traditional" - ], - "煮": [ - "chinese_simplified", - "chinese_traditional" - ], - "叹": [ - "chinese_simplified" - ], - "钉": [ - "chinese_simplified" - ], - "搭": [ - "chinese_simplified", - "chinese_traditional" - ], - "茎": [ - "chinese_simplified" - ], - "笼": [ - "chinese_simplified" - ], - "酷": [ - "chinese_simplified", - "chinese_traditional" - ], - "偷": [ - "chinese_simplified", - "chinese_traditional" - ], - "弓": [ - "chinese_simplified", - "chinese_traditional" - ], - "锥": [ - "chinese_simplified" - ], - "恒": [ - "chinese_simplified" - ], - "杰": [ - "chinese_simplified" - ], - "坑": [ - "chinese_simplified", - "chinese_traditional" - ], - "鼻": [ - "chinese_simplified", - "chinese_traditional" - ], - "翼": [ - "chinese_simplified", - "chinese_traditional" - ], - "纶": [ - "chinese_simplified" - ], - "叙": [ - "chinese_simplified" - ], - "狱": [ - "chinese_simplified" - ], - "逮": [ - "chinese_simplified", - "chinese_traditional" - ], - "罐": [ - "chinese_simplified", - "chinese_traditional" - ], - "络": [ - "chinese_simplified" - ], - "棚": [ - "chinese_simplified", - "chinese_traditional" - ], - "抑": [ - "chinese_simplified", - "chinese_traditional" - ], - "膨": [ - "chinese_simplified", - "chinese_traditional" - ], - "蔬": [ - "chinese_simplified", - "chinese_traditional" - ], - "寺": [ - "chinese_simplified", - "chinese_traditional" - ], - "骤": [ - "chinese_simplified" - ], - "穆": [ - "chinese_simplified", - "chinese_traditional" - ], - "冶": [ - "chinese_simplified", - "chinese_traditional" - ], - "枯": [ - "chinese_simplified", - "chinese_traditional" - ], - "册": [ - "chinese_simplified" - ], - "尸": [ - "chinese_simplified" - ], - "凸": [ - "chinese_simplified", - "chinese_traditional" - ], - "绅": [ - "chinese_simplified" - ], - "坯": [ - "chinese_simplified", - "chinese_traditional" - ], - "牺": [ - "chinese_simplified" - ], - "焰": [ - "chinese_simplified", - "chinese_traditional" - ], - "轰": [ - "chinese_simplified" - ], - "欣": [ - "chinese_simplified", - "chinese_traditional" - ], - "晋": [ - "chinese_simplified" - ], - "瘦": [ - "chinese_simplified", - "chinese_traditional" - ], - "御": [ - "chinese_simplified" - ], - "锭": [ - "chinese_simplified" - ], - "锦": [ - "chinese_simplified" - ], - "丧": [ - "chinese_simplified" - ], - "旬": [ - "chinese_simplified", - "chinese_traditional" - ], - "锻": [ - "chinese_simplified" - ], - "垄": [ - "chinese_simplified" - ], - "搜": [ - "chinese_simplified", - "chinese_traditional" - ], - "扑": [ - "chinese_simplified" - ], - "邀": [ - "chinese_simplified", - "chinese_traditional" - ], - "亭": [ - "chinese_simplified", - "chinese_traditional" - ], - "酯": [ - "chinese_simplified", - "chinese_traditional" - ], - "迈": [ - "chinese_simplified" - ], - "舒": [ - "chinese_simplified", - "chinese_traditional" - ], - "脆": [ - "chinese_simplified", - "chinese_traditional" - ], - "酶": [ - "chinese_simplified", - "chinese_traditional" - ], - "闲": [ - "chinese_simplified" - ], - "忧": [ - "chinese_simplified" - ], - "酚": [ - "chinese_simplified", - "chinese_traditional" - ], - "顽": [ - "chinese_simplified" - ], - "羽": [ - "chinese_simplified", - "chinese_traditional" - ], - "涨": [ - "chinese_simplified" - ], - "卸": [ - "chinese_simplified", - "chinese_traditional" - ], - "仗": [ - "chinese_simplified", - "chinese_traditional" - ], - "陪": [ - "chinese_simplified", - "chinese_traditional" - ], - "辟": [ - "chinese_simplified" - ], - "惩": [ - "chinese_simplified" - ], - "杭": [ - "chinese_simplified", - "chinese_traditional" - ], - "姚": [ - "chinese_simplified", - "chinese_traditional" - ], - "肚": [ - "chinese_simplified", - "chinese_traditional" - ], - "捉": [ - "chinese_simplified", - "chinese_traditional" - ], - "飘": [ - "chinese_simplified" - ], - "漂": [ - "chinese_simplified", - "chinese_traditional" - ], - "昆": [ - "chinese_simplified", - "chinese_traditional" - ], - "欺": [ - "chinese_simplified", - "chinese_traditional" - ], - "吾": [ - "chinese_simplified", - "chinese_traditional" - ], - "郎": [ - "chinese_simplified", - "chinese_traditional" - ], - "烷": [ - "chinese_simplified", - "chinese_traditional" - ], - "汁": [ - "chinese_simplified", - "chinese_traditional" - ], - "呵": [ - "chinese_simplified", - "chinese_traditional" - ], - "饰": [ - "chinese_simplified" - ], - "萧": [ - "chinese_simplified" - ], - "雅": [ - "chinese_simplified", - "chinese_traditional" - ], - "邮": [ - "chinese_simplified" - ], - "迁": [ - "chinese_simplified" - ], - "燕": [ - "chinese_simplified", - "chinese_traditional" - ], - "撒": [ - "chinese_simplified", - "chinese_traditional" - ], - "姻": [ - "chinese_simplified", - "chinese_traditional" - ], - "赴": [ - "chinese_simplified", - "chinese_traditional" - ], - "宴": [ - "chinese_simplified", - "chinese_traditional" - ], - "烦": [ - "chinese_simplified" - ], - "债": [ - "chinese_simplified" - ], - "帐": [ - "chinese_simplified" - ], - "斑": [ - "chinese_simplified", - "chinese_traditional" - ], - "铃": [ - "chinese_simplified" - ], - "旨": [ - "chinese_simplified", - "chinese_traditional" - ], - "醇": [ - "chinese_simplified", - "chinese_traditional" - ], - "董": [ - "chinese_simplified", - "chinese_traditional" - ], - "饼": [ - "chinese_simplified" - ], - "雏": [ - "chinese_simplified" - ], - "姿": [ - "chinese_simplified", - "chinese_traditional" - ], - "拌": [ - "chinese_simplified", - "chinese_traditional" - ], - "傅": [ - "chinese_simplified", - "chinese_traditional" - ], - "腹": [ - "chinese_simplified", - "chinese_traditional" - ], - "妥": [ - "chinese_simplified", - "chinese_traditional" - ], - "揉": [ - "chinese_simplified", - "chinese_traditional" - ], - "贤": [ - "chinese_simplified" - ], - "拆": [ - "chinese_simplified", - "chinese_traditional" - ], - "歪": [ - "chinese_simplified", - "chinese_traditional" - ], - "葡": [ - "chinese_simplified", - "chinese_traditional" - ], - "胺": [ - "chinese_simplified", - "chinese_traditional" - ], - "丢": [ - "chinese_simplified" - ], - "浩": [ - "chinese_simplified", - "chinese_traditional" - ], - "徽": [ - "chinese_simplified", - "chinese_traditional" - ], - "昂": [ - "chinese_simplified", - "chinese_traditional" - ], - "垫": [ - "chinese_simplified" - ], - "挡": [ - "chinese_simplified" - ], - "览": [ - "chinese_simplified" - ], - "贪": [ - "chinese_simplified" - ], - "慰": [ - "chinese_simplified", - "chinese_traditional" - ], - "缴": [ - "chinese_simplified" - ], - "汪": [ - "chinese_simplified", - "chinese_traditional" - ], - "慌": [ - "chinese_simplified", - "chinese_traditional" - ], - "冯": [ - "chinese_simplified" - ], - "诺": [ - "chinese_simplified" - ], - "姜": [ - "chinese_simplified", - "chinese_traditional" - ], - "谊": [ - "chinese_simplified" - ], - "凶": [ - "chinese_simplified" - ], - "劣": [ - "chinese_simplified", - "chinese_traditional" - ], - "诬": [ - "chinese_simplified" - ], - "耀": [ - "chinese_simplified", - "chinese_traditional" - ], - "昏": [ - "chinese_simplified", - "chinese_traditional" - ], - "躺": [ - "chinese_simplified", - "chinese_traditional" - ], - "盈": [ - "chinese_simplified", - "chinese_traditional" - ], - "骑": [ - "chinese_simplified" - ], - "乔": [ - "chinese_simplified" - ], - "溪": [ - "chinese_simplified", - "chinese_traditional" - ], - "丛": [ - "chinese_simplified" - ], - "卢": [ - "chinese_simplified" - ], - "抹": [ - "chinese_simplified", - "chinese_traditional" - ], - "闷": [ - "chinese_simplified" - ], - "咨": [ - "chinese_simplified" - ], - "刮": [ - "chinese_simplified", - "chinese_traditional" - ], - "驾": [ - "chinese_simplified" - ], - "缆": [ - "chinese_simplified" - ], - "悟": [ - "chinese_simplified", - "chinese_traditional" - ], - "摘": [ - "chinese_simplified", - "chinese_traditional" - ], - "铒": [ - "chinese_simplified" - ], - "掷": [ - "chinese_simplified" - ], - "颇": [ - "chinese_simplified" - ], - "幻": [ - "chinese_simplified", - "chinese_traditional" - ], - "柄": [ - "chinese_simplified", - "chinese_traditional" - ], - "惠": [ - "chinese_simplified", - "chinese_traditional" - ], - "惨": [ - "chinese_simplified" - ], - "佳": [ - "chinese_simplified", - "chinese_traditional" - ], - "仇": [ - "chinese_simplified", - "chinese_traditional" - ], - "腊": [ - "chinese_simplified" - ], - "窝": [ - "chinese_simplified" - ], - "涤": [ - "chinese_simplified" - ], - "剑": [ - "chinese_simplified" - ], - "瞧": [ - "chinese_simplified", - "chinese_traditional" - ], - "堡": [ - "chinese_simplified", - "chinese_traditional" - ], - "泼": [ - "chinese_simplified" - ], - "葱": [ - "chinese_simplified" - ], - "罩": [ - "chinese_simplified", - "chinese_traditional" - ], - "霍": [ - "chinese_simplified", - "chinese_traditional" - ], - "捞": [ - "chinese_simplified" - ], - "胎": [ - "chinese_simplified", - "chinese_traditional" - ], - "苍": [ - "chinese_simplified" - ], - "滨": [ - "chinese_simplified" - ], - "俩": [ - "chinese_simplified" - ], - "捅": [ - "chinese_simplified", - "chinese_traditional" - ], - "湘": [ - "chinese_simplified", - "chinese_traditional" - ], - "砍": [ - "chinese_simplified", - "chinese_traditional" - ], - "霞": [ - "chinese_simplified", - "chinese_traditional" - ], - "邵": [ - "chinese_simplified", - "chinese_traditional" - ], - "萄": [ - "chinese_simplified", - "chinese_traditional" - ], - "疯": [ - "chinese_simplified" - ], - "淮": [ - "chinese_simplified", - "chinese_traditional" - ], - "遂": [ - "chinese_simplified", - "chinese_traditional" - ], - "熊": [ - "chinese_simplified", - "chinese_traditional" - ], - "粪": [ - "chinese_simplified" - ], - "烘": [ - "chinese_simplified", - "chinese_traditional" - ], - "宿": [ - "chinese_simplified", - "chinese_traditional" - ], - "档": [ - "chinese_simplified" - ], - "戈": [ - "chinese_simplified", - "chinese_traditional" - ], - "驳": [ - "chinese_simplified" - ], - "嫂": [ - "chinese_simplified", - "chinese_traditional" - ], - "裕": [ - "chinese_simplified", - "chinese_traditional" - ], - "徙": [ - "chinese_simplified", - "chinese_traditional" - ], - "箭": [ - "chinese_simplified", - "chinese_traditional" - ], - "捐": [ - "chinese_simplified", - "chinese_traditional" - ], - "肠": [ - "chinese_simplified" - ], - "撑": [ - "chinese_simplified" - ], - "晒": [ - "chinese_simplified" - ], - "辨": [ - "chinese_simplified", - "chinese_traditional" - ], - "殿": [ - "chinese_simplified", - "chinese_traditional" - ], - "莲": [ - "chinese_simplified" - ], - "摊": [ - "chinese_simplified" - ], - "搅": [ - "chinese_simplified" - ], - "酱": [ - "chinese_simplified" - ], - "屏": [ - "chinese_simplified", - "chinese_traditional" - ], - "疫": [ - "chinese_simplified", - "chinese_traditional" - ], - "哀": [ - "chinese_simplified", - "chinese_traditional" - ], - "蔡": [ - "chinese_simplified", - "chinese_traditional" - ], - "堵": [ - "chinese_simplified", - "chinese_traditional" - ], - "沫": [ - "chinese_simplified", - "chinese_traditional" - ], - "皱": [ - "chinese_simplified" - ], - "畅": [ - "chinese_simplified" - ], - "叠": [ - "chinese_simplified" - ], - "阁": [ - "chinese_simplified" - ], - "莱": [ - "chinese_simplified" - ], - "敲": [ - "chinese_simplified", - "chinese_traditional" - ], - "辖": [ - "chinese_simplified" - ], - "钩": [ - "chinese_simplified" - ], - "痕": [ - "chinese_simplified", - "chinese_traditional" - ], - "坝": [ - "chinese_simplified" - ], - "巷": [ - "chinese_simplified", - "chinese_traditional" - ], - "饿": [ - "chinese_simplified" - ], - "祸": [ - "chinese_simplified" - ], - "丘": [ - "chinese_simplified", - "chinese_traditional" - ], - "玄": [ - "chinese_simplified", - "chinese_traditional" - ], - "溜": [ - "chinese_simplified", - "chinese_traditional" - ], - "曰": [ - "chinese_simplified", - "chinese_traditional" - ], - "逻": [ - "chinese_simplified" - ], - "彭": [ - "chinese_simplified", - "chinese_traditional" - ], - "尝": [ - "chinese_simplified" - ], - "卿": [ - "chinese_simplified", - "chinese_traditional" - ], - "妨": [ - "chinese_simplified", - "chinese_traditional" - ], - "艇": [ - "chinese_simplified", - "chinese_traditional" - ], - "吞": [ - "chinese_simplified", - "chinese_traditional" - ], - "韦": [ - "chinese_simplified" - ], - "怨": [ - "chinese_simplified", - "chinese_traditional" - ], - "矮": [ - "chinese_simplified", - "chinese_traditional" - ], - "歇": [ - "chinese_simplified", - "chinese_traditional" - ], - "這": [ - "chinese_traditional" - ], - "為": [ - "chinese_traditional" - ], - "個": [ - "chinese_traditional" - ], - "國": [ - "chinese_traditional" - ], - "時": [ - "chinese_traditional" - ], - "來": [ - "chinese_traditional" - ], - "們": [ - "chinese_traditional" - ], - "於": [ - "chinese_traditional" - ], - "對": [ - "chinese_traditional" - ], - "會": [ - "chinese_traditional" - ], - "發": [ - "chinese_traditional" - ], - "動": [ - "chinese_traditional" - ], - "過": [ - "chinese_traditional" - ], - "說": [ - "chinese_traditional" - ], - "產": [ - "chinese_traditional" - ], - "種": [ - "chinese_traditional" - ], - "後": [ - "chinese_traditional" - ], - "學": [ - "chinese_traditional" - ], - "經": [ - "chinese_traditional" - ], - "進": [ - "chinese_traditional" - ], - "著": [ - "chinese_traditional" - ], - "電": [ - "chinese_traditional" - ], - "裡": [ - "chinese_traditional" - ], - "現": [ - "chinese_traditional" - ], - "實": [ - "chinese_traditional" - ], - "兩": [ - "chinese_traditional" - ], - "體": [ - "chinese_traditional" - ], - "機": [ - "chinese_traditional" - ], - "當": [ - "chinese_traditional" - ], - "點": [ - "chinese_traditional" - ], - "從": [ - "chinese_traditional" - ], - "業": [ - "chinese_traditional" - ], - "應": [ - "chinese_traditional" - ], - "開": [ - "chinese_traditional" - ], - "還": [ - "chinese_traditional" - ], - "義": [ - "chinese_traditional" - ], - "間": [ - "chinese_traditional" - ], - "樣": [ - "chinese_traditional" - ], - "與": [ - "chinese_traditional" - ], - "關": [ - "chinese_traditional" - ], - "線": [ - "chinese_traditional" - ], - "內": [ - "chinese_traditional" - ], - "數": [ - "chinese_traditional" - ], - "麼": [ - "chinese_traditional" - ], - "質": [ - "chinese_traditional" - ], - "氣": [ - "chinese_traditional" - ], - "變": [ - "chinese_traditional" - ], - "條": [ - "chinese_traditional" - ], - "沒": [ - "chinese_traditional" - ], - "結": [ - "chinese_traditional" - ], - "問": [ - "chinese_traditional" - ], - "無": [ - "chinese_traditional" - ], - "軍": [ - "chinese_traditional" - ], - "並": [ - "chinese_traditional" - ], - "題": [ - "chinese_traditional" - ], - "黨": [ - "chinese_traditional" - ], - "員": [ - "chinese_traditional" - ], - "總": [ - "chinese_traditional" - ], - "設": [ - "chinese_traditional" - ], - "長": [ - "chinese_traditional" - ], - "頭": [ - "chinese_traditional" - ], - "資": [ - "chinese_traditional" - ], - "邊": [ - "chinese_traditional" - ], - "級": [ - "chinese_traditional" - ], - "圖": [ - "chinese_traditional" - ], - "統": [ - "chinese_traditional" - ], - "較": [ - "chinese_traditional" - ], - "將": [ - "chinese_traditional" - ], - "組": [ - "chinese_traditional" - ], - "見": [ - "chinese_traditional" - ], - "計": [ - "chinese_traditional" - ], - "別": [ - "chinese_traditional" - ], - "論": [ - "chinese_traditional" - ], - "運": [ - "chinese_traditional" - ], - "農": [ - "chinese_traditional" - ], - "幾": [ - "chinese_traditional" - ], - "區": [ - "chinese_traditional" - ], - "強": [ - "chinese_traditional" - ], - "決": [ - "chinese_traditional" - ], - "幹": [ - "chinese_traditional" - ], - "戰": [ - "chinese_traditional" - ], - "則": [ - "chinese_traditional" - ], - "據": [ - "chinese_traditional" - ], - "處": [ - "chinese_traditional" - ], - "隊": [ - "chinese_traditional" - ], - "給": [ - "chinese_traditional" - ], - "門": [ - "chinese_traditional" - ], - "規": [ - "chinese_traditional" - ], - "熱": [ - "chinese_traditional" - ], - "領": [ - "chinese_traditional" - ], - "東": [ - "chinese_traditional" - ], - "導": [ - "chinese_traditional" - ], - "壓": [ - "chinese_traditional" - ], - "爭": [ - "chinese_traditional" - ], - "濟": [ - "chinese_traditional" - ], - "階": [ - "chinese_traditional" - ], - "術": [ - "chinese_traditional" - ], - "極": [ - "chinese_traditional" - ], - "聯": [ - "chinese_traditional" - ], - "認": [ - "chinese_traditional" - ], - "權": [ - "chinese_traditional" - ], - "證": [ - "chinese_traditional" - ], - "採": [ - "chinese_traditional" - ], - "轉": [ - "chinese_traditional" - ], - "單": [ - "chinese_traditional" - ], - "風": [ - "chinese_traditional" - ], - "帶": [ - "chinese_traditional" - ], - "場": [ - "chinese_traditional" - ], - "車": [ - "chinese_traditional" - ], - "務": [ - "chinese_traditional" - ], - "萬": [ - "chinese_traditional" - ], - "達": [ - "chinese_traditional" - ], - "積": [ - "chinese_traditional" - ], - "議": [ - "chinese_traditional" - ], - "聲": [ - "chinese_traditional" - ], - "報": [ - "chinese_traditional" - ], - "鬥": [ - "chinese_traditional" - ], - "類": [ - "chinese_traditional" - ], - "離": [ - "chinese_traditional" - ], - "華": [ - "chinese_traditional" - ], - "確": [ - "chinese_traditional" - ], - "張": [ - "chinese_traditional" - ], - "馬": [ - "chinese_traditional" - ], - "節": [ - "chinese_traditional" - ], - "話": [ - "chinese_traditional" - ], - "況": [ - "chinese_traditional" - ], - "溫": [ - "chinese_traditional" - ], - "傳": [ - "chinese_traditional" - ], - "許": [ - "chinese_traditional" - ], - "廣": [ - "chinese_traditional" - ], - "記": [ - "chinese_traditional" - ], - "觀": [ - "chinese_traditional" - ], - "織": [ - "chinese_traditional" - ], - "裝": [ - "chinese_traditional" - ], - "眾": [ - "chinese_traditional" - ], - "書": [ - "chinese_traditional" - ], - "兒": [ - "chinese_traditional" - ], - "須": [ - "chinese_traditional" - ], - "際": [ - "chinese_traditional" - ], - "驗": [ - "chinese_traditional" - ], - "連": [ - "chinese_traditional" - ], - "斷": [ - "chinese_traditional" - ], - "難": [ - "chinese_traditional" - ], - "礦": [ - "chinese_traditional" - ], - "週": [ - "chinese_traditional" - ], - "備": [ - "chinese_traditional" - ], - "辦": [ - "chinese_traditional" - ], - "習": [ - "chinese_traditional" - ], - "響": [ - "chinese_traditional" - ], - "約": [ - "chinese_traditional" - ], - "勞": [ - "chinese_traditional" - ], - "團": [ - "chinese_traditional" - ], - "歷": [ - "chinese_traditional" - ], - "構": [ - "chinese_traditional" - ], - "稱": [ - "chinese_traditional" - ], - "準": [ - "chinese_traditional" - ], - "號": [ - "chinese_traditional" - ], - "維": [ - "chinese_traditional" - ], - "劃": [ - "chinese_traditional" - ], - "選": [ - "chinese_traditional" - ], - "標": [ - "chinese_traditional" - ], - "寫": [ - "chinese_traditional" - ], - "親": [ - "chinese_traditional" - ], - "養": [ - "chinese_traditional" - ], - "層": [ - "chinese_traditional" - ], - "卻": [ - "chinese_traditional" - ], - "專": [ - "chinese_traditional" - ], - "狀": [ - "chinese_traditional" - ], - "廠": [ - "chinese_traditional" - ], - "識": [ - "chinese_traditional" - ], - "適": [ - "chinese_traditional" - ], - "屬": [ - "chinese_traditional" - ], - "圓": [ - "chinese_traditional" - ], - "調": [ - "chinese_traditional" - ], - "滿": [ - "chinese_traditional" - ], - "縣": [ - "chinese_traditional" - ], - "參": [ - "chinese_traditional" - ], - "紅": [ - "chinese_traditional" - ], - "細": [ - "chinese_traditional" - ], - "聽": [ - "chinese_traditional" - ], - "該": [ - "chinese_traditional" - ], - "鐵": [ - "chinese_traditional" - ], - "價": [ - "chinese_traditional" - ], - "嚴": [ - "chinese_traditional" - ], - "隨": [ - "chinese_traditional" - ], - "蘇": [ - "chinese_traditional" - ], - "爾": [ - "chinese_traditional" - ], - "講": [ - "chinese_traditional" - ], - "黃": [ - "chinese_traditional" - ], - "顯": [ - "chinese_traditional" - ], - "談": [ - "chinese_traditional" - ], - "藝": [ - "chinese_traditional" - ], - "營": [ - "chinese_traditional" - ], - "項": [ - "chinese_traditional" - ], - "舉": [ - "chinese_traditional" - ], - "勢": [ - "chinese_traditional" - ], - "幫": [ - "chinese_traditional" - ], - "輪": [ - "chinese_traditional" - ], - "亞": [ - "chinese_traditional" - ], - "師": [ - "chinese_traditional" - ], - "圍": [ - "chinese_traditional" - ], - "遠": [ - "chinese_traditional" - ], - "態": [ - "chinese_traditional" - ], - "減": [ - "chinese_traditional" - ], - "樹": [ - "chinese_traditional" - ], - "葉": [ - "chinese_traditional" - ], - "魚": [ - "chinese_traditional" - ], - "視": [ - "chinese_traditional" - ], - "僅": [ - "chinese_traditional" - ], - "費": [ - "chinese_traditional" - ], - "緊": [ - "chinese_traditional" - ], - "愛": [ - "chinese_traditional" - ], - "續": [ - "chinese_traditional" - ], - "輕": [ - "chinese_traditional" - ], - "試": [ - "chinese_traditional" - ], - "護": [ - "chinese_traditional" - ], - "練": [ - "chinese_traditional" - ], - "負": [ - "chinese_traditional" - ], - "擊": [ - "chinese_traditional" - ], - "繼": [ - "chinese_traditional" - ], - "興": [ - "chinese_traditional" - ], - "餘": [ - "chinese_traditional" - ], - "堅": [ - "chinese_traditional" - ], - "輸": [ - "chinese_traditional" - ], - "夠": [ - "chinese_traditional" - ], - "筆": [ - "chinese_traditional" - ], - "佔": [ - "chinese_traditional" - ], - "財": [ - "chinese_traditional" - ], - "職": [ - "chinese_traditional" - ], - "覺": [ - "chinese_traditional" - ], - "漢": [ - "chinese_traditional" - ], - "畫": [ - "chinese_traditional" - ], - "雖": [ - "chinese_traditional" - ], - "雜": [ - "chinese_traditional" - ], - "飛": [ - "chinese_traditional" - ], - "檢": [ - "chinese_traditional" - ], - "昇": [ - "chinese_traditional" - ], - "陽": [ - "chinese_traditional" - ], - "創": [ - "chinese_traditional" - ], - "壞": [ - "chinese_traditional" - ], - "徑": [ - "chinese_traditional" - ], - "換": [ - "chinese_traditional" - ], - "鋼": [ - "chinese_traditional" - ], - "責": [ - "chinese_traditional" - ], - "簡": [ - "chinese_traditional" - ], - "錢": [ - "chinese_traditional" - ], - "盡": [ - "chinese_traditional" - ], - "衝": [ - "chinese_traditional" - ], - "獨": [ - "chinese_traditional" - ], - "環": [ - "chinese_traditional" - ], - "雙": [ - "chinese_traditional" - ], - "請": [ - "chinese_traditional" - ], - "讓": [ - "chinese_traditional" - ], - "軸": [ - "chinese_traditional" - ], - "紀": [ - "chinese_traditional" - ], - "優": [ - "chinese_traditional" - ], - "頂": [ - "chinese_traditional" - ], - "礎": [ - "chinese_traditional" - ], - "載": [ - "chinese_traditional" - ], - "敵": [ - "chinese_traditional" - ], - "勝": [ - "chinese_traditional" - ], - "絕": [ - "chinese_traditional" - ], - "塊": [ - "chinese_traditional" - ], - "劑": [ - "chinese_traditional" - ], - "測": [ - "chinese_traditional" - ], - "絲": [ - "chinese_traditional" - ], - "協": [ - "chinese_traditional" - ], - "訴": [ - "chinese_traditional" - ], - "陳": [ - "chinese_traditional" - ], - "羅": [ - "chinese_traditional" - ], - "鹽": [ - "chinese_traditional" - ], - "錯": [ - "chinese_traditional" - ], - "頻": [ - "chinese_traditional" - ], - "終": [ - "chinese_traditional" - ], - "雲": [ - "chinese_traditional" - ], - "衛": [ - "chinese_traditional" - ], - "燒": [ - "chinese_traditional" - ], - "遊": [ - "chinese_traditional" - ], - "舊": [ - "chinese_traditional" - ], - "貨": [ - "chinese_traditional" - ], - "損": [ - "chinese_traditional" - ], - "預": [ - "chinese_traditional" - ], - "穩": [ - "chinese_traditional" - ], - "媽": [ - "chinese_traditional" - ], - "擴": [ - "chinese_traditional" - ], - "銀": [ - "chinese_traditional" - ], - "語": [ - "chinese_traditional" - ], - "揮": [ - "chinese_traditional" - ], - "紙": [ - "chinese_traditional" - ], - "醫": [ - "chinese_traditional" - ], - "嗎": [ - "chinese_traditional" - ], - "針": [ - "chinese_traditional" - ], - "劉": [ - "chinese_traditional" - ], - "誤": [ - "chinese_traditional" - ], - "訓": [ - "chinese_traditional" - ], - "願": [ - "chinese_traditional" - ], - "審": [ - "chinese_traditional" - ], - "獲": [ - "chinese_traditional" - ], - "鮮": [ - "chinese_traditional" - ], - "糧": [ - "chinese_traditional" - ], - "脫": [ - "chinese_traditional" - ], - "龍": [ - "chinese_traditional" - ], - "漸": [ - "chinese_traditional" - ], - "歡": [ - "chinese_traditional" - ], - "剛": [ - "chinese_traditional" - ], - "謂": [ - "chinese_traditional" - ], - "討": [ - "chinese_traditional" - ], - "亂": [ - "chinese_traditional" - ], - "殺": [ - "chinese_traditional" - ], - "藥": [ - "chinese_traditional" - ], - "寧": [ - "chinese_traditional" - ], - "魯": [ - "chinese_traditional" - ], - "貴": [ - "chinese_traditional" - ], - "鐘": [ - "chinese_traditional" - ], - "讀": [ - "chinese_traditional" - ], - "豐": [ - "chinese_traditional" - ], - "蘭": [ - "chinese_traditional" - ], - "擔": [ - "chinese_traditional" - ], - "執": [ - "chinese_traditional" - ], - "樂": [ - "chinese_traditional" - ], - "誰": [ - "chinese_traditional" - ], - "順": [ - "chinese_traditional" - ], - "煙": [ - "chinese_traditional" - ], - "縮": [ - "chinese_traditional" - ], - "徵": [ - "chinese_traditional" - ], - "臉": [ - "chinese_traditional" - ], - "腳": [ - "chinese_traditional" - ], - "異": [ - "chinese_traditional" - ], - "買": [ - "chinese_traditional" - ], - "靜": [ - "chinese_traditional" - ], - "補": [ - "chinese_traditional" - ], - "評": [ - "chinese_traditional" - ], - "踐": [ - "chinese_traditional" - ], - "寬": [ - "chinese_traditional" - ], - "揚": [ - "chinese_traditional" - ], - "傷": [ - "chinese_traditional" - ], - "氫": [ - "chinese_traditional" - ], - "憲": [ - "chinese_traditional" - ], - "慶": [ - "chinese_traditional" - ], - "編": [ - "chinese_traditional" - ], - "觸": [ - "chinese_traditional" - ], - "銷": [ - "chinese_traditional" - ], - "詩": [ - "chinese_traditional" - ], - "綠": [ - "chinese_traditional" - ], - "雞": [ - "chinese_traditional" - ], - "孫": [ - "chinese_traditional" - ], - "膠": [ - "chinese_traditional" - ], - "鄉": [ - "chinese_traditional" - ], - "臨": [ - "chinese_traditional" - ], - "陸": [ - "chinese_traditional" - ], - "顧": [ - "chinese_traditional" - ], - "燈": [ - "chinese_traditional" - ], - "歲": [ - "chinese_traditional" - ], - "劇": [ - "chinese_traditional" - ], - "趙": [ - "chinese_traditional" - ], - "課": [ - "chinese_traditional" - ], - "凱": [ - "chinese_traditional" - ], - "額": [ - "chinese_traditional" - ], - "紹": [ - "chinese_traditional" - ], - "齊": [ - "chinese_traditional" - ], - "偉": [ - "chinese_traditional" - ], - "爐": [ - "chinese_traditional" - ], - "楊": [ - "chinese_traditional" - ], - "桿": [ - "chinese_traditional" - ], - "鎮": [ - "chinese_traditional" - ], - "飯": [ - "chinese_traditional" - ], - "濃": [ - "chinese_traditional" - ], - "懷": [ - "chinese_traditional" - ], - "趕": [ - "chinese_traditional" - ], - "庫": [ - "chinese_traditional" - ], - "奪": [ - "chinese_traditional" - ], - "靈": [ - "chinese_traditional" - ], - "稅": [ - "chinese_traditional" - ], - "滅": [ - "chinese_traditional" - ], - "賽": [ - "chinese_traditional" - ], - "歸": [ - "chinese_traditional" - ], - "盤": [ - "chinese_traditional" - ], - "險": [ - "chinese_traditional" - ], - "錄": [ - "chinese_traditional" - ], - "純": [ - "chinese_traditional" - ], - "蓋": [ - "chinese_traditional" - ], - "橫": [ - "chinese_traditional" - ], - "槍": [ - "chinese_traditional" - ], - "潤": [ - "chinese_traditional" - ], - "蟲": [ - "chinese_traditional" - ], - "澤": [ - "chinese_traditional" - ], - "腦": [ - "chinese_traditional" - ], - "歐": [ - "chinese_traditional" - ], - "側": [ - "chinese_traditional" - ], - "徹": [ - "chinese_traditional" - ], - "慮": [ - "chinese_traditional" - ], - "納": [ - "chinese_traditional" - ], - "彈": [ - "chinese_traditional" - ], - "飼": [ - "chinese_traditional" - ], - "麥": [ - "chinese_traditional" - ], - "濕": [ - "chinese_traditional" - ], - "築": [ - "chinese_traditional" - ], - "惡": [ - "chinese_traditional" - ], - "戶": [ - "chinese_traditional" - ], - "訪": [ - "chinese_traditional" - ], - "跡": [ - "chinese_traditional" - ], - "擺": [ - "chinese_traditional" - ], - "賣": [ - "chinese_traditional" - ], - "擇": [ - "chinese_traditional" - ], - "銅": [ - "chinese_traditional" - ], - "獻": [ - "chinese_traditional" - ], - "陣": [ - "chinese_traditional" - ], - "陰": [ - "chinese_traditional" - ], - "樓": [ - "chinese_traditional" - ], - "謀": [ - "chinese_traditional" - ], - "噸": [ - "chinese_traditional" - ], - "豬": [ - "chinese_traditional" - ], - "館": [ - "chinese_traditional" - ], - "爺": [ - "chinese_traditional" - ], - "驚": [ - "chinese_traditional" - ], - "遺": [ - "chinese_traditional" - ], - "纖": [ - "chinese_traditional" - ], - "傾": [ - "chinese_traditional" - ], - "謝": [ - "chinese_traditional" - ], - "奮": [ - "chinese_traditional" - ], - "購": [ - "chinese_traditional" - ], - "監": [ - "chinese_traditional" - ], - "貫": [ - "chinese_traditional" - ], - "釋": [ - "chinese_traditional" - ], - "詞": [ - "chinese_traditional" - ], - "頓": [ - "chinese_traditional" - ], - "寶": [ - "chinese_traditional" - ], - "塵": [ - "chinese_traditional" - ], - "聞": [ - "chinese_traditional" - ], - "殘": [ - "chinese_traditional" - ], - "橋": [ - "chinese_traditional" - ], - "婦": [ - "chinese_traditional" - ], - "綜": [ - "chinese_traditional" - ], - "吳": [ - "chinese_traditional" - ], - "搖": [ - "chinese_traditional" - ], - "贊": [ - "chinese_traditional" - ], - "訂": [ - "chinese_traditional" - ], - "園": [ - "chinese_traditional" - ], - "紛": [ - "chinese_traditional" - ], - "敗": [ - "chinese_traditional" - ], - "榮": [ - "chinese_traditional" - ], - "閉": [ - "chinese_traditional" - ], - "灣": [ - "chinese_traditional" - ], - "鍵": [ - "chinese_traditional" - ], - "駐": [ - "chinese_traditional" - ], - "鍋": [ - "chinese_traditional" - ], - "剝": [ - "chinese_traditional" - ], - "鹼": [ - "chinese_traditional" - ], - "齒": [ - "chinese_traditional" - ], - "煉": [ - "chinese_traditional" - ], - "紡": [ - "chinese_traditional" - ], - "廢": [ - "chinese_traditional" - ], - "緩": [ - "chinese_traditional" - ], - "淨": [ - "chinese_traditional" - ], - "莊": [ - "chinese_traditional" - ], - "貿": [ - "chinese_traditional" - ], - "慣": [ - "chinese_traditional" - ], - "夥": [ - "chinese_traditional" - ], - "勻": [ - "chinese_traditional" - ], - "紗": [ - "chinese_traditional" - ], - "辯": [ - "chinese_traditional" - ], - "億": [ - "chinese_traditional" - ], - "脈": [ - "chinese_traditional" - ], - "薩": [ - "chinese_traditional" - ], - "網": [ - "chinese_traditional" - ], - "噴": [ - "chinese_traditional" - ], - "縱": [ - "chinese_traditional" - ], - "掛": [ - "chinese_traditional" - ], - "賀": [ - "chinese_traditional" - ], - "閃": [ - "chinese_traditional" - ], - "牆": [ - "chinese_traditional" - ], - "軟": [ - "chinese_traditional" - ], - "滾": [ - "chinese_traditional" - ], - "盪": [ - "chinese_traditional" - ], - "儀": [ - "chinese_traditional" - ], - "軋": [ - "chinese_traditional" - ], - "貢": [ - "chinese_traditional" - ], - "鑽": [ - "chinese_traditional" - ], - "幣": [ - "chinese_traditional" - ], - "軌": [ - "chinese_traditional" - ], - "畝": [ - "chinese_traditional" - ], - "畢": [ - "chinese_traditional" - ], - "島": [ - "chinese_traditional" - ], - "鑄": [ - "chinese_traditional" - ], - "湯": [ - "chinese_traditional" - ], - "閥": [ - "chinese_traditional" - ], - "匯": [ - "chinese_traditional" - ], - "繞": [ - "chinese_traditional" - ], - "績": [ - "chinese_traditional" - ], - "啟": [ - "chinese_traditional" - ], - "顏": [ - "chinese_traditional" - ], - "淚": [ - "chinese_traditional" - ], - "藍": [ - "chinese_traditional" - ], - "鏡": [ - "chinese_traditional" - ], - "壯": [ - "chinese_traditional" - ], - "鋒": [ - "chinese_traditional" - ], - "貧": [ - "chinese_traditional" - ], - "虛": [ - "chinese_traditional" - ], - "彎": [ - "chinese_traditional" - ], - "綱": [ - "chinese_traditional" - ], - "隸": [ - "chinese_traditional" - ], - "宮": [ - "chinese_traditional" - ], - "違": [ - "chinese_traditional" - ], - "夾": [ - "chinese_traditional" - ], - "緣": [ - "chinese_traditional" - ], - "窮": [ - "chinese_traditional" - ], - "溝": [ - "chinese_traditional" - ], - "繩": [ - "chinese_traditional" - ], - "憶": [ - "chinese_traditional" - ], - "漿": [ - "chinese_traditional" - ], - "欄": [ - "chinese_traditional" - ], - "擁": [ - "chinese_traditional" - ], - "貯": [ - "chinese_traditional" - ], - "禮": [ - "chinese_traditional" - ], - "濾": [ - "chinese_traditional" - ], - "鈉": [ - "chinese_traditional" - ], - "紋": [ - "chinese_traditional" - ], - "罷": [ - "chinese_traditional" - ], - "罰": [ - "chinese_traditional" - ], - "潛": [ - "chinese_traditional" - ], - "縫": [ - "chinese_traditional" - ], - "飽": [ - "chinese_traditional" - ], - "獎": [ - "chinese_traditional" - ], - "鋁": [ - "chinese_traditional" - ], - "麗": [ - "chinese_traditional" - ], - "鏈": [ - "chinese_traditional" - ], - "掃": [ - "chinese_traditional" - ], - "諸": [ - "chinese_traditional" - ], - "勵": [ - "chinese_traditional" - ], - "潔": [ - "chinese_traditional" - ], - "災": [ - "chinese_traditional" - ], - "鑑": [ - "chinese_traditional" - ], - "訟": [ - "chinese_traditional" - ], - "毀": [ - "chinese_traditional" - ], - "屆": [ - "chinese_traditional" - ], - "躍": [ - "chinese_traditional" - ], - "艱": [ - "chinese_traditional" - ], - "貝": [ - "chinese_traditional" - ], - "碼": [ - "chinese_traditional" - ], - "夢": [ - "chinese_traditional" - ], - "漁": [ - "chinese_traditional" - ], - "顆": [ - "chinese_traditional" - ], - "鉛": [ - "chinese_traditional" - ], - "倉": [ - "chinese_traditional" - ], - "銳": [ - "chinese_traditional" - ], - "曉": [ - "chinese_traditional" - ], - "隱": [ - "chinese_traditional" - ], - "礙": [ - "chinese_traditional" - ], - "撥": [ - "chinese_traditional" - ], - "肅": [ - "chinese_traditional" - ], - "牽": [ - "chinese_traditional" - ], - "搶": [ - "chinese_traditional" - ], - "殼": [ - "chinese_traditional" - ], - "訊": [ - "chinese_traditional" - ], - "誠": [ - "chinese_traditional" - ], - "頁": [ - "chinese_traditional" - ], - "齡": [ - "chinese_traditional" - ], - "倫": [ - "chinese_traditional" - ], - "尋": [ - "chinese_traditional" - ], - "鋪": [ - "chinese_traditional" - ], - "聖": [ - "chinese_traditional" - ], - "鄭": [ - "chinese_traditional" - ], - "騰": [ - "chinese_traditional" - ], - "貼": [ - "chinese_traditional" - ], - "闊": [ - "chinese_traditional" - ], - "輛": [ - "chinese_traditional" - ], - "儲": [ - "chinese_traditional" - ], - "簽": [ - "chinese_traditional" - ], - "鬧": [ - "chinese_traditional" - ], - "擾": [ - "chinese_traditional" - ], - "遞": [ - "chinese_traditional" - ], - "戲": [ - "chinese_traditional" - ], - "餵": [ - "chinese_traditional" - ], - "療": [ - "chinese_traditional" - ], - "撫": [ - "chinese_traditional" - ], - "蝦": [ - "chinese_traditional" - ], - "蠟": [ - "chinese_traditional" - ], - "鄰": [ - "chinese_traditional" - ], - "鞏": [ - "chinese_traditional" - ], - "擠": [ - "chinese_traditional" - ], - "棄": [ - "chinese_traditional" - ], - "勁": [ - "chinese_traditional" - ], - "鄧": [ - "chinese_traditional" - ], - "爛": [ - "chinese_traditional" - ], - "磚": [ - "chinese_traditional" - ], - "烏": [ - "chinese_traditional" - ], - "艦": [ - "chinese_traditional" - ], - "淺": [ - "chinese_traditional" - ], - "暫": [ - "chinese_traditional" - ], - "膽": [ - "chinese_traditional" - ], - "詳": [ - "chinese_traditional" - ], - "譜": [ - "chinese_traditional" - ], - "賓": [ - "chinese_traditional" - ], - "輝": [ - "chinese_traditional" - ], - "憤": [ - "chinese_traditional" - ], - "競": [ - "chinese_traditional" - ], - "緒": [ - "chinese_traditional" - ], - "塗": [ - "chinese_traditional" - ], - "偵": [ - "chinese_traditional" - ], - "懸": [ - "chinese_traditional" - ], - "糾": [ - "chinese_traditional" - ], - "鎖": [ - "chinese_traditional" - ], - "賞": [ - "chinese_traditional" - ], - "鴨": [ - "chinese_traditional" - ], - "趨": [ - "chinese_traditional" - ], - "鳳": [ - "chinese_traditional" - ], - "輩": [ - "chinese_traditional" - ], - "灘": [ - "chinese_traditional" - ], - "驅": [ - "chinese_traditional" - ], - "篩": [ - "chinese_traditional" - ], - "峽": [ - "chinese_traditional" - ], - "壽": [ - "chinese_traditional" - ], - "譯": [ - "chinese_traditional" - ], - "遲": [ - "chinese_traditional" - ], - "矽": [ - "chinese_traditional" - ], - "貸": [ - "chinese_traditional" - ], - "脅": [ - "chinese_traditional" - ], - "蝕": [ - "chinese_traditional" - ], - "奧": [ - "chinese_traditional" - ], - "鳴": [ - "chinese_traditional" - ], - "嶺": [ - "chinese_traditional" - ], - "憑": [ - "chinese_traditional" - ], - "繪": [ - "chinese_traditional" - ], - "錫": [ - "chinese_traditional" - ], - "廟": [ - "chinese_traditional" - ], - "籌": [ - "chinese_traditional" - ], - "凍": [ - "chinese_traditional" - ], - "輔": [ - "chinese_traditional" - ], - "攝": [ - "chinese_traditional" - ], - "襲": [ - "chinese_traditional" - ], - "鉀": [ - "chinese_traditional" - ], - "鳥": [ - "chinese_traditional" - ], - "韓": [ - "chinese_traditional" - ], - "僑": [ - "chinese_traditional" - ], - "涼": [ - "chinese_traditional" - ], - "餾": [ - "chinese_traditional" - ], - "勸": [ - "chinese_traditional" - ], - "遼": [ - "chinese_traditional" - ], - "鴻": [ - "chinese_traditional" - ], - "輥": [ - "chinese_traditional" - ], - "飲": [ - "chinese_traditional" - ], - "罵": [ - "chinese_traditional" - ], - "辭": [ - "chinese_traditional" - ], - "蔣": [ - "chinese_traditional" - ], - "絨": [ - "chinese_traditional" - ], - "霧": [ - "chinese_traditional" - ], - "擬": [ - "chinese_traditional" - ], - "輯": [ - "chinese_traditional" - ], - "陝": [ - "chinese_traditional" - ], - "償": [ - "chinese_traditional" - ], - "廳": [ - "chinese_traditional" - ], - "駛": [ - "chinese_traditional" - ], - "賦": [ - "chinese_traditional" - ], - "澆": [ - "chinese_traditional" - ], - "鈣": [ - "chinese_traditional" - ], - "虧": [ - "chinese_traditional" - ], - "騙": [ - "chinese_traditional" - ], - "脹": [ - "chinese_traditional" - ], - "諧": [ - "chinese_traditional" - ], - "拋": [ - "chinese_traditional" - ], - "黴": [ - "chinese_traditional" - ], - "崗": [ - "chinese_traditional" - ], - "盜": [ - "chinese_traditional" - ], - "滲": [ - "chinese_traditional" - ], - "臟": [ - "chinese_traditional" - ], - "賴": [ - "chinese_traditional" - ], - "湧": [ - "chinese_traditional" - ], - "閱": [ - "chinese_traditional" - ], - "厲": [ - "chinese_traditional" - ], - "烴": [ - "chinese_traditional" - ], - "緯": [ - "chinese_traditional" - ], - "偽": [ - "chinese_traditional" - ], - "嘆": [ - "chinese_traditional" - ], - "釘": [ - "chinese_traditional" - ], - "莖": [ - "chinese_traditional" - ], - "籠": [ - "chinese_traditional" - ], - "錐": [ - "chinese_traditional" - ], - "恆": [ - "chinese_traditional" - ], - "傑": [ - "chinese_traditional" - ], - "綸": [ - "chinese_traditional" - ], - "敘": [ - "chinese_traditional" - ], - "獄": [ - "chinese_traditional" - ], - "絡": [ - "chinese_traditional" - ], - "驟": [ - "chinese_traditional" - ], - "冊": [ - "chinese_traditional" - ], - "屍": [ - "chinese_traditional" - ], - "紳": [ - "chinese_traditional" - ], - "犧": [ - "chinese_traditional" - ], - "轟": [ - "chinese_traditional" - ], - "晉": [ - "chinese_traditional" - ], - "禦": [ - "chinese_traditional" - ], - "錠": [ - "chinese_traditional" - ], - "錦": [ - "chinese_traditional" - ], - "喪": [ - "chinese_traditional" - ], - "鍛": [ - "chinese_traditional" - ], - "壟": [ - "chinese_traditional" - ], - "撲": [ - "chinese_traditional" - ], - "邁": [ - "chinese_traditional" - ], - "閒": [ - "chinese_traditional" - ], - "憂": [ - "chinese_traditional" - ], - "頑": [ - "chinese_traditional" - ], - "漲": [ - "chinese_traditional" - ], - "闢": [ - "chinese_traditional" - ], - "懲": [ - "chinese_traditional" - ], - "飄": [ - "chinese_traditional" - ], - "飾": [ - "chinese_traditional" - ], - "蕭": [ - "chinese_traditional" - ], - "郵": [ - "chinese_traditional" - ], - "遷": [ - "chinese_traditional" - ], - "煩": [ - "chinese_traditional" - ], - "債": [ - "chinese_traditional" - ], - "帳": [ - "chinese_traditional" - ], - "鈴": [ - "chinese_traditional" - ], - "餅": [ - "chinese_traditional" - ], - "雛": [ - "chinese_traditional" - ], - "賢": [ - "chinese_traditional" - ], - "丟": [ - "chinese_traditional" - ], - "墊": [ - "chinese_traditional" - ], - "擋": [ - "chinese_traditional" - ], - "覽": [ - "chinese_traditional" - ], - "貪": [ - "chinese_traditional" - ], - "繳": [ - "chinese_traditional" - ], - "馮": [ - "chinese_traditional" - ], - "諾": [ - "chinese_traditional" - ], - "誼": [ - "chinese_traditional" - ], - "兇": [ - "chinese_traditional" - ], - "誣": [ - "chinese_traditional" - ], - "騎": [ - "chinese_traditional" - ], - "喬": [ - "chinese_traditional" - ], - "叢": [ - "chinese_traditional" - ], - "盧": [ - "chinese_traditional" - ], - "悶": [ - "chinese_traditional" - ], - "諮": [ - "chinese_traditional" - ], - "駕": [ - "chinese_traditional" - ], - "纜": [ - "chinese_traditional" - ], - "鉺": [ - "chinese_traditional" - ], - "擲": [ - "chinese_traditional" - ], - "頗": [ - "chinese_traditional" - ], - "慘": [ - "chinese_traditional" - ], - "臘": [ - "chinese_traditional" - ], - "窩": [ - "chinese_traditional" - ], - "滌": [ - "chinese_traditional" - ], - "劍": [ - "chinese_traditional" - ], - "潑": [ - "chinese_traditional" - ], - "蔥": [ - "chinese_traditional" - ], - "撈": [ - "chinese_traditional" - ], - "蒼": [ - "chinese_traditional" - ], - "濱": [ - "chinese_traditional" - ], - "倆": [ - "chinese_traditional" - ], - "瘋": [ - "chinese_traditional" - ], - "糞": [ - "chinese_traditional" - ], - "檔": [ - "chinese_traditional" - ], - "駁": [ - "chinese_traditional" - ], - "腸": [ - "chinese_traditional" - ], - "撐": [ - "chinese_traditional" - ], - "曬": [ - "chinese_traditional" - ], - "蓮": [ - "chinese_traditional" - ], - "攤": [ - "chinese_traditional" - ], - "攪": [ - "chinese_traditional" - ], - "醬": [ - "chinese_traditional" - ], - "皺": [ - "chinese_traditional" - ], - "暢": [ - "chinese_traditional" - ], - "疊": [ - "chinese_traditional" - ], - "閣": [ - "chinese_traditional" - ], - "萊": [ - "chinese_traditional" - ], - "轄": [ - "chinese_traditional" - ], - "鉤": [ - "chinese_traditional" - ], - "壩": [ - "chinese_traditional" - ], - "餓": [ - "chinese_traditional" - ], - "禍": [ - "chinese_traditional" - ], - "邏": [ - "chinese_traditional" - ], - "嘗": [ - "chinese_traditional" - ], - "韋": [ - "chinese_traditional" - ], - abdikace: abdikace, - abeceda: abeceda, - adresa: adresa, - agrese: agrese, - akce: akce, - aktovka: aktovka, - alej: alej, - alkohol: alkohol, - amputace: amputace, - ananas: ananas, - andulka: andulka, - anekdota: anekdota, - anketa: anketa, - antika: antika, - anulovat: anulovat, - archa: archa, - arogance: arogance, - asfalt: asfalt, - asistent: asistent, - aspirace: aspirace, - astma: astma, - astronom: astronom, - atlas: atlas, - atletika: atletika, - atol: atol, - autobus: autobus, - azyl: azyl, - babka: babka, - bachor: bachor, - bacil: bacil, - baculka: baculka, - badatel: badatel, - bageta: bageta, - bagr: bagr, - bahno: bahno, - bakterie: bakterie, - balada: balada, - baletka: baletka, - balkon: balkon, - balonek: balonek, - balvan: balvan, - balza: balza, - bambus: bambus, - bankomat: bankomat, - barbar: barbar, - baret: baret, - barman: barman, - baroko: baroko, - barva: barva, - baterka: baterka, - batoh: batoh, - bavlna: bavlna, - bazalka: bazalka, - bazilika: bazilika, - bazuka: bazuka, - bedna: bedna, - beran: beran, - beseda: beseda, - bestie: bestie, - beton: beton, - bezinka: bezinka, - bezmoc: bezmoc, - beztak: beztak, - bicykl: bicykl, - bidlo: bidlo, - biftek: biftek, - bikiny: bikiny, - bilance: bilance, - biograf: biograf, - biolog: biolog, - bitva: bitva, - bizon: bizon, - blahobyt: blahobyt, - blatouch: blatouch, - blecha: blecha, - bledule: bledule, - blesk: blesk, - blikat: blikat, - blizna: blizna, - blokovat: blokovat, - bloudit: bloudit, - blud: blud, - bobek: bobek, - bobr: bobr, - bodlina: bodlina, - bodnout: bodnout, - bohatost: bohatost, - bojkot: bojkot, - bojovat: bojovat, - bokorys: bokorys, - bolest: bolest, - borec: borec, - borovice: borovice, - bota: bota, - boubel: boubel, - bouchat: bouchat, - bouda: bouda, - boule: boule, - bourat: bourat, - boxer: boxer, - bradavka: bradavka, - brambora: brambora, - branka: branka, - bratr: bratr, - brepta: brepta, - briketa: briketa, - brko: brko, - brloh: brloh, - bronz: bronz, - broskev: broskev, - brunetka: brunetka, - brusinka: brusinka, - brzda: brzda, - brzy: brzy, - bublina: bublina, - bubnovat: bubnovat, - buchta: buchta, - buditel: buditel, - budka: budka, - budova: budova, - bufet: bufet, - bujarost: bujarost, - bukvice: bukvice, - buldok: buldok, - bulva: bulva, - bunda: bunda, - bunkr: bunkr, - burza: burza, - butik: butik, - buvol: buvol, - buzola: buzola, - bydlet: bydlet, - bylina: bylina, - bytovka: bytovka, - bzukot: bzukot, - capart: capart, - carevna: carevna, - cedr: cedr, - cedule: cedule, - cejch: cejch, - cejn: cejn, - cela: cela, - celer: celer, - celkem: celkem, - celnice: celnice, - cenina: cenina, - cennost: cennost, - cenovka: cenovka, - centrum: centrum, - cenzor: cenzor, - cestopis: cestopis, - cetka: cetka, - chalupa: chalupa, - chapadlo: chapadlo, - charita: charita, - chata: chata, - chechtat: chechtat, - chemie: chemie, - chichot: chichot, - chirurg: chirurg, - chlad: chlad, - chleba: chleba, - chlubit: chlubit, - chmel: chmel, - chmura: chmura, - chobot: chobot, - chochol: chochol, - chodba: chodba, - cholera: cholera, - chomout: chomout, - chopit: chopit, - choroba: choroba, - chov: chov, - chrapot: chrapot, - chrlit: chrlit, - chrt: chrt, - chrup: chrup, - chtivost: chtivost, - chudina: chudina, - chutnat: chutnat, - chvat: chvat, - chvilka: chvilka, - chvost: chvost, - chyba: chyba, - chystat: chystat, - chytit: chytit, - cibule: cibule, - cigareta: cigareta, - cihelna: cihelna, - cihla: cihla, - cinkot: cinkot, - cirkus: cirkus, - cisterna: cisterna, - citace: citace, - citrus: citrus, - cizinec: cizinec, - cizost: cizost, - clona: clona, - cokoliv: cokoliv, - couvat: couvat, - ctitel: ctitel, - ctnost: ctnost, - cudnost: cudnost, - cuketa: cuketa, - cukr: cukr, - cupot: cupot, - cvaknout: cvaknout, - cval: cval, - cvik: cvik, - cvrkot: cvrkot, - cyklista: cyklista, - daleko: daleko, - dareba: dareba, - datel: datel, - datum: datum, - dcera: dcera, - debata: debata, - dechovka: dechovka, - decibel: decibel, - deficit: deficit, - deflace: deflace, - dekl: dekl, - dekret: dekret, - demokrat: demokrat, - deprese: deprese, - derby: derby, - deska: deska, - detektiv: detektiv, - dikobraz: dikobraz, - diktovat: diktovat, - dioda: dioda, - diplom: diplom, - disk: disk, - displej: displej, - divadlo: divadlo, - divoch: divoch, - dlaha: dlaha, - dlouho: dlouho, - dluhopis: dluhopis, - dnes: dnes, - dobro: dobro, - dobytek: dobytek, - docent: docent, - dochutit: dochutit, - dodnes: dodnes, - dohled: dohled, - dohoda: dohoda, - dohra: dohra, - dojem: dojem, - dojnice: dojnice, - doklad: doklad, - dokola: dokola, - doktor: doktor, - dokument: dokument, - dolar: dolar, - doleva: doleva, - dolina: dolina, - doma: doma, - dominant: dominant, - domluvit: domluvit, - domov: domov, - donutit: donutit, - dopad: dopad, - dopis: dopis, - doplnit: doplnit, - doposud: doposud, - doprovod: doprovod, - dopustit: dopustit, - dorazit: dorazit, - dorost: dorost, - dort: dort, - dosah: dosah, - doslov: doslov, - dostatek: dostatek, - dosud: dosud, - dosyta: dosyta, - dotaz: dotaz, - dotek: dotek, - dotknout: dotknout, - doufat: doufat, - doutnat: doutnat, - dovozce: dovozce, - dozadu: dozadu, - doznat: doznat, - dozorce: dozorce, - drahota: drahota, - drak: drak, - dramatik: dramatik, - dravec: dravec, - draze: draze, - drdol: drdol, - drobnost: drobnost, - drogerie: drogerie, - drozd: drozd, - drsnost: drsnost, - drtit: drtit, - drzost: drzost, - duben: duben, - duchovno: duchovno, - dudek: dudek, - duha: duha, - duhovka: duhovka, - dusit: dusit, - dusno: dusno, - dutost: dutost, - dvojice: dvojice, - dvorec: dvorec, - dynamit: dynamit, - ekolog: ekolog, - ekonomie: ekonomie, - elektron: elektron, - elipsa: elipsa, - email: email, - emise: emise, - emoce: emoce, - empatie: empatie, - epizoda: epizoda, - epocha: epocha, - epopej: epopej, - epos: epos, - esej: esej, - esence: esence, - eskorta: eskorta, - eskymo: eskymo, - etiketa: etiketa, - euforie: euforie, - evoluce: evoluce, - exekuce: exekuce, - exkurze: exkurze, - expedice: expedice, - exploze: exploze, - "export": [ - "czech" - ], - extrakt: extrakt, - facka: facka, - fajfka: fajfka, - fakulta: fakulta, - fanatik: fanatik, - fantazie: fantazie, - farmacie: farmacie, - favorit: favorit, - fazole: fazole, - federace: federace, - fejeton: fejeton, - fenka: fenka, - fialka: fialka, - figurant: figurant, - filozof: filozof, - filtr: filtr, - finance: finance, - finta: finta, - fixace: fixace, - fjord: fjord, - flanel: flanel, - flirt: flirt, - flotila: flotila, - fond: fond, - fosfor: fosfor, - fotbal: fotbal, - fotka: fotka, - foton: foton, - frakce: frakce, - freska: freska, - fronta: fronta, - fukar: fukar, - funkce: funkce, - fyzika: fyzika, - galeje: galeje, - garant: garant, - genetika: genetika, - geolog: geolog, - gilotina: gilotina, - glazura: glazura, - glejt: glejt, - golem: golem, - golfista: golfista, - gotika: gotika, - graf: graf, - gramofon: gramofon, - granule: granule, - grep: grep, - gril: gril, - grog: grog, - groteska: groteska, - guma: guma, - hadice: hadice, - hadr: hadr, - hala: hala, - halenka: halenka, - hanba: hanba, - hanopis: hanopis, - harfa: harfa, - harpuna: harpuna, - havran: havran, - hebkost: hebkost, - hejkal: hejkal, - hejno: hejno, - hejtman: hejtman, - hektar: hektar, - helma: helma, - hematom: hematom, - herec: herec, - herna: herna, - heslo: heslo, - hezky: hezky, - historik: historik, - hladovka: hladovka, - hlasivky: hlasivky, - hlava: hlava, - hledat: hledat, - hlen: hlen, - hlodavec: hlodavec, - hloh: hloh, - hloupost: hloupost, - hltat: hltat, - hlubina: hlubina, - hluchota: hluchota, - hmat: hmat, - hmota: hmota, - hmyz: hmyz, - hnis: hnis, - hnojivo: hnojivo, - hnout: hnout, - hoblina: hoblina, - hoboj: hoboj, - hoch: hoch, - hodiny: hodiny, - hodlat: hodlat, - hodnota: hodnota, - hodovat: hodovat, - hojnost: hojnost, - hokej: hokej, - holinka: holinka, - holka: holka, - holub: holub, - homole: homole, - honitba: honitba, - honorace: honorace, - horal: horal, - horda: horda, - horizont: horizont, - horko: horko, - horlivec: horlivec, - hormon: hormon, - hornina: hornina, - horoskop: horoskop, - horstvo: horstvo, - hospoda: hospoda, - hostina: hostina, - hotovost: hotovost, - houba: houba, - houf: houf, - houpat: houpat, - houska: houska, - hovor: hovor, - hradba: hradba, - hranice: hranice, - hravost: hravost, - hrazda: hrazda, - hrbolek: hrbolek, - hrdina: hrdina, - hrdlo: hrdlo, - hrdost: hrdost, - hrnek: hrnek, - hrobka: hrobka, - hromada: hromada, - hrot: hrot, - hrouda: hrouda, - hrozen: hrozen, - hrstka: hrstka, - hrubost: hrubost, - hryzat: hryzat, - hubenost: hubenost, - hubnout: hubnout, - hudba: hudba, - hukot: hukot, - humr: humr, - husita: husita, - hustota: hustota, - hvozd: hvozd, - hybnost: hybnost, - hydrant: hydrant, - hygiena: hygiena, - hymna: hymna, - hysterik: hysterik, - idylka: idylka, - ihned: ihned, - ikona: ikona, - iluze: iluze, - imunita: imunita, - infekce: infekce, - inflace: inflace, - inkaso: inkaso, - inovace: inovace, - inspekce: inspekce, - internet: internet, - invalida: invalida, - investor: investor, - inzerce: inzerce, - ironie: ironie, - jablko: jablko, - jachta: jachta, - jahoda: jahoda, - jakmile: jakmile, - jakost: jakost, - jalovec: jalovec, - jantar: jantar, - jarmark: jarmark, - jaro: jaro, - jasan: jasan, - jasno: jasno, - jatka: jatka, - javor: javor, - jazyk: jazyk, - jedinec: jedinec, - jedle: jedle, - jednatel: jednatel, - jehlan: jehlan, - jekot: jekot, - jelen: jelen, - jelito: jelito, - jemnost: jemnost, - jenom: jenom, - jepice: jepice, - jeseter: jeseter, - jevit: jevit, - jezdec: jezdec, - jezero: jezero, - jinak: jinak, - jindy: jindy, - jinoch: jinoch, - jiskra: jiskra, - jistota: jistota, - jitrnice: jitrnice, - jizva: jizva, - jmenovat: jmenovat, - jogurt: jogurt, - jurta: jurta, - kabaret: kabaret, - kabel: kabel, - kabinet: kabinet, - kachna: kachna, - kadet: kadet, - kadidlo: kadidlo, - kahan: kahan, - kajak: kajak, - kajuta: kajuta, - kakao: kakao, - kaktus: kaktus, - kalamita: kalamita, - kalhoty: kalhoty, - kalibr: kalibr, - kalnost: kalnost, - kamera: kamera, - kamkoliv: kamkoliv, - kamna: kamna, - kanibal: kanibal, - kanoe: kanoe, - kantor: kantor, - kapalina: kapalina, - kapela: kapela, - kapitola: kapitola, - kapka: kapka, - kaple: kaple, - kapota: kapota, - kapr: kapr, - kapusta: kapusta, - kapybara: kapybara, - karamel: karamel, - karotka: karotka, - karton: karton, - kasa: kasa, - katalog: katalog, - katedra: katedra, - kauce: kauce, - kauza: kauza, - kavalec: kavalec, - kazajka: kazajka, - kazeta: kazeta, - kazivost: kazivost, - kdekoliv: kdekoliv, - kdesi: kdesi, - kedluben: kedluben, - kemp: kemp, - keramika: keramika, - kino: kino, - klacek: klacek, - kladivo: kladivo, - klam: klam, - klapot: klapot, - klasika: klasika, - klaun: klaun, - klec: klec, - klenba: klenba, - klepat: klepat, - klesnout: klesnout, - klid: klid, - klima: klima, - klisna: klisna, - klobouk: klobouk, - klokan: klokan, - klopa: klopa, - kloub: kloub, - klubovna: klubovna, - klusat: klusat, - kluzkost: kluzkost, - kmen: kmen, - kmitat: kmitat, - kmotr: kmotr, - kniha: kniha, - knot: knot, - koalice: koalice, - koberec: koberec, - kobka: kobka, - kobliha: kobliha, - kobyla: kobyla, - kocour: kocour, - kohout: kohout, - kojenec: kojenec, - kokos: kokos, - koktejl: koktejl, - kolaps: kolaps, - koleda: koleda, - kolize: kolize, - kolo: kolo, - komando: komando, - kometa: kometa, - komik: komik, - komnata: komnata, - komora: komora, - kompas: kompas, - komunita: komunita, - konat: konat, - koncept: koncept, - kondice: kondice, - konec: konec, - konfese: konfese, - kongres: kongres, - konina: konina, - konkurs: konkurs, - kontakt: kontakt, - konzerva: konzerva, - kopanec: kopanec, - kopie: kopie, - kopnout: kopnout, - koprovka: koprovka, - korbel: korbel, - korektor: korektor, - kormidlo: kormidlo, - koroptev: koroptev, - korpus: korpus, - koruna: koruna, - koryto: koryto, - korzet: korzet, - kosatec: kosatec, - kostka: kostka, - kotel: kotel, - kotleta: kotleta, - kotoul: kotoul, - koukat: koukat, - koupelna: koupelna, - kousek: kousek, - kouzlo: kouzlo, - kovboj: kovboj, - koza: koza, - kozoroh: kozoroh, - krabice: krabice, - krach: krach, - krajina: krajina, - kralovat: kralovat, - krasopis: krasopis, - kravata: kravata, - kredit: kredit, - krejcar: krejcar, - kresba: kresba, - kreveta: kreveta, - kriket: kriket, - kritik: kritik, - krize: krize, - krkavec: krkavec, - krmelec: krmelec, - krmivo: krmivo, - krocan: krocan, - krok: krok, - kronika: kronika, - kropit: kropit, - kroupa: kroupa, - krovka: krovka, - krtek: krtek, - kruhadlo: kruhadlo, - krupice: krupice, - krutost: krutost, - krvinka: krvinka, - krychle: krychle, - krypta: krypta, - krystal: krystal, - kryt: kryt, - kudlanka: kudlanka, - kufr: kufr, - kujnost: kujnost, - kukla: kukla, - kulajda: kulajda, - kulich: kulich, - kulka: kulka, - kulomet: kulomet, - kultura: kultura, - kuna: kuna, - kupodivu: kupodivu, - kurt: kurt, - kurzor: kurzor, - kutil: kutil, - kvalita: kvalita, - kvasinka: kvasinka, - kvestor: kvestor, - kynolog: kynolog, - kyselina: kyselina, - kytara: kytara, - kytice: kytice, - kytka: kytka, - kytovec: kytovec, - kyvadlo: kyvadlo, - labrador: labrador, - lachtan: lachtan, - ladnost: ladnost, - laik: laik, - lakomec: lakomec, - lamela: lamela, - lampa: lampa, - lanovka: lanovka, - lasice: lasice, - laso: laso, - lastura: lastura, - latinka: latinka, - lavina: lavina, - lebka: lebka, - leckdy: leckdy, - leden: leden, - lednice: lednice, - ledovka: ledovka, - ledvina: ledvina, - legenda: legenda, - legie: legie, - legrace: legrace, - lehce: lehce, - lehkost: lehkost, - lehnout: lehnout, - lektvar: lektvar, - lenochod: lenochod, - lentilka: lentilka, - lepenka: lepenka, - lepidlo: lepidlo, - letadlo: letadlo, - letec: letec, - letmo: letmo, - letokruh: letokruh, - levhart: levhart, - levitace: levitace, - levobok: levobok, - libra: libra, - lichotka: lichotka, - lidojed: lidojed, - lidskost: lidskost, - lihovina: lihovina, - lijavec: lijavec, - lilek: lilek, - limetka: limetka, - linie: linie, - linka: linka, - linoleum: linoleum, - listopad: listopad, - litina: litina, - litovat: litovat, - lobista: lobista, - lodivod: lodivod, - logika: logika, - logoped: logoped, - lokalita: lokalita, - loket: loket, - lomcovat: lomcovat, - lopata: lopata, - lopuch: lopuch, - lord: lord, - losos: losos, - lotr: lotr, - loudal: loudal, - louh: louh, - louka: louka, - louskat: louskat, - lovec: lovec, - lstivost: lstivost, - lucerna: lucerna, - lucifer: lucifer, - lump: lump, - lusk: lusk, - lustrace: lustrace, - lvice: lvice, - lyra: lyra, - lyrika: lyrika, - lysina: lysina, - madam: madam, - madlo: madlo, - magistr: magistr, - mahagon: mahagon, - majetek: majetek, - majitel: majitel, - majorita: majorita, - makak: makak, - makovice: makovice, - makrela: makrela, - malba: malba, - malina: malina, - malovat: malovat, - malvice: malvice, - maminka: maminka, - mandle: mandle, - manko: manko, - marnost: marnost, - masakr: masakr, - maskot: maskot, - masopust: masopust, - matice: matice, - matrika: matrika, - maturita: maturita, - mazanec: mazanec, - mazivo: mazivo, - mazlit: mazlit, - mazurka: mazurka, - mdloba: mdloba, - mechanik: mechanik, - meditace: meditace, - medovina: medovina, - melasa: melasa, - meloun: meloun, - mentolka: mentolka, - metla: metla, - metoda: metoda, - metr: metr, - mezera: mezera, - migrace: migrace, - mihnout: mihnout, - mihule: mihule, - mikina: mikina, - mikrofon: mikrofon, - milenec: milenec, - milimetr: milimetr, - milost: milost, - mimika: mimika, - mincovna: mincovna, - minibar: minibar, - minomet: minomet, - minulost: minulost, - miska: miska, - mistr: mistr, - mixovat: mixovat, - mladost: mladost, - mlha: mlha, - mlhovina: mlhovina, - mlok: mlok, - mlsat: mlsat, - mluvit: mluvit, - mnich: mnich, - mnohem: mnohem, - mobil: mobil, - mocnost: mocnost, - modelka: modelka, - modlitba: modlitba, - mohyla: mohyla, - mokro: mokro, - molekula: molekula, - momentka: momentka, - monarcha: monarcha, - monokl: monokl, - monstrum: monstrum, - montovat: montovat, - monzun: monzun, - mosaz: mosaz, - moskyt: moskyt, - most: most, - motivace: motivace, - motorka: motorka, - motyka: motyka, - moucha: moucha, - moudrost: moudrost, - mozaika: mozaika, - mozek: mozek, - mozol: mozol, - mramor: mramor, - mravenec: mravenec, - mrkev: mrkev, - mrtvola: mrtvola, - mrzet: mrzet, - mrzutost: mrzutost, - mstitel: mstitel, - mudrc: mudrc, - muflon: muflon, - mulat: mulat, - mumie: mumie, - munice: munice, - muset: muset, - mutace: mutace, - muzeum: muzeum, - muzikant: muzikant, - myslivec: myslivec, - mzda: mzda, - nabourat: nabourat, - nachytat: nachytat, - nadace: nadace, - nadbytek: nadbytek, - nadhoz: nadhoz, - nadobro: nadobro, - nadpis: nadpis, - nahlas: nahlas, - nahnat: nahnat, - nahodile: nahodile, - nahradit: nahradit, - naivita: naivita, - najednou: najednou, - najisto: najisto, - najmout: najmout, - naklonit: naklonit, - nakonec: nakonec, - nakrmit: nakrmit, - nalevo: nalevo, - namazat: namazat, - namluvit: namluvit, - nanometr: nanometr, - naoko: naoko, - naopak: naopak, - naostro: naostro, - napadat: napadat, - napevno: napevno, - naplnit: naplnit, - napnout: napnout, - naposled: naposled, - naprosto: naprosto, - narodit: narodit, - naruby: naruby, - narychlo: narychlo, - nasadit: nasadit, - nasekat: nasekat, - naslepo: naslepo, - nastat: nastat, - natolik: natolik, - navenek: navenek, - navrch: navrch, - navzdory: navzdory, - nazvat: nazvat, - nebe: nebe, - nechat: nechat, - necky: necky, - nedaleko: nedaleko, - nedbat: nedbat, - neduh: neduh, - negace: negace, - nehet: nehet, - nehoda: nehoda, - nejen: nejen, - nejprve: nejprve, - neklid: neklid, - nelibost: nelibost, - nemilost: nemilost, - nemoc: nemoc, - neochota: neochota, - neonka: neonka, - nepokoj: nepokoj, - nerost: nerost, - nerv: nerv, - nesmysl: nesmysl, - nesoulad: nesoulad, - netvor: netvor, - neuron: neuron, - nevina: nevina, - nezvykle: nezvykle, - nicota: nicota, - nijak: nijak, - nikam: nikam, - nikdy: nikdy, - nikl: nikl, - nikterak: nikterak, - nitro: nitro, - nocleh: nocleh, - nohavice: nohavice, - nominace: nominace, - nora: nora, - norek: norek, - nositel: nositel, - nosnost: nosnost, - nouze: nouze, - noviny: noviny, - novota: novota, - nozdra: nozdra, - nuda: nuda, - nudle: nudle, - nuget: nuget, - nutit: nutit, - nutnost: nutnost, - nutrie: nutrie, - nymfa: nymfa, - obal: obal, - obarvit: obarvit, - obava: obava, - obdiv: obdiv, - obec: obec, - obehnat: obehnat, - obejmout: obejmout, - obezita: obezita, - obhajoba: obhajoba, - obilnice: obilnice, - objasnit: objasnit, - objekt: objekt, - obklopit: obklopit, - oblast: oblast, - oblek: oblek, - obliba: obliba, - obloha: obloha, - obluda: obluda, - obnos: obnos, - obohatit: obohatit, - obojek: obojek, - obout: obout, - obrazec: obrazec, - obrna: obrna, - obruba: obruba, - obrys: obrys, - obsah: obsah, - obsluha: obsluha, - obstarat: obstarat, - obuv: obuv, - obvaz: obvaz, - obvinit: obvinit, - obvod: obvod, - obvykle: obvykle, - obyvatel: obyvatel, - obzor: obzor, - ocas: ocas, - ocel: ocel, - ocenit: ocenit, - ochladit: ochladit, - ochota: ochota, - ochrana: ochrana, - ocitnout: ocitnout, - odboj: odboj, - odbyt: odbyt, - odchod: odchod, - odcizit: odcizit, - odebrat: odebrat, - odeslat: odeslat, - odevzdat: odevzdat, - odezva: odezva, - odhadce: odhadce, - odhodit: odhodit, - odjet: odjet, - odjinud: odjinud, - odkaz: odkaz, - odkoupit: odkoupit, - odliv: odliv, - odluka: odluka, - odmlka: odmlka, - odolnost: odolnost, - odpad: odpad, - odpis: odpis, - odplout: odplout, - odpor: odpor, - odpustit: odpustit, - odpykat: odpykat, - odrazka: odrazka, - odsoudit: odsoudit, - odstup: odstup, - odsun: odsun, - odtok: odtok, - odtud: odtud, - odvaha: odvaha, - odveta: odveta, - odvolat: odvolat, - odvracet: odvracet, - odznak: odznak, - ofina: ofina, - ofsajd: ofsajd, - ohlas: ohlas, - ohnisko: ohnisko, - ohrada: ohrada, - ohrozit: ohrozit, - ohryzek: ohryzek, - okap: okap, - okenice: okenice, - oklika: oklika, - okno: okno, - okouzlit: okouzlit, - okovy: okovy, - okrasa: okrasa, - okres: okres, - okrsek: okrsek, - okruh: okruh, - okupant: okupant, - okurka: okurka, - okusit: okusit, - olejnina: olejnina, - olizovat: olizovat, - omak: omak, - omeleta: omeleta, - omezit: omezit, - omladina: omladina, - omlouvat: omlouvat, - omluva: omluva, - omyl: omyl, - onehdy: onehdy, - opakovat: opakovat, - opasek: opasek, - operace: operace, - opice: opice, - opilost: opilost, - opisovat: opisovat, - opora: opora, - opozice: opozice, - opravdu: opravdu, - oproti: oproti, - orbital: orbital, - orchestr: orchestr, - orgie: orgie, - orlice: orlice, - orloj: orloj, - ortel: ortel, - osada: osada, - oschnout: oschnout, - osika: osika, - osivo: osivo, - oslava: oslava, - oslepit: oslepit, - oslnit: oslnit, - oslovit: oslovit, - osnova: osnova, - osoba: osoba, - osolit: osolit, - ospalec: ospalec, - osten: osten, - ostraha: ostraha, - ostuda: ostuda, - ostych: ostych, - osvojit: osvojit, - oteplit: oteplit, - otisk: otisk, - otop: otop, - otrhat: otrhat, - otrlost: otrlost, - otrok: otrok, - otruby: otruby, - otvor: otvor, - ovanout: ovanout, - ovar: ovar, - oves: oves, - ovlivnit: ovlivnit, - ovoce: ovoce, - oxid: oxid, - ozdoba: ozdoba, - pachatel: pachatel, - pacient: pacient, - padouch: padouch, - pahorek: pahorek, - pakt: pakt, - palanda: palanda, - palec: palec, - palivo: palivo, - paluba: paluba, - pamflet: pamflet, - pamlsek: pamlsek, - panenka: panenka, - panika: panika, - panna: panna, - panovat: panovat, - panstvo: panstvo, - pantofle: pantofle, - paprika: paprika, - parketa: parketa, - parodie: parodie, - parta: parta, - paruka: paruka, - paryba: paryba, - paseka: paseka, - pasivita: pasivita, - pastelka: pastelka, - patent: patent, - patrona: patrona, - pavouk: pavouk, - pazneht: pazneht, - pazourek: pazourek, - pecka: pecka, - pedagog: pedagog, - pejsek: pejsek, - peklo: peklo, - peloton: peloton, - penalta: penalta, - pendrek: pendrek, - penze: penze, - periskop: periskop, - pero: pero, - pestrost: pestrost, - petarda: petarda, - petice: petice, - petrolej: petrolej, - pevnina: pevnina, - pexeso: pexeso, - pianista: pianista, - piha: piha, - pijavice: pijavice, - pikle: pikle, - piknik: piknik, - pilina: pilina, - pilnost: pilnost, - pilulka: pilulka, - pinzeta: pinzeta, - pipeta: pipeta, - pisatel: pisatel, - pistole: pistole, - pitevna: pitevna, - pivnice: pivnice, - pivovar: pivovar, - placenta: placenta, - plakat: plakat, - plamen: plamen, - planeta: planeta, - plastika: plastika, - platit: platit, - plavidlo: plavidlo, - plaz: plaz, - plech: plech, - plemeno: plemeno, - plenta: plenta, - ples: ples, - pletivo: pletivo, - plevel: plevel, - plivat: plivat, - plnit: plnit, - plno: plno, - plocha: plocha, - plodina: plodina, - plomba: plomba, - plout: plout, - pluk: pluk, - plyn: plyn, - pobavit: pobavit, - pobyt: pobyt, - pochod: pochod, - pocit: pocit, - poctivec: poctivec, - podat: podat, - podcenit: podcenit, - podepsat: podepsat, - podhled: podhled, - podivit: podivit, - podklad: podklad, - podmanit: podmanit, - podnik: podnik, - podoba: podoba, - podpora: podpora, - podraz: podraz, - podstata: podstata, - podvod: podvod, - podzim: podzim, - poezie: poezie, - pohanka: pohanka, - pohnutka: pohnutka, - pohovor: pohovor, - pohroma: pohroma, - pohyb: pohyb, - pointa: pointa, - pojistka: pojistka, - pojmout: pojmout, - pokazit: pokazit, - pokles: pokles, - pokoj: pokoj, - pokrok: pokrok, - pokuta: pokuta, - pokyn: pokyn, - poledne: poledne, - polibek: polibek, - polknout: polknout, - poloha: poloha, - polynom: polynom, - pomalu: pomalu, - pominout: pominout, - pomlka: pomlka, - pomoc: pomoc, - pomsta: pomsta, - pomyslet: pomyslet, - ponechat: ponechat, - ponorka: ponorka, - ponurost: ponurost, - popadat: popadat, - popel: popel, - popisek: popisek, - poplach: poplach, - poprosit: poprosit, - popsat: popsat, - popud: popud, - poradce: poradce, - porce: porce, - porod: porod, - porucha: porucha, - poryv: poryv, - posadit: posadit, - posed: posed, - posila: posila, - poskok: poskok, - poslanec: poslanec, - posoudit: posoudit, - pospolu: pospolu, - postava: postava, - posudek: posudek, - posyp: posyp, - potah: potah, - potkan: potkan, - potlesk: potlesk, - potomek: potomek, - potrava: potrava, - potupa: potupa, - potvora: potvora, - poukaz: poukaz, - pouto: pouto, - pouzdro: pouzdro, - povaha: povaha, - povidla: povidla, - povlak: povlak, - povoz: povoz, - povrch: povrch, - povstat: povstat, - povyk: povyk, - povzdech: povzdech, - pozdrav: pozdrav, - pozemek: pozemek, - poznatek: poznatek, - pozor: pozor, - pozvat: pozvat, - pracovat: pracovat, - prahory: prahory, - praktika: praktika, - prales: prales, - praotec: praotec, - praporek: praporek, - prase: prase, - pravda: pravda, - princip: princip, - prkno: prkno, - probudit: probudit, - procento: procento, - prodej: prodej, - profese: profese, - prohra: prohra, - projekt: projekt, - prolomit: prolomit, - promile: promile, - pronikat: pronikat, - propad: propad, - prorok: prorok, - prosba: prosba, - proton: proton, - proutek: proutek, - provaz: provaz, - prskavka: prskavka, - prsten: prsten, - prudkost: prudkost, - prut: prut, - prvek: prvek, - prvohory: prvohory, - psanec: psanec, - psovod: psovod, - pstruh: pstruh, - ptactvo: ptactvo, - puberta: puberta, - puch: puch, - pudl: pudl, - pukavec: pukavec, - puklina: puklina, - pukrle: pukrle, - pult: pult, - pumpa: pumpa, - punc: punc, - pupen: pupen, - pusa: pusa, - pusinka: pusinka, - pustina: pustina, - putovat: putovat, - putyka: putyka, - pyramida: pyramida, - pysk: pysk, - pytel: pytel, - racek: racek, - rachot: rachot, - radiace: radiace, - radnice: radnice, - radon: radon, - raft: raft, - ragby: ragby, - raketa: raketa, - rakovina: rakovina, - rameno: rameno, - rampouch: rampouch, - rande: rande, - rarach: rarach, - rarita: rarita, - rasovna: rasovna, - rastr: rastr, - ratolest: ratolest, - razance: razance, - razidlo: razidlo, - reagovat: reagovat, - reakce: reakce, - recept: recept, - redaktor: redaktor, - referent: referent, - reflex: reflex, - rejnok: rejnok, - reklama: reklama, - rekord: rekord, - rekrut: rekrut, - rektor: rektor, - reputace: reputace, - revize: revize, - revma: revma, - revolver: revolver, - rezerva: rezerva, - riskovat: riskovat, - riziko: riziko, - robotika: robotika, - rodokmen: rodokmen, - rohovka: rohovka, - rokle: rokle, - rokoko: rokoko, - romaneto: romaneto, - ropovod: ropovod, - ropucha: ropucha, - rorejs: rorejs, - rosol: rosol, - rostlina: rostlina, - rotmistr: rotmistr, - rotoped: rotoped, - rotunda: rotunda, - roubenka: roubenka, - roucho: roucho, - roup: roup, - roura: roura, - rovina: rovina, - rovnice: rovnice, - rozbor: rozbor, - rozchod: rozchod, - rozdat: rozdat, - rozeznat: rozeznat, - rozhodce: rozhodce, - rozinka: rozinka, - rozjezd: rozjezd, - rozkaz: rozkaz, - rozloha: rozloha, - rozmar: rozmar, - rozpad: rozpad, - rozruch: rozruch, - rozsah: rozsah, - roztok: roztok, - rozum: rozum, - rozvod: rozvod, - rubrika: rubrika, - ruchadlo: ruchadlo, - rukavice: rukavice, - rukopis: rukopis, - ryba: ryba, - rybolov: rybolov, - rychlost: rychlost, - rydlo: rydlo, - rypadlo: rypadlo, - rytina: rytina, - ryzost: ryzost, - sadista: sadista, - sahat: sahat, - sako: sako, - samec: samec, - samizdat: samizdat, - samota: samota, - sanitka: sanitka, - sardinka: sardinka, - sasanka: sasanka, - satelit: satelit, - sazba: sazba, - sazenice: sazenice, - sbor: sbor, - schovat: schovat, - sebranka: sebranka, - secese: secese, - sedadlo: sedadlo, - sediment: sediment, - sedlo: sedlo, - sehnat: sehnat, - sejmout: sejmout, - sekera: sekera, - sekta: sekta, - sekunda: sekunda, - sekvoje: sekvoje, - semeno: semeno, - seno: seno, - servis: servis, - sesadit: sesadit, - seshora: seshora, - seskok: seskok, - seslat: seslat, - sestra: sestra, - sesuv: sesuv, - sesypat: sesypat, - setba: setba, - setina: setina, - setkat: setkat, - setnout: setnout, - setrvat: setrvat, - sever: sever, - seznam: seznam, - shoda: shoda, - shrnout: shrnout, - sifon: sifon, - silnice: silnice, - sirka: sirka, - sirotek: sirotek, - sirup: sirup, - situace: situace, - skafandr: skafandr, - skalisko: skalisko, - skanzen: skanzen, - skaut: skaut, - skeptik: skeptik, - skica: skica, - skladba: skladba, - sklenice: sklenice, - sklo: sklo, - skluz: skluz, - skoba: skoba, - skokan: skokan, - skoro: skoro, - skripta: skripta, - skrz: skrz, - skupina: skupina, - skvost: skvost, - skvrna: skvrna, - slabika: slabika, - sladidlo: sladidlo, - slanina: slanina, - slast: slast, - slavnost: slavnost, - sledovat: sledovat, - slepec: slepec, - sleva: sleva, - slezina: slezina, - slib: slib, - slina: slina, - sliznice: sliznice, - slon: slon, - sloupek: sloupek, - slovo: slovo, - sluch: sluch, - sluha: sluha, - slunce: slunce, - slupka: slupka, - slza: slza, - smaragd: smaragd, - smetana: smetana, - smilstvo: smilstvo, - smlouva: smlouva, - smog: smog, - smrad: smrad, - smrk: smrk, - smrtka: smrtka, - smutek: smutek, - smysl: smysl, - snad: snad, - snaha: snaha, - snob: snob, - sobota: sobota, - socha: socha, - sodovka: sodovka, - sokol: sokol, - sopka: sopka, - sotva: sotva, - souboj: souboj, - soucit: soucit, - soudce: soudce, - souhlas: souhlas, - soulad: soulad, - soumrak: soumrak, - souprava: souprava, - soused: soused, - soutok: soutok, - souviset: souviset, - spalovna: spalovna, - spasitel: spasitel, - spis: spis, - splav: splav, - spodek: spodek, - spojenec: spojenec, - spolu: spolu, - sponzor: sponzor, - spornost: spornost, - spousta: spousta, - sprcha: sprcha, - spustit: spustit, - sranda: sranda, - sraz: sraz, - srdce: srdce, - srna: srna, - srnec: srnec, - srovnat: srovnat, - srpen: srpen, - srst: srst, - srub: srub, - stanice: stanice, - starosta: starosta, - statika: statika, - stavba: stavba, - stehno: stehno, - stezka: stezka, - stodola: stodola, - stolek: stolek, - stopa: stopa, - storno: storno, - stoupat: stoupat, - strach: strach, - stres: stres, - strhnout: strhnout, - strom: strom, - struna: struna, - studna: studna, - stupnice: stupnice, - stvol: stvol, - styk: styk, - subjekt: subjekt, - subtropy: subtropy, - suchar: suchar, - sudost: sudost, - sukno: sukno, - sundat: sundat, - sunout: sunout, - surikata: surikata, - surovina: surovina, - svah: svah, - svalstvo: svalstvo, - svetr: svetr, - svatba: svatba, - svazek: svazek, - svisle: svisle, - svitek: svitek, - svoboda: svoboda, - svodidlo: svodidlo, - svorka: svorka, - svrab: svrab, - sykavka: sykavka, - sykot: sykot, - synek: synek, - synovec: synovec, - sypat: sypat, - sypkost: sypkost, - syrovost: syrovost, - sysel: sysel, - sytost: sytost, - tabletka: tabletka, - tabule: tabule, - tahoun: tahoun, - tajemno: tajemno, - tajfun: tajfun, - tajga: tajga, - tajit: tajit, - tajnost: tajnost, - taktika: taktika, - tamhle: tamhle, - tampon: tampon, - tancovat: tancovat, - tanec: tanec, - tanker: tanker, - tapeta: tapeta, - tavenina: tavenina, - tazatel: tazatel, - technika: technika, - tehdy: tehdy, - tekutina: tekutina, - telefon: telefon, - temnota: temnota, - tendence: tendence, - tenista: tenista, - tenor: tenor, - teplota: teplota, - tepna: tepna, - teprve: teprve, - terapie: terapie, - termoska: termoska, - textil: textil, - ticho: ticho, - tiskopis: tiskopis, - titulek: titulek, - tkadlec: tkadlec, - tkanina: tkanina, - tlapka: tlapka, - tleskat: tleskat, - tlukot: tlukot, - tlupa: tlupa, - tmel: tmel, - toaleta: toaleta, - topinka: topinka, - topol: topol, - torzo: torzo, - touha: touha, - toulec: toulec, - tradice: tradice, - traktor: traktor, - tramp: tramp, - trasa: trasa, - traverza: traverza, - trefit: trefit, - trest: trest, - trezor: trezor, - trhavina: trhavina, - trhlina: trhlina, - trochu: trochu, - trojice: trojice, - troska: troska, - trouba: trouba, - trpce: trpce, - trpitel: trpitel, - trpkost: trpkost, - trubec: trubec, - truchlit: truchlit, - truhlice: truhlice, - trus: trus, - trvat: trvat, - tudy: tudy, - tuhnout: tuhnout, - tuhost: tuhost, - tundra: tundra, - turista: turista, - turnaj: turnaj, - tuzemsko: tuzemsko, - tvaroh: tvaroh, - tvorba: tvorba, - tvrdost: tvrdost, - tvrz: tvrz, - tygr: tygr, - tykev: tykev, - ubohost: ubohost, - uboze: uboze, - ubrat: ubrat, - ubrousek: ubrousek, - ubrus: ubrus, - ubytovna: ubytovna, - ucho: ucho, - uctivost: uctivost, - udivit: udivit, - uhradit: uhradit, - ujednat: ujednat, - ujistit: ujistit, - ujmout: ujmout, - ukazatel: ukazatel, - uklidnit: uklidnit, - uklonit: uklonit, - ukotvit: ukotvit, - ukrojit: ukrojit, - ulice: ulice, - ulita: ulita, - ulovit: ulovit, - umyvadlo: umyvadlo, - unavit: unavit, - uniforma: uniforma, - uniknout: uniknout, - upadnout: upadnout, - uplatnit: uplatnit, - uplynout: uplynout, - upoutat: upoutat, - upravit: upravit, - uran: uran, - urazit: urazit, - usednout: usednout, - usilovat: usilovat, - usmrtit: usmrtit, - usnadnit: usnadnit, - usnout: usnout, - usoudit: usoudit, - ustlat: ustlat, - ustrnout: ustrnout, - utahovat: utahovat, - utkat: utkat, - utlumit: utlumit, - utonout: utonout, - utopenec: utopenec, - utrousit: utrousit, - uvalit: uvalit, - uvolnit: uvolnit, - uvozovka: uvozovka, - uzdravit: uzdravit, - uzel: uzel, - uzenina: uzenina, - uzlina: uzlina, - uznat: uznat, - vagon: vagon, - valcha: valcha, - valoun: valoun, - vana: vana, - vandal: vandal, - vanilka: vanilka, - varan: varan, - varhany: varhany, - varovat: varovat, - vcelku: vcelku, - vchod: vchod, - vdova: vdova, - vedro: vedro, - vegetace: vegetace, - vejce: vejce, - velbloud: velbloud, - veletrh: veletrh, - velitel: velitel, - velmoc: velmoc, - velryba: velryba, - venkov: venkov, - veranda: veranda, - verze: verze, - veselka: veselka, - veskrze: veskrze, - vesnice: vesnice, - vespodu: vespodu, - vesta: vesta, - veterina: veterina, - veverka: veverka, - vibrace: vibrace, - vichr: vichr, - videohra: videohra, - vidina: vidina, - vidle: vidle, - vila: vila, - vinice: vinice, - viset: viset, - vitalita: vitalita, - vize: vize, - vizitka: vizitka, - vjezd: vjezd, - vklad: vklad, - vkus: vkus, - vlajka: vlajka, - vlak: vlak, - vlasec: vlasec, - vlevo: vlevo, - vlhkost: vlhkost, - vliv: vliv, - vlnovka: vlnovka, - vloupat: vloupat, - vnucovat: vnucovat, - vnuk: vnuk, - voda: voda, - vodivost: vodivost, - vodoznak: vodoznak, - vodstvo: vodstvo, - vojensky: vojensky, - vojna: vojna, - vojsko: vojsko, - volant: volant, - volba: volba, - volit: volit, - volno: volno, - voskovka: voskovka, - vozidlo: vozidlo, - vozovna: vozovna, - vpravo: vpravo, - vrabec: vrabec, - vracet: vracet, - vrah: vrah, - vrata: vrata, - vrba: vrba, - vrcholek: vrcholek, - vrhat: vrhat, - vrstva: vrstva, - vrtule: vrtule, - vsadit: vsadit, - vstoupit: vstoupit, - vstup: vstup, - vtip: vtip, - vybavit: vybavit, - vybrat: vybrat, - vychovat: vychovat, - vydat: vydat, - vydra: vydra, - vyfotit: vyfotit, - vyhledat: vyhledat, - vyhnout: vyhnout, - vyhodit: vyhodit, - vyhradit: vyhradit, - vyhubit: vyhubit, - vyjasnit: vyjasnit, - vyjet: vyjet, - vyjmout: vyjmout, - vyklopit: vyklopit, - vykonat: vykonat, - vylekat: vylekat, - vymazat: vymazat, - vymezit: vymezit, - vymizet: vymizet, - vymyslet: vymyslet, - vynechat: vynechat, - vynikat: vynikat, - vynutit: vynutit, - vypadat: vypadat, - vyplatit: vyplatit, - vypravit: vypravit, - vypustit: vypustit, - vyrazit: vyrazit, - vyrovnat: vyrovnat, - vyrvat: vyrvat, - vyslovit: vyslovit, - vysoko: vysoko, - vystavit: vystavit, - vysunout: vysunout, - vysypat: vysypat, - vytasit: vytasit, - vytesat: vytesat, - vytratit: vytratit, - vyvinout: vyvinout, - vyvolat: vyvolat, - vyvrhel: vyvrhel, - vyzdobit: vyzdobit, - vyznat: vyznat, - vzadu: vzadu, - vzbudit: vzbudit, - vzchopit: vzchopit, - vzdor: vzdor, - vzduch: vzduch, - vzdychat: vzdychat, - vzestup: vzestup, - vzhledem: vzhledem, - vzkaz: vzkaz, - vzlykat: vzlykat, - vznik: vznik, - vzorek: vzorek, - vzpoura: vzpoura, - vztah: vztah, - vztek: vztek, - xylofon: xylofon, - zabrat: zabrat, - zabydlet: zabydlet, - zachovat: zachovat, - zadarmo: zadarmo, - zadusit: zadusit, - zafoukat: zafoukat, - zahltit: zahltit, - zahodit: zahodit, - zahrada: zahrada, - zahynout: zahynout, - zajatec: zajatec, - zajet: zajet, - zajistit: zajistit, - zaklepat: zaklepat, - zakoupit: zakoupit, - zalepit: zalepit, - zamezit: zamezit, - zamotat: zamotat, - zamyslet: zamyslet, - zanechat: zanechat, - zanikat: zanikat, - zaplatit: zaplatit, - zapojit: zapojit, - zapsat: zapsat, - zarazit: zarazit, - zastavit: zastavit, - zasunout: zasunout, - zatajit: zatajit, - zatemnit: zatemnit, - zatknout: zatknout, - zaujmout: zaujmout, - zavalit: zavalit, - zavelet: zavelet, - zavinit: zavinit, - zavolat: zavolat, - zavrtat: zavrtat, - zazvonit: zazvonit, - zbavit: zbavit, - zbrusu: zbrusu, - zbudovat: zbudovat, - zbytek: zbytek, - zdaleka: zdaleka, - zdarma: zdarma, - zdatnost: zdatnost, - zdivo: zdivo, - zdobit: zdobit, - zdroj: zdroj, - zdvih: zdvih, - zdymadlo: zdymadlo, - zelenina: zelenina, - zeman: zeman, - zemina: zemina, - zeptat: zeptat, - zezadu: zezadu, - zezdola: zezdola, - zhatit: zhatit, - zhltnout: zhltnout, - zhluboka: zhluboka, - zhotovit: zhotovit, - zhruba: zhruba, - zima: zima, - zimnice: zimnice, - zjemnit: zjemnit, - zklamat: zklamat, - zkoumat: zkoumat, - zkratka: zkratka, - zkumavka: zkumavka, - zlato: zlato, - zlehka: zlehka, - zloba: zloba, - zlom: zlom, - zlost: zlost, - zlozvyk: zlozvyk, - zmapovat: zmapovat, - zmar: zmar, - zmatek: zmatek, - zmije: zmije, - zmizet: zmizet, - zmocnit: zmocnit, - zmodrat: zmodrat, - zmrzlina: zmrzlina, - zmutovat: zmutovat, - znak: znak, - znalost: znalost, - znamenat: znamenat, - znovu: znovu, - zobrazit: zobrazit, - zotavit: zotavit, - zoubek: zoubek, - zoufale: zoufale, - zplodit: zplodit, - zpomalit: zpomalit, - zprava: zprava, - zprostit: zprostit, - zprudka: zprudka, - zprvu: zprvu, - zrada: zrada, - zranit: zranit, - zrcadlo: zrcadlo, - zrnitost: zrnitost, - zrno: zrno, - zrovna: zrovna, - zrychlit: zrychlit, - zrzavost: zrzavost, - zticha: zticha, - ztratit: ztratit, - zubovina: zubovina, - zubr: zubr, - zvednout: zvednout, - zvenku: zvenku, - zvesela: zvesela, - zvon: zvon, - zvrat: zvrat, - zvukovod: zvukovod, - zvyk: zvyk, - abandon: abandon, - ability: ability, - able: able, - about: about, - above: above, - absent: absent, - absorb: absorb, - abstract: abstract, - absurd: absurd, - abuse: abuse, - access: access, - accident: accident, - account: account, - accuse: accuse, - achieve: achieve, - acid: acid, - acoustic: acoustic, - acquire: acquire, - across: across, - act: act, - action: action, - actor: actor, - actress: actress, - actual: actual, - adapt: adapt, - add: add, - addict: addict, - address: address$1, - adjust: adjust, - admit: admit, - adult: adult, - advance: advance, - advice: advice, - aerobic: aerobic, - affair: affair, - afford: afford, - afraid: afraid, - again: again, - age: age, - agent: agent, - agree: agree, - ahead: ahead, - aim: aim, - air: air, - airport: airport, - aisle: aisle, - alarm: alarm, - album: album, - alcohol: alcohol, - alert: alert, - alien: alien, - all: all, - alley: alley, - allow: allow, - almost: almost, - alone: alone, - alpha: alpha, - already: already, - also: also, - alter: alter, - always: always, - amateur: amateur, - amazing: amazing, - among: among, - amount: amount, - amused: amused, - analyst: analyst, - anchor: anchor, - ancient: ancient, - anger: anger, - angle: angle, - angry: angry, - animal: animal, - ankle: ankle, - announce: announce, - annual: annual, - another: another, - answer: answer, - antenna: antenna, - antique: antique, - anxiety: anxiety, - any: any, - apart: apart, - apology: apology, - appear: appear, - apple: apple, - approve: approve, - april: april, - arch: arch, - arctic: arctic, - area: area, - arena: arena, - argue: argue, - arm: arm, - armed: armed, - armor: armor, - army: army, - around: around, - arrange: arrange, - arrest: arrest, - arrive: arrive, - arrow: arrow, - art: art, - artefact: artefact, - artist: artist, - artwork: artwork, - ask: ask, - aspect: aspect, - assault: assault, - asset: asset, - assist: assist, - assume: assume, - asthma: asthma, - athlete: athlete, - atom: atom, - attack: attack, - attend: attend, - attitude: attitude, - attract: attract, - auction: auction, - audit: audit, - august: august, - aunt: aunt, - author: author, - auto: auto, - autumn: autumn, - average: average, - avocado: avocado, - avoid: avoid, - awake: awake, - aware: aware, - away: away, - awesome: awesome, - awful: awful, - awkward: awkward, - axis: axis, - baby: baby, - bachelor: bachelor, - bacon: bacon, - badge: badge, - bag: bag, - balance: balance, - balcony: balcony, - ball: ball, - bamboo: bamboo, - banana: banana, - banner: banner, - bar: bar, - barely: barely, - bargain: bargain, - barrel: barrel, - base: base, - basic: basic, - basket: basket, - battle: battle, - beach: beach, - bean: bean, - beauty: beauty, - because: because, - become: become, - beef: beef, - before: before, - begin: begin, - behave: behave, - behind: behind, - believe: believe, - below: below, - belt: belt, - bench: bench, - benefit: benefit, - best: best, - betray: betray, - better: better, - between: between, - beyond: beyond, - bicycle: bicycle, - bid: bid, - bike: bike, - bind: bind, - biology: biology, - bird: bird, - birth: birth, - bitter: bitter, - black: black, - blade: blade, - blame: blame, - blanket: blanket, - blast: blast, - bleak: bleak, - bless: bless, - blind: blind, - blood: blood, - blossom: blossom, - blouse: blouse, - blue: blue, - blur: blur, - blush: blush, - board: board, - boat: boat, - body: body, - boil: boil, - bomb: bomb, - bone: bone, - bonus: bonus, - book: book, - boost: boost, - border: border, - boring: boring, - borrow: borrow, - boss: boss, - bottom: bottom, - bounce: bounce, - box: box, - boy: boy, - bracket: bracket, - brain: brain, - brand: brand, - brass: brass, - brave: brave, - bread: bread, - breeze: breeze, - brick: brick, - bridge: bridge, - brief: brief, - bright: bright, - bring: bring, - brisk: brisk, - broccoli: broccoli, - broken: broken, - bronze: bronze, - broom: broom, - brother: brother, - brown: brown, - brush: brush, - bubble: bubble, - buddy: buddy, - budget: budget, - buffalo: buffalo, - build: build, - bulb: bulb, - bulk: bulk, - bullet: bullet, - bundle: bundle, - bunker: bunker, - burden: burden, - burger: burger, - burst: burst, - bus: bus, - business: business, - busy: busy, - butter: butter, - buyer: buyer, - buzz: buzz, - cabbage: cabbage, - cabin: cabin, - cable: cable, - cactus: cactus, - cage: cage, - cake: cake, - call: call, - calm: calm, - camera: camera, - camp: camp, - can: can, - canal: canal, - cancel: cancel, - candy: candy, - cannon: cannon, - canoe: canoe, - canvas: canvas, - canyon: canyon, - capable: capable, - capital: capital, - captain: captain, - car: car, - carbon: carbon, - card: card, - cargo: cargo, - carpet: carpet, - carry: carry, - cart: cart, - "case": [ - "english" - ], - cash: cash, - casino: casino, - castle: castle, - casual: casual, - cat: cat, - catalog: catalog, - "catch": [ - "english" - ], - category: category, - cattle: cattle, - caught: caught, - cause: cause, - caution: caution, - cave: cave, - ceiling: ceiling, - celery: celery, - cement: cement, - census: census, - century: century, - cereal: cereal, - certain: certain, - chair: chair, - chalk: chalk, - champion: champion, - change: change, - chaos: chaos, - chapter: chapter, - charge: charge, - chase: chase, - chat: chat, - cheap: cheap, - check: check, - cheese: cheese, - chef: chef, - cherry: cherry, - chest: chest, - chicken: chicken, - chief: chief, - child: child, - chimney: chimney, - choice: choice, - choose: choose, - chronic: chronic, - chuckle: chuckle, - chunk: chunk, - churn: churn, - cigar: cigar, - cinnamon: cinnamon, - circle: circle, - citizen: citizen, - city: city, - civil: civil, - claim: claim, - clap: clap, - clarify: clarify, - claw: claw, - clay: clay, - clean: clean, - clerk: clerk, - clever: clever, - click: click, - client: client, - cliff: cliff, - climb: climb, - clinic: clinic, - clip: clip, - clock: clock, - clog: clog, - close: close, - cloth: cloth, - cloud: cloud, - clown: clown, - club: club, - clump: clump, - cluster: cluster, - clutch: clutch, - coach: coach, - coast: coast, - coconut: coconut, - code: code, - coffee: coffee, - coil: coil, - coin: coin, - collect: collect, - color: color, - column: column, - combine: combine, - come: come, - comfort: comfort, - comic: comic, - common: common$1, - company: company, - concert: concert, - conduct: conduct, - confirm: confirm, - congress: congress, - connect: connect, - consider: consider, - control: control, - convince: convince, - cook: cook, - cool: cool, - copper: copper, - copy: copy, - coral: coral, - core: core, - corn: corn, - correct: correct, - cost: cost, - cotton: cotton, - couch: couch, - country: country, - couple: couple, - course: course, - cousin: cousin, - cover: cover, - coyote: coyote, - crack: crack, - cradle: cradle, - craft: craft, - cram: cram, - crane: crane, - crash: crash, - crater: crater, - crawl: crawl, - crazy: crazy, - cream: cream, - credit: credit, - creek: creek, - crew: crew, - cricket: cricket, - crime: crime, - crisp: crisp, - critic: critic, - crop: crop, - cross: cross, - crouch: crouch, - crowd: crowd, - crucial: crucial, - cruel: cruel, - cruise: cruise, - crumble: crumble, - crunch: crunch, - crush: crush, - cry: cry, - crystal: crystal, - cube: cube, - culture: culture, - cup: cup, - cupboard: cupboard, - curious: curious, - current: current, - curtain: curtain, - curve: curve$2, - cushion: cushion, - custom: custom, - cute: cute, - cycle: cycle, - dad: dad, - damage: damage, - damp: damp, - dance: dance, - danger: danger, - daring: daring, - dash: dash, - daughter: daughter, - dawn: dawn, - day: day, - deal: deal, - debate: debate, - debris: debris, - decade: decade, - december: december, - decide: decide, - decline: decline, - decorate: decorate, - decrease: decrease, - deer: deer, - defense: defense, - define: define, - defy: defy, - degree: degree, - delay: delay, - deliver: deliver, - demand: demand, - demise: demise, - denial: denial, - dentist: dentist, - deny: deny, - depart: depart, - depend: depend, - deposit: deposit, - depth: depth, - deputy: deputy, - derive: derive, - describe: describe, - desert: desert, - design: design, - desk: desk, - despair: despair, - destroy: destroy, - detail: detail, - detect: detect, - develop: develop, - device: device, - devote: devote, - diagram: diagram, - dial: dial, - diamond: diamond, - diary: diary, - dice: dice, - diesel: diesel, - diet: diet, - differ: differ, - digital: digital, - dignity: dignity, - dilemma: dilemma, - dinner: dinner, - dinosaur: dinosaur, - direct: direct, - dirt: dirt, - disagree: disagree, - discover: discover, - disease: disease, - dish: dish, - dismiss: dismiss, - disorder: disorder, - display: display, - distance: distance, - divert: divert, - divide: divide, - divorce: divorce, - dizzy: dizzy, - doctor: doctor, - document: document$1, - dog: dog, - doll: doll, - dolphin: dolphin, - domain: domain, - donate: donate, - donkey: donkey, - donor: donor, - door: door, - dose: dose, - double: double, - dove: dove, - draft: draft, - dragon: dragon, - drama: drama, - drastic: drastic, - draw: draw, - dream: dream, - dress: dress, - drift: drift, - drill: drill, - drink: drink, - drip: drip, - drive: drive, - drop: drop, - drum: drum, - dry: dry, - duck: duck, - dumb: dumb, - dune: dune, - during: during, - dust: dust, - dutch: dutch, - duty: duty, - dwarf: dwarf, - dynamic: dynamic, - eager: eager, - eagle: eagle, - early: early, - earn: earn, - earth: earth, - easily: easily, - east: east, - easy: easy, - echo: echo, - ecology: ecology, - economy: economy, - edge: edge, - edit: edit, - educate: educate, - effort: effort, - egg: egg, - eight: eight, - either: either, - elbow: elbow, - elder: elder, - electric: electric, - elegant: elegant, - element: element, - elephant: elephant, - elevator: elevator, - elite: elite, - "else": [ - "english" - ], - embark: embark, - embody: embody, - embrace: embrace, - emerge: emerge, - emotion: emotion, - employ: employ, - empower: empower, - empty: empty, - enable: enable, - enact: enact, - end: end, - endless: endless, - endorse: endorse, - enemy: enemy, - energy: energy, - enforce: enforce, - engage: engage, - engine: engine, - enhance: enhance, - enjoy: enjoy, - enlist: enlist, - enough: enough, - enrich: enrich, - enroll: enroll, - ensure: ensure, - enter: enter, - entire: entire, - entry: entry, - envelope: envelope, - episode: episode, - equal: equal, - equip: equip, - era: era, - erase: erase, - erode: erode, - erosion: erosion, - error: error$1, - erupt: erupt, - "escape": [ - "english" - ], - essay: essay, - essence: essence, - estate: estate, - eternal: eternal, - ethics: ethics, - evidence: evidence, - evil: evil, - evoke: evoke, - evolve: evolve, - exact: exact, - example: example, - excess: excess, - exchange: exchange, - excite: excite, - exclude: exclude, - excuse: excuse, - execute: execute, - exercise: exercise, - exhaust: exhaust, - exhibit: exhibit, - exile: exile, - exist: exist, - exit: exit, - exotic: exotic, - expand: expand, - expect: expect, - expire: expire, - explain: explain, - expose: expose, - express: express, - extend: extend, - extra: extra, - eye: eye, - eyebrow: eyebrow, - fabric: fabric, - face: face, - faculty: faculty, - fade: fade, - faint: faint, - faith: faith, - fall: fall, - "false": [ - "english" - ], - fame: fame, - family: family, - famous: famous, - fan: fan, - fancy: fancy, - fantasy: fantasy, - farm: farm, - fashion: fashion, - fat: fat, - fatal: fatal, - father: father, - fatigue: fatigue, - fault: fault, - favorite: favorite, - feature: feature, - february: february, - federal: federal, - fee: fee, - feed: feed, - feel: feel, - female: female, - fence: fence, - festival: festival, - fetch: fetch, - fever: fever, - few: few, - fiber: fiber, - fiction: fiction, - field: field, - figure: figure, - file: file, - film: film, - filter: filter, - final: final, - find: find, - fine: fine, - finger: finger, - finish: finish, - fire: fire, - firm: firm, - first: first, - fiscal: fiscal, - fish: fish, - fit: fit, - fitness: fitness, - fix: fix, - flag: flag, - flame: flame, - flash: flash, - flat: flat, - flavor: flavor, - flee: flee, - flight: flight, - flip: flip, - float: float, - flock: flock, - floor: floor, - flower: flower, - fluid: fluid, - flush: flush, - fly: fly, - foam: foam, - focus: focus, - fog: fog, - foil: foil, - fold: fold, - follow: follow, - food: food, - foot: foot, - force: force, - forest: forest, - forget: forget, - fork: fork, - fortune: fortune, - forum: forum, - forward: forward, - fossil: fossil, - foster: foster, - found: found, - fox: fox, - fragile: fragile, - frame: frame, - frequent: frequent, - fresh: fresh, - friend: friend, - fringe: fringe, - frog: frog, - front: front, - frost: frost, - frown: frown, - frozen: frozen, - fruit: fruit, - fuel: fuel, - fun: fun, - funny: funny, - furnace: furnace, - fury: fury, - future: future, - gadget: gadget, - gain: gain, - galaxy: galaxy, - gallery: gallery, - game: game, - gap: gap, - garage: garage, - garbage: garbage, - garden: garden, - garlic: garlic, - garment: garment, - gas: gas, - gasp: gasp, - gate: gate, - gather: gather, - gauge: gauge, - gaze: gaze, - general: general, - genius: genius, - genre: genre, - gentle: gentle, - genuine: genuine, - gesture: gesture, - ghost: ghost, - giant: giant, - gift: gift, - giggle: giggle, - ginger: ginger, - giraffe: giraffe, - girl: girl, - give: give, - glad: glad, - glance: glance, - glare: glare, - glass: glass, - glide: glide, - glimpse: glimpse, - globe: globe, - gloom: gloom, - glory: glory, - glove: glove, - glow: glow, - glue: glue, - goat: goat, - goddess: goddess, - gold: gold, - good: good, - goose: goose, - gorilla: gorilla, - gospel: gospel, - gossip: gossip, - govern: govern, - gown: gown, - grab: grab, - grace: grace, - grain: grain, - grant: grant, - grape: grape, - grass: grass, - gravity: gravity, - great: great, - green: green, - grid: grid, - grief: grief, - grit: grit, - grocery: grocery, - group: group, - grow: grow, - grunt: grunt, - guard: guard$1, - guess: guess, - guide: guide, - guilt: guilt, - guitar: guitar, - gun: gun, - gym: gym, - habit: habit, - hair: hair, - half: half, - hammer: hammer, - hamster: hamster, - hand: hand, - happy: happy, - harbor: harbor, - hard: hard, - harsh: harsh, - harvest: harvest, - hat: hat, - have: have, - hawk: hawk, - hazard: hazard, - head: head, - health: health, - heart: heart, - heavy: heavy, - hedgehog: hedgehog, - height: height, - hello: hello, - helmet: helmet, - help: help, - hen: hen, - hero: hero, - hidden: hidden, - high: high, - hill: hill, - hint: hint, - hip: hip, - hire: hire, - history: history, - hobby: hobby, - hockey: hockey, - hold: hold, - hole: hole, - holiday: holiday, - hollow: hollow, - home: home, - honey: honey, - hood: hood, - hope: hope, - horn: horn, - horror: horror, - horse: horse, - hospital: hospital, - host: host, - hotel: hotel, - hour: hour, - hover: hover, - hub: hub, - huge: huge, - human: human, - humble: humble, - humor: humor, - hundred: hundred, - hungry: hungry, - hunt: hunt, - hurdle: hurdle, - hurry: hurry, - hurt: hurt, - husband: husband, - hybrid: hybrid, - ice: ice, - icon: icon, - idea: idea, - identify: identify, - idle: idle, - ignore: ignore, - ill: ill, - illegal: illegal, - illness: illness, - image: image, - imitate: imitate, - immense: immense, - immune: immune, - impact: impact, - impose: impose, - improve: improve, - impulse: impulse, - inch: inch, - include: include, - income: income, - increase: increase, - index: index$1, - indicate: indicate, - indoor: indoor, - industry: industry, - infant: infant, - inflict: inflict, - inform: inform, - inhale: inhale, - inherit: inherit, - initial: initial, - inject: inject, - injury: injury, - inmate: inmate, - inner: inner, - innocent: innocent, - input: input, - inquiry: inquiry, - insane: insane, - insect: insect, - inside: inside, - inspire: inspire, - install: install, - intact: intact, - interest: interest, - into: into, - invest: invest, - invite: invite, - involve: involve, - iron: iron, - island: island, - isolate: isolate, - issue: issue, - item: item, - ivory: ivory, - jacket: jacket, - jaguar: jaguar, - jar: jar, - jazz: jazz, - jealous: jealous, - jeans: jeans, - jelly: jelly, - jewel: jewel, - job: job, - join: join, - joke: joke, - journey: journey, - joy: joy, - judge: judge, - juice: juice, - jump: jump, - jungle: jungle, - junior: junior, - junk: junk, - just: just, - kangaroo: kangaroo, - keen: keen, - keep: keep, - ketchup: ketchup, - key: key, - kick: kick, - kid: kid, - kidney: kidney, - kind: kind, - kingdom: kingdom, - kiss: kiss, - kit: kit, - kitchen: kitchen, - kite: kite, - kitten: kitten, - kiwi: kiwi, - knee: knee, - knife: knife, - knock: knock, - know: know, - lab: lab, - label: label, - labor: labor, - ladder: ladder, - lady: lady, - lake: lake, - lamp: lamp, - language: language, - laptop: laptop, - large: large, - later: later, - latin: latin, - laugh: laugh, - laundry: laundry, - lava: lava, - law: law, - lawn: lawn, - lawsuit: lawsuit, - layer: layer, - lazy: lazy, - leader: leader, - leaf: leaf, - learn: learn, - leave: leave, - lecture: lecture, - left: left, - leg: leg, - legal: legal, - legend: legend, - leisure: leisure, - lemon: lemon, - lend: lend, - length: length, - lens: lens, - leopard: leopard, - lesson: lesson, - letter: letter, - level: level, - liar: liar, - liberty: liberty, - library: library, - license: license, - life: life, - lift: lift, - light: light, - like: like, - limb: limb, - limit: limit, - link: link, - lion: lion, - liquid: liquid, - list: list, - little: little, - live: live, - lizard: lizard, - load: load, - loan: loan, - lobster: lobster, - local: local, - lock: lock, - logic: logic, - lonely: lonely, - long: long, - loop: loop, - lottery: lottery, - loud: loud, - lounge: lounge, - love: love, - loyal: loyal, - lucky: lucky, - luggage: luggage, - lumber: lumber, - lunar: lunar, - lunch: lunch, - luxury: luxury, - lyrics: lyrics, - machine: machine, - mad: mad, - magic: magic, - magnet: magnet, - maid: maid, - mail: mail, - main: main, - major: major, - make: make, - mammal: mammal, - man: man, - manage: manage, - mandate: mandate, - mango: mango, - mansion: mansion, - manual: manual, - maple: maple, - marble: marble, - march: march, - margin: margin, - marine: marine, - market: market, - marriage: marriage, - mask: mask, - mass: mass, - master: master, - match: match, - material: material, - math: math, - matrix: matrix, - matter: matter, - maximum: maximum, - maze: maze, - meadow: meadow, - mean: mean, - measure: measure, - meat: meat, - mechanic: mechanic, - medal: medal, - media: media, - melody: melody, - melt: melt, - member: member, - memory: memory, - mention: mention, - menu: menu, - mercy: mercy, - merge: merge, - merit: merit, - merry: merry, - mesh: mesh, - message: message, - metal: metal, - method: method, - middle: middle, - midnight: midnight, - milk: milk, - million: million, - mimic: mimic, - mind: mind, - minimum: minimum, - minor: minor, - minute: minute, - miracle: miracle, - mirror: mirror, - misery: misery, - miss: miss, - mistake: mistake, - mix: mix, - mixed: mixed, - mixture: mixture, - mobile: mobile, - model: model, - modify: modify, - mom: mom, - moment: moment, - monitor: monitor, - monkey: monkey, - monster: monster, - month: month, - moon: moon, - moral: moral, - more: more, - morning: morning, - mosquito: mosquito, - mother: mother, - motion: motion, - motor: motor, - mountain: mountain, - mouse: mouse, - move: move, - movie: movie, - much: much, - muffin: muffin, - mule: mule, - multiply: multiply, - muscle: muscle, - museum: museum, - mushroom: mushroom, - music: music, - must: must, - mutual: mutual, - myself: myself, - mystery: mystery, - myth: myth, - naive: naive, - name: name, - napkin: napkin, - narrow: narrow, - nasty: nasty, - nation: nation, - nature: nature, - near: near, - neck: neck, - need: need, - negative: negative, - neglect: neglect, - neither: neither, - nephew: nephew, - nerve: nerve, - nest: nest, - net: net, - network: network, - neutral: neutral, - never: never, - news: news, - next: next, - nice: nice, - night: night, - noble: noble, - noise: noise, - nominee: nominee, - noodle: noodle, - normal: normal, - north: north, - nose: nose, - notable: notable, - note: note, - nothing: nothing, - notice: notice, - novel: novel, - now: now, - nuclear: nuclear, - number: number$1, - nurse: nurse, - nut: nut, - oak: oak, - obey: obey, - object: object, - oblige: oblige, - obscure: obscure, - observe: observe, - obtain: obtain, - obvious: obvious, - occur: occur, - ocean: ocean, - october: october, - odor: odor, - off: off, - offer: offer, - office: office, - often: often, - oil: oil, - okay: okay, - old: old, - olive: olive, - olympic: olympic, - omit: omit, - once: once, - one: one, - onion: onion, - online: online, - only: only, - open: open, - opera: opera, - opinion: opinion, - oppose: oppose, - option: option, - orange: orange, - orbit: orbit, - orchard: orchard, - order: order, - ordinary: ordinary, - organ: organ, - orient: orient, - original: original, - orphan: orphan, - ostrich: ostrich, - other: other, - outdoor: outdoor, - outer: outer, - output: output, - outside: outside, - oval: oval, - oven: oven, - over: over, - own: own, - owner: owner, - oxygen: oxygen, - oyster: oyster, - ozone: ozone, - pact: pact, - paddle: paddle, - page: page, - pair: pair, - palace: palace, - palm: palm, - panda: panda, - panel: panel, - panic: panic, - panther: panther, - paper: paper, - parade: parade, - parent: parent, - park: park, - parrot: parrot, - party: party, - pass: pass, - patch: patch, - path: path, - patient: patient, - patrol: patrol, - pattern: pattern, - pause: pause, - pave: pave, - payment: payment, - peace: peace, - peanut: peanut, - pear: pear, - peasant: peasant, - pelican: pelican, - pen: pen, - penalty: penalty, - pencil: pencil, - people: people, - pepper: pepper, - perfect: perfect, - permit: permit, - person: person, - pet: pet, - phone: phone, - photo: photo, - phrase: phrase, - physical: physical, - piano: piano, - picnic: picnic, - picture: picture, - piece: piece, - pig: pig, - pigeon: pigeon, - pill: pill, - pilot: pilot, - pink: pink, - pioneer: pioneer, - pipe: pipe, - pistol: pistol, - pitch: pitch, - pizza: pizza, - place: place, - planet: planet, - plastic: plastic, - plate: plate, - play: play, - please: please, - pledge: pledge, - pluck: pluck, - plug: plug, - plunge: plunge, - poem: poem, - poet: poet, - point: point, - polar: polar, - pole: pole, - police: police, - pond: pond, - pony: pony, - pool: pool, - popular: popular, - portion: portion, - position: position, - possible: possible, - post: post, - potato: potato, - pottery: pottery, - poverty: poverty, - powder: powder, - power: power, - practice: practice, - praise: praise, - predict: predict, - prefer: prefer, - prepare: prepare, - present: present, - pretty: pretty, - prevent: prevent, - price: price, - pride: pride, - primary: primary, - print: print$1, - priority: priority, - prison: prison, - "private": [ - "english" - ], - prize: prize, - problem: problem, - process: process$1, - produce: produce, - profit: profit, - program: program, - project: project, - promote: promote, - proof: proof, - property: property, - prosper: prosper, - protect: protect, - proud: proud, - provide: provide, - "public": [ - "english", - "french" - ], - pudding: pudding, - pull: pull, - pulp: pulp, - pulse: pulse, - pumpkin: pumpkin, - punch: punch, - pupil: pupil, - puppy: puppy, - purchase: purchase, - purity: purity, - purpose: purpose, - purse: purse, - push: push, - put: put, - puzzle: puzzle, - pyramid: pyramid, - quality: quality, - quantum: quantum, - quarter: quarter, - question: question, - quick: quick, - quit: quit, - quiz: quiz, - quote: quote, - rabbit: rabbit, - raccoon: raccoon, - race: race, - rack: rack, - radar: radar, - radio: radio, - rail: rail, - rain: rain, - raise: raise, - rally: rally, - ramp: ramp, - ranch: ranch, - random: random, - range: range$1, - rapid: rapid, - rare: rare, - rate: rate, - rather: rather, - raven: raven, - raw: raw, - razor: razor, - ready: ready, - real: real, - reason: reason, - rebel: rebel, - rebuild: rebuild, - recall: recall, - receive: receive, - recipe: recipe, - record: record, - recycle: recycle, - reduce: reduce, - reflect: reflect, - reform: reform, - refuse: refuse, - region: region, - regret: regret, - regular: regular, - reject: reject, - relax: relax, - release: release, - relief: relief, - rely: rely, - remain: remain, - remember: remember, - remind: remind, - remove: remove, - render: render, - renew: renew, - rent: rent, - reopen: reopen, - repair: repair, - repeat: repeat, - replace: replace, - report: report, - require: require$1, - rescue: rescue, - resemble: resemble, - resist: resist, - resource: resource, - response: response, - result: result, - retire: retire, - retreat: retreat, - "return": [ - "english" - ], - reunion: reunion, - reveal: reveal, - review: review, - reward: reward, - rhythm: rhythm, - rib: rib, - ribbon: ribbon, - rice: rice, - rich: rich, - ride: ride, - ridge: ridge, - rifle: rifle, - right: right, - rigid: rigid, - ring: ring, - riot: riot, - ripple: ripple, - risk: risk, - ritual: ritual, - rival: rival, - river: river, - road: road, - roast: roast, - robot: robot, - robust: robust, - rocket: rocket, - romance: romance, - roof: roof, - rookie: rookie, - room: room, - rose: rose, - rotate: rotate, - rough: rough, - round: round, - route: route, - royal: royal, - rubber: rubber, - rude: rude, - rug: rug, - rule: rule, - run: run, - runway: runway, - rural: rural, - sad: sad, - saddle: saddle, - sadness: sadness, - safe: safe, - sail: sail, - salad: salad, - salmon: salmon, - salon: salon, - salt: salt, - salute: salute, - same: same, - sample: sample, - sand: sand, - satisfy: satisfy, - satoshi: satoshi, - sauce: sauce, - sausage: sausage, - save: save, - say: say, - scale: scale, - scan: scan, - scare: scare, - scatter: scatter, - scene: scene, - scheme: scheme, - school: school, - science: science, - scissors: scissors, - scorpion: scorpion, - scout: scout, - scrap: scrap, - screen: screen, - script: script, - scrub: scrub, - sea: sea, - search: search, - season: season, - seat: seat, - second: second, - secret: secret, - section: section, - security: security, - seed: seed, - seek: seek, - segment: segment, - select: select, - sell: sell, - seminar: seminar, - senior: senior, - sense: sense, - sentence: sentence, - series: series, - service: service, - session: session, - settle: settle, - setup: setup, - seven: seven, - shadow: shadow, - shaft: shaft, - shallow: shallow, - share: share, - shed: shed, - shell: shell, - sheriff: sheriff, - shield: shield, - shift: shift, - shine: shine, - ship: ship, - shiver: shiver, - shock: shock, - shoe: shoe, - shoot: shoot, - shop: shop, - short: short, - shoulder: shoulder, - shove: shove, - shrimp: shrimp, - shrug: shrug, - shuffle: shuffle, - shy: shy, - sibling: sibling, - sick: sick, - side: side, - siege: siege, - sight: sight, - sign: sign, - silent: silent, - silk: silk, - silly: silly, - silver: silver, - similar: similar, - simple: simple, - since: since, - sing: sing, - siren: siren, - sister: sister, - situate: situate, - six: six, - size: size, - skate: skate, - sketch: sketch, - ski: ski, - skill: skill, - skin: skin, - skirt: skirt, - skull: skull, - slab: slab, - slam: slam, - sleep: sleep, - slender: slender, - slice: slice, - slide: slide, - slight: slight, - slim: slim, - slogan: slogan, - slot: slot, - slow: slow, - slush: slush, - small: small, - smart: smart, - smile: smile, - smoke: smoke, - smooth: smooth, - snack: snack, - snake: snake, - snap: snap, - sniff: sniff, - snow: snow, - soap: soap, - soccer: soccer, - social: social, - sock: sock, - soda: soda, - soft: soft, - solar: solar, - soldier: soldier, - solid: solid, - solution: solution, - solve: solve, - someone: someone, - song: song, - soon: soon, - sorry: sorry, - sort: sort, - soul: soul, - sound: sound, - soup: soup, - source: source, - south: south, - space: space, - spare: spare, - spatial: spatial, - spawn: spawn, - speak: speak, - special: special, - speed: speed, - spell: spell, - spend: spend, - sphere: sphere, - spice: spice, - spider: spider, - spike: spike, - spin: spin, - spirit: spirit, - split: split, - spoil: spoil, - sponsor: sponsor, - spoon: spoon, - sport: sport, - spot: spot, - spray: spray, - spread: spread, - spring: spring, - spy: spy, - square: square, - squeeze: squeeze, - squirrel: squirrel, - stable: stable, - stadium: stadium, - staff: staff, - stage: stage, - stairs: stairs, - stamp: stamp, - stand: stand, - start: start, - state: state, - stay: stay, - steak: steak, - steel: steel, - stem: stem, - step: step, - stereo: stereo, - stick: stick, - still: still, - sting: sting, - stock: stock, - stomach: stomach, - stone: stone, - stool: stool, - story: story, - stove: stove, - strategy: strategy, - street: street, - strike: strike, - strong: strong, - struggle: struggle, - student: student, - stuff: stuff, - stumble: stumble, - style: style, - subject: subject, - submit: submit, - subway: subway, - success: success, - such: such, - sudden: sudden, - suffer: suffer, - sugar: sugar, - suggest: suggest, - suit: suit, - summer: summer, - sun: sun, - sunny: sunny, - sunset: sunset, - "super": [ - "english" - ], - supply: supply, - supreme: supreme, - sure: sure, - surface: surface, - surge: surge, - surprise: surprise, - surround: surround, - survey: survey, - suspect: suspect, - sustain: sustain, - swallow: swallow, - swamp: swamp, - swap: swap, - swarm: swarm, - swear: swear, - sweet: sweet, - swift: swift, - swim: swim, - swing: swing, - "switch": [ - "english" - ], - sword: sword, - symbol: symbol, - symptom: symptom, - syrup: syrup, - system: system, - table: table, - tackle: tackle, - tag: tag, - tail: tail, - talent: talent, - talk: talk, - tank: tank, - tape: tape, - target: target, - task: task, - taste: taste, - tattoo: tattoo, - taxi: taxi, - teach: teach, - team: team, - tell: tell, - ten: ten, - tenant: tenant, - tennis: tennis, - tent: tent, - term: term, - test: test, - text: text, - thank: thank, - that: that, - theme: theme, - then: then, - theory: theory, - there: there, - they: they, - thing: thing, - "this": [ - "english" - ], - thought: thought, - three: three, - thrive: thrive, - "throw": [ - "english" - ], - thumb: thumb, - thunder: thunder, - ticket: ticket, - tide: tide, - tiger: tiger, - tilt: tilt, - timber: timber, - time: time$1, - tiny: tiny, - tip: tip, - tired: tired, - tissue: tissue, - title: title, - toast: toast, - tobacco: tobacco, - today: today, - toddler: toddler, - toe: toe, - together: together, - toilet: toilet, - token: token, - tomato: tomato, - tomorrow: tomorrow, - tone: tone, - tongue: tongue, - tonight: tonight, - tool: tool, - tooth: tooth, - top: top, - topic: topic, - topple: topple, - torch: torch, - tornado: tornado, - tortoise: tortoise, - toss: toss, - total: total, - tourist: tourist, - toward: toward, - tower: tower, - town: town, - toy: toy, - track: track, - trade: trade, - traffic: traffic, - tragic: tragic, - train: train, - transfer: transfer, - trap: trap, - trash: trash, - travel: travel, - tray: tray, - treat: treat, - tree: tree, - trend: trend, - trial: trial, - tribe: tribe, - trick: trick, - trigger: trigger, - trim: trim, - trip: trip, - trophy: trophy, - trouble: trouble, - truck: truck, - "true": [ - "english" - ], - truly: truly, - trumpet: trumpet, - trust: trust, - truth: truth, - "try": [ - "english" - ], - tube: tube, - tuition: tuition, - tumble: tumble, - tuna: tuna, - tunnel: tunnel, - turkey: turkey, - turn: turn, - turtle: turtle, - twelve: twelve, - twenty: twenty, - twice: twice, - twin: twin, - twist: twist, - two: two, - type: type, - typical: typical, - ugly: ugly, - umbrella: umbrella, - unable: unable, - unaware: unaware, - uncle: uncle, - uncover: uncover, - under: under, - undo: undo, - unfair: unfair, - unfold: unfold, - unhappy: unhappy, - uniform: uniform, - unique: unique, - unit: unit, - universe: universe, - unknown: unknown, - unlock: unlock, - until: until, - unusual: unusual, - unveil: unveil, - update: update, - upgrade: upgrade, - uphold: uphold, - upon: upon, - upper: upper, - upset: upset, - urban: urban, - urge: urge, - usage: usage, - use: use, - used: used, - useful: useful, - useless: useless, - usual: usual, - utility: utility, - vacant: vacant, - vacuum: vacuum, - vague: vague, - valid: valid$1, - valley: valley, - valve: valve, - van: van, - vanish: vanish, - vapor: vapor, - various: various, - vast: vast, - vault: vault, - vehicle: vehicle, - velvet: velvet, - vendor: vendor, - venture: venture, - venue: venue, - verb: verb, - verify: verify, - version: version, - very: very, - vessel: vessel, - veteran: veteran, - viable: viable, - vibrant: vibrant, - vicious: vicious, - victory: victory, - video: video, - view: view, - village: village, - vintage: vintage, - violin: violin, - virtual: virtual, - virus: virus, - visa: visa, - visit: visit, - visual: visual, - vital: vital, - vivid: vivid, - vocal: vocal, - voice: voice, - "void": [ - "english" - ], - volcano: volcano, - volume: volume, - vote: vote, - voyage: voyage, - wage: wage, - wagon: wagon, - wait: wait, - walk: walk, - wall: wall, - walnut: walnut, - want: want, - warfare: warfare, - warm: warm, - warrior: warrior, - wash: wash, - wasp: wasp, - waste: waste, - water: water, - wave: wave, - way: way, - wealth: wealth, - weapon: weapon, - wear: wear, - weasel: weasel, - weather: weather, - web: web, - wedding: wedding, - weekend: weekend, - weird: weird, - welcome: welcome, - west: west, - wet: wet, - whale: whale, - what: what, - wheat: wheat, - wheel: wheel, - when: when, - where: where, - whip: whip, - whisper: whisper, - wide: wide, - width: width, - wife: wife, - wild: wild, - will: will, - win: win, - window: window$1, - wine: wine, - wing: wing, - wink: wink, - winner: winner, - winter: winter, - wire: wire, - wisdom: wisdom, - wise: wise, - wish: wish, - witness: witness, - wolf: wolf, - woman: woman, - wonder: wonder, - wood: wood, - wool: wool, - word: word, - work: work, - world: world, - worry: worry, - worth: worth, - wrap: wrap, - wreck: wreck, - wrestle: wrestle, - wrist: wrist, - write: write, - wrong: wrong, - yard: yard, - year: year, - yellow: yellow, - you: you, - young: young, - youth: youth, - zebra: zebra, - zero: zero, - zone: zone, - zoo: zoo, - abaisser: abaisser, - abdiquer: abdiquer, - abeille: abeille, - abolir: abolir, - aborder: aborder, - aboutir: aboutir, - aboyer: aboyer, - abrasif: abrasif, - abreuver: abreuver, - abriter: abriter, - abroger: abroger, - abrupt: abrupt, - absence: absence, - absolu: absolu, - absurde: absurde, - abusif: abusif, - abyssal: abyssal, - "académie": [ - "french" - ], - acajou: acajou, - acarien: acarien, - accabler: accabler, - accepter: accepter, - acclamer: acclamer, - accolade: accolade, - accroche: accroche, - accuser: accuser, - acerbe: acerbe, - achat: achat, - acheter: acheter, - aciduler: aciduler, - acier: acier, - acompte: acompte, - "acquérir": [ - "french" - ], - acronyme: acronyme, - acteur: acteur, - actif: actif, - actuel: actuel, - adepte: adepte, - "adéquat": [ - "french" - ], - "adhésif": [ - "french" - ], - adjectif: adjectif, - adjuger: adjuger, - admettre: admettre, - admirer: admirer, - adopter: adopter, - adorer: adorer, - adoucir: adoucir, - adresse: adresse, - adroit: adroit, - adulte: adulte, - adverbe: adverbe, - "aérer": [ - "french" - ], - "aéronef": [ - "french" - ], - affaire: affaire, - affecter: affecter, - affiche: affiche, - affreux: affreux, - affubler: affubler, - agacer: agacer, - agencer: agencer, - agile: agile, - agiter: agiter, - agrafer: agrafer, - "agréable": [ - "french" - ], - agrume: agrume, - aider: aider, - aiguille: aiguille, - ailier: ailier, - aimable: aimable, - aisance: aisance, - ajouter: ajouter, - ajuster: ajuster, - alarmer: alarmer, - alchimie: alchimie, - alerte: alerte, - "algèbre": [ - "french" - ], - algue: algue, - "aliéner": [ - "french" - ], - aliment: aliment, - "alléger": [ - "french" - ], - alliage: alliage, - allouer: allouer, - allumer: allumer, - alourdir: alourdir, - alpaga: alpaga, - altesse: altesse, - "alvéole": [ - "french" - ], - ambigu: ambigu, - ambre: ambre, - "aménager": [ - "french" - ], - amertume: amertume, - amidon: amidon, - amiral: amiral, - amorcer: amorcer, - amour: amour, - amovible: amovible, - amphibie: amphibie, - ampleur: ampleur, - amusant: amusant, - analyse: analyse, - anaphore: anaphore, - anarchie: anarchie, - anatomie: anatomie, - ancien: ancien, - "anéantir": [ - "french" - ], - angoisse: angoisse, - anguleux: anguleux, - annexer: annexer, - annonce: annonce, - annuel: annuel, - anodin: anodin, - anomalie: anomalie, - anonyme: anonyme, - anormal: anormal, - antenne: antenne, - antidote: antidote, - anxieux: anxieux, - apaiser: apaiser, - "apéritif": [ - "french" - ], - aplanir: aplanir, - apologie: apologie, - appareil: appareil, - appeler: appeler, - apporter: apporter, - appuyer: appuyer, - aquarium: aquarium, - aqueduc: aqueduc, - arbitre: arbitre, - arbuste: arbuste, - ardeur: ardeur, - ardoise: ardoise, - argent: argent, - arlequin: arlequin, - armature: armature, - armement: armement, - armoire: armoire, - armure: armure, - arpenter: arpenter, - arracher: arracher, - arriver: arriver, - arroser: arroser, - arsenic: arsenic, - "artériel": [ - "french" - ], - article: article, - asphalte: asphalte, - aspirer: aspirer, - assaut: assaut, - asservir: asservir, - assiette: assiette, - associer: associer, - assurer: assurer, - asticot: asticot, - astre: astre, - astuce: astuce, - atelier: atelier, - atome: atome, - atrium: atrium, - atroce: atroce, - attaque: attaque, - attentif: attentif, - attirer: attirer, - attraper: attraper, - aubaine: aubaine, - auberge: auberge, - audace: audace, - audible: audible, - augurer: augurer, - aurore: aurore, - automne: automne, - autruche: autruche, - avaler: avaler, - avancer: avancer, - avarice: avarice, - avenir: avenir, - averse: averse, - aveugle: aveugle, - aviateur: aviateur, - avide: avide, - avion: avion, - aviser: aviser, - avoine: avoine, - avouer: avouer, - avril: avril, - axial: axial, - axiome: axiome, - bafouer: bafouer, - bagage: bagage, - baguette: baguette, - baignade: baignade, - balancer: balancer, - balcon: balcon, - baleine: baleine, - balisage: balisage, - bambin: bambin, - bancaire: bancaire, - bandage: bandage, - banlieue: banlieue, - "bannière": [ - "french" - ], - banquier: banquier, - barbier: barbier, - baril: baril, - baron: baron, - barque: barque, - barrage: barrage, - bassin: bassin, - bastion: bastion, - bataille: bataille, - bateau: bateau, - batterie: batterie, - baudrier: baudrier, - bavarder: bavarder, - belette: belette, - "bélier": [ - "french" - ], - belote: belote, - "bénéfice": [ - "french" - ], - berceau: berceau, - berger: berger, - berline: berline, - bermuda: bermuda, - besace: besace, - besogne: besogne, - "bétail": [ - "french" - ], - beurre: beurre, - biberon: biberon, - bidule: bidule, - bijou: bijou, - bilan: bilan, - bilingue: bilingue, - billard: billard, - binaire: binaire, - biologie: biologie, - biopsie: biopsie, - biotype: biotype, - biscuit: biscuit, - bison: bison, - bistouri: bistouri, - bitume: bitume, - bizarre: bizarre, - blafard: blafard, - blague: blague, - blanchir: blanchir, - blessant: blessant, - blinder: blinder, - blond: blond, - bloquer: bloquer, - blouson: blouson, - bobard: bobard, - bobine: bobine, - boire: boire, - boiser: boiser, - bolide: bolide, - bonbon: bonbon, - bondir: bondir, - bonheur: bonheur, - bonifier: bonifier, - bordure: bordure, - borne: borne, - botte: botte, - boucle: boucle, - boueux: boueux, - bougie: bougie, - boulon: boulon, - bouquin: bouquin, - bourse: bourse, - boussole: boussole, - boutique: boutique, - boxeur: boxeur, - branche: branche, - brasier: brasier, - brebis: brebis, - "brèche": [ - "french" - ], - breuvage: breuvage, - bricoler: bricoler, - brigade: brigade, - brillant: brillant, - brioche: brioche, - brique: brique, - brochure: brochure, - broder: broder, - bronzer: bronzer, - brousse: brousse, - broyeur: broyeur, - brume: brume, - brusque: brusque, - brutal: brutal, - bruyant: bruyant, - buffle: buffle, - buisson: buisson, - bulletin: bulletin, - bureau: bureau, - burin: burin, - bustier: bustier, - butiner: butiner, - butoir: butoir, - buvable: buvable, - buvette: buvette, - cabanon: cabanon, - cabine: cabine, - cachette: cachette, - cadeau: cadeau, - cadre: cadre, - "caféine": [ - "french" - ], - caillou: caillou, - caisson: caisson, - calculer: calculer, - calepin: calepin, - calibre: calibre, - calmer: calmer, - calomnie: calomnie, - calvaire: calvaire, - camarade: camarade, - "caméra": [ - "french" - ], - camion: camion, - campagne: campagne, - caneton: caneton, - canon: canon, - cantine: cantine, - canular: canular, - caporal: caporal, - caprice: caprice, - capsule: capsule, - capter: capter, - capuche: capuche, - carabine: carabine, - carbone: carbone, - caresser: caresser, - caribou: caribou, - carnage: carnage, - carotte: carotte, - carreau: carreau, - carton: carton, - cascade: cascade, - casier: casier, - casque: casque, - cassure: cassure, - causer: causer, - cavalier: cavalier, - caverne: caverne, - caviar: caviar, - "cédille": [ - "french" - ], - ceinture: ceinture, - "céleste": [ - "french" - ], - cellule: cellule, - cendrier: cendrier, - censurer: censurer, - central: central, - cercle: cercle, - "cérébral": [ - "french" - ], - cerise: cerise, - cerner: cerner, - cerveau: cerveau, - cesser: cesser, - chagrin: chagrin, - chaise: chaise, - chaleur: chaleur, - chambre: chambre, - chance: chance, - chapitre: chapitre, - charbon: charbon, - chasseur: chasseur, - chaton: chaton, - chausson: chausson, - chavirer: chavirer, - chemise: chemise, - chenille: chenille, - "chéquier": [ - "french" - ], - chercher: chercher, - cheval: cheval, - chien: chien, - chiffre: chiffre, - chignon: chignon, - "chimère": [ - "french" - ], - chiot: chiot, - chlorure: chlorure, - chocolat: chocolat, - choisir: choisir, - chose: chose, - chouette: chouette, - chrome: chrome, - chute: chute, - cigare: cigare, - cigogne: cigogne, - cimenter: cimenter, - "cinéma": [ - "french" - ], - cintrer: cintrer, - circuler: circuler, - cirer: cirer, - cirque: cirque, - citerne: citerne, - citoyen: citoyen, - citron: citron, - clairon: clairon, - clameur: clameur, - claquer: claquer, - classe: classe, - clavier: clavier, - cligner: cligner, - climat: climat, - clivage: clivage, - cloche: cloche, - clonage: clonage, - cloporte: cloporte, - cobalt: cobalt, - cobra: cobra, - cocasse: cocasse, - cocotier: cocotier, - coder: coder, - codifier: codifier, - coffre: coffre, - cogner: cogner, - "cohésion": [ - "french" - ], - coiffer: coiffer, - coincer: coincer, - "colère": [ - "french" - ], - colibri: colibri, - colline: colline, - colmater: colmater, - colonel: colonel, - combat: combat, - "comédie": [ - "french" - ], - commande: commande, - compact: compact, - conduire: conduire, - confier: confier, - congeler: congeler, - connoter: connoter, - consonne: consonne, - contact: contact, - convexe: convexe, - copain: copain, - copie: copie, - corail: corail, - corbeau: corbeau, - cordage: cordage, - corniche: corniche, - corpus: corpus, - "cortège": [ - "french" - ], - cosmique: cosmique, - costume: costume, - coton: coton, - coude: coude, - coupure: coupure, - courage: courage, - couteau: couteau, - couvrir: couvrir, - crabe: crabe, - crainte: crainte, - cravate: cravate, - crayon: crayon, - "créature": [ - "french" - ], - "créditer": [ - "french" - ], - "crémeux": [ - "french" - ], - creuser: creuser, - crevette: crevette, - cribler: cribler, - crier: crier, - cristal: cristal, - "critère": [ - "french" - ], - croire: croire, - croquer: croquer, - crotale: crotale, - crypter: crypter, - cubique: cubique, - cueillir: cueillir, - "cuillère": [ - "french" - ], - cuisine: cuisine, - cuivre: cuivre, - culminer: culminer, - cultiver: cultiver, - cumuler: cumuler, - cupide: cupide, - curatif: curatif, - curseur: curseur, - cyanure: cyanure, - cylindre: cylindre, - cynique: cynique, - daigner: daigner, - damier: damier, - danseur: danseur, - dauphin: dauphin, - "débattre": [ - "french" - ], - "débiter": [ - "french" - ], - "déborder": [ - "french" - ], - "débrider": [ - "french" - ], - "débutant": [ - "french" - ], - "décaler": [ - "french" - ], - "décembre": [ - "french" - ], - "déchirer": [ - "french" - ], - "décider": [ - "french" - ], - "déclarer": [ - "french" - ], - "décorer": [ - "french" - ], - "décrire": [ - "french" - ], - "décupler": [ - "french" - ], - "dédale": [ - "french" - ], - "déductif": [ - "french" - ], - "déesse": [ - "french" - ], - "défensif": [ - "french" - ], - "défiler": [ - "french" - ], - "défrayer": [ - "french" - ], - "dégager": [ - "french" - ], - "dégivrer": [ - "french" - ], - "déglutir": [ - "french" - ], - "dégrafer": [ - "french" - ], - "déjeuner": [ - "french" - ], - "délice": [ - "french" - ], - "déloger": [ - "french" - ], - demander: demander, - demeurer: demeurer, - "démolir": [ - "french" - ], - "dénicher": [ - "french" - ], - "dénouer": [ - "french" - ], - dentelle: dentelle, - "dénuder": [ - "french" - ], - "départ": [ - "french" - ], - "dépenser": [ - "french" - ], - "déphaser": [ - "french" - ], - "déplacer": [ - "french" - ], - "déposer": [ - "french" - ], - "déranger": [ - "french" - ], - "dérober": [ - "french" - ], - "désastre": [ - "french" - ], - descente: descente, - "désert": [ - "french" - ], - "désigner": [ - "french" - ], - "désobéir": [ - "french" - ], - dessiner: dessiner, - destrier: destrier, - "détacher": [ - "french" - ], - "détester": [ - "french" - ], - "détourer": [ - "french" - ], - "détresse": [ - "french" - ], - devancer: devancer, - devenir: devenir, - deviner: deviner, - devoir: devoir, - diable: diable, - dialogue: dialogue, - diamant: diamant, - dicter: dicter, - "différer": [ - "french" - ], - "digérer": [ - "french" - ], - digne: digne, - diluer: diluer, - dimanche: dimanche, - diminuer: diminuer, - dioxyde: dioxyde, - directif: directif, - diriger: diriger, - discuter: discuter, - disposer: disposer, - dissiper: dissiper, - divertir: divertir, - diviser: diviser, - docile: docile, - docteur: docteur, - dogme: dogme, - doigt: doigt, - domaine: domaine, - domicile: domicile, - dompter: dompter, - donateur: donateur, - donjon: donjon, - donner: donner, - dopamine: dopamine, - dortoir: dortoir, - dorure: dorure, - dosage: dosage, - doseur: doseur, - dossier: dossier, - dotation: dotation, - douanier: douanier, - douceur: douceur, - douter: douter, - doyen: doyen, - draper: draper, - dresser: dresser, - dribbler: dribbler, - droiture: droiture, - duperie: duperie, - duplexe: duplexe, - durable: durable, - durcir: durcir, - dynastie: dynastie, - "éblouir": [ - "french" - ], - "écarter": [ - "french" - ], - "écharpe": [ - "french" - ], - "échelle": [ - "french" - ], - "éclairer": [ - "french" - ], - "éclipse": [ - "french" - ], - "éclore": [ - "french" - ], - "écluse": [ - "french" - ], - "école": [ - "french" - ], - "économie": [ - "french" - ], - "écorce": [ - "french" - ], - "écouter": [ - "french" - ], - "écraser": [ - "french" - ], - "écrémer": [ - "french" - ], - "écrivain": [ - "french" - ], - "écrou": [ - "french" - ], - "écume": [ - "french" - ], - "écureuil": [ - "french" - ], - "édifier": [ - "french" - ], - "éduquer": [ - "french" - ], - effacer: effacer, - effectif: effectif, - effigie: effigie, - effrayer: effrayer, - effusion: effusion, - "égaliser": [ - "french" - ], - "égarer": [ - "french" - ], - "éjecter": [ - "french" - ], - "élaborer": [ - "french" - ], - "élargir": [ - "french" - ], - "électron": [ - "french" - ], - "élégant": [ - "french" - ], - "éléphant": [ - "french" - ], - "élève": [ - "french" - ], - "éligible": [ - "french" - ], - "élitisme": [ - "french" - ], - "éloge": [ - "french" - ], - "élucider": [ - "french" - ], - "éluder": [ - "french" - ], - emballer: emballer, - embellir: embellir, - embryon: embryon, - "émeraude": [ - "french" - ], - "émission": [ - "french" - ], - emmener: emmener, - "émotion": [ - "french" - ], - "émouvoir": [ - "french" - ], - empereur: empereur, - employer: employer, - emporter: emporter, - emprise: emprise, - "émulsion": [ - "french" - ], - encadrer: encadrer, - "enchère": [ - "french" - ], - enclave: enclave, - encoche: encoche, - endiguer: endiguer, - endosser: endosser, - endroit: endroit, - enduire: enduire, - "énergie": [ - "french" - ], - enfance: enfance, - enfermer: enfermer, - enfouir: enfouir, - engager: engager, - engin: engin, - englober: englober, - "énigme": [ - "french" - ], - enjamber: enjamber, - enjeu: enjeu, - enlever: enlever, - ennemi: ennemi, - ennuyeux: ennuyeux, - enrichir: enrichir, - enrobage: enrobage, - enseigne: enseigne, - entasser: entasser, - entendre: entendre, - entier: entier, - entourer: entourer, - entraver: entraver, - "énumérer": [ - "french" - ], - envahir: envahir, - enviable: enviable, - envoyer: envoyer, - enzyme: enzyme, - "éolien": [ - "french" - ], - "épaissir": [ - "french" - ], - "épargne": [ - "french" - ], - "épatant": [ - "french" - ], - "épaule": [ - "french" - ], - "épicerie": [ - "french" - ], - "épidémie": [ - "french" - ], - "épier": [ - "french" - ], - "épilogue": [ - "french" - ], - "épine": [ - "french" - ], - "épisode": [ - "french" - ], - "épitaphe": [ - "french" - ], - "époque": [ - "french" - ], - "épreuve": [ - "french" - ], - "éprouver": [ - "french" - ], - "épuisant": [ - "french" - ], - "équerre": [ - "french" - ], - "équipe": [ - "french" - ], - "ériger": [ - "french" - ], - "érosion": [ - "french" - ], - erreur: erreur, - "éruption": [ - "french" - ], - escalier: escalier, - espadon: espadon, - "espèce": [ - "french" - ], - "espiègle": [ - "french" - ], - espoir: espoir, - esprit: esprit, - esquiver: esquiver, - essayer: essayer, - essieu: essieu, - essorer: essorer, - estime: estime, - estomac: estomac, - estrade: estrade, - "étagère": [ - "french" - ], - "étaler": [ - "french" - ], - "étanche": [ - "french" - ], - "étatique": [ - "french" - ], - "éteindre": [ - "french" - ], - "étendoir": [ - "french" - ], - "éternel": [ - "french" - ], - "éthanol": [ - "french" - ], - "éthique": [ - "french" - ], - ethnie: ethnie, - "étirer": [ - "french" - ], - "étoffer": [ - "french" - ], - "étoile": [ - "french" - ], - "étonnant": [ - "french" - ], - "étourdir": [ - "french" - ], - "étrange": [ - "french" - ], - "étroit": [ - "french" - ], - "étude": [ - "french" - ], - euphorie: euphorie, - "évaluer": [ - "french" - ], - "évasion": [ - "french" - ], - "éventail": [ - "french" - ], - "évidence": [ - "french" - ], - "éviter": [ - "french" - ], - "évolutif": [ - "french" - ], - "évoquer": [ - "french" - ], - "exagérer": [ - "french" - ], - exaucer: exaucer, - exceller: exceller, - excitant: excitant, - exclusif: exclusif, - "exécuter": [ - "french" - ], - exemple: exemple, - exercer: exercer, - exhaler: exhaler, - exhorter: exhorter, - exigence: exigence, - exiler: exiler, - exister: exister, - exotique: exotique, - "expédier": [ - "french" - ], - explorer: explorer, - exposer: exposer, - exprimer: exprimer, - exquis: exquis, - extensif: extensif, - extraire: extraire, - exulter: exulter, - fable: fable, - fabuleux: fabuleux, - facette: facette, - facile: facile, - facture: facture, - faiblir: faiblir, - falaise: falaise, - fameux: fameux, - famille: famille, - farceur: farceur, - farfelu: farfelu, - farine: farine, - farouche: farouche, - fasciner: fasciner, - faucon: faucon, - fautif: fautif, - faveur: faveur, - favori: favori, - "fébrile": [ - "french" - ], - "féconder": [ - "french" - ], - "fédérer": [ - "french" - ], - "félin": [ - "french" - ], - femme: femme, - "fémur": [ - "french" - ], - fendoir: fendoir, - "féodal": [ - "french" - ], - fermer: fermer, - "féroce": [ - "french" - ], - ferveur: ferveur, - feuille: feuille, - feutre: feutre, - "février": [ - "french" - ], - fiasco: fiasco, - ficeler: ficeler, - fictif: fictif, - "fidèle": [ - "french" - ], - filature: filature, - filetage: filetage, - "filière": [ - "french" - ], - filleul: filleul, - filmer: filmer, - filou: filou, - filtrer: filtrer, - financer: financer, - finir: finir, - fiole: fiole, - firme: firme, - fissure: fissure, - fixer: fixer, - flairer: flairer, - flamme: flamme, - flasque: flasque, - flatteur: flatteur, - "fléau": [ - "french" - ], - "flèche": [ - "french" - ], - fleur: fleur, - flexion: flexion, - flocon: flocon, - flore: flore, - fluctuer: fluctuer, - fluide: fluide, - fluvial: fluvial, - folie: folie, - fonderie: fonderie, - fongible: fongible, - fontaine: fontaine, - forcer: forcer, - forgeron: forgeron, - formuler: formuler, - fossile: fossile, - foudre: foudre, - "fougère": [ - "french" - ], - fouiller: fouiller, - foulure: foulure, - fourmi: fourmi, - fraise: fraise, - franchir: franchir, - frapper: frapper, - frayeur: frayeur, - "frégate": [ - "french" - ], - freiner: freiner, - frelon: frelon, - "frémir": [ - "french" - ], - "frénésie": [ - "french" - ], - "frère": [ - "french" - ], - friable: friable, - friction: friction, - frisson: frisson, - frivole: frivole, - froid: froid, - fromage: fromage, - frontal: frontal, - frotter: frotter, - fugitif: fugitif, - fuite: fuite, - fureur: fureur, - furieux: furieux, - furtif: furtif, - fusion: fusion, - futur: futur, - gagner: gagner, - galaxie: galaxie, - galerie: galerie, - gambader: gambader, - garantir: garantir, - gardien: gardien, - garnir: garnir, - garrigue: garrigue, - gazelle: gazelle, - gazon: gazon, - "géant": [ - "french" - ], - "gélatine": [ - "french" - ], - "gélule": [ - "french" - ], - gendarme: gendarme, - "général": [ - "french" - ], - "génie": [ - "french" - ], - genou: genou, - gentil: gentil, - "géologie": [ - "french" - ], - "géomètre": [ - "french" - ], - "géranium": [ - "french" - ], - germe: germe, - gestuel: gestuel, - geyser: geyser, - gibier: gibier, - gicler: gicler, - girafe: girafe, - givre: givre, - glace: glace, - glaive: glaive, - glisser: glisser, - gloire: gloire, - glorieux: glorieux, - golfeur: golfeur, - gomme: gomme, - gonfler: gonfler, - gorge: gorge, - gorille: gorille, - goudron: goudron, - gouffre: gouffre, - goulot: goulot, - goupille: goupille, - gourmand: gourmand, - goutte: goutte, - graduel: graduel, - graffiti: graffiti, - graine: graine, - grand: grand, - grappin: grappin, - gratuit: gratuit, - gravir: gravir, - grenat: grenat, - griffure: griffure, - griller: griller, - grimper: grimper, - grogner: grogner, - gronder: gronder, - grotte: grotte, - groupe: groupe, - gruger: gruger, - grutier: grutier, - "gruyère": [ - "french" - ], - "guépard": [ - "french" - ], - guerrier: guerrier, - guimauve: guimauve, - guitare: guitare, - gustatif: gustatif, - gymnaste: gymnaste, - gyrostat: gyrostat, - habitude: habitude, - hachoir: hachoir, - halte: halte, - hameau: hameau, - hangar: hangar, - hanneton: hanneton, - haricot: haricot, - harmonie: harmonie, - harpon: harpon, - hasard: hasard, - "hélium": [ - "french" - ], - "hématome": [ - "french" - ], - herbe: herbe, - "hérisson": [ - "french" - ], - hermine: hermine, - "héron": [ - "french" - ], - "hésiter": [ - "french" - ], - heureux: heureux, - hiberner: hiberner, - hibou: hibou, - hilarant: hilarant, - histoire: histoire, - hiver: hiver, - homard: homard, - hommage: hommage, - "homogène": [ - "french" - ], - honneur: honneur, - honorer: honorer, - honteux: honteux, - horde: horde, - horizon: horizon, - horloge: horloge, - hormone: hormone, - horrible: horrible, - houleux: houleux, - housse: housse, - hublot: hublot, - huileux: huileux, - humain: humain, - humide: humide, - humour: humour, - hurler: hurler, - hydromel: hydromel, - "hygiène": [ - "french" - ], - hymne: hymne, - hypnose: hypnose, - idylle: idylle, - ignorer: ignorer, - iguane: iguane, - illicite: illicite, - illusion: illusion, - imbiber: imbiber, - imiter: imiter, - immobile: immobile, - immuable: immuable, - "impérial": [ - "french" - ], - implorer: implorer, - imposer: imposer, - imprimer: imprimer, - imputer: imputer, - incarner: incarner, - incendie: incendie, - incident: incident, - incliner: incliner, - incolore: incolore, - indexer: indexer, - indice: indice, - inductif: inductif, - "inédit": [ - "french" - ], - ineptie: ineptie, - inexact: inexact, - infini: infini, - infliger: infliger, - informer: informer, - infusion: infusion, - "ingérer": [ - "french" - ], - inhaler: inhaler, - inhiber: inhiber, - injecter: injecter, - injure: injure, - inoculer: inoculer, - inonder: inonder, - inscrire: inscrire, - insecte: insecte, - insigne: insigne, - insolite: insolite, - inspirer: inspirer, - instinct: instinct, - insulter: insulter, - intense: intense, - intime: intime, - intrigue: intrigue, - intuitif: intuitif, - inutile: inutile, - invasion: invasion, - inventer: inventer, - inviter: inviter, - invoquer: invoquer, - ironique: ironique, - irradier: irradier, - "irréel": [ - "french" - ], - irriter: irriter, - isoler: isoler, - ivoire: ivoire, - ivresse: ivresse, - jaillir: jaillir, - jambe: jambe, - janvier: janvier, - jardin: jardin, - jauger: jauger, - jaune: jaune, - javelot: javelot, - jetable: jetable, - jeton: jeton, - jeudi: jeudi, - jeunesse: jeunesse, - joindre: joindre, - joncher: joncher, - jongler: jongler, - joueur: joueur, - jouissif: jouissif, - journal: journal, - jovial: jovial, - joyau: joyau, - joyeux: joyeux, - jubiler: jubiler, - jugement: jugement, - jupon: jupon, - juriste: juriste, - justice: justice, - juteux: juteux, - "juvénile": [ - "french" - ], - kayak: kayak, - kimono: kimono, - kiosque: kiosque, - labial: labial, - labourer: labourer, - "lacérer": [ - "french" - ], - lactose: lactose, - lagune: lagune, - laine: laine, - laisser: laisser, - laitier: laitier, - lambeau: lambeau, - lamelle: lamelle, - lampe: lampe, - lanceur: lanceur, - langage: langage, - lanterne: lanterne, - lapin: lapin, - largeur: largeur, - larme: larme, - laurier: laurier, - lavabo: lavabo, - lavoir: lavoir, - "légal": [ - "french" - ], - "léger": [ - "french" - ], - "légume": [ - "french" - ], - lessive: lessive, - lettre: lettre, - levier: levier, - lexique: lexique, - "lézard": [ - "french" - ], - liasse: liasse, - "libérer": [ - "french" - ], - libre: libre, - licence: licence, - licorne: licorne, - "liège": [ - "french" - ], - "lièvre": [ - "french" - ], - ligature: ligature, - ligoter: ligoter, - ligue: ligue, - limer: limer, - limite: limite, - limonade: limonade, - limpide: limpide, - "linéaire": [ - "french" - ], - lingot: lingot, - lionceau: lionceau, - liquide: liquide, - "lisière": [ - "french" - ], - lister: lister, - lithium: lithium, - litige: litige, - littoral: littoral, - livreur: livreur, - logique: logique, - lointain: lointain, - loisir: loisir, - lombric: lombric, - loterie: loterie, - louer: louer, - lourd: lourd, - loutre: loutre, - louve: louve, - lubie: lubie, - lucide: lucide, - lucratif: lucratif, - lueur: lueur, - lugubre: lugubre, - luisant: luisant, - "lumière": [ - "french" - ], - lunaire: lunaire, - lundi: lundi, - luron: luron, - lutter: lutter, - luxueux: luxueux, - magasin: magasin, - magenta: magenta, - magique: magique, - maigre: maigre, - maillon: maillon, - maintien: maintien, - mairie: mairie, - maison: maison, - majorer: majorer, - malaxer: malaxer, - "maléfice": [ - "french" - ], - malheur: malheur, - malice: malice, - mallette: mallette, - mammouth: mammouth, - mandater: mandater, - maniable: maniable, - manquant: manquant, - manteau: manteau, - manuel: manuel, - marathon: marathon, - marbre: marbre, - marchand: marchand, - mardi: mardi, - maritime: maritime, - marqueur: marqueur, - marron: marron, - marteler: marteler, - mascotte: mascotte, - massif: massif, - "matériel": [ - "french" - ], - "matière": [ - "french" - ], - matraque: matraque, - maudire: maudire, - maussade: maussade, - mauve: mauve, - maximal: maximal, - "méchant": [ - "french" - ], - "méconnu": [ - "french" - ], - "médaille": [ - "french" - ], - "médecin": [ - "french" - ], - "méditer": [ - "french" - ], - "méduse": [ - "french" - ], - meilleur: meilleur, - "mélange": [ - "french" - ], - "mélodie": [ - "french" - ], - membre: membre, - "mémoire": [ - "french" - ], - menacer: menacer, - mener: mener, - menhir: menhir, - mensonge: mensonge, - mentor: mentor, - mercredi: mercredi, - "mérite": [ - "french" - ], - merle: merle, - messager: messager, - mesure: mesure, - "métal": [ - "french" - ], - "météore": [ - "french" - ], - "méthode": [ - "french" - ], - "métier": [ - "french" - ], - meuble: meuble, - miauler: miauler, - microbe: microbe, - miette: miette, - mignon: mignon, - migrer: migrer, - milieu: milieu, - mimique: mimique, - mince: mince, - "minéral": [ - "french" - ], - minimal: minimal, - minorer: minorer, - miroiter: miroiter, - missile: missile, - mixte: mixte, - moderne: moderne, - moelleux: moelleux, - mondial: mondial, - moniteur: moniteur, - monnaie: monnaie, - monotone: monotone, - monstre: monstre, - montagne: montagne, - monument: monument, - moqueur: moqueur, - morceau: morceau, - morsure: morsure, - mortier: mortier, - moteur: moteur, - motif: motif, - mouche: mouche, - moufle: moufle, - moulin: moulin, - mousson: mousson, - mouton: mouton, - mouvant: mouvant, - multiple: multiple, - munition: munition, - muraille: muraille, - "murène": [ - "french" - ], - murmure: murmure, - "muséum": [ - "french" - ], - musicien: musicien, - mutation: mutation, - muter: muter, - mutuel: mutuel, - myriade: myriade, - myrtille: myrtille, - "mystère": [ - "french" - ], - mythique: mythique, - nageur: nageur, - nappe: nappe, - narquois: narquois, - narrer: narrer, - natation: natation, - naufrage: naufrage, - nautique: nautique, - navire: navire, - "nébuleux": [ - "french" - ], - nectar: nectar, - "néfaste": [ - "french" - ], - "négation": [ - "french" - ], - "négliger": [ - "french" - ], - "négocier": [ - "french" - ], - neige: neige, - nerveux: nerveux, - nettoyer: nettoyer, - neurone: neurone, - neutron: neutron, - neveu: neveu, - niche: niche, - nickel: nickel, - nitrate: nitrate, - niveau: niveau, - nocif: nocif, - nocturne: nocturne, - noirceur: noirceur, - noisette: noisette, - nomade: nomade, - nombreux: nombreux, - nommer: nommer, - normatif: normatif, - notifier: notifier, - notoire: notoire, - nourrir: nourrir, - nouveau: nouveau, - novateur: novateur, - novembre: novembre, - novice: novice, - nuage: nuage, - nuancer: nuancer, - nuire: nuire, - nuisible: nuisible, - "numéro": [ - "french" - ], - nuptial: nuptial, - nuque: nuque, - nutritif: nutritif, - "obéir": [ - "french" - ], - objectif: objectif, - obliger: obliger, - obscur: obscur, - observer: observer, - obstacle: obstacle, - obtenir: obtenir, - obturer: obturer, - occasion: occasion, - occuper: occuper, - "océan": [ - "french" - ], - octobre: octobre, - octroyer: octroyer, - octupler: octupler, - oculaire: oculaire, - odeur: odeur, - odorant: odorant, - offenser: offenser, - officier: officier, - offrir: offrir, - ogive: ogive, - oiseau: oiseau, - oisillon: oisillon, - olfactif: olfactif, - olivier: olivier, - ombrage: ombrage, - omettre: omettre, - onctueux: onctueux, - onduler: onduler, - "onéreux": [ - "french" - ], - onirique: onirique, - opale: opale, - opaque: opaque$1, - "opérer": [ - "french" - ], - opportun: opportun, - opprimer: opprimer, - opter: opter, - optique: optique, - orageux: orageux, - orbite: orbite, - ordonner: ordonner, - oreille: oreille, - organe: organe, - orgueil: orgueil, - orifice: orifice, - ornement: ornement, - orque: orque, - ortie: ortie, - osciller: osciller, - osmose: osmose, - ossature: ossature, - otarie: otarie, - ouragan: ouragan, - ourson: ourson, - outil: outil, - outrager: outrager, - ouvrage: ouvrage, - ovation: ovation, - oxyde: oxyde, - "oxygène": [ - "french" - ], - paisible: paisible, - "palmarès": [ - "french" - ], - palourde: palourde, - palper: palper, - panache: panache, - pangolin: pangolin, - paniquer: paniquer, - panneau: panneau, - panorama: panorama, - pantalon: pantalon, - papaye: papaye, - papier: papier, - papoter: papoter, - papyrus: papyrus, - paradoxe: paradoxe, - parcelle: parcelle, - paresse: paresse, - parfumer: parfumer, - parler: parler, - parole: parole, - parrain: parrain, - parsemer: parsemer, - partager: partager, - parure: parure, - parvenir: parvenir, - passion: passion, - "pastèque": [ - "french" - ], - paternel: paternel, - patience: patience, - patron: patron, - pavillon: pavillon, - pavoiser: pavoiser, - payer: payer, - paysage: paysage, - peigne: peigne, - peintre: peintre, - pelage: pelage, - "pélican": [ - "french" - ], - pelle: pelle, - pelouse: pelouse, - peluche: peluche, - pendule: pendule, - "pénétrer": [ - "french" - ], - "pénible": [ - "french" - ], - pensif: pensif, - "pénurie": [ - "french" - ], - "pépite": [ - "french" - ], - "péplum": [ - "french" - ], - perdrix: perdrix, - perforer: perforer, - "période": [ - "french" - ], - permuter: permuter, - perplexe: perplexe, - persil: persil, - perte: perte, - peser: peser, - "pétale": [ - "french" - ], - petit: petit, - "pétrir": [ - "french" - ], - peuple: peuple, - pharaon: pharaon, - phobie: phobie, - phoque: phoque, - photon: photon, - physique: physique, - pictural: pictural, - "pièce": [ - "french" - ], - pierre: pierre, - pieuvre: pieuvre, - pilote: pilote, - pinceau: pinceau, - pipette: pipette, - piquer: piquer, - pirogue: pirogue, - piscine: piscine, - piston: piston, - pivoter: pivoter, - pixel: pixel, - placard: placard, - plafond: plafond, - plaisir: plaisir, - planer: planer, - plaque: plaque, - plastron: plastron, - plateau: plateau, - pleurer: pleurer, - plexus: plexus, - pliage: pliage, - plomb: plomb, - plonger: plonger, - pluie: pluie, - plumage: plumage, - pochette: pochette, - "poésie": [ - "french" - ], - "poète": [ - "french" - ], - pointe: pointe, - poirier: poirier, - poisson: poisson, - poivre: poivre, - polaire: polaire, - policier: policier, - pollen: pollen, - polygone: polygone, - pommade: pommade, - pompier: pompier, - ponctuel: ponctuel, - "pondérer": [ - "french" - ], - poney: poney, - portique: portique, - "posséder": [ - "french" - ], - posture: posture, - potager: potager, - poteau: poteau, - potion: potion, - pouce: pouce, - poulain: poulain, - poumon: poumon, - pourpre: pourpre, - poussin: poussin, - pouvoir: pouvoir, - prairie: prairie, - pratique: pratique, - "précieux": [ - "french" - ], - "prédire": [ - "french" - ], - "préfixe": [ - "french" - ], - "prélude": [ - "french" - ], - "prénom": [ - "french" - ], - "présence": [ - "french" - ], - "prétexte": [ - "french" - ], - "prévoir": [ - "french" - ], - primitif: primitif, - prince: prince, - priver: priver, - "problème": [ - "french" - ], - "procéder": [ - "french" - ], - prodige: prodige, - profond: profond, - "progrès": [ - "french" - ], - proie: proie, - projeter: projeter, - prologue: prologue, - promener: promener, - propre: propre, - "prospère": [ - "french" - ], - "protéger": [ - "french" - ], - prouesse: prouesse, - proverbe: proverbe, - prudence: prudence, - pruneau: pruneau, - psychose: psychose, - puceron: puceron, - puiser: puiser, - pulpe: pulpe, - pulsar: pulsar, - punaise: punaise, - punitif: punitif, - pupitre: pupitre, - purifier: purifier, - pyramide: pyramide, - quasar: quasar, - querelle: querelle, - "quiétude": [ - "french" - ], - quitter: quitter, - quotient: quotient, - racine: racine, - raconter: raconter, - radieux: radieux, - ragondin: ragondin, - raideur: raideur, - raisin: raisin, - ralentir: ralentir, - rallonge: rallonge, - ramasser: ramasser, - rapide: rapide, - rasage: rasage, - ratisser: ratisser, - ravager: ravager, - ravin: ravin, - rayonner: rayonner, - "réactif": [ - "french" - ], - "réagir": [ - "french" - ], - "réaliser": [ - "french" - ], - "réanimer": [ - "french" - ], - recevoir: recevoir, - "réciter": [ - "french" - ], - "réclamer": [ - "french" - ], - "récolter": [ - "french" - ], - recruter: recruter, - reculer: reculer, - recycler: recycler, - "rédiger": [ - "french" - ], - redouter: redouter, - refaire: refaire, - "réflexe": [ - "french" - ], - "réformer": [ - "french" - ], - refrain: refrain, - refuge: refuge, - "régalien": [ - "french" - ], - "région": [ - "french" - ], - "réglage": [ - "french" - ], - "régulier": [ - "french" - ], - "réitérer": [ - "french" - ], - rejeter: rejeter, - rejouer: rejouer, - relatif: relatif, - relever: relever, - remarque: remarque, - "remède": [ - "french" - ], - remise: remise, - remonter: remonter, - remplir: remplir, - remuer: remuer, - renard: renard, - renfort: renfort, - renifler: renifler, - renoncer: renoncer, - rentrer: rentrer, - renvoi: renvoi, - replier: replier, - reporter: reporter, - reprise: reprise, - reptile: reptile, - requin: requin, - "réserve": [ - "french" - ], - "résineux": [ - "french" - ], - "résoudre": [ - "french" - ], - respect: respect, - rester: rester, - "résultat": [ - "french" - ], - "rétablir": [ - "french" - ], - retenir: retenir, - "réticule": [ - "french" - ], - retomber: retomber, - retracer: retracer, - "réunion": [ - "french" - ], - "réussir": [ - "french" - ], - revanche: revanche, - revivre: revivre, - "révolte": [ - "french" - ], - "révulsif": [ - "french" - ], - richesse: richesse, - rideau: rideau, - rieur: rieur, - rigide: rigide, - rigoler: rigoler, - rincer: rincer, - riposter: riposter, - risible: risible, - risque: risque, - rituel: rituel, - "rivière": [ - "french" - ], - rocheux: rocheux, - rompre: rompre, - ronce: ronce, - rondin: rondin, - roseau: roseau, - rosier: rosier, - rotatif: rotatif, - rotor: rotor, - rotule: rotule, - rouge: rouge, - rouille: rouille, - rouleau: rouleau, - routine: routine, - royaume: royaume, - ruban: ruban, - rubis: rubis, - ruche: ruche, - ruelle: ruelle, - rugueux: rugueux, - ruiner: ruiner, - ruisseau: ruisseau, - ruser: ruser, - rustique: rustique, - rythme: rythme, - sabler: sabler, - saboter: saboter, - sabre: sabre, - sacoche: sacoche, - safari: safari, - sagesse: sagesse, - saisir: saisir, - salade: salade, - salive: salive, - saluer: saluer, - samedi: samedi, - sanction: sanction, - sanglier: sanglier, - sarcasme: sarcasme, - sardine: sardine, - saturer: saturer, - saugrenu: saugrenu, - saumon: saumon, - sauter: sauter, - sauvage: sauvage, - savant: savant, - savonner: savonner, - scalpel: scalpel, - scandale: scandale, - "scélérat": [ - "french" - ], - "scénario": [ - "french" - ], - sceptre: sceptre, - "schéma": [ - "french" - ], - scinder: scinder, - score: score, - scrutin: scrutin, - sculpter: sculpter, - "séance": [ - "french" - ], - "sécable": [ - "french" - ], - "sécher": [ - "french" - ], - secouer: secouer, - "sécréter": [ - "french" - ], - "sédatif": [ - "french" - ], - "séduire": [ - "french" - ], - seigneur: seigneur, - "séjour": [ - "french" - ], - "sélectif": [ - "french" - ], - semaine: semaine, - sembler: sembler, - semence: semence, - "séminal": [ - "french" - ], - "sénateur": [ - "french" - ], - sensible: sensible, - "séparer": [ - "french" - ], - "séquence": [ - "french" - ], - serein: serein, - sergent: sergent, - "sérieux": [ - "french" - ], - serrure: serrure, - "sérum": [ - "french" - ], - "sésame": [ - "french" - ], - "sévir": [ - "french" - ], - sevrage: sevrage, - sextuple: sextuple, - "sidéral": [ - "french" - ], - "siècle": [ - "french" - ], - "siéger": [ - "french" - ], - siffler: siffler, - sigle: sigle, - signal: signal, - silence: silence, - silicium: silicium, - "sincère": [ - "french" - ], - sinistre: sinistre, - siphon: siphon, - sirop: sirop, - sismique: sismique, - situer: situer, - skier: skier, - socle: socle, - sodium: sodium, - soigneux: soigneux, - soldat: soldat, - soleil: soleil, - solitude: solitude, - soluble: soluble, - sombre: sombre, - sommeil: sommeil, - somnoler: somnoler, - sonde: sonde, - songeur: songeur, - sonnette: sonnette, - sonore: sonore, - sorcier: sorcier, - sortir: sortir, - sosie: sosie, - sottise: sottise, - soucieux: soucieux, - soudure: soudure, - souffle: souffle, - soulever: soulever, - soupape: soupape, - soutirer: soutirer, - souvenir: souvenir, - spacieux: spacieux, - "spécial": [ - "french" - ], - "sphère": [ - "french" - ], - spiral: spiral, - station: station, - sternum: sternum, - stimulus: stimulus, - stipuler: stipuler, - strict: strict, - studieux: studieux, - stupeur: stupeur, - styliste: styliste, - sublime: sublime, - substrat: substrat, - subtil: subtil, - subvenir: subvenir, - "succès": [ - "french" - ], - sucre: sucre, - suffixe: suffixe, - "suggérer": [ - "french" - ], - suiveur: suiveur, - sulfate: sulfate, - superbe: superbe, - supplier: supplier, - suricate: suricate, - surmener: surmener, - sursaut: sursaut, - survie: survie, - syllabe: syllabe, - symbole: symbole, - "symétrie": [ - "french" - ], - synapse: synapse, - syntaxe: syntaxe, - "système": [ - "french" - ], - tabac: tabac, - tablier: tablier, - tactile: tactile, - tailler: tailler, - talisman: talisman, - talonner: talonner, - tambour: tambour, - tamiser: tamiser, - tangible: tangible, - tapis: tapis, - taquiner: taquiner, - tarder: tarder, - tarif: tarif, - tartine: tartine, - tasse: tasse, - tatami: tatami, - tatouage: tatouage, - taupe: taupe, - taureau: taureau, - taxer: taxer, - "témoin": [ - "french" - ], - temporel: temporel, - tenaille: tenaille, - tendre: tendre, - teneur: teneur, - tenir: tenir, - tension: tension, - terminer: terminer, - terne: terne, - terrible: terrible, - "tétine": [ - "french" - ], - texte: texte, - "thème": [ - "french" - ], - "théorie": [ - "french" - ], - "thérapie": [ - "french" - ], - thorax: thorax, - tibia: tibia, - "tiède": [ - "french" - ], - timide: timide, - tirelire: tirelire, - tiroir: tiroir, - tissu: tissu, - titane: titane, - titre: titre, - tituber: tituber, - toboggan: toboggan, - "tolérant": [ - "french" - ], - tomate: tomate, - tonique: tonique, - tonneau: tonneau, - toponyme: toponyme, - torche: torche, - tordre: tordre, - tornade: tornade, - torpille: torpille, - torrent: torrent, - torse: torse, - tortue: tortue, - totem: totem, - toucher: toucher, - tournage: tournage, - tousser: tousser, - toxine: toxine, - traction: traction, - trafic: trafic, - tragique: tragique, - trahir: trahir, - trancher: trancher, - travail: travail, - "trèfle": [ - "french" - ], - tremper: tremper, - "trésor": [ - "french" - ], - treuil: treuil, - triage: triage, - tribunal: tribunal, - tricoter: tricoter, - trilogie: trilogie, - triomphe: triomphe, - tripler: tripler, - triturer: triturer, - trivial: trivial, - trombone: trombone, - tronc: tronc, - tropical: tropical, - troupeau: troupeau, - tuile: tuile, - tulipe: tulipe, - tumulte: tumulte, - turbine: turbine, - tuteur: tuteur, - tutoyer: tutoyer, - tuyau: tuyau, - tympan: tympan, - typhon: typhon, - typique: typique, - tyran: tyran, - ubuesque: ubuesque, - ultime: ultime, - ultrason: ultrason, - unanime: unanime, - unifier: unifier, - union: union, - unitaire: unitaire, - univers: univers, - uranium: uranium, - urbain: urbain, - urticant: urticant, - usine: usine, - usuel: usuel, - usure: usure, - utile: utile, - utopie: utopie, - vacarme: vacarme, - vaccin: vaccin, - vagabond: vagabond, - vaillant: vaillant, - vaincre: vaincre, - vaisseau: vaisseau, - valable: valable, - valise: valise, - vallon: vallon, - vampire: vampire, - vanille: vanille, - vapeur: vapeur, - varier: varier, - vaseux: vaseux, - vassal: vassal, - vaste: vaste, - vecteur: vecteur, - vedette: vedette, - "végétal": [ - "french" - ], - "véhicule": [ - "french" - ], - veinard: veinard, - "véloce": [ - "french" - ], - vendredi: vendredi, - "vénérer": [ - "french" - ], - venger: venger, - venimeux: venimeux, - ventouse: ventouse, - verdure: verdure, - "vérin": [ - "french" - ], - vernir: vernir, - verrou: verrou, - verser: verser, - vertu: vertu, - veston: veston, - "vétéran": [ - "french" - ], - "vétuste": [ - "french" - ], - vexant: vexant, - vexer: vexer, - viaduc: viaduc, - viande: viande, - victoire: victoire, - vidange: vidange, - "vidéo": [ - "french" - ], - vignette: vignette, - vigueur: vigueur, - vilain: vilain, - vinaigre: vinaigre, - violon: violon, - "vipère": [ - "french" - ], - virement: virement, - virtuose: virtuose, - visage: visage, - viseur: viseur, - vision: vision, - visqueux: visqueux, - visuel: visuel, - vitesse: vitesse, - viticole: viticole, - vitrine: vitrine, - vivace: vivace, - vivipare: vivipare, - vocation: vocation, - voguer: voguer, - voile: voile, - voisin: voisin, - voiture: voiture, - volaille: volaille, - volcan: volcan, - voltiger: voltiger, - vorace: vorace, - vortex: vortex, - voter: voter, - vouloir: vouloir, - voyelle: voyelle, - "xénon": [ - "french" - ], - yacht: yacht, - "zèbre": [ - "french" - ], - "zénith": [ - "french" - ], - zeste: zeste, - zoologie: zoologie, - abaco: abaco, - abbaglio: abbaglio, - abbinato: abbinato, - abete: abete, - abisso: abisso, - abolire: abolire, - abrasivo: abrasivo, - abrogato: abrogato, - accadere: accadere, - accenno: accenno, - accusato: accusato, - acetone: acetone, - achille: achille, - acido: acido, - acqua: acqua, - acre: acre, - acrilico: acrilico, - acrobata: acrobata, - acuto: acuto, - adagio: adagio, - addebito: addebito, - addome: addome, - adeguato: adeguato, - aderire: aderire, - adipe: adipe, - adottare: adottare, - adulare: adulare, - affabile: affabile, - affetto: affetto, - affisso: affisso, - affranto: affranto, - aforisma: aforisma, - afoso: afoso, - africano: africano, - agave: agave, - agente: agente, - agevole: agevole, - aggancio: aggancio, - agire: agire, - agitare: agitare, - agonismo: agonismo, - agricolo: agricolo, - agrumeto: agrumeto, - aguzzo: aguzzo, - alabarda: alabarda, - alato: alato, - albatro: albatro, - alberato: alberato, - albo: albo, - albume: albume, - alce: alce, - alcolico: alcolico, - alettone: alettone, - alfa: alfa, - algebra: algebra, - aliante: aliante, - alibi: alibi, - alimento: alimento, - allagato: allagato, - allegro: allegro, - allievo: allievo, - allodola: allodola, - allusivo: allusivo, - almeno: almeno, - alogeno: alogeno, - alpaca: alpaca, - alpestre: alpestre, - altalena: altalena, - alterno: alterno, - alticcio: alticcio, - altrove: altrove, - alunno: alunno, - alveolo: alveolo, - alzare: alzare, - amalgama: amalgama, - amanita: amanita, - amarena: amarena, - ambito: ambito, - ambrato: ambrato, - ameba: ameba, - america: america, - ametista: ametista, - amico: amico, - ammasso: ammasso, - ammenda: ammenda, - ammirare: ammirare, - ammonito: ammonito, - amore: amore, - ampio: ampio, - ampliare: ampliare, - amuleto: amuleto, - anacardo: anacardo, - anagrafe: anagrafe, - analista: analista, - anarchia: anarchia, - anatra: anatra, - anca: anca, - ancella: ancella, - ancora: ancora, - andare: andare, - andrea: andrea, - anello: anello, - angelo: angelo, - angolare: angolare, - angusto: angusto, - anima: anima, - annegare: annegare, - annidato: annidato, - anno: anno, - annuncio: annuncio, - anonimo: anonimo, - anticipo: anticipo, - anzi: anzi, - apatico: apatico, - apertura: apertura, - apode: apode, - apparire: apparire, - appetito: appetito, - appoggio: appoggio, - approdo: approdo, - appunto: appunto, - aprile: aprile, - arabica: arabica, - arachide: arachide, - aragosta: aragosta, - araldica: araldica, - arancio: arancio, - aratura: aratura, - arazzo: arazzo, - arbitro: arbitro, - archivio: archivio, - ardito: ardito, - arenile: arenile, - argento: argento, - argine: argine, - arguto: arguto, - aria: aria, - armonia: armonia, - arnese: arnese, - arredato: arredato, - arringa: arringa, - arrosto: arrosto, - arsenico: arsenico, - arso: arso, - artefice: artefice, - arzillo: arzillo, - asciutto: asciutto, - ascolto: ascolto, - asepsi: asepsi, - asettico: asettico, - asfalto: asfalto, - asino: asino, - asola: asola, - aspirato: aspirato, - aspro: aspro, - assaggio: assaggio, - asse: asse, - assoluto: assoluto, - assurdo: assurdo, - asta: asta, - astenuto: astenuto, - astice: astice, - astratto: astratto, - atavico: atavico, - ateismo: ateismo, - atomico: atomico, - atono: atono, - attesa: attesa, - attivare: attivare, - attorno: attorno, - attrito: attrito, - attuale: attuale, - ausilio: ausilio, - austria: austria, - autista: autista, - autonomo: autonomo, - autunno: autunno, - avanzato: avanzato, - avere: avere, - avvenire: avvenire, - avviso: avviso, - avvolgere: avvolgere, - azione: azione, - azoto: azoto, - azzimo: azzimo, - azzurro: azzurro, - babele: babele, - baccano: baccano, - bacino: bacino, - baco: baco, - badessa: badessa, - badilata: badilata, - bagnato: bagnato, - baita: baita, - balcone: balcone, - baldo: baldo, - balena: balena, - ballata: ballata, - balzano: balzano, - bambino: bambino, - bandire: bandire, - baraonda: baraonda, - barbaro: barbaro, - barca: barca, - baritono: baritono, - barlume: barlume, - barocco: barocco, - basilico: basilico, - basso: basso, - batosta: batosta, - battuto: battuto, - baule: baule, - bava: bava, - bavosa: bavosa, - becco: becco, - beffa: beffa, - belgio: belgio, - belva: belva, - benda: benda, - benevole: benevole, - benigno: benigno, - benzina: benzina, - bere: bere, - berlina: berlina, - beta: beta, - bibita: bibita, - bici: bici, - bidone: bidone, - bifido: bifido, - biga: biga, - bilancia: bilancia, - bimbo: bimbo, - binocolo: binocolo, - biologo: biologo, - bipede: bipede, - bipolare: bipolare, - birbante: birbante, - birra: birra, - biscotto: biscotto, - bisesto: bisesto, - bisnonno: bisnonno, - bisonte: bisonte, - bisturi: bisturi, - bizzarro: bizzarro, - blando: blando, - blatta: blatta, - bollito: bollito, - bonifico: bonifico, - bordo: bordo, - bosco: bosco, - botanico: botanico, - bottino: bottino, - bozzolo: bozzolo, - braccio: braccio, - bradipo: bradipo, - brama: brama, - branca: branca, - bravura: bravura, - bretella: bretella, - brevetto: brevetto, - brezza: brezza, - briglia: briglia, - brillante: brillante, - brindare: brindare, - broccolo: broccolo, - brodo: brodo, - bronzina: bronzina, - brullo: brullo, - bruno: bruno, - bubbone: bubbone, - buca: buca, - budino: budino, - buffone: buffone, - buio: buio, - bulbo: bulbo, - buono: buono, - burlone: burlone, - burrasca: burrasca, - bussola: bussola, - busta: busta, - cadetto: cadetto, - caduco: caduco, - calamaro: calamaro, - calcolo: calcolo, - calesse: calesse, - calibro: calibro, - calmo: calmo, - caloria: caloria, - cambusa: cambusa, - camerata: camerata, - camicia: camicia, - cammino: cammino, - camola: camola, - campale: campale, - canapa: canapa, - candela: candela, - cane: cane, - canino: canino, - canotto: canotto, - cantina: cantina, - capace: capace, - capello: capello, - capitolo: capitolo, - capogiro: capogiro, - cappero: cappero, - capra: capra, - capsula: capsula, - carapace: carapace, - carcassa: carcassa, - cardo: cardo, - carisma: carisma, - carovana: carovana, - carretto: carretto, - cartolina: cartolina, - casaccio: casaccio, - cascata: cascata, - caserma: caserma, - caso: caso, - cassone: cassone, - castello: castello, - casuale: casuale, - catasta: catasta, - catena: catena, - catrame: catrame, - cauto: cauto, - cavillo: cavillo, - cedibile: cedibile, - cedrata: cedrata, - cefalo: cefalo, - celebre: celebre, - cellulare: cellulare, - cena: cena, - cenone: cenone, - centesimo: centesimo, - ceramica: ceramica, - cercare: cercare, - certo: certo, - cerume: cerume, - cervello: cervello, - cesoia: cesoia, - cespo: cespo, - ceto: ceto, - chela: chela, - chiaro: chiaro, - chicca: chicca, - chiedere: chiedere, - chimera: chimera, - china: china, - chirurgo: chirurgo, - chitarra: chitarra, - ciao: ciao, - ciclismo: ciclismo, - cifrare: cifrare, - cigno: cigno, - cilindro: cilindro, - ciottolo: ciottolo, - circa: circa, - cirrosi: cirrosi, - citrico: citrico, - cittadino: cittadino, - ciuffo: ciuffo, - civetta: civetta, - civile: civile, - classico: classico, - clinica: clinica, - cloro: cloro, - cocco: cocco, - codardo: codardo, - codice: codice, - coerente: coerente, - cognome: cognome, - collare: collare, - colmato: colmato, - colore: colore, - colposo: colposo, - coltivato: coltivato, - colza: colza, - coma: coma, - cometa: cometa, - commando: commando, - comodo: comodo, - computer: computer, - comune: comune, - conciso: conciso, - condurre: condurre, - conferma: conferma, - congelare: congelare, - coniuge: coniuge, - connesso: connesso, - conoscere: conoscere, - consumo: consumo, - continuo: continuo, - convegno: convegno, - coperto: coperto, - copione: copione, - coppia: coppia, - copricapo: copricapo, - corazza: corazza, - cordata: cordata, - coricato: coricato, - cornice: cornice, - corolla: corolla, - corpo: corpo, - corredo: corredo, - corsia: corsia, - cortese: cortese, - cosmico: cosmico, - costante: costante, - cottura: cottura, - covato: covato, - cratere: cratere, - cravatta: cravatta, - creato: creato, - credere: credere, - cremoso: cremoso, - crescita: crescita, - creta: creta, - criceto: criceto, - crinale: crinale, - crisi: crisi, - critico: critico, - croce: croce, - cronaca: cronaca, - crostata: crostata, - cruciale: cruciale, - crusca: crusca, - cucire: cucire, - cuculo: cuculo, - cugino: cugino, - cullato: cullato, - cupola: cupola, - curatore: curatore, - cursore: cursore, - curvo: curvo, - cuscino: cuscino, - custode: custode, - dado: dado, - daino: daino, - dalmata: dalmata, - damerino: damerino, - daniela: daniela, - dannoso: dannoso, - danzare: danzare, - datato: datato, - davanti: davanti, - davvero: davvero, - debutto: debutto, - decennio: decennio, - deciso: deciso, - declino: declino, - decollo: decollo, - decreto: decreto, - dedicato: dedicato, - definito: definito, - deforme: deforme, - degno: degno, - delegare: delegare, - delfino: delfino, - delirio: delirio, - delta: delta, - demenza: demenza, - denotato: denotato, - dentro: dentro, - deposito: deposito, - derapata: derapata, - derivare: derivare, - deroga: deroga, - descritto: descritto, - deserto: deserto, - desiderio: desiderio, - desumere: desumere, - detersivo: detersivo, - devoto: devoto, - diametro: diametro, - dicembre: dicembre, - diedro: diedro, - difeso: difeso, - diffuso: diffuso, - digerire: digerire, - digitale: digitale, - diluvio: diluvio, - dinamico: dinamico, - dinnanzi: dinnanzi, - dipinto: dipinto, - diploma: diploma, - dipolo: dipolo, - diradare: diradare, - dire: dire, - dirotto: dirotto, - dirupo: dirupo, - disagio: disagio, - discreto: discreto, - disfare: disfare, - disgelo: disgelo, - disposto: disposto, - distanza: distanza, - disumano: disumano, - dito: dito, - divano: divano, - divelto: divelto, - dividere: dividere, - divorato: divorato, - doblone: doblone, - docente: docente, - doganale: doganale, - dogma: dogma, - dolce: dolce, - domato: domato, - domenica: domenica, - dominare: dominare, - dondolo: dondolo, - dono: dono, - dormire: dormire, - dote: dote, - dottore: dottore, - dovuto: dovuto, - dozzina: dozzina, - drago: drago, - druido: druido, - dubbio: dubbio, - dubitare: dubitare, - ducale: ducale, - duna: duna, - duomo: duomo, - duplice: duplice, - duraturo: duraturo, - ebano: ebano, - eccesso: eccesso, - ecco: ecco, - eclissi: eclissi, - economia: economia, - edera: edera, - edicola: edicola, - edile: edile, - editoria: editoria, - educare: educare, - egemonia: egemonia, - egli: egli, - egoismo: egoismo, - egregio: egregio, - elaborato: elaborato, - elargire: elargire, - elegante: elegante, - elencato: elencato, - eletto: eletto, - elevare: elevare, - elfico: elfico, - elica: elica, - elmo: elmo, - elsa: elsa, - eluso: eluso, - emanato: emanato, - emblema: emblema, - emesso: emesso, - emiro: emiro, - emotivo: emotivo, - emozione: emozione, - empirico: empirico, - emulo: emulo, - endemico: endemico, - enduro: enduro, - energia: energia, - enfasi: enfasi, - enoteca: enoteca, - entrare: entrare, - enzima: enzima, - epatite: epatite, - epilogo: epilogo, - episodio: episodio, - epocale: epocale, - eppure: eppure, - equatore: equatore, - erario: erario, - erba: erba, - erboso: erboso, - erede: erede, - eremita: eremita, - erigere: erigere, - ermetico: ermetico, - eroe: eroe, - erosivo: erosivo, - errante: errante, - esagono: esagono, - esame: esame, - esanime: esanime, - esaudire: esaudire, - esca: esca, - esempio: esempio, - esercito: esercito, - esibito: esibito, - esigente: esigente, - esistere: esistere, - esito: esito, - esofago: esofago, - esortato: esortato, - esoso: esoso, - espanso: espanso, - espresso: espresso, - essenza: essenza, - esso: esso, - esteso: esteso, - estimare: estimare, - estonia: estonia, - estroso: estroso, - esultare: esultare, - etilico: etilico, - etnico: etnico, - etrusco: etrusco, - etto: etto, - euclideo: euclideo, - europa: europa, - evaso: evaso, - evidenza: evidenza, - evitato: evitato, - evoluto: evoluto, - evviva: evviva, - fabbrica: fabbrica, - faccenda: faccenda, - fachiro: fachiro, - falco: falco, - famiglia: famiglia, - fanale: fanale, - fanfara: fanfara, - fango: fango, - fantasma: fantasma, - fare: fare, - farfalla: farfalla, - farinoso: farinoso, - farmaco: farmaco, - fascia: fascia, - fastoso: fastoso, - fasullo: fasullo, - faticare: faticare, - fato: fato, - favoloso: favoloso, - febbre: febbre, - fecola: fecola, - fede: fede, - fegato: fegato, - felpa: felpa, - feltro: feltro, - femmina: femmina, - fendere: fendere, - fenomeno: fenomeno, - fermento: fermento, - ferro: ferro, - fertile: fertile, - fessura: fessura, - festivo: festivo, - fetta: fetta, - feudo: feudo, - fiaba: fiaba, - fiducia: fiducia, - fifa: fifa, - figurato: figurato, - filo: filo, - finanza: finanza, - finestra: finestra, - finire: finire, - fiore: fiore, - fiscale: fiscale, - fisico: fisico, - fiume: fiume, - flacone: flacone, - flamenco: flamenco, - flebo: flebo, - flemma: flemma, - florido: florido, - fluente: fluente, - fluoro: fluoro, - fobico: fobico, - focaccia: focaccia, - focoso: focoso, - foderato: foderato, - foglio: foglio, - folata: folata, - folclore: folclore, - folgore: folgore, - fondente: fondente, - fonetico: fonetico, - fonia: fonia, - fontana: fontana, - forbito: forbito, - forchetta: forchetta, - foresta: foresta, - formica: formica, - fornaio: fornaio, - foro: foro, - fortezza: fortezza, - forzare: forzare, - fosfato: fosfato, - fosso: fosso, - fracasso: fracasso, - frana: frana, - frassino: frassino, - fratello: fratello, - freccetta: freccetta, - frenata: frenata, - fresco: fresco, - frigo: frigo, - frollino: frollino, - fronde: fronde, - frugale: frugale, - frutta: frutta, - fucilata: fucilata, - fucsia: fucsia, - fuggente: fuggente, - fulmine: fulmine, - fulvo: fulvo, - fumante: fumante, - fumetto: fumetto, - fumoso: fumoso, - fune: fune, - funzione: funzione, - fuoco: fuoco, - furbo: furbo, - furgone: furgone, - furore: furore, - fuso: fuso, - futile: futile, - gabbiano: gabbiano, - gaffe: gaffe, - galateo: galateo, - gallina: gallina, - galoppo: galoppo, - gambero: gambero, - gamma: gamma, - garanzia: garanzia, - garbo: garbo, - garofano: garofano, - garzone: garzone, - gasdotto: gasdotto, - gasolio: gasolio, - gastrico: gastrico, - gatto: gatto, - gaudio: gaudio, - gazebo: gazebo, - gazzella: gazzella, - geco: geco, - gelatina: gelatina, - gelso: gelso, - gemello: gemello, - gemmato: gemmato, - gene: gene, - genitore: genitore, - gennaio: gennaio, - genotipo: genotipo, - gergo: gergo, - ghepardo: ghepardo, - ghiaccio: ghiaccio, - ghisa: ghisa, - giallo: giallo, - gilda: gilda, - ginepro: ginepro, - giocare: giocare, - gioiello: gioiello, - giorno: giorno, - giove: giove, - girato: girato, - girone: girone, - gittata: gittata, - giudizio: giudizio, - giurato: giurato, - giusto: giusto, - globulo: globulo, - glutine: glutine, - gnomo: gnomo, - gobba: gobba, - golf: golf, - gomito: gomito, - gommone: gommone, - gonfio: gonfio, - gonna: gonna, - governo: governo, - gracile: gracile, - grado: grado, - grafico: grafico, - grammo: grammo, - grande: grande, - grattare: grattare, - gravoso: gravoso, - grazia: grazia, - greca: greca, - gregge: gregge, - grifone: grifone, - grigio: grigio, - grinza: grinza, - grotta: grotta, - gruppo: gruppo, - guadagno: guadagno, - guaio: guaio, - guanto: guanto, - guardare: guardare, - gufo: gufo, - guidare: guidare, - ibernato: ibernato, - icona: icona, - identico: identico, - idillio: idillio, - idolo: idolo, - idra: idra, - idrico: idrico, - idrogeno: idrogeno, - igiene: igiene, - ignaro: ignaro, - ignorato: ignorato, - ilare: ilare, - illeso: illeso, - illogico: illogico, - illudere: illudere, - imballo: imballo, - imbevuto: imbevuto, - imbocco: imbocco, - imbuto: imbuto, - immane: immane, - immerso: immerso, - immolato: immolato, - impacco: impacco, - impeto: impeto, - impiego: impiego, - importo: importo, - impronta: impronta, - inalare: inalare, - inarcare: inarcare, - inattivo: inattivo, - incanto: incanto, - incendio: incendio, - inchino: inchino, - incisivo: incisivo, - incluso: incluso, - incontro: incontro, - incrocio: incrocio, - incubo: incubo, - indagine: indagine, - india: india, - indole: indole, - inedito: inedito, - infatti: infatti, - infilare: infilare, - inflitto: inflitto, - ingaggio: ingaggio, - ingegno: ingegno, - inglese: inglese, - ingordo: ingordo, - ingrosso: ingrosso, - innesco: innesco, - inodore: inodore, - inoltrare: inoltrare, - inondato: inondato, - insano: insano, - insetto: insetto, - insieme: insieme, - insonnia: insonnia, - insulina: insulina, - intasato: intasato, - intero: intero, - intonaco: intonaco, - intuito: intuito, - inumidire: inumidire, - invalido: invalido, - invece: invece, - invito: invito, - iperbole: iperbole, - ipnotico: ipnotico, - ipotesi: ipotesi, - ippica: ippica, - iride: iride, - irlanda: irlanda, - ironico: ironico, - irrigato: irrigato, - irrorare: irrorare, - isolato: isolato, - isotopo: isotopo, - isterico: isterico, - istituto: istituto, - istrice: istrice, - italia: italia, - iterare: iterare, - labbro: labbro, - labirinto: labirinto, - lacca: lacca, - lacerato: lacerato, - lacrima: lacrima, - lacuna: lacuna, - laddove: laddove, - lago: lago, - lampo: lampo, - lancetta: lancetta, - lanterna: lanterna, - lardoso: lardoso, - larga: larga, - laringe: laringe, - lastra: lastra, - latenza: latenza, - latino: latino, - lattuga: lattuga, - lavagna: lavagna, - lavoro: lavoro, - legale: legale, - leggero: leggero, - lembo: lembo, - lentezza: lentezza, - lenza: lenza, - leone: leone, - lepre: lepre, - lesivo: lesivo, - lessato: lessato, - lesto: lesto, - letterale: letterale, - leva: leva, - levigato: levigato, - libero: libero, - lido: lido, - lievito: lievito, - lilla: lilla, - limatura: limatura, - limitare: limitare, - limpido: limpido, - lineare: lineare, - lingua: lingua, - liquido: liquido, - lira: lira, - lirica: lirica, - lisca: lisca, - lite: lite, - litigio: litigio, - livrea: livrea, - locanda: locanda, - lode: lode, - logica: logica, - lombare: lombare, - londra: londra, - longevo: longevo, - loquace: loquace, - lorenzo: lorenzo, - loto: loto, - lotteria: lotteria, - luce: luce, - lucidato: lucidato, - lumaca: lumaca, - luminoso: luminoso, - lungo: lungo, - lupo: lupo, - luppolo: luppolo, - lusinga: lusinga, - lusso: lusso, - lutto: lutto, - macabro: macabro, - macchina: macchina, - macero: macero, - macinato: macinato, - madama: madama, - magico: magico, - maglia: maglia, - magnete: magnete, - magro: magro, - maiolica: maiolica, - malafede: malafede, - malgrado: malgrado, - malinteso: malinteso, - malsano: malsano, - malto: malto, - malumore: malumore, - mana: mana, - mancia: mancia, - mandorla: mandorla, - mangiare: mangiare, - manifesto: manifesto, - mannaro: mannaro, - manovra: manovra, - mansarda: mansarda, - mantide: mantide, - manubrio: manubrio, - mappa: mappa, - maratona: maratona, - marcire: marcire, - maretta: maretta, - marmo: marmo, - marsupio: marsupio, - maschera: maschera, - massaia: massaia, - mastino: mastino, - materasso: materasso, - matricola: matricola, - mattone: mattone, - maturo: maturo, - mazurca: mazurca, - meandro: meandro, - meccanico: meccanico, - mecenate: mecenate, - medesimo: medesimo, - meditare: meditare, - mega: mega, - melassa: melassa, - melis: melis, - melodia: melodia, - meninge: meninge, - meno: meno, - mensola: mensola, - mercurio: mercurio, - merenda: merenda, - merlo: merlo, - meschino: meschino, - mese: mese, - messere: messere, - mestolo: mestolo, - metallo: metallo, - metodo: metodo, - mettere: mettere, - miagolare: miagolare, - mica: mica, - micelio: micelio, - michele: michele, - microbo: microbo, - midollo: midollo, - miele: miele, - migliore: migliore, - milano: milano, - milite: milite, - mimosa: mimosa, - minerale: minerale, - mini: mini, - minore: minore, - mirino: mirino, - mirtillo: mirtillo, - miscela: miscela, - missiva: missiva, - misto: misto, - misurare: misurare, - mitezza: mitezza, - mitigare: mitigare, - mitra: mitra, - mittente: mittente, - mnemonico: mnemonico, - modello: modello, - modifica: modifica, - modulo: modulo, - mogano: mogano, - mogio: mogio, - mole: mole, - molosso: molosso, - monastero: monastero, - monco: monco, - mondina: mondina, - monetario: monetario, - monile: monile, - monotono: monotono, - monsone: monsone, - montato: montato, - monviso: monviso, - mora: mora, - mordere: mordere, - morsicato: morsicato, - mostro: mostro, - motivato: motivato, - motosega: motosega, - motto: motto, - movenza: movenza, - movimento: movimento, - mozzo: mozzo, - mucca: mucca, - mucosa: mucosa, - muffa: muffa, - mughetto: mughetto, - mugnaio: mugnaio, - mulatto: mulatto, - mulinello: mulinello, - multiplo: multiplo, - mummia: mummia, - munto: munto, - muovere: muovere, - murale: murale, - musa: musa, - muscolo: muscolo, - musica: musica, - mutevole: mutevole, - muto: muto, - nababbo: nababbo, - nafta: nafta, - nanometro: nanometro, - narciso: narciso, - narice: narice, - narrato: narrato, - nascere: nascere, - nastrare: nastrare, - naturale: naturale, - nautica: nautica, - naviglio: naviglio, - nebulosa: nebulosa, - necrosi: necrosi, - negativo: negativo, - negozio: negozio, - nemmeno: nemmeno, - neofita: neofita, - neretto: neretto, - nervo: nervo, - nessuno: nessuno, - nettuno: nettuno, - neutrale: neutrale, - neve: neve, - nevrotico: nevrotico, - nicchia: nicchia, - ninfa: ninfa, - nitido: nitido, - nobile: nobile, - nocivo: nocivo, - nodo: nodo, - nome: nome, - nomina: nomina, - nordico: nordico, - normale: normale, - norvegese: norvegese, - nostrano: nostrano, - notare: notare, - notizia: notizia, - notturno: notturno, - novella: novella, - nucleo: nucleo, - nulla: nulla, - numero: numero, - nuovo: nuovo, - nutrire: nutrire, - nuvola: nuvola, - nuziale: nuziale, - oasi: oasi, - obbedire: obbedire, - obbligo: obbligo, - obelisco: obelisco, - oblio: oblio, - obolo: obolo, - obsoleto: obsoleto, - occasione: occasione, - occhio: occhio, - occidente: occidente, - occorrere: occorrere, - occultare: occultare, - ocra: ocra, - oculato: oculato, - odierno: odierno, - odorare: odorare, - offerta: offerta, - offrire: offrire, - offuscato: offuscato, - oggetto: oggetto, - oggi: oggi, - ognuno: ognuno, - olandese: olandese, - olfatto: olfatto, - oliato: oliato, - oliva: oliva, - ologramma: ologramma, - oltre: oltre, - omaggio: omaggio, - ombelico: ombelico, - ombra: ombra, - omega: omega, - omissione: omissione, - ondoso: ondoso, - onere: onere, - onice: onice, - onnivoro: onnivoro, - onorevole: onorevole, - onta: onta, - operato: operato, - opinione: opinione, - opposto: opposto, - oracolo: oracolo, - orafo: orafo, - ordine: ordine, - orecchino: orecchino, - orefice: orefice, - orfano: orfano, - organico: organico, - origine: origine, - orizzonte: orizzonte, - orma: orma, - ormeggio: ormeggio, - ornativo: ornativo, - orologio: orologio, - orrendo: orrendo, - orribile: orribile, - ortensia: ortensia, - ortica: ortica, - orzata: orzata, - orzo: orzo, - osare: osare, - oscurare: oscurare, - osmosi: osmosi, - ospedale: ospedale, - ospite: ospite, - ossa: ossa, - ossidare: ossidare, - ostacolo: ostacolo, - oste: oste, - otite: otite, - otre: otre, - ottagono: ottagono, - ottimo: ottimo, - ottobre: ottobre, - ovale: ovale, - ovest: ovest, - ovino: ovino, - oviparo: oviparo, - ovocito: ovocito, - ovunque: ovunque, - ovviare: ovviare, - ozio: ozio, - pacchetto: pacchetto, - pace: pace, - pacifico: pacifico, - padella: padella, - padrone: padrone, - paese: paese, - paga: paga, - pagina: pagina, - palazzina: palazzina, - palesare: palesare, - pallido: pallido, - palo: palo, - palude: palude, - pandoro: pandoro, - pannello: pannello, - paolo: paolo, - paonazzo: paonazzo, - paprica: paprica, - parabola: parabola, - parcella: parcella, - parere: parere, - pargolo: pargolo, - pari: pari, - parlato: parlato, - parola: parola, - partire: partire, - parvenza: parvenza, - parziale: parziale, - passivo: passivo, - pasticca: pasticca, - patacca: patacca, - patologia: patologia, - pattume: pattume, - pavone: pavone, - peccato: peccato, - pedalare: pedalare, - pedonale: pedonale, - peggio: peggio, - peloso: peloso, - penare: penare, - pendice: pendice, - penisola: penisola, - pennuto: pennuto, - penombra: penombra, - pensare: pensare, - pentola: pentola, - pepe: pepe, - pepita: pepita, - perbene: perbene, - percorso: percorso, - perdonato: perdonato, - perforare: perforare, - pergamena: pergamena, - periodo: periodo, - permesso: permesso, - perno: perno, - perplesso: perplesso, - persuaso: persuaso, - pertugio: pertugio, - pervaso: pervaso, - pesatore: pesatore, - pesista: pesista, - peso: peso, - pestifero: pestifero, - petalo: petalo, - pettine: pettine, - petulante: petulante, - pezzo: pezzo, - piacere: piacere, - pianta: pianta, - piattino: piattino, - piccino: piccino, - picozza: picozza, - piega: piega, - pietra: pietra, - piffero: piffero, - pigiama: pigiama, - pigolio: pigolio, - pigro: pigro, - pila: pila, - pilifero: pilifero, - pillola: pillola, - pilota: pilota, - pimpante: pimpante, - pineta: pineta, - pinna: pinna, - pinolo: pinolo, - pioggia: pioggia, - piombo: piombo, - piramide: piramide, - piretico: piretico, - pirite: pirite, - pirolisi: pirolisi, - pitone: pitone, - pizzico: pizzico, - placebo: placebo, - planare: planare, - plasma: plasma, - platano: platano, - plenario: plenario, - pochezza: pochezza, - poderoso: poderoso, - podismo: podismo, - poesia: poesia, - poggiare: poggiare, - polenta: polenta, - poligono: poligono, - pollice: pollice, - polmonite: polmonite, - polpetta: polpetta, - polso: polso, - poltrona: poltrona, - polvere: polvere, - pomice: pomice, - pomodoro: pomodoro, - ponte: ponte, - popoloso: popoloso, - porfido: porfido, - poroso: poroso, - porpora: porpora, - porre: porre, - portata: portata, - posa: posa, - positivo: positivo, - possesso: possesso, - postulato: postulato, - potassio: potassio, - potere: potere, - pranzo: pranzo, - prassi: prassi, - pratica: pratica, - precluso: precluso, - predica: predica, - prefisso: prefisso, - pregiato: pregiato, - prelievo: prelievo, - premere: premere, - prenotare: prenotare, - preparato: preparato, - presenza: presenza, - pretesto: pretesto, - prevalso: prevalso, - prima: prima, - principe: principe, - privato: privato, - problema: problema, - procura: procura, - produrre: produrre, - profumo: profumo, - progetto: progetto, - prolunga: prolunga, - promessa: promessa, - pronome: pronome, - proposta: proposta, - proroga: proroga, - proteso: proteso, - prova: prova, - prudente: prudente, - prugna: prugna, - prurito: prurito, - psiche: psiche, - pubblico: pubblico, - pudica: pudica, - pugilato: pugilato, - pugno: pugno, - pulce: pulce, - pulito: pulito, - pulsante: pulsante, - puntare: puntare, - pupazzo: pupazzo, - pupilla: pupilla, - puro: puro, - quadro: quadro, - qualcosa: qualcosa, - quasi: quasi, - querela: querela, - quota: quota, - raccolto: raccolto, - raddoppio: raddoppio, - radicale: radicale, - radunato: radunato, - raffica: raffica, - ragazzo: ragazzo, - ragione: ragione, - ragno: ragno, - ramarro: ramarro, - ramingo: ramingo, - ramo: ramo, - randagio: randagio, - rantolare: rantolare, - rapato: rapato, - rapina: rapina, - rappreso: rappreso, - rasatura: rasatura, - raschiato: raschiato, - rasente: rasente, - rassegna: rassegna, - rastrello: rastrello, - rata: rata, - ravveduto: ravveduto, - reale: reale, - recepire: recepire, - recinto: recinto, - recluta: recluta, - recondito: recondito, - recupero: recupero, - reddito: reddito, - redimere: redimere, - regalato: regalato, - registro: registro, - regola: regola, - regresso: regresso, - relazione: relazione, - remare: remare, - remoto: remoto, - renna: renna, - replica: replica, - reprimere: reprimere, - reputare: reputare, - resa: resa, - residente: residente, - responso: responso, - restauro: restauro, - rete: rete, - retina: retina, - retorica: retorica, - rettifica: rettifica, - revocato: revocato, - riassunto: riassunto, - ribadire: ribadire, - ribelle: ribelle, - ribrezzo: ribrezzo, - ricarica: ricarica, - ricco: ricco, - ricevere: ricevere, - riciclato: riciclato, - ricordo: ricordo, - ricreduto: ricreduto, - ridicolo: ridicolo, - ridurre: ridurre, - rifasare: rifasare, - riflesso: riflesso, - riforma: riforma, - rifugio: rifugio, - rigare: rigare, - rigettato: rigettato, - righello: righello, - rilassato: rilassato, - rilevato: rilevato, - rimanere: rimanere, - rimbalzo: rimbalzo, - rimedio: rimedio, - rimorchio: rimorchio, - rinascita: rinascita, - rincaro: rincaro, - rinforzo: rinforzo, - rinnovo: rinnovo, - rinomato: rinomato, - rinsavito: rinsavito, - rintocco: rintocco, - rinuncia: rinuncia, - rinvenire: rinvenire, - riparato: riparato, - ripetuto: ripetuto, - ripieno: ripieno, - riportare: riportare, - ripresa: ripresa, - ripulire: ripulire, - risata: risata, - rischio: rischio, - riserva: riserva, - risibile: risibile, - riso: riso, - rispetto: rispetto, - ristoro: ristoro, - risultato: risultato, - risvolto: risvolto, - ritardo: ritardo, - ritegno: ritegno, - ritmico: ritmico, - ritrovo: ritrovo, - riunione: riunione, - riva: riva, - riverso: riverso, - rivincita: rivincita, - rivolto: rivolto, - rizoma: rizoma, - roba: roba, - robotico: robotico, - robusto: robusto, - roccia: roccia, - roco: roco, - rodaggio: rodaggio, - rodere: rodere, - roditore: roditore, - rogito: rogito, - rollio: rollio, - romantico: romantico, - rompere: rompere, - ronzio: ronzio, - rosolare: rosolare, - rospo: rospo, - rotante: rotante, - rotondo: rotondo, - rotula: rotula, - rovescio: rovescio, - rubizzo: rubizzo, - rubrica: rubrica, - ruga: ruga, - rullino: rullino, - rumine: rumine, - rumoroso: rumoroso, - ruolo: ruolo, - rupe: rupe, - russare: russare, - rustico: rustico, - sabato: sabato, - sabbiare: sabbiare, - sabotato: sabotato, - sagoma: sagoma, - salasso: salasso, - saldatura: saldatura, - salgemma: salgemma, - salivare: salivare, - salmone: salmone, - salone: salone, - saltare: saltare, - saluto: saluto, - salvo: salvo, - sapere: sapere, - sapido: sapido, - saporito: saporito, - saraceno: saraceno, - sarcasmo: sarcasmo, - sarto: sarto, - sassoso: sassoso, - satellite: satellite, - satira: satira, - satollo: satollo, - saturno: saturno, - savana: savana, - savio: savio, - saziato: saziato, - sbadiglio: sbadiglio, - sbalzo: sbalzo, - sbancato: sbancato, - sbarra: sbarra, - sbattere: sbattere, - sbavare: sbavare, - sbendare: sbendare, - sbirciare: sbirciare, - sbloccato: sbloccato, - sbocciato: sbocciato, - sbrinare: sbrinare, - sbruffone: sbruffone, - sbuffare: sbuffare, - scabroso: scabroso, - scadenza: scadenza, - scala: scala, - scambiare: scambiare, - scandalo: scandalo, - scapola: scapola, - scarso: scarso, - scatenare: scatenare, - scavato: scavato, - scelto: scelto, - scenico: scenico, - scettro: scettro, - scheda: scheda, - schiena: schiena, - sciarpa: sciarpa, - scienza: scienza, - scindere: scindere, - scippo: scippo, - sciroppo: sciroppo, - scivolo: scivolo, - sclerare: sclerare, - scodella: scodella, - scolpito: scolpito, - scomparto: scomparto, - sconforto: sconforto, - scoprire: scoprire, - scorta: scorta, - scossone: scossone, - scozzese: scozzese, - scriba: scriba, - scrollare: scrollare, - scrutinio: scrutinio, - scuderia: scuderia, - scultore: scultore, - scuola: scuola, - scuro: scuro, - scusare: scusare, - sdebitare: sdebitare, - sdoganare: sdoganare, - seccatura: seccatura, - secondo: secondo, - sedano: sedano, - seggiola: seggiola, - segnalato: segnalato, - segregato: segregato, - seguito: seguito, - selciato: selciato, - selettivo: selettivo, - sella: sella, - selvaggio: selvaggio, - semaforo: semaforo, - sembrare: sembrare, - seme: seme, - seminato: seminato, - sempre: sempre, - senso: senso, - sentire: sentire, - sepolto: sepolto, - sequenza: sequenza, - serata: serata, - serbato: serbato, - sereno: sereno, - serio: serio, - serpente: serpente, - serraglio: serraglio, - servire: servire, - sestina: sestina, - setola: setola, - settimana: settimana, - sfacelo: sfacelo, - sfaldare: sfaldare, - sfamato: sfamato, - sfarzoso: sfarzoso, - sfaticato: sfaticato, - sfera: sfera, - sfida: sfida, - sfilato: sfilato, - sfinge: sfinge, - sfocato: sfocato, - sfoderare: sfoderare, - sfogo: sfogo, - sfoltire: sfoltire, - sforzato: sforzato, - sfratto: sfratto, - sfruttato: sfruttato, - sfuggito: sfuggito, - sfumare: sfumare, - sfuso: sfuso, - sgabello: sgabello, - sgarbato: sgarbato, - sgonfiare: sgonfiare, - sgorbio: sgorbio, - sgrassato: sgrassato, - sguardo: sguardo, - sibilo: sibilo, - siccome: siccome, - sierra: sierra, - sigla: sigla, - signore: signore, - silenzio: silenzio, - sillaba: sillaba, - simbolo: simbolo, - simpatico: simpatico, - simulato: simulato, - sinfonia: sinfonia, - singolo: singolo, - sinistro: sinistro, - sino: sino, - sintesi: sintesi, - sinusoide: sinusoide, - sipario: sipario, - sisma: sisma, - sistole: sistole, - situato: situato, - slitta: slitta, - slogatura: slogatura, - sloveno: sloveno, - smarrito: smarrito, - smemorato: smemorato, - smentito: smentito, - smeraldo: smeraldo, - smilzo: smilzo, - smontare: smontare, - smottato: smottato, - smussato: smussato, - snellire: snellire, - snervato: snervato, - snodo: snodo, - sobbalzo: sobbalzo, - sobrio: sobrio, - soccorso: soccorso, - sociale: sociale, - sodale: sodale, - soffitto: soffitto, - sogno: sogno, - soldato: soldato, - solenne: solenne, - solido: solido, - sollazzo: sollazzo, - solo: solo, - solubile: solubile, - solvente: solvente, - somatico: somatico, - somma: somma, - sonda: sonda, - sonetto: sonetto, - sonnifero: sonnifero, - sopire: sopire, - soppeso: soppeso, - sopra: sopra, - sorgere: sorgere, - sorpasso: sorpasso, - sorriso: sorriso, - sorso: sorso, - sorteggio: sorteggio, - sorvolato: sorvolato, - sospiro: sospiro, - sosta: sosta, - sottile: sottile, - spada: spada, - spalla: spalla, - spargere: spargere, - spatola: spatola, - spavento: spavento, - spazzola: spazzola, - specie: specie, - spedire: spedire, - spegnere: spegnere, - spelatura: spelatura, - speranza: speranza, - spessore: spessore, - spettrale: spettrale, - spezzato: spezzato, - spia: spia, - spigoloso: spigoloso, - spillato: spillato, - spinoso: spinoso, - spirale: spirale, - splendido: splendido, - sportivo: sportivo, - sposo: sposo, - spranga: spranga, - sprecare: sprecare, - spronato: spronato, - spruzzo: spruzzo, - spuntino: spuntino, - squillo: squillo, - sradicare: sradicare, - srotolato: srotolato, - stabile: stabile, - stacco: stacco, - staffa: staffa, - stagnare: stagnare, - stampato: stampato, - stantio: stantio, - starnuto: starnuto, - stasera: stasera, - statuto: statuto, - stelo: stelo, - steppa: steppa, - sterzo: sterzo, - stiletto: stiletto, - stima: stima, - stirpe: stirpe, - stivale: stivale, - stizzoso: stizzoso, - stonato: stonato, - storico: storico, - strappo: strappo, - stregato: stregato, - stridulo: stridulo, - strozzare: strozzare, - strutto: strutto, - stuccare: stuccare, - stufo: stufo, - stupendo: stupendo, - subentro: subentro, - succoso: succoso, - sudore: sudore, - suggerito: suggerito, - sugo: sugo, - sultano: sultano, - suonare: suonare, - superbo: superbo, - supporto: supporto, - surgelato: surgelato, - surrogato: surrogato, - sussurro: sussurro, - sutura: sutura, - svagare: svagare, - svedese: svedese, - sveglio: sveglio, - svelare: svelare, - svenuto: svenuto, - svezia: svezia, - sviluppo: sviluppo, - svista: svista, - svizzera: svizzera, - svolta: svolta, - svuotare: svuotare, - tabacco: tabacco, - tabulato: tabulato, - tacciare: tacciare, - taciturno: taciturno, - tale: tale, - talismano: talismano, - tampone: tampone, - tannino: tannino, - tara: tara, - tardivo: tardivo, - targato: targato, - tariffa: tariffa, - tarpare: tarpare, - tartaruga: tartaruga, - tasto: tasto, - tattico: tattico, - taverna: taverna, - tavolata: tavolata, - tazza: tazza, - teca: teca, - tecnico: tecnico, - telefono: telefono, - temerario: temerario, - tempo: tempo, - temuto: temuto, - tendone: tendone, - tenero: tenero, - tensione: tensione, - tentacolo: tentacolo, - teorema: teorema, - terme: terme, - terrazzo: terrazzo, - terzetto: terzetto, - tesi: tesi, - tesserato: tesserato, - testato: testato, - tetro: tetro, - tettoia: tettoia, - tifare: tifare, - tigella: tigella, - timbro: timbro, - tinto: tinto, - tipico: tipico, - tipografo: tipografo, - tiraggio: tiraggio, - tiro: tiro, - titanio: titanio, - titolo: titolo, - titubante: titubante, - tizio: tizio, - tizzone: tizzone, - toccare: toccare, - tollerare: tollerare, - tolto: tolto, - tombola: tombola, - tomo: tomo, - tonfo: tonfo, - tonsilla: tonsilla, - topazio: topazio, - topologia: topologia, - toppa: toppa, - torba: torba, - tornare: tornare, - torrone: torrone, - tortora: tortora, - toscano: toscano, - tossire: tossire, - tostatura: tostatura, - totano: totano, - trabocco: trabocco, - trachea: trachea, - trafila: trafila, - tragedia: tragedia, - tralcio: tralcio, - tramonto: tramonto, - transito: transito, - trapano: trapano, - trarre: trarre, - trasloco: trasloco, - trattato: trattato, - trave: trave, - treccia: treccia, - tremolio: tremolio, - trespolo: trespolo, - tributo: tributo, - tricheco: tricheco, - trifoglio: trifoglio, - trillo: trillo, - trincea: trincea, - trio: trio, - tristezza: tristezza, - triturato: triturato, - trivella: trivella, - tromba: tromba, - trono: trono, - troppo: troppo, - trottola: trottola, - trovare: trovare, - truccato: truccato, - tubatura: tubatura, - tuffato: tuffato, - tulipano: tulipano, - tumulto: tumulto, - tunisia: tunisia, - turbare: turbare, - turchino: turchino, - tuta: tuta, - tutela: tutela, - ubicato: ubicato, - uccello: uccello, - uccisore: uccisore, - udire: udire, - uditivo: uditivo, - uffa: uffa, - ufficio: ufficio, - uguale: uguale, - ulisse: ulisse, - ultimato: ultimato, - umano: umano, - umile: umile, - umorismo: umorismo, - uncinetto: uncinetto, - ungere: ungere, - ungherese: ungherese, - unicorno: unicorno, - unificato: unificato, - unisono: unisono, - unitario: unitario, - unte: unte, - uovo: uovo, - upupa: upupa, - uragano: uragano, - urgenza: urgenza, - urlo: urlo, - usanza: usanza, - usato: usato, - uscito: uscito, - usignolo: usignolo, - usuraio: usuraio, - utensile: utensile, - utilizzo: utilizzo, - utopia: utopia, - vacante: vacante, - vaccinato: vaccinato, - vagabondo: vagabondo, - vagliato: vagliato, - valanga: valanga, - valgo: valgo, - valico: valico, - valletta: valletta, - valoroso: valoroso, - valutare: valutare, - valvola: valvola, - vampata: vampata, - vangare: vangare, - vanitoso: vanitoso, - vano: vano, - vantaggio: vantaggio, - vanvera: vanvera, - vapore: vapore, - varano: varano, - varcato: varcato, - variante: variante, - vasca: vasca, - vedetta: vedetta, - vedova: vedova, - veduto: veduto, - vegetale: vegetale, - veicolo: veicolo, - velcro: velcro, - velina: velina, - velluto: velluto, - veloce: veloce, - venato: venato, - vendemmia: vendemmia, - vento: vento, - verace: verace, - verbale: verbale, - vergogna: vergogna, - verifica: verifica, - vero: vero, - verruca: verruca, - verticale: verticale, - vescica: vescica, - vessillo: vessillo, - vestale: vestale, - veterano: veterano, - vetrina: vetrina, - vetusto: vetusto, - viandante: viandante, - vibrante: vibrante, - vicenda: vicenda, - vichingo: vichingo, - vicinanza: vicinanza, - vidimare: vidimare, - vigilia: vigilia, - vigneto: vigneto, - vigore: vigore, - vile: vile, - villano: villano, - vimini: vimini, - vincitore: vincitore, - viola: viola, - vipera: vipera, - virgola: virgola, - virologo: virologo, - virulento: virulento, - viscoso: viscoso, - visione: visione, - vispo: vispo, - vissuto: vissuto, - visura: visura, - vita: vita, - vitello: vitello, - vittima: vittima, - vivanda: vivanda, - vivido: vivido, - viziare: viziare, - voce: voce, - voga: voga, - volatile: volatile, - volere: volere, - volpe: volpe, - voragine: voragine, - vulcano: vulcano, - zampogna: zampogna, - zanna: zanna, - zappato: zappato, - zattera: zattera, - zavorra: zavorra, - zefiro: zefiro, - zelante: zelante, - zelo: zelo, - zenzero: zenzero, - zerbino: zerbino, - zibetto: zibetto, - zinco: zinco, - zircone: zircone, - zitto: zitto, - zolla: zolla, - zotico: zotico, - zucchero: zucchero, - zufolo: zufolo, - zulu: zulu, - zuppa: zuppa, - "あいこくしん": [ - "japanese" - ], - "あいさつ": [ - "japanese" - ], - "あいだ": [ - "japanese" - ], - "あおぞら": [ - "japanese" - ], - "あかちゃん": [ - "japanese" - ], - "あきる": [ - "japanese" - ], - "あけがた": [ - "japanese" - ], - "あける": [ - "japanese" - ], - "あこがれる": [ - "japanese" - ], - "あさい": [ - "japanese" - ], - "あさひ": [ - "japanese" - ], - "あしあと": [ - "japanese" - ], - "あじわう": [ - "japanese" - ], - "あずかる": [ - "japanese" - ], - "あずき": [ - "japanese" - ], - "あそぶ": [ - "japanese" - ], - "あたえる": [ - "japanese" - ], - "あたためる": [ - "japanese" - ], - "あたりまえ": [ - "japanese" - ], - "あたる": [ - "japanese" - ], - "あつい": [ - "japanese" - ], - "あつかう": [ - "japanese" - ], - "あっしゅく": [ - "japanese" - ], - "あつまり": [ - "japanese" - ], - "あつめる": [ - "japanese" - ], - "あてな": [ - "japanese" - ], - "あてはまる": [ - "japanese" - ], - "あひる": [ - "japanese" - ], - "あぶら": [ - "japanese" - ], - "あぶる": [ - "japanese" - ], - "あふれる": [ - "japanese" - ], - "あまい": [ - "japanese" - ], - "あまど": [ - "japanese" - ], - "あまやかす": [ - "japanese" - ], - "あまり": [ - "japanese" - ], - "あみもの": [ - "japanese" - ], - "あめりか": [ - "japanese" - ], - "あやまる": [ - "japanese" - ], - "あゆむ": [ - "japanese" - ], - "あらいぐま": [ - "japanese" - ], - "あらし": [ - "japanese" - ], - "あらすじ": [ - "japanese" - ], - "あらためる": [ - "japanese" - ], - "あらゆる": [ - "japanese" - ], - "あらわす": [ - "japanese" - ], - "ありがとう": [ - "japanese" - ], - "あわせる": [ - "japanese" - ], - "あわてる": [ - "japanese" - ], - "あんい": [ - "japanese" - ], - "あんがい": [ - "japanese" - ], - "あんこ": [ - "japanese" - ], - "あんぜん": [ - "japanese" - ], - "あんてい": [ - "japanese" - ], - "あんない": [ - "japanese" - ], - "あんまり": [ - "japanese" - ], - "いいだす": [ - "japanese" - ], - "いおん": [ - "japanese" - ], - "いがい": [ - "japanese" - ], - "いがく": [ - "japanese" - ], - "いきおい": [ - "japanese" - ], - "いきなり": [ - "japanese" - ], - "いきもの": [ - "japanese" - ], - "いきる": [ - "japanese" - ], - "いくじ": [ - "japanese" - ], - "いくぶん": [ - "japanese" - ], - "いけばな": [ - "japanese" - ], - "いけん": [ - "japanese" - ], - "いこう": [ - "japanese" - ], - "いこく": [ - "japanese" - ], - "いこつ": [ - "japanese" - ], - "いさましい": [ - "japanese" - ], - "いさん": [ - "japanese" - ], - "いしき": [ - "japanese" - ], - "いじゅう": [ - "japanese" - ], - "いじょう": [ - "japanese" - ], - "いじわる": [ - "japanese" - ], - "いずみ": [ - "japanese" - ], - "いずれ": [ - "japanese" - ], - "いせい": [ - "japanese" - ], - "いせえび": [ - "japanese" - ], - "いせかい": [ - "japanese" - ], - "いせき": [ - "japanese" - ], - "いぜん": [ - "japanese" - ], - "いそうろう": [ - "japanese" - ], - "いそがしい": [ - "japanese" - ], - "いだい": [ - "japanese" - ], - "いだく": [ - "japanese" - ], - "いたずら": [ - "japanese" - ], - "いたみ": [ - "japanese" - ], - "いたりあ": [ - "japanese" - ], - "いちおう": [ - "japanese" - ], - "いちじ": [ - "japanese" - ], - "いちど": [ - "japanese" - ], - "いちば": [ - "japanese" - ], - "いちぶ": [ - "japanese" - ], - "いちりゅう": [ - "japanese" - ], - "いつか": [ - "japanese" - ], - "いっしゅん": [ - "japanese" - ], - "いっせい": [ - "japanese" - ], - "いっそう": [ - "japanese" - ], - "いったん": [ - "japanese" - ], - "いっち": [ - "japanese" - ], - "いってい": [ - "japanese" - ], - "いっぽう": [ - "japanese" - ], - "いてざ": [ - "japanese" - ], - "いてん": [ - "japanese" - ], - "いどう": [ - "japanese" - ], - "いとこ": [ - "japanese" - ], - "いない": [ - "japanese" - ], - "いなか": [ - "japanese" - ], - "いねむり": [ - "japanese" - ], - "いのち": [ - "japanese" - ], - "いのる": [ - "japanese" - ], - "いはつ": [ - "japanese" - ], - "いばる": [ - "japanese" - ], - "いはん": [ - "japanese" - ], - "いびき": [ - "japanese" - ], - "いひん": [ - "japanese" - ], - "いふく": [ - "japanese" - ], - "いへん": [ - "japanese" - ], - "いほう": [ - "japanese" - ], - "いみん": [ - "japanese" - ], - "いもうと": [ - "japanese" - ], - "いもたれ": [ - "japanese" - ], - "いもり": [ - "japanese" - ], - "いやがる": [ - "japanese" - ], - "いやす": [ - "japanese" - ], - "いよかん": [ - "japanese" - ], - "いよく": [ - "japanese" - ], - "いらい": [ - "japanese" - ], - "いらすと": [ - "japanese" - ], - "いりぐち": [ - "japanese" - ], - "いりょう": [ - "japanese" - ], - "いれい": [ - "japanese" - ], - "いれもの": [ - "japanese" - ], - "いれる": [ - "japanese" - ], - "いろえんぴつ": [ - "japanese" - ], - "いわい": [ - "japanese" - ], - "いわう": [ - "japanese" - ], - "いわかん": [ - "japanese" - ], - "いわば": [ - "japanese" - ], - "いわゆる": [ - "japanese" - ], - "いんげんまめ": [ - "japanese" - ], - "いんさつ": [ - "japanese" - ], - "いんしょう": [ - "japanese" - ], - "いんよう": [ - "japanese" - ], - "うえき": [ - "japanese" - ], - "うえる": [ - "japanese" - ], - "うおざ": [ - "japanese" - ], - "うがい": [ - "japanese" - ], - "うかぶ": [ - "japanese" - ], - "うかべる": [ - "japanese" - ], - "うきわ": [ - "japanese" - ], - "うくらいな": [ - "japanese" - ], - "うくれれ": [ - "japanese" - ], - "うけたまわる": [ - "japanese" - ], - "うけつけ": [ - "japanese" - ], - "うけとる": [ - "japanese" - ], - "うけもつ": [ - "japanese" - ], - "うける": [ - "japanese" - ], - "うごかす": [ - "japanese" - ], - "うごく": [ - "japanese" - ], - "うこん": [ - "japanese" - ], - "うさぎ": [ - "japanese" - ], - "うしなう": [ - "japanese" - ], - "うしろがみ": [ - "japanese" - ], - "うすい": [ - "japanese" - ], - "うすぎ": [ - "japanese" - ], - "うすぐらい": [ - "japanese" - ], - "うすめる": [ - "japanese" - ], - "うせつ": [ - "japanese" - ], - "うちあわせ": [ - "japanese" - ], - "うちがわ": [ - "japanese" - ], - "うちき": [ - "japanese" - ], - "うちゅう": [ - "japanese" - ], - "うっかり": [ - "japanese" - ], - "うつくしい": [ - "japanese" - ], - "うったえる": [ - "japanese" - ], - "うつる": [ - "japanese" - ], - "うどん": [ - "japanese" - ], - "うなぎ": [ - "japanese" - ], - "うなじ": [ - "japanese" - ], - "うなずく": [ - "japanese" - ], - "うなる": [ - "japanese" - ], - "うねる": [ - "japanese" - ], - "うのう": [ - "japanese" - ], - "うぶげ": [ - "japanese" - ], - "うぶごえ": [ - "japanese" - ], - "うまれる": [ - "japanese" - ], - "うめる": [ - "japanese" - ], - "うもう": [ - "japanese" - ], - "うやまう": [ - "japanese" - ], - "うよく": [ - "japanese" - ], - "うらがえす": [ - "japanese" - ], - "うらぐち": [ - "japanese" - ], - "うらない": [ - "japanese" - ], - "うりあげ": [ - "japanese" - ], - "うりきれ": [ - "japanese" - ], - "うるさい": [ - "japanese" - ], - "うれしい": [ - "japanese" - ], - "うれゆき": [ - "japanese" - ], - "うれる": [ - "japanese" - ], - "うろこ": [ - "japanese" - ], - "うわき": [ - "japanese" - ], - "うわさ": [ - "japanese" - ], - "うんこう": [ - "japanese" - ], - "うんちん": [ - "japanese" - ], - "うんてん": [ - "japanese" - ], - "うんどう": [ - "japanese" - ], - "えいえん": [ - "japanese" - ], - "えいが": [ - "japanese" - ], - "えいきょう": [ - "japanese" - ], - "えいご": [ - "japanese" - ], - "えいせい": [ - "japanese" - ], - "えいぶん": [ - "japanese" - ], - "えいよう": [ - "japanese" - ], - "えいわ": [ - "japanese" - ], - "えおり": [ - "japanese" - ], - "えがお": [ - "japanese" - ], - "えがく": [ - "japanese" - ], - "えきたい": [ - "japanese" - ], - "えくせる": [ - "japanese" - ], - "えしゃく": [ - "japanese" - ], - "えすて": [ - "japanese" - ], - "えつらん": [ - "japanese" - ], - "えのぐ": [ - "japanese" - ], - "えほうまき": [ - "japanese" - ], - "えほん": [ - "japanese" - ], - "えまき": [ - "japanese" - ], - "えもじ": [ - "japanese" - ], - "えもの": [ - "japanese" - ], - "えらい": [ - "japanese" - ], - "えらぶ": [ - "japanese" - ], - "えりあ": [ - "japanese" - ], - "えんえん": [ - "japanese" - ], - "えんかい": [ - "japanese" - ], - "えんぎ": [ - "japanese" - ], - "えんげき": [ - "japanese" - ], - "えんしゅう": [ - "japanese" - ], - "えんぜつ": [ - "japanese" - ], - "えんそく": [ - "japanese" - ], - "えんちょう": [ - "japanese" - ], - "えんとつ": [ - "japanese" - ], - "おいかける": [ - "japanese" - ], - "おいこす": [ - "japanese" - ], - "おいしい": [ - "japanese" - ], - "おいつく": [ - "japanese" - ], - "おうえん": [ - "japanese" - ], - "おうさま": [ - "japanese" - ], - "おうじ": [ - "japanese" - ], - "おうせつ": [ - "japanese" - ], - "おうたい": [ - "japanese" - ], - "おうふく": [ - "japanese" - ], - "おうべい": [ - "japanese" - ], - "おうよう": [ - "japanese" - ], - "おえる": [ - "japanese" - ], - "おおい": [ - "japanese" - ], - "おおう": [ - "japanese" - ], - "おおどおり": [ - "japanese" - ], - "おおや": [ - "japanese" - ], - "おおよそ": [ - "japanese" - ], - "おかえり": [ - "japanese" - ], - "おかず": [ - "japanese" - ], - "おがむ": [ - "japanese" - ], - "おかわり": [ - "japanese" - ], - "おぎなう": [ - "japanese" - ], - "おきる": [ - "japanese" - ], - "おくさま": [ - "japanese" - ], - "おくじょう": [ - "japanese" - ], - "おくりがな": [ - "japanese" - ], - "おくる": [ - "japanese" - ], - "おくれる": [ - "japanese" - ], - "おこす": [ - "japanese" - ], - "おこなう": [ - "japanese" - ], - "おこる": [ - "japanese" - ], - "おさえる": [ - "japanese" - ], - "おさない": [ - "japanese" - ], - "おさめる": [ - "japanese" - ], - "おしいれ": [ - "japanese" - ], - "おしえる": [ - "japanese" - ], - "おじぎ": [ - "japanese" - ], - "おじさん": [ - "japanese" - ], - "おしゃれ": [ - "japanese" - ], - "おそらく": [ - "japanese" - ], - "おそわる": [ - "japanese" - ], - "おたがい": [ - "japanese" - ], - "おたく": [ - "japanese" - ], - "おだやか": [ - "japanese" - ], - "おちつく": [ - "japanese" - ], - "おっと": [ - "japanese" - ], - "おつり": [ - "japanese" - ], - "おでかけ": [ - "japanese" - ], - "おとしもの": [ - "japanese" - ], - "おとなしい": [ - "japanese" - ], - "おどり": [ - "japanese" - ], - "おどろかす": [ - "japanese" - ], - "おばさん": [ - "japanese" - ], - "おまいり": [ - "japanese" - ], - "おめでとう": [ - "japanese" - ], - "おもいで": [ - "japanese" - ], - "おもう": [ - "japanese" - ], - "おもたい": [ - "japanese" - ], - "おもちゃ": [ - "japanese" - ], - "おやつ": [ - "japanese" - ], - "おやゆび": [ - "japanese" - ], - "およぼす": [ - "japanese" - ], - "おらんだ": [ - "japanese" - ], - "おろす": [ - "japanese" - ], - "おんがく": [ - "japanese" - ], - "おんけい": [ - "japanese" - ], - "おんしゃ": [ - "japanese" - ], - "おんせん": [ - "japanese" - ], - "おんだん": [ - "japanese" - ], - "おんちゅう": [ - "japanese" - ], - "おんどけい": [ - "japanese" - ], - "かあつ": [ - "japanese" - ], - "かいが": [ - "japanese" - ], - "がいき": [ - "japanese" - ], - "がいけん": [ - "japanese" - ], - "がいこう": [ - "japanese" - ], - "かいさつ": [ - "japanese" - ], - "かいしゃ": [ - "japanese" - ], - "かいすいよく": [ - "japanese" - ], - "かいぜん": [ - "japanese" - ], - "かいぞうど": [ - "japanese" - ], - "かいつう": [ - "japanese" - ], - "かいてん": [ - "japanese" - ], - "かいとう": [ - "japanese" - ], - "かいふく": [ - "japanese" - ], - "がいへき": [ - "japanese" - ], - "かいほう": [ - "japanese" - ], - "かいよう": [ - "japanese" - ], - "がいらい": [ - "japanese" - ], - "かいわ": [ - "japanese" - ], - "かえる": [ - "japanese" - ], - "かおり": [ - "japanese" - ], - "かかえる": [ - "japanese" - ], - "かがく": [ - "japanese" - ], - "かがし": [ - "japanese" - ], - "かがみ": [ - "japanese" - ], - "かくご": [ - "japanese" - ], - "かくとく": [ - "japanese" - ], - "かざる": [ - "japanese" - ], - "がぞう": [ - "japanese" - ], - "かたい": [ - "japanese" - ], - "かたち": [ - "japanese" - ], - "がちょう": [ - "japanese" - ], - "がっきゅう": [ - "japanese" - ], - "がっこう": [ - "japanese" - ], - "がっさん": [ - "japanese" - ], - "がっしょう": [ - "japanese" - ], - "かなざわし": [ - "japanese" - ], - "かのう": [ - "japanese" - ], - "がはく": [ - "japanese" - ], - "かぶか": [ - "japanese" - ], - "かほう": [ - "japanese" - ], - "かほご": [ - "japanese" - ], - "かまう": [ - "japanese" - ], - "かまぼこ": [ - "japanese" - ], - "かめれおん": [ - "japanese" - ], - "かゆい": [ - "japanese" - ], - "かようび": [ - "japanese" - ], - "からい": [ - "japanese" - ], - "かるい": [ - "japanese" - ], - "かろう": [ - "japanese" - ], - "かわく": [ - "japanese" - ], - "かわら": [ - "japanese" - ], - "がんか": [ - "japanese" - ], - "かんけい": [ - "japanese" - ], - "かんこう": [ - "japanese" - ], - "かんしゃ": [ - "japanese" - ], - "かんそう": [ - "japanese" - ], - "かんたん": [ - "japanese" - ], - "かんち": [ - "japanese" - ], - "がんばる": [ - "japanese" - ], - "きあい": [ - "japanese" - ], - "きあつ": [ - "japanese" - ], - "きいろ": [ - "japanese" - ], - "ぎいん": [ - "japanese" - ], - "きうい": [ - "japanese" - ], - "きうん": [ - "japanese" - ], - "きえる": [ - "japanese" - ], - "きおう": [ - "japanese" - ], - "きおく": [ - "japanese" - ], - "きおち": [ - "japanese" - ], - "きおん": [ - "japanese" - ], - "きかい": [ - "japanese" - ], - "きかく": [ - "japanese" - ], - "きかんしゃ": [ - "japanese" - ], - "ききて": [ - "japanese" - ], - "きくばり": [ - "japanese" - ], - "きくらげ": [ - "japanese" - ], - "きけんせい": [ - "japanese" - ], - "きこう": [ - "japanese" - ], - "きこえる": [ - "japanese" - ], - "きこく": [ - "japanese" - ], - "きさい": [ - "japanese" - ], - "きさく": [ - "japanese" - ], - "きさま": [ - "japanese" - ], - "きさらぎ": [ - "japanese" - ], - "ぎじかがく": [ - "japanese" - ], - "ぎしき": [ - "japanese" - ], - "ぎじたいけん": [ - "japanese" - ], - "ぎじにってい": [ - "japanese" - ], - "ぎじゅつしゃ": [ - "japanese" - ], - "きすう": [ - "japanese" - ], - "きせい": [ - "japanese" - ], - "きせき": [ - "japanese" - ], - "きせつ": [ - "japanese" - ], - "きそう": [ - "japanese" - ], - "きぞく": [ - "japanese" - ], - "きぞん": [ - "japanese" - ], - "きたえる": [ - "japanese" - ], - "きちょう": [ - "japanese" - ], - "きつえん": [ - "japanese" - ], - "ぎっちり": [ - "japanese" - ], - "きつつき": [ - "japanese" - ], - "きつね": [ - "japanese" - ], - "きてい": [ - "japanese" - ], - "きどう": [ - "japanese" - ], - "きどく": [ - "japanese" - ], - "きない": [ - "japanese" - ], - "きなが": [ - "japanese" - ], - "きなこ": [ - "japanese" - ], - "きぬごし": [ - "japanese" - ], - "きねん": [ - "japanese" - ], - "きのう": [ - "japanese" - ], - "きのした": [ - "japanese" - ], - "きはく": [ - "japanese" - ], - "きびしい": [ - "japanese" - ], - "きひん": [ - "japanese" - ], - "きふく": [ - "japanese" - ], - "きぶん": [ - "japanese" - ], - "きぼう": [ - "japanese" - ], - "きほん": [ - "japanese" - ], - "きまる": [ - "japanese" - ], - "きみつ": [ - "japanese" - ], - "きむずかしい": [ - "japanese" - ], - "きめる": [ - "japanese" - ], - "きもだめし": [ - "japanese" - ], - "きもち": [ - "japanese" - ], - "きもの": [ - "japanese" - ], - "きゃく": [ - "japanese" - ], - "きやく": [ - "japanese" - ], - "ぎゅうにく": [ - "japanese" - ], - "きよう": [ - "japanese" - ], - "きょうりゅう": [ - "japanese" - ], - "きらい": [ - "japanese" - ], - "きらく": [ - "japanese" - ], - "きりん": [ - "japanese" - ], - "きれい": [ - "japanese" - ], - "きれつ": [ - "japanese" - ], - "きろく": [ - "japanese" - ], - "ぎろん": [ - "japanese" - ], - "きわめる": [ - "japanese" - ], - "ぎんいろ": [ - "japanese" - ], - "きんかくじ": [ - "japanese" - ], - "きんじょ": [ - "japanese" - ], - "きんようび": [ - "japanese" - ], - "ぐあい": [ - "japanese" - ], - "くいず": [ - "japanese" - ], - "くうかん": [ - "japanese" - ], - "くうき": [ - "japanese" - ], - "くうぐん": [ - "japanese" - ], - "くうこう": [ - "japanese" - ], - "ぐうせい": [ - "japanese" - ], - "くうそう": [ - "japanese" - ], - "ぐうたら": [ - "japanese" - ], - "くうふく": [ - "japanese" - ], - "くうぼ": [ - "japanese" - ], - "くかん": [ - "japanese" - ], - "くきょう": [ - "japanese" - ], - "くげん": [ - "japanese" - ], - "ぐこう": [ - "japanese" - ], - "くさい": [ - "japanese" - ], - "くさき": [ - "japanese" - ], - "くさばな": [ - "japanese" - ], - "くさる": [ - "japanese" - ], - "くしゃみ": [ - "japanese" - ], - "くしょう": [ - "japanese" - ], - "くすのき": [ - "japanese" - ], - "くすりゆび": [ - "japanese" - ], - "くせげ": [ - "japanese" - ], - "くせん": [ - "japanese" - ], - "ぐたいてき": [ - "japanese" - ], - "くださる": [ - "japanese" - ], - "くたびれる": [ - "japanese" - ], - "くちこみ": [ - "japanese" - ], - "くちさき": [ - "japanese" - ], - "くつした": [ - "japanese" - ], - "ぐっすり": [ - "japanese" - ], - "くつろぐ": [ - "japanese" - ], - "くとうてん": [ - "japanese" - ], - "くどく": [ - "japanese" - ], - "くなん": [ - "japanese" - ], - "くねくね": [ - "japanese" - ], - "くのう": [ - "japanese" - ], - "くふう": [ - "japanese" - ], - "くみあわせ": [ - "japanese" - ], - "くみたてる": [ - "japanese" - ], - "くめる": [ - "japanese" - ], - "くやくしょ": [ - "japanese" - ], - "くらす": [ - "japanese" - ], - "くらべる": [ - "japanese" - ], - "くるま": [ - "japanese" - ], - "くれる": [ - "japanese" - ], - "くろう": [ - "japanese" - ], - "くわしい": [ - "japanese" - ], - "ぐんかん": [ - "japanese" - ], - "ぐんしょく": [ - "japanese" - ], - "ぐんたい": [ - "japanese" - ], - "ぐんて": [ - "japanese" - ], - "けあな": [ - "japanese" - ], - "けいかく": [ - "japanese" - ], - "けいけん": [ - "japanese" - ], - "けいこ": [ - "japanese" - ], - "けいさつ": [ - "japanese" - ], - "げいじゅつ": [ - "japanese" - ], - "けいたい": [ - "japanese" - ], - "げいのうじん": [ - "japanese" - ], - "けいれき": [ - "japanese" - ], - "けいろ": [ - "japanese" - ], - "けおとす": [ - "japanese" - ], - "けおりもの": [ - "japanese" - ], - "げきか": [ - "japanese" - ], - "げきげん": [ - "japanese" - ], - "げきだん": [ - "japanese" - ], - "げきちん": [ - "japanese" - ], - "げきとつ": [ - "japanese" - ], - "げきは": [ - "japanese" - ], - "げきやく": [ - "japanese" - ], - "げこう": [ - "japanese" - ], - "げこくじょう": [ - "japanese" - ], - "げざい": [ - "japanese" - ], - "けさき": [ - "japanese" - ], - "げざん": [ - "japanese" - ], - "けしき": [ - "japanese" - ], - "けしごむ": [ - "japanese" - ], - "けしょう": [ - "japanese" - ], - "げすと": [ - "japanese" - ], - "けたば": [ - "japanese" - ], - "けちゃっぷ": [ - "japanese" - ], - "けちらす": [ - "japanese" - ], - "けつあつ": [ - "japanese" - ], - "けつい": [ - "japanese" - ], - "けつえき": [ - "japanese" - ], - "けっこん": [ - "japanese" - ], - "けつじょ": [ - "japanese" - ], - "けっせき": [ - "japanese" - ], - "けってい": [ - "japanese" - ], - "けつまつ": [ - "japanese" - ], - "げつようび": [ - "japanese" - ], - "げつれい": [ - "japanese" - ], - "けつろん": [ - "japanese" - ], - "げどく": [ - "japanese" - ], - "けとばす": [ - "japanese" - ], - "けとる": [ - "japanese" - ], - "けなげ": [ - "japanese" - ], - "けなす": [ - "japanese" - ], - "けなみ": [ - "japanese" - ], - "けぬき": [ - "japanese" - ], - "げねつ": [ - "japanese" - ], - "けねん": [ - "japanese" - ], - "けはい": [ - "japanese" - ], - "げひん": [ - "japanese" - ], - "けぶかい": [ - "japanese" - ], - "げぼく": [ - "japanese" - ], - "けまり": [ - "japanese" - ], - "けみかる": [ - "japanese" - ], - "けむし": [ - "japanese" - ], - "けむり": [ - "japanese" - ], - "けもの": [ - "japanese" - ], - "けらい": [ - "japanese" - ], - "けろけろ": [ - "japanese" - ], - "けわしい": [ - "japanese" - ], - "けんい": [ - "japanese" - ], - "けんえつ": [ - "japanese" - ], - "けんお": [ - "japanese" - ], - "けんか": [ - "japanese" - ], - "げんき": [ - "japanese" - ], - "けんげん": [ - "japanese" - ], - "けんこう": [ - "japanese" - ], - "けんさく": [ - "japanese" - ], - "けんしゅう": [ - "japanese" - ], - "けんすう": [ - "japanese" - ], - "げんそう": [ - "japanese" - ], - "けんちく": [ - "japanese" - ], - "けんてい": [ - "japanese" - ], - "けんとう": [ - "japanese" - ], - "けんない": [ - "japanese" - ], - "けんにん": [ - "japanese" - ], - "げんぶつ": [ - "japanese" - ], - "けんま": [ - "japanese" - ], - "けんみん": [ - "japanese" - ], - "けんめい": [ - "japanese" - ], - "けんらん": [ - "japanese" - ], - "けんり": [ - "japanese" - ], - "こあくま": [ - "japanese" - ], - "こいぬ": [ - "japanese" - ], - "こいびと": [ - "japanese" - ], - "ごうい": [ - "japanese" - ], - "こうえん": [ - "japanese" - ], - "こうおん": [ - "japanese" - ], - "こうかん": [ - "japanese" - ], - "ごうきゅう": [ - "japanese" - ], - "ごうけい": [ - "japanese" - ], - "こうこう": [ - "japanese" - ], - "こうさい": [ - "japanese" - ], - "こうじ": [ - "japanese" - ], - "こうすい": [ - "japanese" - ], - "ごうせい": [ - "japanese" - ], - "こうそく": [ - "japanese" - ], - "こうたい": [ - "japanese" - ], - "こうちゃ": [ - "japanese" - ], - "こうつう": [ - "japanese" - ], - "こうてい": [ - "japanese" - ], - "こうどう": [ - "japanese" - ], - "こうない": [ - "japanese" - ], - "こうはい": [ - "japanese" - ], - "ごうほう": [ - "japanese" - ], - "ごうまん": [ - "japanese" - ], - "こうもく": [ - "japanese" - ], - "こうりつ": [ - "japanese" - ], - "こえる": [ - "japanese" - ], - "こおり": [ - "japanese" - ], - "ごかい": [ - "japanese" - ], - "ごがつ": [ - "japanese" - ], - "ごかん": [ - "japanese" - ], - "こくご": [ - "japanese" - ], - "こくさい": [ - "japanese" - ], - "こくとう": [ - "japanese" - ], - "こくない": [ - "japanese" - ], - "こくはく": [ - "japanese" - ], - "こぐま": [ - "japanese" - ], - "こけい": [ - "japanese" - ], - "こける": [ - "japanese" - ], - "ここのか": [ - "japanese" - ], - "こころ": [ - "japanese" - ], - "こさめ": [ - "japanese" - ], - "こしつ": [ - "japanese" - ], - "こすう": [ - "japanese" - ], - "こせい": [ - "japanese" - ], - "こせき": [ - "japanese" - ], - "こぜん": [ - "japanese" - ], - "こそだて": [ - "japanese" - ], - "こたい": [ - "japanese" - ], - "こたえる": [ - "japanese" - ], - "こたつ": [ - "japanese" - ], - "こちょう": [ - "japanese" - ], - "こっか": [ - "japanese" - ], - "こつこつ": [ - "japanese" - ], - "こつばん": [ - "japanese" - ], - "こつぶ": [ - "japanese" - ], - "こてい": [ - "japanese" - ], - "こてん": [ - "japanese" - ], - "ことがら": [ - "japanese" - ], - "ことし": [ - "japanese" - ], - "ことば": [ - "japanese" - ], - "ことり": [ - "japanese" - ], - "こなごな": [ - "japanese" - ], - "こねこね": [ - "japanese" - ], - "このまま": [ - "japanese" - ], - "このみ": [ - "japanese" - ], - "このよ": [ - "japanese" - ], - "ごはん": [ - "japanese" - ], - "こひつじ": [ - "japanese" - ], - "こふう": [ - "japanese" - ], - "こふん": [ - "japanese" - ], - "こぼれる": [ - "japanese" - ], - "ごまあぶら": [ - "japanese" - ], - "こまかい": [ - "japanese" - ], - "ごますり": [ - "japanese" - ], - "こまつな": [ - "japanese" - ], - "こまる": [ - "japanese" - ], - "こむぎこ": [ - "japanese" - ], - "こもじ": [ - "japanese" - ], - "こもち": [ - "japanese" - ], - "こもの": [ - "japanese" - ], - "こもん": [ - "japanese" - ], - "こやく": [ - "japanese" - ], - "こやま": [ - "japanese" - ], - "こゆう": [ - "japanese" - ], - "こゆび": [ - "japanese" - ], - "こよい": [ - "japanese" - ], - "こよう": [ - "japanese" - ], - "こりる": [ - "japanese" - ], - "これくしょん": [ - "japanese" - ], - "ころっけ": [ - "japanese" - ], - "こわもて": [ - "japanese" - ], - "こわれる": [ - "japanese" - ], - "こんいん": [ - "japanese" - ], - "こんかい": [ - "japanese" - ], - "こんき": [ - "japanese" - ], - "こんしゅう": [ - "japanese" - ], - "こんすい": [ - "japanese" - ], - "こんだて": [ - "japanese" - ], - "こんとん": [ - "japanese" - ], - "こんなん": [ - "japanese" - ], - "こんびに": [ - "japanese" - ], - "こんぽん": [ - "japanese" - ], - "こんまけ": [ - "japanese" - ], - "こんや": [ - "japanese" - ], - "こんれい": [ - "japanese" - ], - "こんわく": [ - "japanese" - ], - "ざいえき": [ - "japanese" - ], - "さいかい": [ - "japanese" - ], - "さいきん": [ - "japanese" - ], - "ざいげん": [ - "japanese" - ], - "ざいこ": [ - "japanese" - ], - "さいしょ": [ - "japanese" - ], - "さいせい": [ - "japanese" - ], - "ざいたく": [ - "japanese" - ], - "ざいちゅう": [ - "japanese" - ], - "さいてき": [ - "japanese" - ], - "ざいりょう": [ - "japanese" - ], - "さうな": [ - "japanese" - ], - "さかいし": [ - "japanese" - ], - "さがす": [ - "japanese" - ], - "さかな": [ - "japanese" - ], - "さかみち": [ - "japanese" - ], - "さがる": [ - "japanese" - ], - "さぎょう": [ - "japanese" - ], - "さくし": [ - "japanese" - ], - "さくひん": [ - "japanese" - ], - "さくら": [ - "japanese" - ], - "さこく": [ - "japanese" - ], - "さこつ": [ - "japanese" - ], - "さずかる": [ - "japanese" - ], - "ざせき": [ - "japanese" - ], - "さたん": [ - "japanese" - ], - "さつえい": [ - "japanese" - ], - "ざつおん": [ - "japanese" - ], - "ざっか": [ - "japanese" - ], - "ざつがく": [ - "japanese" - ], - "さっきょく": [ - "japanese" - ], - "ざっし": [ - "japanese" - ], - "さつじん": [ - "japanese" - ], - "ざっそう": [ - "japanese" - ], - "さつたば": [ - "japanese" - ], - "さつまいも": [ - "japanese" - ], - "さてい": [ - "japanese" - ], - "さといも": [ - "japanese" - ], - "さとう": [ - "japanese" - ], - "さとおや": [ - "japanese" - ], - "さとし": [ - "japanese" - ], - "さとる": [ - "japanese" - ], - "さのう": [ - "japanese" - ], - "さばく": [ - "japanese" - ], - "さびしい": [ - "japanese" - ], - "さべつ": [ - "japanese" - ], - "さほう": [ - "japanese" - ], - "さほど": [ - "japanese" - ], - "さます": [ - "japanese" - ], - "さみしい": [ - "japanese" - ], - "さみだれ": [ - "japanese" - ], - "さむけ": [ - "japanese" - ], - "さめる": [ - "japanese" - ], - "さやえんどう": [ - "japanese" - ], - "さゆう": [ - "japanese" - ], - "さよう": [ - "japanese" - ], - "さよく": [ - "japanese" - ], - "さらだ": [ - "japanese" - ], - "ざるそば": [ - "japanese" - ], - "さわやか": [ - "japanese" - ], - "さわる": [ - "japanese" - ], - "さんいん": [ - "japanese" - ], - "さんか": [ - "japanese" - ], - "さんきゃく": [ - "japanese" - ], - "さんこう": [ - "japanese" - ], - "さんさい": [ - "japanese" - ], - "ざんしょ": [ - "japanese" - ], - "さんすう": [ - "japanese" - ], - "さんせい": [ - "japanese" - ], - "さんそ": [ - "japanese" - ], - "さんち": [ - "japanese" - ], - "さんま": [ - "japanese" - ], - "さんみ": [ - "japanese" - ], - "さんらん": [ - "japanese" - ], - "しあい": [ - "japanese" - ], - "しあげ": [ - "japanese" - ], - "しあさって": [ - "japanese" - ], - "しあわせ": [ - "japanese" - ], - "しいく": [ - "japanese" - ], - "しいん": [ - "japanese" - ], - "しうち": [ - "japanese" - ], - "しえい": [ - "japanese" - ], - "しおけ": [ - "japanese" - ], - "しかい": [ - "japanese" - ], - "しかく": [ - "japanese" - ], - "じかん": [ - "japanese" - ], - "しごと": [ - "japanese" - ], - "しすう": [ - "japanese" - ], - "じだい": [ - "japanese" - ], - "したうけ": [ - "japanese" - ], - "したぎ": [ - "japanese" - ], - "したて": [ - "japanese" - ], - "したみ": [ - "japanese" - ], - "しちょう": [ - "japanese" - ], - "しちりん": [ - "japanese" - ], - "しっかり": [ - "japanese" - ], - "しつじ": [ - "japanese" - ], - "しつもん": [ - "japanese" - ], - "してい": [ - "japanese" - ], - "してき": [ - "japanese" - ], - "してつ": [ - "japanese" - ], - "じてん": [ - "japanese" - ], - "じどう": [ - "japanese" - ], - "しなぎれ": [ - "japanese" - ], - "しなもの": [ - "japanese" - ], - "しなん": [ - "japanese" - ], - "しねま": [ - "japanese" - ], - "しねん": [ - "japanese" - ], - "しのぐ": [ - "japanese" - ], - "しのぶ": [ - "japanese" - ], - "しはい": [ - "japanese" - ], - "しばかり": [ - "japanese" - ], - "しはつ": [ - "japanese" - ], - "しはらい": [ - "japanese" - ], - "しはん": [ - "japanese" - ], - "しひょう": [ - "japanese" - ], - "しふく": [ - "japanese" - ], - "じぶん": [ - "japanese" - ], - "しへい": [ - "japanese" - ], - "しほう": [ - "japanese" - ], - "しほん": [ - "japanese" - ], - "しまう": [ - "japanese" - ], - "しまる": [ - "japanese" - ], - "しみん": [ - "japanese" - ], - "しむける": [ - "japanese" - ], - "じむしょ": [ - "japanese" - ], - "しめい": [ - "japanese" - ], - "しめる": [ - "japanese" - ], - "しもん": [ - "japanese" - ], - "しゃいん": [ - "japanese" - ], - "しゃうん": [ - "japanese" - ], - "しゃおん": [ - "japanese" - ], - "じゃがいも": [ - "japanese" - ], - "しやくしょ": [ - "japanese" - ], - "しゃくほう": [ - "japanese" - ], - "しゃけん": [ - "japanese" - ], - "しゃこ": [ - "japanese" - ], - "しゃざい": [ - "japanese" - ], - "しゃしん": [ - "japanese" - ], - "しゃせん": [ - "japanese" - ], - "しゃそう": [ - "japanese" - ], - "しゃたい": [ - "japanese" - ], - "しゃちょう": [ - "japanese" - ], - "しゃっきん": [ - "japanese" - ], - "じゃま": [ - "japanese" - ], - "しゃりん": [ - "japanese" - ], - "しゃれい": [ - "japanese" - ], - "じゆう": [ - "japanese" - ], - "じゅうしょ": [ - "japanese" - ], - "しゅくはく": [ - "japanese" - ], - "じゅしん": [ - "japanese" - ], - "しゅっせき": [ - "japanese" - ], - "しゅみ": [ - "japanese" - ], - "しゅらば": [ - "japanese" - ], - "じゅんばん": [ - "japanese" - ], - "しょうかい": [ - "japanese" - ], - "しょくたく": [ - "japanese" - ], - "しょっけん": [ - "japanese" - ], - "しょどう": [ - "japanese" - ], - "しょもつ": [ - "japanese" - ], - "しらせる": [ - "japanese" - ], - "しらべる": [ - "japanese" - ], - "しんか": [ - "japanese" - ], - "しんこう": [ - "japanese" - ], - "じんじゃ": [ - "japanese" - ], - "しんせいじ": [ - "japanese" - ], - "しんちく": [ - "japanese" - ], - "しんりん": [ - "japanese" - ], - "すあげ": [ - "japanese" - ], - "すあし": [ - "japanese" - ], - "すあな": [ - "japanese" - ], - "ずあん": [ - "japanese" - ], - "すいえい": [ - "japanese" - ], - "すいか": [ - "japanese" - ], - "すいとう": [ - "japanese" - ], - "ずいぶん": [ - "japanese" - ], - "すいようび": [ - "japanese" - ], - "すうがく": [ - "japanese" - ], - "すうじつ": [ - "japanese" - ], - "すうせん": [ - "japanese" - ], - "すおどり": [ - "japanese" - ], - "すきま": [ - "japanese" - ], - "すくう": [ - "japanese" - ], - "すくない": [ - "japanese" - ], - "すける": [ - "japanese" - ], - "すごい": [ - "japanese" - ], - "すこし": [ - "japanese" - ], - "ずさん": [ - "japanese" - ], - "すずしい": [ - "japanese" - ], - "すすむ": [ - "japanese" - ], - "すすめる": [ - "japanese" - ], - "すっかり": [ - "japanese" - ], - "ずっしり": [ - "japanese" - ], - "ずっと": [ - "japanese" - ], - "すてき": [ - "japanese" - ], - "すてる": [ - "japanese" - ], - "すねる": [ - "japanese" - ], - "すのこ": [ - "japanese" - ], - "すはだ": [ - "japanese" - ], - "すばらしい": [ - "japanese" - ], - "ずひょう": [ - "japanese" - ], - "ずぶぬれ": [ - "japanese" - ], - "すぶり": [ - "japanese" - ], - "すふれ": [ - "japanese" - ], - "すべて": [ - "japanese" - ], - "すべる": [ - "japanese" - ], - "ずほう": [ - "japanese" - ], - "すぼん": [ - "japanese" - ], - "すまい": [ - "japanese" - ], - "すめし": [ - "japanese" - ], - "すもう": [ - "japanese" - ], - "すやき": [ - "japanese" - ], - "すらすら": [ - "japanese" - ], - "するめ": [ - "japanese" - ], - "すれちがう": [ - "japanese" - ], - "すろっと": [ - "japanese" - ], - "すわる": [ - "japanese" - ], - "すんぜん": [ - "japanese" - ], - "すんぽう": [ - "japanese" - ], - "せあぶら": [ - "japanese" - ], - "せいかつ": [ - "japanese" - ], - "せいげん": [ - "japanese" - ], - "せいじ": [ - "japanese" - ], - "せいよう": [ - "japanese" - ], - "せおう": [ - "japanese" - ], - "せかいかん": [ - "japanese" - ], - "せきにん": [ - "japanese" - ], - "せきむ": [ - "japanese" - ], - "せきゆ": [ - "japanese" - ], - "せきらんうん": [ - "japanese" - ], - "せけん": [ - "japanese" - ], - "せこう": [ - "japanese" - ], - "せすじ": [ - "japanese" - ], - "せたい": [ - "japanese" - ], - "せたけ": [ - "japanese" - ], - "せっかく": [ - "japanese" - ], - "せっきゃく": [ - "japanese" - ], - "ぜっく": [ - "japanese" - ], - "せっけん": [ - "japanese" - ], - "せっこつ": [ - "japanese" - ], - "せっさたくま": [ - "japanese" - ], - "せつぞく": [ - "japanese" - ], - "せつだん": [ - "japanese" - ], - "せつでん": [ - "japanese" - ], - "せっぱん": [ - "japanese" - ], - "せつび": [ - "japanese" - ], - "せつぶん": [ - "japanese" - ], - "せつめい": [ - "japanese" - ], - "せつりつ": [ - "japanese" - ], - "せなか": [ - "japanese" - ], - "せのび": [ - "japanese" - ], - "せはば": [ - "japanese" - ], - "せびろ": [ - "japanese" - ], - "せぼね": [ - "japanese" - ], - "せまい": [ - "japanese" - ], - "せまる": [ - "japanese" - ], - "せめる": [ - "japanese" - ], - "せもたれ": [ - "japanese" - ], - "せりふ": [ - "japanese" - ], - "ぜんあく": [ - "japanese" - ], - "せんい": [ - "japanese" - ], - "せんえい": [ - "japanese" - ], - "せんか": [ - "japanese" - ], - "せんきょ": [ - "japanese" - ], - "せんく": [ - "japanese" - ], - "せんげん": [ - "japanese" - ], - "ぜんご": [ - "japanese" - ], - "せんさい": [ - "japanese" - ], - "せんしゅ": [ - "japanese" - ], - "せんすい": [ - "japanese" - ], - "せんせい": [ - "japanese" - ], - "せんぞ": [ - "japanese" - ], - "せんたく": [ - "japanese" - ], - "せんちょう": [ - "japanese" - ], - "せんてい": [ - "japanese" - ], - "せんとう": [ - "japanese" - ], - "せんぬき": [ - "japanese" - ], - "せんねん": [ - "japanese" - ], - "せんぱい": [ - "japanese" - ], - "ぜんぶ": [ - "japanese" - ], - "ぜんぽう": [ - "japanese" - ], - "せんむ": [ - "japanese" - ], - "せんめんじょ": [ - "japanese" - ], - "せんもん": [ - "japanese" - ], - "せんやく": [ - "japanese" - ], - "せんゆう": [ - "japanese" - ], - "せんよう": [ - "japanese" - ], - "ぜんら": [ - "japanese" - ], - "ぜんりゃく": [ - "japanese" - ], - "せんれい": [ - "japanese" - ], - "せんろ": [ - "japanese" - ], - "そあく": [ - "japanese" - ], - "そいとげる": [ - "japanese" - ], - "そいね": [ - "japanese" - ], - "そうがんきょう": [ - "japanese" - ], - "そうき": [ - "japanese" - ], - "そうご": [ - "japanese" - ], - "そうしん": [ - "japanese" - ], - "そうだん": [ - "japanese" - ], - "そうなん": [ - "japanese" - ], - "そうび": [ - "japanese" - ], - "そうめん": [ - "japanese" - ], - "そうり": [ - "japanese" - ], - "そえもの": [ - "japanese" - ], - "そえん": [ - "japanese" - ], - "そがい": [ - "japanese" - ], - "そげき": [ - "japanese" - ], - "そこう": [ - "japanese" - ], - "そこそこ": [ - "japanese" - ], - "そざい": [ - "japanese" - ], - "そしな": [ - "japanese" - ], - "そせい": [ - "japanese" - ], - "そせん": [ - "japanese" - ], - "そそぐ": [ - "japanese" - ], - "そだてる": [ - "japanese" - ], - "そつう": [ - "japanese" - ], - "そつえん": [ - "japanese" - ], - "そっかん": [ - "japanese" - ], - "そつぎょう": [ - "japanese" - ], - "そっけつ": [ - "japanese" - ], - "そっこう": [ - "japanese" - ], - "そっせん": [ - "japanese" - ], - "そっと": [ - "japanese" - ], - "そとがわ": [ - "japanese" - ], - "そとづら": [ - "japanese" - ], - "そなえる": [ - "japanese" - ], - "そなた": [ - "japanese" - ], - "そふぼ": [ - "japanese" - ], - "そぼく": [ - "japanese" - ], - "そぼろ": [ - "japanese" - ], - "そまつ": [ - "japanese" - ], - "そまる": [ - "japanese" - ], - "そむく": [ - "japanese" - ], - "そむりえ": [ - "japanese" - ], - "そめる": [ - "japanese" - ], - "そもそも": [ - "japanese" - ], - "そよかぜ": [ - "japanese" - ], - "そらまめ": [ - "japanese" - ], - "そろう": [ - "japanese" - ], - "そんかい": [ - "japanese" - ], - "そんけい": [ - "japanese" - ], - "そんざい": [ - "japanese" - ], - "そんしつ": [ - "japanese" - ], - "そんぞく": [ - "japanese" - ], - "そんちょう": [ - "japanese" - ], - "ぞんび": [ - "japanese" - ], - "ぞんぶん": [ - "japanese" - ], - "そんみん": [ - "japanese" - ], - "たあい": [ - "japanese" - ], - "たいいん": [ - "japanese" - ], - "たいうん": [ - "japanese" - ], - "たいえき": [ - "japanese" - ], - "たいおう": [ - "japanese" - ], - "だいがく": [ - "japanese" - ], - "たいき": [ - "japanese" - ], - "たいぐう": [ - "japanese" - ], - "たいけん": [ - "japanese" - ], - "たいこ": [ - "japanese" - ], - "たいざい": [ - "japanese" - ], - "だいじょうぶ": [ - "japanese" - ], - "だいすき": [ - "japanese" - ], - "たいせつ": [ - "japanese" - ], - "たいそう": [ - "japanese" - ], - "だいたい": [ - "japanese" - ], - "たいちょう": [ - "japanese" - ], - "たいてい": [ - "japanese" - ], - "だいどころ": [ - "japanese" - ], - "たいない": [ - "japanese" - ], - "たいねつ": [ - "japanese" - ], - "たいのう": [ - "japanese" - ], - "たいはん": [ - "japanese" - ], - "だいひょう": [ - "japanese" - ], - "たいふう": [ - "japanese" - ], - "たいへん": [ - "japanese" - ], - "たいほ": [ - "japanese" - ], - "たいまつばな": [ - "japanese" - ], - "たいみんぐ": [ - "japanese" - ], - "たいむ": [ - "japanese" - ], - "たいめん": [ - "japanese" - ], - "たいやき": [ - "japanese" - ], - "たいよう": [ - "japanese" - ], - "たいら": [ - "japanese" - ], - "たいりょく": [ - "japanese" - ], - "たいる": [ - "japanese" - ], - "たいわん": [ - "japanese" - ], - "たうえ": [ - "japanese" - ], - "たえる": [ - "japanese" - ], - "たおす": [ - "japanese" - ], - "たおる": [ - "japanese" - ], - "たおれる": [ - "japanese" - ], - "たかい": [ - "japanese" - ], - "たかね": [ - "japanese" - ], - "たきび": [ - "japanese" - ], - "たくさん": [ - "japanese" - ], - "たこく": [ - "japanese" - ], - "たこやき": [ - "japanese" - ], - "たさい": [ - "japanese" - ], - "たしざん": [ - "japanese" - ], - "だじゃれ": [ - "japanese" - ], - "たすける": [ - "japanese" - ], - "たずさわる": [ - "japanese" - ], - "たそがれ": [ - "japanese" - ], - "たたかう": [ - "japanese" - ], - "たたく": [ - "japanese" - ], - "ただしい": [ - "japanese" - ], - "たたみ": [ - "japanese" - ], - "たちばな": [ - "japanese" - ], - "だっかい": [ - "japanese" - ], - "だっきゃく": [ - "japanese" - ], - "だっこ": [ - "japanese" - ], - "だっしゅつ": [ - "japanese" - ], - "だったい": [ - "japanese" - ], - "たてる": [ - "japanese" - ], - "たとえる": [ - "japanese" - ], - "たなばた": [ - "japanese" - ], - "たにん": [ - "japanese" - ], - "たぬき": [ - "japanese" - ], - "たのしみ": [ - "japanese" - ], - "たはつ": [ - "japanese" - ], - "たぶん": [ - "japanese" - ], - "たべる": [ - "japanese" - ], - "たぼう": [ - "japanese" - ], - "たまご": [ - "japanese" - ], - "たまる": [ - "japanese" - ], - "だむる": [ - "japanese" - ], - "ためいき": [ - "japanese" - ], - "ためす": [ - "japanese" - ], - "ためる": [ - "japanese" - ], - "たもつ": [ - "japanese" - ], - "たやすい": [ - "japanese" - ], - "たよる": [ - "japanese" - ], - "たらす": [ - "japanese" - ], - "たりきほんがん": [ - "japanese" - ], - "たりょう": [ - "japanese" - ], - "たりる": [ - "japanese" - ], - "たると": [ - "japanese" - ], - "たれる": [ - "japanese" - ], - "たれんと": [ - "japanese" - ], - "たろっと": [ - "japanese" - ], - "たわむれる": [ - "japanese" - ], - "だんあつ": [ - "japanese" - ], - "たんい": [ - "japanese" - ], - "たんおん": [ - "japanese" - ], - "たんか": [ - "japanese" - ], - "たんき": [ - "japanese" - ], - "たんけん": [ - "japanese" - ], - "たんご": [ - "japanese" - ], - "たんさん": [ - "japanese" - ], - "たんじょうび": [ - "japanese" - ], - "だんせい": [ - "japanese" - ], - "たんそく": [ - "japanese" - ], - "たんたい": [ - "japanese" - ], - "だんち": [ - "japanese" - ], - "たんてい": [ - "japanese" - ], - "たんとう": [ - "japanese" - ], - "だんな": [ - "japanese" - ], - "たんにん": [ - "japanese" - ], - "だんねつ": [ - "japanese" - ], - "たんのう": [ - "japanese" - ], - "たんぴん": [ - "japanese" - ], - "だんぼう": [ - "japanese" - ], - "たんまつ": [ - "japanese" - ], - "たんめい": [ - "japanese" - ], - "だんれつ": [ - "japanese" - ], - "だんろ": [ - "japanese" - ], - "だんわ": [ - "japanese" - ], - "ちあい": [ - "japanese" - ], - "ちあん": [ - "japanese" - ], - "ちいき": [ - "japanese" - ], - "ちいさい": [ - "japanese" - ], - "ちえん": [ - "japanese" - ], - "ちかい": [ - "japanese" - ], - "ちから": [ - "japanese" - ], - "ちきゅう": [ - "japanese" - ], - "ちきん": [ - "japanese" - ], - "ちけいず": [ - "japanese" - ], - "ちけん": [ - "japanese" - ], - "ちこく": [ - "japanese" - ], - "ちさい": [ - "japanese" - ], - "ちしき": [ - "japanese" - ], - "ちしりょう": [ - "japanese" - ], - "ちせい": [ - "japanese" - ], - "ちそう": [ - "japanese" - ], - "ちたい": [ - "japanese" - ], - "ちたん": [ - "japanese" - ], - "ちちおや": [ - "japanese" - ], - "ちつじょ": [ - "japanese" - ], - "ちてき": [ - "japanese" - ], - "ちてん": [ - "japanese" - ], - "ちぬき": [ - "japanese" - ], - "ちぬり": [ - "japanese" - ], - "ちのう": [ - "japanese" - ], - "ちひょう": [ - "japanese" - ], - "ちへいせん": [ - "japanese" - ], - "ちほう": [ - "japanese" - ], - "ちまた": [ - "japanese" - ], - "ちみつ": [ - "japanese" - ], - "ちみどろ": [ - "japanese" - ], - "ちめいど": [ - "japanese" - ], - "ちゃんこなべ": [ - "japanese" - ], - "ちゅうい": [ - "japanese" - ], - "ちゆりょく": [ - "japanese" - ], - "ちょうし": [ - "japanese" - ], - "ちょさくけん": [ - "japanese" - ], - "ちらし": [ - "japanese" - ], - "ちらみ": [ - "japanese" - ], - "ちりがみ": [ - "japanese" - ], - "ちりょう": [ - "japanese" - ], - "ちるど": [ - "japanese" - ], - "ちわわ": [ - "japanese" - ], - "ちんたい": [ - "japanese" - ], - "ちんもく": [ - "japanese" - ], - "ついか": [ - "japanese" - ], - "ついたち": [ - "japanese" - ], - "つうか": [ - "japanese" - ], - "つうじょう": [ - "japanese" - ], - "つうはん": [ - "japanese" - ], - "つうわ": [ - "japanese" - ], - "つかう": [ - "japanese" - ], - "つかれる": [ - "japanese" - ], - "つくね": [ - "japanese" - ], - "つくる": [ - "japanese" - ], - "つけね": [ - "japanese" - ], - "つける": [ - "japanese" - ], - "つごう": [ - "japanese" - ], - "つたえる": [ - "japanese" - ], - "つづく": [ - "japanese" - ], - "つつじ": [ - "japanese" - ], - "つつむ": [ - "japanese" - ], - "つとめる": [ - "japanese" - ], - "つながる": [ - "japanese" - ], - "つなみ": [ - "japanese" - ], - "つねづね": [ - "japanese" - ], - "つのる": [ - "japanese" - ], - "つぶす": [ - "japanese" - ], - "つまらない": [ - "japanese" - ], - "つまる": [ - "japanese" - ], - "つみき": [ - "japanese" - ], - "つめたい": [ - "japanese" - ], - "つもり": [ - "japanese" - ], - "つもる": [ - "japanese" - ], - "つよい": [ - "japanese" - ], - "つるぼ": [ - "japanese" - ], - "つるみく": [ - "japanese" - ], - "つわもの": [ - "japanese" - ], - "つわり": [ - "japanese" - ], - "てあし": [ - "japanese" - ], - "てあて": [ - "japanese" - ], - "てあみ": [ - "japanese" - ], - "ていおん": [ - "japanese" - ], - "ていか": [ - "japanese" - ], - "ていき": [ - "japanese" - ], - "ていけい": [ - "japanese" - ], - "ていこく": [ - "japanese" - ], - "ていさつ": [ - "japanese" - ], - "ていし": [ - "japanese" - ], - "ていせい": [ - "japanese" - ], - "ていたい": [ - "japanese" - ], - "ていど": [ - "japanese" - ], - "ていねい": [ - "japanese" - ], - "ていひょう": [ - "japanese" - ], - "ていへん": [ - "japanese" - ], - "ていぼう": [ - "japanese" - ], - "てうち": [ - "japanese" - ], - "ておくれ": [ - "japanese" - ], - "てきとう": [ - "japanese" - ], - "てくび": [ - "japanese" - ], - "でこぼこ": [ - "japanese" - ], - "てさぎょう": [ - "japanese" - ], - "てさげ": [ - "japanese" - ], - "てすり": [ - "japanese" - ], - "てそう": [ - "japanese" - ], - "てちがい": [ - "japanese" - ], - "てちょう": [ - "japanese" - ], - "てつがく": [ - "japanese" - ], - "てつづき": [ - "japanese" - ], - "でっぱ": [ - "japanese" - ], - "てつぼう": [ - "japanese" - ], - "てつや": [ - "japanese" - ], - "でぬかえ": [ - "japanese" - ], - "てぬき": [ - "japanese" - ], - "てぬぐい": [ - "japanese" - ], - "てのひら": [ - "japanese" - ], - "てはい": [ - "japanese" - ], - "てぶくろ": [ - "japanese" - ], - "てふだ": [ - "japanese" - ], - "てほどき": [ - "japanese" - ], - "てほん": [ - "japanese" - ], - "てまえ": [ - "japanese" - ], - "てまきずし": [ - "japanese" - ], - "てみじか": [ - "japanese" - ], - "てみやげ": [ - "japanese" - ], - "てらす": [ - "japanese" - ], - "てれび": [ - "japanese" - ], - "てわけ": [ - "japanese" - ], - "てわたし": [ - "japanese" - ], - "でんあつ": [ - "japanese" - ], - "てんいん": [ - "japanese" - ], - "てんかい": [ - "japanese" - ], - "てんき": [ - "japanese" - ], - "てんぐ": [ - "japanese" - ], - "てんけん": [ - "japanese" - ], - "てんごく": [ - "japanese" - ], - "てんさい": [ - "japanese" - ], - "てんし": [ - "japanese" - ], - "てんすう": [ - "japanese" - ], - "でんち": [ - "japanese" - ], - "てんてき": [ - "japanese" - ], - "てんとう": [ - "japanese" - ], - "てんない": [ - "japanese" - ], - "てんぷら": [ - "japanese" - ], - "てんぼうだい": [ - "japanese" - ], - "てんめつ": [ - "japanese" - ], - "てんらんかい": [ - "japanese" - ], - "でんりょく": [ - "japanese" - ], - "でんわ": [ - "japanese" - ], - "どあい": [ - "japanese" - ], - "といれ": [ - "japanese" - ], - "どうかん": [ - "japanese" - ], - "とうきゅう": [ - "japanese" - ], - "どうぐ": [ - "japanese" - ], - "とうし": [ - "japanese" - ], - "とうむぎ": [ - "japanese" - ], - "とおい": [ - "japanese" - ], - "とおか": [ - "japanese" - ], - "とおく": [ - "japanese" - ], - "とおす": [ - "japanese" - ], - "とおる": [ - "japanese" - ], - "とかい": [ - "japanese" - ], - "とかす": [ - "japanese" - ], - "ときおり": [ - "japanese" - ], - "ときどき": [ - "japanese" - ], - "とくい": [ - "japanese" - ], - "とくしゅう": [ - "japanese" - ], - "とくてん": [ - "japanese" - ], - "とくに": [ - "japanese" - ], - "とくべつ": [ - "japanese" - ], - "とけい": [ - "japanese" - ], - "とける": [ - "japanese" - ], - "とこや": [ - "japanese" - ], - "とさか": [ - "japanese" - ], - "としょかん": [ - "japanese" - ], - "とそう": [ - "japanese" - ], - "とたん": [ - "japanese" - ], - "とちゅう": [ - "japanese" - ], - "とっきゅう": [ - "japanese" - ], - "とっくん": [ - "japanese" - ], - "とつぜん": [ - "japanese" - ], - "とつにゅう": [ - "japanese" - ], - "とどける": [ - "japanese" - ], - "ととのえる": [ - "japanese" - ], - "とない": [ - "japanese" - ], - "となえる": [ - "japanese" - ], - "となり": [ - "japanese" - ], - "とのさま": [ - "japanese" - ], - "とばす": [ - "japanese" - ], - "どぶがわ": [ - "japanese" - ], - "とほう": [ - "japanese" - ], - "とまる": [ - "japanese" - ], - "とめる": [ - "japanese" - ], - "ともだち": [ - "japanese" - ], - "ともる": [ - "japanese" - ], - "どようび": [ - "japanese" - ], - "とらえる": [ - "japanese" - ], - "とんかつ": [ - "japanese" - ], - "どんぶり": [ - "japanese" - ], - "ないかく": [ - "japanese" - ], - "ないこう": [ - "japanese" - ], - "ないしょ": [ - "japanese" - ], - "ないす": [ - "japanese" - ], - "ないせん": [ - "japanese" - ], - "ないそう": [ - "japanese" - ], - "なおす": [ - "japanese" - ], - "ながい": [ - "japanese" - ], - "なくす": [ - "japanese" - ], - "なげる": [ - "japanese" - ], - "なこうど": [ - "japanese" - ], - "なさけ": [ - "japanese" - ], - "なたでここ": [ - "japanese" - ], - "なっとう": [ - "japanese" - ], - "なつやすみ": [ - "japanese" - ], - "ななおし": [ - "japanese" - ], - "なにごと": [ - "japanese" - ], - "なにもの": [ - "japanese" - ], - "なにわ": [ - "japanese" - ], - "なのか": [ - "japanese" - ], - "なふだ": [ - "japanese" - ], - "なまいき": [ - "japanese" - ], - "なまえ": [ - "japanese" - ], - "なまみ": [ - "japanese" - ], - "なみだ": [ - "japanese" - ], - "なめらか": [ - "japanese" - ], - "なめる": [ - "japanese" - ], - "なやむ": [ - "japanese" - ], - "ならう": [ - "japanese" - ], - "ならび": [ - "japanese" - ], - "ならぶ": [ - "japanese" - ], - "なれる": [ - "japanese" - ], - "なわとび": [ - "japanese" - ], - "なわばり": [ - "japanese" - ], - "にあう": [ - "japanese" - ], - "にいがた": [ - "japanese" - ], - "にうけ": [ - "japanese" - ], - "におい": [ - "japanese" - ], - "にかい": [ - "japanese" - ], - "にがて": [ - "japanese" - ], - "にきび": [ - "japanese" - ], - "にくしみ": [ - "japanese" - ], - "にくまん": [ - "japanese" - ], - "にげる": [ - "japanese" - ], - "にさんかたんそ": [ - "japanese" - ], - "にしき": [ - "japanese" - ], - "にせもの": [ - "japanese" - ], - "にちじょう": [ - "japanese" - ], - "にちようび": [ - "japanese" - ], - "にっか": [ - "japanese" - ], - "にっき": [ - "japanese" - ], - "にっけい": [ - "japanese" - ], - "にっこう": [ - "japanese" - ], - "にっさん": [ - "japanese" - ], - "にっしょく": [ - "japanese" - ], - "にっすう": [ - "japanese" - ], - "にっせき": [ - "japanese" - ], - "にってい": [ - "japanese" - ], - "になう": [ - "japanese" - ], - "にほん": [ - "japanese" - ], - "にまめ": [ - "japanese" - ], - "にもつ": [ - "japanese" - ], - "にやり": [ - "japanese" - ], - "にゅういん": [ - "japanese" - ], - "にりんしゃ": [ - "japanese" - ], - "にわとり": [ - "japanese" - ], - "にんい": [ - "japanese" - ], - "にんか": [ - "japanese" - ], - "にんき": [ - "japanese" - ], - "にんげん": [ - "japanese" - ], - "にんしき": [ - "japanese" - ], - "にんずう": [ - "japanese" - ], - "にんそう": [ - "japanese" - ], - "にんたい": [ - "japanese" - ], - "にんち": [ - "japanese" - ], - "にんてい": [ - "japanese" - ], - "にんにく": [ - "japanese" - ], - "にんぷ": [ - "japanese" - ], - "にんまり": [ - "japanese" - ], - "にんむ": [ - "japanese" - ], - "にんめい": [ - "japanese" - ], - "にんよう": [ - "japanese" - ], - "ぬいくぎ": [ - "japanese" - ], - "ぬかす": [ - "japanese" - ], - "ぬぐいとる": [ - "japanese" - ], - "ぬぐう": [ - "japanese" - ], - "ぬくもり": [ - "japanese" - ], - "ぬすむ": [ - "japanese" - ], - "ぬまえび": [ - "japanese" - ], - "ぬめり": [ - "japanese" - ], - "ぬらす": [ - "japanese" - ], - "ぬんちゃく": [ - "japanese" - ], - "ねあげ": [ - "japanese" - ], - "ねいき": [ - "japanese" - ], - "ねいる": [ - "japanese" - ], - "ねいろ": [ - "japanese" - ], - "ねぐせ": [ - "japanese" - ], - "ねくたい": [ - "japanese" - ], - "ねくら": [ - "japanese" - ], - "ねこぜ": [ - "japanese" - ], - "ねこむ": [ - "japanese" - ], - "ねさげ": [ - "japanese" - ], - "ねすごす": [ - "japanese" - ], - "ねそべる": [ - "japanese" - ], - "ねだん": [ - "japanese" - ], - "ねつい": [ - "japanese" - ], - "ねっしん": [ - "japanese" - ], - "ねつぞう": [ - "japanese" - ], - "ねったいぎょ": [ - "japanese" - ], - "ねぶそく": [ - "japanese" - ], - "ねふだ": [ - "japanese" - ], - "ねぼう": [ - "japanese" - ], - "ねほりはほり": [ - "japanese" - ], - "ねまき": [ - "japanese" - ], - "ねまわし": [ - "japanese" - ], - "ねみみ": [ - "japanese" - ], - "ねむい": [ - "japanese" - ], - "ねむたい": [ - "japanese" - ], - "ねもと": [ - "japanese" - ], - "ねらう": [ - "japanese" - ], - "ねわざ": [ - "japanese" - ], - "ねんいり": [ - "japanese" - ], - "ねんおし": [ - "japanese" - ], - "ねんかん": [ - "japanese" - ], - "ねんきん": [ - "japanese" - ], - "ねんぐ": [ - "japanese" - ], - "ねんざ": [ - "japanese" - ], - "ねんし": [ - "japanese" - ], - "ねんちゃく": [ - "japanese" - ], - "ねんど": [ - "japanese" - ], - "ねんぴ": [ - "japanese" - ], - "ねんぶつ": [ - "japanese" - ], - "ねんまつ": [ - "japanese" - ], - "ねんりょう": [ - "japanese" - ], - "ねんれい": [ - "japanese" - ], - "のいず": [ - "japanese" - ], - "のおづま": [ - "japanese" - ], - "のがす": [ - "japanese" - ], - "のきなみ": [ - "japanese" - ], - "のこぎり": [ - "japanese" - ], - "のこす": [ - "japanese" - ], - "のこる": [ - "japanese" - ], - "のせる": [ - "japanese" - ], - "のぞく": [ - "japanese" - ], - "のぞむ": [ - "japanese" - ], - "のたまう": [ - "japanese" - ], - "のちほど": [ - "japanese" - ], - "のっく": [ - "japanese" - ], - "のばす": [ - "japanese" - ], - "のはら": [ - "japanese" - ], - "のべる": [ - "japanese" - ], - "のぼる": [ - "japanese" - ], - "のみもの": [ - "japanese" - ], - "のやま": [ - "japanese" - ], - "のらいぬ": [ - "japanese" - ], - "のらねこ": [ - "japanese" - ], - "のりもの": [ - "japanese" - ], - "のりゆき": [ - "japanese" - ], - "のれん": [ - "japanese" - ], - "のんき": [ - "japanese" - ], - "ばあい": [ - "japanese" - ], - "はあく": [ - "japanese" - ], - "ばあさん": [ - "japanese" - ], - "ばいか": [ - "japanese" - ], - "ばいく": [ - "japanese" - ], - "はいけん": [ - "japanese" - ], - "はいご": [ - "japanese" - ], - "はいしん": [ - "japanese" - ], - "はいすい": [ - "japanese" - ], - "はいせん": [ - "japanese" - ], - "はいそう": [ - "japanese" - ], - "はいち": [ - "japanese" - ], - "ばいばい": [ - "japanese" - ], - "はいれつ": [ - "japanese" - ], - "はえる": [ - "japanese" - ], - "はおる": [ - "japanese" - ], - "はかい": [ - "japanese" - ], - "ばかり": [ - "japanese" - ], - "はかる": [ - "japanese" - ], - "はくしゅ": [ - "japanese" - ], - "はけん": [ - "japanese" - ], - "はこぶ": [ - "japanese" - ], - "はさみ": [ - "japanese" - ], - "はさん": [ - "japanese" - ], - "はしご": [ - "japanese" - ], - "ばしょ": [ - "japanese" - ], - "はしる": [ - "japanese" - ], - "はせる": [ - "japanese" - ], - "ぱそこん": [ - "japanese" - ], - "はそん": [ - "japanese" - ], - "はたん": [ - "japanese" - ], - "はちみつ": [ - "japanese" - ], - "はつおん": [ - "japanese" - ], - "はっかく": [ - "japanese" - ], - "はづき": [ - "japanese" - ], - "はっきり": [ - "japanese" - ], - "はっくつ": [ - "japanese" - ], - "はっけん": [ - "japanese" - ], - "はっこう": [ - "japanese" - ], - "はっさん": [ - "japanese" - ], - "はっしん": [ - "japanese" - ], - "はったつ": [ - "japanese" - ], - "はっちゅう": [ - "japanese" - ], - "はってん": [ - "japanese" - ], - "はっぴょう": [ - "japanese" - ], - "はっぽう": [ - "japanese" - ], - "はなす": [ - "japanese" - ], - "はなび": [ - "japanese" - ], - "はにかむ": [ - "japanese" - ], - "はぶらし": [ - "japanese" - ], - "はみがき": [ - "japanese" - ], - "はむかう": [ - "japanese" - ], - "はめつ": [ - "japanese" - ], - "はやい": [ - "japanese" - ], - "はやし": [ - "japanese" - ], - "はらう": [ - "japanese" - ], - "はろうぃん": [ - "japanese" - ], - "はわい": [ - "japanese" - ], - "はんい": [ - "japanese" - ], - "はんえい": [ - "japanese" - ], - "はんおん": [ - "japanese" - ], - "はんかく": [ - "japanese" - ], - "はんきょう": [ - "japanese" - ], - "ばんぐみ": [ - "japanese" - ], - "はんこ": [ - "japanese" - ], - "はんしゃ": [ - "japanese" - ], - "はんすう": [ - "japanese" - ], - "はんだん": [ - "japanese" - ], - "ぱんち": [ - "japanese" - ], - "ぱんつ": [ - "japanese" - ], - "はんてい": [ - "japanese" - ], - "はんとし": [ - "japanese" - ], - "はんのう": [ - "japanese" - ], - "はんぱ": [ - "japanese" - ], - "はんぶん": [ - "japanese" - ], - "はんぺん": [ - "japanese" - ], - "はんぼうき": [ - "japanese" - ], - "はんめい": [ - "japanese" - ], - "はんらん": [ - "japanese" - ], - "はんろん": [ - "japanese" - ], - "ひいき": [ - "japanese" - ], - "ひうん": [ - "japanese" - ], - "ひえる": [ - "japanese" - ], - "ひかく": [ - "japanese" - ], - "ひかり": [ - "japanese" - ], - "ひかる": [ - "japanese" - ], - "ひかん": [ - "japanese" - ], - "ひくい": [ - "japanese" - ], - "ひけつ": [ - "japanese" - ], - "ひこうき": [ - "japanese" - ], - "ひこく": [ - "japanese" - ], - "ひさい": [ - "japanese" - ], - "ひさしぶり": [ - "japanese" - ], - "ひさん": [ - "japanese" - ], - "びじゅつかん": [ - "japanese" - ], - "ひしょ": [ - "japanese" - ], - "ひそか": [ - "japanese" - ], - "ひそむ": [ - "japanese" - ], - "ひたむき": [ - "japanese" - ], - "ひだり": [ - "japanese" - ], - "ひたる": [ - "japanese" - ], - "ひつぎ": [ - "japanese" - ], - "ひっこし": [ - "japanese" - ], - "ひっし": [ - "japanese" - ], - "ひつじゅひん": [ - "japanese" - ], - "ひっす": [ - "japanese" - ], - "ひつぜん": [ - "japanese" - ], - "ぴったり": [ - "japanese" - ], - "ぴっちり": [ - "japanese" - ], - "ひつよう": [ - "japanese" - ], - "ひてい": [ - "japanese" - ], - "ひとごみ": [ - "japanese" - ], - "ひなまつり": [ - "japanese" - ], - "ひなん": [ - "japanese" - ], - "ひねる": [ - "japanese" - ], - "ひはん": [ - "japanese" - ], - "ひびく": [ - "japanese" - ], - "ひひょう": [ - "japanese" - ], - "ひほう": [ - "japanese" - ], - "ひまわり": [ - "japanese" - ], - "ひまん": [ - "japanese" - ], - "ひみつ": [ - "japanese" - ], - "ひめい": [ - "japanese" - ], - "ひめじし": [ - "japanese" - ], - "ひやけ": [ - "japanese" - ], - "ひやす": [ - "japanese" - ], - "ひよう": [ - "japanese" - ], - "びょうき": [ - "japanese" - ], - "ひらがな": [ - "japanese" - ], - "ひらく": [ - "japanese" - ], - "ひりつ": [ - "japanese" - ], - "ひりょう": [ - "japanese" - ], - "ひるま": [ - "japanese" - ], - "ひるやすみ": [ - "japanese" - ], - "ひれい": [ - "japanese" - ], - "ひろい": [ - "japanese" - ], - "ひろう": [ - "japanese" - ], - "ひろき": [ - "japanese" - ], - "ひろゆき": [ - "japanese" - ], - "ひんかく": [ - "japanese" - ], - "ひんけつ": [ - "japanese" - ], - "ひんこん": [ - "japanese" - ], - "ひんしゅ": [ - "japanese" - ], - "ひんそう": [ - "japanese" - ], - "ぴんち": [ - "japanese" - ], - "ひんぱん": [ - "japanese" - ], - "びんぼう": [ - "japanese" - ], - "ふあん": [ - "japanese" - ], - "ふいうち": [ - "japanese" - ], - "ふうけい": [ - "japanese" - ], - "ふうせん": [ - "japanese" - ], - "ぷうたろう": [ - "japanese" - ], - "ふうとう": [ - "japanese" - ], - "ふうふ": [ - "japanese" - ], - "ふえる": [ - "japanese" - ], - "ふおん": [ - "japanese" - ], - "ふかい": [ - "japanese" - ], - "ふきん": [ - "japanese" - ], - "ふくざつ": [ - "japanese" - ], - "ふくぶくろ": [ - "japanese" - ], - "ふこう": [ - "japanese" - ], - "ふさい": [ - "japanese" - ], - "ふしぎ": [ - "japanese" - ], - "ふじみ": [ - "japanese" - ], - "ふすま": [ - "japanese" - ], - "ふせい": [ - "japanese" - ], - "ふせぐ": [ - "japanese" - ], - "ふそく": [ - "japanese" - ], - "ぶたにく": [ - "japanese" - ], - "ふたん": [ - "japanese" - ], - "ふちょう": [ - "japanese" - ], - "ふつう": [ - "japanese" - ], - "ふつか": [ - "japanese" - ], - "ふっかつ": [ - "japanese" - ], - "ふっき": [ - "japanese" - ], - "ふっこく": [ - "japanese" - ], - "ぶどう": [ - "japanese" - ], - "ふとる": [ - "japanese" - ], - "ふとん": [ - "japanese" - ], - "ふのう": [ - "japanese" - ], - "ふはい": [ - "japanese" - ], - "ふひょう": [ - "japanese" - ], - "ふへん": [ - "japanese" - ], - "ふまん": [ - "japanese" - ], - "ふみん": [ - "japanese" - ], - "ふめつ": [ - "japanese" - ], - "ふめん": [ - "japanese" - ], - "ふよう": [ - "japanese" - ], - "ふりこ": [ - "japanese" - ], - "ふりる": [ - "japanese" - ], - "ふるい": [ - "japanese" - ], - "ふんいき": [ - "japanese" - ], - "ぶんがく": [ - "japanese" - ], - "ぶんぐ": [ - "japanese" - ], - "ふんしつ": [ - "japanese" - ], - "ぶんせき": [ - "japanese" - ], - "ふんそう": [ - "japanese" - ], - "ぶんぽう": [ - "japanese" - ], - "へいあん": [ - "japanese" - ], - "へいおん": [ - "japanese" - ], - "へいがい": [ - "japanese" - ], - "へいき": [ - "japanese" - ], - "へいげん": [ - "japanese" - ], - "へいこう": [ - "japanese" - ], - "へいさ": [ - "japanese" - ], - "へいしゃ": [ - "japanese" - ], - "へいせつ": [ - "japanese" - ], - "へいそ": [ - "japanese" - ], - "へいたく": [ - "japanese" - ], - "へいてん": [ - "japanese" - ], - "へいねつ": [ - "japanese" - ], - "へいわ": [ - "japanese" - ], - "へきが": [ - "japanese" - ], - "へこむ": [ - "japanese" - ], - "べにいろ": [ - "japanese" - ], - "べにしょうが": [ - "japanese" - ], - "へらす": [ - "japanese" - ], - "へんかん": [ - "japanese" - ], - "べんきょう": [ - "japanese" - ], - "べんごし": [ - "japanese" - ], - "へんさい": [ - "japanese" - ], - "へんたい": [ - "japanese" - ], - "べんり": [ - "japanese" - ], - "ほあん": [ - "japanese" - ], - "ほいく": [ - "japanese" - ], - "ぼうぎょ": [ - "japanese" - ], - "ほうこく": [ - "japanese" - ], - "ほうそう": [ - "japanese" - ], - "ほうほう": [ - "japanese" - ], - "ほうもん": [ - "japanese" - ], - "ほうりつ": [ - "japanese" - ], - "ほえる": [ - "japanese" - ], - "ほおん": [ - "japanese" - ], - "ほかん": [ - "japanese" - ], - "ほきょう": [ - "japanese" - ], - "ぼきん": [ - "japanese" - ], - "ほくろ": [ - "japanese" - ], - "ほけつ": [ - "japanese" - ], - "ほけん": [ - "japanese" - ], - "ほこう": [ - "japanese" - ], - "ほこる": [ - "japanese" - ], - "ほしい": [ - "japanese" - ], - "ほしつ": [ - "japanese" - ], - "ほしゅ": [ - "japanese" - ], - "ほしょう": [ - "japanese" - ], - "ほせい": [ - "japanese" - ], - "ほそい": [ - "japanese" - ], - "ほそく": [ - "japanese" - ], - "ほたて": [ - "japanese" - ], - "ほたる": [ - "japanese" - ], - "ぽちぶくろ": [ - "japanese" - ], - "ほっきょく": [ - "japanese" - ], - "ほっさ": [ - "japanese" - ], - "ほったん": [ - "japanese" - ], - "ほとんど": [ - "japanese" - ], - "ほめる": [ - "japanese" - ], - "ほんい": [ - "japanese" - ], - "ほんき": [ - "japanese" - ], - "ほんけ": [ - "japanese" - ], - "ほんしつ": [ - "japanese" - ], - "ほんやく": [ - "japanese" - ], - "まいにち": [ - "japanese" - ], - "まかい": [ - "japanese" - ], - "まかせる": [ - "japanese" - ], - "まがる": [ - "japanese" - ], - "まける": [ - "japanese" - ], - "まこと": [ - "japanese" - ], - "まさつ": [ - "japanese" - ], - "まじめ": [ - "japanese" - ], - "ますく": [ - "japanese" - ], - "まぜる": [ - "japanese" - ], - "まつり": [ - "japanese" - ], - "まとめ": [ - "japanese" - ], - "まなぶ": [ - "japanese" - ], - "まぬけ": [ - "japanese" - ], - "まねく": [ - "japanese" - ], - "まほう": [ - "japanese" - ], - "まもる": [ - "japanese" - ], - "まゆげ": [ - "japanese" - ], - "まよう": [ - "japanese" - ], - "まろやか": [ - "japanese" - ], - "まわす": [ - "japanese" - ], - "まわり": [ - "japanese" - ], - "まわる": [ - "japanese" - ], - "まんが": [ - "japanese" - ], - "まんきつ": [ - "japanese" - ], - "まんぞく": [ - "japanese" - ], - "まんなか": [ - "japanese" - ], - "みいら": [ - "japanese" - ], - "みうち": [ - "japanese" - ], - "みえる": [ - "japanese" - ], - "みがく": [ - "japanese" - ], - "みかた": [ - "japanese" - ], - "みかん": [ - "japanese" - ], - "みけん": [ - "japanese" - ], - "みこん": [ - "japanese" - ], - "みじかい": [ - "japanese" - ], - "みすい": [ - "japanese" - ], - "みすえる": [ - "japanese" - ], - "みせる": [ - "japanese" - ], - "みっか": [ - "japanese" - ], - "みつかる": [ - "japanese" - ], - "みつける": [ - "japanese" - ], - "みてい": [ - "japanese" - ], - "みとめる": [ - "japanese" - ], - "みなと": [ - "japanese" - ], - "みなみかさい": [ - "japanese" - ], - "みねらる": [ - "japanese" - ], - "みのう": [ - "japanese" - ], - "みのがす": [ - "japanese" - ], - "みほん": [ - "japanese" - ], - "みもと": [ - "japanese" - ], - "みやげ": [ - "japanese" - ], - "みらい": [ - "japanese" - ], - "みりょく": [ - "japanese" - ], - "みわく": [ - "japanese" - ], - "みんか": [ - "japanese" - ], - "みんぞく": [ - "japanese" - ], - "むいか": [ - "japanese" - ], - "むえき": [ - "japanese" - ], - "むえん": [ - "japanese" - ], - "むかい": [ - "japanese" - ], - "むかう": [ - "japanese" - ], - "むかえ": [ - "japanese" - ], - "むかし": [ - "japanese" - ], - "むぎちゃ": [ - "japanese" - ], - "むける": [ - "japanese" - ], - "むげん": [ - "japanese" - ], - "むさぼる": [ - "japanese" - ], - "むしあつい": [ - "japanese" - ], - "むしば": [ - "japanese" - ], - "むじゅん": [ - "japanese" - ], - "むしろ": [ - "japanese" - ], - "むすう": [ - "japanese" - ], - "むすこ": [ - "japanese" - ], - "むすぶ": [ - "japanese" - ], - "むすめ": [ - "japanese" - ], - "むせる": [ - "japanese" - ], - "むせん": [ - "japanese" - ], - "むちゅう": [ - "japanese" - ], - "むなしい": [ - "japanese" - ], - "むのう": [ - "japanese" - ], - "むやみ": [ - "japanese" - ], - "むよう": [ - "japanese" - ], - "むらさき": [ - "japanese" - ], - "むりょう": [ - "japanese" - ], - "むろん": [ - "japanese" - ], - "めいあん": [ - "japanese" - ], - "めいうん": [ - "japanese" - ], - "めいえん": [ - "japanese" - ], - "めいかく": [ - "japanese" - ], - "めいきょく": [ - "japanese" - ], - "めいさい": [ - "japanese" - ], - "めいし": [ - "japanese" - ], - "めいそう": [ - "japanese" - ], - "めいぶつ": [ - "japanese" - ], - "めいれい": [ - "japanese" - ], - "めいわく": [ - "japanese" - ], - "めぐまれる": [ - "japanese" - ], - "めざす": [ - "japanese" - ], - "めした": [ - "japanese" - ], - "めずらしい": [ - "japanese" - ], - "めだつ": [ - "japanese" - ], - "めまい": [ - "japanese" - ], - "めやす": [ - "japanese" - ], - "めんきょ": [ - "japanese" - ], - "めんせき": [ - "japanese" - ], - "めんどう": [ - "japanese" - ], - "もうしあげる": [ - "japanese" - ], - "もうどうけん": [ - "japanese" - ], - "もえる": [ - "japanese" - ], - "もくし": [ - "japanese" - ], - "もくてき": [ - "japanese" - ], - "もくようび": [ - "japanese" - ], - "もちろん": [ - "japanese" - ], - "もどる": [ - "japanese" - ], - "もらう": [ - "japanese" - ], - "もんく": [ - "japanese" - ], - "もんだい": [ - "japanese" - ], - "やおや": [ - "japanese" - ], - "やける": [ - "japanese" - ], - "やさい": [ - "japanese" - ], - "やさしい": [ - "japanese" - ], - "やすい": [ - "japanese" - ], - "やすたろう": [ - "japanese" - ], - "やすみ": [ - "japanese" - ], - "やせる": [ - "japanese" - ], - "やそう": [ - "japanese" - ], - "やたい": [ - "japanese" - ], - "やちん": [ - "japanese" - ], - "やっと": [ - "japanese" - ], - "やっぱり": [ - "japanese" - ], - "やぶる": [ - "japanese" - ], - "やめる": [ - "japanese" - ], - "ややこしい": [ - "japanese" - ], - "やよい": [ - "japanese" - ], - "やわらかい": [ - "japanese" - ], - "ゆうき": [ - "japanese" - ], - "ゆうびんきょく": [ - "japanese" - ], - "ゆうべ": [ - "japanese" - ], - "ゆうめい": [ - "japanese" - ], - "ゆけつ": [ - "japanese" - ], - "ゆしゅつ": [ - "japanese" - ], - "ゆせん": [ - "japanese" - ], - "ゆそう": [ - "japanese" - ], - "ゆたか": [ - "japanese" - ], - "ゆちゃく": [ - "japanese" - ], - "ゆでる": [ - "japanese" - ], - "ゆにゅう": [ - "japanese" - ], - "ゆびわ": [ - "japanese" - ], - "ゆらい": [ - "japanese" - ], - "ゆれる": [ - "japanese" - ], - "ようい": [ - "japanese" - ], - "ようか": [ - "japanese" - ], - "ようきゅう": [ - "japanese" - ], - "ようじ": [ - "japanese" - ], - "ようす": [ - "japanese" - ], - "ようちえん": [ - "japanese" - ], - "よかぜ": [ - "japanese" - ], - "よかん": [ - "japanese" - ], - "よきん": [ - "japanese" - ], - "よくせい": [ - "japanese" - ], - "よくぼう": [ - "japanese" - ], - "よけい": [ - "japanese" - ], - "よごれる": [ - "japanese" - ], - "よさん": [ - "japanese" - ], - "よしゅう": [ - "japanese" - ], - "よそう": [ - "japanese" - ], - "よそく": [ - "japanese" - ], - "よっか": [ - "japanese" - ], - "よてい": [ - "japanese" - ], - "よどがわく": [ - "japanese" - ], - "よねつ": [ - "japanese" - ], - "よやく": [ - "japanese" - ], - "よゆう": [ - "japanese" - ], - "よろこぶ": [ - "japanese" - ], - "よろしい": [ - "japanese" - ], - "らいう": [ - "japanese" - ], - "らくがき": [ - "japanese" - ], - "らくご": [ - "japanese" - ], - "らくさつ": [ - "japanese" - ], - "らくだ": [ - "japanese" - ], - "らしんばん": [ - "japanese" - ], - "らせん": [ - "japanese" - ], - "らぞく": [ - "japanese" - ], - "らたい": [ - "japanese" - ], - "らっか": [ - "japanese" - ], - "られつ": [ - "japanese" - ], - "りえき": [ - "japanese" - ], - "りかい": [ - "japanese" - ], - "りきさく": [ - "japanese" - ], - "りきせつ": [ - "japanese" - ], - "りくぐん": [ - "japanese" - ], - "りくつ": [ - "japanese" - ], - "りけん": [ - "japanese" - ], - "りこう": [ - "japanese" - ], - "りせい": [ - "japanese" - ], - "りそう": [ - "japanese" - ], - "りそく": [ - "japanese" - ], - "りてん": [ - "japanese" - ], - "りねん": [ - "japanese" - ], - "りゆう": [ - "japanese" - ], - "りゅうがく": [ - "japanese" - ], - "りよう": [ - "japanese" - ], - "りょうり": [ - "japanese" - ], - "りょかん": [ - "japanese" - ], - "りょくちゃ": [ - "japanese" - ], - "りょこう": [ - "japanese" - ], - "りりく": [ - "japanese" - ], - "りれき": [ - "japanese" - ], - "りろん": [ - "japanese" - ], - "りんご": [ - "japanese" - ], - "るいけい": [ - "japanese" - ], - "るいさい": [ - "japanese" - ], - "るいじ": [ - "japanese" - ], - "るいせき": [ - "japanese" - ], - "るすばん": [ - "japanese" - ], - "るりがわら": [ - "japanese" - ], - "れいかん": [ - "japanese" - ], - "れいぎ": [ - "japanese" - ], - "れいせい": [ - "japanese" - ], - "れいぞうこ": [ - "japanese" - ], - "れいとう": [ - "japanese" - ], - "れいぼう": [ - "japanese" - ], - "れきし": [ - "japanese" - ], - "れきだい": [ - "japanese" - ], - "れんあい": [ - "japanese" - ], - "れんけい": [ - "japanese" - ], - "れんこん": [ - "japanese" - ], - "れんさい": [ - "japanese" - ], - "れんしゅう": [ - "japanese" - ], - "れんぞく": [ - "japanese" - ], - "れんらく": [ - "japanese" - ], - "ろうか": [ - "japanese" - ], - "ろうご": [ - "japanese" - ], - "ろうじん": [ - "japanese" - ], - "ろうそく": [ - "japanese" - ], - "ろくが": [ - "japanese" - ], - "ろこつ": [ - "japanese" - ], - "ろじうら": [ - "japanese" - ], - "ろしゅつ": [ - "japanese" - ], - "ろせん": [ - "japanese" - ], - "ろてん": [ - "japanese" - ], - "ろめん": [ - "japanese" - ], - "ろれつ": [ - "japanese" - ], - "ろんぎ": [ - "japanese" - ], - "ろんぱ": [ - "japanese" - ], - "ろんぶん": [ - "japanese" - ], - "ろんり": [ - "japanese" - ], - "わかす": [ - "japanese" - ], - "わかめ": [ - "japanese" - ], - "わかやま": [ - "japanese" - ], - "わかれる": [ - "japanese" - ], - "わしつ": [ - "japanese" - ], - "わじまし": [ - "japanese" - ], - "わすれもの": [ - "japanese" - ], - "わらう": [ - "japanese" - ], - "われる": [ - "japanese" - ], - "가격": [ - "korean" - ], - "가끔": [ - "korean" - ], - "가난": [ - "korean" - ], - "가능": [ - "korean" - ], - "가득": [ - "korean" - ], - "가르침": [ - "korean" - ], - "가뭄": [ - "korean" - ], - "가방": [ - "korean" - ], - "가상": [ - "korean" - ], - "가슴": [ - "korean" - ], - "가운데": [ - "korean" - ], - "가을": [ - "korean" - ], - "가이드": [ - "korean" - ], - "가입": [ - "korean" - ], - "가장": [ - "korean" - ], - "가정": [ - "korean" - ], - "가족": [ - "korean" - ], - "가죽": [ - "korean" - ], - "각오": [ - "korean" - ], - "각자": [ - "korean" - ], - "간격": [ - "korean" - ], - "간부": [ - "korean" - ], - "간섭": [ - "korean" - ], - "간장": [ - "korean" - ], - "간접": [ - "korean" - ], - "간판": [ - "korean" - ], - "갈등": [ - "korean" - ], - "갈비": [ - "korean" - ], - "갈색": [ - "korean" - ], - "갈증": [ - "korean" - ], - "감각": [ - "korean" - ], - "감기": [ - "korean" - ], - "감소": [ - "korean" - ], - "감수성": [ - "korean" - ], - "감자": [ - "korean" - ], - "감정": [ - "korean" - ], - "갑자기": [ - "korean" - ], - "강남": [ - "korean" - ], - "강당": [ - "korean" - ], - "강도": [ - "korean" - ], - "강력히": [ - "korean" - ], - "강변": [ - "korean" - ], - "강북": [ - "korean" - ], - "강사": [ - "korean" - ], - "강수량": [ - "korean" - ], - "강아지": [ - "korean" - ], - "강원도": [ - "korean" - ], - "강의": [ - "korean" - ], - "강제": [ - "korean" - ], - "강조": [ - "korean" - ], - "같이": [ - "korean" - ], - "개구리": [ - "korean" - ], - "개나리": [ - "korean" - ], - "개방": [ - "korean" - ], - "개별": [ - "korean" - ], - "개선": [ - "korean" - ], - "개성": [ - "korean" - ], - "개인": [ - "korean" - ], - "객관적": [ - "korean" - ], - "거실": [ - "korean" - ], - "거액": [ - "korean" - ], - "거울": [ - "korean" - ], - "거짓": [ - "korean" - ], - "거품": [ - "korean" - ], - "걱정": [ - "korean" - ], - "건강": [ - "korean" - ], - "건물": [ - "korean" - ], - "건설": [ - "korean" - ], - "건조": [ - "korean" - ], - "건축": [ - "korean" - ], - "걸음": [ - "korean" - ], - "검사": [ - "korean" - ], - "검토": [ - "korean" - ], - "게시판": [ - "korean" - ], - "게임": [ - "korean" - ], - "겨울": [ - "korean" - ], - "견해": [ - "korean" - ], - "결과": [ - "korean" - ], - "결국": [ - "korean" - ], - "결론": [ - "korean" - ], - "결석": [ - "korean" - ], - "결승": [ - "korean" - ], - "결심": [ - "korean" - ], - "결정": [ - "korean" - ], - "결혼": [ - "korean" - ], - "경계": [ - "korean" - ], - "경고": [ - "korean" - ], - "경기": [ - "korean" - ], - "경력": [ - "korean" - ], - "경복궁": [ - "korean" - ], - "경비": [ - "korean" - ], - "경상도": [ - "korean" - ], - "경영": [ - "korean" - ], - "경우": [ - "korean" - ], - "경쟁": [ - "korean" - ], - "경제": [ - "korean" - ], - "경주": [ - "korean" - ], - "경찰": [ - "korean" - ], - "경치": [ - "korean" - ], - "경향": [ - "korean" - ], - "경험": [ - "korean" - ], - "계곡": [ - "korean" - ], - "계단": [ - "korean" - ], - "계란": [ - "korean" - ], - "계산": [ - "korean" - ], - "계속": [ - "korean" - ], - "계약": [ - "korean" - ], - "계절": [ - "korean" - ], - "계층": [ - "korean" - ], - "계획": [ - "korean" - ], - "고객": [ - "korean" - ], - "고구려": [ - "korean" - ], - "고궁": [ - "korean" - ], - "고급": [ - "korean" - ], - "고등학생": [ - "korean" - ], - "고무신": [ - "korean" - ], - "고민": [ - "korean" - ], - "고양이": [ - "korean" - ], - "고장": [ - "korean" - ], - "고전": [ - "korean" - ], - "고집": [ - "korean" - ], - "고춧가루": [ - "korean" - ], - "고통": [ - "korean" - ], - "고향": [ - "korean" - ], - "곡식": [ - "korean" - ], - "골목": [ - "korean" - ], - "골짜기": [ - "korean" - ], - "골프": [ - "korean" - ], - "공간": [ - "korean" - ], - "공개": [ - "korean" - ], - "공격": [ - "korean" - ], - "공군": [ - "korean" - ], - "공급": [ - "korean" - ], - "공기": [ - "korean" - ], - "공동": [ - "korean" - ], - "공무원": [ - "korean" - ], - "공부": [ - "korean" - ], - "공사": [ - "korean" - ], - "공식": [ - "korean" - ], - "공업": [ - "korean" - ], - "공연": [ - "korean" - ], - "공원": [ - "korean" - ], - "공장": [ - "korean" - ], - "공짜": [ - "korean" - ], - "공책": [ - "korean" - ], - "공통": [ - "korean" - ], - "공포": [ - "korean" - ], - "공항": [ - "korean" - ], - "공휴일": [ - "korean" - ], - "과목": [ - "korean" - ], - "과일": [ - "korean" - ], - "과장": [ - "korean" - ], - "과정": [ - "korean" - ], - "과학": [ - "korean" - ], - "관객": [ - "korean" - ], - "관계": [ - "korean" - ], - "관광": [ - "korean" - ], - "관념": [ - "korean" - ], - "관람": [ - "korean" - ], - "관련": [ - "korean" - ], - "관리": [ - "korean" - ], - "관습": [ - "korean" - ], - "관심": [ - "korean" - ], - "관점": [ - "korean" - ], - "관찰": [ - "korean" - ], - "광경": [ - "korean" - ], - "광고": [ - "korean" - ], - "광장": [ - "korean" - ], - "광주": [ - "korean" - ], - "괴로움": [ - "korean" - ], - "굉장히": [ - "korean" - ], - "교과서": [ - "korean" - ], - "교문": [ - "korean" - ], - "교복": [ - "korean" - ], - "교실": [ - "korean" - ], - "교양": [ - "korean" - ], - "교육": [ - "korean" - ], - "교장": [ - "korean" - ], - "교직": [ - "korean" - ], - "교통": [ - "korean" - ], - "교환": [ - "korean" - ], - "교훈": [ - "korean" - ], - "구경": [ - "korean" - ], - "구름": [ - "korean" - ], - "구멍": [ - "korean" - ], - "구별": [ - "korean" - ], - "구분": [ - "korean" - ], - "구석": [ - "korean" - ], - "구성": [ - "korean" - ], - "구속": [ - "korean" - ], - "구역": [ - "korean" - ], - "구입": [ - "korean" - ], - "구청": [ - "korean" - ], - "구체적": [ - "korean" - ], - "국가": [ - "korean" - ], - "국기": [ - "korean" - ], - "국내": [ - "korean" - ], - "국립": [ - "korean" - ], - "국물": [ - "korean" - ], - "국민": [ - "korean" - ], - "국수": [ - "korean" - ], - "국어": [ - "korean" - ], - "국왕": [ - "korean" - ], - "국적": [ - "korean" - ], - "국제": [ - "korean" - ], - "국회": [ - "korean" - ], - "군대": [ - "korean" - ], - "군사": [ - "korean" - ], - "군인": [ - "korean" - ], - "궁극적": [ - "korean" - ], - "권리": [ - "korean" - ], - "권위": [ - "korean" - ], - "권투": [ - "korean" - ], - "귀국": [ - "korean" - ], - "귀신": [ - "korean" - ], - "규정": [ - "korean" - ], - "규칙": [ - "korean" - ], - "균형": [ - "korean" - ], - "그날": [ - "korean" - ], - "그냥": [ - "korean" - ], - "그늘": [ - "korean" - ], - "그러나": [ - "korean" - ], - "그룹": [ - "korean" - ], - "그릇": [ - "korean" - ], - "그림": [ - "korean" - ], - "그제서야": [ - "korean" - ], - "그토록": [ - "korean" - ], - "극복": [ - "korean" - ], - "극히": [ - "korean" - ], - "근거": [ - "korean" - ], - "근교": [ - "korean" - ], - "근래": [ - "korean" - ], - "근로": [ - "korean" - ], - "근무": [ - "korean" - ], - "근본": [ - "korean" - ], - "근원": [ - "korean" - ], - "근육": [ - "korean" - ], - "근처": [ - "korean" - ], - "글씨": [ - "korean" - ], - "글자": [ - "korean" - ], - "금강산": [ - "korean" - ], - "금고": [ - "korean" - ], - "금년": [ - "korean" - ], - "금메달": [ - "korean" - ], - "금액": [ - "korean" - ], - "금연": [ - "korean" - ], - "금요일": [ - "korean" - ], - "금지": [ - "korean" - ], - "긍정적": [ - "korean" - ], - "기간": [ - "korean" - ], - "기관": [ - "korean" - ], - "기념": [ - "korean" - ], - "기능": [ - "korean" - ], - "기독교": [ - "korean" - ], - "기둥": [ - "korean" - ], - "기록": [ - "korean" - ], - "기름": [ - "korean" - ], - "기법": [ - "korean" - ], - "기본": [ - "korean" - ], - "기분": [ - "korean" - ], - "기쁨": [ - "korean" - ], - "기숙사": [ - "korean" - ], - "기술": [ - "korean" - ], - "기억": [ - "korean" - ], - "기업": [ - "korean" - ], - "기온": [ - "korean" - ], - "기운": [ - "korean" - ], - "기원": [ - "korean" - ], - "기적": [ - "korean" - ], - "기준": [ - "korean" - ], - "기침": [ - "korean" - ], - "기혼": [ - "korean" - ], - "기획": [ - "korean" - ], - "긴급": [ - "korean" - ], - "긴장": [ - "korean" - ], - "길이": [ - "korean" - ], - "김밥": [ - "korean" - ], - "김치": [ - "korean" - ], - "김포공항": [ - "korean" - ], - "깍두기": [ - "korean" - ], - "깜빡": [ - "korean" - ], - "깨달음": [ - "korean" - ], - "깨소금": [ - "korean" - ], - "껍질": [ - "korean" - ], - "꼭대기": [ - "korean" - ], - "꽃잎": [ - "korean" - ], - "나들이": [ - "korean" - ], - "나란히": [ - "korean" - ], - "나머지": [ - "korean" - ], - "나물": [ - "korean" - ], - "나침반": [ - "korean" - ], - "나흘": [ - "korean" - ], - "낙엽": [ - "korean" - ], - "난방": [ - "korean" - ], - "날개": [ - "korean" - ], - "날씨": [ - "korean" - ], - "날짜": [ - "korean" - ], - "남녀": [ - "korean" - ], - "남대문": [ - "korean" - ], - "남매": [ - "korean" - ], - "남산": [ - "korean" - ], - "남자": [ - "korean" - ], - "남편": [ - "korean" - ], - "남학생": [ - "korean" - ], - "낭비": [ - "korean" - ], - "낱말": [ - "korean" - ], - "내년": [ - "korean" - ], - "내용": [ - "korean" - ], - "내일": [ - "korean" - ], - "냄비": [ - "korean" - ], - "냄새": [ - "korean" - ], - "냇물": [ - "korean" - ], - "냉동": [ - "korean" - ], - "냉면": [ - "korean" - ], - "냉방": [ - "korean" - ], - "냉장고": [ - "korean" - ], - "넥타이": [ - "korean" - ], - "넷째": [ - "korean" - ], - "노동": [ - "korean" - ], - "노란색": [ - "korean" - ], - "노력": [ - "korean" - ], - "노인": [ - "korean" - ], - "녹음": [ - "korean" - ], - "녹차": [ - "korean" - ], - "녹화": [ - "korean" - ], - "논리": [ - "korean" - ], - "논문": [ - "korean" - ], - "논쟁": [ - "korean" - ], - "놀이": [ - "korean" - ], - "농구": [ - "korean" - ], - "농담": [ - "korean" - ], - "농민": [ - "korean" - ], - "농부": [ - "korean" - ], - "농업": [ - "korean" - ], - "농장": [ - "korean" - ], - "농촌": [ - "korean" - ], - "높이": [ - "korean" - ], - "눈동자": [ - "korean" - ], - "눈물": [ - "korean" - ], - "눈썹": [ - "korean" - ], - "뉴욕": [ - "korean" - ], - "느낌": [ - "korean" - ], - "늑대": [ - "korean" - ], - "능동적": [ - "korean" - ], - "능력": [ - "korean" - ], - "다방": [ - "korean" - ], - "다양성": [ - "korean" - ], - "다음": [ - "korean" - ], - "다이어트": [ - "korean" - ], - "다행": [ - "korean" - ], - "단계": [ - "korean" - ], - "단골": [ - "korean" - ], - "단독": [ - "korean" - ], - "단맛": [ - "korean" - ], - "단순": [ - "korean" - ], - "단어": [ - "korean" - ], - "단위": [ - "korean" - ], - "단점": [ - "korean" - ], - "단체": [ - "korean" - ], - "단추": [ - "korean" - ], - "단편": [ - "korean" - ], - "단풍": [ - "korean" - ], - "달걀": [ - "korean" - ], - "달러": [ - "korean" - ], - "달력": [ - "korean" - ], - "달리": [ - "korean" - ], - "닭고기": [ - "korean" - ], - "담당": [ - "korean" - ], - "담배": [ - "korean" - ], - "담요": [ - "korean" - ], - "담임": [ - "korean" - ], - "답변": [ - "korean" - ], - "답장": [ - "korean" - ], - "당근": [ - "korean" - ], - "당분간": [ - "korean" - ], - "당연히": [ - "korean" - ], - "당장": [ - "korean" - ], - "대규모": [ - "korean" - ], - "대낮": [ - "korean" - ], - "대단히": [ - "korean" - ], - "대답": [ - "korean" - ], - "대도시": [ - "korean" - ], - "대략": [ - "korean" - ], - "대량": [ - "korean" - ], - "대륙": [ - "korean" - ], - "대문": [ - "korean" - ], - "대부분": [ - "korean" - ], - "대신": [ - "korean" - ], - "대응": [ - "korean" - ], - "대장": [ - "korean" - ], - "대전": [ - "korean" - ], - "대접": [ - "korean" - ], - "대중": [ - "korean" - ], - "대책": [ - "korean" - ], - "대출": [ - "korean" - ], - "대충": [ - "korean" - ], - "대통령": [ - "korean" - ], - "대학": [ - "korean" - ], - "대한민국": [ - "korean" - ], - "대합실": [ - "korean" - ], - "대형": [ - "korean" - ], - "덩어리": [ - "korean" - ], - "데이트": [ - "korean" - ], - "도대체": [ - "korean" - ], - "도덕": [ - "korean" - ], - "도둑": [ - "korean" - ], - "도망": [ - "korean" - ], - "도서관": [ - "korean" - ], - "도심": [ - "korean" - ], - "도움": [ - "korean" - ], - "도입": [ - "korean" - ], - "도자기": [ - "korean" - ], - "도저히": [ - "korean" - ], - "도전": [ - "korean" - ], - "도중": [ - "korean" - ], - "도착": [ - "korean" - ], - "독감": [ - "korean" - ], - "독립": [ - "korean" - ], - "독서": [ - "korean" - ], - "독일": [ - "korean" - ], - "독창적": [ - "korean" - ], - "동화책": [ - "korean" - ], - "뒷모습": [ - "korean" - ], - "뒷산": [ - "korean" - ], - "딸아이": [ - "korean" - ], - "마누라": [ - "korean" - ], - "마늘": [ - "korean" - ], - "마당": [ - "korean" - ], - "마라톤": [ - "korean" - ], - "마련": [ - "korean" - ], - "마무리": [ - "korean" - ], - "마사지": [ - "korean" - ], - "마약": [ - "korean" - ], - "마요네즈": [ - "korean" - ], - "마을": [ - "korean" - ], - "마음": [ - "korean" - ], - "마이크": [ - "korean" - ], - "마중": [ - "korean" - ], - "마지막": [ - "korean" - ], - "마찬가지": [ - "korean" - ], - "마찰": [ - "korean" - ], - "마흔": [ - "korean" - ], - "막걸리": [ - "korean" - ], - "막내": [ - "korean" - ], - "막상": [ - "korean" - ], - "만남": [ - "korean" - ], - "만두": [ - "korean" - ], - "만세": [ - "korean" - ], - "만약": [ - "korean" - ], - "만일": [ - "korean" - ], - "만점": [ - "korean" - ], - "만족": [ - "korean" - ], - "만화": [ - "korean" - ], - "많이": [ - "korean" - ], - "말기": [ - "korean" - ], - "말씀": [ - "korean" - ], - "말투": [ - "korean" - ], - "맘대로": [ - "korean" - ], - "망원경": [ - "korean" - ], - "매년": [ - "korean" - ], - "매달": [ - "korean" - ], - "매력": [ - "korean" - ], - "매번": [ - "korean" - ], - "매스컴": [ - "korean" - ], - "매일": [ - "korean" - ], - "매장": [ - "korean" - ], - "맥주": [ - "korean" - ], - "먹이": [ - "korean" - ], - "먼저": [ - "korean" - ], - "먼지": [ - "korean" - ], - "멀리": [ - "korean" - ], - "메일": [ - "korean" - ], - "며느리": [ - "korean" - ], - "며칠": [ - "korean" - ], - "면담": [ - "korean" - ], - "멸치": [ - "korean" - ], - "명단": [ - "korean" - ], - "명령": [ - "korean" - ], - "명예": [ - "korean" - ], - "명의": [ - "korean" - ], - "명절": [ - "korean" - ], - "명칭": [ - "korean" - ], - "명함": [ - "korean" - ], - "모금": [ - "korean" - ], - "모니터": [ - "korean" - ], - "모델": [ - "korean" - ], - "모든": [ - "korean" - ], - "모범": [ - "korean" - ], - "모습": [ - "korean" - ], - "모양": [ - "korean" - ], - "모임": [ - "korean" - ], - "모조리": [ - "korean" - ], - "모집": [ - "korean" - ], - "모퉁이": [ - "korean" - ], - "목걸이": [ - "korean" - ], - "목록": [ - "korean" - ], - "목사": [ - "korean" - ], - "목소리": [ - "korean" - ], - "목숨": [ - "korean" - ], - "목적": [ - "korean" - ], - "목표": [ - "korean" - ], - "몰래": [ - "korean" - ], - "몸매": [ - "korean" - ], - "몸무게": [ - "korean" - ], - "몸살": [ - "korean" - ], - "몸속": [ - "korean" - ], - "몸짓": [ - "korean" - ], - "몸통": [ - "korean" - ], - "몹시": [ - "korean" - ], - "무관심": [ - "korean" - ], - "무궁화": [ - "korean" - ], - "무더위": [ - "korean" - ], - "무덤": [ - "korean" - ], - "무릎": [ - "korean" - ], - "무슨": [ - "korean" - ], - "무엇": [ - "korean" - ], - "무역": [ - "korean" - ], - "무용": [ - "korean" - ], - "무조건": [ - "korean" - ], - "무지개": [ - "korean" - ], - "무척": [ - "korean" - ], - "문구": [ - "korean" - ], - "문득": [ - "korean" - ], - "문법": [ - "korean" - ], - "문서": [ - "korean" - ], - "문제": [ - "korean" - ], - "문학": [ - "korean" - ], - "문화": [ - "korean" - ], - "물가": [ - "korean" - ], - "물건": [ - "korean" - ], - "물결": [ - "korean" - ], - "물고기": [ - "korean" - ], - "물론": [ - "korean" - ], - "물리학": [ - "korean" - ], - "물음": [ - "korean" - ], - "물질": [ - "korean" - ], - "물체": [ - "korean" - ], - "미국": [ - "korean" - ], - "미디어": [ - "korean" - ], - "미사일": [ - "korean" - ], - "미술": [ - "korean" - ], - "미역": [ - "korean" - ], - "미용실": [ - "korean" - ], - "미움": [ - "korean" - ], - "미인": [ - "korean" - ], - "미팅": [ - "korean" - ], - "미혼": [ - "korean" - ], - "민간": [ - "korean" - ], - "민족": [ - "korean" - ], - "민주": [ - "korean" - ], - "믿음": [ - "korean" - ], - "밀가루": [ - "korean" - ], - "밀리미터": [ - "korean" - ], - "밑바닥": [ - "korean" - ], - "바가지": [ - "korean" - ], - "바구니": [ - "korean" - ], - "바나나": [ - "korean" - ], - "바늘": [ - "korean" - ], - "바닥": [ - "korean" - ], - "바닷가": [ - "korean" - ], - "바람": [ - "korean" - ], - "바이러스": [ - "korean" - ], - "바탕": [ - "korean" - ], - "박물관": [ - "korean" - ], - "박사": [ - "korean" - ], - "박수": [ - "korean" - ], - "반대": [ - "korean" - ], - "반드시": [ - "korean" - ], - "반말": [ - "korean" - ], - "반발": [ - "korean" - ], - "반성": [ - "korean" - ], - "반응": [ - "korean" - ], - "반장": [ - "korean" - ], - "반죽": [ - "korean" - ], - "반지": [ - "korean" - ], - "반찬": [ - "korean" - ], - "받침": [ - "korean" - ], - "발가락": [ - "korean" - ], - "발걸음": [ - "korean" - ], - "발견": [ - "korean" - ], - "발달": [ - "korean" - ], - "발레": [ - "korean" - ], - "발목": [ - "korean" - ], - "발바닥": [ - "korean" - ], - "발생": [ - "korean" - ], - "발음": [ - "korean" - ], - "발자국": [ - "korean" - ], - "발전": [ - "korean" - ], - "발톱": [ - "korean" - ], - "발표": [ - "korean" - ], - "밤하늘": [ - "korean" - ], - "밥그릇": [ - "korean" - ], - "밥맛": [ - "korean" - ], - "밥상": [ - "korean" - ], - "밥솥": [ - "korean" - ], - "방금": [ - "korean" - ], - "방면": [ - "korean" - ], - "방문": [ - "korean" - ], - "방바닥": [ - "korean" - ], - "방법": [ - "korean" - ], - "방송": [ - "korean" - ], - "방식": [ - "korean" - ], - "방안": [ - "korean" - ], - "방울": [ - "korean" - ], - "방지": [ - "korean" - ], - "방학": [ - "korean" - ], - "방해": [ - "korean" - ], - "방향": [ - "korean" - ], - "배경": [ - "korean" - ], - "배꼽": [ - "korean" - ], - "배달": [ - "korean" - ], - "배드민턴": [ - "korean" - ], - "백두산": [ - "korean" - ], - "백색": [ - "korean" - ], - "백성": [ - "korean" - ], - "백인": [ - "korean" - ], - "백제": [ - "korean" - ], - "백화점": [ - "korean" - ], - "버릇": [ - "korean" - ], - "버섯": [ - "korean" - ], - "버튼": [ - "korean" - ], - "번개": [ - "korean" - ], - "번역": [ - "korean" - ], - "번지": [ - "korean" - ], - "번호": [ - "korean" - ], - "벌금": [ - "korean" - ], - "벌레": [ - "korean" - ], - "벌써": [ - "korean" - ], - "범위": [ - "korean" - ], - "범인": [ - "korean" - ], - "범죄": [ - "korean" - ], - "법률": [ - "korean" - ], - "법원": [ - "korean" - ], - "법적": [ - "korean" - ], - "법칙": [ - "korean" - ], - "베이징": [ - "korean" - ], - "벨트": [ - "korean" - ], - "변경": [ - "korean" - ], - "변동": [ - "korean" - ], - "변명": [ - "korean" - ], - "변신": [ - "korean" - ], - "변호사": [ - "korean" - ], - "변화": [ - "korean" - ], - "별도": [ - "korean" - ], - "별명": [ - "korean" - ], - "별일": [ - "korean" - ], - "병실": [ - "korean" - ], - "병아리": [ - "korean" - ], - "병원": [ - "korean" - ], - "보관": [ - "korean" - ], - "보너스": [ - "korean" - ], - "보라색": [ - "korean" - ], - "보람": [ - "korean" - ], - "보름": [ - "korean" - ], - "보상": [ - "korean" - ], - "보안": [ - "korean" - ], - "보자기": [ - "korean" - ], - "보장": [ - "korean" - ], - "보전": [ - "korean" - ], - "보존": [ - "korean" - ], - "보통": [ - "korean" - ], - "보편적": [ - "korean" - ], - "보험": [ - "korean" - ], - "복도": [ - "korean" - ], - "복사": [ - "korean" - ], - "복숭아": [ - "korean" - ], - "복습": [ - "korean" - ], - "볶음": [ - "korean" - ], - "본격적": [ - "korean" - ], - "본래": [ - "korean" - ], - "본부": [ - "korean" - ], - "본사": [ - "korean" - ], - "본성": [ - "korean" - ], - "본인": [ - "korean" - ], - "본질": [ - "korean" - ], - "볼펜": [ - "korean" - ], - "봉사": [ - "korean" - ], - "봉지": [ - "korean" - ], - "봉투": [ - "korean" - ], - "부근": [ - "korean" - ], - "부끄러움": [ - "korean" - ], - "부담": [ - "korean" - ], - "부동산": [ - "korean" - ], - "부문": [ - "korean" - ], - "부분": [ - "korean" - ], - "부산": [ - "korean" - ], - "부상": [ - "korean" - ], - "부엌": [ - "korean" - ], - "부인": [ - "korean" - ], - "부작용": [ - "korean" - ], - "부장": [ - "korean" - ], - "부정": [ - "korean" - ], - "부족": [ - "korean" - ], - "부지런히": [ - "korean" - ], - "부친": [ - "korean" - ], - "부탁": [ - "korean" - ], - "부품": [ - "korean" - ], - "부회장": [ - "korean" - ], - "북부": [ - "korean" - ], - "북한": [ - "korean" - ], - "분노": [ - "korean" - ], - "분량": [ - "korean" - ], - "분리": [ - "korean" - ], - "분명": [ - "korean" - ], - "분석": [ - "korean" - ], - "분야": [ - "korean" - ], - "분위기": [ - "korean" - ], - "분필": [ - "korean" - ], - "분홍색": [ - "korean" - ], - "불고기": [ - "korean" - ], - "불과": [ - "korean" - ], - "불교": [ - "korean" - ], - "불꽃": [ - "korean" - ], - "불만": [ - "korean" - ], - "불법": [ - "korean" - ], - "불빛": [ - "korean" - ], - "불안": [ - "korean" - ], - "불이익": [ - "korean" - ], - "불행": [ - "korean" - ], - "브랜드": [ - "korean" - ], - "비극": [ - "korean" - ], - "비난": [ - "korean" - ], - "비닐": [ - "korean" - ], - "비둘기": [ - "korean" - ], - "비디오": [ - "korean" - ], - "비로소": [ - "korean" - ], - "비만": [ - "korean" - ], - "비명": [ - "korean" - ], - "비밀": [ - "korean" - ], - "비바람": [ - "korean" - ], - "비빔밥": [ - "korean" - ], - "비상": [ - "korean" - ], - "비용": [ - "korean" - ], - "비율": [ - "korean" - ], - "비중": [ - "korean" - ], - "비타민": [ - "korean" - ], - "비판": [ - "korean" - ], - "빌딩": [ - "korean" - ], - "빗물": [ - "korean" - ], - "빗방울": [ - "korean" - ], - "빗줄기": [ - "korean" - ], - "빛깔": [ - "korean" - ], - "빨간색": [ - "korean" - ], - "빨래": [ - "korean" - ], - "빨리": [ - "korean" - ], - "사건": [ - "korean" - ], - "사계절": [ - "korean" - ], - "사나이": [ - "korean" - ], - "사냥": [ - "korean" - ], - "사람": [ - "korean" - ], - "사랑": [ - "korean" - ], - "사립": [ - "korean" - ], - "사모님": [ - "korean" - ], - "사물": [ - "korean" - ], - "사방": [ - "korean" - ], - "사상": [ - "korean" - ], - "사생활": [ - "korean" - ], - "사설": [ - "korean" - ], - "사슴": [ - "korean" - ], - "사실": [ - "korean" - ], - "사업": [ - "korean" - ], - "사용": [ - "korean" - ], - "사월": [ - "korean" - ], - "사장": [ - "korean" - ], - "사전": [ - "korean" - ], - "사진": [ - "korean" - ], - "사촌": [ - "korean" - ], - "사춘기": [ - "korean" - ], - "사탕": [ - "korean" - ], - "사투리": [ - "korean" - ], - "사흘": [ - "korean" - ], - "산길": [ - "korean" - ], - "산부인과": [ - "korean" - ], - "산업": [ - "korean" - ], - "산책": [ - "korean" - ], - "살림": [ - "korean" - ], - "살인": [ - "korean" - ], - "살짝": [ - "korean" - ], - "삼계탕": [ - "korean" - ], - "삼국": [ - "korean" - ], - "삼십": [ - "korean" - ], - "삼월": [ - "korean" - ], - "삼촌": [ - "korean" - ], - "상관": [ - "korean" - ], - "상금": [ - "korean" - ], - "상대": [ - "korean" - ], - "상류": [ - "korean" - ], - "상반기": [ - "korean" - ], - "상상": [ - "korean" - ], - "상식": [ - "korean" - ], - "상업": [ - "korean" - ], - "상인": [ - "korean" - ], - "상자": [ - "korean" - ], - "상점": [ - "korean" - ], - "상처": [ - "korean" - ], - "상추": [ - "korean" - ], - "상태": [ - "korean" - ], - "상표": [ - "korean" - ], - "상품": [ - "korean" - ], - "상황": [ - "korean" - ], - "새벽": [ - "korean" - ], - "색깔": [ - "korean" - ], - "색연필": [ - "korean" - ], - "생각": [ - "korean" - ], - "생명": [ - "korean" - ], - "생물": [ - "korean" - ], - "생방송": [ - "korean" - ], - "생산": [ - "korean" - ], - "생선": [ - "korean" - ], - "생신": [ - "korean" - ], - "생일": [ - "korean" - ], - "생활": [ - "korean" - ], - "서랍": [ - "korean" - ], - "서른": [ - "korean" - ], - "서명": [ - "korean" - ], - "서민": [ - "korean" - ], - "서비스": [ - "korean" - ], - "서양": [ - "korean" - ], - "서울": [ - "korean" - ], - "서적": [ - "korean" - ], - "서점": [ - "korean" - ], - "서쪽": [ - "korean" - ], - "서클": [ - "korean" - ], - "석사": [ - "korean" - ], - "석유": [ - "korean" - ], - "선거": [ - "korean" - ], - "선물": [ - "korean" - ], - "선배": [ - "korean" - ], - "선생": [ - "korean" - ], - "선수": [ - "korean" - ], - "선원": [ - "korean" - ], - "선장": [ - "korean" - ], - "선전": [ - "korean" - ], - "선택": [ - "korean" - ], - "선풍기": [ - "korean" - ], - "설거지": [ - "korean" - ], - "설날": [ - "korean" - ], - "설렁탕": [ - "korean" - ], - "설명": [ - "korean" - ], - "설문": [ - "korean" - ], - "설사": [ - "korean" - ], - "설악산": [ - "korean" - ], - "설치": [ - "korean" - ], - "설탕": [ - "korean" - ], - "섭씨": [ - "korean" - ], - "성공": [ - "korean" - ], - "성당": [ - "korean" - ], - "성명": [ - "korean" - ], - "성별": [ - "korean" - ], - "성인": [ - "korean" - ], - "성장": [ - "korean" - ], - "성적": [ - "korean" - ], - "성질": [ - "korean" - ], - "성함": [ - "korean" - ], - "세금": [ - "korean" - ], - "세미나": [ - "korean" - ], - "세상": [ - "korean" - ], - "세월": [ - "korean" - ], - "세종대왕": [ - "korean" - ], - "세탁": [ - "korean" - ], - "센터": [ - "korean" - ], - "센티미터": [ - "korean" - ], - "셋째": [ - "korean" - ], - "소규모": [ - "korean" - ], - "소극적": [ - "korean" - ], - "소금": [ - "korean" - ], - "소나기": [ - "korean" - ], - "소년": [ - "korean" - ], - "소득": [ - "korean" - ], - "소망": [ - "korean" - ], - "소문": [ - "korean" - ], - "소설": [ - "korean" - ], - "소속": [ - "korean" - ], - "소아과": [ - "korean" - ], - "소용": [ - "korean" - ], - "소원": [ - "korean" - ], - "소음": [ - "korean" - ], - "소중히": [ - "korean" - ], - "소지품": [ - "korean" - ], - "소질": [ - "korean" - ], - "소풍": [ - "korean" - ], - "소형": [ - "korean" - ], - "속담": [ - "korean" - ], - "속도": [ - "korean" - ], - "속옷": [ - "korean" - ], - "손가락": [ - "korean" - ], - "손길": [ - "korean" - ], - "손녀": [ - "korean" - ], - "손님": [ - "korean" - ], - "손등": [ - "korean" - ], - "손목": [ - "korean" - ], - "손뼉": [ - "korean" - ], - "손실": [ - "korean" - ], - "손질": [ - "korean" - ], - "손톱": [ - "korean" - ], - "손해": [ - "korean" - ], - "솔직히": [ - "korean" - ], - "솜씨": [ - "korean" - ], - "송아지": [ - "korean" - ], - "송이": [ - "korean" - ], - "송편": [ - "korean" - ], - "쇠고기": [ - "korean" - ], - "쇼핑": [ - "korean" - ], - "수건": [ - "korean" - ], - "수년": [ - "korean" - ], - "수단": [ - "korean" - ], - "수돗물": [ - "korean" - ], - "수동적": [ - "korean" - ], - "수면": [ - "korean" - ], - "수명": [ - "korean" - ], - "수박": [ - "korean" - ], - "수상": [ - "korean" - ], - "수석": [ - "korean" - ], - "수술": [ - "korean" - ], - "수시로": [ - "korean" - ], - "수업": [ - "korean" - ], - "수염": [ - "korean" - ], - "수영": [ - "korean" - ], - "수입": [ - "korean" - ], - "수준": [ - "korean" - ], - "수집": [ - "korean" - ], - "수출": [ - "korean" - ], - "수컷": [ - "korean" - ], - "수필": [ - "korean" - ], - "수학": [ - "korean" - ], - "수험생": [ - "korean" - ], - "수화기": [ - "korean" - ], - "숙녀": [ - "korean" - ], - "숙소": [ - "korean" - ], - "숙제": [ - "korean" - ], - "순간": [ - "korean" - ], - "순서": [ - "korean" - ], - "순수": [ - "korean" - ], - "순식간": [ - "korean" - ], - "순위": [ - "korean" - ], - "숟가락": [ - "korean" - ], - "술병": [ - "korean" - ], - "술집": [ - "korean" - ], - "숫자": [ - "korean" - ], - "스님": [ - "korean" - ], - "스물": [ - "korean" - ], - "스스로": [ - "korean" - ], - "스승": [ - "korean" - ], - "스웨터": [ - "korean" - ], - "스위치": [ - "korean" - ], - "스케이트": [ - "korean" - ], - "스튜디오": [ - "korean" - ], - "스트레스": [ - "korean" - ], - "스포츠": [ - "korean" - ], - "슬쩍": [ - "korean" - ], - "슬픔": [ - "korean" - ], - "습관": [ - "korean" - ], - "습기": [ - "korean" - ], - "승객": [ - "korean" - ], - "승리": [ - "korean" - ], - "승부": [ - "korean" - ], - "승용차": [ - "korean" - ], - "승진": [ - "korean" - ], - "시각": [ - "korean" - ], - "시간": [ - "korean" - ], - "시골": [ - "korean" - ], - "시금치": [ - "korean" - ], - "시나리오": [ - "korean" - ], - "시댁": [ - "korean" - ], - "시리즈": [ - "korean" - ], - "시멘트": [ - "korean" - ], - "시민": [ - "korean" - ], - "시부모": [ - "korean" - ], - "시선": [ - "korean" - ], - "시설": [ - "korean" - ], - "시스템": [ - "korean" - ], - "시아버지": [ - "korean" - ], - "시어머니": [ - "korean" - ], - "시월": [ - "korean" - ], - "시인": [ - "korean" - ], - "시일": [ - "korean" - ], - "시작": [ - "korean" - ], - "시장": [ - "korean" - ], - "시절": [ - "korean" - ], - "시점": [ - "korean" - ], - "시중": [ - "korean" - ], - "시즌": [ - "korean" - ], - "시집": [ - "korean" - ], - "시청": [ - "korean" - ], - "시합": [ - "korean" - ], - "시험": [ - "korean" - ], - "식구": [ - "korean" - ], - "식기": [ - "korean" - ], - "식당": [ - "korean" - ], - "식량": [ - "korean" - ], - "식료품": [ - "korean" - ], - "식물": [ - "korean" - ], - "식빵": [ - "korean" - ], - "식사": [ - "korean" - ], - "식생활": [ - "korean" - ], - "식초": [ - "korean" - ], - "식탁": [ - "korean" - ], - "식품": [ - "korean" - ], - "신고": [ - "korean" - ], - "신규": [ - "korean" - ], - "신념": [ - "korean" - ], - "신문": [ - "korean" - ], - "신발": [ - "korean" - ], - "신비": [ - "korean" - ], - "신사": [ - "korean" - ], - "신세": [ - "korean" - ], - "신용": [ - "korean" - ], - "신제품": [ - "korean" - ], - "신청": [ - "korean" - ], - "신체": [ - "korean" - ], - "신화": [ - "korean" - ], - "실감": [ - "korean" - ], - "실내": [ - "korean" - ], - "실력": [ - "korean" - ], - "실례": [ - "korean" - ], - "실망": [ - "korean" - ], - "실수": [ - "korean" - ], - "실습": [ - "korean" - ], - "실시": [ - "korean" - ], - "실장": [ - "korean" - ], - "실정": [ - "korean" - ], - "실질적": [ - "korean" - ], - "실천": [ - "korean" - ], - "실체": [ - "korean" - ], - "실컷": [ - "korean" - ], - "실태": [ - "korean" - ], - "실패": [ - "korean" - ], - "실험": [ - "korean" - ], - "실현": [ - "korean" - ], - "심리": [ - "korean" - ], - "심부름": [ - "korean" - ], - "심사": [ - "korean" - ], - "심장": [ - "korean" - ], - "심정": [ - "korean" - ], - "심판": [ - "korean" - ], - "쌍둥이": [ - "korean" - ], - "씨름": [ - "korean" - ], - "씨앗": [ - "korean" - ], - "아가씨": [ - "korean" - ], - "아나운서": [ - "korean" - ], - "아드님": [ - "korean" - ], - "아들": [ - "korean" - ], - "아쉬움": [ - "korean" - ], - "아스팔트": [ - "korean" - ], - "아시아": [ - "korean" - ], - "아울러": [ - "korean" - ], - "아저씨": [ - "korean" - ], - "아줌마": [ - "korean" - ], - "아직": [ - "korean" - ], - "아침": [ - "korean" - ], - "아파트": [ - "korean" - ], - "아프리카": [ - "korean" - ], - "아픔": [ - "korean" - ], - "아홉": [ - "korean" - ], - "아흔": [ - "korean" - ], - "악기": [ - "korean" - ], - "악몽": [ - "korean" - ], - "악수": [ - "korean" - ], - "안개": [ - "korean" - ], - "안경": [ - "korean" - ], - "안과": [ - "korean" - ], - "안내": [ - "korean" - ], - "안녕": [ - "korean" - ], - "안동": [ - "korean" - ], - "안방": [ - "korean" - ], - "안부": [ - "korean" - ], - "안주": [ - "korean" - ], - "알루미늄": [ - "korean" - ], - "알코올": [ - "korean" - ], - "암시": [ - "korean" - ], - "암컷": [ - "korean" - ], - "압력": [ - "korean" - ], - "앞날": [ - "korean" - ], - "앞문": [ - "korean" - ], - "애인": [ - "korean" - ], - "애정": [ - "korean" - ], - "액수": [ - "korean" - ], - "앨범": [ - "korean" - ], - "야간": [ - "korean" - ], - "야단": [ - "korean" - ], - "야옹": [ - "korean" - ], - "약간": [ - "korean" - ], - "약국": [ - "korean" - ], - "약속": [ - "korean" - ], - "약수": [ - "korean" - ], - "약점": [ - "korean" - ], - "약품": [ - "korean" - ], - "약혼녀": [ - "korean" - ], - "양념": [ - "korean" - ], - "양력": [ - "korean" - ], - "양말": [ - "korean" - ], - "양배추": [ - "korean" - ], - "양주": [ - "korean" - ], - "양파": [ - "korean" - ], - "어둠": [ - "korean" - ], - "어려움": [ - "korean" - ], - "어른": [ - "korean" - ], - "어젯밤": [ - "korean" - ], - "어쨌든": [ - "korean" - ], - "어쩌다가": [ - "korean" - ], - "어쩐지": [ - "korean" - ], - "언니": [ - "korean" - ], - "언덕": [ - "korean" - ], - "언론": [ - "korean" - ], - "언어": [ - "korean" - ], - "얼굴": [ - "korean" - ], - "얼른": [ - "korean" - ], - "얼음": [ - "korean" - ], - "얼핏": [ - "korean" - ], - "엄마": [ - "korean" - ], - "업무": [ - "korean" - ], - "업종": [ - "korean" - ], - "업체": [ - "korean" - ], - "엉덩이": [ - "korean" - ], - "엉망": [ - "korean" - ], - "엉터리": [ - "korean" - ], - "엊그제": [ - "korean" - ], - "에너지": [ - "korean" - ], - "에어컨": [ - "korean" - ], - "엔진": [ - "korean" - ], - "여건": [ - "korean" - ], - "여고생": [ - "korean" - ], - "여관": [ - "korean" - ], - "여군": [ - "korean" - ], - "여권": [ - "korean" - ], - "여대생": [ - "korean" - ], - "여덟": [ - "korean" - ], - "여동생": [ - "korean" - ], - "여든": [ - "korean" - ], - "여론": [ - "korean" - ], - "여름": [ - "korean" - ], - "여섯": [ - "korean" - ], - "여성": [ - "korean" - ], - "여왕": [ - "korean" - ], - "여인": [ - "korean" - ], - "여전히": [ - "korean" - ], - "여직원": [ - "korean" - ], - "여학생": [ - "korean" - ], - "여행": [ - "korean" - ], - "역사": [ - "korean" - ], - "역시": [ - "korean" - ], - "역할": [ - "korean" - ], - "연결": [ - "korean" - ], - "연구": [ - "korean" - ], - "연극": [ - "korean" - ], - "연기": [ - "korean" - ], - "연락": [ - "korean" - ], - "연설": [ - "korean" - ], - "연세": [ - "korean" - ], - "연속": [ - "korean" - ], - "연습": [ - "korean" - ], - "연애": [ - "korean" - ], - "연예인": [ - "korean" - ], - "연인": [ - "korean" - ], - "연장": [ - "korean" - ], - "연주": [ - "korean" - ], - "연출": [ - "korean" - ], - "연필": [ - "korean" - ], - "연합": [ - "korean" - ], - "연휴": [ - "korean" - ], - "열기": [ - "korean" - ], - "열매": [ - "korean" - ], - "열쇠": [ - "korean" - ], - "열심히": [ - "korean" - ], - "열정": [ - "korean" - ], - "열차": [ - "korean" - ], - "열흘": [ - "korean" - ], - "염려": [ - "korean" - ], - "엽서": [ - "korean" - ], - "영국": [ - "korean" - ], - "영남": [ - "korean" - ], - "영상": [ - "korean" - ], - "영양": [ - "korean" - ], - "영역": [ - "korean" - ], - "영웅": [ - "korean" - ], - "영원히": [ - "korean" - ], - "영하": [ - "korean" - ], - "영향": [ - "korean" - ], - "영혼": [ - "korean" - ], - "영화": [ - "korean" - ], - "옆구리": [ - "korean" - ], - "옆방": [ - "korean" - ], - "옆집": [ - "korean" - ], - "예감": [ - "korean" - ], - "예금": [ - "korean" - ], - "예방": [ - "korean" - ], - "예산": [ - "korean" - ], - "예상": [ - "korean" - ], - "예선": [ - "korean" - ], - "예술": [ - "korean" - ], - "예습": [ - "korean" - ], - "예식장": [ - "korean" - ], - "예약": [ - "korean" - ], - "예전": [ - "korean" - ], - "예절": [ - "korean" - ], - "예정": [ - "korean" - ], - "예컨대": [ - "korean" - ], - "옛날": [ - "korean" - ], - "오늘": [ - "korean" - ], - "오락": [ - "korean" - ], - "오랫동안": [ - "korean" - ], - "오렌지": [ - "korean" - ], - "오로지": [ - "korean" - ], - "오른발": [ - "korean" - ], - "오븐": [ - "korean" - ], - "오십": [ - "korean" - ], - "오염": [ - "korean" - ], - "오월": [ - "korean" - ], - "오전": [ - "korean" - ], - "오직": [ - "korean" - ], - "오징어": [ - "korean" - ], - "오페라": [ - "korean" - ], - "오피스텔": [ - "korean" - ], - "오히려": [ - "korean" - ], - "옥상": [ - "korean" - ], - "옥수수": [ - "korean" - ], - "온갖": [ - "korean" - ], - "온라인": [ - "korean" - ], - "온몸": [ - "korean" - ], - "온종일": [ - "korean" - ], - "온통": [ - "korean" - ], - "올가을": [ - "korean" - ], - "올림픽": [ - "korean" - ], - "올해": [ - "korean" - ], - "옷차림": [ - "korean" - ], - "와이셔츠": [ - "korean" - ], - "와인": [ - "korean" - ], - "완성": [ - "korean" - ], - "완전": [ - "korean" - ], - "왕비": [ - "korean" - ], - "왕자": [ - "korean" - ], - "왜냐하면": [ - "korean" - ], - "왠지": [ - "korean" - ], - "외갓집": [ - "korean" - ], - "외국": [ - "korean" - ], - "외로움": [ - "korean" - ], - "외삼촌": [ - "korean" - ], - "외출": [ - "korean" - ], - "외침": [ - "korean" - ], - "외할머니": [ - "korean" - ], - "왼발": [ - "korean" - ], - "왼손": [ - "korean" - ], - "왼쪽": [ - "korean" - ], - "요금": [ - "korean" - ], - "요일": [ - "korean" - ], - "요즘": [ - "korean" - ], - "요청": [ - "korean" - ], - "용기": [ - "korean" - ], - "용서": [ - "korean" - ], - "용어": [ - "korean" - ], - "우산": [ - "korean" - ], - "우선": [ - "korean" - ], - "우승": [ - "korean" - ], - "우연히": [ - "korean" - ], - "우정": [ - "korean" - ], - "우체국": [ - "korean" - ], - "우편": [ - "korean" - ], - "운동": [ - "korean" - ], - "운명": [ - "korean" - ], - "운반": [ - "korean" - ], - "운전": [ - "korean" - ], - "운행": [ - "korean" - ], - "울산": [ - "korean" - ], - "울음": [ - "korean" - ], - "움직임": [ - "korean" - ], - "웃어른": [ - "korean" - ], - "웃음": [ - "korean" - ], - "워낙": [ - "korean" - ], - "원고": [ - "korean" - ], - "원래": [ - "korean" - ], - "원서": [ - "korean" - ], - "원숭이": [ - "korean" - ], - "원인": [ - "korean" - ], - "원장": [ - "korean" - ], - "원피스": [ - "korean" - ], - "월급": [ - "korean" - ], - "월드컵": [ - "korean" - ], - "월세": [ - "korean" - ], - "월요일": [ - "korean" - ], - "웨이터": [ - "korean" - ], - "위반": [ - "korean" - ], - "위법": [ - "korean" - ], - "위성": [ - "korean" - ], - "위원": [ - "korean" - ], - "위험": [ - "korean" - ], - "위협": [ - "korean" - ], - "윗사람": [ - "korean" - ], - "유난히": [ - "korean" - ], - "유럽": [ - "korean" - ], - "유명": [ - "korean" - ], - "유물": [ - "korean" - ], - "유산": [ - "korean" - ], - "유적": [ - "korean" - ], - "유치원": [ - "korean" - ], - "유학": [ - "korean" - ], - "유행": [ - "korean" - ], - "유형": [ - "korean" - ], - "육군": [ - "korean" - ], - "육상": [ - "korean" - ], - "육십": [ - "korean" - ], - "육체": [ - "korean" - ], - "은행": [ - "korean" - ], - "음력": [ - "korean" - ], - "음료": [ - "korean" - ], - "음반": [ - "korean" - ], - "음성": [ - "korean" - ], - "음식": [ - "korean" - ], - "음악": [ - "korean" - ], - "음주": [ - "korean" - ], - "의견": [ - "korean" - ], - "의논": [ - "korean" - ], - "의문": [ - "korean" - ], - "의복": [ - "korean" - ], - "의식": [ - "korean" - ], - "의심": [ - "korean" - ], - "의외로": [ - "korean" - ], - "의욕": [ - "korean" - ], - "의원": [ - "korean" - ], - "의학": [ - "korean" - ], - "이것": [ - "korean" - ], - "이곳": [ - "korean" - ], - "이념": [ - "korean" - ], - "이놈": [ - "korean" - ], - "이달": [ - "korean" - ], - "이대로": [ - "korean" - ], - "이동": [ - "korean" - ], - "이렇게": [ - "korean" - ], - "이력서": [ - "korean" - ], - "이론적": [ - "korean" - ], - "이름": [ - "korean" - ], - "이민": [ - "korean" - ], - "이발소": [ - "korean" - ], - "이별": [ - "korean" - ], - "이불": [ - "korean" - ], - "이빨": [ - "korean" - ], - "이상": [ - "korean" - ], - "이성": [ - "korean" - ], - "이슬": [ - "korean" - ], - "이야기": [ - "korean" - ], - "이용": [ - "korean" - ], - "이웃": [ - "korean" - ], - "이월": [ - "korean" - ], - "이윽고": [ - "korean" - ], - "이익": [ - "korean" - ], - "이전": [ - "korean" - ], - "이중": [ - "korean" - ], - "이튿날": [ - "korean" - ], - "이틀": [ - "korean" - ], - "이혼": [ - "korean" - ], - "인간": [ - "korean" - ], - "인격": [ - "korean" - ], - "인공": [ - "korean" - ], - "인구": [ - "korean" - ], - "인근": [ - "korean" - ], - "인기": [ - "korean" - ], - "인도": [ - "korean" - ], - "인류": [ - "korean" - ], - "인물": [ - "korean" - ], - "인생": [ - "korean" - ], - "인쇄": [ - "korean" - ], - "인연": [ - "korean" - ], - "인원": [ - "korean" - ], - "인재": [ - "korean" - ], - "인종": [ - "korean" - ], - "인천": [ - "korean" - ], - "인체": [ - "korean" - ], - "인터넷": [ - "korean" - ], - "인하": [ - "korean" - ], - "인형": [ - "korean" - ], - "일곱": [ - "korean" - ], - "일기": [ - "korean" - ], - "일단": [ - "korean" - ], - "일대": [ - "korean" - ], - "일등": [ - "korean" - ], - "일반": [ - "korean" - ], - "일본": [ - "korean" - ], - "일부": [ - "korean" - ], - "일상": [ - "korean" - ], - "일생": [ - "korean" - ], - "일손": [ - "korean" - ], - "일요일": [ - "korean" - ], - "일월": [ - "korean" - ], - "일정": [ - "korean" - ], - "일종": [ - "korean" - ], - "일주일": [ - "korean" - ], - "일찍": [ - "korean" - ], - "일체": [ - "korean" - ], - "일치": [ - "korean" - ], - "일행": [ - "korean" - ], - "일회용": [ - "korean" - ], - "임금": [ - "korean" - ], - "임무": [ - "korean" - ], - "입대": [ - "korean" - ], - "입력": [ - "korean" - ], - "입맛": [ - "korean" - ], - "입사": [ - "korean" - ], - "입술": [ - "korean" - ], - "입시": [ - "korean" - ], - "입원": [ - "korean" - ], - "입장": [ - "korean" - ], - "입학": [ - "korean" - ], - "자가용": [ - "korean" - ], - "자격": [ - "korean" - ], - "자극": [ - "korean" - ], - "자동": [ - "korean" - ], - "자랑": [ - "korean" - ], - "자부심": [ - "korean" - ], - "자식": [ - "korean" - ], - "자신": [ - "korean" - ], - "자연": [ - "korean" - ], - "자원": [ - "korean" - ], - "자율": [ - "korean" - ], - "자전거": [ - "korean" - ], - "자정": [ - "korean" - ], - "자존심": [ - "korean" - ], - "자판": [ - "korean" - ], - "작가": [ - "korean" - ], - "작년": [ - "korean" - ], - "작성": [ - "korean" - ], - "작업": [ - "korean" - ], - "작용": [ - "korean" - ], - "작은딸": [ - "korean" - ], - "작품": [ - "korean" - ], - "잔디": [ - "korean" - ], - "잔뜩": [ - "korean" - ], - "잔치": [ - "korean" - ], - "잘못": [ - "korean" - ], - "잠깐": [ - "korean" - ], - "잠수함": [ - "korean" - ], - "잠시": [ - "korean" - ], - "잠옷": [ - "korean" - ], - "잠자리": [ - "korean" - ], - "잡지": [ - "korean" - ], - "장관": [ - "korean" - ], - "장군": [ - "korean" - ], - "장기간": [ - "korean" - ], - "장래": [ - "korean" - ], - "장례": [ - "korean" - ], - "장르": [ - "korean" - ], - "장마": [ - "korean" - ], - "장면": [ - "korean" - ], - "장모": [ - "korean" - ], - "장미": [ - "korean" - ], - "장비": [ - "korean" - ], - "장사": [ - "korean" - ], - "장소": [ - "korean" - ], - "장식": [ - "korean" - ], - "장애인": [ - "korean" - ], - "장인": [ - "korean" - ], - "장점": [ - "korean" - ], - "장차": [ - "korean" - ], - "장학금": [ - "korean" - ], - "재능": [ - "korean" - ], - "재빨리": [ - "korean" - ], - "재산": [ - "korean" - ], - "재생": [ - "korean" - ], - "재작년": [ - "korean" - ], - "재정": [ - "korean" - ], - "재채기": [ - "korean" - ], - "재판": [ - "korean" - ], - "재학": [ - "korean" - ], - "재활용": [ - "korean" - ], - "저것": [ - "korean" - ], - "저고리": [ - "korean" - ], - "저곳": [ - "korean" - ], - "저녁": [ - "korean" - ], - "저런": [ - "korean" - ], - "저렇게": [ - "korean" - ], - "저번": [ - "korean" - ], - "저울": [ - "korean" - ], - "저절로": [ - "korean" - ], - "저축": [ - "korean" - ], - "적극": [ - "korean" - ], - "적당히": [ - "korean" - ], - "적성": [ - "korean" - ], - "적용": [ - "korean" - ], - "적응": [ - "korean" - ], - "전개": [ - "korean" - ], - "전공": [ - "korean" - ], - "전기": [ - "korean" - ], - "전달": [ - "korean" - ], - "전라도": [ - "korean" - ], - "전망": [ - "korean" - ], - "전문": [ - "korean" - ], - "전반": [ - "korean" - ], - "전부": [ - "korean" - ], - "전세": [ - "korean" - ], - "전시": [ - "korean" - ], - "전용": [ - "korean" - ], - "전자": [ - "korean" - ], - "전쟁": [ - "korean" - ], - "전주": [ - "korean" - ], - "전철": [ - "korean" - ], - "전체": [ - "korean" - ], - "전통": [ - "korean" - ], - "전혀": [ - "korean" - ], - "전후": [ - "korean" - ], - "절대": [ - "korean" - ], - "절망": [ - "korean" - ], - "절반": [ - "korean" - ], - "절약": [ - "korean" - ], - "절차": [ - "korean" - ], - "점검": [ - "korean" - ], - "점수": [ - "korean" - ], - "점심": [ - "korean" - ], - "점원": [ - "korean" - ], - "점점": [ - "korean" - ], - "점차": [ - "korean" - ], - "접근": [ - "korean" - ], - "접시": [ - "korean" - ], - "접촉": [ - "korean" - ], - "젓가락": [ - "korean" - ], - "정거장": [ - "korean" - ], - "정도": [ - "korean" - ], - "정류장": [ - "korean" - ], - "정리": [ - "korean" - ], - "정말": [ - "korean" - ], - "정면": [ - "korean" - ], - "정문": [ - "korean" - ], - "정반대": [ - "korean" - ], - "정보": [ - "korean" - ], - "정부": [ - "korean" - ], - "정비": [ - "korean" - ], - "정상": [ - "korean" - ], - "정성": [ - "korean" - ], - "정오": [ - "korean" - ], - "정원": [ - "korean" - ], - "정장": [ - "korean" - ], - "정지": [ - "korean" - ], - "정치": [ - "korean" - ], - "정확히": [ - "korean" - ], - "제공": [ - "korean" - ], - "제과점": [ - "korean" - ], - "제대로": [ - "korean" - ], - "제목": [ - "korean" - ], - "제발": [ - "korean" - ], - "제법": [ - "korean" - ], - "제삿날": [ - "korean" - ], - "제안": [ - "korean" - ], - "제일": [ - "korean" - ], - "제작": [ - "korean" - ], - "제주도": [ - "korean" - ], - "제출": [ - "korean" - ], - "제품": [ - "korean" - ], - "제한": [ - "korean" - ], - "조각": [ - "korean" - ], - "조건": [ - "korean" - ], - "조금": [ - "korean" - ], - "조깅": [ - "korean" - ], - "조명": [ - "korean" - ], - "조미료": [ - "korean" - ], - "조상": [ - "korean" - ], - "조선": [ - "korean" - ], - "조용히": [ - "korean" - ], - "조절": [ - "korean" - ], - "조정": [ - "korean" - ], - "조직": [ - "korean" - ], - "존댓말": [ - "korean" - ], - "존재": [ - "korean" - ], - "졸업": [ - "korean" - ], - "졸음": [ - "korean" - ], - "종교": [ - "korean" - ], - "종로": [ - "korean" - ], - "종류": [ - "korean" - ], - "종소리": [ - "korean" - ], - "종업원": [ - "korean" - ], - "종종": [ - "korean" - ], - "종합": [ - "korean" - ], - "좌석": [ - "korean" - ], - "죄인": [ - "korean" - ], - "주관적": [ - "korean" - ], - "주름": [ - "korean" - ], - "주말": [ - "korean" - ], - "주머니": [ - "korean" - ], - "주먹": [ - "korean" - ], - "주문": [ - "korean" - ], - "주민": [ - "korean" - ], - "주방": [ - "korean" - ], - "주변": [ - "korean" - ], - "주식": [ - "korean" - ], - "주인": [ - "korean" - ], - "주일": [ - "korean" - ], - "주장": [ - "korean" - ], - "주전자": [ - "korean" - ], - "주택": [ - "korean" - ], - "준비": [ - "korean" - ], - "줄거리": [ - "korean" - ], - "줄기": [ - "korean" - ], - "줄무늬": [ - "korean" - ], - "중간": [ - "korean" - ], - "중계방송": [ - "korean" - ], - "중국": [ - "korean" - ], - "중년": [ - "korean" - ], - "중단": [ - "korean" - ], - "중독": [ - "korean" - ], - "중반": [ - "korean" - ], - "중부": [ - "korean" - ], - "중세": [ - "korean" - ], - "중소기업": [ - "korean" - ], - "중순": [ - "korean" - ], - "중앙": [ - "korean" - ], - "중요": [ - "korean" - ], - "중학교": [ - "korean" - ], - "즉석": [ - "korean" - ], - "즉시": [ - "korean" - ], - "즐거움": [ - "korean" - ], - "증가": [ - "korean" - ], - "증거": [ - "korean" - ], - "증권": [ - "korean" - ], - "증상": [ - "korean" - ], - "증세": [ - "korean" - ], - "지각": [ - "korean" - ], - "지갑": [ - "korean" - ], - "지경": [ - "korean" - ], - "지극히": [ - "korean" - ], - "지금": [ - "korean" - ], - "지급": [ - "korean" - ], - "지능": [ - "korean" - ], - "지름길": [ - "korean" - ], - "지리산": [ - "korean" - ], - "지방": [ - "korean" - ], - "지붕": [ - "korean" - ], - "지식": [ - "korean" - ], - "지역": [ - "korean" - ], - "지우개": [ - "korean" - ], - "지원": [ - "korean" - ], - "지적": [ - "korean" - ], - "지점": [ - "korean" - ], - "지진": [ - "korean" - ], - "지출": [ - "korean" - ], - "직선": [ - "korean" - ], - "직업": [ - "korean" - ], - "직원": [ - "korean" - ], - "직장": [ - "korean" - ], - "진급": [ - "korean" - ], - "진동": [ - "korean" - ], - "진로": [ - "korean" - ], - "진료": [ - "korean" - ], - "진리": [ - "korean" - ], - "진짜": [ - "korean" - ], - "진찰": [ - "korean" - ], - "진출": [ - "korean" - ], - "진통": [ - "korean" - ], - "진행": [ - "korean" - ], - "질문": [ - "korean" - ], - "질병": [ - "korean" - ], - "질서": [ - "korean" - ], - "짐작": [ - "korean" - ], - "집단": [ - "korean" - ], - "집안": [ - "korean" - ], - "집중": [ - "korean" - ], - "짜증": [ - "korean" - ], - "찌꺼기": [ - "korean" - ], - "차남": [ - "korean" - ], - "차라리": [ - "korean" - ], - "차량": [ - "korean" - ], - "차림": [ - "korean" - ], - "차별": [ - "korean" - ], - "차선": [ - "korean" - ], - "차츰": [ - "korean" - ], - "착각": [ - "korean" - ], - "찬물": [ - "korean" - ], - "찬성": [ - "korean" - ], - "참가": [ - "korean" - ], - "참기름": [ - "korean" - ], - "참새": [ - "korean" - ], - "참석": [ - "korean" - ], - "참여": [ - "korean" - ], - "참외": [ - "korean" - ], - "참조": [ - "korean" - ], - "찻잔": [ - "korean" - ], - "창가": [ - "korean" - ], - "창고": [ - "korean" - ], - "창구": [ - "korean" - ], - "창문": [ - "korean" - ], - "창밖": [ - "korean" - ], - "창작": [ - "korean" - ], - "창조": [ - "korean" - ], - "채널": [ - "korean" - ], - "채점": [ - "korean" - ], - "책가방": [ - "korean" - ], - "책방": [ - "korean" - ], - "책상": [ - "korean" - ], - "책임": [ - "korean" - ], - "챔피언": [ - "korean" - ], - "처벌": [ - "korean" - ], - "처음": [ - "korean" - ], - "천국": [ - "korean" - ], - "천둥": [ - "korean" - ], - "천장": [ - "korean" - ], - "천재": [ - "korean" - ], - "천천히": [ - "korean" - ], - "철도": [ - "korean" - ], - "철저히": [ - "korean" - ], - "철학": [ - "korean" - ], - "첫날": [ - "korean" - ], - "첫째": [ - "korean" - ], - "청년": [ - "korean" - ], - "청바지": [ - "korean" - ], - "청소": [ - "korean" - ], - "청춘": [ - "korean" - ], - "체계": [ - "korean" - ], - "체력": [ - "korean" - ], - "체온": [ - "korean" - ], - "체육": [ - "korean" - ], - "체중": [ - "korean" - ], - "체험": [ - "korean" - ], - "초등학생": [ - "korean" - ], - "초반": [ - "korean" - ], - "초밥": [ - "korean" - ], - "초상화": [ - "korean" - ], - "초순": [ - "korean" - ], - "초여름": [ - "korean" - ], - "초원": [ - "korean" - ], - "초저녁": [ - "korean" - ], - "초점": [ - "korean" - ], - "초청": [ - "korean" - ], - "초콜릿": [ - "korean" - ], - "촛불": [ - "korean" - ], - "총각": [ - "korean" - ], - "총리": [ - "korean" - ], - "총장": [ - "korean" - ], - "촬영": [ - "korean" - ], - "최근": [ - "korean" - ], - "최상": [ - "korean" - ], - "최선": [ - "korean" - ], - "최신": [ - "korean" - ], - "최악": [ - "korean" - ], - "최종": [ - "korean" - ], - "추석": [ - "korean" - ], - "추억": [ - "korean" - ], - "추진": [ - "korean" - ], - "추천": [ - "korean" - ], - "추측": [ - "korean" - ], - "축구": [ - "korean" - ], - "축소": [ - "korean" - ], - "축제": [ - "korean" - ], - "축하": [ - "korean" - ], - "출근": [ - "korean" - ], - "출발": [ - "korean" - ], - "출산": [ - "korean" - ], - "출신": [ - "korean" - ], - "출연": [ - "korean" - ], - "출입": [ - "korean" - ], - "출장": [ - "korean" - ], - "출판": [ - "korean" - ], - "충격": [ - "korean" - ], - "충고": [ - "korean" - ], - "충돌": [ - "korean" - ], - "충분히": [ - "korean" - ], - "충청도": [ - "korean" - ], - "취업": [ - "korean" - ], - "취직": [ - "korean" - ], - "취향": [ - "korean" - ], - "치약": [ - "korean" - ], - "친구": [ - "korean" - ], - "친척": [ - "korean" - ], - "칠십": [ - "korean" - ], - "칠월": [ - "korean" - ], - "칠판": [ - "korean" - ], - "침대": [ - "korean" - ], - "침묵": [ - "korean" - ], - "침실": [ - "korean" - ], - "칫솔": [ - "korean" - ], - "칭찬": [ - "korean" - ], - "카메라": [ - "korean" - ], - "카운터": [ - "korean" - ], - "칼국수": [ - "korean" - ], - "캐릭터": [ - "korean" - ], - "캠퍼스": [ - "korean" - ], - "캠페인": [ - "korean" - ], - "커튼": [ - "korean" - ], - "컨디션": [ - "korean" - ], - "컬러": [ - "korean" - ], - "컴퓨터": [ - "korean" - ], - "코끼리": [ - "korean" - ], - "코미디": [ - "korean" - ], - "콘서트": [ - "korean" - ], - "콜라": [ - "korean" - ], - "콤플렉스": [ - "korean" - ], - "콩나물": [ - "korean" - ], - "쾌감": [ - "korean" - ], - "쿠데타": [ - "korean" - ], - "크림": [ - "korean" - ], - "큰길": [ - "korean" - ], - "큰딸": [ - "korean" - ], - "큰소리": [ - "korean" - ], - "큰아들": [ - "korean" - ], - "큰어머니": [ - "korean" - ], - "큰일": [ - "korean" - ], - "큰절": [ - "korean" - ], - "클래식": [ - "korean" - ], - "클럽": [ - "korean" - ], - "킬로": [ - "korean" - ], - "타입": [ - "korean" - ], - "타자기": [ - "korean" - ], - "탁구": [ - "korean" - ], - "탁자": [ - "korean" - ], - "탄생": [ - "korean" - ], - "태권도": [ - "korean" - ], - "태양": [ - "korean" - ], - "태풍": [ - "korean" - ], - "택시": [ - "korean" - ], - "탤런트": [ - "korean" - ], - "터널": [ - "korean" - ], - "터미널": [ - "korean" - ], - "테니스": [ - "korean" - ], - "테스트": [ - "korean" - ], - "테이블": [ - "korean" - ], - "텔레비전": [ - "korean" - ], - "토론": [ - "korean" - ], - "토마토": [ - "korean" - ], - "토요일": [ - "korean" - ], - "통계": [ - "korean" - ], - "통과": [ - "korean" - ], - "통로": [ - "korean" - ], - "통신": [ - "korean" - ], - "통역": [ - "korean" - ], - "통일": [ - "korean" - ], - "통장": [ - "korean" - ], - "통제": [ - "korean" - ], - "통증": [ - "korean" - ], - "통합": [ - "korean" - ], - "통화": [ - "korean" - ], - "퇴근": [ - "korean" - ], - "퇴원": [ - "korean" - ], - "퇴직금": [ - "korean" - ], - "튀김": [ - "korean" - ], - "트럭": [ - "korean" - ], - "특급": [ - "korean" - ], - "특별": [ - "korean" - ], - "특성": [ - "korean" - ], - "특수": [ - "korean" - ], - "특징": [ - "korean" - ], - "특히": [ - "korean" - ], - "튼튼히": [ - "korean" - ], - "티셔츠": [ - "korean" - ], - "파란색": [ - "korean" - ], - "파일": [ - "korean" - ], - "파출소": [ - "korean" - ], - "판결": [ - "korean" - ], - "판단": [ - "korean" - ], - "판매": [ - "korean" - ], - "판사": [ - "korean" - ], - "팔십": [ - "korean" - ], - "팔월": [ - "korean" - ], - "팝송": [ - "korean" - ], - "패션": [ - "korean" - ], - "팩스": [ - "korean" - ], - "팩시밀리": [ - "korean" - ], - "팬티": [ - "korean" - ], - "퍼센트": [ - "korean" - ], - "페인트": [ - "korean" - ], - "편견": [ - "korean" - ], - "편의": [ - "korean" - ], - "편지": [ - "korean" - ], - "편히": [ - "korean" - ], - "평가": [ - "korean" - ], - "평균": [ - "korean" - ], - "평생": [ - "korean" - ], - "평소": [ - "korean" - ], - "평양": [ - "korean" - ], - "평일": [ - "korean" - ], - "평화": [ - "korean" - ], - "포스터": [ - "korean" - ], - "포인트": [ - "korean" - ], - "포장": [ - "korean" - ], - "포함": [ - "korean" - ], - "표면": [ - "korean" - ], - "표정": [ - "korean" - ], - "표준": [ - "korean" - ], - "표현": [ - "korean" - ], - "품목": [ - "korean" - ], - "품질": [ - "korean" - ], - "풍경": [ - "korean" - ], - "풍속": [ - "korean" - ], - "풍습": [ - "korean" - ], - "프랑스": [ - "korean" - ], - "프린터": [ - "korean" - ], - "플라스틱": [ - "korean" - ], - "피곤": [ - "korean" - ], - "피망": [ - "korean" - ], - "피아노": [ - "korean" - ], - "필름": [ - "korean" - ], - "필수": [ - "korean" - ], - "필요": [ - "korean" - ], - "필자": [ - "korean" - ], - "필통": [ - "korean" - ], - "핑계": [ - "korean" - ], - "하느님": [ - "korean" - ], - "하늘": [ - "korean" - ], - "하드웨어": [ - "korean" - ], - "하룻밤": [ - "korean" - ], - "하반기": [ - "korean" - ], - "하숙집": [ - "korean" - ], - "하순": [ - "korean" - ], - "하여튼": [ - "korean" - ], - "하지만": [ - "korean" - ], - "하천": [ - "korean" - ], - "하품": [ - "korean" - ], - "하필": [ - "korean" - ], - "학과": [ - "korean" - ], - "학교": [ - "korean" - ], - "학급": [ - "korean" - ], - "학기": [ - "korean" - ], - "학년": [ - "korean" - ], - "학력": [ - "korean" - ], - "학번": [ - "korean" - ], - "학부모": [ - "korean" - ], - "학비": [ - "korean" - ], - "학생": [ - "korean" - ], - "학술": [ - "korean" - ], - "학습": [ - "korean" - ], - "학용품": [ - "korean" - ], - "학원": [ - "korean" - ], - "학위": [ - "korean" - ], - "학자": [ - "korean" - ], - "학점": [ - "korean" - ], - "한계": [ - "korean" - ], - "한글": [ - "korean" - ], - "한꺼번에": [ - "korean" - ], - "한낮": [ - "korean" - ], - "한눈": [ - "korean" - ], - "한동안": [ - "korean" - ], - "한때": [ - "korean" - ], - "한라산": [ - "korean" - ], - "한마디": [ - "korean" - ], - "한문": [ - "korean" - ], - "한번": [ - "korean" - ], - "한복": [ - "korean" - ], - "한식": [ - "korean" - ], - "한여름": [ - "korean" - ], - "한쪽": [ - "korean" - ], - "할머니": [ - "korean" - ], - "할아버지": [ - "korean" - ], - "할인": [ - "korean" - ], - "함께": [ - "korean" - ], - "함부로": [ - "korean" - ], - "합격": [ - "korean" - ], - "합리적": [ - "korean" - ], - "항공": [ - "korean" - ], - "항구": [ - "korean" - ], - "항상": [ - "korean" - ], - "항의": [ - "korean" - ], - "해결": [ - "korean" - ], - "해군": [ - "korean" - ], - "해답": [ - "korean" - ], - "해당": [ - "korean" - ], - "해물": [ - "korean" - ], - "해석": [ - "korean" - ], - "해설": [ - "korean" - ], - "해수욕장": [ - "korean" - ], - "해안": [ - "korean" - ], - "핵심": [ - "korean" - ], - "핸드백": [ - "korean" - ], - "햄버거": [ - "korean" - ], - "햇볕": [ - "korean" - ], - "햇살": [ - "korean" - ], - "행동": [ - "korean" - ], - "행복": [ - "korean" - ], - "행사": [ - "korean" - ], - "행운": [ - "korean" - ], - "행위": [ - "korean" - ], - "향기": [ - "korean" - ], - "향상": [ - "korean" - ], - "향수": [ - "korean" - ], - "허락": [ - "korean" - ], - "허용": [ - "korean" - ], - "헬기": [ - "korean" - ], - "현관": [ - "korean" - ], - "현금": [ - "korean" - ], - "현대": [ - "korean" - ], - "현상": [ - "korean" - ], - "현실": [ - "korean" - ], - "현장": [ - "korean" - ], - "현재": [ - "korean" - ], - "현지": [ - "korean" - ], - "혈액": [ - "korean" - ], - "협력": [ - "korean" - ], - "형부": [ - "korean" - ], - "형사": [ - "korean" - ], - "형수": [ - "korean" - ], - "형식": [ - "korean" - ], - "형제": [ - "korean" - ], - "형태": [ - "korean" - ], - "형편": [ - "korean" - ], - "혜택": [ - "korean" - ], - "호기심": [ - "korean" - ], - "호남": [ - "korean" - ], - "호랑이": [ - "korean" - ], - "호박": [ - "korean" - ], - "호텔": [ - "korean" - ], - "호흡": [ - "korean" - ], - "혹시": [ - "korean" - ], - "홀로": [ - "korean" - ], - "홈페이지": [ - "korean" - ], - "홍보": [ - "korean" - ], - "홍수": [ - "korean" - ], - "홍차": [ - "korean" - ], - "화면": [ - "korean" - ], - "화분": [ - "korean" - ], - "화살": [ - "korean" - ], - "화요일": [ - "korean" - ], - "화장": [ - "korean" - ], - "화학": [ - "korean" - ], - "확보": [ - "korean" - ], - "확인": [ - "korean" - ], - "확장": [ - "korean" - ], - "확정": [ - "korean" - ], - "환갑": [ - "korean" - ], - "환경": [ - "korean" - ], - "환영": [ - "korean" - ], - "환율": [ - "korean" - ], - "환자": [ - "korean" - ], - "활기": [ - "korean" - ], - "활동": [ - "korean" - ], - "활발히": [ - "korean" - ], - "활용": [ - "korean" - ], - "활짝": [ - "korean" - ], - "회견": [ - "korean" - ], - "회관": [ - "korean" - ], - "회복": [ - "korean" - ], - "회색": [ - "korean" - ], - "회원": [ - "korean" - ], - "회장": [ - "korean" - ], - "회전": [ - "korean" - ], - "횟수": [ - "korean" - ], - "횡단보도": [ - "korean" - ], - "효율적": [ - "korean" - ], - "후반": [ - "korean" - ], - "후춧가루": [ - "korean" - ], - "훈련": [ - "korean" - ], - "훨씬": [ - "korean" - ], - "휴식": [ - "korean" - ], - "휴일": [ - "korean" - ], - "흉내": [ - "korean" - ], - "흐름": [ - "korean" - ], - "흑백": [ - "korean" - ], - "흑인": [ - "korean" - ], - "흔적": [ - "korean" - ], - "흔히": [ - "korean" - ], - "흥미": [ - "korean" - ], - "흥분": [ - "korean" - ], - "희곡": [ - "korean" - ], - "희망": [ - "korean" - ], - "희생": [ - "korean" - ], - "흰색": [ - "korean" - ], - "힘껏": [ - "korean" - ], - abacate: abacate, - abaixo: abaixo, - abalar: abalar, - abater: abater, - abduzir: abduzir, - abelha: abelha, - aberto: aberto, - abismo: abismo, - abotoar: abotoar, - abranger: abranger, - abreviar: abreviar, - abrigar: abrigar, - abrupto: abrupto, - absinto: absinto, - absoluto: absoluto, - absurdo: absurdo, - abutre: abutre, - acabado: acabado, - acalmar: acalmar, - acampar: acampar, - acanhar: acanhar, - acaso: acaso, - aceitar: aceitar, - acelerar: acelerar, - acenar: acenar, - acervo: acervo, - acessar: acessar, - acetona: acetona, - achatar: achatar, - acidez: acidez, - acima: acima, - acionado: acionado, - acirrar: acirrar, - aclamar: aclamar, - aclive: aclive, - acolhida: acolhida, - acomodar: acomodar, - acoplar: acoplar, - acordar: acordar, - acumular: acumular, - acusador: acusador, - adaptar: adaptar, - adega: adega, - adentro: adentro, - adepto: adepto, - adequar: adequar, - aderente: aderente, - adesivo: adesivo, - adeus: adeus, - adiante: adiante, - aditivo: aditivo, - adjetivo: adjetivo, - adjunto: adjunto, - admirar: admirar, - adorar: adorar, - adquirir: adquirir, - adubo: adubo, - adverso: adverso, - advogado: advogado, - aeronave: aeronave, - afastar: afastar, - aferir: aferir, - afetivo: afetivo, - afinador: afinador, - afivelar: afivelar, - aflito: aflito, - afluente: afluente, - afrontar: afrontar, - agachar: agachar, - agarrar: agarrar, - agasalho: agasalho, - agenciar: agenciar, - agilizar: agilizar, - agiota: agiota, - agitado: agitado, - agora: agora, - agradar: agradar, - agreste: agreste, - agrupar: agrupar, - aguardar: aguardar, - agulha: agulha, - ajoelhar: ajoelhar, - ajudar: ajudar, - ajustar: ajustar, - alameda: alameda, - alarme: alarme, - alastrar: alastrar, - alavanca: alavanca, - albergue: albergue, - albino: albino, - alcatra: alcatra, - aldeia: aldeia, - alecrim: alecrim, - alegria: alegria, - alertar: alertar, - alface: alface, - alfinete: alfinete, - algum: algum, - alheio: alheio, - aliar: aliar, - alicate: alicate, - alienar: alienar, - alinhar: alinhar, - aliviar: aliviar, - almofada: almofada, - alocar: alocar, - alpiste: alpiste, - alterar: alterar, - altitude: altitude, - alucinar: alucinar, - alugar: alugar, - aluno: aluno, - alusivo: alusivo, - alvo: alvo, - amaciar: amaciar, - amador: amador, - amarelo: amarelo, - amassar: amassar, - ambas: ambas, - ambiente: ambiente, - ameixa: ameixa, - amenizar: amenizar, - amido: amido, - amistoso: amistoso, - amizade: amizade, - amolador: amolador, - amontoar: amontoar, - amoroso: amoroso, - amostra: amostra, - amparar: amparar, - ampliar: ampliar, - ampola: ampola, - anagrama: anagrama, - analisar: analisar, - anarquia: anarquia, - anatomia: anatomia, - andaime: andaime, - anel: anel, - anexo: anexo, - angular: angular, - animar: animar, - anjo: anjo, - anomalia: anomalia, - anotado: anotado, - ansioso: ansioso, - anterior: anterior, - anuidade: anuidade, - anunciar: anunciar, - anzol: anzol, - apagador: apagador, - apalpar: apalpar, - apanhado: apanhado, - apego: apego, - apelido: apelido, - apertada: apertada, - apesar: apesar, - apetite: apetite, - apito: apito, - aplauso: aplauso, - aplicada: aplicada, - apoio: apoio, - apontar: apontar, - aposta: aposta, - aprendiz: aprendiz, - aprovar: aprovar, - aquecer: aquecer, - arame: arame, - aranha: aranha, - arara: arara, - arcada: arcada, - ardente: ardente, - areia: areia, - arejar: arejar, - arenito: arenito, - aresta: aresta, - argiloso: argiloso, - argola: argola, - arma: arma, - arquivo: arquivo, - arraial: arraial, - arrebate: arrebate, - arriscar: arriscar, - arroba: arroba, - arrumar: arrumar, - arsenal: arsenal, - arterial: arterial, - artigo: artigo, - arvoredo: arvoredo, - asfaltar: asfaltar, - asilado: asilado, - aspirar: aspirar, - assador: assador, - assinar: assinar, - assoalho: assoalho, - assunto: assunto, - astral: astral, - atacado: atacado, - atadura: atadura, - atalho: atalho, - atarefar: atarefar, - atear: atear, - atender: atender, - aterro: aterro, - ateu: ateu, - atingir: atingir, - atirador: atirador, - ativo: ativo, - atoleiro: atoleiro, - atracar: atracar, - atrevido: atrevido, - atriz: atriz, - atual: atual, - atum: atum, - auditor: auditor, - aumentar: aumentar, - aura: aura, - aurora: aurora, - autismo: autismo, - autoria: autoria, - autuar: autuar, - avaliar: avaliar, - avante: avante, - avaria: avaria, - avental: avental, - avesso: avesso, - aviador: aviador, - avisar: avisar, - avulso: avulso, - axila: axila, - azarar: azarar, - azedo: azedo, - azeite: azeite, - azulejo: azulejo, - babar: babar, - babosa: babosa, - bacalhau: bacalhau, - bacharel: bacharel, - bacia: bacia, - bagagem: bagagem, - baiano: baiano, - bailar: bailar, - baioneta: baioneta, - bairro: bairro, - baixista: baixista, - bajular: bajular, - baleia: baleia, - baliza: baliza, - balsa: balsa, - banal: banal, - bandeira: bandeira, - banho: banho, - banir: banir, - banquete: banquete, - barato: barato, - barbado: barbado, - baronesa: baronesa, - barraca: barraca, - barulho: barulho, - baseado: baseado, - bastante: bastante, - batata: batata, - batedor: batedor, - batida: batida, - batom: batom, - batucar: batucar, - baunilha: baunilha, - beber: beber, - beijo: beijo, - beirada: beirada, - beisebol: beisebol, - beldade: beldade, - beleza: beleza, - belga: belga, - beliscar: beliscar, - bendito: bendito, - bengala: bengala, - benzer: benzer, - berimbau: berimbau, - berlinda: berlinda, - berro: berro, - besouro: besouro, - bexiga: bexiga, - bezerro: bezerro, - bico: bico, - bicudo: bicudo, - bienal: bienal, - bifocal: bifocal, - bifurcar: bifurcar, - bigorna: bigorna, - bilhete: bilhete, - bimestre: bimestre, - bimotor: bimotor, - biologia: biologia, - biombo: biombo, - biosfera: biosfera, - bipolar: bipolar, - birrento: birrento, - biscoito: biscoito, - bisneto: bisneto, - bispo: bispo, - bissexto: bissexto, - bitola: bitola, - bizarro: bizarro, - blindado: blindado, - bloco: bloco, - bloquear: bloquear, - boato: boato, - bobagem: bobagem, - bocado: bocado, - bocejo: bocejo, - bochecha: bochecha, - boicotar: boicotar, - bolada: bolada, - boletim: boletim, - bolha: bolha, - bolo: bolo, - bombeiro: bombeiro, - bonde: bonde, - boneco: boneco, - bonita: bonita, - borbulha: borbulha, - borda: borda, - boreal: boreal, - borracha: borracha, - bovino: bovino, - boxeador: boxeador, - branco: branco, - brasa: brasa, - braveza: braveza, - breu: breu, - briga: briga, - brilho: brilho, - brincar: brincar, - broa: broa, - brochura: brochura, - bronzear: bronzear, - broto: broto, - bruxo: bruxo, - bucha: bucha, - budismo: budismo, - bufar: bufar, - bule: bule, - buraco: buraco, - busca: busca, - busto: busto, - buzina: buzina, - cabana: cabana, - cabelo: cabelo, - cabide: cabide, - cabo: cabo, - cabrito: cabrito, - cacau: cacau, - cacetada: cacetada, - cachorro: cachorro, - cacique: cacique, - cadastro: cadastro, - cadeado: cadeado, - cafezal: cafezal, - caiaque: caiaque, - caipira: caipira, - caixote: caixote, - cajado: cajado, - caju: caju, - calafrio: calafrio, - calcular: calcular, - caldeira: caldeira, - calibrar: calibrar, - calmante: calmante, - calota: calota, - camada: camada, - cambista: cambista, - camisa: camisa, - camomila: camomila, - campanha: campanha, - camuflar: camuflar, - canavial: canavial, - cancelar: cancelar, - caneta: caneta, - canguru: canguru, - canhoto: canhoto, - canivete: canivete, - canoa: canoa, - cansado: cansado, - cantar: cantar, - canudo: canudo, - capacho: capacho, - capela: capela, - capinar: capinar, - capotar: capotar, - capricho: capricho, - captador: captador, - capuz: capuz, - caracol: caracol, - carbono: carbono, - cardeal: cardeal, - careca: careca, - carimbar: carimbar, - carneiro: carneiro, - carpete: carpete, - carreira: carreira, - cartaz: cartaz, - carvalho: carvalho, - casaco: casaco, - casca: casca, - casebre: casebre, - castelo: castelo, - casulo: casulo, - catarata: catarata, - cativar: cativar, - caule: caule, - causador: causador, - cautelar: cautelar, - cavalo: cavalo, - caverna: caverna, - cebola: cebola, - cedilha: cedilha, - cegonha: cegonha, - celebrar: celebrar, - celular: celular, - cenoura: cenoura, - censo: censo, - centeio: centeio, - cercar: cercar, - cerrado: cerrado, - certeiro: certeiro, - cerveja: cerveja, - cetim: cetim, - cevada: cevada, - chacota: chacota, - chaleira: chaleira, - chamado: chamado, - chapada: chapada, - charme: charme, - chatice: chatice, - chave: chave, - chefe: chefe, - chegada: chegada, - cheiro: cheiro, - cheque: cheque, - chicote: chicote, - chifre: chifre, - chinelo: chinelo, - chocalho: chocalho, - chover: chover, - chumbo: chumbo, - chutar: chutar, - chuva: chuva, - cicatriz: cicatriz, - ciclone: ciclone, - cidade: cidade, - cidreira: cidreira, - ciente: ciente, - cigana: cigana, - cimento: cimento, - cinto: cinto, - cinza: cinza, - ciranda: ciranda, - circuito: circuito, - cirurgia: cirurgia, - citar: citar, - clareza: clareza, - clero: clero, - clicar: clicar, - clone: clone, - clube: clube, - coado: coado, - coagir: coagir, - cobaia: cobaia, - cobertor: cobertor, - cobrar: cobrar, - cocada: cocada, - coelho: coelho, - coentro: coentro, - coeso: coeso, - cogumelo: cogumelo, - coibir: coibir, - coifa: coifa, - coiote: coiote, - colar: colar, - coleira: coleira, - colher: colher, - colidir: colidir, - colmeia: colmeia, - colono: colono, - coluna: coluna, - comando: comando, - combinar: combinar, - comentar: comentar, - comitiva: comitiva, - comover: comover, - complexo: complexo, - comum: comum, - concha: concha, - condor: condor, - conectar: conectar, - confuso: confuso, - congelar: congelar, - conhecer: conhecer, - conjugar: conjugar, - consumir: consumir, - contrato: contrato, - convite: convite, - cooperar: cooperar, - copeiro: copeiro, - copiador: copiador, - copo: copo, - coquetel: coquetel, - coragem: coragem, - cordial: cordial, - corneta: corneta, - coronha: coronha, - corporal: corporal, - correio: correio, - cortejo: cortejo, - coruja: coruja, - corvo: corvo, - cosseno: cosseno, - costela: costela, - cotonete: cotonete, - couro: couro, - couve: couve, - covil: covil, - cozinha: cozinha, - cratera: cratera, - cravo: cravo, - creche: creche, - credor: credor, - creme: creme, - crer: crer, - crespo: crespo, - criada: criada, - criminal: criminal, - crioulo: crioulo, - crise: crise, - criticar: criticar, - crosta: crosta, - crua: crua, - cruzeiro: cruzeiro, - cubano: cubano, - cueca: cueca, - cuidado: cuidado, - cujo: cujo, - culatra: culatra, - culminar: culminar, - culpar: culpar, - cultura: cultura, - cumprir: cumprir, - cunhado: cunhado, - cupido: cupido, - curativo: curativo, - curral: curral, - cursar: cursar, - curto: curto, - cuspir: cuspir, - custear: custear, - cutelo: cutelo, - damasco: damasco, - datar: datar, - debater: debater, - debitar: debitar, - deboche: deboche, - debulhar: debulhar, - decalque: decalque, - decimal: decimal, - declive: declive, - decote: decote, - decretar: decretar, - dedal: dedal, - dedicado: dedicado, - deduzir: deduzir, - defesa: defesa, - defumar: defumar, - degelo: degelo, - degrau: degrau, - degustar: degustar, - deitado: deitado, - deixar: deixar, - delator: delator, - delegado: delegado, - delinear: delinear, - delonga: delonga, - demanda: demanda, - demitir: demitir, - demolido: demolido, - dentista: dentista, - depenado: depenado, - depilar: depilar, - depois: depois, - depressa: depressa, - depurar: depurar, - deriva: deriva, - derramar: derramar, - desafio: desafio, - desbotar: desbotar, - descanso: descanso, - desenho: desenho, - desfiado: desfiado, - desgaste: desgaste, - desigual: desigual, - deslize: deslize, - desmamar: desmamar, - desova: desova, - despesa: despesa, - destaque: destaque, - desviar: desviar, - detalhar: detalhar, - detentor: detentor, - detonar: detonar, - detrito: detrito, - deusa: deusa, - dever: dever, - devido: devido, - devotado: devotado, - dezena: dezena, - diagrama: diagrama, - dialeto: dialeto, - didata: didata, - difuso: difuso, - digitar: digitar, - dilatado: dilatado, - diluente: diluente, - diminuir: diminuir, - dinastia: dinastia, - dinheiro: dinheiro, - diocese: diocese, - direto: direto, - discreta: discreta, - disfarce: disfarce, - disparo: disparo, - disquete: disquete, - dissipar: dissipar, - distante: distante, - ditador: ditador, - diurno: diurno, - diverso: diverso, - divisor: divisor, - divulgar: divulgar, - dizer: dizer, - dobrador: dobrador, - dolorido: dolorido, - domador: domador, - dominado: dominado, - donativo: donativo, - donzela: donzela, - dormente: dormente, - dorsal: dorsal, - dosagem: dosagem, - dourado: dourado, - doutor: doutor, - drenagem: drenagem, - drible: drible, - drogaria: drogaria, - duelar: duelar, - duende: duende, - dueto: dueto, - duplo: duplo, - duquesa: duquesa, - durante: durante, - duvidoso: duvidoso, - eclodir: eclodir, - ecoar: ecoar, - ecologia: ecologia, - edificar: edificar, - edital: edital, - educado: educado, - efeito: efeito, - efetivar: efetivar, - ejetar: ejetar, - elaborar: elaborar, - eleger: eleger, - eleitor: eleitor, - elenco: elenco, - elevador: elevador, - eliminar: eliminar, - elogiar: elogiar, - embargo: embargo, - embolado: embolado, - embrulho: embrulho, - embutido: embutido, - emenda: emenda, - emergir: emergir, - emissor: emissor, - empatia: empatia, - empenho: empenho, - empinado: empinado, - empolgar: empolgar, - emprego: emprego, - empurrar: empurrar, - emulador: emulador, - encaixe: encaixe, - encenado: encenado, - enchente: enchente, - encontro: encontro, - endeusar: endeusar, - endossar: endossar, - enfaixar: enfaixar, - enfeite: enfeite, - enfim: enfim, - engajado: engajado, - engenho: engenho, - englobar: englobar, - engomado: engomado, - engraxar: engraxar, - enguia: enguia, - enjoar: enjoar, - enlatar: enlatar, - enquanto: enquanto, - enraizar: enraizar, - enrolado: enrolado, - enrugar: enrugar, - ensaio: ensaio, - enseada: enseada, - ensino: ensino, - ensopado: ensopado, - entanto: entanto, - enteado: enteado, - entidade: entidade, - entortar: entortar, - entrada: entrada, - entulho: entulho, - envergar: envergar, - enviado: enviado, - envolver: envolver, - enxame: enxame, - enxerto: enxerto, - enxofre: enxofre, - enxuto: enxuto, - epiderme: epiderme, - equipar: equipar, - ereto: ereto, - erguido: erguido, - errata: errata, - erva: erva, - ervilha: ervilha, - esbanjar: esbanjar, - esbelto: esbelto, - escama: escama, - escola: escola, - escrita: escrita, - escuta: escuta, - esfinge: esfinge, - esfolar: esfolar, - esfregar: esfregar, - esfumado: esfumado, - esgrima: esgrima, - esmalte: esmalte, - espanto: espanto, - espelho: espelho, - espiga: espiga, - esponja: esponja, - espreita: espreita, - espumar: espumar, - esquerda: esquerda, - estaca: estaca, - esteira: esteira, - esticar: esticar, - estofado: estofado, - estrela: estrela, - estudo: estudo, - esvaziar: esvaziar, - etanol: etanol, - etiqueta: etiqueta, - euforia: euforia, - europeu: europeu, - evacuar: evacuar, - evaporar: evaporar, - evasivo: evasivo, - eventual: eventual, - evidente: evidente, - evoluir: evoluir, - exagero: exagero, - exalar: exalar, - examinar: examinar, - exato: exato, - exausto: exausto, - excesso: excesso, - excitar: excitar, - exclamar: exclamar, - executar: executar, - exemplo: exemplo, - exibir: exibir, - exigente: exigente, - exonerar: exonerar, - expandir: expandir, - expelir: expelir, - expirar: expirar, - explanar: explanar, - exposto: exposto, - expresso: expresso, - expulsar: expulsar, - externo: externo, - extinto: extinto, - extrato: extrato, - fabricar: fabricar, - fabuloso: fabuloso, - faceta: faceta, - facial: facial, - fada: fada, - fadiga: fadiga, - faixa: faixa, - falar: falar, - falta: falta, - familiar: familiar, - fandango: fandango, - fanfarra: fanfarra, - fantoche: fantoche, - fardado: fardado, - farelo: farelo, - farinha: farinha, - farofa: farofa, - farpa: farpa, - fartura: fartura, - fatia: fatia, - fator: fator, - favorita: favorita, - faxina: faxina, - fazenda: fazenda, - fechado: fechado, - feijoada: feijoada, - feirante: feirante, - felino: felino, - feminino: feminino, - fenda: fenda, - feno: feno, - fera: fera, - feriado: feriado, - ferrugem: ferrugem, - ferver: ferver, - festejar: festejar, - fetal: fetal, - feudal: feudal, - fiapo: fiapo, - fibrose: fibrose, - ficar: ficar, - ficheiro: ficheiro, - figurado: figurado, - fileira: fileira, - filho: filho, - filme: filme, - filtrar: filtrar, - firmeza: firmeza, - fisgada: fisgada, - fissura: fissura, - fita: fita, - fivela: fivela, - fixador: fixador, - fixo: fixo, - flacidez: flacidez, - flamingo: flamingo, - flanela: flanela, - flechada: flechada, - flora: flora, - flutuar: flutuar, - fluxo: fluxo, - focal: focal, - focinho: focinho, - fofocar: fofocar, - fogo: fogo, - foguete: foguete, - foice: foice, - folgado: folgado, - folheto: folheto, - forjar: forjar, - formiga: formiga, - forno: forno, - forte: forte, - fosco: fosco, - fossa: fossa, - fragata: fragata, - fralda: fralda, - frango: frango, - frasco: frasco, - fraterno: fraterno, - freira: freira, - frente: frente, - fretar: fretar, - frieza: frieza, - friso: friso, - fritura: fritura, - fronha: fronha, - frustrar: frustrar, - fruteira: fruteira, - fugir: fugir, - fulano: fulano, - fuligem: fuligem, - fundar: fundar, - fungo: fungo, - funil: funil, - furador: furador, - furioso: furioso, - futebol: futebol, - gabarito: gabarito, - gabinete: gabinete, - gado: gado, - gaiato: gaiato, - gaiola: gaiola, - gaivota: gaivota, - galega: galega, - galho: galho, - galinha: galinha, - galocha: galocha, - ganhar: ganhar, - garagem: garagem, - garfo: garfo, - gargalo: gargalo, - garimpo: garimpo, - garoupa: garoupa, - garrafa: garrafa, - gasoduto: gasoduto, - gasto: gasto, - gata: gata, - gatilho: gatilho, - gaveta: gaveta, - gazela: gazela, - gelado: gelado, - geleia: geleia, - gelo: gelo, - gemada: gemada, - gemer: gemer, - gemido: gemido, - generoso: generoso, - gengiva: gengiva, - genial: genial, - genoma: genoma, - genro: genro, - geologia: geologia, - gerador: gerador, - germinar: germinar, - gesso: gesso, - gestor: gestor, - ginasta: ginasta, - gincana: gincana, - gingado: gingado, - girafa: girafa, - girino: girino, - glacial: glacial, - glicose: glicose, - global: global$1, - glorioso: glorioso, - goela: goela, - goiaba: goiaba, - golfe: golfe, - golpear: golpear, - gordura: gordura, - gorjeta: gorjeta, - gorro: gorro, - gostoso: gostoso, - goteira: goteira, - governar: governar, - gracejo: gracejo, - gradual: gradual, - grafite: grafite, - gralha: gralha, - grampo: grampo, - granada: granada, - gratuito: gratuito, - graveto: graveto, - graxa: graxa, - grego: grego, - grelhar: grelhar, - greve: greve, - grilo: grilo, - grisalho: grisalho, - gritaria: gritaria, - grosso: grosso, - grotesco: grotesco, - grudado: grudado, - grunhido: grunhido, - gruta: gruta, - guache: guache, - guarani: guarani, - guaxinim: guaxinim, - guerrear: guerrear, - guiar: guiar, - guincho: guincho, - guisado: guisado, - gula: gula, - guloso: guloso, - guru: guru, - habitar: habitar, - harmonia: harmonia, - haste: haste, - haver: haver, - hectare: hectare, - herdar: herdar, - heresia: heresia, - hesitar: hesitar, - hiato: hiato, - hibernar: hibernar, - hidratar: hidratar, - hiena: hiena, - hino: hino, - hipismo: hipismo, - hipnose: hipnose, - hipoteca: hipoteca, - hoje: hoje, - holofote: holofote, - homem: homem, - honesto: honesto, - honrado: honrado, - hormonal: hormonal, - hospedar: hospedar, - humorado: humorado, - iate: iate, - ideia: ideia, - idoso: idoso, - ignorado: ignorado, - igreja: igreja, - iguana: iguana, - ileso: ileso, - ilha: ilha, - iludido: iludido, - iluminar: iluminar, - ilustrar: ilustrar, - imagem: imagem, - imediato: imediato, - imenso: imenso, - imersivo: imersivo, - iminente: iminente, - imitador: imitador, - imortal: imortal, - impacto: impacto, - impedir: impedir, - implante: implante, - impor: impor, - imprensa: imprensa, - impune: impune, - imunizar: imunizar, - inalador: inalador, - inapto: inapto, - inativo: inativo, - incenso: incenso, - inchar: inchar, - incidir: incidir, - incluir: incluir, - incolor: incolor, - indeciso: indeciso, - indireto: indireto, - indutor: indutor, - ineficaz: ineficaz, - inerente: inerente, - infantil: infantil, - infestar: infestar, - infinito: infinito, - inflamar: inflamar, - informal: informal, - infrator: infrator, - ingerir: ingerir, - inibido: inibido, - inicial: inicial, - inimigo: inimigo, - injetar: injetar, - inocente: inocente, - inodoro: inodoro, - inovador: inovador, - inox: inox, - inquieto: inquieto, - inscrito: inscrito, - inseto: inseto, - insistir: insistir, - inspetor: inspetor, - instalar: instalar, - insulto: insulto, - intacto: intacto, - integral: integral, - intimar: intimar, - intocado: intocado, - intriga: intriga, - invasor: invasor, - inverno: inverno, - invicto: invicto, - invocar: invocar, - iogurte: iogurte, - iraniano: iraniano, - ironizar: ironizar, - irreal: irreal, - irritado: irritado, - isca: isca, - isento: isento, - isolado: isolado, - isqueiro: isqueiro, - italiano: italiano, - janeiro: janeiro, - jangada: jangada, - janta: janta, - jararaca: jararaca, - jardim: jardim, - jarro: jarro, - jasmim: jasmim, - jato: jato, - javali: javali, - jazida: jazida, - jejum: jejum, - joaninha: joaninha, - joelhada: joelhada, - jogador: jogador, - joia: joia, - jornal: jornal, - jorrar: jorrar, - jovem: jovem, - juba: juba, - judeu: judeu, - judoca: judoca, - juiz: juiz, - julgador: julgador, - julho: julho, - jurado: jurado, - jurista: jurista, - juro: juro, - justa: justa, - labareda: labareda, - laboral: laboral, - lacre: lacre, - lactante: lactante, - ladrilho: ladrilho, - lagarta: lagarta, - lagoa: lagoa, - laje: laje, - lamber: lamber, - lamentar: lamentar, - laminar: laminar, - lampejo: lampejo, - lanche: lanche, - lapidar: lapidar, - lapso: lapso, - laranja: laranja, - lareira: lareira, - largura: largura, - lasanha: lasanha, - lastro: lastro, - lateral: lateral, - latido: latido, - lavanda: lavanda, - lavoura: lavoura, - lavrador: lavrador, - laxante: laxante, - lazer: lazer, - lealdade: lealdade, - lebre: lebre, - legado: legado, - legendar: legendar, - legista: legista, - leigo: leigo, - leiloar: leiloar, - leitura: leitura, - lembrete: lembrete, - leme: leme, - lenhador: lenhador, - lentilha: lentilha, - leoa: leoa, - lesma: lesma, - leste: leste, - letivo: letivo, - letreiro: letreiro, - levar: levar, - leveza: leveza, - levitar: levitar, - liberal: liberal, - libido: libido, - liderar: liderar, - ligar: ligar, - ligeiro: ligeiro, - limitar: limitar, - limoeiro: limoeiro, - limpador: limpador, - linda: linda, - linear: linear, - linhagem: linhagem, - liquidez: liquidez, - listagem: listagem, - lisura: lisura, - litoral: litoral, - livro: livro, - lixa: lixa, - lixeira: lixeira, - locador: locador, - locutor: locutor, - lojista: lojista, - lombo: lombo, - lona: lona, - longe: longe, - lontra: lontra, - lorde: lorde, - lotado: lotado, - loteria: loteria, - loucura: loucura, - lousa: lousa, - louvar: louvar, - luar: luar, - lucidez: lucidez, - lucro: lucro, - luneta: luneta, - lustre: lustre, - lutador: lutador, - luva: luva, - macaco: macaco, - macete: macete, - machado: machado, - macio: macio, - madeira: madeira, - madrinha: madrinha, - magnata: magnata, - magreza: magreza, - maior: maior, - mais: mais, - malandro: malandro, - malha: malha, - malote: malote, - maluco: maluco, - mamilo: mamilo, - mamoeiro: mamoeiro, - mamute: mamute, - manada: manada, - mancha: mancha, - mandato: mandato, - manequim: manequim, - manhoso: manhoso, - manivela: manivela, - manobrar: manobrar, - mansa: mansa, - manter: manter, - manusear: manusear, - mapeado: mapeado, - maquinar: maquinar, - marcador: marcador, - maresia: maresia, - marfim: marfim, - margem: margem, - marinho: marinho, - marmita: marmita, - maroto: maroto, - marquise: marquise, - marreco: marreco, - martelo: martelo, - marujo: marujo, - mascote: mascote, - masmorra: masmorra, - massagem: massagem, - mastigar: mastigar, - matagal: matagal, - materno: materno, - matinal: matinal, - matutar: matutar, - maxilar: maxilar, - medalha: medalha, - medida: medida, - medusa: medusa, - megafone: megafone, - meiga: meiga, - melancia: melancia, - melhor: melhor, - membro: membro, - memorial: memorial, - menino: menino, - menos: menos, - mensagem: mensagem, - mental: mental, - merecer: merecer, - mergulho: mergulho, - mesada: mesada, - mesclar: mesclar, - mesmo: mesmo, - mesquita: mesquita, - mestre: mestre, - metade: metade, - meteoro: meteoro, - metragem: metragem, - mexer: mexer, - mexicano: mexicano, - micro: micro, - migalha: migalha, - migrar: migrar, - milagre: milagre, - milenar: milenar, - milhar: milhar, - mimado: mimado, - minerar: minerar, - minhoca: minhoca, - ministro: ministro, - minoria: minoria, - miolo: miolo, - mirante: mirante, - mirtilo: mirtilo, - misturar: misturar, - mocidade: mocidade, - moderno: moderno, - modular: modular$1, - moeda: moeda, - moer: moer, - moinho: moinho, - moita: moita, - moldura: moldura, - moleza: moleza, - molho: molho, - molinete: molinete, - molusco: molusco, - montanha: montanha, - moqueca: moqueca, - morango: morango, - morcego: morcego, - mordomo: mordomo, - morena: morena, - mosaico: mosaico, - mosquete: mosquete, - mostarda: mostarda, - motel: motel, - motim: motim, - moto: moto, - motriz: motriz, - muda: muda, - muito: muito, - mulata: mulata, - mulher: mulher, - multar: multar, - mundial: mundial, - munido: munido, - muralha: muralha, - murcho: murcho, - muscular: muscular, - museu: museu, - musical: musical, - nacional: nacional, - nadador: nadador, - naja: naja, - namoro: namoro, - narina: narina, - narrado: narrado, - nascer: nascer, - nativa: nativa, - natureza: natureza, - navalha: navalha, - navegar: navegar, - navio: navio, - neblina: neblina, - nebuloso: nebuloso, - negativa: negativa, - negociar: negociar, - negrito: negrito, - nervoso: nervoso, - neta: neta, - neural: neural, - nevasca: nevasca, - nevoeiro: nevoeiro, - ninar: ninar, - ninho: ninho, - nitidez: nitidez, - nivelar: nivelar, - nobreza: nobreza, - noite: noite, - noiva: noiva, - nomear: nomear, - nominal: nominal, - nordeste: nordeste, - nortear: nortear, - notar: notar, - noticiar: noticiar, - noturno: noturno, - novelo: novelo, - novilho: novilho, - novo: novo, - nublado: nublado, - nudez: nudez, - numeral: numeral, - nupcial: nupcial, - nutrir: nutrir, - nuvem: nuvem, - obcecado: obcecado, - obedecer: obedecer, - objetivo: objetivo, - obrigado: obrigado, - obscuro: obscuro, - obstetra: obstetra, - obter: obter, - obturar: obturar, - ocidente: ocidente, - ocioso: ocioso, - ocorrer: ocorrer, - oculista: oculista, - ocupado: ocupado, - ofegante: ofegante, - ofensiva: ofensiva, - oferenda: oferenda, - oficina: oficina, - ofuscado: ofuscado, - ogiva: ogiva, - olaria: olaria, - oleoso: oleoso, - olhar: olhar, - oliveira: oliveira, - ombro: ombro, - omelete: omelete, - omisso: omisso, - omitir: omitir, - ondulado: ondulado, - oneroso: oneroso, - ontem: ontem, - opcional: opcional, - operador: operador, - oponente: oponente, - oportuno: oportuno, - oposto: oposto, - orar: orar, - orbitar: orbitar, - ordem: ordem, - ordinal: ordinal, - orfanato: orfanato, - orgasmo: orgasmo, - orgulho: orgulho, - oriental: oriental, - origem: origem, - oriundo: oriundo, - orla: orla, - ortodoxo: ortodoxo, - orvalho: orvalho, - oscilar: oscilar, - ossada: ossada, - osso: osso, - ostentar: ostentar, - otimismo: otimismo, - ousadia: ousadia, - outono: outono, - outubro: outubro, - ouvido: ouvido, - ovelha: ovelha, - ovular: ovular, - oxidar: oxidar, - oxigenar: oxigenar, - pacato: pacato, - paciente: paciente, - pacote: pacote, - pactuar: pactuar, - padaria: padaria, - padrinho: padrinho, - pagar: pagar, - pagode: pagode, - painel: painel, - pairar: pairar, - paisagem: paisagem, - palavra: palavra, - palestra: palestra, - palheta: palheta, - palito: palito, - palmada: palmada, - palpitar: palpitar, - pancada: pancada, - panela: panela, - panfleto: panfleto, - panqueca: panqueca, - pantanal: pantanal, - papagaio: papagaio, - papelada: papelada, - papiro: papiro, - parafina: parafina, - parcial: parcial, - pardal: pardal, - parede: parede, - partida: partida, - pasmo: pasmo, - passado: passado, - pastel: pastel, - patamar: patamar, - patente: patente, - patinar: patinar, - patrono: patrono, - paulada: paulada, - pausar: pausar, - peculiar: peculiar, - pedalar: pedalar, - pedestre: pedestre, - pediatra: pediatra, - pedra: pedra, - pegada: pegada, - peitoral: peitoral, - peixe: peixe, - pele: pele, - pelicano: pelicano, - penca: penca, - pendurar: pendurar, - peneira: peneira, - penhasco: penhasco, - pensador: pensador, - pente: pente, - perceber: perceber, - perfeito: perfeito, - pergunta: pergunta, - perito: perito, - permitir: permitir, - perna: perna, - perplexo: perplexo, - persiana: persiana, - pertence: pertence, - peruca: peruca, - pescado: pescado, - pesquisa: pesquisa, - pessoa: pessoa, - petiscar: petiscar, - piada: piada, - picado: picado, - piedade: piedade, - pigmento: pigmento, - pilastra: pilastra, - pilhado: pilhado, - pilotar: pilotar, - pimenta: pimenta, - pincel: pincel, - pinguim: pinguim, - pinha: pinha, - pinote: pinote, - pintar: pintar, - pioneiro: pioneiro, - pipoca: pipoca, - piquete: piquete, - piranha: piranha, - pires: pires, - pirueta: pirueta, - piscar: piscar, - pistola: pistola, - pitanga: pitanga, - pivete: pivete, - planta: planta, - plaqueta: plaqueta, - platina: platina, - plebeu: plebeu, - plumagem: plumagem, - pluvial: pluvial, - pneu: pneu, - poda: poda, - poeira: poeira, - poetisa: poetisa, - polegada: polegada, - policiar: policiar, - poluente: poluente, - polvilho: polvilho, - pomar: pomar, - pomba: pomba, - ponderar: ponderar, - pontaria: pontaria, - populoso: populoso, - porta: porta, - possuir: possuir, - postal: postal, - pote: pote, - poupar: poupar, - pouso: pouso, - povoar: povoar, - praia: praia, - prancha: prancha, - prato: prato, - praxe: praxe, - prece: prece, - predador: predador, - prefeito: prefeito, - premiar: premiar, - prensar: prensar, - preparar: preparar, - presilha: presilha, - pretexto: pretexto, - prevenir: prevenir, - prezar: prezar, - primata: primata, - princesa: princesa, - prisma: prisma, - privado: privado, - processo: processo, - produto: produto, - profeta: profeta, - proibido: proibido, - projeto: projeto, - prometer: prometer, - propagar: propagar, - prosa: prosa, - protetor: protetor, - provador: provador, - publicar: publicar, - pudim: pudim, - pular: pular, - pulmonar: pulmonar, - pulseira: pulseira, - punhal: punhal, - punir: punir, - pupilo: pupilo, - pureza: pureza, - puxador: puxador, - quadra: quadra, - quantia: quantia, - quarto: quarto, - quase: quase, - quebrar: quebrar, - queda: queda, - queijo: queijo, - quente: quente, - querido: querido, - quimono: quimono, - quina: quina, - quiosque: quiosque, - rabanada: rabanada, - rabisco: rabisco, - rachar: rachar, - racionar: racionar, - radial: radial, - raiar: raiar, - rainha: rainha, - raio: raio, - raiva: raiva, - rajada: rajada, - ralado: ralado, - ramal: ramal, - ranger: ranger, - ranhura: ranhura, - rapadura: rapadura, - rapel: rapel, - rapidez: rapidez, - raposa: raposa, - raquete: raquete, - raridade: raridade, - rasante: rasante, - rascunho: rascunho, - rasgar: rasgar, - raspador: raspador, - rasteira: rasteira, - rasurar: rasurar, - ratazana: ratazana, - ratoeira: ratoeira, - realeza: realeza, - reanimar: reanimar, - reaver: reaver, - rebaixar: rebaixar, - rebelde: rebelde, - rebolar: rebolar, - recado: recado, - recente: recente, - recheio: recheio, - recibo: recibo, - recordar: recordar, - recrutar: recrutar, - recuar: recuar, - rede: rede, - redimir: redimir, - redonda: redonda, - reduzida: reduzida, - reenvio: reenvio, - refinar: refinar, - refletir: refletir, - refogar: refogar, - refresco: refresco, - refugiar: refugiar, - regalia: regalia, - regime: regime, - regra: regra, - reinado: reinado, - reitor: reitor, - rejeitar: rejeitar, - relativo: relativo, - remador: remador, - remendo: remendo, - remorso: remorso, - renovado: renovado, - reparo: reparo, - repelir: repelir, - repleto: repleto, - repolho: repolho, - represa: represa, - repudiar: repudiar, - requerer: requerer, - resenha: resenha, - resfriar: resfriar, - resgatar: resgatar, - residir: residir, - resolver: resolver, - respeito: respeito, - ressaca: ressaca, - restante: restante, - resumir: resumir, - retalho: retalho, - reter: reter, - retirar: retirar, - retomada: retomada, - retratar: retratar, - revelar: revelar, - revisor: revisor, - revolta: revolta, - riacho: riacho, - rica: rica, - rigidez: rigidez, - rigoroso: rigoroso, - rimar: rimar, - ringue: ringue, - risada: risada, - risco: risco, - risonho: risonho, - robalo: robalo, - rochedo: rochedo, - rodada: rodada, - rodeio: rodeio, - rodovia: rodovia, - roedor: roedor, - roleta: roleta, - romano: romano, - roncar: roncar, - rosado: rosado, - roseira: roseira, - rosto: rosto, - rota: rota, - roteiro: roteiro, - rotina: rotina, - rotular: rotular, - rouco: rouco, - roupa: roupa, - roxo: roxo, - rubro: rubro, - rugido: rugido, - rugoso: rugoso, - ruivo: ruivo, - rumo: rumo, - rupestre: rupestre, - russo: russo, - sabor: sabor, - saciar: saciar, - sacola: sacola, - sacudir: sacudir, - sadio: sadio, - safira: safira, - saga: saga, - sagrada: sagrada, - saibro: saibro, - salada: salada, - saleiro: saleiro, - salgado: salgado, - saliva: saliva, - salpicar: salpicar, - salsicha: salsicha, - saltar: saltar, - salvador: salvador, - sambar: sambar, - samurai: samurai, - sanar: sanar, - sanfona: sanfona, - sangue: sangue, - sanidade: sanidade, - sapato: sapato, - sarda: sarda, - sargento: sargento, - sarjeta: sarjeta, - saturar: saturar, - saudade: saudade, - saxofone: saxofone, - sazonal: sazonal, - secar: secar, - secular: secular, - seda: seda, - sedento: sedento, - sediado: sediado, - sedoso: sedoso, - sedutor: sedutor, - segmento: segmento, - segredo: segredo, - segundo: segundo, - seiva: seiva, - seleto: seleto, - selvagem: selvagem, - semanal: semanal, - semente: semente, - senador: senador, - senhor: senhor, - sensual: sensual, - sentado: sentado, - separado: separado, - sereia: sereia, - seringa: seringa, - serra: serra, - servo: servo, - setembro: setembro, - setor: setor, - sigilo: sigilo, - silhueta: silhueta, - silicone: silicone, - simetria: simetria, - simpatia: simpatia, - simular: simular, - sinal: sinal, - sincero: sincero, - singular: singular, - sinopse: sinopse, - sintonia: sintonia, - sirene: sirene, - siri: siri, - situado: situado, - soberano: soberano, - sobra: sobra, - socorro: socorro, - sogro: sogro, - soja: soja, - solda: solda, - soletrar: soletrar, - solteiro: solteiro, - sombrio: sombrio, - sonata: sonata, - sondar: sondar, - sonegar: sonegar, - sonhador: sonhador, - sono: sono, - soprano: soprano, - soquete: soquete, - sorrir: sorrir, - sorteio: sorteio, - sossego: sossego, - sotaque: sotaque, - soterrar: soterrar, - sovado: sovado, - sozinho: sozinho, - suavizar: suavizar, - subida: subida, - submerso: submerso, - subsolo: subsolo, - subtrair: subtrair, - sucata: sucata, - sucesso: sucesso, - suco: suco, - sudeste: sudeste, - sufixo: sufixo, - sugador: sugador, - sugerir: sugerir, - sujeito: sujeito, - sulfato: sulfato, - sumir: sumir, - suor: suor, - superior: superior, - suplicar: suplicar, - suposto: suposto, - suprimir: suprimir, - surdina: surdina, - surfista: surfista, - surpresa: surpresa, - surreal: surreal, - surtir: surtir, - suspiro: suspiro, - sustento: sustento, - tabela: tabela, - tablete: tablete, - tabuada: tabuada, - tacho: tacho, - tagarela: tagarela, - talher: talher, - talo: talo, - talvez: talvez, - tamanho: tamanho, - tamborim: tamborim, - tampa: tampa, - tangente: tangente, - tanto: tanto, - tapar: tapar, - tapioca: tapioca, - tardio: tardio, - tarefa: tarefa, - tarja: tarja, - tarraxa: tarraxa, - tatuagem: tatuagem, - taurino: taurino, - taxativo: taxativo, - taxista: taxista, - teatral: teatral, - tecer: tecer, - tecido: tecido, - teclado: teclado, - tedioso: tedioso, - teia: teia, - teimar: teimar, - telefone: telefone, - telhado: telhado, - tempero: tempero, - tenente: tenente, - tensor: tensor, - tentar: tentar, - termal: termal, - terno: terno, - terreno: terreno, - tese: tese, - tesoura: tesoura, - testado: testado, - teto: teto, - textura: textura, - texugo: texugo, - tiara: tiara, - tigela: tigela, - tijolo: tijolo, - timbrar: timbrar, - timidez: timidez, - tingido: tingido, - tinteiro: tinteiro, - tiragem: tiragem, - titular: titular, - toalha: toalha, - tocha: tocha, - tolerar: tolerar, - tolice: tolice, - tomada: tomada, - tomilho: tomilho, - tonel: tonel, - tontura: tontura, - topete: topete, - tora: tora, - torcido: torcido, - torneio: torneio, - torque: torque, - torrada: torrada, - torto: torto, - tostar: tostar, - touca: touca, - toupeira: toupeira, - toxina: toxina, - trabalho: trabalho, - tracejar: tracejar, - tradutor: tradutor, - trafegar: trafegar, - trajeto: trajeto, - trama: trama, - trancar: trancar, - trapo: trapo, - traseiro: traseiro, - tratador: tratador, - travar: travar, - treino: treino, - tremer: tremer, - trepidar: trepidar, - trevo: trevo, - triagem: triagem, - tribo: tribo, - triciclo: triciclo, - tridente: tridente, - trilogia: trilogia, - trindade: trindade, - triplo: triplo, - triturar: triturar, - triunfal: triunfal, - trocar: trocar, - trombeta: trombeta, - trova: trova, - trunfo: trunfo, - truque: truque, - tubular: tubular, - tucano: tucano, - tudo: tudo, - tulipa: tulipa, - tupi: tupi, - turbo: turbo, - turma: turma, - turquesa: turquesa, - tutelar: tutelar, - tutorial: tutorial, - uivar: uivar, - umbigo: umbigo, - unha: unha, - unidade: unidade, - uniforme: uniforme, - urologia: urologia, - urso: urso, - urtiga: urtiga, - urubu: urubu, - usado: usado, - usina: usina, - usufruir: usufruir, - vacina: vacina, - vadiar: vadiar, - vagaroso: vagaroso, - vaidoso: vaidoso, - vala: vala, - valente: valente, - validade: validade, - valores: valores, - vantagem: vantagem, - vaqueiro: vaqueiro, - varanda: varanda, - vareta: vareta, - varrer: varrer, - vascular: vascular, - vasilha: vasilha, - vassoura: vassoura, - vazar: vazar, - vazio: vazio, - veado: veado, - vedar: vedar, - vegetar: vegetar, - veicular: veicular, - veleiro: veleiro, - velhice: velhice, - veludo: veludo, - vencedor: vencedor, - vendaval: vendaval, - venerar: venerar, - ventre: ventre, - verbal: verbal, - verdade: verdade, - vereador: vereador, - vergonha: vergonha, - vermelho: vermelho, - verniz: verniz, - versar: versar, - vertente: vertente, - vespa: vespa, - vestido: vestido, - vetorial: vetorial, - viaduto: viaduto, - viagem: viagem, - viajar: viajar, - viatura: viatura, - vibrador: vibrador, - videira: videira, - vidraria: vidraria, - viela: viela, - viga: viga, - vigente: vigente, - vigiar: vigiar, - vigorar: vigorar, - vilarejo: vilarejo, - vinco: vinco, - vinheta: vinheta, - vinil: vinil, - violeta: violeta, - virada: virada, - virtude: virtude, - visitar: visitar, - visto: visto, - vitral: vitral, - viveiro: viveiro, - vizinho: vizinho, - voador: voador, - voar: voar, - vogal: vogal, - volante: volante, - voleibol: voleibol, - voltagem: voltagem, - volumoso: volumoso, - vontade: vontade, - vulto: vulto, - vuvuzela: vuvuzela, - xadrez: xadrez, - xarope: xarope, - xeque: xeque, - xeretar: xeretar, - xerife: xerife, - xingar: xingar, - zangado: zangado, - zarpar: zarpar, - zebu: zebu, - zelador: zelador, - zombar: zombar, - zoologia: zoologia, - zumbido: zumbido, - "абзац": [ - "russian" - ], - "абонент": [ - "russian" - ], - "абсурд": [ - "russian" - ], - "авангард": [ - "russian" - ], - "авария": [ - "russian" - ], - "август": [ - "russian" - ], - "авиация": [ - "russian" - ], - "автор": [ - "russian" - ], - "агент": [ - "russian" - ], - "агитация": [ - "russian" - ], - "агрегат": [ - "russian" - ], - "адвокат": [ - "russian" - ], - "адмирал": [ - "russian" - ], - "адрес": [ - "russian" - ], - "азарт": [ - "russian" - ], - "азот": [ - "russian" - ], - "академия": [ - "russian" - ], - "аквариум": [ - "russian" - ], - "аксиома": [ - "russian" - ], - "акула": [ - "russian" - ], - "акцент": [ - "russian" - ], - "акция": [ - "russian" - ], - "аллея": [ - "russian" - ], - "алмаз": [ - "russian" - ], - "алтарь": [ - "russian" - ], - "альбом": [ - "russian" - ], - "альянс": [ - "russian" - ], - "амбиция": [ - "russian" - ], - "анализ": [ - "russian" - ], - "анекдот": [ - "russian" - ], - "анкета": [ - "russian" - ], - "ансамбль": [ - "russian" - ], - "антенна": [ - "russian" - ], - "апельсин": [ - "russian" - ], - "аппарат": [ - "russian" - ], - "аппетит": [ - "russian" - ], - "апрель": [ - "russian" - ], - "аптека": [ - "russian" - ], - "арбуз": [ - "russian" - ], - "аргумент": [ - "russian" - ], - "аренда": [ - "russian" - ], - "арест": [ - "russian" - ], - "армия": [ - "russian" - ], - "аромат": [ - "russian" - ], - "арсенал": [ - "russian" - ], - "артерия": [ - "russian" - ], - "артист": [ - "russian" - ], - "архив": [ - "russian" - ], - "аспирант": [ - "russian" - ], - "асфальт": [ - "russian" - ], - "атака": [ - "russian" - ], - "атомный": [ - "russian" - ], - "атрибут": [ - "russian" - ], - "аукцион": [ - "russian" - ], - "афиша": [ - "russian" - ], - "аэропорт": [ - "russian" - ], - "бабочка": [ - "russian" - ], - "бабушка": [ - "russian" - ], - "багаж": [ - "russian" - ], - "база": [ - "russian" - ], - "бактерия": [ - "russian" - ], - "баланс": [ - "russian" - ], - "балерина": [ - "russian" - ], - "балкон": [ - "russian" - ], - "бандит": [ - "russian" - ], - "банк": [ - "russian" - ], - "барабан": [ - "russian" - ], - "барон": [ - "russian" - ], - "барышня": [ - "russian" - ], - "барьер": [ - "russian" - ], - "бассейн": [ - "russian" - ], - "батарея": [ - "russian" - ], - "башмак": [ - "russian" - ], - "башня": [ - "russian" - ], - "бедный": [ - "russian" - ], - "беженец": [ - "russian" - ], - "бездна": [ - "russian" - ], - "белка": [ - "russian" - ], - "белый": [ - "russian" - ], - "бензин": [ - "russian" - ], - "берег": [ - "russian" - ], - "беседа": [ - "russian" - ], - "бешеный": [ - "russian" - ], - "билет": [ - "russian" - ], - "бинокль": [ - "russian" - ], - "биржа": [ - "russian" - ], - "битва": [ - "russian" - ], - "благо": [ - "russian" - ], - "блеск": [ - "russian" - ], - "близкий": [ - "russian" - ], - "блин": [ - "russian" - ], - "блок": [ - "russian" - ], - "блюдо": [ - "russian" - ], - "богатый": [ - "russian" - ], - "бодрый": [ - "russian" - ], - "боец": [ - "russian" - ], - "бокал": [ - "russian" - ], - "боковой": [ - "russian" - ], - "бокс": [ - "russian" - ], - "более": [ - "russian" - ], - "болото": [ - "russian" - ], - "болтать": [ - "russian" - ], - "большой": [ - "russian" - ], - "бомба": [ - "russian" - ], - "борт": [ - "russian" - ], - "борьба": [ - "russian" - ], - "босой": [ - "russian" - ], - "ботинок": [ - "russian" - ], - "бояться": [ - "russian" - ], - "брак": [ - "russian" - ], - "брать": [ - "russian" - ], - "бревно": [ - "russian" - ], - "бред": [ - "russian" - ], - "бригада": [ - "russian" - ], - "бродяга": [ - "russian" - ], - "броня": [ - "russian" - ], - "бросить": [ - "russian" - ], - "брызги": [ - "russian" - ], - "брюки": [ - "russian" - ], - "брюхо": [ - "russian" - ], - "бугор": [ - "russian" - ], - "будка": [ - "russian" - ], - "будни": [ - "russian" - ], - "будущее": [ - "russian" - ], - "буква": [ - "russian" - ], - "букет": [ - "russian" - ], - "бульвар": [ - "russian" - ], - "бумага": [ - "russian" - ], - "бунт": [ - "russian" - ], - "бурный": [ - "russian" - ], - "буря": [ - "russian" - ], - "бутылка": [ - "russian" - ], - "бухта": [ - "russian" - ], - "бывший": [ - "russian" - ], - "быстро": [ - "russian" - ], - "бытовой": [ - "russian" - ], - "быть": [ - "russian" - ], - "бюджет": [ - "russian" - ], - "бюро": [ - "russian" - ], - "бюст": [ - "russian" - ], - "вагон": [ - "russian" - ], - "важный": [ - "russian" - ], - "вакцина": [ - "russian" - ], - "валенок": [ - "russian" - ], - "вальс": [ - "russian" - ], - "валюта": [ - "russian" - ], - "ванная": [ - "russian" - ], - "варенье": [ - "russian" - ], - "вариант": [ - "russian" - ], - "вблизи": [ - "russian" - ], - "вверх": [ - "russian" - ], - "вводить": [ - "russian" - ], - "вдали": [ - "russian" - ], - "вдвое": [ - "russian" - ], - "вдова": [ - "russian" - ], - "вдоль": [ - "russian" - ], - "вдруг": [ - "russian" - ], - "ведро": [ - "russian" - ], - "ведущий": [ - "russian" - ], - "ведьма": [ - "russian" - ], - "вежливо": [ - "russian" - ], - "везде": [ - "russian" - ], - "веко": [ - "russian" - ], - "вексель": [ - "russian" - ], - "велеть": [ - "russian" - ], - "великий": [ - "russian" - ], - "венец": [ - "russian" - ], - "веник": [ - "russian" - ], - "веранда": [ - "russian" - ], - "верблюд": [ - "russian" - ], - "верить": [ - "russian" - ], - "верный": [ - "russian" - ], - "версия": [ - "russian" - ], - "вертеть": [ - "russian" - ], - "верхний": [ - "russian" - ], - "вершина": [ - "russian" - ], - "весело": [ - "russian" - ], - "весна": [ - "russian" - ], - "весомый": [ - "russian" - ], - "вести": [ - "russian" - ], - "весь": [ - "russian" - ], - "ветеран": [ - "russian" - ], - "ветхий": [ - "russian" - ], - "вечер": [ - "russian" - ], - "вечно": [ - "russian" - ], - "вешалка": [ - "russian" - ], - "вещество": [ - "russian" - ], - "взамен": [ - "russian" - ], - "взгляд": [ - "russian" - ], - "вздох": [ - "russian" - ], - "взнос": [ - "russian" - ], - "взойти": [ - "russian" - ], - "взор": [ - "russian" - ], - "взрыв": [ - "russian" - ], - "взять": [ - "russian" - ], - "видеть": [ - "russian" - ], - "видимо": [ - "russian" - ], - "визг": [ - "russian" - ], - "визит": [ - "russian" - ], - "вилка": [ - "russian" - ], - "вина": [ - "russian" - ], - "вирус": [ - "russian" - ], - "висок": [ - "russian" - ], - "витамин": [ - "russian" - ], - "витрина": [ - "russian" - ], - "вихрь": [ - "russian" - ], - "вишня": [ - "russian" - ], - "вкус": [ - "russian" - ], - "влага": [ - "russian" - ], - "владелец": [ - "russian" - ], - "власть": [ - "russian" - ], - "влево": [ - "russian" - ], - "влияние": [ - "russian" - ], - "вложить": [ - "russian" - ], - "вместе": [ - "russian" - ], - "внешний": [ - "russian" - ], - "вникать": [ - "russian" - ], - "внимание": [ - "russian" - ], - "вновь": [ - "russian" - ], - "внук": [ - "russian" - ], - "внутри": [ - "russian" - ], - "внучка": [ - "russian" - ], - "внушать": [ - "russian" - ], - "вовлечь": [ - "russian" - ], - "вовремя": [ - "russian" - ], - "вовсю": [ - "russian" - ], - "вода": [ - "russian" - ], - "водород": [ - "russian" - ], - "водяной": [ - "russian" - ], - "воевать": [ - "russian" - ], - "возврат": [ - "russian" - ], - "возглас": [ - "russian" - ], - "воздух": [ - "russian" - ], - "возить": [ - "russian" - ], - "возле": [ - "russian" - ], - "возня": [ - "russian" - ], - "возраст": [ - "russian" - ], - "война": [ - "russian" - ], - "войско": [ - "russian" - ], - "вокзал": [ - "russian" - ], - "волос": [ - "russian" - ], - "волчий": [ - "russian" - ], - "вольный": [ - "russian" - ], - "воля": [ - "russian" - ], - "вообще": [ - "russian" - ], - "вопль": [ - "russian" - ], - "вопрос": [ - "russian" - ], - "ворота": [ - "russian" - ], - "восемь": [ - "russian" - ], - "восток": [ - "russian" - ], - "вплоть": [ - "russian" - ], - "вполне": [ - "russian" - ], - "вправе": [ - "russian" - ], - "впредь": [ - "russian" - ], - "впрочем": [ - "russian" - ], - "врач": [ - "russian" - ], - "вредный": [ - "russian" - ], - "время": [ - "russian" - ], - "вручить": [ - "russian" - ], - "всадник": [ - "russian" - ], - "всегда": [ - "russian" - ], - "вскоре": [ - "russian" - ], - "вскрыть": [ - "russian" - ], - "всплеск": [ - "russian" - ], - "вспышка": [ - "russian" - ], - "встреча": [ - "russian" - ], - "всюду": [ - "russian" - ], - "всякий": [ - "russian" - ], - "второй": [ - "russian" - ], - "вход": [ - "russian" - ], - "вчера": [ - "russian" - ], - "выбор": [ - "russian" - ], - "вывод": [ - "russian" - ], - "выгнать": [ - "russian" - ], - "выдать": [ - "russian" - ], - "выехать": [ - "russian" - ], - "вызов": [ - "russian" - ], - "выйти": [ - "russian" - ], - "выкуп": [ - "russian" - ], - "вылезти": [ - "russian" - ], - "вымыть": [ - "russian" - ], - "выпасть": [ - "russian" - ], - "выпить": [ - "russian" - ], - "выплата": [ - "russian" - ], - "выпуск": [ - "russian" - ], - "вырасти": [ - "russian" - ], - "выручка": [ - "russian" - ], - "выслать": [ - "russian" - ], - "высокий": [ - "russian" - ], - "выставка": [ - "russian" - ], - "вышка": [ - "russian" - ], - "вязать": [ - "russian" - ], - "вялый": [ - "russian" - ], - "газета": [ - "russian" - ], - "газовый": [ - "russian" - ], - "галерея": [ - "russian" - ], - "галстук": [ - "russian" - ], - "гамма": [ - "russian" - ], - "гарантия": [ - "russian" - ], - "гармония": [ - "russian" - ], - "гарнизон": [ - "russian" - ], - "гастроли": [ - "russian" - ], - "гвардия": [ - "russian" - ], - "гвоздь": [ - "russian" - ], - "гектар": [ - "russian" - ], - "генерал": [ - "russian" - ], - "гений": [ - "russian" - ], - "геном": [ - "russian" - ], - "геолог": [ - "russian" - ], - "герб": [ - "russian" - ], - "герой": [ - "russian" - ], - "гибкий": [ - "russian" - ], - "гигант": [ - "russian" - ], - "гимн": [ - "russian" - ], - "гипотеза": [ - "russian" - ], - "гитара": [ - "russian" - ], - "главный": [ - "russian" - ], - "глагол": [ - "russian" - ], - "гладить": [ - "russian" - ], - "глаз": [ - "russian" - ], - "глина": [ - "russian" - ], - "глоток": [ - "russian" - ], - "глубокий": [ - "russian" - ], - "глупый": [ - "russian" - ], - "глухой": [ - "russian" - ], - "глыба": [ - "russian" - ], - "глядеть": [ - "russian" - ], - "гнев": [ - "russian" - ], - "гнездо": [ - "russian" - ], - "гнилой": [ - "russian" - ], - "годовой": [ - "russian" - ], - "голова": [ - "russian" - ], - "голубой": [ - "russian" - ], - "голый": [ - "russian" - ], - "гонорар": [ - "russian" - ], - "гордость": [ - "russian" - ], - "горизонт": [ - "russian" - ], - "горло": [ - "russian" - ], - "горный": [ - "russian" - ], - "город": [ - "russian" - ], - "горшок": [ - "russian" - ], - "горький": [ - "russian" - ], - "горючее": [ - "russian" - ], - "горячий": [ - "russian" - ], - "готовый": [ - "russian" - ], - "градус": [ - "russian" - ], - "грамм": [ - "russian" - ], - "граница": [ - "russian" - ], - "граф": [ - "russian" - ], - "гребень": [ - "russian" - ], - "гриб": [ - "russian" - ], - "гримаса": [ - "russian" - ], - "грозить": [ - "russian" - ], - "грохот": [ - "russian" - ], - "грош": [ - "russian" - ], - "грубый": [ - "russian" - ], - "грудь": [ - "russian" - ], - "груз": [ - "russian" - ], - "грунт": [ - "russian" - ], - "группа": [ - "russian" - ], - "груша": [ - "russian" - ], - "грязный": [ - "russian" - ], - "губа": [ - "russian" - ], - "гудок": [ - "russian" - ], - "гулкий": [ - "russian" - ], - "гулять": [ - "russian" - ], - "гусеница": [ - "russian" - ], - "густо": [ - "russian" - ], - "гусь": [ - "russian" - ], - "давление": [ - "russian" - ], - "давно": [ - "russian" - ], - "даже": [ - "russian" - ], - "дальний": [ - "russian" - ], - "данный": [ - "russian" - ], - "дарить": [ - "russian" - ], - "датчик": [ - "russian" - ], - "дать": [ - "russian" - ], - "дача": [ - "russian" - ], - "двадцать": [ - "russian" - ], - "дважды": [ - "russian" - ], - "дверь": [ - "russian" - ], - "двигать": [ - "russian" - ], - "движение": [ - "russian" - ], - "двойной": [ - "russian" - ], - "двор": [ - "russian" - ], - "дебют": [ - "russian" - ], - "девятый": [ - "russian" - ], - "дежурный": [ - "russian" - ], - "действие": [ - "russian" - ], - "декабрь": [ - "russian" - ], - "деление": [ - "russian" - ], - "дело": [ - "russian" - ], - "дельфин": [ - "russian" - ], - "день": [ - "russian" - ], - "дерево": [ - "russian" - ], - "держать": [ - "russian" - ], - "дерзкий": [ - "russian" - ], - "десять": [ - "russian" - ], - "деталь": [ - "russian" - ], - "детский": [ - "russian" - ], - "дефект": [ - "russian" - ], - "дефицит": [ - "russian" - ], - "деятель": [ - "russian" - ], - "джаз": [ - "russian" - ], - "джинсы": [ - "russian" - ], - "джунгли": [ - "russian" - ], - "диагноз": [ - "russian" - ], - "диалог": [ - "russian" - ], - "диапазон": [ - "russian" - ], - "диван": [ - "russian" - ], - "дивизия": [ - "russian" - ], - "дивный": [ - "russian" - ], - "диета": [ - "russian" - ], - "дизайн": [ - "russian" - ], - "дикарь": [ - "russian" - ], - "дилер": [ - "russian" - ], - "динамика": [ - "russian" - ], - "диплом": [ - "russian" - ], - "директор": [ - "russian" - ], - "дитя": [ - "russian" - ], - "длинный": [ - "russian" - ], - "дневник": [ - "russian" - ], - "добрый": [ - "russian" - ], - "добыча": [ - "russian" - ], - "доверие": [ - "russian" - ], - "догадка": [ - "russian" - ], - "догнать": [ - "russian" - ], - "дождь": [ - "russian" - ], - "доклад": [ - "russian" - ], - "доктор": [ - "russian" - ], - "документ": [ - "russian" - ], - "долго": [ - "russian" - ], - "должен": [ - "russian" - ], - "долина": [ - "russian" - ], - "донос": [ - "russian" - ], - "дорога": [ - "russian" - ], - "досада": [ - "russian" - ], - "доска": [ - "russian" - ], - "достать": [ - "russian" - ], - "досуг": [ - "russian" - ], - "доход": [ - "russian" - ], - "доцент": [ - "russian" - ], - "дощатый": [ - "russian" - ], - "драка": [ - "russian" - ], - "древний": [ - "russian" - ], - "дремать": [ - "russian" - ], - "дробный": [ - "russian" - ], - "дрова": [ - "russian" - ], - "дрожать": [ - "russian" - ], - "другой": [ - "russian" - ], - "дружба": [ - "russian" - ], - "дубовый": [ - "russian" - ], - "дуга": [ - "russian" - ], - "думать": [ - "russian" - ], - "дурной": [ - "russian" - ], - "духи": [ - "russian" - ], - "душный": [ - "russian" - ], - "дуэль": [ - "russian" - ], - "дуэт": [ - "russian" - ], - "дыра": [ - "russian" - ], - "дыхание": [ - "russian" - ], - "дюжина": [ - "russian" - ], - "дядя": [ - "russian" - ], - "едва": [ - "russian" - ], - "единый": [ - "russian" - ], - "ерунда": [ - "russian" - ], - "если": [ - "russian" - ], - "ехать": [ - "russian" - ], - "жадный": [ - "russian" - ], - "жажда": [ - "russian" - ], - "жалеть": [ - "russian" - ], - "жалоба": [ - "russian" - ], - "жанр": [ - "russian" - ], - "жареный": [ - "russian" - ], - "жаркий": [ - "russian" - ], - "жгучий": [ - "russian" - ], - "жевать": [ - "russian" - ], - "желание": [ - "russian" - ], - "желудок": [ - "russian" - ], - "жена": [ - "russian" - ], - "женщина": [ - "russian" - ], - "жертва": [ - "russian" - ], - "жест": [ - "russian" - ], - "жидкость": [ - "russian" - ], - "житель": [ - "russian" - ], - "жить": [ - "russian" - ], - "жрец": [ - "russian" - ], - "жулик": [ - "russian" - ], - "журнал": [ - "russian" - ], - "жуткий": [ - "russian" - ], - "забрать": [ - "russian" - ], - "забыть": [ - "russian" - ], - "завести": [ - "russian" - ], - "завод": [ - "russian" - ], - "завтра": [ - "russian" - ], - "загадка": [ - "russian" - ], - "загнать": [ - "russian" - ], - "заговор": [ - "russian" - ], - "задача": [ - "russian" - ], - "задеть": [ - "russian" - ], - "задний": [ - "russian" - ], - "задолго": [ - "russian" - ], - "заехать": [ - "russian" - ], - "заказ": [ - "russian" - ], - "закон": [ - "russian" - ], - "закрыть": [ - "russian" - ], - "закуска": [ - "russian" - ], - "залезть": [ - "russian" - ], - "залить": [ - "russian" - ], - "залп": [ - "russian" - ], - "замок": [ - "russian" - ], - "замуж": [ - "russian" - ], - "замысел": [ - "russian" - ], - "занавес": [ - "russian" - ], - "заново": [ - "russian" - ], - "занять": [ - "russian" - ], - "заодно": [ - "russian" - ], - "запись": [ - "russian" - ], - "запрос": [ - "russian" - ], - "запуск": [ - "russian" - ], - "запястье": [ - "russian" - ], - "заранее": [ - "russian" - ], - "заросль": [ - "russian" - ], - "зарплата": [ - "russian" - ], - "заря": [ - "russian" - ], - "засада": [ - "russian" - ], - "заслуга": [ - "russian" - ], - "заснуть": [ - "russian" - ], - "застать": [ - "russian" - ], - "затвор": [ - "russian" - ], - "затеять": [ - "russian" - ], - "затрата": [ - "russian" - ], - "затылок": [ - "russian" - ], - "захват": [ - "russian" - ], - "зачем": [ - "russian" - ], - "защита": [ - "russian" - ], - "заявить": [ - "russian" - ], - "заяц": [ - "russian" - ], - "звезда": [ - "russian" - ], - "звено": [ - "russian" - ], - "звонить": [ - "russian" - ], - "здесь": [ - "russian" - ], - "зелень": [ - "russian" - ], - "земля": [ - "russian" - ], - "зеркало": [ - "russian" - ], - "зерно": [ - "russian" - ], - "зима": [ - "russian" - ], - "злой": [ - "russian" - ], - "змея": [ - "russian" - ], - "знамя": [ - "russian" - ], - "знание": [ - "russian" - ], - "значит": [ - "russian" - ], - "золотой": [ - "russian" - ], - "зона": [ - "russian" - ], - "зонтик": [ - "russian" - ], - "зоопарк": [ - "russian" - ], - "зрачок": [ - "russian" - ], - "зрение": [ - "russian" - ], - "зритель": [ - "russian" - ], - "зубной": [ - "russian" - ], - "зубр": [ - "russian" - ], - "игла": [ - "russian" - ], - "идеал": [ - "russian" - ], - "идеолог": [ - "russian" - ], - "идея": [ - "russian" - ], - "идол": [ - "russian" - ], - "идти": [ - "russian" - ], - "изба": [ - "russian" - ], - "избить": [ - "russian" - ], - "избрать": [ - "russian" - ], - "избыток": [ - "russian" - ], - "извлечь": [ - "russian" - ], - "извне": [ - "russian" - ], - "изгиб": [ - "russian" - ], - "изгнать": [ - "russian" - ], - "издание": [ - "russian" - ], - "изделие": [ - "russian" - ], - "изнутри": [ - "russian" - ], - "изобилие": [ - "russian" - ], - "изоляция": [ - "russian" - ], - "изредка": [ - "russian" - ], - "изрядно": [ - "russian" - ], - "изучение": [ - "russian" - ], - "изъять": [ - "russian" - ], - "изящный": [ - "russian" - ], - "икона": [ - "russian" - ], - "икра": [ - "russian" - ], - "иллюзия": [ - "russian" - ], - "именно": [ - "russian" - ], - "иметь": [ - "russian" - ], - "имидж": [ - "russian" - ], - "империя": [ - "russian" - ], - "импульс": [ - "russian" - ], - "иначе": [ - "russian" - ], - "инвалид": [ - "russian" - ], - "индекс": [ - "russian" - ], - "индивид": [ - "russian" - ], - "инерция": [ - "russian" - ], - "инженер": [ - "russian" - ], - "иногда": [ - "russian" - ], - "иной": [ - "russian" - ], - "институт": [ - "russian" - ], - "интерес": [ - "russian" - ], - "интрига": [ - "russian" - ], - "интуиция": [ - "russian" - ], - "инфаркт": [ - "russian" - ], - "инцидент": [ - "russian" - ], - "ирония": [ - "russian" - ], - "искать": [ - "russian" - ], - "испуг": [ - "russian" - ], - "история": [ - "russian" - ], - "итог": [ - "russian" - ], - "июнь": [ - "russian" - ], - "кабель": [ - "russian" - ], - "кабинет": [ - "russian" - ], - "каблук": [ - "russian" - ], - "кавалер": [ - "russian" - ], - "кадр": [ - "russian" - ], - "каждый": [ - "russian" - ], - "кажется": [ - "russian" - ], - "казино": [ - "russian" - ], - "калитка": [ - "russian" - ], - "камень": [ - "russian" - ], - "камин": [ - "russian" - ], - "канал": [ - "russian" - ], - "кандидат": [ - "russian" - ], - "каникулы": [ - "russian" - ], - "канон": [ - "russian" - ], - "капитан": [ - "russian" - ], - "капля": [ - "russian" - ], - "капот": [ - "russian" - ], - "капуста": [ - "russian" - ], - "карандаш": [ - "russian" - ], - "карета": [ - "russian" - ], - "каркас": [ - "russian" - ], - "карман": [ - "russian" - ], - "картина": [ - "russian" - ], - "карьера": [ - "russian" - ], - "каска": [ - "russian" - ], - "кассета": [ - "russian" - ], - "кастрюля": [ - "russian" - ], - "каталог": [ - "russian" - ], - "катер": [ - "russian" - ], - "каток": [ - "russian" - ], - "катушка": [ - "russian" - ], - "кафедра": [ - "russian" - ], - "качество": [ - "russian" - ], - "каша": [ - "russian" - ], - "кашлять": [ - "russian" - ], - "каюта": [ - "russian" - ], - "квадрат": [ - "russian" - ], - "квартира": [ - "russian" - ], - "квота": [ - "russian" - ], - "кепка": [ - "russian" - ], - "кивнуть": [ - "russian" - ], - "километр": [ - "russian" - ], - "кино": [ - "russian" - ], - "киоск": [ - "russian" - ], - "кипяток": [ - "russian" - ], - "кирпич": [ - "russian" - ], - "кислота": [ - "russian" - ], - "кисть": [ - "russian" - ], - "клавиша": [ - "russian" - ], - "клапан": [ - "russian" - ], - "класс": [ - "russian" - ], - "клей": [ - "russian" - ], - "клетка": [ - "russian" - ], - "клиент": [ - "russian" - ], - "климат": [ - "russian" - ], - "клиника": [ - "russian" - ], - "кличка": [ - "russian" - ], - "клоун": [ - "russian" - ], - "клочок": [ - "russian" - ], - "клуб": [ - "russian" - ], - "клумба": [ - "russian" - ], - "ключ": [ - "russian" - ], - "книга": [ - "russian" - ], - "кнопка": [ - "russian" - ], - "кнут": [ - "russian" - ], - "княгиня": [ - "russian" - ], - "князь": [ - "russian" - ], - "кобура": [ - "russian" - ], - "когда": [ - "russian" - ], - "кодекс": [ - "russian" - ], - "кожа": [ - "russian" - ], - "коктейль": [ - "russian" - ], - "колено": [ - "russian" - ], - "коллега": [ - "russian" - ], - "колонна": [ - "russian" - ], - "колпак": [ - "russian" - ], - "кольцо": [ - "russian" - ], - "колючий": [ - "russian" - ], - "коляска": [ - "russian" - ], - "команда": [ - "russian" - ], - "комедия": [ - "russian" - ], - "комиссия": [ - "russian" - ], - "коммуна": [ - "russian" - ], - "комната": [ - "russian" - ], - "комок": [ - "russian" - ], - "компания": [ - "russian" - ], - "комфорт": [ - "russian" - ], - "конвейер": [ - "russian" - ], - "конгресс": [ - "russian" - ], - "конечно": [ - "russian" - ], - "конкурс": [ - "russian" - ], - "контроль": [ - "russian" - ], - "концерт": [ - "russian" - ], - "конь": [ - "russian" - ], - "конюшня": [ - "russian" - ], - "копать": [ - "russian" - ], - "копейка": [ - "russian" - ], - "копыто": [ - "russian" - ], - "корабль": [ - "russian" - ], - "корень": [ - "russian" - ], - "корзина": [ - "russian" - ], - "коридор": [ - "russian" - ], - "кормить": [ - "russian" - ], - "корпус": [ - "russian" - ], - "космос": [ - "russian" - ], - "костюм": [ - "russian" - ], - "косяк": [ - "russian" - ], - "котел": [ - "russian" - ], - "котлета": [ - "russian" - ], - "который": [ - "russian" - ], - "коттедж": [ - "russian" - ], - "кофе": [ - "russian" - ], - "кофта": [ - "russian" - ], - "кошка": [ - "russian" - ], - "кража": [ - "russian" - ], - "край": [ - "russian" - ], - "красный": [ - "russian" - ], - "краткий": [ - "russian" - ], - "кредит": [ - "russian" - ], - "крем": [ - "russian" - ], - "крепкий": [ - "russian" - ], - "кресло": [ - "russian" - ], - "кривой": [ - "russian" - ], - "кризис": [ - "russian" - ], - "кристалл": [ - "russian" - ], - "критерий": [ - "russian" - ], - "кричать": [ - "russian" - ], - "кровь": [ - "russian" - ], - "крокодил": [ - "russian" - ], - "кролик": [ - "russian" - ], - "кроме": [ - "russian" - ], - "крона": [ - "russian" - ], - "круг": [ - "russian" - ], - "кружка": [ - "russian" - ], - "крупный": [ - "russian" - ], - "крутой": [ - "russian" - ], - "крушение": [ - "russian" - ], - "крыло": [ - "russian" - ], - "крыша": [ - "russian" - ], - "крючок": [ - "russian" - ], - "кстати": [ - "russian" - ], - "кубик": [ - "russian" - ], - "куда": [ - "russian" - ], - "кузов": [ - "russian" - ], - "кукла": [ - "russian" - ], - "кулак": [ - "russian" - ], - "кулиса": [ - "russian" - ], - "культура": [ - "russian" - ], - "кумир": [ - "russian" - ], - "купе": [ - "russian" - ], - "купить": [ - "russian" - ], - "купол": [ - "russian" - ], - "купюра": [ - "russian" - ], - "курица": [ - "russian" - ], - "курорт": [ - "russian" - ], - "курс": [ - "russian" - ], - "куртка": [ - "russian" - ], - "кусок": [ - "russian" - ], - "куст": [ - "russian" - ], - "кухня": [ - "russian" - ], - "кушать": [ - "russian" - ], - "лабиринт": [ - "russian" - ], - "лавка": [ - "russian" - ], - "лагерь": [ - "russian" - ], - "ладно": [ - "russian" - ], - "ладонь": [ - "russian" - ], - "лапа": [ - "russian" - ], - "лауреат": [ - "russian" - ], - "лгать": [ - "russian" - ], - "лебедь": [ - "russian" - ], - "левый": [ - "russian" - ], - "легенда": [ - "russian" - ], - "легкий": [ - "russian" - ], - "ледяной": [ - "russian" - ], - "лежать": [ - "russian" - ], - "лезвие": [ - "russian" - ], - "лезть": [ - "russian" - ], - "лекция": [ - "russian" - ], - "ленивый": [ - "russian" - ], - "лента": [ - "russian" - ], - "лепесток": [ - "russian" - ], - "лесной": [ - "russian" - ], - "лестница": [ - "russian" - ], - "лететь": [ - "russian" - ], - "лето": [ - "russian" - ], - "лечить": [ - "russian" - ], - "лига": [ - "russian" - ], - "лидер": [ - "russian" - ], - "лиловый": [ - "russian" - ], - "лимон": [ - "russian" - ], - "линия": [ - "russian" - ], - "липкий": [ - "russian" - ], - "лист": [ - "russian" - ], - "литр": [ - "russian" - ], - "лихой": [ - "russian" - ], - "лицо": [ - "russian" - ], - "лишить": [ - "russian" - ], - "лишний": [ - "russian" - ], - "ловить": [ - "russian" - ], - "логика": [ - "russian" - ], - "лодка": [ - "russian" - ], - "ложь": [ - "russian" - ], - "лозунг": [ - "russian" - ], - "локоть": [ - "russian" - ], - "лопата": [ - "russian" - ], - "лошадь": [ - "russian" - ], - "лукавый": [ - "russian" - ], - "луна": [ - "russian" - ], - "лучший": [ - "russian" - ], - "лысый": [ - "russian" - ], - "льгота": [ - "russian" - ], - "любить": [ - "russian" - ], - "любой": [ - "russian" - ], - "людской": [ - "russian" - ], - "люстра": [ - "russian" - ], - "лютый": [ - "russian" - ], - "лягушка": [ - "russian" - ], - "магазин": [ - "russian" - ], - "магия": [ - "russian" - ], - "майор": [ - "russian" - ], - "майский": [ - "russian" - ], - "максимум": [ - "russian" - ], - "макушка": [ - "russian" - ], - "мало": [ - "russian" - ], - "мальчик": [ - "russian" - ], - "мама": [ - "russian" - ], - "манера": [ - "russian" - ], - "марка": [ - "russian" - ], - "март": [ - "russian" - ], - "маршрут": [ - "russian" - ], - "масса": [ - "russian" - ], - "мастер": [ - "russian" - ], - "масштаб": [ - "russian" - ], - "материал": [ - "russian" - ], - "матч": [ - "russian" - ], - "махать": [ - "russian" - ], - "машина": [ - "russian" - ], - "маяк": [ - "russian" - ], - "мебель": [ - "russian" - ], - "медаль": [ - "russian" - ], - "медведь": [ - "russian" - ], - "медицина": [ - "russian" - ], - "медь": [ - "russian" - ], - "между": [ - "russian" - ], - "мелкий": [ - "russian" - ], - "мелочь": [ - "russian" - ], - "мемуары": [ - "russian" - ], - "меньше": [ - "russian" - ], - "меню": [ - "russian" - ], - "менять": [ - "russian" - ], - "мера": [ - "russian" - ], - "мерцать": [ - "russian" - ], - "место": [ - "russian" - ], - "месяц": [ - "russian" - ], - "металл": [ - "russian" - ], - "метод": [ - "russian" - ], - "метр": [ - "russian" - ], - "механизм": [ - "russian" - ], - "меховой": [ - "russian" - ], - "мечтать": [ - "russian" - ], - "мешать": [ - "russian" - ], - "мешок": [ - "russian" - ], - "миграция": [ - "russian" - ], - "микрофон": [ - "russian" - ], - "милиция": [ - "russian" - ], - "миллион": [ - "russian" - ], - "милость": [ - "russian" - ], - "миля": [ - "russian" - ], - "мимо": [ - "russian" - ], - "минерал": [ - "russian" - ], - "министр": [ - "russian" - ], - "минута": [ - "russian" - ], - "мирный": [ - "russian" - ], - "миска": [ - "russian" - ], - "миссия": [ - "russian" - ], - "митинг": [ - "russian" - ], - "мишень": [ - "russian" - ], - "младший": [ - "russian" - ], - "мнение": [ - "russian" - ], - "мнимый": [ - "russian" - ], - "много": [ - "russian" - ], - "могучий": [ - "russian" - ], - "модель": [ - "russian" - ], - "может": [ - "russian" - ], - "мозг": [ - "russian" - ], - "мокрый": [ - "russian" - ], - "молекула": [ - "russian" - ], - "молния": [ - "russian" - ], - "молодой": [ - "russian" - ], - "молчать": [ - "russian" - ], - "момент": [ - "russian" - ], - "монета": [ - "russian" - ], - "монитор": [ - "russian" - ], - "монолог": [ - "russian" - ], - "монстр": [ - "russian" - ], - "монтаж": [ - "russian" - ], - "мораль": [ - "russian" - ], - "море": [ - "russian" - ], - "морковь": [ - "russian" - ], - "мороз": [ - "russian" - ], - "морщина": [ - "russian" - ], - "мостовая": [ - "russian" - ], - "мотать": [ - "russian" - ], - "мотив": [ - "russian" - ], - "мотор": [ - "russian" - ], - "мохнатый": [ - "russian" - ], - "мрамор": [ - "russian" - ], - "мрачный": [ - "russian" - ], - "мстить": [ - "russian" - ], - "мудрый": [ - "russian" - ], - "мужество": [ - "russian" - ], - "мужчина": [ - "russian" - ], - "музей": [ - "russian" - ], - "музыка": [ - "russian" - ], - "мундир": [ - "russian" - ], - "муравей": [ - "russian" - ], - "мусор": [ - "russian" - ], - "муха": [ - "russian" - ], - "мчаться": [ - "russian" - ], - "мысль": [ - "russian" - ], - "мыться": [ - "russian" - ], - "мышца": [ - "russian" - ], - "мышь": [ - "russian" - ], - "мюзикл": [ - "russian" - ], - "мягкий": [ - "russian" - ], - "мясо": [ - "russian" - ], - "набор": [ - "russian" - ], - "навык": [ - "russian" - ], - "наглый": [ - "russian" - ], - "нагрузка": [ - "russian" - ], - "надежда": [ - "russian" - ], - "надзор": [ - "russian" - ], - "надо": [ - "russian" - ], - "наедине": [ - "russian" - ], - "назад": [ - "russian" - ], - "название": [ - "russian" - ], - "назло": [ - "russian" - ], - "наивный": [ - "russian" - ], - "найти": [ - "russian" - ], - "наконец": [ - "russian" - ], - "налево": [ - "russian" - ], - "наличие": [ - "russian" - ], - "налог": [ - "russian" - ], - "намерен": [ - "russian" - ], - "нанести": [ - "russian" - ], - "напасть": [ - "russian" - ], - "например": [ - "russian" - ], - "народ": [ - "russian" - ], - "наследие": [ - "russian" - ], - "натура": [ - "russian" - ], - "наука": [ - "russian" - ], - "наутро": [ - "russian" - ], - "начать": [ - "russian" - ], - "небо": [ - "russian" - ], - "неважно": [ - "russian" - ], - "невеста": [ - "russian" - ], - "негодяй": [ - "russian" - ], - "недавно": [ - "russian" - ], - "неделя": [ - "russian" - ], - "недолго": [ - "russian" - ], - "недра": [ - "russian" - ], - "недуг": [ - "russian" - ], - "нежный": [ - "russian" - ], - "незачем": [ - "russian" - ], - "некто": [ - "russian" - ], - "нелепый": [ - "russian" - ], - "неловко": [ - "russian" - ], - "нельзя": [ - "russian" - ], - "немало": [ - "russian" - ], - "немой": [ - "russian" - ], - "неплохо": [ - "russian" - ], - "нервный": [ - "russian" - ], - "нередко": [ - "russian" - ], - "нестись": [ - "russian" - ], - "неудача": [ - "russian" - ], - "неужели": [ - "russian" - ], - "нефть": [ - "russian" - ], - "неясный": [ - "russian" - ], - "нигде": [ - "russian" - ], - "низкий": [ - "russian" - ], - "никакой": [ - "russian" - ], - "никогда": [ - "russian" - ], - "никуда": [ - "russian" - ], - "ничто": [ - "russian" - ], - "ничуть": [ - "russian" - ], - "ниша": [ - "russian" - ], - "нищий": [ - "russian" - ], - "новость": [ - "russian" - ], - "новый": [ - "russian" - ], - "нога": [ - "russian" - ], - "ноготь": [ - "russian" - ], - "ножницы": [ - "russian" - ], - "ноздря": [ - "russian" - ], - "номер": [ - "russian" - ], - "носить": [ - "russian" - ], - "носок": [ - "russian" - ], - "ночь": [ - "russian" - ], - "ноябрь": [ - "russian" - ], - "нрав": [ - "russian" - ], - "нуль": [ - "russian" - ], - "нынче": [ - "russian" - ], - "нырять": [ - "russian" - ], - "нюанс": [ - "russian" - ], - "няня": [ - "russian" - ], - "обаяние": [ - "russian" - ], - "обед": [ - "russian" - ], - "обезьяна": [ - "russian" - ], - "обещать": [ - "russian" - ], - "обжечь": [ - "russian" - ], - "обзор": [ - "russian" - ], - "обилие": [ - "russian" - ], - "обитать": [ - "russian" - ], - "область": [ - "russian" - ], - "облик": [ - "russian" - ], - "обложка": [ - "russian" - ], - "обмен": [ - "russian" - ], - "обморок": [ - "russian" - ], - "обожать": [ - "russian" - ], - "обои": [ - "russian" - ], - "оболочка": [ - "russian" - ], - "оборона": [ - "russian" - ], - "обочина": [ - "russian" - ], - "образ": [ - "russian" - ], - "обрести": [ - "russian" - ], - "обрыв": [ - "russian" - ], - "обувь": [ - "russian" - ], - "обучение": [ - "russian" - ], - "обход": [ - "russian" - ], - "общество": [ - "russian" - ], - "общий": [ - "russian" - ], - "объект": [ - "russian" - ], - "обыск": [ - "russian" - ], - "обычно": [ - "russian" - ], - "обязать": [ - "russian" - ], - "овощи": [ - "russian" - ], - "овраг": [ - "russian" - ], - "овца": [ - "russian" - ], - "оговорка": [ - "russian" - ], - "ограда": [ - "russian" - ], - "огурец": [ - "russian" - ], - "одежда": [ - "russian" - ], - "одеяло": [ - "russian" - ], - "один": [ - "russian" - ], - "однако": [ - "russian" - ], - "одолеть": [ - "russian" - ], - "ожидать": [ - "russian" - ], - "озеро": [ - "russian" - ], - "океан": [ - "russian" - ], - "окно": [ - "russian" - ], - "около": [ - "russian" - ], - "окоп": [ - "russian" - ], - "окраина": [ - "russian" - ], - "октябрь": [ - "russian" - ], - "опасный": [ - "russian" - ], - "опека": [ - "russian" - ], - "операция": [ - "russian" - ], - "описание": [ - "russian" - ], - "оплата": [ - "russian" - ], - "опора": [ - "russian" - ], - "оппонент": [ - "russian" - ], - "оптимизм": [ - "russian" - ], - "оптовый": [ - "russian" - ], - "опухоль": [ - "russian" - ], - "опыт": [ - "russian" - ], - "оратор": [ - "russian" - ], - "орбита": [ - "russian" - ], - "орган": [ - "russian" - ], - "орден": [ - "russian" - ], - "орел": [ - "russian" - ], - "оригинал": [ - "russian" - ], - "ориентир": [ - "russian" - ], - "оркестр": [ - "russian" - ], - "оружие": [ - "russian" - ], - "осенний": [ - "russian" - ], - "осколок": [ - "russian" - ], - "осмотр": [ - "russian" - ], - "остров": [ - "russian" - ], - "отбор": [ - "russian" - ], - "отбыть": [ - "russian" - ], - "отвлечь": [ - "russian" - ], - "отдать": [ - "russian" - ], - "отдел": [ - "russian" - ], - "отдых": [ - "russian" - ], - "отель": [ - "russian" - ], - "отец": [ - "russian" - ], - "отзыв": [ - "russian" - ], - "отказ": [ - "russian" - ], - "отклик": [ - "russian" - ], - "открыть": [ - "russian" - ], - "откуда": [ - "russian" - ], - "отличие": [ - "russian" - ], - "отныне": [ - "russian" - ], - "отойти": [ - "russian" - ], - "отпуск": [ - "russian" - ], - "отрасль": [ - "russian" - ], - "отросток": [ - "russian" - ], - "отрывок": [ - "russian" - ], - "отряд": [ - "russian" - ], - "отсек": [ - "russian" - ], - "отставка": [ - "russian" - ], - "отсюда": [ - "russian" - ], - "оттенок": [ - "russian" - ], - "оттого": [ - "russian" - ], - "отчего": [ - "russian" - ], - "отъезд": [ - "russian" - ], - "офис": [ - "russian" - ], - "офицер": [ - "russian" - ], - "охота": [ - "russian" - ], - "охрана": [ - "russian" - ], - "оценка": [ - "russian" - ], - "очаг": [ - "russian" - ], - "очень": [ - "russian" - ], - "очередь": [ - "russian" - ], - "очищать": [ - "russian" - ], - "ошибка": [ - "russian" - ], - "ощущение": [ - "russian" - ], - "павильон": [ - "russian" - ], - "падать": [ - "russian" - ], - "пазуха": [ - "russian" - ], - "пакет": [ - "russian" - ], - "палата": [ - "russian" - ], - "палец": [ - "russian" - ], - "палуба": [ - "russian" - ], - "пальто": [ - "russian" - ], - "память": [ - "russian" - ], - "панель": [ - "russian" - ], - "паника": [ - "russian" - ], - "пара": [ - "russian" - ], - "парень": [ - "russian" - ], - "пароход": [ - "russian" - ], - "партия": [ - "russian" - ], - "парус": [ - "russian" - ], - "паспорт": [ - "russian" - ], - "пассажир": [ - "russian" - ], - "пастух": [ - "russian" - ], - "патент": [ - "russian" - ], - "патрон": [ - "russian" - ], - "пауза": [ - "russian" - ], - "паук": [ - "russian" - ], - "паутина": [ - "russian" - ], - "пафос": [ - "russian" - ], - "пахнуть": [ - "russian" - ], - "пациент": [ - "russian" - ], - "пачка": [ - "russian" - ], - "певец": [ - "russian" - ], - "педагог": [ - "russian" - ], - "пейзаж": [ - "russian" - ], - "пенсия": [ - "russian" - ], - "пепел": [ - "russian" - ], - "первый": [ - "russian" - ], - "перед": [ - "russian" - ], - "период": [ - "russian" - ], - "перо": [ - "russian" - ], - "перрон": [ - "russian" - ], - "персонаж": [ - "russian" - ], - "перчатка": [ - "russian" - ], - "песня": [ - "russian" - ], - "песок": [ - "russian" - ], - "петля": [ - "russian" - ], - "петрушка": [ - "russian" - ], - "петух": [ - "russian" - ], - "пехота": [ - "russian" - ], - "печать": [ - "russian" - ], - "печень": [ - "russian" - ], - "пешком": [ - "russian" - ], - "пещера": [ - "russian" - ], - "пианист": [ - "russian" - ], - "пиджак": [ - "russian" - ], - "пилот": [ - "russian" - ], - "пионер": [ - "russian" - ], - "пирамида": [ - "russian" - ], - "пирожок": [ - "russian" - ], - "письмо": [ - "russian" - ], - "пища": [ - "russian" - ], - "плавание": [ - "russian" - ], - "плакать": [ - "russian" - ], - "пламя": [ - "russian" - ], - "план": [ - "russian" - ], - "пласт": [ - "russian" - ], - "платить": [ - "russian" - ], - "пленный": [ - "russian" - ], - "плечо": [ - "russian" - ], - "плита": [ - "russian" - ], - "плод": [ - "russian" - ], - "плоский": [ - "russian" - ], - "плотный": [ - "russian" - ], - "плохой": [ - "russian" - ], - "площадь": [ - "russian" - ], - "плыть": [ - "russian" - ], - "плюс": [ - "russian" - ], - "пляж": [ - "russian" - ], - "плясать": [ - "russian" - ], - "победа": [ - "russian" - ], - "повар": [ - "russian" - ], - "повод": [ - "russian" - ], - "повсюду": [ - "russian" - ], - "повязка": [ - "russian" - ], - "погода": [ - "russian" - ], - "погреб": [ - "russian" - ], - "подбор": [ - "russian" - ], - "подвиг": [ - "russian" - ], - "подделка": [ - "russian" - ], - "поджать": [ - "russian" - ], - "поднос": [ - "russian" - ], - "подпись": [ - "russian" - ], - "подруга": [ - "russian" - ], - "подход": [ - "russian" - ], - "подчас": [ - "russian" - ], - "подъезд": [ - "russian" - ], - "поединок": [ - "russian" - ], - "поезд": [ - "russian" - ], - "поесть": [ - "russian" - ], - "поехать": [ - "russian" - ], - "пожалуй": [ - "russian" - ], - "пожилой": [ - "russian" - ], - "позади": [ - "russian" - ], - "позвать": [ - "russian" - ], - "поздний": [ - "russian" - ], - "позиция": [ - "russian" - ], - "позор": [ - "russian" - ], - "поиск": [ - "russian" - ], - "поймать": [ - "russian" - ], - "пойти": [ - "russian" - ], - "поклон": [ - "russian" - ], - "покой": [ - "russian" - ], - "покрыть": [ - "russian" - ], - "полдень": [ - "russian" - ], - "полезный": [ - "russian" - ], - "ползти": [ - "russian" - ], - "полк": [ - "russian" - ], - "полный": [ - "russian" - ], - "половина": [ - "russian" - ], - "полтора": [ - "russian" - ], - "польза": [ - "russian" - ], - "поляна": [ - "russian" - ], - "помидор": [ - "russian" - ], - "помнить": [ - "russian" - ], - "помощь": [ - "russian" - ], - "попасть": [ - "russian" - ], - "поперек": [ - "russian" - ], - "поплыть": [ - "russian" - ], - "пополам": [ - "russian" - ], - "поправка": [ - "russian" - ], - "попугай": [ - "russian" - ], - "попытка": [ - "russian" - ], - "порог": [ - "russian" - ], - "портрет": [ - "russian" - ], - "порция": [ - "russian" - ], - "порыв": [ - "russian" - ], - "порядок": [ - "russian" - ], - "после": [ - "russian" - ], - "посол": [ - "russian" - ], - "посреди": [ - "russian" - ], - "постель": [ - "russian" - ], - "посуда": [ - "russian" - ], - "потом": [ - "russian" - ], - "похвала": [ - "russian" - ], - "похожий": [ - "russian" - ], - "поцелуй": [ - "russian" - ], - "почва": [ - "russian" - ], - "почему": [ - "russian" - ], - "пошлина": [ - "russian" - ], - "поэма": [ - "russian" - ], - "поэтому": [ - "russian" - ], - "право": [ - "russian" - ], - "праздник": [ - "russian" - ], - "практика": [ - "russian" - ], - "прах": [ - "russian" - ], - "преграда": [ - "russian" - ], - "предмет": [ - "russian" - ], - "прежде": [ - "russian" - ], - "прелесть": [ - "russian" - ], - "премия": [ - "russian" - ], - "препарат": [ - "russian" - ], - "пресса": [ - "russian" - ], - "прибыть": [ - "russian" - ], - "прижать": [ - "russian" - ], - "прийти": [ - "russian" - ], - "приказ": [ - "russian" - ], - "прилавок": [ - "russian" - ], - "пример": [ - "russian" - ], - "принять": [ - "russian" - ], - "природа": [ - "russian" - ], - "притом": [ - "russian" - ], - "прихожая": [ - "russian" - ], - "прицел": [ - "russian" - ], - "причина": [ - "russian" - ], - "приют": [ - "russian" - ], - "прогноз": [ - "russian" - ], - "продукт": [ - "russian" - ], - "проект": [ - "russian" - ], - "прожить": [ - "russian" - ], - "прокат": [ - "russian" - ], - "промысел": [ - "russian" - ], - "пропуск": [ - "russian" - ], - "просто": [ - "russian" - ], - "против": [ - "russian" - ], - "профиль": [ - "russian" - ], - "процесс": [ - "russian" - ], - "прочий": [ - "russian" - ], - "прошлый": [ - "russian" - ], - "прощать": [ - "russian" - ], - "пружина": [ - "russian" - ], - "прут": [ - "russian" - ], - "прыжок": [ - "russian" - ], - "прямой": [ - "russian" - ], - "птица": [ - "russian" - ], - "публика": [ - "russian" - ], - "пугать": [ - "russian" - ], - "пуговица": [ - "russian" - ], - "пузырь": [ - "russian" - ], - "пульт": [ - "russian" - ], - "пуля": [ - "russian" - ], - "пункт": [ - "russian" - ], - "пускать": [ - "russian" - ], - "пустой": [ - "russian" - ], - "путь": [ - "russian" - ], - "пухлый": [ - "russian" - ], - "пучок": [ - "russian" - ], - "пушистый": [ - "russian" - ], - "пушка": [ - "russian" - ], - "пчела": [ - "russian" - ], - "пшеница": [ - "russian" - ], - "пылать": [ - "russian" - ], - "пыль": [ - "russian" - ], - "пышный": [ - "russian" - ], - "пьеса": [ - "russian" - ], - "пятка": [ - "russian" - ], - "пятно": [ - "russian" - ], - "пятый": [ - "russian" - ], - "пятьсот": [ - "russian" - ], - "работа": [ - "russian" - ], - "равнина": [ - "russian" - ], - "ради": [ - "russian" - ], - "радость": [ - "russian" - ], - "радуга": [ - "russian" - ], - "разбить": [ - "russian" - ], - "развитие": [ - "russian" - ], - "разговор": [ - "russian" - ], - "раздел": [ - "russian" - ], - "различие": [ - "russian" - ], - "размер": [ - "russian" - ], - "разный": [ - "russian" - ], - "разрыв": [ - "russian" - ], - "разум": [ - "russian" - ], - "район": [ - "russian" - ], - "ракета": [ - "russian" - ], - "раковина": [ - "russian" - ], - "рамка": [ - "russian" - ], - "рано": [ - "russian" - ], - "рапорт": [ - "russian" - ], - "распад": [ - "russian" - ], - "рассказ": [ - "russian" - ], - "расти": [ - "russian" - ], - "расход": [ - "russian" - ], - "расцвет": [ - "russian" - ], - "рация": [ - "russian" - ], - "рвануть": [ - "russian" - ], - "рваться": [ - "russian" - ], - "реакция": [ - "russian" - ], - "ребро": [ - "russian" - ], - "реветь": [ - "russian" - ], - "редактор": [ - "russian" - ], - "редкий": [ - "russian" - ], - "реестр": [ - "russian" - ], - "режим": [ - "russian" - ], - "резать": [ - "russian" - ], - "резерв": [ - "russian" - ], - "резина": [ - "russian" - ], - "резко": [ - "russian" - ], - "резной": [ - "russian" - ], - "рейс": [ - "russian" - ], - "реклама": [ - "russian" - ], - "рекорд": [ - "russian" - ], - "религия": [ - "russian" - ], - "рельс": [ - "russian" - ], - "ремень": [ - "russian" - ], - "ремонт": [ - "russian" - ], - "реплика": [ - "russian" - ], - "репортаж": [ - "russian" - ], - "ресница": [ - "russian" - ], - "ресторан": [ - "russian" - ], - "реформа": [ - "russian" - ], - "рецепт": [ - "russian" - ], - "речь": [ - "russian" - ], - "решение": [ - "russian" - ], - "ржавый": [ - "russian" - ], - "риск": [ - "russian" - ], - "рисунок": [ - "russian" - ], - "ритуал": [ - "russian" - ], - "рифма": [ - "russian" - ], - "робко": [ - "russian" - ], - "робот": [ - "russian" - ], - "ровесник": [ - "russian" - ], - "ровно": [ - "russian" - ], - "родной": [ - "russian" - ], - "рождение": [ - "russian" - ], - "роза": [ - "russian" - ], - "розовый": [ - "russian" - ], - "розыск": [ - "russian" - ], - "роль": [ - "russian" - ], - "роман": [ - "russian" - ], - "роскошь": [ - "russian" - ], - "роспись": [ - "russian" - ], - "рост": [ - "russian" - ], - "рубашка": [ - "russian" - ], - "рубеж": [ - "russian" - ], - "рубить": [ - "russian" - ], - "рубрика": [ - "russian" - ], - "рудник": [ - "russian" - ], - "рука": [ - "russian" - ], - "рукопись": [ - "russian" - ], - "румяный": [ - "russian" - ], - "русло": [ - "russian" - ], - "рухнуть": [ - "russian" - ], - "ручей": [ - "russian" - ], - "ручной": [ - "russian" - ], - "рыба": [ - "russian" - ], - "рыжий": [ - "russian" - ], - "рынок": [ - "russian" - ], - "рыхлый": [ - "russian" - ], - "рыцарь": [ - "russian" - ], - "рычаг": [ - "russian" - ], - "рюкзак": [ - "russian" - ], - "рядом": [ - "russian" - ], - "садовый": [ - "russian" - ], - "сажать": [ - "russian" - ], - "салон": [ - "russian" - ], - "салфетка": [ - "russian" - ], - "салют": [ - "russian" - ], - "самец": [ - "russian" - ], - "самовар": [ - "russian" - ], - "самый": [ - "russian" - ], - "сани": [ - "russian" - ], - "санкция": [ - "russian" - ], - "сапог": [ - "russian" - ], - "сарай": [ - "russian" - ], - "сатира": [ - "russian" - ], - "сахар": [ - "russian" - ], - "сбить": [ - "russian" - ], - "сбоку": [ - "russian" - ], - "сборная": [ - "russian" - ], - "сбыт": [ - "russian" - ], - "свадьба": [ - "russian" - ], - "свалка": [ - "russian" - ], - "сварить": [ - "russian" - ], - "свежий": [ - "russian" - ], - "сверху": [ - "russian" - ], - "свет": [ - "russian" - ], - "свеча": [ - "russian" - ], - "свинья": [ - "russian" - ], - "свист": [ - "russian" - ], - "свитер": [ - "russian" - ], - "свобода": [ - "russian" - ], - "сводка": [ - "russian" - ], - "свой": [ - "russian" - ], - "свыше": [ - "russian" - ], - "связь": [ - "russian" - ], - "сдаться": [ - "russian" - ], - "сделать": [ - "russian" - ], - "сегмент": [ - "russian" - ], - "сегодня": [ - "russian" - ], - "седло": [ - "russian" - ], - "седой": [ - "russian" - ], - "седьмой": [ - "russian" - ], - "сезон": [ - "russian" - ], - "сейф": [ - "russian" - ], - "сейчас": [ - "russian" - ], - "секрет": [ - "russian" - ], - "сектор": [ - "russian" - ], - "секунда": [ - "russian" - ], - "семинар": [ - "russian" - ], - "семья": [ - "russian" - ], - "сенатор": [ - "russian" - ], - "сено": [ - "russian" - ], - "сенсация": [ - "russian" - ], - "сентябрь": [ - "russian" - ], - "сервис": [ - "russian" - ], - "сердце": [ - "russian" - ], - "середина": [ - "russian" - ], - "сержант": [ - "russian" - ], - "серия": [ - "russian" - ], - "серый": [ - "russian" - ], - "сессия": [ - "russian" - ], - "сесть": [ - "russian" - ], - "сетевой": [ - "russian" - ], - "сжатый": [ - "russian" - ], - "сжечь": [ - "russian" - ], - "сзади": [ - "russian" - ], - "сигнал": [ - "russian" - ], - "сиденье": [ - "russian" - ], - "сила": [ - "russian" - ], - "силуэт": [ - "russian" - ], - "сильный": [ - "russian" - ], - "символ": [ - "russian" - ], - "симпатия": [ - "russian" - ], - "симфония": [ - "russian" - ], - "синий": [ - "russian" - ], - "синтез": [ - "russian" - ], - "синяк": [ - "russian" - ], - "сирень": [ - "russian" - ], - "система": [ - "russian" - ], - "ситуация": [ - "russian" - ], - "сияние": [ - "russian" - ], - "сказать": [ - "russian" - ], - "скала": [ - "russian" - ], - "скамейка": [ - "russian" - ], - "скандал": [ - "russian" - ], - "скатерть": [ - "russian" - ], - "скачок": [ - "russian" - ], - "скважина": [ - "russian" - ], - "сквер": [ - "russian" - ], - "сквозь": [ - "russian" - ], - "скелет": [ - "russian" - ], - "скидка": [ - "russian" - ], - "склад": [ - "russian" - ], - "сколько": [ - "russian" - ], - "скорый": [ - "russian" - ], - "скосить": [ - "russian" - ], - "скот": [ - "russian" - ], - "скрипка": [ - "russian" - ], - "скудный": [ - "russian" - ], - "скука": [ - "russian" - ], - "слабый": [ - "russian" - ], - "слава": [ - "russian" - ], - "сладкий": [ - "russian" - ], - "слегка": [ - "russian" - ], - "след": [ - "russian" - ], - "слеза": [ - "russian" - ], - "слепой": [ - "russian" - ], - "слесарь": [ - "russian" - ], - "слишком": [ - "russian" - ], - "слово": [ - "russian" - ], - "слог": [ - "russian" - ], - "сложный": [ - "russian" - ], - "сломать": [ - "russian" - ], - "служба": [ - "russian" - ], - "слух": [ - "russian" - ], - "случай": [ - "russian" - ], - "слышать": [ - "russian" - ], - "слюна": [ - "russian" - ], - "смежный": [ - "russian" - ], - "смелый": [ - "russian" - ], - "сменить": [ - "russian" - ], - "смесь": [ - "russian" - ], - "сметана": [ - "russian" - ], - "смех": [ - "russian" - ], - "смола": [ - "russian" - ], - "смуглый": [ - "russian" - ], - "смутный": [ - "russian" - ], - "смущать": [ - "russian" - ], - "смысл": [ - "russian" - ], - "снайпер": [ - "russian" - ], - "снаряд": [ - "russian" - ], - "сначала": [ - "russian" - ], - "снег": [ - "russian" - ], - "снизу": [ - "russian" - ], - "сниться": [ - "russian" - ], - "сно��а": [ - "russian" - ], - "снять": [ - "russian" - ], - "собака": [ - "russian" - ], - "соблазн": [ - "russian" - ], - "собрание": [ - "russian" - ], - "событие": [ - "russian" - ], - "совесть": [ - "russian" - ], - "совсем": [ - "russian" - ], - "согласие": [ - "russian" - ], - "создать": [ - "russian" - ], - "сознание": [ - "russian" - ], - "созреть": [ - "russian" - ], - "сойтись": [ - "russian" - ], - "сокол": [ - "russian" - ], - "солдат": [ - "russian" - ], - "соленый": [ - "russian" - ], - "солнце": [ - "russian" - ], - "солома": [ - "russian" - ], - "сомнение": [ - "russian" - ], - "сонный": [ - "russian" - ], - "соперник": [ - "russian" - ], - "соратник": [ - "russian" - ], - "сорвать": [ - "russian" - ], - "сосед": [ - "russian" - ], - "сосиска": [ - "russian" - ], - "состав": [ - "russian" - ], - "сотня": [ - "russian" - ], - "соус": [ - "russian" - ], - "союз": [ - "russian" - ], - "спад": [ - "russian" - ], - "спальня": [ - "russian" - ], - "спасти": [ - "russian" - ], - "спектр": [ - "russian" - ], - "сперва": [ - "russian" - ], - "спешить": [ - "russian" - ], - "спина": [ - "russian" - ], - "спирт": [ - "russian" - ], - "список": [ - "russian" - ], - "спичка": [ - "russian" - ], - "сплав": [ - "russian" - ], - "спонсор": [ - "russian" - ], - "спор": [ - "russian" - ], - "способ": [ - "russian" - ], - "справка": [ - "russian" - ], - "спустя": [ - "russian" - ], - "спутник": [ - "russian" - ], - "сразу": [ - "russian" - ], - "средство": [ - "russian" - ], - "срок": [ - "russian" - ], - "срыв": [ - "russian" - ], - "ссора": [ - "russian" - ], - "ссылка": [ - "russian" - ], - "ставить": [ - "russian" - ], - "стадия": [ - "russian" - ], - "стакан": [ - "russian" - ], - "станция": [ - "russian" - ], - "старый": [ - "russian" - ], - "стая": [ - "russian" - ], - "стебель": [ - "russian" - ], - "стекло": [ - "russian" - ], - "стена": [ - "russian" - ], - "степень": [ - "russian" - ], - "стереть": [ - "russian" - ], - "стиль": [ - "russian" - ], - "стимул": [ - "russian" - ], - "стирать": [ - "russian" - ], - "стихи": [ - "russian" - ], - "стоить": [ - "russian" - ], - "стойка": [ - "russian" - ], - "стол": [ - "russian" - ], - "стонать": [ - "russian" - ], - "стопа": [ - "russian" - ], - "сторона": [ - "russian" - ], - "стоянка": [ - "russian" - ], - "страна": [ - "russian" - ], - "стричь": [ - "russian" - ], - "строгий": [ - "russian" - ], - "струя": [ - "russian" - ], - "студент": [ - "russian" - ], - "стук": [ - "russian" - ], - "ступня": [ - "russian" - ], - "стыдно": [ - "russian" - ], - "суббота": [ - "russian" - ], - "субъект": [ - "russian" - ], - "сувенир": [ - "russian" - ], - "сугроб": [ - "russian" - ], - "сугубо": [ - "russian" - ], - "судить": [ - "russian" - ], - "судно": [ - "russian" - ], - "судьба": [ - "russian" - ], - "суета": [ - "russian" - ], - "суметь": [ - "russian" - ], - "сумма": [ - "russian" - ], - "сумрак": [ - "russian" - ], - "сундук": [ - "russian" - ], - "супруг": [ - "russian" - ], - "суровый": [ - "russian" - ], - "сутки": [ - "russian" - ], - "сухой": [ - "russian" - ], - "суша": [ - "russian" - ], - "существо": [ - "russian" - ], - "сфера": [ - "russian" - ], - "схема": [ - "russian" - ], - "схожий": [ - "russian" - ], - "сценарий": [ - "russian" - ], - "счастье": [ - "russian" - ], - "считать": [ - "russian" - ], - "съезд": [ - "russian" - ], - "сыграть": [ - "russian" - ], - "сырой": [ - "russian" - ], - "сытый": [ - "russian" - ], - "сыщик": [ - "russian" - ], - "сюда": [ - "russian" - ], - "сюжет": [ - "russian" - ], - "сюрприз": [ - "russian" - ], - "тайна": [ - "russian" - ], - "также": [ - "russian" - ], - "такой": [ - "russian" - ], - "такси": [ - "russian" - ], - "тактика": [ - "russian" - ], - "талия": [ - "russian" - ], - "таможня": [ - "russian" - ], - "танец": [ - "russian" - ], - "таракан": [ - "russian" - ], - "тарелка": [ - "russian" - ], - "тариф": [ - "russian" - ], - "тащить": [ - "russian" - ], - "таять": [ - "russian" - ], - "тварь": [ - "russian" - ], - "театр": [ - "russian" - ], - "тезис": [ - "russian" - ], - "текст": [ - "russian" - ], - "текущий": [ - "russian" - ], - "телефон": [ - "russian" - ], - "тема": [ - "russian" - ], - "темнота": [ - "russian" - ], - "теневой": [ - "russian" - ], - "теннис": [ - "russian" - ], - "теория": [ - "russian" - ], - "теперь": [ - "russian" - ], - "тепло": [ - "russian" - ], - "терапия": [ - "russian" - ], - "терзать": [ - "russian" - ], - "термин": [ - "russian" - ], - "терпеть": [ - "russian" - ], - "терраса": [ - "russian" - ], - "терять": [ - "russian" - ], - "тесный": [ - "russian" - ], - "тетрадь": [ - "russian" - ], - "техника": [ - "russian" - ], - "течение": [ - "russian" - ], - "тигр": [ - "russian" - ], - "типовой": [ - "russian" - ], - "тираж": [ - "russian" - ], - "титул": [ - "russian" - ], - "тихий": [ - "russian" - ], - "ткань": [ - "russian" - ], - "товарищ": [ - "russian" - ], - "тоже": [ - "russian" - ], - "толпа": [ - "russian" - ], - "толстый": [ - "russian" - ], - "толчок": [ - "russian" - ], - "толщина": [ - "russian" - ], - "только": [ - "russian" - ], - "тонкий": [ - "russian" - ], - "тонна": [ - "russian" - ], - "топить": [ - "russian" - ], - "топор": [ - "russian" - ], - "торговля": [ - "russian" - ], - "тормоз": [ - "russian" - ], - "торчать": [ - "russian" - ], - "тотчас": [ - "russian" - ], - "точка": [ - "russian" - ], - "точно": [ - "russian" - ], - "тощий": [ - "russian" - ], - "трава": [ - "russian" - ], - "традиция": [ - "russian" - ], - "трактор": [ - "russian" - ], - "трамвай": [ - "russian" - ], - "траншея": [ - "russian" - ], - "трасса": [ - "russian" - ], - "тревога": [ - "russian" - ], - "трезвый": [ - "russian" - ], - "тренер": [ - "russian" - ], - "трепет": [ - "russian" - ], - "треск": [ - "russian" - ], - "третий": [ - "russian" - ], - "трещина": [ - "russian" - ], - "трибуна": [ - "russian" - ], - "тридцать": [ - "russian" - ], - "триста": [ - "russian" - ], - "триумф": [ - "russian" - ], - "трогать": [ - "russian" - ], - "тройка": [ - "russian" - ], - "тронуть": [ - "russian" - ], - "тропа": [ - "russian" - ], - "тротуар": [ - "russian" - ], - "трубка": [ - "russian" - ], - "труд": [ - "russian" - ], - "трюк": [ - "russian" - ], - "тряпка": [ - "russian" - ], - "туго": [ - "russian" - ], - "туловище": [ - "russian" - ], - "туман": [ - "russian" - ], - "тумбочка": [ - "russian" - ], - "тундра": [ - "russian" - ], - "тупик": [ - "russian" - ], - "турист": [ - "russian" - ], - "турнир": [ - "russian" - ], - "тусклый": [ - "russian" - ], - "туфля": [ - "russian" - ], - "туча": [ - "russian" - ], - "тысяча": [ - "russian" - ], - "тяга": [ - "russian" - ], - "тяжело": [ - "russian" - ], - "убежать": [ - "russian" - ], - "убогий": [ - "russian" - ], - "уборка": [ - "russian" - ], - "уважение": [ - "russian" - ], - "увезти": [ - "russian" - ], - "уволить": [ - "russian" - ], - "угадать": [ - "russian" - ], - "угол": [ - "russian" - ], - "угощать": [ - "russian" - ], - "угроза": [ - "russian" - ], - "угрюмый": [ - "russian" - ], - "удар": [ - "russian" - ], - "удачный": [ - "russian" - ], - "уделять": [ - "russian" - ], - "удивить": [ - "russian" - ], - "удобный": [ - "russian" - ], - "удочка": [ - "russian" - ], - "уезжать": [ - "russian" - ], - "ужин": [ - "russian" - ], - "узел": [ - "russian" - ], - "узкий": [ - "russian" - ], - "уйти": [ - "russian" - ], - "указание": [ - "russian" - ], - "уклон": [ - "russian" - ], - "украсть": [ - "russian" - ], - "укусить": [ - "russian" - ], - "улетать": [ - "russian" - ], - "улица": [ - "russian" - ], - "улыбка": [ - "russian" - ], - "умело": [ - "russian" - ], - "умение": [ - "russian" - ], - "умный": [ - "russian" - ], - "умолять": [ - "russian" - ], - "унести": [ - "russian" - ], - "унижать": [ - "russian" - ], - "унылый": [ - "russian" - ], - "упаковка": [ - "russian" - ], - "упасть": [ - "russian" - ], - "упорно": [ - "russian" - ], - "упрек": [ - "russian" - ], - "урна": [ - "russian" - ], - "уровень": [ - "russian" - ], - "урожай": [ - "russian" - ], - "уронить": [ - "russian" - ], - "усадьба": [ - "russian" - ], - "усатый": [ - "russian" - ], - "усвоить": [ - "russian" - ], - "усилие": [ - "russian" - ], - "условие": [ - "russian" - ], - "услуга": [ - "russian" - ], - "усмешка": [ - "russian" - ], - "успеть": [ - "russian" - ], - "устав": [ - "russian" - ], - "устоять": [ - "russian" - ], - "утечка": [ - "russian" - ], - "утешать": [ - "russian" - ], - "утро": [ - "russian" - ], - "уцелеть": [ - "russian" - ], - "участие": [ - "russian" - ], - "ученик": [ - "russian" - ], - "учесть": [ - "russian" - ], - "ущелье": [ - "russian" - ], - "ущерб": [ - "russian" - ], - "уютный": [ - "russian" - ], - "фабрика": [ - "russian" - ], - "фаворит": [ - "russian" - ], - "факел": [ - "russian" - ], - "факт": [ - "russian" - ], - "фамилия": [ - "russian" - ], - "фантазия": [ - "russian" - ], - "фасад": [ - "russian" - ], - "февраль": [ - "russian" - ], - "феномен": [ - "russian" - ], - "фермер": [ - "russian" - ], - "фигура": [ - "russian" - ], - "физика": [ - "russian" - ], - "филиал": [ - "russian" - ], - "философ": [ - "russian" - ], - "фильм": [ - "russian" - ], - "финал": [ - "russian" - ], - "флаг": [ - "russian" - ], - "флот": [ - "russian" - ], - "фойе": [ - "russian" - ], - "фокус": [ - "russian" - ], - "фонарь": [ - "russian" - ], - "фонд": [ - "russian" - ], - "фонтан": [ - "russian" - ], - "форма": [ - "russian" - ], - "форум": [ - "russian" - ], - "фото": [ - "russian" - ], - "фрагмент": [ - "russian" - ], - "фраза": [ - "russian" - ], - "фракция": [ - "russian" - ], - "фронт": [ - "russian" - ], - "фрукт": [ - "russian" - ], - "функция": [ - "russian" - ], - "фуражка": [ - "russian" - ], - "футбол": [ - "russian" - ], - "футляр": [ - "russian" - ], - "халат": [ - "russian" - ], - "хаос": [ - "russian" - ], - "характер": [ - "russian" - ], - "хата": [ - "russian" - ], - "хвалить": [ - "russian" - ], - "хватать": [ - "russian" - ], - "хвойный": [ - "russian" - ], - "хвост": [ - "russian" - ], - "химия": [ - "russian" - ], - "хирург": [ - "russian" - ], - "хитрый": [ - "russian" - ], - "хищник": [ - "russian" - ], - "хлеб": [ - "russian" - ], - "хлынуть": [ - "russian" - ], - "хмурый": [ - "russian" - ], - "ходить": [ - "russian" - ], - "хозяин": [ - "russian" - ], - "хоккей": [ - "russian" - ], - "холм": [ - "russian" - ], - "холст": [ - "russian" - ], - "хорошо": [ - "russian" - ], - "хотеть": [ - "russian" - ], - "храбрый": [ - "russian" - ], - "храм": [ - "russian" - ], - "хранить": [ - "russian" - ], - "хребет": [ - "russian" - ], - "хрен": [ - "russian" - ], - "хрипло": [ - "russian" - ], - "хроника": [ - "russian" - ], - "хрупкий": [ - "russian" - ], - "художник": [ - "russian" - ], - "худший": [ - "russian" - ], - "хулиган": [ - "russian" - ], - "хутор": [ - "russian" - ], - "царь": [ - "russian" - ], - "цветок": [ - "russian" - ], - "целевой": [ - "russian" - ], - "целиком": [ - "russian" - ], - "целое": [ - "russian" - ], - "цель": [ - "russian" - ], - "цензура": [ - "russian" - ], - "ценить": [ - "russian" - ], - "центр": [ - "russian" - ], - "цепной": [ - "russian" - ], - "цикл": [ - "russian" - ], - "цилиндр": [ - "russian" - ], - "цирк": [ - "russian" - ], - "цитата": [ - "russian" - ], - "цифра": [ - "russian" - ], - "чайник": [ - "russian" - ], - "часы": [ - "russian" - ], - "чашка": [ - "russian" - ], - "человек": [ - "russian" - ], - "челюсть": [ - "russian" - ], - "чемодан": [ - "russian" - ], - "чемпион": [ - "russian" - ], - "чепуха": [ - "russian" - ], - "червь": [ - "russian" - ], - "чердак": [ - "russian" - ], - "через": [ - "russian" - ], - "чернила": [ - "russian" - ], - "черта": [ - "russian" - ], - "чеснок": [ - "russian" - ], - "честно": [ - "russian" - ], - "четверть": [ - "russian" - ], - "четыре": [ - "russian" - ], - "число": [ - "russian" - ], - "чистый": [ - "russian" - ], - "читатель": [ - "russian" - ], - "чтение": [ - "russian" - ], - "чтобы": [ - "russian" - ], - "чувство": [ - "russian" - ], - "чудак": [ - "russian" - ], - "чудный": [ - "russian" - ], - "чудо": [ - "russian" - ], - "чужой": [ - "russian" - ], - "чулок": [ - "russian" - ], - "чума": [ - "russian" - ], - "чушь": [ - "russian" - ], - "чуять": [ - "russian" - ], - "шагать": [ - "russian" - ], - "шанс": [ - "russian" - ], - "шапка": [ - "russian" - ], - "шарик": [ - "russian" - ], - "шарф": [ - "russian" - ], - "шахматы": [ - "russian" - ], - "шашлык": [ - "russian" - ], - "шедевр": [ - "russian" - ], - "шептать": [ - "russian" - ], - "шерсть": [ - "russian" - ], - "шестой": [ - "russian" - ], - "шинель": [ - "russian" - ], - "ширина": [ - "russian" - ], - "шишка": [ - "russian" - ], - "шкаф": [ - "russian" - ], - "школа": [ - "russian" - ], - "шкура": [ - "russian" - ], - "шланг": [ - "russian" - ], - "шлем": [ - "russian" - ], - "шнур": [ - "russian" - ], - "шоколад": [ - "russian" - ], - "шорох": [ - "russian" - ], - "шоссе": [ - "russian" - ], - "шпион": [ - "russian" - ], - "шприц": [ - "russian" - ], - "штаб": [ - "russian" - ], - "штамм": [ - "russian" - ], - "штаны": [ - "russian" - ], - "штатный": [ - "russian" - ], - "штора": [ - "russian" - ], - "штраф": [ - "russian" - ], - "штурм": [ - "russian" - ], - "штык": [ - "russian" - ], - "шумно": [ - "russian" - ], - "шуршать": [ - "russian" - ], - "шутить": [ - "russian" - ], - "шутка": [ - "russian" - ], - "щедрый": [ - "russian" - ], - "щека": [ - "russian" - ], - "щенок": [ - "russian" - ], - "экзамен": [ - "russian" - ], - "экипаж": [ - "russian" - ], - "экономия": [ - "russian" - ], - "экран": [ - "russian" - ], - "эксперт": [ - "russian" - ], - "элемент": [ - "russian" - ], - "элитный": [ - "russian" - ], - "эмоция": [ - "russian" - ], - "энергия": [ - "russian" - ], - "эпизод": [ - "russian" - ], - "эпоха": [ - "russian" - ], - "эскиз": [ - "russian" - ], - "эстрада": [ - "russian" - ], - "этап": [ - "russian" - ], - "этика": [ - "russian" - ], - "этот": [ - "russian" - ], - "эфир": [ - "russian" - ], - "эффект": [ - "russian" - ], - "эшелон": [ - "russian" - ], - "юбилей": [ - "russian" - ], - "юбка": [ - "russian" - ], - "южный": [ - "russian" - ], - "юмор": [ - "russian" - ], - "юность": [ - "russian" - ], - "юрист": [ - "russian" - ], - "юстиция": [ - "russian" - ], - "яблоко": [ - "russian" - ], - "явление": [ - "russian" - ], - "ягода": [ - "russian" - ], - "ядро": [ - "russian" - ], - "язык": [ - "russian" - ], - "яйцо": [ - "russian" - ], - "якобы": [ - "russian" - ], - "якорь": [ - "russian" - ], - "январь": [ - "russian" - ], - "яркий": [ - "russian" - ], - "ярмарка": [ - "russian" - ], - "ярость": [ - "russian" - ], - "ясный": [ - "russian" - ], - "яхта": [ - "russian" - ], - "ячейка": [ - "russian" - ], - "ящик": [ - "russian" - ], - "ábaco": [ - "spanish" - ], - abdomen: abdomen, - abeja: abeja, - abierto: abierto, - abogado: abogado, - abono: abono, - aborto: aborto, - abrazo: abrazo, - abrir: abrir, - abuelo: abuelo, - abuso: abuso, - acabar: acabar, - academia: academia, - acceso: acceso, - "acción": [ - "spanish" - ], - aceite: aceite, - acelga: acelga, - acento: acento, - aceptar: aceptar, - "ácido": [ - "spanish" - ], - aclarar: aclarar, - "acné": [ - "spanish" - ], - acoger: acoger, - acoso: acoso, - activo: activo, - acto: acto, - actriz: actriz, - actuar: actuar, - acudir: acudir, - acuerdo: acuerdo, - acusar: acusar, - adicto: adicto, - admitir: admitir, - adoptar: adoptar, - adorno: adorno, - aduana: aduana, - adulto: adulto, - "aéreo": [ - "spanish" - ], - afectar: afectar, - "afición": [ - "spanish" - ], - afinar: afinar, - afirmar: afirmar, - "ágil": [ - "spanish" - ], - agitar: agitar, - "agonía": [ - "spanish" - ], - agosto: agosto, - agotar: agotar, - agregar: agregar, - agrio: agrio, - agua: agua, - agudo: agudo, - "águila": [ - "spanish" - ], - aguja: aguja, - ahogo: ahogo, - ahorro: ahorro, - aire: aire, - aislar: aislar, - ajedrez: ajedrez, - ajeno: ajeno, - ajuste: ajuste, - "alacrán": [ - "spanish" - ], - alambre: alambre, - alarma: alarma, - alba: alba, - "álbum": [ - "spanish" - ], - alcalde: alcalde, - aldea: aldea, - alegre: alegre, - alejar: alejar, - alerta: alerta, - aleta: aleta, - alfiler: alfiler, - alga: alga, - "algodón": [ - "spanish" - ], - aliado: aliado, - aliento: aliento, - alivio: alivio, - alma: alma, - almeja: almeja, - "almíbar": [ - "spanish" - ], - altar: altar, - alteza: alteza, - altivo: altivo, - alto: alto, - altura: altura, - alumno: alumno, - alzar: alzar, - amable: amable, - amante: amante, - amapola: amapola, - amargo: amargo, - amasar: amasar, - "ámbar": [ - "spanish" - ], - "ámbito": [ - "spanish" - ], - ameno: ameno, - amigo: amigo, - amistad: amistad, - amor: amor, - amparo: amparo, - amplio: amplio, - ancho: ancho, - anciano: anciano, - ancla: ancla, - andar: andar, - "andén": [ - "spanish" - ], - anemia: anemia, - "ángulo": [ - "spanish" - ], - anillo: anillo, - "ánimo": [ - "spanish" - ], - "anís": [ - "spanish" - ], - anotar: anotar, - antena: antena, - antiguo: antiguo, - antojo: antojo, - anual: anual, - anular: anular, - anuncio: anuncio, - "añadir": [ - "spanish" - ], - "añejo": [ - "spanish" - ], - "año": [ - "spanish" - ], - apagar: apagar, - aparato: aparato, - apetito: apetito, - apio: apio, - aplicar: aplicar, - apodo: apodo, - aporte: aporte, - apoyo: apoyo, - aprender: aprender, - aprobar: aprobar, - apuesta: apuesta, - apuro: apuro, - arado: arado, - "araña": [ - "spanish" - ], - arar: arar, - "árbitro": [ - "spanish" - ], - "árbol": [ - "spanish" - ], - arbusto: arbusto, - archivo: archivo, - arco: arco, - arder: arder, - ardilla: ardilla, - arduo: arduo, - "área": [ - "spanish" - ], - "árido": [ - "spanish" - ], - aries: aries, - "armonía": [ - "spanish" - ], - "arnés": [ - "spanish" - ], - aroma: aroma, - arpa: arpa, - "arpón": [ - "spanish" - ], - arreglo: arreglo, - arroz: arroz, - arruga: arruga, - arte: arte, - artista: artista, - asa: asa, - asado: asado, - asalto: asalto, - ascenso: ascenso, - asegurar: asegurar, - aseo: aseo, - asesor: asesor, - asiento: asiento, - asilo: asilo, - asistir: asistir, - asno: asno, - asombro: asombro, - "áspero": [ - "spanish" - ], - astilla: astilla, - astro: astro, - astuto: astuto, - asumir: asumir, - asunto: asunto, - atajo: atajo, - ataque: ataque, - atar: atar, - atento: atento, - ateo: ateo, - "ático": [ - "spanish" - ], - atleta: atleta, - "átomo": [ - "spanish" - ], - atraer: atraer, - atroz: atroz, - "atún": [ - "spanish" - ], - audaz: audaz, - audio: audio, - auge: auge, - aula: aula, - aumento: aumento, - ausente: ausente, - autor: autor, - aval: aval, - avance: avance, - avaro: avaro, - ave: ave, - avellana: avellana, - avena: avena, - avestruz: avestruz, - "avión": [ - "spanish" - ], - aviso: aviso, - ayer: ayer, - ayuda: ayuda, - ayuno: ayuno, - "azafrán": [ - "spanish" - ], - azar: azar, - azote: azote, - "azúcar": [ - "spanish" - ], - azufre: azufre, - azul: azul, - baba: baba, - babor: babor, - bache: bache, - "bahía": [ - "spanish" - ], - baile: baile, - bajar: bajar, - balanza: balanza, - "balcón": [ - "spanish" - ], - balde: balde, - "bambú": [ - "spanish" - ], - banco: banco, - banda: banda, - "baño": [ - "spanish" - ], - barba: barba, - barco: barco, - barniz: barniz, - barro: barro, - "báscula": [ - "spanish" - ], - "bastón": [ - "spanish" - ], - basura: basura, - batalla: batalla, - "batería": [ - "spanish" - ], - batir: batir, - batuta: batuta, - "baúl": [ - "spanish" - ], - bazar: bazar, - "bebé": [ - "spanish" - ], - bebida: bebida, - bello: bello, - besar: besar, - beso: beso, - bestia: bestia, - bicho: bicho, - bien: bien, - bingo: bingo, - blanco: blanco, - bloque: bloque, - blusa: blusa, - boa: boa, - bobina: bobina, - bobo: bobo, - boca: boca, - bocina: bocina, - boda: boda, - bodega: bodega, - boina: boina, - bola: bola, - bolero: bolero, - bolsa: bolsa, - bomba: bomba, - bondad: bondad, - bonito: bonito, - bono: bono, - "bonsái": [ - "spanish" - ], - borde: borde, - borrar: borrar, - bosque: bosque, - bote: bote, - "botín": [ - "spanish" - ], - "bóveda": [ - "spanish" - ], - bozal: bozal, - bravo: bravo, - brazo: brazo, - brecha: brecha, - breve: breve, - brillo: brillo, - brinco: brinco, - brisa: brisa, - broca: broca, - broma: broma, - bronce: bronce, - brote: brote, - bruja: bruja, - brusco: brusco, - bruto: bruto, - buceo: buceo, - bucle: bucle, - bueno: bueno, - buey: buey, - bufanda: bufanda, - "bufón": [ - "spanish" - ], - "búho": [ - "spanish" - ], - buitre: buitre, - bulto: bulto, - burbuja: burbuja, - burla: burla, - burro: burro, - buscar: buscar, - butaca: butaca, - "buzón": [ - "spanish" - ], - caballo: caballo, - cabeza: cabeza, - cabina: cabina, - cabra: cabra, - cacao: cacao, - "cadáver": [ - "spanish" - ], - cadena: cadena, - caer: caer, - "café": [ - "spanish" - ], - "caída": [ - "spanish" - ], - "caimán": [ - "spanish" - ], - caja: caja, - "cajón": [ - "spanish" - ], - cal: cal, - calamar: calamar, - calcio: calcio, - caldo: caldo, - calidad: calidad, - calle: calle, - calma: calma, - calor: calor, - calvo: calvo, - cama: cama, - cambio: cambio, - camello: camello, - camino: camino, - campo: campo, - "cáncer": [ - "spanish" - ], - candil: candil, - canela: canela, - canguro: canguro, - canica: canica, - canto: canto, - "caña": [ - "spanish" - ], - "cañón": [ - "spanish" - ], - caoba: caoba, - caos: caos, - capaz: capaz, - "capitán": [ - "spanish" - ], - capote: capote, - captar: captar, - capucha: capucha, - cara: cara, - "carbón": [ - "spanish" - ], - "cárcel": [ - "spanish" - ], - careta: careta, - carga: carga, - "cariño": [ - "spanish" - ], - carne: carne, - carpeta: carpeta, - carro: carro, - carta: carta, - casa: casa, - casco: casco, - casero: casero, - caspa: caspa, - castor: castor, - catorce: catorce, - catre: catre, - caudal: caudal, - causa: causa, - cazo: cazo, - cebolla: cebolla, - ceder: ceder, - cedro: cedro, - celda: celda, - "célebre": [ - "spanish" - ], - celoso: celoso, - "célula": [ - "spanish" - ], - cemento: cemento, - ceniza: ceniza, - centro: centro, - cerca: cerca, - cerdo: cerdo, - cereza: cereza, - cero: cero, - cerrar: cerrar, - certeza: certeza, - "césped": [ - "spanish" - ], - cetro: cetro, - chacal: chacal, - chaleco: chaleco, - "champú": [ - "spanish" - ], - chancla: chancla, - chapa: chapa, - charla: charla, - chico: chico, - chiste: chiste, - chivo: chivo, - choque: choque, - choza: choza, - chuleta: chuleta, - chupar: chupar, - "ciclón": [ - "spanish" - ], - ciego: ciego, - cielo: cielo, - cien: cien, - cierto: cierto, - cifra: cifra, - cigarro: cigarro, - cima: cima, - cinco: cinco, - cine: cine, - cinta: cinta, - "ciprés": [ - "spanish" - ], - circo: circo, - ciruela: ciruela, - cisne: cisne, - cita: cita, - ciudad: ciudad, - clamor: clamor, - clan: clan, - claro: claro, - clase: clase, - clave: clave, - cliente: cliente, - clima: clima, - "clínica": [ - "spanish" - ], - cobre: cobre, - "cocción": [ - "spanish" - ], - cochino: cochino, - cocina: cocina, - coco: coco, - "código": [ - "spanish" - ], - codo: codo, - cofre: cofre, - coger: coger, - cohete: cohete, - "cojín": [ - "spanish" - ], - cojo: cojo, - cola: cola, - colcha: colcha, - colegio: colegio, - colgar: colgar, - colina: colina, - collar: collar, - colmo: colmo, - columna: columna, - combate: combate, - comer: comer, - comida: comida, - "cómodo": [ - "spanish" - ], - compra: compra, - conde: conde, - conejo: conejo, - conga: conga, - conocer: conocer, - consejo: consejo, - contar: contar, - copa: copa, - copia: copia, - "corazón": [ - "spanish" - ], - corbata: corbata, - corcho: corcho, - "cordón": [ - "spanish" - ], - corona: corona, - correr: correr, - coser: coser, - cosmos: cosmos, - costa: costa, - "cráneo": [ - "spanish" - ], - "cráter": [ - "spanish" - ], - crear: crear, - crecer: crecer, - "creído": [ - "spanish" - ], - crema: crema, - "cría": [ - "spanish" - ], - crimen: crimen, - cripta: cripta, - crisis: crisis, - cromo: cromo, - "crónica": [ - "spanish" - ], - croqueta: croqueta, - crudo: crudo, - cruz: cruz, - cuadro: cuadro, - cuarto: cuarto, - cuatro: cuatro, - cubo: cubo, - cubrir: cubrir, - cuchara: cuchara, - cuello: cuello, - cuento: cuento, - cuerda: cuerda, - cuesta: cuesta, - cueva: cueva, - cuidar: cuidar, - culebra: culebra, - culpa: culpa, - culto: culto, - cumbre: cumbre, - cumplir: cumplir, - cuna: cuna, - cuneta: cuneta, - cuota: cuota, - "cupón": [ - "spanish" - ], - "cúpula": [ - "spanish" - ], - curar: curar, - curioso: curioso, - curso: curso, - curva: curva, - cutis: cutis, - dama: dama, - danza: danza, - dar: dar, - dardo: dardo, - "dátil": [ - "spanish" - ], - deber: deber, - "débil": [ - "spanish" - ], - "década": [ - "spanish" - ], - decir: decir, - dedo: dedo, - defensa: defensa, - definir: definir, - dejar: dejar, - "delfín": [ - "spanish" - ], - delgado: delgado, - delito: delito, - demora: demora, - denso: denso, - dental: dental, - deporte: deporte, - derecho: derecho, - derrota: derrota, - desayuno: desayuno, - deseo: deseo, - desfile: desfile, - desnudo: desnudo, - destino: destino, - "desvío": [ - "spanish" - ], - detalle: detalle, - detener: detener, - deuda: deuda, - "día": [ - "spanish" - ], - diablo: diablo, - diadema: diadema, - diamante: diamante, - diana: diana, - diario: diario, - dibujo: dibujo, - dictar: dictar, - diente: diente, - dieta: dieta, - diez: diez, - "difícil": [ - "spanish" - ], - digno: digno, - dilema: dilema, - diluir: diluir, - dinero: dinero, - directo: directo, - dirigir: dirigir, - disco: disco, - "diseño": [ - "spanish" - ], - disfraz: disfraz, - diva: diva, - divino: divino, - doble: doble, - doce: doce, - dolor: dolor, - domingo: domingo, - don: don, - donar: donar, - dorado: dorado, - dormir: dormir, - dorso: dorso, - dos: dos, - dosis: dosis, - "dragón": [ - "spanish" - ], - droga: droga, - ducha: ducha, - duda: duda, - duelo: duelo, - "dueño": [ - "spanish" - ], - dulce: dulce, - "dúo": [ - "spanish" - ], - duque: duque, - durar: durar, - dureza: dureza, - duro: duro, - "ébano": [ - "spanish" - ], - ebrio: ebrio, - echar: echar, - eco: eco, - ecuador: ecuador, - edad: edad, - "edición": [ - "spanish" - ], - edificio: edificio, - editor: editor, - educar: educar, - efecto: efecto, - eficaz: eficaz, - eje: eje, - ejemplo: ejemplo, - elefante: elefante, - elegir: elegir, - elemento: elemento, - elevar: elevar, - elipse: elipse, - "élite": [ - "spanish" - ], - elixir: elixir, - elogio: elogio, - eludir: eludir, - embudo: embudo, - emitir: emitir, - "emoción": [ - "spanish" - ], - empate: empate, - "empeño": [ - "spanish" - ], - empleo: empleo, - empresa: empresa, - enano: enano, - encargo: encargo, - enchufe: enchufe, - "encía": [ - "spanish" - ], - enemigo: enemigo, - enero: enero, - enfado: enfado, - enfermo: enfermo, - "engaño": [ - "spanish" - ], - enigma: enigma, - enlace: enlace, - enorme: enorme, - enredo: enredo, - ensayo: ensayo, - "enseñar": [ - "spanish" - ], - entero: entero, - entrar: entrar, - envase: envase, - "envío": [ - "spanish" - ], - "época": [ - "spanish" - ], - equipo: equipo, - erizo: erizo, - escala: escala, - escena: escena, - escolar: escolar, - escribir: escribir, - escudo: escudo, - esencia: esencia, - esfera: esfera, - esfuerzo: esfuerzo, - espada: espada, - espejo: espejo, - "espía": [ - "spanish" - ], - esposa: esposa, - espuma: espuma, - "esquí": [ - "spanish" - ], - estar: estar, - este: este, - estilo: estilo, - estufa: estufa, - etapa: etapa, - eterno: eterno, - "ética": [ - "spanish" - ], - etnia: etnia, - evadir: evadir, - evaluar: evaluar, - evento: evento, - evitar: evitar, - exacto: exacto, - examen: examen, - exceso: exceso, - excusa: excusa, - exento: exento, - exigir: exigir, - exilio: exilio, - existir: existir, - "éxito": [ - "spanish" - ], - experto: experto, - explicar: explicar, - exponer: exponer, - extremo: extremo, - "fábrica": [ - "spanish" - ], - "fábula": [ - "spanish" - ], - fachada: fachada, - "fácil": [ - "spanish" - ], - factor: factor, - faena: faena, - faja: faja, - falda: falda, - fallo: fallo, - falso: falso, - faltar: faltar, - fama: fama, - familia: familia, - famoso: famoso, - "faraón": [ - "spanish" - ], - farmacia: farmacia, - farol: farol, - farsa: farsa, - fase: fase, - fatiga: fatiga, - fauna: fauna, - favor: favor, - fax: fax, - febrero: febrero, - fecha: fecha, - feliz: feliz, - feo: feo, - feria: feria, - feroz: feroz, - "fértil": [ - "spanish" - ], - fervor: fervor, - "festín": [ - "spanish" - ], - fiable: fiable, - fianza: fianza, - fiar: fiar, - fibra: fibra, - "ficción": [ - "spanish" - ], - ficha: ficha, - fideo: fideo, - fiebre: fiebre, - fiel: fiel, - fiera: fiera, - fiesta: fiesta, - figura: figura, - fijar: fijar, - fijo: fijo, - fila: fila, - filete: filete, - filial: filial, - filtro: filtro, - fin: fin, - finca: finca, - fingir: fingir, - finito: finito, - firma: firma, - flaco: flaco, - flauta: flauta, - flecha: flecha, - flor: flor, - flota: flota, - fluir: fluir, - flujo: flujo, - "flúor": [ - "spanish" - ], - fobia: fobia, - foca: foca, - fogata: fogata, - "fogón": [ - "spanish" - ], - folio: folio, - folleto: folleto, - fondo: fondo, - forma: forma, - forro: forro, - fortuna: fortuna, - forzar: forzar, - fosa: fosa, - foto: foto, - fracaso: fracaso, - "frágil": [ - "spanish" - ], - franja: franja, - frase: frase, - fraude: fraude, - "freír": [ - "spanish" - ], - freno: freno, - fresa: fresa, - "frío": [ - "spanish" - ], - frito: frito, - fruta: fruta, - fuego: fuego, - fuente: fuente, - fuerza: fuerza, - fuga: fuga, - fumar: fumar, - "función": [ - "spanish" - ], - funda: funda, - "furgón": [ - "spanish" - ], - furia: furia, - fusil: fusil, - "fútbol": [ - "spanish" - ], - futuro: futuro, - gacela: gacela, - gafas: gafas, - gaita: gaita, - gajo: gajo, - gala: gala, - "galería": [ - "spanish" - ], - gallo: gallo, - gamba: gamba, - ganar: ganar, - gancho: gancho, - ganga: ganga, - ganso: ganso, - garaje: garaje, - garza: garza, - gasolina: gasolina, - gastar: gastar, - gato: gato, - "gavilán": [ - "spanish" - ], - gemelo: gemelo, - gemir: gemir, - gen: gen, - "género": [ - "spanish" - ], - genio: genio, - gente: gente, - geranio: geranio, - gerente: gerente, - germen: germen, - gesto: gesto, - gigante: gigante, - gimnasio: gimnasio, - girar: girar, - giro: giro, - glaciar: glaciar, - globo: globo, - gloria: gloria, - gol: gol, - golfo: golfo, - goloso: goloso, - golpe: golpe, - goma: goma, - gordo: gordo, - gorila: gorila, - gorra: gorra, - gota: gota, - goteo: goteo, - gozar: gozar, - grada: grada, - "gráfico": [ - "spanish" - ], - grano: grano, - grasa: grasa, - gratis: gratis, - grave: grave, - grieta: grieta, - grillo: grillo, - gripe: gripe, - gris: gris, - grito: grito, - grosor: grosor, - "grúa": [ - "spanish" - ], - grueso: grueso, - grumo: grumo, - grupo: grupo, - guante: guante, - guapo: guapo, - guardia: guardia, - guerra: guerra, - "guía": [ - "spanish" - ], - "guiño": [ - "spanish" - ], - guion: guion, - guiso: guiso, - guitarra: guitarra, - gusano: gusano, - gustar: gustar, - haber: haber, - "hábil": [ - "spanish" - ], - hablar: hablar, - hacer: hacer, - hacha: hacha, - hada: hada, - hallar: hallar, - hamaca: hamaca, - harina: harina, - haz: haz, - "hazaña": [ - "spanish" - ], - hebilla: hebilla, - hebra: hebra, - hecho: hecho, - helado: helado, - helio: helio, - hembra: hembra, - herir: herir, - hermano: hermano, - "héroe": [ - "spanish" - ], - hervir: hervir, - hielo: hielo, - hierro: hierro, - "hígado": [ - "spanish" - ], - higiene: higiene, - hijo: hijo, - himno: himno, - historia: historia, - hocico: hocico, - hogar: hogar, - hoguera: hoguera, - hoja: hoja, - hombre: hombre, - hongo: hongo, - honor: honor, - honra: honra, - hora: hora, - hormiga: hormiga, - horno: horno, - hostil: hostil, - hoyo: hoyo, - hueco: hueco, - huelga: huelga, - huerta: huerta, - hueso: hueso, - huevo: huevo, - huida: huida, - huir: huir, - humano: humano, - "húmedo": [ - "spanish" - ], - humilde: humilde, - humo: humo, - hundir: hundir, - "huracán": [ - "spanish" - ], - hurto: hurto, - icono: icono, - ideal: ideal, - idioma: idioma, - "ídolo": [ - "spanish" - ], - iglesia: iglesia, - "iglú": [ - "spanish" - ], - igual: igual, - ilegal: ilegal, - "ilusión": [ - "spanish" - ], - imagen: imagen, - "imán": [ - "spanish" - ], - imitar: imitar, - impar: impar, - imperio: imperio, - imponer: imponer, - impulso: impulso, - incapaz: incapaz, - "índice": [ - "spanish" - ], - inerte: inerte, - infiel: infiel, - informe: informe, - ingenio: ingenio, - inicio: inicio, - inmenso: inmenso, - inmune: inmune, - innato: innato, - insecto: insecto, - instante: instante, - "interés": [ - "spanish" - ], - "íntimo": [ - "spanish" - ], - intuir: intuir, - "inútil": [ - "spanish" - ], - invierno: invierno, - ira: ira, - iris: iris, - "ironía": [ - "spanish" - ], - isla: isla, - islote: islote, - "jabalí": [ - "spanish" - ], - "jabón": [ - "spanish" - ], - "jamón": [ - "spanish" - ], - jarabe: jarabe, - "jardín": [ - "spanish" - ], - jarra: jarra, - jaula: jaula, - "jazmín": [ - "spanish" - ], - jefe: jefe, - jeringa: jeringa, - jinete: jinete, - jornada: jornada, - joroba: joroba, - joven: joven, - joya: joya, - juerga: juerga, - jueves: jueves, - juez: juez, - jugador: jugador, - jugo: jugo, - juguete: juguete, - juicio: juicio, - junco: junco, - jungla: jungla, - junio: junio, - juntar: juntar, - "júpiter": [ - "spanish" - ], - jurar: jurar, - justo: justo, - juvenil: juvenil, - juzgar: juzgar, - kilo: kilo, - koala: koala, - labio: labio, - lacio: lacio, - lacra: lacra, - lado: lado, - "ladrón": [ - "spanish" - ], - lagarto: lagarto, - "lágrima": [ - "spanish" - ], - laguna: laguna, - laico: laico, - lamer: lamer, - "lámina": [ - "spanish" - ], - "lámpara": [ - "spanish" - ], - lana: lana, - lancha: lancha, - langosta: langosta, - lanza: lanza, - "lápiz": [ - "spanish" - ], - largo: largo, - larva: larva, - "lástima": [ - "spanish" - ], - lata: lata, - "látex": [ - "spanish" - ], - latir: latir, - laurel: laurel, - lavar: lavar, - lazo: lazo, - leal: leal, - "lección": [ - "spanish" - ], - leche: leche, - lector: lector, - leer: leer, - "legión": [ - "spanish" - ], - legumbre: legumbre, - lejano: lejano, - lengua: lengua, - lento: lento, - "leña": [ - "spanish" - ], - "león": [ - "spanish" - ], - leopardo: leopardo, - "lesión": [ - "spanish" - ], - letal: letal, - letra: letra, - leve: leve, - leyenda: leyenda, - libertad: libertad, - libro: libro, - licor: licor, - "líder": [ - "spanish" - ], - lidiar: lidiar, - lienzo: lienzo, - liga: liga, - ligero: ligero, - lima: lima, - "límite": [ - "spanish" - ], - "limón": [ - "spanish" - ], - limpio: limpio, - lince: lince, - lindo: lindo, - "línea": [ - "spanish" - ], - lingote: lingote, - lino: lino, - linterna: linterna, - "líquido": [ - "spanish" - ], - liso: liso, - lista: lista, - litera: litera, - litio: litio, - litro: litro, - llaga: llaga, - llama: llama, - llanto: llanto, - llave: llave, - llegar: llegar, - llenar: llenar, - llevar: llevar, - llorar: llorar, - llover: llover, - lluvia: lluvia, - lobo: lobo, - "loción": [ - "spanish" - ], - loco: loco, - locura: locura, - "lógica": [ - "spanish" - ], - logro: logro, - lombriz: lombriz, - lomo: lomo, - lonja: lonja, - lote: lote, - lucha: lucha, - lucir: lucir, - lugar: lugar, - lujo: lujo, - luna: luna, - lunes: lunes, - lupa: lupa, - lustro: lustro, - luto: luto, - luz: luz, - maceta: maceta, - macho: macho, - madera: madera, - madre: madre, - maduro: maduro, - maestro: maestro, - mafia: mafia, - magia: magia, - mago: mago, - "maíz": [ - "spanish" - ], - maldad: maldad, - maleta: maleta, - malla: malla, - malo: malo, - "mamá": [ - "spanish" - ], - mambo: mambo, - mamut: mamut, - manco: manco, - mando: mando, - manejar: manejar, - manga: manga, - "maniquí": [ - "spanish" - ], - manjar: manjar, - mano: mano, - manso: manso, - manta: manta, - "mañana": [ - "spanish" - ], - mapa: mapa, - "máquina": [ - "spanish" - ], - mar: mar, - marco: marco, - marea: marea, - marfil: marfil, - margen: margen, - marido: marido, - "mármol": [ - "spanish" - ], - "marrón": [ - "spanish" - ], - martes: martes, - marzo: marzo, - masa: masa, - "máscara": [ - "spanish" - ], - masivo: masivo, - matar: matar, - materia: materia, - matiz: matiz, - matriz: matriz, - "máximo": [ - "spanish" - ], - mayor: mayor, - mazorca: mazorca, - mecha: mecha, - medalla: medalla, - medio: medio, - "médula": [ - "spanish" - ], - mejilla: mejilla, - mejor: mejor, - melena: melena, - "melón": [ - "spanish" - ], - memoria: memoria, - menor: menor, - mensaje: mensaje, - mente: mente, - "menú": [ - "spanish" - ], - mercado: mercado, - merengue: merengue, - "mérito": [ - "spanish" - ], - mes: mes, - "mesón": [ - "spanish" - ], - meta: meta, - meter: meter, - "método": [ - "spanish" - ], - metro: metro, - mezcla: mezcla, - miedo: miedo, - miel: miel, - miembro: miembro, - miga: miga, - mil: mil, - milagro: milagro, - militar: militar, - "millón": [ - "spanish" - ], - mimo: mimo, - mina: mina, - minero: minero, - "mínimo": [ - "spanish" - ], - minuto: minuto, - miope: miope, - mirar: mirar, - misa: misa, - miseria: miseria, - misil: misil, - mismo: mismo, - mitad: mitad, - mito: mito, - mochila: mochila, - "moción": [ - "spanish" - ], - moda: moda, - modelo: modelo, - moho: moho, - mojar: mojar, - molde: molde, - moler: moler, - molino: molino, - momento: momento, - momia: momia, - monarca: monarca, - moneda: moneda, - monja: monja, - monto: monto, - "moño": [ - "spanish" - ], - morada: morada, - morder: morder, - moreno: moreno, - morir: morir, - morro: morro, - morsa: morsa, - mortal: mortal, - mosca: mosca, - mostrar: mostrar, - motivo: motivo, - mover: mover, - "móvil": [ - "spanish" - ], - mozo: mozo, - mucho: mucho, - mudar: mudar, - mueble: mueble, - muela: muela, - muerte: muerte, - muestra: muestra, - mugre: mugre, - mujer: mujer, - mula: mula, - muleta: muleta, - multa: multa, - mundo: mundo, - "muñeca": [ - "spanish" - ], - mural: mural, - muro: muro, - "músculo": [ - "spanish" - ], - museo: museo, - musgo: musgo, - "música": [ - "spanish" - ], - muslo: muslo, - "nácar": [ - "spanish" - ], - "nación": [ - "spanish" - ], - nadar: nadar, - naipe: naipe, - naranja: naranja, - nariz: nariz, - narrar: narrar, - nasal: nasal, - natal: natal, - nativo: nativo, - natural: natural, - "náusea": [ - "spanish" - ], - naval: naval, - nave: nave, - navidad: navidad, - necio: necio, - "néctar": [ - "spanish" - ], - negar: negar, - negocio: negocio, - negro: negro, - "neón": [ - "spanish" - ], - nervio: nervio, - neto: neto, - neutro: neutro, - nevar: nevar, - nevera: nevera, - nicho: nicho, - nido: nido, - niebla: niebla, - nieto: nieto, - "niñez": [ - "spanish" - ], - "niño": [ - "spanish" - ], - "nítido": [ - "spanish" - ], - nivel: nivel, - nobleza: nobleza, - noche: noche, - "nómina": [ - "spanish" - ], - noria: noria, - norma: norma, - norte: norte, - nota: nota, - noticia: noticia, - novato: novato, - novela: novela, - novio: novio, - nube: nube, - nuca: nuca, - "núcleo": [ - "spanish" - ], - nudillo: nudillo, - nudo: nudo, - nuera: nuera, - nueve: nueve, - nuez: nuez, - nulo: nulo, - "número": [ - "spanish" - ], - nutria: nutria, - oasis: oasis, - obeso: obeso, - obispo: obispo, - objeto: objeto, - obra: obra, - obrero: obrero, - observar: observar, - obtener: obtener, - obvio: obvio, - oca: oca, - ocaso: ocaso, - "océano": [ - "spanish" - ], - ochenta: ochenta, - ocho: ocho, - ocio: ocio, - ocre: ocre, - octavo: octavo, - octubre: octubre, - oculto: oculto, - ocupar: ocupar, - ocurrir: ocurrir, - odiar: odiar, - odio: odio, - odisea: odisea, - oeste: oeste, - ofensa: ofensa, - oferta: oferta, - oficio: oficio, - ofrecer: ofrecer, - ogro: ogro, - "oído": [ - "spanish" - ], - "oír": [ - "spanish" - ], - ojo: ojo, - ola: ola, - oleada: oleada, - olfato: olfato, - olivo: olivo, - olla: olla, - olmo: olmo, - olor: olor, - olvido: olvido, - ombligo: ombligo, - onda: onda, - onza: onza, - opaco: opaco, - "opción": [ - "spanish" - ], - "ópera": [ - "spanish" - ], - opinar: opinar, - oponer: oponer, - optar: optar, - "óptica": [ - "spanish" - ], - opuesto: opuesto, - "oración": [ - "spanish" - ], - orador: orador, - oral: oral, - "órbita": [ - "spanish" - ], - orca: orca, - orden: orden, - oreja: oreja, - "órgano": [ - "spanish" - ], - "orgía": [ - "spanish" - ], - orgullo: orgullo, - oriente: oriente, - origen: origen, - orilla: orilla, - oro: oro, - orquesta: orquesta, - oruga: oruga, - "osadía": [ - "spanish" - ], - oscuro: oscuro, - osezno: osezno, - oso: oso, - ostra: ostra, - "otoño": [ - "spanish" - ], - otro: otro, - oveja: oveja, - "óvulo": [ - "spanish" - ], - "óxido": [ - "spanish" - ], - "oxígeno": [ - "spanish" - ], - oyente: oyente, - ozono: ozono, - pacto: pacto, - padre: padre, - paella: paella, - "página": [ - "spanish" - ], - pago: pago, - "país": [ - "spanish" - ], - "pájaro": [ - "spanish" - ], - palabra: palabra, - palco: palco, - paleta: paleta, - "pálido": [ - "spanish" - ], - palma: palma, - paloma: paloma, - palpar: palpar, - pan: pan, - panal: panal, - "pánico": [ - "spanish" - ], - pantera: pantera, - "pañuelo": [ - "spanish" - ], - "papá": [ - "spanish" - ], - papel: papel, - papilla: papilla, - paquete: paquete, - parar: parar, - parcela: parcela, - pared: pared, - parir: parir, - paro: paro, - "párpado": [ - "spanish" - ], - parque: parque, - "párrafo": [ - "spanish" - ], - parte: parte, - pasar: pasar, - paseo: paseo, - "pasión": [ - "spanish" - ], - paso: paso, - pasta: pasta, - pata: pata, - patio: patio, - patria: patria, - pausa: pausa, - pauta: pauta, - pavo: pavo, - payaso: payaso, - "peatón": [ - "spanish" - ], - pecado: pecado, - pecera: pecera, - pecho: pecho, - pedal: pedal, - pedir: pedir, - pegar: pegar, - peine: peine, - pelar: pelar, - "peldaño": [ - "spanish" - ], - pelea: pelea, - peligro: peligro, - pellejo: pellejo, - pelo: pelo, - peluca: peluca, - pena: pena, - pensar: pensar, - "peñón": [ - "spanish" - ], - "peón": [ - "spanish" - ], - peor: peor, - pepino: pepino, - "pequeño": [ - "spanish" - ], - pera: pera, - percha: percha, - perder: perder, - pereza: pereza, - perfil: perfil, - perico: perico, - perla: perla, - permiso: permiso, - perro: perro, - persona: persona, - pesa: pesa, - pesca: pesca, - "pésimo": [ - "spanish" - ], - "pestaña": [ - "spanish" - ], - "pétalo": [ - "spanish" - ], - "petróleo": [ - "spanish" - ], - pez: pez, - "pezuña": [ - "spanish" - ], - picar: picar, - "pichón": [ - "spanish" - ], - pie: pie, - piedra: piedra, - pierna: pierna, - pieza: pieza, - pijama: pijama, - pilar: pilar, - piloto: piloto, - pimienta: pimienta, - pino: pino, - pintor: pintor, - pinza: pinza, - "piña": [ - "spanish" - ], - piojo: piojo, - pipa: pipa, - pirata: pirata, - pisar: pisar, - piscina: piscina, - piso: piso, - pista: pista, - "pitón": [ - "spanish" - ], - pizca: pizca, - placa: placa, - plan: plan, - plata: plata, - playa: playa, - plaza: plaza, - pleito: pleito, - pleno: pleno, - plomo: plomo, - pluma: pluma, - plural: plural, - pobre: pobre, - poco: poco, - poder: poder, - podio: podio, - poema: poema, - "poesía": [ - "spanish" - ], - poeta: poeta, - polen: polen, - "policía": [ - "spanish" - ], - pollo: pollo, - polvo: polvo, - pomada: pomada, - pomelo: pomelo, - pomo: pomo, - pompa: pompa, - poner: poner, - "porción": [ - "spanish" - ], - portal: portal, - posada: posada, - poseer: poseer, - posible: posible, - poste: poste, - potencia: potencia, - potro: potro, - pozo: pozo, - prado: prado, - precoz: precoz, - pregunta: pregunta, - premio: premio, - prensa: prensa, - preso: preso, - previo: previo, - primo: primo, - "príncipe": [ - "spanish" - ], - "prisión": [ - "spanish" - ], - privar: privar, - proa: proa, - probar: probar, - proceso: proceso, - producto: producto, - proeza: proeza, - profesor: profesor, - programa: programa, - prole: prole, - promesa: promesa, - pronto: pronto, - propio: propio, - "próximo": [ - "spanish" - ], - prueba: prueba, - "público": [ - "spanish" - ], - puchero: puchero, - pudor: pudor, - pueblo: pueblo, - puerta: puerta, - puesto: puesto, - pulga: pulga, - pulir: pulir, - "pulmón": [ - "spanish" - ], - pulpo: pulpo, - pulso: pulso, - puma: puma, - punto: punto, - "puñal": [ - "spanish" - ], - "puño": [ - "spanish" - ], - pupa: pupa, - pupila: pupila, - "puré": [ - "spanish" - ], - quedar: quedar, - queja: queja, - quemar: quemar, - querer: querer, - queso: queso, - quieto: quieto, - "química": [ - "spanish" - ], - quince: quince, - quitar: quitar, - "rábano": [ - "spanish" - ], - rabia: rabia, - rabo: rabo, - "ración": [ - "spanish" - ], - radical: radical, - "raíz": [ - "spanish" - ], - rama: rama, - rampa: rampa, - rancho: rancho, - rango: rango, - rapaz: rapaz, - "rápido": [ - "spanish" - ], - rapto: rapto, - rasgo: rasgo, - raspa: raspa, - rato: rato, - rayo: rayo, - raza: raza, - "razón": [ - "spanish" - ], - "reacción": [ - "spanish" - ], - realidad: realidad, - "rebaño": [ - "spanish" - ], - rebote: rebote, - recaer: recaer, - receta: receta, - rechazo: rechazo, - recoger: recoger, - recreo: recreo, - recto: recto, - recurso: recurso, - red: red, - redondo: redondo, - reducir: reducir, - reflejo: reflejo, - reforma: reforma, - "refrán": [ - "spanish" - ], - refugio: refugio, - regalo: regalo, - regir: regir, - regla: regla, - regreso: regreso, - "rehén": [ - "spanish" - ], - reino: reino, - "reír": [ - "spanish" - ], - reja: reja, - relato: relato, - relevo: relevo, - relieve: relieve, - relleno: relleno, - reloj: reloj, - remar: remar, - remedio: remedio, - remo: remo, - rencor: rencor, - rendir: rendir, - renta: renta, - reparto: reparto, - repetir: repetir, - reposo: reposo, - reptil: reptil, - res: res, - rescate: rescate, - resina: resina, - respeto: respeto, - resto: resto, - resumen: resumen, - retiro: retiro, - retorno: retorno, - retrato: retrato, - reunir: reunir, - "revés": [ - "spanish" - ], - revista: revista, - rey: rey, - rezar: rezar, - rico: rico, - riego: riego, - rienda: rienda, - riesgo: riesgo, - rifa: rifa, - "rígido": [ - "spanish" - ], - rigor: rigor, - "rincón": [ - "spanish" - ], - "riñón": [ - "spanish" - ], - "río": [ - "spanish" - ], - riqueza: riqueza, - risa: risa, - ritmo: ritmo, - rito: rito, - rizo: rizo, - roble: roble, - roce: roce, - rociar: rociar, - rodar: rodar, - rodeo: rodeo, - rodilla: rodilla, - roer: roer, - rojizo: rojizo, - rojo: rojo, - romero: romero, - romper: romper, - ron: ron, - ronco: ronco, - ronda: ronda, - ropa: ropa, - ropero: ropero, - rosa: rosa, - rosca: rosca, - rostro: rostro, - rotar: rotar, - "rubí": [ - "spanish" - ], - rubor: rubor, - rudo: rudo, - rueda: rueda, - rugir: rugir, - ruido: ruido, - ruina: ruina, - ruleta: ruleta, - rulo: rulo, - rumbo: rumbo, - rumor: rumor, - ruptura: ruptura, - ruta: ruta, - rutina: rutina, - "sábado": [ - "spanish" - ], - saber: saber, - sabio: sabio, - sable: sable, - sacar: sacar, - sagaz: sagaz, - sagrado: sagrado, - sala: sala, - saldo: saldo, - salero: salero, - salir: salir, - "salmón": [ - "spanish" - ], - "salón": [ - "spanish" - ], - salsa: salsa, - salto: salto, - salud: salud, - salvar: salvar, - samba: samba, - "sanción": [ - "spanish" - ], - "sandía": [ - "spanish" - ], - sanear: sanear, - sangre: sangre, - sanidad: sanidad, - sano: sano, - santo: santo, - sapo: sapo, - saque: saque, - sardina: sardina, - "sartén": [ - "spanish" - ], - sastre: sastre, - "satán": [ - "spanish" - ], - sauna: sauna, - "saxofón": [ - "spanish" - ], - "sección": [ - "spanish" - ], - seco: seco, - secreto: secreto, - secta: secta, - sed: sed, - seguir: seguir, - seis: seis, - sello: sello, - selva: selva, - semana: semana, - semilla: semilla, - senda: senda, - sensor: sensor, - "señal": [ - "spanish" - ], - "señor": [ - "spanish" - ], - separar: separar, - sepia: sepia, - "sequía": [ - "spanish" - ], - ser: ser, - serie: serie, - "sermón": [ - "spanish" - ], - servir: servir, - sesenta: sesenta, - "sesión": [ - "spanish" - ], - seta: seta, - setenta: setenta, - severo: severo, - sexo: sexo, - sexto: sexto, - sidra: sidra, - siesta: siesta, - siete: siete, - siglo: siglo, - signo: signo, - "sílaba": [ - "spanish" - ], - silbar: silbar, - silencio: silencio, - silla: silla, - "símbolo": [ - "spanish" - ], - simio: simio, - sirena: sirena, - sistema: sistema, - sitio: sitio, - situar: situar, - sobre: sobre, - socio: socio, - sodio: sodio, - sol: sol, - solapa: solapa, - soldado: soldado, - soledad: soledad, - "sólido": [ - "spanish" - ], - soltar: soltar, - "solución": [ - "spanish" - ], - sombra: sombra, - sondeo: sondeo, - sonido: sonido, - sonoro: sonoro, - sonrisa: sonrisa, - sopa: sopa, - soplar: soplar, - soporte: soporte, - sordo: sordo, - sorpresa: sorpresa, - sorteo: sorteo, - "sostén": [ - "spanish" - ], - "sótano": [ - "spanish" - ], - suave: suave, - subir: subir, - suceso: suceso, - sudor: sudor, - suegra: suegra, - suelo: suelo, - "sueño": [ - "spanish" - ], - suerte: suerte, - sufrir: sufrir, - sujeto: sujeto, - "sultán": [ - "spanish" - ], - sumar: sumar, - superar: superar, - suplir: suplir, - suponer: suponer, - supremo: supremo, - sur: sur, - surco: surco, - "sureño": [ - "spanish" - ], - surgir: surgir, - susto: susto, - sutil: sutil, - tabaco: tabaco, - tabique: tabique, - tabla: tabla, - "tabú": [ - "spanish" - ], - taco: taco, - tacto: tacto, - tajo: tajo, - talar: talar, - talco: talco, - talento: talento, - talla: talla, - "talón": [ - "spanish" - ], - "tamaño": [ - "spanish" - ], - tambor: tambor, - tango: tango, - tanque: tanque, - tapa: tapa, - tapete: tapete, - tapia: tapia, - "tapón": [ - "spanish" - ], - taquilla: taquilla, - tarde: tarde, - tarea: tarea, - tarifa: tarifa, - tarjeta: tarjeta, - tarot: tarot, - tarro: tarro, - tarta: tarta, - tatuaje: tatuaje, - tauro: tauro, - taza: taza, - "tazón": [ - "spanish" - ], - teatro: teatro, - techo: techo, - tecla: tecla, - "técnica": [ - "spanish" - ], - tejado: tejado, - tejer: tejer, - tejido: tejido, - tela: tela, - "teléfono": [ - "spanish" - ], - tema: tema, - temor: temor, - templo: templo, - tenaz: tenaz, - tender: tender, - tener: tener, - tenis: tenis, - tenso: tenso, - "teoría": [ - "spanish" - ], - terapia: terapia, - terco: terco, - "término": [ - "spanish" - ], - ternura: ternura, - terror: terror, - tesis: tesis, - tesoro: tesoro, - testigo: testigo, - tetera: tetera, - texto: texto, - tez: tez, - tibio: tibio, - "tiburón": [ - "spanish" - ], - tiempo: tiempo, - tienda: tienda, - tierra: tierra, - tieso: tieso, - tigre: tigre, - tijera: tijera, - tilde: tilde, - timbre: timbre, - "tímido": [ - "spanish" - ], - timo: timo, - tinta: tinta, - "tío": [ - "spanish" - ], - "típico": [ - "spanish" - ], - tipo: tipo, - tira: tira, - "tirón": [ - "spanish" - ], - "titán": [ - "spanish" - ], - "títere": [ - "spanish" - ], - "título": [ - "spanish" - ], - tiza: tiza, - toalla: toalla, - tobillo: tobillo, - tocar: tocar, - tocino: tocino, - todo: todo, - toga: toga, - toldo: toldo, - tomar: tomar, - tono: tono, - tonto: tonto, - topar: topar, - tope: tope, - toque: toque, - "tórax": [ - "spanish" - ], - torero: torero, - tormenta: tormenta, - torneo: torneo, - toro: toro, - torpedo: torpedo, - torre: torre, - torso: torso, - tortuga: tortuga, - tos: tos, - tosco: tosco, - toser: toser, - "tóxico": [ - "spanish" - ], - trabajo: trabajo, - tractor: tractor, - traer: traer, - "tráfico": [ - "spanish" - ], - trago: trago, - traje: traje, - tramo: tramo, - trance: trance, - trato: trato, - trauma: trauma, - trazar: trazar, - "trébol": [ - "spanish" - ], - tregua: tregua, - treinta: treinta, - tren: tren, - trepar: trepar, - tres: tres, - tribu: tribu, - trigo: trigo, - tripa: tripa, - triste: triste, - triunfo: triunfo, - trofeo: trofeo, - trompa: trompa, - tronco: tronco, - tropa: tropa, - trote: trote, - trozo: trozo, - truco: truco, - trueno: trueno, - trufa: trufa, - "tubería": [ - "spanish" - ], - tubo: tubo, - tuerto: tuerto, - tumba: tumba, - tumor: tumor, - "túnel": [ - "spanish" - ], - "túnica": [ - "spanish" - ], - turbina: turbina, - turismo: turismo, - turno: turno, - tutor: tutor, - ubicar: ubicar, - "úlcera": [ - "spanish" - ], - umbral: umbral, - unidad: unidad, - unir: unir, - universo: universo, - uno: uno, - untar: untar, - "uña": [ - "spanish" - ], - urbano: urbano, - urbe: urbe, - urgente: urgente, - urna: urna, - usar: usar, - usuario: usuario, - "útil": [ - "spanish" - ], - "utopía": [ - "spanish" - ], - uva: uva, - vaca: vaca, - "vacío": [ - "spanish" - ], - vacuna: vacuna, - vagar: vagar, - vago: vago, - vaina: vaina, - vajilla: vajilla, - vale: vale, - "válido": [ - "spanish" - ], - valle: valle, - valor: valor, - "válvula": [ - "spanish" - ], - vampiro: vampiro, - vara: vara, - variar: variar, - "varón": [ - "spanish" - ], - vaso: vaso, - vecino: vecino, - vector: vector, - "vehículo": [ - "spanish" - ], - veinte: veinte, - vejez: vejez, - vela: vela, - velero: velero, - veloz: veloz, - vena: vena, - vencer: vencer, - venda: venda, - veneno: veneno, - vengar: vengar, - venir: venir, - venta: venta, - venus: venus, - ver: ver, - verano: verano, - verbo: verbo, - verde: verde, - vereda: vereda, - verja: verja, - verso: verso, - verter: verter, - "vía": [ - "spanish" - ], - viaje: viaje, - vibrar: vibrar, - vicio: vicio, - "víctima": [ - "spanish" - ], - vida: vida, - "vídeo": [ - "spanish" - ], - vidrio: vidrio, - viejo: viejo, - viernes: viernes, - vigor: vigor, - vil: vil, - villa: villa, - vinagre: vinagre, - vino: vino, - "viñedo": [ - "spanish" - ], - "violín": [ - "spanish" - ], - viral: viral, - virgo: virgo, - virtud: virtud, - visor: visor, - "víspera": [ - "spanish" - ], - vista: vista, - vitamina: vitamina, - viudo: viudo, - vivaz: vivaz, - vivero: vivero, - vivir: vivir, - vivo: vivo, - "volcán": [ - "spanish" - ], - volumen: volumen, - volver: volver, - voraz: voraz, - votar: votar, - voto: voto, - voz: voz, - vuelo: vuelo, - vulgar: vulgar, - yacer: yacer, - yate: yate, - yegua: yegua, - yema: yema, - yerno: yerno, - yeso: yeso, - yodo: yodo, - yoga: yoga, - yogur: yogur, - zafiro: zafiro, - zanja: zanja, - zapato: zapato, - zarza: zarza, - zona: zona, - zorro: zorro, - zumo: zumo, - zurdo: zurdo, - abajur: abajur, - "abaküs": [ - "turkish" - ], - "abartı": [ - "turkish" - ], - abdal: abdal, - abdest: abdest, - abiye: abiye, - abluka: abluka, - abone: abone, - absorbe: absorbe, - "absürt": [ - "turkish" - ], - acayip: acayip, - acele: acele, - acemi: acemi, - "açıkgöz": [ - "turkish" - ], - adalet: adalet, - adam: adam, - adezyon: adezyon, - adisyon: adisyon, - adliye: adliye, - adres: adres, - afacan: afacan, - afili: afili, - "afiş": [ - "turkish" - ], - afiyet: afiyet, - aforizm: aforizm, - afra: afra, - "ağaç": [ - "turkish" - ], - "ağır": [ - "turkish" - ], - ahbap: ahbap, - ahkam: ahkam, - ahlak: ahlak, - ahtapot: ahtapot, - aidat: aidat, - aile: aile, - ajan: ajan, - akademi: akademi, - akarsu: akarsu, - "akbaş": [ - "turkish" - ], - "akciğer": [ - "turkish" - ], - akdeniz: akdeniz, - "akıbet": [ - "turkish" - ], - "akıl": [ - "turkish" - ], - "akıntı": [ - "turkish" - ], - akide: akide, - akrep: akrep, - akrobasi: akrobasi, - aksiyon: aksiyon, - "akşam": [ - "turkish" - ], - aktif: aktif, - "aktör": [ - "turkish" - ], - aktris: aktris, - akustik: akustik, - alaca: alaca, - "albüm": [ - "turkish" - ], - "alçak": [ - "turkish" - ], - aldanma: aldanma, - aleni: aleni, - alet: alet, - alfabe: alfabe, - "algılama": [ - "turkish" - ], - "alıngan": [ - "turkish" - ], - "alkış": [ - "turkish" - ], - alkol: alkol, - alpay: alpay, - alperen: alperen, - "altın": [ - "turkish" - ], - "altüst": [ - "turkish" - ], - "altyapı": [ - "turkish" - ], - alyuvar: alyuvar, - amade: amade, - "amatör": [ - "turkish" - ], - amazon: amazon, - ambalaj: ambalaj, - amblem: amblem, - ambulans: ambulans, - amca: amca, - amel: amel, - amir: amir, - amiyane: amiyane, - amorti: amorti, - ampul: ampul, - anadolu: anadolu, - anahtar: anahtar, - anakonda: anakonda, - anaokul: anaokul, - anapara: anapara, - "anarşi": [ - "turkish" - ], - anatomi: anatomi, - anayasa: anayasa, - anekdot: anekdot, - anestezi: anestezi, - angaje: angaje, - anka: anka, - anket: anket, - "anlamlı": [ - "turkish" - ], - anne: anne, - anomali: anomali, - anonim: anonim, - anten: anten, - "antlaşma": [ - "turkish" - ], - apse: apse, - araba: araba, - "aracı": [ - "turkish" - ], - araf: araf, - arbede: arbede, - arda: arda, - arefe: arefe, - argo: argo, - "argüman": [ - "turkish" - ], - "arkadaş": [ - "turkish" - ], - armoni: armoni, - arsa: arsa, - "arsız": [ - "turkish" - ], - "artı": [ - "turkish" - ], - aruz: aruz, - "asansör": [ - "turkish" - ], - "asayiş": [ - "turkish" - ], - asgari: asgari, - asil: asil, - asker: asker, - "askı": [ - "turkish" - ], - aslan: aslan, - asosyal: asosyal, - astsubay: astsubay, - asya: asya, - "aşçı": [ - "turkish" - ], - "aşırı": [ - "turkish" - ], - "aşure": [ - "turkish" - ], - atabey: atabey, - ataman: ataman, - "ateş": [ - "turkish" - ], - atmaca: atmaca, - atmosfer: atmosfer, - "atölye": [ - "turkish" - ], - "avcı": [ - "turkish" - ], - avdet: avdet, - avize: avize, - avlu: avlu, - avokado: avokado, - avrupa: avrupa, - avukat: avukat, - ayaz: ayaz, - "ayçiçeği": [ - "turkish" - ], - "aydın": [ - "turkish" - ], - "aygıt": [ - "turkish" - ], - ayna: ayna, - ayran: ayran, - "ayrıntı": [ - "turkish" - ], - azim: azim, - baca: baca, - bagaj: bagaj, - "bağlantı": [ - "turkish" - ], - "bahadır": [ - "turkish" - ], - "bahçe": [ - "turkish" - ], - baki: baki, - bakkal: bakkal, - baklava: baklava, - bakteri: bakteri, - "balçık": [ - "turkish" - ], - balina: balina, - balo: balo, - balta: balta, - bant: bant, - banyo: banyo, - bardak: bardak, - "barış": [ - "turkish" - ], - "başbuğ": [ - "turkish" - ], - "başıboş": [ - "turkish" - ], - "başkan": [ - "turkish" - ], - "başlık": [ - "turkish" - ], - bavul: bavul, - "bayındır": [ - "turkish" - ], - "baykuş": [ - "turkish" - ], - bazlama: bazlama, - bedel: bedel, - "begüm": [ - "turkish" - ], - "bekçi": [ - "turkish" - ], - bekle: bekle, - belge: belge, - belki: belki, - bencil: bencil, - benek: benek, - bengi: bengi, - berjer: berjer, - berk: berk, - berrak: berrak, - "beşik": [ - "turkish" - ], - beyin: beyin, - "beyoğlu": [ - "turkish" - ], - "bıçak": [ - "turkish" - ], - biberiye: biberiye, - bidon: bidon, - bihaber: bihaber, - bikini: bikini, - bilezik: bilezik, - "bilinç": [ - "turkish" - ], - bilye: bilye, - bina: bina, - "binbaşı": [ - "turkish" - ], - "binyıl": [ - "turkish" - ], - bisiklet: bisiklet, - "bisküvi": [ - "turkish" - ], - bitki: bitki, - bizzat: bizzat, - bodrum: bodrum, - "boğaz": [ - "turkish" - ], - "bohça": [ - "turkish" - ], - boncuk: boncuk, - bonfile: bonfile, - borsa: borsa, - boru: boru, - bostan: bostan, - "boşboğaz": [ - "turkish" - ], - botanik: botanik, - boya: boya, - boykot: boykot, - boynuz: boynuz, - bozgun: bozgun, - "bozkır": [ - "turkish" - ], - "bölüm": [ - "turkish" - ], - "börek": [ - "turkish" - ], - "buçuk": [ - "turkish" - ], - "bugün": [ - "turkish" - ], - "buğday": [ - "turkish" - ], - buhar: buhar, - buhran: buhran, - bulvar: bulvar, - buram: buram, - "burçak": [ - "turkish" - ], - burs: burs, - burun: burun, - "buzdağı": [ - "turkish" - ], - "buzkıran": [ - "turkish" - ], - "bücür": [ - "turkish" - ], - "büfe": [ - "turkish" - ], - "bülten": [ - "turkish" - ], - "bütçe": [ - "turkish" - ], - "bütün": [ - "turkish" - ], - "büyük": [ - "turkish" - ], - "cacık": [ - "turkish" - ], - "cadı": [ - "turkish" - ], - cahil: cahil, - cambaz: cambaz, - "canhıraş": [ - "turkish" - ], - casus: casus, - cazibe: cazibe, - cehalet: cehalet, - cehennem: cehennem, - ceket: ceket, - cemre: cemre, - cenin: cenin, - cennet: cennet, - cepken: cepken, - cerrah: cerrah, - cesur: cesur, - cetvel: cetvel, - cevher: cevher, - ceylan: ceylan, - "cılız": [ - "turkish" - ], - "cıva": [ - "turkish" - ], - cilt: cilt, - cisim: cisim, - ciyak: ciyak, - "coğrafya": [ - "turkish" - ], - "cömert": [ - "turkish" - ], - cumba: cumba, - "cüzdan": [ - "turkish" - ], - "çabucak": [ - "turkish" - ], - "çadır": [ - "turkish" - ], - "çağdaş": [ - "turkish" - ], - "çağlayan": [ - "turkish" - ], - "çağrı": [ - "turkish" - ], - "çakmak": [ - "turkish" - ], - "çalışkan": [ - "turkish" - ], - "çamaşır": [ - "turkish" - ], - "çapa": [ - "turkish" - ], - "çaput": [ - "turkish" - ], - "çarık": [ - "turkish" - ], - "çarpan": [ - "turkish" - ], - "çarşaf": [ - "turkish" - ], - "çayhane": [ - "turkish" - ], - "çekirdek": [ - "turkish" - ], - "çelebi": [ - "turkish" - ], - "çember": [ - "turkish" - ], - "çenet": [ - "turkish" - ], - "çengel": [ - "turkish" - ], - "çerçeve": [ - "turkish" - ], - "çerez": [ - "turkish" - ], - "çeşit": [ - "turkish" - ], - "çeşme": [ - "turkish" - ], - "çete": [ - "turkish" - ], - "çevre": [ - "turkish" - ], - "çeyiz": [ - "turkish" - ], - "çeyrek": [ - "turkish" - ], - "çığır": [ - "turkish" - ], - "çılgın": [ - "turkish" - ], - "çıngırak": [ - "turkish" - ], - "çift": [ - "turkish" - ], - "çiğdem": [ - "turkish" - ], - "çikolata": [ - "turkish" - ], - "çilek": [ - "turkish" - ], - "çimen": [ - "turkish" - ], - "çivi": [ - "turkish" - ], - "çoban": [ - "turkish" - ], - "çocuk": [ - "turkish" - ], - "çokgen": [ - "turkish" - ], - "çomak": [ - "turkish" - ], - "çorba": [ - "turkish" - ], - "çözelti": [ - "turkish" - ], - "çubuk": [ - "turkish" - ], - "çukur": [ - "turkish" - ], - "çuval": [ - "turkish" - ], - "çürük": [ - "turkish" - ], - "dağbaşı": [ - "turkish" - ], - "dağılım": [ - "turkish" - ], - daktilo: daktilo, - "daldırış": [ - "turkish" - ], - dalga: dalga, - dalkavuk: dalkavuk, - damak: damak, - "damıtma": [ - "turkish" - ], - damla: damla, - dana: dana, - dandik: dandik, - "danışman": [ - "turkish" - ], - daniska: daniska, - dantel: dantel, - "dargeçit": [ - "turkish" - ], - darphane: darphane, - davet: davet, - "dayı": [ - "turkish" - ], - defter: defter, - "değer": [ - "turkish" - ], - "değirmen": [ - "turkish" - ], - "dehşet": [ - "turkish" - ], - "delgeç": [ - "turkish" - ], - demir: demir, - deneyim: deneyim, - denge: denge, - depo: depo, - deprem: deprem, - derdest: derdest, - dere: dere, - derhal: derhal, - derman: derman, - dernek: dernek, - "derviş": [ - "turkish" - ], - desen: desen, - destan: destan, - "dışarı": [ - "turkish" - ], - "dışbükey": [ - "turkish" - ], - dijital: dijital, - "dikbaşlı": [ - "turkish" - ], - "dilekçe": [ - "turkish" - ], - "dimağ": [ - "turkish" - ], - dinamik: dinamik, - dindar: dindar, - dinleme: dinleme, - dinozor: dinozor, - "dipçik": [ - "turkish" - ], - dipnot: dipnot, - "direniş": [ - "turkish" - ], - dirsek: dirsek, - disiplin: disiplin, - "divriği": [ - "turkish" - ], - "dizüstü": [ - "turkish" - ], - dobra: dobra, - dodurga: dodurga, - "doğalgaz": [ - "turkish" - ], - "doküman": [ - "turkish" - ], - dolap: dolap, - "donanım": [ - "turkish" - ], - dondurma: dondurma, - "donör": [ - "turkish" - ], - doruk: doruk, - "dosdoğru": [ - "turkish" - ], - dost: dost, - dosya: dosya, - dozer: dozer, - "döküm": [ - "turkish" - ], - "dönence": [ - "turkish" - ], - "dörtyol": [ - "turkish" - ], - "dövme": [ - "turkish" - ], - dram: dram, - dublaj: dublaj, - durum: durum, - duvak: duvak, - duyarga: duyarga, - duyma: duyma, - duyuru: duyuru, - "düğme": [ - "turkish" - ], - "düğüm": [ - "turkish" - ], - "dükkan": [ - "turkish" - ], - "dünür": [ - "turkish" - ], - "düpedüz": [ - "turkish" - ], - "dürbün": [ - "turkish" - ], - "düşünür": [ - "turkish" - ], - "düzayak": [ - "turkish" - ], - "düzeltme": [ - "turkish" - ], - ebeveyn: ebeveyn, - ebru: ebru, - ecel: ecel, - ecnebi: ecnebi, - ecza: ecza, - edat: edat, - edilgen: edilgen, - efendi: efendi, - efor: efor, - efsane: efsane, - egemen: egemen, - egzersiz: egzersiz, - "eğrelti": [ - "turkish" - ], - ekarte: ekarte, - ekip: ekip, - eklem: eklem, - ekmek: ekmek, - ekol: ekol, - ekonomi: ekonomi, - ekose: ekose, - ekran: ekran, - ekvator: ekvator, - elaman: elaman, - elastik: elastik, - elbet: elbet, - elbise: elbise, - "elçi": [ - "turkish" - ], - eldiven: eldiven, - "elebaşı": [ - "turkish" - ], - "eleştiri": [ - "turkish" - ], - elma: elma, - "eloğlu": [ - "turkish" - ], - elveda: elveda, - emare: emare, - "emekçi": [ - "turkish" - ], - emisyon: emisyon, - emniyet: emniyet, - empati: empati, - emsal: emsal, - emzik: emzik, - "endüstri": [ - "turkish" - ], - enerji: enerji, - engebe: engebe, - "enişte": [ - "turkish" - ], - enkaz: enkaz, - entari: entari, - entegre: entegre, - entrika: entrika, - enzim: enzim, - erdem: erdem, - ergen: ergen, - erguvan: erguvan, - erkek: erkek, - erozyon: erozyon, - ertesi: ertesi, - erzak: erzak, - esaret: esaret, - esenlik: esenlik, - eser: eser, - eski: eski, - esnek: esnek, - "eşarp": [ - "turkish" - ], - "eşofman": [ - "turkish" - ], - "eşraf": [ - "turkish" - ], - "eşya": [ - "turkish" - ], - "eşzaman": [ - "turkish" - ], - etik: etik, - etken: etken, - etkinlik: etkinlik, - "etüt": [ - "turkish" - ], - evet: evet, - evire: evire, - evrak: evrak, - evrim: evrim, - eyalet: eyalet, - eyvah: eyvah, - ezber: ezber, - fabrika: fabrika, - fanus: fanus, - fason: fason, - fasulye: fasulye, - fatih: fatih, - fatura: fatura, - fayans: fayans, - fayton: fayton, - "fazıl": [ - "turkish" - ], - fazilet: fazilet, - felsefe: felsefe, - fener: fener, - feribot: feribot, - fersah: fersah, - fesih: fesih, - feveran: feveran, - feza: feza, - "fıçı": [ - "turkish" - ], - "fıldır": [ - "turkish" - ], - "fındık": [ - "turkish" - ], - "fırça": [ - "turkish" - ], - "fırsat": [ - "turkish" - ], - "fırtına": [ - "turkish" - ], - "fıtık": [ - "turkish" - ], - fidan: fidan, - fidye: fidye, - "figür": [ - "turkish" - ], - fihrist: fihrist, - fikir: fikir, - "fildişi": [ - "turkish" - ], - filtre: filtre, - fincan: fincan, - firuze: firuze, - fitil: fitil, - fiyaka: fiyaka, - fizik: fizik, - "flaş": [ - "turkish" - ], - "flüt": [ - "turkish" - ], - fosil: fosil, - fren: fren, - fukara: fukara, - futbol: futbol, - garabet: garabet, - gariban: gariban, - "garnitür": [ - "turkish" - ], - gazi: gazi, - gece: gece, - gedik: gedik, - gelenek: gelenek, - gelin: gelin, - gemi: gemi, - "genç": [ - "turkish" - ], - "geniş": [ - "turkish" - ], - geometri: geometri, - "gerçek": [ - "turkish" - ], - gevrek: gevrek, - gezegen: gezegen, - gezgin: gezgin, - geziyolu: geziyolu, - "gıcık": [ - "turkish" - ], - "gıda": [ - "turkish" - ], - "gıybet": [ - "turkish" - ], - girdap: girdap, - "girişim": [ - "turkish" - ], - gitar: gitar, - giyecek: giyecek, - giysi: giysi, - gizem: gizem, - gofret: gofret, - goril: goril, - "göbek": [ - "turkish" - ], - "göçebe": [ - "turkish" - ], - "göğüs": [ - "turkish" - ], - "gökdelen": [ - "turkish" - ], - "gökmen": [ - "turkish" - ], - "gökyüzü": [ - "turkish" - ], - "gölge": [ - "turkish" - ], - "gömlek": [ - "turkish" - ], - "gönül": [ - "turkish" - ], - "görenek": [ - "turkish" - ], - "görkemli": [ - "turkish" - ], - "görsel": [ - "turkish" - ], - "gösteri": [ - "turkish" - ], - "gövde": [ - "turkish" - ], - "gözaltı": [ - "turkish" - ], - "gözcü": [ - "turkish" - ], - "gözdağı": [ - "turkish" - ], - "gözleme": [ - "turkish" - ], - "gözyaşı": [ - "turkish" - ], - grup: grup, - gurbet: gurbet, - "gusül": [ - "turkish" - ], - "gübre": [ - "turkish" - ], - "güfte": [ - "turkish" - ], - "gümüş": [ - "turkish" - ], - "günaydın": [ - "turkish" - ], - "güncel": [ - "turkish" - ], - "gündüz": [ - "turkish" - ], - "güneş": [ - "turkish" - ], - "günyüzü": [ - "turkish" - ], - "gürbüz": [ - "turkish" - ], - "güvercin": [ - "turkish" - ], - "güzel": [ - "turkish" - ], - hacamat: hacamat, - hacim: hacim, - hademe: hademe, - "hafız": [ - "turkish" - ], - hafriyat: hafriyat, - hafta: hafta, - hakan: hakan, - hakem: hakem, - hakikat: hakikat, - haksever: haksever, - "halı": [ - "turkish" - ], - "hançer": [ - "turkish" - ], - hane: hane, - hapis: hapis, - "hapşırık": [ - "turkish" - ], - harf: harf, - haseki: haseki, - hasret: hasret, - hatun: hatun, - "havuç": [ - "turkish" - ], - haylaz: haylaz, - haysiyet: haysiyet, - hayvan: hayvan, - hedef: hedef, - hemen: hemen, - hemfikir: hemfikir, - hendek: hendek, - hepsi: hepsi, - hergele: hergele, - herhangi: herhangi, - hesap: hesap, - heyecan: heyecan, - heykel: heykel, - hezimet: hezimet, - "hıçkırık": [ - "turkish" - ], - "hızölçer": [ - "turkish" - ], - hicviye: hicviye, - hikaye: hikaye, - hikmet: hikmet, - hile: hile, - hisse: hisse, - hobi: hobi, - hoca: hoca, - horlama: horlama, - "hoşbeş": [ - "turkish" - ], - "hoşgörü": [ - "turkish" - ], - hoyrat: hoyrat, - "hörgüç": [ - "turkish" - ], - "höyük": [ - "turkish" - ], - hudut: hudut, - hukuk: hukuk, - hunhar: hunhar, - hurda: hurda, - huysuz: huysuz, - huzur: huzur, - "hücum": [ - "turkish" - ], - "hükümet": [ - "turkish" - ], - "hünkar": [ - "turkish" - ], - "hüviyet": [ - "turkish" - ], - "ırmak": [ - "turkish" - ], - "ısıölçer": [ - "turkish" - ], - "ısıtıcı": [ - "turkish" - ], - "ıspanak": [ - "turkish" - ], - "ısrar": [ - "turkish" - ], - "ışıldak": [ - "turkish" - ], - "ızdırap": [ - "turkish" - ], - "ızgara": [ - "turkish" - ], - ibadet: ibadet, - icat: icat, - "içbükey": [ - "turkish" - ], - "içecek": [ - "turkish" - ], - "içgüdü": [ - "turkish" - ], - "içsel": [ - "turkish" - ], - idman: idman, - iftihar: iftihar, - "iğne": [ - "turkish" - ], - ihanet: ihanet, - ihbar: ihbar, - ihdas: ihdas, - ihmal: ihmal, - ihracat: ihracat, - ihsan: ihsan, - ikilem: ikilem, - ikindi: ikindi, - ikircik: ikircik, - iklim: iklim, - iksir: iksir, - iktibas: iktibas, - "ilaç": [ - "turkish" - ], - "ilçe": [ - "turkish" - ], - ileri: ileri, - "iletişim": [ - "turkish" - ], - ilgi: ilgi, - ilhak: ilhak, - ilkbahar: ilkbahar, - ilkokul: ilkokul, - ilmek: ilmek, - imkan: imkan, - "imleç": [ - "turkish" - ], - imsak: imsak, - imtihan: imtihan, - imza: imza, - ince: ince, - inkar: inkar, - "inşa": [ - "turkish" - ], - ipek: ipek, - ipucu: ipucu, - irade: irade, - irfan: irfan, - irmik: irmik, - isabet: isabet, - iskele: iskele, - israf: israf, - isyan: isyan, - "işçi": [ - "turkish" - ], - "işgal": [ - "turkish" - ], - "işgüzar": [ - "turkish" - ], - "işlem": [ - "turkish" - ], - itibar: itibar, - itiraf: itiraf, - ivedi: ivedi, - ivme: ivme, - "iyileşme": [ - "turkish" - ], - iyimser: iyimser, - izbandut: izbandut, - izci: izci, - izdiham: izdiham, - izin: izin, - jakoben: jakoben, - jandarma: jandarma, - jargon: jargon, - "kabadayı": [ - "turkish" - ], - kablo: kablo, - kabus: kabus, - "kaçamak": [ - "turkish" - ], - kadeh: kadeh, - "kadın": [ - "turkish" - ], - kadraj: kadraj, - kafa: kafa, - kafkas: kafkas, - "kağıt": [ - "turkish" - ], - "kağnı": [ - "turkish" - ], - kahkaha: kahkaha, - kahraman: kahraman, - "kahvaltı": [ - "turkish" - ], - "kakül": [ - "turkish" - ], - "kaldırım": [ - "turkish" - ], - kale: kale, - kalibre: kalibre, - kalkan: kalkan, - kalpak: kalpak, - "kamış": [ - "turkish" - ], - kamyon: kamyon, - kanat: kanat, - "kandaş": [ - "turkish" - ], - kanepe: kanepe, - kanser: kanser, - kanun: kanun, - kaos: kaos, - "kapı": [ - "turkish" - ], - "kaplıca": [ - "turkish" - ], - kaptan: kaptan, - "karanlık": [ - "turkish" - ], - "kardeş": [ - "turkish" - ], - karga: karga, - "karınca": [ - "turkish" - ], - "karmaşa": [ - "turkish" - ], - "karşıt": [ - "turkish" - ], - "kasırga": [ - "turkish" - ], - kask: kask, - kasvet: kasvet, - "katkı": [ - "turkish" - ], - katman: katman, - kavram: kavram, - kaygan: kaygan, - "kaynakça": [ - "turkish" - ], - kayyum: kayyum, - kedi: kedi, - kehanet: kehanet, - kekik: kekik, - kelebek: kelebek, - kenar: kenar, - kerkenez: kerkenez, - "kerpiç": [ - "turkish" - ], - kesirli: kesirli, - kesmece: kesmece, - kestane: kestane, - "keşkek": [ - "turkish" - ], - "ketçap": [ - "turkish" - ], - keyfiyet: keyfiyet, - "kıble": [ - "turkish" - ], - "kıdemli": [ - "turkish" - ], - "kılavuz": [ - "turkish" - ], - "kılçık": [ - "turkish" - ], - "kılıf": [ - "turkish" - ], - "kıraç": [ - "turkish" - ], - "kırmızı": [ - "turkish" - ], - "kırsal": [ - "turkish" - ], - "kısayol": [ - "turkish" - ], - "kısım": [ - "turkish" - ], - "kıskanç": [ - "turkish" - ], - "kısmet": [ - "turkish" - ], - "kışla": [ - "turkish" - ], - "kıvanç": [ - "turkish" - ], - "kıvılcım": [ - "turkish" - ], - "kıvrık": [ - "turkish" - ], - "kıyafet": [ - "turkish" - ], - "kıymetli": [ - "turkish" - ], - "kızak": [ - "turkish" - ], - "kızılcık": [ - "turkish" - ], - kibar: kibar, - kinaye: kinaye, - kira: kira, - kiremit: kiremit, - kirli: kirli, - kirpik: kirpik, - "kişisel": [ - "turkish" - ], - kitap: kitap, - "koçbaşı": [ - "turkish" - ], - kodaman: kodaman, - "koğuş": [ - "turkish" - ], - kokteyl: kokteyl, - "kolaycı": [ - "turkish" - ], - "kolbastı": [ - "turkish" - ], - kolonya: kolonya, - koltuk: koltuk, - kolye: kolye, - kombine: kombine, - komedyen: komedyen, - komiser: komiser, - komposto: komposto, - "komşu": [ - "turkish" - ], - komuta: komuta, - konak: konak, - konfor: konfor, - koni: koni, - "konsül": [ - "turkish" - ], - kopya: kopya, - korkusuz: korkusuz, - korna: korna, - korse: korse, - korunak: korunak, - korvet: korvet, - "kostüm": [ - "turkish" - ], - "koşul": [ - "turkish" - ], - koyu: koyu, - kozmik: kozmik, - "köfte": [ - "turkish" - ], - "kökensel": [ - "turkish" - ], - "köprücük": [ - "turkish" - ], - "köpük": [ - "turkish" - ], - "kördüğüm": [ - "turkish" - ], - "körfez": [ - "turkish" - ], - "köstebek": [ - "turkish" - ], - "köşegen": [ - "turkish" - ], - "kötü": [ - "turkish" - ], - kravat: kravat, - kriter: kriter, - kuantum: kuantum, - kudurma: kudurma, - "kuluçka": [ - "turkish" - ], - "kulübe": [ - "turkish" - ], - kumanya: kumanya, - kumbara: kumbara, - kumlu: kumlu, - kumpir: kumpir, - kumral: kumral, - kundura: kundura, - kupa: kupa, - kupkuru: kupkuru, - kuramsal: kuramsal, - "kurbağa": [ - "turkish" - ], - kurdele: kurdele, - kurgu: kurgu, - kurmay: kurmay, - "kurşun": [ - "turkish" - ], - "kurtuluş": [ - "turkish" - ], - kurultay: kurultay, - kurye: kurye, - kusursuz: kusursuz, - "kuşak": [ - "turkish" - ], - "kuşbaşı": [ - "turkish" - ], - "kuşkulu": [ - "turkish" - ], - kutlama: kutlama, - kutsal: kutsal, - kutup: kutup, - kuver: kuver, - kuyruk: kuyruk, - kuzey: kuzey, - kuzgun: kuzgun, - "küçük": [ - "turkish" - ], - "külçe": [ - "turkish" - ], - "külfet": [ - "turkish" - ], - "külliye": [ - "turkish" - ], - "kültürel": [ - "turkish" - ], - "kümes": [ - "turkish" - ], - "künefe": [ - "turkish" - ], - "küresel": [ - "turkish" - ], - "kütle": [ - "turkish" - ], - lahana: lahana, - lahmacun: lahmacun, - lamba: lamba, - lansman: lansman, - "lavaş": [ - "turkish" - ], - "layık": [ - "turkish" - ], - "leğen": [ - "turkish" - ], - levent: levent, - leziz: leziz, - lezzet: lezzet, - lider: lider, - likide: likide, - liman: liman, - liste: liste, - litre: litre, - liyakat: liyakat, - lodos: lodos, - lokanta: lokanta, - lokman: lokman, - lokum: lokum, - lunapark: lunapark, - "lütfen": [ - "turkish" - ], - "lüzum": [ - "turkish" - ], - nokta: nokta, - mabet: mabet, - macera: macera, - macun: macun, - madalya: madalya, - madde: madde, - madem: madem, - "mağara": [ - "turkish" - ], - "mağdur": [ - "turkish" - ], - "mağfiret": [ - "turkish" - ], - "mağlup": [ - "turkish" - ], - mahalle: mahalle, - mahcup: mahcup, - mahir: mahir, - mahkeme: mahkeme, - mahlas: mahlas, - mahrum: mahrum, - mahsul: mahsul, - makas: makas, - makbuz: makbuz, - makine: makine, - makro: makro, - maksat: maksat, - makul: makul, - maliye: maliye, - manav: manav, - mangal: mangal, - manidar: manidar, - manken: manken, - "mantık": [ - "turkish" - ], - manzara: manzara, - "mareşal": [ - "turkish" - ], - margarin: margarin, - marifet: marifet, - marmelat: marmelat, - "masaüstü": [ - "turkish" - ], - masmavi: masmavi, - masraf: masraf, - masum: masum, - matah: matah, - materyal: materyal, - matrak: matrak, - maval: maval, - mavra: mavra, - maydanoz: maydanoz, - "mayhoş": [ - "turkish" - ], - maytap: maytap, - mazbata: mazbata, - mazeret: mazeret, - mazlum: mazlum, - mazot: mazot, - mazur: mazur, - "meblağ": [ - "turkish" - ], - mebus: mebus, - mecaz: mecaz, - mecbur: mecbur, - meclis: meclis, - mecmua: mecmua, - mecnun: mecnun, - "meçhul": [ - "turkish" - ], - medeni: medeni, - mehtap: mehtap, - mekanik: mekanik, - melodi: melodi, - meltem: meltem, - memur: memur, - mendil: mendil, - "menekşe": [ - "turkish" - ], - "menteşe": [ - "turkish" - ], - "meraklı": [ - "turkish" - ], - mercek: mercek, - merdiven: merdiven, - merhaba: merhaba, - merinos: merinos, - merkez: merkez, - mermi: mermi, - mert: mert, - mesafe: mesafe, - mesele: mesele, - mesken: mesken, - meslek: meslek, - "meşale": [ - "turkish" - ], - "meşgul": [ - "turkish" - ], - "meşhur": [ - "turkish" - ], - metafor: metafor, - metin: metin, - metre: metre, - mevcut: mevcut, - "mevkidaş": [ - "turkish" - ], - meydan: meydan, - meyil: meyil, - meyve: meyve, - meziyet: meziyet, - mezun: mezun, - "mıknatıs": [ - "turkish" - ], - "mısra": [ - "turkish" - ], - "mızıka": [ - "turkish" - ], - "miğfer": [ - "turkish" - ], - mihrak: mihrak, - miktar: miktar, - milat: milat, - milli: milli, - mimar: mimar, - minare: minare, - mineral: mineral, - minik: minik, - minyon: minyon, - mirliva: mirliva, - misafir: misafir, - miskin: miskin, - miting: miting, - miyop: miyop, - mizah: mizah, - mobilya: mobilya, - "monitör": [ - "turkish" - ], - "morötesi": [ - "turkish" - ], - motive: motive, - mozaik: mozaik, - muavin: muavin, - mucize: mucize, - "muhafız": [ - "turkish" - ], - "muhteşem": [ - "turkish" - ], - mukayese: mukayese, - mumya: mumya, - musluk: musluk, - "muşamba": [ - "turkish" - ], - "mutabık": [ - "turkish" - ], - mutfak: mutfak, - mutlu: mutlu, - muzaffer: muzaffer, - muzdarip: muzdarip, - "mübarek": [ - "turkish" - ], - "mücadele": [ - "turkish" - ], - "müdür": [ - "turkish" - ], - "müfredat": [ - "turkish" - ], - "müftü": [ - "turkish" - ], - "mühendis": [ - "turkish" - ], - "mühim": [ - "turkish" - ], - "mühlet": [ - "turkish" - ], - "mükemmel": [ - "turkish" - ], - "mülk": [ - "turkish" - ], - "mümkün": [ - "turkish" - ], - "mümtaz": [ - "turkish" - ], - "müsrif": [ - "turkish" - ], - "müstesna": [ - "turkish" - ], - "müşahit": [ - "turkish" - ], - "müşteri": [ - "turkish" - ], - "mütercim": [ - "turkish" - ], - "müthiş": [ - "turkish" - ], - "müze": [ - "turkish" - ], - "müzik": [ - "turkish" - ], - "nabız": [ - "turkish" - ], - nadas: nadas, - nadir: nadir, - "nahoş": [ - "turkish" - ], - nakarat: nakarat, - "nakış": [ - "turkish" - ], - nalbur: nalbur, - namlu: namlu, - namus: namus, - "nankör": [ - "turkish" - ], - nargile: nargile, - narkoz: narkoz, - "nasıl": [ - "turkish" - ], - nasip: nasip, - naylon: naylon, - nazar: nazar, - "nazım": [ - "turkish" - ], - nazik: nazik, - neden: neden, - nefes: nefes, - negatif: negatif, - neon: neon, - "neptün": [ - "turkish" - ], - nerede: nerede, - nesil: nesil, - nesnel: nesnel, - "neşeli": [ - "turkish" - ], - netice: netice, - nevresim: nevresim, - neyse: neyse, - neyzen: neyzen, - nezaket: nezaket, - nezih: nezih, - nezle: nezle, - nicel: nicel, - "nilüfer": [ - "turkish" - ], - nimet: nimet, - nisan: nisan, - nispet: nispet, - nitekim: nitekim, - nizam: nizam, - nohut: nohut, - noksan: noksan, - nostalji: nostalji, - noter: noter, - "nöbet": [ - "turkish" - ], - numara: numara, - numune: numune, - nutuk: nutuk, - "nüfus": [ - "turkish" - ], - "obabaşı": [ - "turkish" - ], - obez: obez, - obje: obje, - ocak: ocak, - odun: odun, - ofansif: ofansif, - ofis: ofis, - "oğlak": [ - "turkish" - ], - "oğuz": [ - "turkish" - ], - "okçu": [ - "turkish" - ], - oklava: oklava, - oksijen: oksijen, - okul: okul, - "okumuş": [ - "turkish" - ], - okutman: okutman, - okuyucu: okuyucu, - okyanus: okyanus, - "olağan": [ - "turkish" - ], - olanak: olanak, - "olası": [ - "turkish" - ], - olay: olay, - olgun: olgun, - olimpik: olimpik, - olumlu: olumlu, - omlet: omlet, - omurga: omurga, - "onarım": [ - "turkish" - ], - onursal: onursal, - optik: optik, - "orantı": [ - "turkish" - ], - ordu: ordu, - organik: organik, - orijin: orijin, - orkide: orkide, - orman: orman, - orta: orta, - "oruç": [ - "turkish" - ], - "otağ": [ - "turkish" - ], - otantik: otantik, - otel: otel, - otoban: otoban, - otogar: otogar, - otomobil: otomobil, - otonom: otonom, - otopark: otopark, - otorite: otorite, - otoyol: otoyol, - oturum: oturum, - oyuk: oyuk, - oyuncak: oyuncak, - ozan: ozan, - "ödeme": [ - "turkish" - ], - "ödenek": [ - "turkish" - ], - "ödev": [ - "turkish" - ], - "ödül": [ - "turkish" - ], - "ödünç": [ - "turkish" - ], - "öfke": [ - "turkish" - ], - "öğlen": [ - "turkish" - ], - "öğrenci": [ - "turkish" - ], - "öğün": [ - "turkish" - ], - "öğütücü": [ - "turkish" - ], - "öksürük": [ - "turkish" - ], - "ölçme": [ - "turkish" - ], - "ölçü": [ - "turkish" - ], - "ölümsüz": [ - "turkish" - ], - "ömür": [ - "turkish" - ], - "önayak": [ - "turkish" - ], - "öncü": [ - "turkish" - ], - "önder": [ - "turkish" - ], - "önem": [ - "turkish" - ], - "önerge": [ - "turkish" - ], - "öngörü": [ - "turkish" - ], - "önlük": [ - "turkish" - ], - "önsezi": [ - "turkish" - ], - "öpücük": [ - "turkish" - ], - "ördek": [ - "turkish" - ], - "örgü": [ - "turkish" - ], - "örtbas": [ - "turkish" - ], - "örtme": [ - "turkish" - ], - "örtü": [ - "turkish" - ], - "örümcek": [ - "turkish" - ], - "örüntü": [ - "turkish" - ], - "öteberi": [ - "turkish" - ], - "öteki": [ - "turkish" - ], - "övünç": [ - "turkish" - ], - "öykü": [ - "turkish" - ], - "öyleyse": [ - "turkish" - ], - "özçekim": [ - "turkish" - ], - "özdeyiş": [ - "turkish" - ], - "özel": [ - "turkish" - ], - "özenti": [ - "turkish" - ], - "özerk": [ - "turkish" - ], - "özgürlük": [ - "turkish" - ], - "özlem": [ - "turkish" - ], - "özlü": [ - "turkish" - ], - "özne": [ - "turkish" - ], - "özsever": [ - "turkish" - ], - "özümseme": [ - "turkish" - ], - "özür": [ - "turkish" - ], - "özveri": [ - "turkish" - ], - "pabuç": [ - "turkish" - ], - "padişah": [ - "turkish" - ], - palamut: palamut, - palmiye: palmiye, - palto: palto, - "palyaço": [ - "turkish" - ], - pamuk: pamuk, - "panayır": [ - "turkish" - ], - pancar: pancar, - panik: panik, - panjur: panjur, - pankart: pankart, - pano: pano, - pansuman: pansuman, - pantolon: pantolon, - panzehir: panzehir, - papatya: papatya, - papyon: papyon, - "paraşüt": [ - "turkish" - ], - "parça": [ - "turkish" - ], - "pardösü": [ - "turkish" - ], - "parfüm": [ - "turkish" - ], - "parıltı": [ - "turkish" - ], - parkur: parkur, - parmak: parmak, - parodi: parodi, - parsel: parsel, - partner: partner, - pasaport: pasaport, - pasif: pasif, - paskalya: paskalya, - "pastırma": [ - "turkish" - ], - "paşa": [ - "turkish" - ], - patates: patates, - paten: paten, - patika: patika, - "patlıcan": [ - "turkish" - ], - patolog: patolog, - payanda: payanda, - "paydaş": [ - "turkish" - ], - payidar: payidar, - "paylaşma": [ - "turkish" - ], - paytak: paytak, - "peçete": [ - "turkish" - ], - peder: peder, - pehlivan: pehlivan, - pekala: pekala, - pekmez: pekmez, - pelerin: pelerin, - pelikan: pelikan, - "pelüş": [ - "turkish" - ], - pembe: pembe, - pencere: pencere, - pense: pense, - "perçin": [ - "turkish" - ], - perde: perde, - pergel: pergel, - "perişan": [ - "turkish" - ], - peron: peron, - personel: personel, - "perşembe": [ - "turkish" - ], - peruk: peruk, - pervane: pervane, - pespaye: pespaye, - pestil: pestil, - "peşin": [ - "turkish" - ], - petek: petek, - petrol: petrol, - petunya: petunya, - peynir: peynir, - peyzaj: peyzaj, - "pınar": [ - "turkish" - ], - "pırasa": [ - "turkish" - ], - "pırlanta": [ - "turkish" - ], - pide: pide, - pikap: pikap, - pilav: pilav, - "piliç": [ - "turkish" - ], - pipet: pipet, - pipo: pipo, - piramit: piramit, - "pirinç": [ - "turkish" - ], - pirzola: pirzola, - pist: pist, - "pişik": [ - "turkish" - ], - "pişman": [ - "turkish" - ], - piyasa: piyasa, - piyes: piyes, - plaj: plaj, - plaket: plaket, - planlama: planlama, - platform: platform, - plazma: plazma, - podyum: podyum, - "poğaça": [ - "turkish" - ], - polat: polat, - politika: politika, - "popüler": [ - "turkish" - ], - porselen: porselen, - portakal: portakal, - poster: poster, - "poşet": [ - "turkish" - ], - poyraz: poyraz, - pozitif: pozitif, - pranga: pranga, - pratik: pratik, - prenses: prenses, - prim: prim, - profil: profil, - proje: proje, - protokol: protokol, - puan: puan, - pudra: pudra, - pusula: pusula, - "püre": [ - "turkish" - ], - "pürüz": [ - "turkish" - ], - "püstül": [ - "turkish" - ], - "püsür": [ - "turkish" - ], - racon: racon, - radikal: radikal, - radyo: radyo, - rafadan: rafadan, - rafine: rafine, - "rağbet": [ - "turkish" - ], - rahat: rahat, - rahle: rahle, - rakam: rakam, - raket: raket, - rakip: rakip, - rakun: rakun, - ralli: ralli, - randevu: randevu, - ranza: ranza, - rapor: rapor, - rastgele: rastgele, - rasyonel: rasyonel, - "razı": [ - "turkish" - ], - realite: realite, - "reçine": [ - "turkish" - ], - refah: refah, - referans: referans, - refik: refik, - rehber: rehber, - rehin: rehin, - reis: reis, - rekabet: rekabet, - reklam: reklam, - rekor: rekor, - "rektör": [ - "turkish" - ], - renk: renk, - resim: resim, - resmen: resmen, - restoran: restoran, - retorik: retorik, - "revaç": [ - "turkish" - ], - reyon: reyon, - rezalet: rezalet, - rezerv: rezerv, - rezil: rezil, - "rıhtım": [ - "turkish" - ], - "rıza": [ - "turkish" - ], - ritim: ritim, - "ritüel": [ - "turkish" - ], - rivayet: rivayet, - roman: roman, - rozet: rozet, - "röportaj": [ - "turkish" - ], - "rötar": [ - "turkish" - ], - ruble: ruble, - ruhban: ruhban, - ruhsat: ruhsat, - rulet: rulet, - runik: runik, - rutin: rutin, - rutubet: rutubet, - "rüşvet": [ - "turkish" - ], - "rütbe": [ - "turkish" - ], - "rüya": [ - "turkish" - ], - "rüzgar": [ - "turkish" - ], - sabah: sabah, - "sabıka": [ - "turkish" - ], - sabit: sabit, - sabun: sabun, - "saçma": [ - "turkish" - ], - sade: sade, - "sadık": [ - "turkish" - ], - safahat: safahat, - safdil: safdil, - safkan: safkan, - "sağanak": [ - "turkish" - ], - "sağduyu": [ - "turkish" - ], - "sağlam": [ - "turkish" - ], - saha: saha, - sahiden: sahiden, - sahne: sahne, - sakal: sakal, - "sakız": [ - "turkish" - ], - sakin: sakin, - saklama: saklama, - "saksağan": [ - "turkish" - ], - salamura: salamura, - "salça": [ - "turkish" - ], - "salgı": [ - "turkish" - ], - "salınım": [ - "turkish" - ], - "salkım": [ - "turkish" - ], - saltanat: saltanat, - "sanatçı": [ - "turkish" - ], - sancak: sancak, - sandalye: sandalye, - saniye: saniye, - "saplantı": [ - "turkish" - ], - "sapsız": [ - "turkish" - ], - saray: saray, - "sarışın": [ - "turkish" - ], - "sarkık": [ - "turkish" - ], - "sarmaşık": [ - "turkish" - ], - "satır": [ - "turkish" - ], - "savaşım": [ - "turkish" - ], - savunma: savunma, - saydam: saydam, - sayfa: sayfa, - "saygın": [ - "turkish" - ], - "sayısal": [ - "turkish" - ], - sebep: sebep, - "seçenek": [ - "turkish" - ], - "seçim": [ - "turkish" - ], - "seçkin": [ - "turkish" - ], - "seçmen": [ - "turkish" - ], - sedir: sedir, - sedye: sedye, - sefer: sefer, - sehpa: sehpa, - sekizgen: sekizgen, - "selektör": [ - "turkish" - ], - selvi: selvi, - semavi: semavi, - sembol: sembol, - seminer: seminer, - senaryo: senaryo, - sendika: sendika, - senkron: senkron, - "sensör": [ - "turkish" - ], - sentez: sentez, - sepet: sepet, - seramik: seramik, - serbest: serbest, - serdar: serdar, - seremoni: seremoni, - sergi: sergi, - serhat: serhat, - serin: serin, - sermaye: sermaye, - "serpuş": [ - "turkish" - ], - sersem: sersem, - "serüven": [ - "turkish" - ], - sesli: sesli, - "sesteş": [ - "turkish" - ], - sevap: sevap, - seviye: seviye, - seyahat: seyahat, - seyirci: seyirci, - sezon: sezon, - "sıcak": [ - "turkish" - ], - "sıfat": [ - "turkish" - ], - "sıhhi": [ - "turkish" - ], - "sınanma": [ - "turkish" - ], - "sınır": [ - "turkish" - ], - "sıradan": [ - "turkish" - ], - "sırdaş": [ - "turkish" - ], - "sırma": [ - "turkish" - ], - "sırtüstü": [ - "turkish" - ], - "sızgıt": [ - "turkish" - ], - siftah: siftah, - sigorta: sigorta, - sihirbaz: sihirbaz, - silah: silah, - silecek: silecek, - silindir: silindir, - simetri: simetri, - simge: simge, - simit: simit, - sincap: sincap, - sindirim: sindirim, - sinema: sinema, - sinirli: sinirli, - "sipariş": [ - "turkish" - ], - sirke: sirke, - siroz: siroz, - sistem: sistem, - sivilce: sivilce, - siyasi: siyasi, - soba: soba, - sofra: sofra, - "soğuk": [ - "turkish" - ], - sohbet: sohbet, - sokak: sokak, - solfej: solfej, - solunum: solunum, - somut: somut, - sonbahar: sonbahar, - sonraki: sonraki, - sonsuz: sonsuz, - sorunsuz: sorunsuz, - sosyete: sosyete, - "soyağacı": [ - "turkish" - ], - "soydaş": [ - "turkish" - ], - soygun: soygun, - "soytarı": [ - "turkish" - ], - "söğüş": [ - "turkish" - ], - "sömürge": [ - "turkish" - ], - "sönük": [ - "turkish" - ], - "söylem": [ - "turkish" - ], - "sözcük": [ - "turkish" - ], - "sözde": [ - "turkish" - ], - spatula: spatula, - spektrum: spektrum, - spiker: spiker, - sporcu: sporcu, - sprey: sprey, - stabil: stabil, - "statü": [ - "turkish" - ], - stok: stok, - stopaj: stopaj, - strateji: strateji, - subay: subay, - sucuk: sucuk, - "suçüstü": [ - "turkish" - ], - suhulet: suhulet, - sulama: sulama, - sungur: sungur, - sunucu: sunucu, - surat: surat, - susam: susam, - suskun: suskun, - "sükse": [ - "turkish" - ], - "sükut": [ - "turkish" - ], - "sülale": [ - "turkish" - ], - "sünger": [ - "turkish" - ], - "süpürge": [ - "turkish" - ], - "sürahi": [ - "turkish" - ], - "süreç": [ - "turkish" - ], - "sürgün": [ - "turkish" - ], - "sürüm": [ - "turkish" - ], - "süsleme": [ - "turkish" - ], - "sütanne": [ - "turkish" - ], - "sütlaç": [ - "turkish" - ], - "sütun": [ - "turkish" - ], - "süvari": [ - "turkish" - ], - "şahane": [ - "turkish" - ], - "şahbaz": [ - "turkish" - ], - "şahit": [ - "turkish" - ], - "şahsiyet": [ - "turkish" - ], - "şakıma": [ - "turkish" - ], - "şaklaban": [ - "turkish" - ], - "şakrak": [ - "turkish" - ], - "şamar": [ - "turkish" - ], - "şampiyon": [ - "turkish" - ], - "şanslı": [ - "turkish" - ], - "şantiye": [ - "turkish" - ], - "şapka": [ - "turkish" - ], - "şarkıcı": [ - "turkish" - ], - "şartname": [ - "turkish" - ], - "şaşırma": [ - "turkish" - ], - "şaşkın": [ - "turkish" - ], - "şatafat": [ - "turkish" - ], - "şayet": [ - "turkish" - ], - "şebeke": [ - "turkish" - ], - "şefkat": [ - "turkish" - ], - "şeftali": [ - "turkish" - ], - "şehir": [ - "turkish" - ], - "şehvet": [ - "turkish" - ], - "şeker": [ - "turkish" - ], - "şekil": [ - "turkish" - ], - "şelale": [ - "turkish" - ], - "şema": [ - "turkish" - ], - "şemsiye": [ - "turkish" - ], - "şerbet": [ - "turkish" - ], - "şeref": [ - "turkish" - ], - "şerit": [ - "turkish" - ], - "şımarık": [ - "turkish" - ], - "şıpıdık": [ - "turkish" - ], - "şifre": [ - "turkish" - ], - "şimdi": [ - "turkish" - ], - "şimşek": [ - "turkish" - ], - "şipşak": [ - "turkish" - ], - "şirin": [ - "turkish" - ], - "şişe": [ - "turkish" - ], - "şişirme": [ - "turkish" - ], - "şofben": [ - "turkish" - ], - "şöhret": [ - "turkish" - ], - "şölen": [ - "turkish" - ], - "şüphe": [ - "turkish" - ], - tabaka: tabaka, - tabure: tabure, - tadilat: tadilat, - taharet: taharet, - "tahıl": [ - "turkish" - ], - tahkim: tahkim, - tahlil: tahlil, - tahmin: tahmin, - tahrifat: tahrifat, - tahsilat: tahsilat, - tahta: tahta, - taklit: taklit, - takoz: takoz, - taksici: taksici, - taktik: taktik, - takvim: takvim, - talebe: talebe, - talip: talip, - tamamen: tamamen, - tamirci: tamirci, - "tamtakır": [ - "turkish" - ], - "tandır": [ - "turkish" - ], - tanecik: tanecik, - "tanıtım": [ - "turkish" - ], - "tanrı": [ - "turkish" - ], - tansiyon: tansiyon, - tapan: tapan, - "tapınak": [ - "turkish" - ], - taptaze: taptaze, - tapu: tapu, - tarafgir: tarafgir, - tarhana: tarhana, - "tarım": [ - "turkish" - ], - tarih: tarih, - tarla: tarla, - tartak: tartak, - tarumar: tarumar, - "tasarım": [ - "turkish" - ], - tasdik: tasdik, - taslak: taslak, - tastamam: tastamam, - "taşeron": [ - "turkish" - ], - "taşınmaz": [ - "turkish" - ], - "taşra": [ - "turkish" - ], - tatava: tatava, - tatbikat: tatbikat, - tatil: tatil, - "tatlı": [ - "turkish" - ], - tavsiye: tavsiye, - "tavşan": [ - "turkish" - ], - tavuk: tavuk, - taze: taze, - taziye: taziye, - tazminat: tazminat, - "tebeşir": [ - "turkish" - ], - tebrik: tebrik, - "tecrübe": [ - "turkish" - ], - "teçhizat": [ - "turkish" - ], - tedarik: tedarik, - tedbir: tedbir, - "teftiş": [ - "turkish" - ], - "teğet": [ - "turkish" - ], - "teğmen": [ - "turkish" - ], - tehdit: tehdit, - tehlike: tehlike, - "tekdüze": [ - "turkish" - ], - tekerlek: tekerlek, - tekme: tekme, - teknik: teknik, - tekrar: tekrar, - telef: telef, - telsiz: telsiz, - telve: telve, - temas: temas, - tembel: tembel, - temiz: temiz, - temkin: temkin, - temsilci: temsilci, - tendon: tendon, - teneke: teneke, - tenha: tenha, - tenkit: tenkit, - "tepegöz": [ - "turkish" - ], - tepki: tepki, - terazi: terazi, - terbiye: terbiye, - tercih: tercih, - "tereyağı": [ - "turkish" - ], - terfi: terfi, - terim: terim, - terminal: terminal, - tersane: tersane, - tertip: tertip, - "tesadüf": [ - "turkish" - ], - tescil: tescil, - tesir: tesir, - teslimat: teslimat, - tespit: tespit, - testere: testere, - "teşekkür": [ - "turkish" - ], - "teşhir": [ - "turkish" - ], - "teşrif": [ - "turkish" - ], - "teşvik": [ - "turkish" - ], - teyze: teyze, - "tezahür": [ - "turkish" - ], - tezgah: tezgah, - "tıbbi": [ - "turkish" - ], - "tıkaç": [ - "turkish" - ], - "tıkışık": [ - "turkish" - ], - "tıknaz": [ - "turkish" - ], - "tılsım": [ - "turkish" - ], - "tıpkı": [ - "turkish" - ], - "tıraş": [ - "turkish" - ], - "tırışka": [ - "turkish" - ], - "tırmanış": [ - "turkish" - ], - "tırnak": [ - "turkish" - ], - "tırpan": [ - "turkish" - ], - "tıslama": [ - "turkish" - ], - ticaret: ticaret, - tilki: tilki, - tiryaki: tiryaki, - "titreşim": [ - "turkish" - ], - tohum: tohum, - tokat: tokat, - tolere: tolere, - tombak: tombak, - tomurcuk: tomurcuk, - "topaç": [ - "turkish" - ], - toplum: toplum, - toprak: toprak, - toptan: toptan, - toraman: toraman, - torpido: torpido, - tortu: tortu, - "tosbağa": [ - "turkish" - ], - toynak: toynak, - "tören": [ - "turkish" - ], - trafik: trafik, - trajedi: trajedi, - tramvay: tramvay, - "tribün": [ - "turkish" - ], - triko: triko, - tugay: tugay, - "tuğla": [ - "turkish" - ], - "tuğrul": [ - "turkish" - ], - tuhaf: tuhaf, - tulumba: tulumba, - "tunç": [ - "turkish" - ], - turan: turan, - turkuaz: turkuaz, - turnusol: turnusol, - "turşu": [ - "turkish" - ], - turuncu: turuncu, - tutanak: tutanak, - tutkal: tutkal, - tutsak: tutsak, - tutum: tutum, - "tuyuğ": [ - "turkish" - ], - tuzlu: tuzlu, - "tüccar": [ - "turkish" - ], - "tüfek": [ - "turkish" - ], - "tükenmez": [ - "turkish" - ], - "tülbent": [ - "turkish" - ], - "tümleç": [ - "turkish" - ], - "tünel": [ - "turkish" - ], - "türbin": [ - "turkish" - ], - "türev": [ - "turkish" - ], - "türk": [ - "turkish" - ], - "tüzük": [ - "turkish" - ], - ucube: ucube, - ucuz: ucuz, - "uçak": [ - "turkish" - ], - "uçurtma": [ - "turkish" - ], - ufuk: ufuk, - "uğrak": [ - "turkish" - ], - "uğur": [ - "turkish" - ], - ukala: ukala, - "ulaşım": [ - "turkish" - ], - ulema: ulema, - ulus: ulus, - ulvi: ulvi, - umursama: umursama, - umut: umut, - unutkan: unutkan, - uslu: uslu, - "ustabaşı": [ - "turkish" - ], - ustura: ustura, - usul: usul, - "utangaç": [ - "turkish" - ], - "uyanık": [ - "turkish" - ], - "uyarı": [ - "turkish" - ], - uydu: uydu, - uygar: uygar, - uygulama: uygulama, - uykusuz: uykusuz, - uysal: uysal, - "uyuşma": [ - "turkish" - ], - "uzantı": [ - "turkish" - ], - uzay: uzay, - "uzgören": [ - "turkish" - ], - "uzlaşma": [ - "turkish" - ], - uzman: uzman, - uzun: uzun, - "ücra": [ - "turkish" - ], - "ücret": [ - "turkish" - ], - "üçbudak": [ - "turkish" - ], - "üçgen": [ - "turkish" - ], - "üçkağıt": [ - "turkish" - ], - "üçleme": [ - "turkish" - ], - "üfürük": [ - "turkish" - ], - "ülke": [ - "turkish" - ], - "ümit": [ - "turkish" - ], - "üniforma": [ - "turkish" - ], - "ünite": [ - "turkish" - ], - "ünlem": [ - "turkish" - ], - "üretken": [ - "turkish" - ], - "ürün": [ - "turkish" - ], - "üslup": [ - "turkish" - ], - "üstel": [ - "turkish" - ], - "üstün": [ - "turkish" - ], - "üşengeç": [ - "turkish" - ], - "üşüme": [ - "turkish" - ], - "ütopya": [ - "turkish" - ], - "üvey": [ - "turkish" - ], - "üzengi": [ - "turkish" - ], - "üzgün": [ - "turkish" - ], - "üzüm": [ - "turkish" - ], - vaka: vaka, - vakfiye: vakfiye, - "vakıf": [ - "turkish" - ], - vakit: vakit, - vakum: vakum, - vapur: vapur, - varil: varil, - "varlık": [ - "turkish" - ], - "varsayım": [ - "turkish" - ], - varyemez: varyemez, - "vasıta": [ - "turkish" - ], - vasiyet: vasiyet, - "vatandaş": [ - "turkish" - ], - vazife: vazife, - vazo: vazo, - veciz: veciz, - vefa: vefa, - vehim: vehim, - veliaht: veliaht, - veresiye: veresiye, - verimli: verimli, - "verkaç": [ - "turkish" - ], - vernik: vernik, - vertigo: vertigo, - vesait: vesait, - vesika: vesika, - vestiyer: vestiyer, - veznedar: veznedar, - vicdan: vicdan, - vilayet: vilayet, - virane: virane, - "virgül": [ - "turkish" - ], - "vişne": [ - "turkish" - ], - vites: vites, - vokal: vokal, - volkan: volkan, - vurma: vurma, - vurucu: vurucu, - "vücut": [ - "turkish" - ], - "yabancı": [ - "turkish" - ], - yabgu: yabgu, - "yağış": [ - "turkish" - ], - "yağlı": [ - "turkish" - ], - "yağmur": [ - "turkish" - ], - yakamoz: yakamoz, - "yakın": [ - "turkish" - ], - "yaklaşık": [ - "turkish" - ], - "yalçın": [ - "turkish" - ], - "yalıtım": [ - "turkish" - ], - yaman: yaman, - "yanardağ": [ - "turkish" - ], - "yangın": [ - "turkish" - ], - "yanıt": [ - "turkish" - ], - "yankı": [ - "turkish" - ], - "yanlış": [ - "turkish" - ], - "yansıma": [ - "turkish" - ], - yapay: yapay, - yapboz: yapboz, - "yapımcı": [ - "turkish" - ], - yaprak: yaprak, - "yaratık": [ - "turkish" - ], - yarbay: yarbay, - "yardım": [ - "turkish" - ], - "yargıç": [ - "turkish" - ], - "yarıçap": [ - "turkish" - ], - yasemin: yasemin, - "yastık": [ - "turkish" - ], - "yaşam": [ - "turkish" - ], - yatak: yatak, - "yatırım": [ - "turkish" - ], - yavru: yavru, - yaygara: yaygara, - "yayıncı": [ - "turkish" - ], - yayla: yayla, - "yazılım": [ - "turkish" - ], - yekpare: yekpare, - "yekvücut": [ - "turkish" - ], - yelkovan: yelkovan, - yelpaze: yelpaze, - yemek: yemek, - "yemiş": [ - "turkish" - ], - "yengeç": [ - "turkish" - ], - "yeniçeri": [ - "turkish" - ], - "yeraltı": [ - "turkish" - ], - "yerküre": [ - "turkish" - ], - "yerleşke": [ - "turkish" - ], - "yeryüzü": [ - "turkish" - ], - "yeşil": [ - "turkish" - ], - yetenek: yetenek, - yetkili: yetkili, - "yığınak": [ - "turkish" - ], - "yıkama": [ - "turkish" - ], - "yılbaşı": [ - "turkish" - ], - "yıldırım": [ - "turkish" - ], - "yılkı": [ - "turkish" - ], - "yılmaz": [ - "turkish" - ], - "yırtıcı": [ - "turkish" - ], - "yiğit": [ - "turkish" - ], - "yoğurt": [ - "turkish" - ], - "yokuş": [ - "turkish" - ], - yolcu: yolcu, - "yoldaş": [ - "turkish" - ], - "yolgeçen": [ - "turkish" - ], - yolkesen: yolkesen, - "yolüstü": [ - "turkish" - ], - yordam: yordam, - yorgan: yorgan, - yorumcu: yorumcu, - yosun: yosun, - "yöndeş": [ - "turkish" - ], - "yönetim": [ - "turkish" - ], - "yönlü": [ - "turkish" - ], - "yöntem": [ - "turkish" - ], - "yöresel": [ - "turkish" - ], - "yörünge": [ - "turkish" - ], - yufka: yufka, - "yukarı": [ - "turkish" - ], - yumruk: yumruk, - yumurta: yumurta, - yuvarlak: yuvarlak, - "yücelme": [ - "turkish" - ], - "yükçeker": [ - "turkish" - ], - "yüklem": [ - "turkish" - ], - "yüksek": [ - "turkish" - ], - "yürek": [ - "turkish" - ], - "yürütme": [ - "turkish" - ], - "yüzde": [ - "turkish" - ], - "yüzeysel": [ - "turkish" - ], - "yüzgeç": [ - "turkish" - ], - "yüzüstü": [ - "turkish" - ], - "yüzyıl": [ - "turkish" - ], - "zabıta": [ - "turkish" - ], - zafer: zafer, - zahmet: zahmet, - zambak: zambak, - zaptiye: zaptiye, - zarafet: zarafet, - zaruret: zaruret, - zeka: zeka, - zekice: zekice, - zemberek: zemberek, - zemin: zemin, - zencefil: zencefil, - zeplin: zeplin, - zeytin: zeytin, - "zıbın": [ - "turkish" - ], - "zılgıt": [ - "turkish" - ], - "zımbırtı": [ - "turkish" - ], - "zımpara": [ - "turkish" - ], - "zıpkın": [ - "turkish" - ], - zigon: zigon, - zihinsel: zihinsel, - zihniyet: zihniyet, - zincir: zincir, - zindan: zindan, - zirzop: zirzop, - ziyaret: ziyaret, - ziynet: ziynet, - zoraki: zoraki, - zorlu: zorlu, - zorunlu: zorunlu, - "züğürt": [ - "turkish" - ], - "zümre": [ - "turkish" - ] - }; - - var require$$1$1 = [ - "的", - "一", - "是", - "在", - "不", - "了", - "有", - "和", - "人", - "这", - "中", - "大", - "为", - "上", - "个", - "国", - "我", - "以", - "要", - "他", - "时", - "来", - "用", - "们", - "生", - "到", - "作", - "地", - "于", - "出", - "就", - "分", - "对", - "成", - "会", - "可", - "主", - "发", - "年", - "动", - "同", - "工", - "也", - "能", - "下", - "过", - "子", - "说", - "产", - "种", - "面", - "而", - "方", - "后", - "多", - "定", - "行", - "学", - "法", - "所", - "民", - "得", - "经", - "十", - "三", - "之", - "进", - "着", - "等", - "部", - "度", - "家", - "电", - "力", - "里", - "如", - "水", - "化", - "高", - "自", - "二", - "理", - "起", - "小", - "物", - "现", - "实", - "加", - "量", - "都", - "两", - "体", - "制", - "机", - "当", - "使", - "点", - "从", - "业", - "本", - "去", - "把", - "性", - "好", - "应", - "开", - "它", - "合", - "还", - "因", - "由", - "其", - "些", - "然", - "前", - "外", - "天", - "政", - "四", - "日", - "那", - "社", - "义", - "事", - "平", - "形", - "相", - "全", - "表", - "间", - "样", - "与", - "关", - "各", - "重", - "新", - "线", - "内", - "数", - "正", - "心", - "反", - "你", - "明", - "看", - "原", - "又", - "么", - "利", - "比", - "或", - "但", - "质", - "气", - "第", - "向", - "道", - "命", - "此", - "变", - "条", - "只", - "没", - "结", - "解", - "问", - "意", - "建", - "月", - "公", - "无", - "系", - "军", - "很", - "情", - "者", - "最", - "立", - "代", - "想", - "已", - "通", - "并", - "提", - "直", - "题", - "党", - "程", - "展", - "五", - "果", - "料", - "象", - "员", - "革", - "位", - "入", - "常", - "文", - "总", - "次", - "品", - "式", - "活", - "设", - "及", - "管", - "特", - "件", - "长", - "求", - "老", - "头", - "基", - "资", - "边", - "流", - "路", - "级", - "少", - "图", - "山", - "统", - "接", - "知", - "较", - "将", - "组", - "见", - "计", - "别", - "她", - "手", - "角", - "期", - "根", - "论", - "运", - "农", - "指", - "几", - "九", - "区", - "强", - "放", - "决", - "西", - "被", - "干", - "做", - "必", - "战", - "先", - "回", - "则", - "任", - "取", - "据", - "处", - "队", - "南", - "给", - "色", - "光", - "门", - "即", - "保", - "治", - "北", - "造", - "百", - "规", - "热", - "领", - "七", - "海", - "口", - "东", - "导", - "器", - "压", - "志", - "世", - "金", - "增", - "争", - "济", - "阶", - "油", - "思", - "术", - "极", - "交", - "受", - "联", - "什", - "认", - "六", - "共", - "权", - "收", - "证", - "改", - "清", - "美", - "再", - "采", - "转", - "更", - "单", - "风", - "切", - "打", - "白", - "教", - "速", - "花", - "带", - "安", - "场", - "身", - "车", - "例", - "真", - "务", - "具", - "万", - "每", - "目", - "至", - "达", - "走", - "积", - "示", - "议", - "声", - "报", - "斗", - "完", - "类", - "八", - "离", - "华", - "名", - "确", - "才", - "科", - "张", - "信", - "马", - "节", - "话", - "米", - "整", - "空", - "元", - "况", - "今", - "集", - "温", - "传", - "土", - "许", - "步", - "群", - "广", - "石", - "记", - "需", - "段", - "研", - "界", - "拉", - "林", - "律", - "叫", - "且", - "究", - "观", - "越", - "织", - "装", - "影", - "算", - "低", - "持", - "音", - "众", - "书", - "布", - "复", - "容", - "儿", - "须", - "际", - "商", - "非", - "验", - "连", - "断", - "深", - "难", - "近", - "矿", - "千", - "周", - "委", - "素", - "技", - "备", - "半", - "办", - "青", - "省", - "列", - "习", - "响", - "约", - "支", - "般", - "史", - "感", - "劳", - "便", - "团", - "往", - "酸", - "历", - "市", - "克", - "何", - "除", - "消", - "构", - "府", - "称", - "太", - "准", - "精", - "值", - "号", - "率", - "族", - "维", - "划", - "选", - "标", - "写", - "存", - "候", - "毛", - "亲", - "快", - "效", - "斯", - "院", - "查", - "江", - "型", - "眼", - "王", - "按", - "格", - "养", - "易", - "置", - "派", - "层", - "片", - "始", - "却", - "专", - "状", - "育", - "厂", - "京", - "识", - "适", - "属", - "圆", - "包", - "火", - "住", - "调", - "满", - "县", - "局", - "照", - "参", - "红", - "细", - "引", - "听", - "该", - "铁", - "价", - "严", - "首", - "底", - "液", - "官", - "德", - "随", - "病", - "苏", - "失", - "尔", - "死", - "讲", - "配", - "女", - "黄", - "推", - "显", - "谈", - "罪", - "神", - "艺", - "呢", - "席", - "含", - "企", - "望", - "密", - "批", - "营", - "项", - "防", - "举", - "球", - "英", - "氧", - "势", - "告", - "李", - "台", - "落", - "木", - "帮", - "轮", - "破", - "亚", - "师", - "围", - "注", - "远", - "字", - "材", - "排", - "供", - "河", - "态", - "封", - "另", - "施", - "减", - "树", - "溶", - "怎", - "止", - "案", - "言", - "士", - "均", - "武", - "固", - "叶", - "鱼", - "波", - "视", - "仅", - "费", - "紧", - "爱", - "左", - "章", - "早", - "朝", - "害", - "续", - "轻", - "服", - "试", - "食", - "充", - "兵", - "源", - "判", - "护", - "司", - "足", - "某", - "练", - "差", - "致", - "板", - "田", - "降", - "黑", - "犯", - "负", - "击", - "范", - "继", - "兴", - "似", - "余", - "坚", - "曲", - "输", - "修", - "故", - "城", - "夫", - "够", - "送", - "笔", - "船", - "占", - "右", - "财", - "吃", - "富", - "春", - "职", - "觉", - "汉", - "画", - "功", - "巴", - "跟", - "虽", - "杂", - "飞", - "检", - "吸", - "助", - "升", - "阳", - "互", - "初", - "创", - "抗", - "考", - "投", - "坏", - "策", - "古", - "径", - "换", - "未", - "跑", - "留", - "钢", - "曾", - "端", - "责", - "站", - "简", - "述", - "钱", - "副", - "尽", - "帝", - "射", - "草", - "冲", - "承", - "独", - "令", - "限", - "阿", - "宣", - "环", - "双", - "请", - "超", - "微", - "让", - "控", - "州", - "良", - "轴", - "找", - "否", - "纪", - "益", - "依", - "优", - "顶", - "础", - "载", - "倒", - "房", - "突", - "坐", - "粉", - "敌", - "略", - "客", - "袁", - "冷", - "胜", - "绝", - "析", - "块", - "剂", - "测", - "丝", - "协", - "诉", - "念", - "陈", - "仍", - "罗", - "盐", - "友", - "洋", - "错", - "苦", - "夜", - "刑", - "移", - "频", - "逐", - "靠", - "混", - "母", - "短", - "皮", - "终", - "聚", - "汽", - "村", - "云", - "哪", - "既", - "距", - "卫", - "停", - "烈", - "央", - "察", - "烧", - "迅", - "境", - "若", - "印", - "洲", - "刻", - "括", - "激", - "孔", - "搞", - "甚", - "室", - "待", - "核", - "校", - "散", - "侵", - "吧", - "甲", - "游", - "久", - "菜", - "味", - "旧", - "模", - "湖", - "货", - "损", - "预", - "阻", - "毫", - "普", - "稳", - "乙", - "妈", - "植", - "息", - "扩", - "银", - "语", - "挥", - "酒", - "守", - "拿", - "序", - "纸", - "医", - "缺", - "雨", - "吗", - "针", - "刘", - "啊", - "急", - "唱", - "误", - "训", - "愿", - "审", - "附", - "获", - "茶", - "鲜", - "粮", - "斤", - "孩", - "脱", - "硫", - "肥", - "善", - "龙", - "演", - "父", - "渐", - "血", - "欢", - "械", - "掌", - "歌", - "沙", - "刚", - "攻", - "谓", - "盾", - "讨", - "晚", - "粒", - "乱", - "燃", - "矛", - "乎", - "杀", - "药", - "宁", - "鲁", - "贵", - "钟", - "煤", - "读", - "班", - "伯", - "香", - "介", - "迫", - "句", - "丰", - "培", - "握", - "兰", - "担", - "弦", - "蛋", - "沉", - "假", - "穿", - "执", - "答", - "乐", - "谁", - "顺", - "烟", - "缩", - "征", - "脸", - "喜", - "松", - "脚", - "困", - "异", - "免", - "背", - "星", - "福", - "买", - "染", - "井", - "概", - "慢", - "怕", - "磁", - "倍", - "祖", - "皇", - "促", - "静", - "补", - "评", - "翻", - "肉", - "践", - "尼", - "衣", - "宽", - "扬", - "棉", - "希", - "伤", - "操", - "垂", - "秋", - "宜", - "氢", - "套", - "督", - "振", - "架", - "亮", - "末", - "宪", - "庆", - "编", - "牛", - "触", - "映", - "雷", - "销", - "诗", - "座", - "居", - "抓", - "裂", - "胞", - "呼", - "娘", - "景", - "威", - "绿", - "晶", - "厚", - "盟", - "衡", - "鸡", - "孙", - "延", - "危", - "胶", - "屋", - "乡", - "临", - "陆", - "顾", - "掉", - "呀", - "灯", - "岁", - "措", - "束", - "耐", - "剧", - "玉", - "赵", - "跳", - "哥", - "季", - "课", - "凯", - "胡", - "额", - "款", - "绍", - "卷", - "齐", - "伟", - "蒸", - "殖", - "永", - "宗", - "苗", - "川", - "炉", - "岩", - "弱", - "零", - "杨", - "奏", - "沿", - "露", - "杆", - "探", - "滑", - "镇", - "饭", - "浓", - "航", - "怀", - "赶", - "库", - "夺", - "伊", - "灵", - "税", - "途", - "灭", - "赛", - "归", - "召", - "鼓", - "播", - "盘", - "裁", - "险", - "康", - "唯", - "录", - "菌", - "纯", - "借", - "糖", - "盖", - "横", - "符", - "私", - "努", - "堂", - "域", - "枪", - "润", - "幅", - "哈", - "竟", - "熟", - "虫", - "泽", - "脑", - "壤", - "碳", - "欧", - "遍", - "侧", - "寨", - "敢", - "彻", - "虑", - "斜", - "薄", - "庭", - "纳", - "弹", - "饲", - "伸", - "折", - "麦", - "湿", - "暗", - "荷", - "瓦", - "塞", - "床", - "筑", - "恶", - "户", - "访", - "塔", - "奇", - "透", - "梁", - "刀", - "旋", - "迹", - "卡", - "氯", - "遇", - "份", - "毒", - "泥", - "退", - "洗", - "摆", - "灰", - "彩", - "卖", - "耗", - "夏", - "择", - "忙", - "铜", - "献", - "硬", - "予", - "繁", - "圈", - "雪", - "函", - "亦", - "抽", - "篇", - "阵", - "阴", - "丁", - "尺", - "追", - "堆", - "雄", - "迎", - "泛", - "爸", - "楼", - "避", - "谋", - "吨", - "野", - "猪", - "旗", - "累", - "偏", - "典", - "馆", - "索", - "秦", - "脂", - "潮", - "爷", - "豆", - "忽", - "托", - "惊", - "塑", - "遗", - "愈", - "朱", - "替", - "纤", - "粗", - "倾", - "尚", - "痛", - "楚", - "谢", - "奋", - "购", - "磨", - "君", - "池", - "旁", - "碎", - "骨", - "监", - "捕", - "弟", - "暴", - "割", - "贯", - "殊", - "释", - "词", - "亡", - "壁", - "顿", - "宝", - "午", - "尘", - "闻", - "揭", - "炮", - "残", - "冬", - "桥", - "妇", - "警", - "综", - "招", - "吴", - "付", - "浮", - "遭", - "徐", - "您", - "摇", - "谷", - "赞", - "箱", - "隔", - "订", - "男", - "吹", - "园", - "纷", - "唐", - "败", - "宋", - "玻", - "巨", - "耕", - "坦", - "荣", - "闭", - "湾", - "键", - "凡", - "驻", - "锅", - "救", - "恩", - "剥", - "凝", - "碱", - "齿", - "截", - "炼", - "麻", - "纺", - "禁", - "废", - "盛", - "版", - "缓", - "净", - "睛", - "昌", - "婚", - "涉", - "筒", - "嘴", - "插", - "岸", - "朗", - "庄", - "街", - "藏", - "姑", - "贸", - "腐", - "奴", - "啦", - "惯", - "乘", - "伙", - "恢", - "匀", - "纱", - "扎", - "辩", - "耳", - "彪", - "臣", - "亿", - "璃", - "抵", - "脉", - "秀", - "萨", - "俄", - "网", - "舞", - "店", - "喷", - "纵", - "寸", - "汗", - "挂", - "洪", - "贺", - "闪", - "柬", - "爆", - "烯", - "津", - "稻", - "墙", - "软", - "勇", - "像", - "滚", - "厘", - "蒙", - "芳", - "肯", - "坡", - "柱", - "荡", - "腿", - "仪", - "旅", - "尾", - "轧", - "冰", - "贡", - "登", - "黎", - "削", - "钻", - "勒", - "逃", - "障", - "氨", - "郭", - "峰", - "币", - "港", - "伏", - "轨", - "亩", - "毕", - "擦", - "莫", - "刺", - "浪", - "秘", - "援", - "株", - "健", - "售", - "股", - "岛", - "甘", - "泡", - "睡", - "童", - "铸", - "汤", - "阀", - "休", - "汇", - "舍", - "牧", - "绕", - "炸", - "哲", - "磷", - "绩", - "朋", - "淡", - "尖", - "启", - "陷", - "柴", - "呈", - "徒", - "颜", - "泪", - "稍", - "忘", - "泵", - "蓝", - "拖", - "洞", - "授", - "镜", - "辛", - "壮", - "锋", - "贫", - "虚", - "弯", - "摩", - "泰", - "幼", - "廷", - "尊", - "窗", - "纲", - "弄", - "隶", - "疑", - "氏", - "宫", - "姐", - "震", - "瑞", - "怪", - "尤", - "琴", - "循", - "描", - "膜", - "违", - "夹", - "腰", - "缘", - "珠", - "穷", - "森", - "枝", - "竹", - "沟", - "催", - "绳", - "忆", - "邦", - "剩", - "幸", - "浆", - "栏", - "拥", - "牙", - "贮", - "礼", - "滤", - "钠", - "纹", - "罢", - "拍", - "咱", - "喊", - "袖", - "埃", - "勤", - "罚", - "焦", - "潜", - "伍", - "墨", - "欲", - "缝", - "姓", - "刊", - "饱", - "仿", - "奖", - "铝", - "鬼", - "丽", - "跨", - "默", - "挖", - "链", - "扫", - "喝", - "袋", - "炭", - "污", - "幕", - "诸", - "弧", - "励", - "梅", - "奶", - "洁", - "灾", - "舟", - "鉴", - "苯", - "讼", - "抱", - "毁", - "懂", - "寒", - "智", - "埔", - "寄", - "届", - "跃", - "渡", - "挑", - "丹", - "艰", - "贝", - "碰", - "拔", - "爹", - "戴", - "码", - "梦", - "芽", - "熔", - "赤", - "渔", - "哭", - "敬", - "颗", - "奔", - "铅", - "仲", - "虎", - "稀", - "妹", - "乏", - "珍", - "申", - "桌", - "遵", - "允", - "隆", - "螺", - "仓", - "魏", - "锐", - "晓", - "氮", - "兼", - "隐", - "碍", - "赫", - "拨", - "忠", - "肃", - "缸", - "牵", - "抢", - "博", - "巧", - "壳", - "兄", - "杜", - "讯", - "诚", - "碧", - "祥", - "柯", - "页", - "巡", - "矩", - "悲", - "灌", - "龄", - "伦", - "票", - "寻", - "桂", - "铺", - "圣", - "恐", - "恰", - "郑", - "趣", - "抬", - "荒", - "腾", - "贴", - "柔", - "滴", - "猛", - "阔", - "辆", - "妻", - "填", - "撤", - "储", - "签", - "闹", - "扰", - "紫", - "砂", - "递", - "戏", - "吊", - "陶", - "伐", - "喂", - "疗", - "瓶", - "婆", - "抚", - "臂", - "摸", - "忍", - "虾", - "蜡", - "邻", - "胸", - "巩", - "挤", - "偶", - "弃", - "槽", - "劲", - "乳", - "邓", - "吉", - "仁", - "烂", - "砖", - "租", - "乌", - "舰", - "伴", - "瓜", - "浅", - "丙", - "暂", - "燥", - "橡", - "柳", - "迷", - "暖", - "牌", - "秧", - "胆", - "详", - "簧", - "踏", - "瓷", - "谱", - "呆", - "宾", - "糊", - "洛", - "辉", - "愤", - "竞", - "隙", - "怒", - "粘", - "乃", - "绪", - "肩", - "籍", - "敏", - "涂", - "熙", - "皆", - "侦", - "悬", - "掘", - "享", - "纠", - "醒", - "狂", - "锁", - "淀", - "恨", - "牲", - "霸", - "爬", - "赏", - "逆", - "玩", - "陵", - "祝", - "秒", - "浙", - "貌", - "役", - "彼", - "悉", - "鸭", - "趋", - "凤", - "晨", - "畜", - "辈", - "秩", - "卵", - "署", - "梯", - "炎", - "滩", - "棋", - "驱", - "筛", - "峡", - "冒", - "啥", - "寿", - "译", - "浸", - "泉", - "帽", - "迟", - "硅", - "疆", - "贷", - "漏", - "稿", - "冠", - "嫩", - "胁", - "芯", - "牢", - "叛", - "蚀", - "奥", - "鸣", - "岭", - "羊", - "凭", - "串", - "塘", - "绘", - "酵", - "融", - "盆", - "锡", - "庙", - "筹", - "冻", - "辅", - "摄", - "袭", - "筋", - "拒", - "僚", - "旱", - "钾", - "鸟", - "漆", - "沈", - "眉", - "疏", - "添", - "棒", - "穗", - "硝", - "韩", - "逼", - "扭", - "侨", - "凉", - "挺", - "碗", - "栽", - "炒", - "杯", - "患", - "馏", - "劝", - "豪", - "辽", - "勃", - "鸿", - "旦", - "吏", - "拜", - "狗", - "埋", - "辊", - "掩", - "饮", - "搬", - "骂", - "辞", - "勾", - "扣", - "估", - "蒋", - "绒", - "雾", - "丈", - "朵", - "姆", - "拟", - "宇", - "辑", - "陕", - "雕", - "偿", - "蓄", - "崇", - "剪", - "倡", - "厅", - "咬", - "驶", - "薯", - "刷", - "斥", - "番", - "赋", - "奉", - "佛", - "浇", - "漫", - "曼", - "扇", - "钙", - "桃", - "扶", - "仔", - "返", - "俗", - "亏", - "腔", - "鞋", - "棱", - "覆", - "框", - "悄", - "叔", - "撞", - "骗", - "勘", - "旺", - "沸", - "孤", - "吐", - "孟", - "渠", - "屈", - "疾", - "妙", - "惜", - "仰", - "狠", - "胀", - "谐", - "抛", - "霉", - "桑", - "岗", - "嘛", - "衰", - "盗", - "渗", - "脏", - "赖", - "涌", - "甜", - "曹", - "阅", - "肌", - "哩", - "厉", - "烃", - "纬", - "毅", - "昨", - "伪", - "症", - "煮", - "叹", - "钉", - "搭", - "茎", - "笼", - "酷", - "偷", - "弓", - "锥", - "恒", - "杰", - "坑", - "鼻", - "翼", - "纶", - "叙", - "狱", - "逮", - "罐", - "络", - "棚", - "抑", - "膨", - "蔬", - "寺", - "骤", - "穆", - "冶", - "枯", - "册", - "尸", - "凸", - "绅", - "坯", - "牺", - "焰", - "轰", - "欣", - "晋", - "瘦", - "御", - "锭", - "锦", - "丧", - "旬", - "锻", - "垄", - "搜", - "扑", - "邀", - "亭", - "酯", - "迈", - "舒", - "脆", - "酶", - "闲", - "忧", - "酚", - "顽", - "羽", - "涨", - "卸", - "仗", - "陪", - "辟", - "惩", - "杭", - "姚", - "肚", - "捉", - "飘", - "漂", - "昆", - "欺", - "吾", - "郎", - "烷", - "汁", - "呵", - "饰", - "萧", - "雅", - "邮", - "迁", - "燕", - "撒", - "姻", - "赴", - "宴", - "烦", - "债", - "帐", - "斑", - "铃", - "旨", - "醇", - "董", - "饼", - "雏", - "姿", - "拌", - "傅", - "腹", - "妥", - "揉", - "贤", - "拆", - "歪", - "葡", - "胺", - "丢", - "浩", - "徽", - "昂", - "垫", - "挡", - "览", - "贪", - "慰", - "缴", - "汪", - "慌", - "冯", - "诺", - "姜", - "谊", - "凶", - "劣", - "诬", - "耀", - "昏", - "躺", - "盈", - "骑", - "乔", - "溪", - "丛", - "卢", - "抹", - "闷", - "咨", - "刮", - "驾", - "缆", - "悟", - "摘", - "铒", - "掷", - "颇", - "幻", - "柄", - "惠", - "惨", - "佳", - "仇", - "腊", - "窝", - "涤", - "剑", - "瞧", - "堡", - "泼", - "葱", - "罩", - "霍", - "捞", - "胎", - "苍", - "滨", - "俩", - "捅", - "湘", - "砍", - "霞", - "邵", - "萄", - "疯", - "淮", - "遂", - "熊", - "粪", - "烘", - "宿", - "档", - "戈", - "驳", - "嫂", - "裕", - "徙", - "箭", - "捐", - "肠", - "撑", - "晒", - "辨", - "殿", - "莲", - "摊", - "搅", - "酱", - "屏", - "疫", - "哀", - "蔡", - "堵", - "沫", - "皱", - "畅", - "叠", - "阁", - "莱", - "敲", - "辖", - "钩", - "痕", - "坝", - "巷", - "饿", - "祸", - "丘", - "玄", - "溜", - "曰", - "逻", - "彭", - "尝", - "卿", - "妨", - "艇", - "吞", - "韦", - "怨", - "矮", - "歇" - ]; - - var require$$2 = [ - "的", - "一", - "是", - "在", - "不", - "了", - "有", - "和", - "人", - "這", - "中", - "大", - "為", - "上", - "個", - "國", - "我", - "以", - "要", - "他", - "時", - "來", - "用", - "們", - "生", - "到", - "作", - "地", - "於", - "出", - "就", - "分", - "對", - "成", - "會", - "可", - "主", - "發", - "年", - "動", - "同", - "工", - "也", - "能", - "下", - "過", - "子", - "說", - "產", - "種", - "面", - "而", - "方", - "後", - "多", - "定", - "行", - "學", - "法", - "所", - "民", - "得", - "經", - "十", - "三", - "之", - "進", - "著", - "等", - "部", - "度", - "家", - "電", - "力", - "裡", - "如", - "水", - "化", - "高", - "自", - "二", - "理", - "起", - "小", - "物", - "現", - "實", - "加", - "量", - "都", - "兩", - "體", - "制", - "機", - "當", - "使", - "點", - "從", - "業", - "本", - "去", - "把", - "性", - "好", - "應", - "開", - "它", - "合", - "還", - "因", - "由", - "其", - "些", - "然", - "前", - "外", - "天", - "政", - "四", - "日", - "那", - "社", - "義", - "事", - "平", - "形", - "相", - "全", - "表", - "間", - "樣", - "與", - "關", - "各", - "重", - "新", - "線", - "內", - "數", - "正", - "心", - "反", - "你", - "明", - "看", - "原", - "又", - "麼", - "利", - "比", - "或", - "但", - "質", - "氣", - "第", - "向", - "道", - "命", - "此", - "變", - "條", - "只", - "沒", - "結", - "解", - "問", - "意", - "建", - "月", - "公", - "無", - "系", - "軍", - "很", - "情", - "者", - "最", - "立", - "代", - "想", - "已", - "通", - "並", - "提", - "直", - "題", - "黨", - "程", - "展", - "五", - "果", - "料", - "象", - "員", - "革", - "位", - "入", - "常", - "文", - "總", - "次", - "品", - "式", - "活", - "設", - "及", - "管", - "特", - "件", - "長", - "求", - "老", - "頭", - "基", - "資", - "邊", - "流", - "路", - "級", - "少", - "圖", - "山", - "統", - "接", - "知", - "較", - "將", - "組", - "見", - "計", - "別", - "她", - "手", - "角", - "期", - "根", - "論", - "運", - "農", - "指", - "幾", - "九", - "區", - "強", - "放", - "決", - "西", - "被", - "幹", - "做", - "必", - "戰", - "先", - "回", - "則", - "任", - "取", - "據", - "處", - "隊", - "南", - "給", - "色", - "光", - "門", - "即", - "保", - "治", - "北", - "造", - "百", - "規", - "熱", - "領", - "七", - "海", - "口", - "東", - "導", - "器", - "壓", - "志", - "世", - "金", - "增", - "爭", - "濟", - "階", - "油", - "思", - "術", - "極", - "交", - "受", - "聯", - "什", - "認", - "六", - "共", - "權", - "收", - "證", - "改", - "清", - "美", - "再", - "採", - "轉", - "更", - "單", - "風", - "切", - "打", - "白", - "教", - "速", - "花", - "帶", - "安", - "場", - "身", - "車", - "例", - "真", - "務", - "具", - "萬", - "每", - "目", - "至", - "達", - "走", - "積", - "示", - "議", - "聲", - "報", - "鬥", - "完", - "類", - "八", - "離", - "華", - "名", - "確", - "才", - "科", - "張", - "信", - "馬", - "節", - "話", - "米", - "整", - "空", - "元", - "況", - "今", - "集", - "溫", - "傳", - "土", - "許", - "步", - "群", - "廣", - "石", - "記", - "需", - "段", - "研", - "界", - "拉", - "林", - "律", - "叫", - "且", - "究", - "觀", - "越", - "織", - "裝", - "影", - "算", - "低", - "持", - "音", - "眾", - "書", - "布", - "复", - "容", - "兒", - "須", - "際", - "商", - "非", - "驗", - "連", - "斷", - "深", - "難", - "近", - "礦", - "千", - "週", - "委", - "素", - "技", - "備", - "半", - "辦", - "青", - "省", - "列", - "習", - "響", - "約", - "支", - "般", - "史", - "感", - "勞", - "便", - "團", - "往", - "酸", - "歷", - "市", - "克", - "何", - "除", - "消", - "構", - "府", - "稱", - "太", - "準", - "精", - "值", - "號", - "率", - "族", - "維", - "劃", - "選", - "標", - "寫", - "存", - "候", - "毛", - "親", - "快", - "效", - "斯", - "院", - "查", - "江", - "型", - "眼", - "王", - "按", - "格", - "養", - "易", - "置", - "派", - "層", - "片", - "始", - "卻", - "專", - "狀", - "育", - "廠", - "京", - "識", - "適", - "屬", - "圓", - "包", - "火", - "住", - "調", - "滿", - "縣", - "局", - "照", - "參", - "紅", - "細", - "引", - "聽", - "該", - "鐵", - "價", - "嚴", - "首", - "底", - "液", - "官", - "德", - "隨", - "病", - "蘇", - "失", - "爾", - "死", - "講", - "配", - "女", - "黃", - "推", - "顯", - "談", - "罪", - "神", - "藝", - "呢", - "席", - "含", - "企", - "望", - "密", - "批", - "營", - "項", - "防", - "舉", - "球", - "英", - "氧", - "勢", - "告", - "李", - "台", - "落", - "木", - "幫", - "輪", - "破", - "亞", - "師", - "圍", - "注", - "遠", - "字", - "材", - "排", - "供", - "河", - "態", - "封", - "另", - "施", - "減", - "樹", - "溶", - "怎", - "止", - "案", - "言", - "士", - "均", - "武", - "固", - "葉", - "魚", - "波", - "視", - "僅", - "費", - "緊", - "愛", - "左", - "章", - "早", - "朝", - "害", - "續", - "輕", - "服", - "試", - "食", - "充", - "兵", - "源", - "判", - "護", - "司", - "足", - "某", - "練", - "差", - "致", - "板", - "田", - "降", - "黑", - "犯", - "負", - "擊", - "范", - "繼", - "興", - "似", - "餘", - "堅", - "曲", - "輸", - "修", - "故", - "城", - "夫", - "夠", - "送", - "筆", - "船", - "佔", - "右", - "財", - "吃", - "富", - "春", - "職", - "覺", - "漢", - "畫", - "功", - "巴", - "跟", - "雖", - "雜", - "飛", - "檢", - "吸", - "助", - "昇", - "陽", - "互", - "初", - "創", - "抗", - "考", - "投", - "壞", - "策", - "古", - "徑", - "換", - "未", - "跑", - "留", - "鋼", - "曾", - "端", - "責", - "站", - "簡", - "述", - "錢", - "副", - "盡", - "帝", - "射", - "草", - "衝", - "承", - "獨", - "令", - "限", - "阿", - "宣", - "環", - "雙", - "請", - "超", - "微", - "讓", - "控", - "州", - "良", - "軸", - "找", - "否", - "紀", - "益", - "依", - "優", - "頂", - "礎", - "載", - "倒", - "房", - "突", - "坐", - "粉", - "敵", - "略", - "客", - "袁", - "冷", - "勝", - "絕", - "析", - "塊", - "劑", - "測", - "絲", - "協", - "訴", - "念", - "陳", - "仍", - "羅", - "鹽", - "友", - "洋", - "錯", - "苦", - "夜", - "刑", - "移", - "頻", - "逐", - "靠", - "混", - "母", - "短", - "皮", - "終", - "聚", - "汽", - "村", - "雲", - "哪", - "既", - "距", - "衛", - "停", - "烈", - "央", - "察", - "燒", - "迅", - "境", - "若", - "印", - "洲", - "刻", - "括", - "激", - "孔", - "搞", - "甚", - "室", - "待", - "核", - "校", - "散", - "侵", - "吧", - "甲", - "遊", - "久", - "菜", - "味", - "舊", - "模", - "湖", - "貨", - "損", - "預", - "阻", - "毫", - "普", - "穩", - "乙", - "媽", - "植", - "息", - "擴", - "銀", - "語", - "揮", - "酒", - "守", - "拿", - "序", - "紙", - "醫", - "缺", - "雨", - "嗎", - "針", - "劉", - "啊", - "急", - "唱", - "誤", - "訓", - "願", - "審", - "附", - "獲", - "茶", - "鮮", - "糧", - "斤", - "孩", - "脫", - "硫", - "肥", - "善", - "龍", - "演", - "父", - "漸", - "血", - "歡", - "械", - "掌", - "歌", - "沙", - "剛", - "攻", - "謂", - "盾", - "討", - "晚", - "粒", - "亂", - "燃", - "矛", - "乎", - "殺", - "藥", - "寧", - "魯", - "貴", - "鐘", - "煤", - "讀", - "班", - "伯", - "香", - "介", - "迫", - "句", - "豐", - "培", - "握", - "蘭", - "擔", - "弦", - "蛋", - "沉", - "假", - "穿", - "執", - "答", - "樂", - "誰", - "順", - "煙", - "縮", - "徵", - "臉", - "喜", - "松", - "腳", - "困", - "異", - "免", - "背", - "星", - "福", - "買", - "染", - "井", - "概", - "慢", - "怕", - "磁", - "倍", - "祖", - "皇", - "促", - "靜", - "補", - "評", - "翻", - "肉", - "踐", - "尼", - "衣", - "寬", - "揚", - "棉", - "希", - "傷", - "操", - "垂", - "秋", - "宜", - "氫", - "套", - "督", - "振", - "架", - "亮", - "末", - "憲", - "慶", - "編", - "牛", - "觸", - "映", - "雷", - "銷", - "詩", - "座", - "居", - "抓", - "裂", - "胞", - "呼", - "娘", - "景", - "威", - "綠", - "晶", - "厚", - "盟", - "衡", - "雞", - "孫", - "延", - "危", - "膠", - "屋", - "鄉", - "臨", - "陸", - "顧", - "掉", - "呀", - "燈", - "歲", - "措", - "束", - "耐", - "劇", - "玉", - "趙", - "跳", - "哥", - "季", - "課", - "凱", - "胡", - "額", - "款", - "紹", - "卷", - "齊", - "偉", - "蒸", - "殖", - "永", - "宗", - "苗", - "川", - "爐", - "岩", - "弱", - "零", - "楊", - "奏", - "沿", - "露", - "桿", - "探", - "滑", - "鎮", - "飯", - "濃", - "航", - "懷", - "趕", - "庫", - "奪", - "伊", - "靈", - "稅", - "途", - "滅", - "賽", - "歸", - "召", - "鼓", - "播", - "盤", - "裁", - "險", - "康", - "唯", - "錄", - "菌", - "純", - "借", - "糖", - "蓋", - "橫", - "符", - "私", - "努", - "堂", - "域", - "槍", - "潤", - "幅", - "哈", - "竟", - "熟", - "蟲", - "澤", - "腦", - "壤", - "碳", - "歐", - "遍", - "側", - "寨", - "敢", - "徹", - "慮", - "斜", - "薄", - "庭", - "納", - "彈", - "飼", - "伸", - "折", - "麥", - "濕", - "暗", - "荷", - "瓦", - "塞", - "床", - "築", - "惡", - "戶", - "訪", - "塔", - "奇", - "透", - "梁", - "刀", - "旋", - "跡", - "卡", - "氯", - "遇", - "份", - "毒", - "泥", - "退", - "洗", - "擺", - "灰", - "彩", - "賣", - "耗", - "夏", - "擇", - "忙", - "銅", - "獻", - "硬", - "予", - "繁", - "圈", - "雪", - "函", - "亦", - "抽", - "篇", - "陣", - "陰", - "丁", - "尺", - "追", - "堆", - "雄", - "迎", - "泛", - "爸", - "樓", - "避", - "謀", - "噸", - "野", - "豬", - "旗", - "累", - "偏", - "典", - "館", - "索", - "秦", - "脂", - "潮", - "爺", - "豆", - "忽", - "托", - "驚", - "塑", - "遺", - "愈", - "朱", - "替", - "纖", - "粗", - "傾", - "尚", - "痛", - "楚", - "謝", - "奮", - "購", - "磨", - "君", - "池", - "旁", - "碎", - "骨", - "監", - "捕", - "弟", - "暴", - "割", - "貫", - "殊", - "釋", - "詞", - "亡", - "壁", - "頓", - "寶", - "午", - "塵", - "聞", - "揭", - "炮", - "殘", - "冬", - "橋", - "婦", - "警", - "綜", - "招", - "吳", - "付", - "浮", - "遭", - "徐", - "您", - "搖", - "谷", - "贊", - "箱", - "隔", - "訂", - "男", - "吹", - "園", - "紛", - "唐", - "敗", - "宋", - "玻", - "巨", - "耕", - "坦", - "榮", - "閉", - "灣", - "鍵", - "凡", - "駐", - "鍋", - "救", - "恩", - "剝", - "凝", - "鹼", - "齒", - "截", - "煉", - "麻", - "紡", - "禁", - "廢", - "盛", - "版", - "緩", - "淨", - "睛", - "昌", - "婚", - "涉", - "筒", - "嘴", - "插", - "岸", - "朗", - "莊", - "街", - "藏", - "姑", - "貿", - "腐", - "奴", - "啦", - "慣", - "乘", - "夥", - "恢", - "勻", - "紗", - "扎", - "辯", - "耳", - "彪", - "臣", - "億", - "璃", - "抵", - "脈", - "秀", - "薩", - "俄", - "網", - "舞", - "店", - "噴", - "縱", - "寸", - "汗", - "掛", - "洪", - "賀", - "閃", - "柬", - "爆", - "烯", - "津", - "稻", - "牆", - "軟", - "勇", - "像", - "滾", - "厘", - "蒙", - "芳", - "肯", - "坡", - "柱", - "盪", - "腿", - "儀", - "旅", - "尾", - "軋", - "冰", - "貢", - "登", - "黎", - "削", - "鑽", - "勒", - "逃", - "障", - "氨", - "郭", - "峰", - "幣", - "港", - "伏", - "軌", - "畝", - "畢", - "擦", - "莫", - "刺", - "浪", - "秘", - "援", - "株", - "健", - "售", - "股", - "島", - "甘", - "泡", - "睡", - "童", - "鑄", - "湯", - "閥", - "休", - "匯", - "舍", - "牧", - "繞", - "炸", - "哲", - "磷", - "績", - "朋", - "淡", - "尖", - "啟", - "陷", - "柴", - "呈", - "徒", - "顏", - "淚", - "稍", - "忘", - "泵", - "藍", - "拖", - "洞", - "授", - "鏡", - "辛", - "壯", - "鋒", - "貧", - "虛", - "彎", - "摩", - "泰", - "幼", - "廷", - "尊", - "窗", - "綱", - "弄", - "隸", - "疑", - "氏", - "宮", - "姐", - "震", - "瑞", - "怪", - "尤", - "琴", - "循", - "描", - "膜", - "違", - "夾", - "腰", - "緣", - "珠", - "窮", - "森", - "枝", - "竹", - "溝", - "催", - "繩", - "憶", - "邦", - "剩", - "幸", - "漿", - "欄", - "擁", - "牙", - "貯", - "禮", - "濾", - "鈉", - "紋", - "罷", - "拍", - "咱", - "喊", - "袖", - "埃", - "勤", - "罰", - "焦", - "潛", - "伍", - "墨", - "欲", - "縫", - "姓", - "刊", - "飽", - "仿", - "獎", - "鋁", - "鬼", - "麗", - "跨", - "默", - "挖", - "鏈", - "掃", - "喝", - "袋", - "炭", - "污", - "幕", - "諸", - "弧", - "勵", - "梅", - "奶", - "潔", - "災", - "舟", - "鑑", - "苯", - "訟", - "抱", - "毀", - "懂", - "寒", - "智", - "埔", - "寄", - "屆", - "躍", - "渡", - "挑", - "丹", - "艱", - "貝", - "碰", - "拔", - "爹", - "戴", - "碼", - "夢", - "芽", - "熔", - "赤", - "漁", - "哭", - "敬", - "顆", - "奔", - "鉛", - "仲", - "虎", - "稀", - "妹", - "乏", - "珍", - "申", - "桌", - "遵", - "允", - "隆", - "螺", - "倉", - "魏", - "銳", - "曉", - "氮", - "兼", - "隱", - "礙", - "赫", - "撥", - "忠", - "肅", - "缸", - "牽", - "搶", - "博", - "巧", - "殼", - "兄", - "杜", - "訊", - "誠", - "碧", - "祥", - "柯", - "頁", - "巡", - "矩", - "悲", - "灌", - "齡", - "倫", - "票", - "尋", - "桂", - "鋪", - "聖", - "恐", - "恰", - "鄭", - "趣", - "抬", - "荒", - "騰", - "貼", - "柔", - "滴", - "猛", - "闊", - "輛", - "妻", - "填", - "撤", - "儲", - "簽", - "鬧", - "擾", - "紫", - "砂", - "遞", - "戲", - "吊", - "陶", - "伐", - "餵", - "療", - "瓶", - "婆", - "撫", - "臂", - "摸", - "忍", - "蝦", - "蠟", - "鄰", - "胸", - "鞏", - "擠", - "偶", - "棄", - "槽", - "勁", - "乳", - "鄧", - "吉", - "仁", - "爛", - "磚", - "租", - "烏", - "艦", - "伴", - "瓜", - "淺", - "丙", - "暫", - "燥", - "橡", - "柳", - "迷", - "暖", - "牌", - "秧", - "膽", - "詳", - "簧", - "踏", - "瓷", - "譜", - "呆", - "賓", - "糊", - "洛", - "輝", - "憤", - "競", - "隙", - "怒", - "粘", - "乃", - "緒", - "肩", - "籍", - "敏", - "塗", - "熙", - "皆", - "偵", - "懸", - "掘", - "享", - "糾", - "醒", - "狂", - "鎖", - "淀", - "恨", - "牲", - "霸", - "爬", - "賞", - "逆", - "玩", - "陵", - "祝", - "秒", - "浙", - "貌", - "役", - "彼", - "悉", - "鴨", - "趨", - "鳳", - "晨", - "畜", - "輩", - "秩", - "卵", - "署", - "梯", - "炎", - "灘", - "棋", - "驅", - "篩", - "峽", - "冒", - "啥", - "壽", - "譯", - "浸", - "泉", - "帽", - "遲", - "矽", - "疆", - "貸", - "漏", - "稿", - "冠", - "嫩", - "脅", - "芯", - "牢", - "叛", - "蝕", - "奧", - "鳴", - "嶺", - "羊", - "憑", - "串", - "塘", - "繪", - "酵", - "融", - "盆", - "錫", - "廟", - "籌", - "凍", - "輔", - "攝", - "襲", - "筋", - "拒", - "僚", - "旱", - "鉀", - "鳥", - "漆", - "沈", - "眉", - "疏", - "添", - "棒", - "穗", - "硝", - "韓", - "逼", - "扭", - "僑", - "涼", - "挺", - "碗", - "栽", - "炒", - "杯", - "患", - "餾", - "勸", - "豪", - "遼", - "勃", - "鴻", - "旦", - "吏", - "拜", - "狗", - "埋", - "輥", - "掩", - "飲", - "搬", - "罵", - "辭", - "勾", - "扣", - "估", - "蔣", - "絨", - "霧", - "丈", - "朵", - "姆", - "擬", - "宇", - "輯", - "陝", - "雕", - "償", - "蓄", - "崇", - "剪", - "倡", - "廳", - "咬", - "駛", - "薯", - "刷", - "斥", - "番", - "賦", - "奉", - "佛", - "澆", - "漫", - "曼", - "扇", - "鈣", - "桃", - "扶", - "仔", - "返", - "俗", - "虧", - "腔", - "鞋", - "棱", - "覆", - "框", - "悄", - "叔", - "撞", - "騙", - "勘", - "旺", - "沸", - "孤", - "吐", - "孟", - "渠", - "屈", - "疾", - "妙", - "惜", - "仰", - "狠", - "脹", - "諧", - "拋", - "黴", - "桑", - "崗", - "嘛", - "衰", - "盜", - "滲", - "臟", - "賴", - "湧", - "甜", - "曹", - "閱", - "肌", - "哩", - "厲", - "烴", - "緯", - "毅", - "昨", - "偽", - "症", - "煮", - "嘆", - "釘", - "搭", - "莖", - "籠", - "酷", - "偷", - "弓", - "錐", - "恆", - "傑", - "坑", - "鼻", - "翼", - "綸", - "敘", - "獄", - "逮", - "罐", - "絡", - "棚", - "抑", - "膨", - "蔬", - "寺", - "驟", - "穆", - "冶", - "枯", - "冊", - "屍", - "凸", - "紳", - "坯", - "犧", - "焰", - "轟", - "欣", - "晉", - "瘦", - "禦", - "錠", - "錦", - "喪", - "旬", - "鍛", - "壟", - "搜", - "撲", - "邀", - "亭", - "酯", - "邁", - "舒", - "脆", - "酶", - "閒", - "憂", - "酚", - "頑", - "羽", - "漲", - "卸", - "仗", - "陪", - "闢", - "懲", - "杭", - "姚", - "肚", - "捉", - "飄", - "漂", - "昆", - "欺", - "吾", - "郎", - "烷", - "汁", - "呵", - "飾", - "蕭", - "雅", - "郵", - "遷", - "燕", - "撒", - "姻", - "赴", - "宴", - "煩", - "債", - "帳", - "斑", - "鈴", - "旨", - "醇", - "董", - "餅", - "雛", - "姿", - "拌", - "傅", - "腹", - "妥", - "揉", - "賢", - "拆", - "歪", - "葡", - "胺", - "丟", - "浩", - "徽", - "昂", - "墊", - "擋", - "覽", - "貪", - "慰", - "繳", - "汪", - "慌", - "馮", - "諾", - "姜", - "誼", - "兇", - "劣", - "誣", - "耀", - "昏", - "躺", - "盈", - "騎", - "喬", - "溪", - "叢", - "盧", - "抹", - "悶", - "諮", - "刮", - "駕", - "纜", - "悟", - "摘", - "鉺", - "擲", - "頗", - "幻", - "柄", - "惠", - "慘", - "佳", - "仇", - "臘", - "窩", - "滌", - "劍", - "瞧", - "堡", - "潑", - "蔥", - "罩", - "霍", - "撈", - "胎", - "蒼", - "濱", - "倆", - "捅", - "湘", - "砍", - "霞", - "邵", - "萄", - "瘋", - "淮", - "遂", - "熊", - "糞", - "烘", - "宿", - "檔", - "戈", - "駁", - "嫂", - "裕", - "徙", - "箭", - "捐", - "腸", - "撐", - "曬", - "辨", - "殿", - "蓮", - "攤", - "攪", - "醬", - "屏", - "疫", - "哀", - "蔡", - "堵", - "沫", - "皺", - "暢", - "疊", - "閣", - "萊", - "敲", - "轄", - "鉤", - "痕", - "壩", - "巷", - "餓", - "禍", - "丘", - "玄", - "溜", - "曰", - "邏", - "彭", - "嘗", - "卿", - "妨", - "艇", - "吞", - "韋", - "怨", - "矮", - "歇" - ]; - - var require$$3 = [ - "abdikace", - "abeceda", - "adresa", - "agrese", - "akce", - "aktovka", - "alej", - "alkohol", - "amputace", - "ananas", - "andulka", - "anekdota", - "anketa", - "antika", - "anulovat", - "archa", - "arogance", - "asfalt", - "asistent", - "aspirace", - "astma", - "astronom", - "atlas", - "atletika", - "atol", - "autobus", - "azyl", - "babka", - "bachor", - "bacil", - "baculka", - "badatel", - "bageta", - "bagr", - "bahno", - "bakterie", - "balada", - "baletka", - "balkon", - "balonek", - "balvan", - "balza", - "bambus", - "bankomat", - "barbar", - "baret", - "barman", - "baroko", - "barva", - "baterka", - "batoh", - "bavlna", - "bazalka", - "bazilika", - "bazuka", - "bedna", - "beran", - "beseda", - "bestie", - "beton", - "bezinka", - "bezmoc", - "beztak", - "bicykl", - "bidlo", - "biftek", - "bikiny", - "bilance", - "biograf", - "biolog", - "bitva", - "bizon", - "blahobyt", - "blatouch", - "blecha", - "bledule", - "blesk", - "blikat", - "blizna", - "blokovat", - "bloudit", - "blud", - "bobek", - "bobr", - "bodlina", - "bodnout", - "bohatost", - "bojkot", - "bojovat", - "bokorys", - "bolest", - "borec", - "borovice", - "bota", - "boubel", - "bouchat", - "bouda", - "boule", - "bourat", - "boxer", - "bradavka", - "brambora", - "branka", - "bratr", - "brepta", - "briketa", - "brko", - "brloh", - "bronz", - "broskev", - "brunetka", - "brusinka", - "brzda", - "brzy", - "bublina", - "bubnovat", - "buchta", - "buditel", - "budka", - "budova", - "bufet", - "bujarost", - "bukvice", - "buldok", - "bulva", - "bunda", - "bunkr", - "burza", - "butik", - "buvol", - "buzola", - "bydlet", - "bylina", - "bytovka", - "bzukot", - "capart", - "carevna", - "cedr", - "cedule", - "cejch", - "cejn", - "cela", - "celer", - "celkem", - "celnice", - "cenina", - "cennost", - "cenovka", - "centrum", - "cenzor", - "cestopis", - "cetka", - "chalupa", - "chapadlo", - "charita", - "chata", - "chechtat", - "chemie", - "chichot", - "chirurg", - "chlad", - "chleba", - "chlubit", - "chmel", - "chmura", - "chobot", - "chochol", - "chodba", - "cholera", - "chomout", - "chopit", - "choroba", - "chov", - "chrapot", - "chrlit", - "chrt", - "chrup", - "chtivost", - "chudina", - "chutnat", - "chvat", - "chvilka", - "chvost", - "chyba", - "chystat", - "chytit", - "cibule", - "cigareta", - "cihelna", - "cihla", - "cinkot", - "cirkus", - "cisterna", - "citace", - "citrus", - "cizinec", - "cizost", - "clona", - "cokoliv", - "couvat", - "ctitel", - "ctnost", - "cudnost", - "cuketa", - "cukr", - "cupot", - "cvaknout", - "cval", - "cvik", - "cvrkot", - "cyklista", - "daleko", - "dareba", - "datel", - "datum", - "dcera", - "debata", - "dechovka", - "decibel", - "deficit", - "deflace", - "dekl", - "dekret", - "demokrat", - "deprese", - "derby", - "deska", - "detektiv", - "dikobraz", - "diktovat", - "dioda", - "diplom", - "disk", - "displej", - "divadlo", - "divoch", - "dlaha", - "dlouho", - "dluhopis", - "dnes", - "dobro", - "dobytek", - "docent", - "dochutit", - "dodnes", - "dohled", - "dohoda", - "dohra", - "dojem", - "dojnice", - "doklad", - "dokola", - "doktor", - "dokument", - "dolar", - "doleva", - "dolina", - "doma", - "dominant", - "domluvit", - "domov", - "donutit", - "dopad", - "dopis", - "doplnit", - "doposud", - "doprovod", - "dopustit", - "dorazit", - "dorost", - "dort", - "dosah", - "doslov", - "dostatek", - "dosud", - "dosyta", - "dotaz", - "dotek", - "dotknout", - "doufat", - "doutnat", - "dovozce", - "dozadu", - "doznat", - "dozorce", - "drahota", - "drak", - "dramatik", - "dravec", - "draze", - "drdol", - "drobnost", - "drogerie", - "drozd", - "drsnost", - "drtit", - "drzost", - "duben", - "duchovno", - "dudek", - "duha", - "duhovka", - "dusit", - "dusno", - "dutost", - "dvojice", - "dvorec", - "dynamit", - "ekolog", - "ekonomie", - "elektron", - "elipsa", - "email", - "emise", - "emoce", - "empatie", - "epizoda", - "epocha", - "epopej", - "epos", - "esej", - "esence", - "eskorta", - "eskymo", - "etiketa", - "euforie", - "evoluce", - "exekuce", - "exkurze", - "expedice", - "exploze", - "export", - "extrakt", - "facka", - "fajfka", - "fakulta", - "fanatik", - "fantazie", - "farmacie", - "favorit", - "fazole", - "federace", - "fejeton", - "fenka", - "fialka", - "figurant", - "filozof", - "filtr", - "finance", - "finta", - "fixace", - "fjord", - "flanel", - "flirt", - "flotila", - "fond", - "fosfor", - "fotbal", - "fotka", - "foton", - "frakce", - "freska", - "fronta", - "fukar", - "funkce", - "fyzika", - "galeje", - "garant", - "genetika", - "geolog", - "gilotina", - "glazura", - "glejt", - "golem", - "golfista", - "gotika", - "graf", - "gramofon", - "granule", - "grep", - "gril", - "grog", - "groteska", - "guma", - "hadice", - "hadr", - "hala", - "halenka", - "hanba", - "hanopis", - "harfa", - "harpuna", - "havran", - "hebkost", - "hejkal", - "hejno", - "hejtman", - "hektar", - "helma", - "hematom", - "herec", - "herna", - "heslo", - "hezky", - "historik", - "hladovka", - "hlasivky", - "hlava", - "hledat", - "hlen", - "hlodavec", - "hloh", - "hloupost", - "hltat", - "hlubina", - "hluchota", - "hmat", - "hmota", - "hmyz", - "hnis", - "hnojivo", - "hnout", - "hoblina", - "hoboj", - "hoch", - "hodiny", - "hodlat", - "hodnota", - "hodovat", - "hojnost", - "hokej", - "holinka", - "holka", - "holub", - "homole", - "honitba", - "honorace", - "horal", - "horda", - "horizont", - "horko", - "horlivec", - "hormon", - "hornina", - "horoskop", - "horstvo", - "hospoda", - "hostina", - "hotovost", - "houba", - "houf", - "houpat", - "houska", - "hovor", - "hradba", - "hranice", - "hravost", - "hrazda", - "hrbolek", - "hrdina", - "hrdlo", - "hrdost", - "hrnek", - "hrobka", - "hromada", - "hrot", - "hrouda", - "hrozen", - "hrstka", - "hrubost", - "hryzat", - "hubenost", - "hubnout", - "hudba", - "hukot", - "humr", - "husita", - "hustota", - "hvozd", - "hybnost", - "hydrant", - "hygiena", - "hymna", - "hysterik", - "idylka", - "ihned", - "ikona", - "iluze", - "imunita", - "infekce", - "inflace", - "inkaso", - "inovace", - "inspekce", - "internet", - "invalida", - "investor", - "inzerce", - "ironie", - "jablko", - "jachta", - "jahoda", - "jakmile", - "jakost", - "jalovec", - "jantar", - "jarmark", - "jaro", - "jasan", - "jasno", - "jatka", - "javor", - "jazyk", - "jedinec", - "jedle", - "jednatel", - "jehlan", - "jekot", - "jelen", - "jelito", - "jemnost", - "jenom", - "jepice", - "jeseter", - "jevit", - "jezdec", - "jezero", - "jinak", - "jindy", - "jinoch", - "jiskra", - "jistota", - "jitrnice", - "jizva", - "jmenovat", - "jogurt", - "jurta", - "kabaret", - "kabel", - "kabinet", - "kachna", - "kadet", - "kadidlo", - "kahan", - "kajak", - "kajuta", - "kakao", - "kaktus", - "kalamita", - "kalhoty", - "kalibr", - "kalnost", - "kamera", - "kamkoliv", - "kamna", - "kanibal", - "kanoe", - "kantor", - "kapalina", - "kapela", - "kapitola", - "kapka", - "kaple", - "kapota", - "kapr", - "kapusta", - "kapybara", - "karamel", - "karotka", - "karton", - "kasa", - "katalog", - "katedra", - "kauce", - "kauza", - "kavalec", - "kazajka", - "kazeta", - "kazivost", - "kdekoliv", - "kdesi", - "kedluben", - "kemp", - "keramika", - "kino", - "klacek", - "kladivo", - "klam", - "klapot", - "klasika", - "klaun", - "klec", - "klenba", - "klepat", - "klesnout", - "klid", - "klima", - "klisna", - "klobouk", - "klokan", - "klopa", - "kloub", - "klubovna", - "klusat", - "kluzkost", - "kmen", - "kmitat", - "kmotr", - "kniha", - "knot", - "koalice", - "koberec", - "kobka", - "kobliha", - "kobyla", - "kocour", - "kohout", - "kojenec", - "kokos", - "koktejl", - "kolaps", - "koleda", - "kolize", - "kolo", - "komando", - "kometa", - "komik", - "komnata", - "komora", - "kompas", - "komunita", - "konat", - "koncept", - "kondice", - "konec", - "konfese", - "kongres", - "konina", - "konkurs", - "kontakt", - "konzerva", - "kopanec", - "kopie", - "kopnout", - "koprovka", - "korbel", - "korektor", - "kormidlo", - "koroptev", - "korpus", - "koruna", - "koryto", - "korzet", - "kosatec", - "kostka", - "kotel", - "kotleta", - "kotoul", - "koukat", - "koupelna", - "kousek", - "kouzlo", - "kovboj", - "koza", - "kozoroh", - "krabice", - "krach", - "krajina", - "kralovat", - "krasopis", - "kravata", - "kredit", - "krejcar", - "kresba", - "kreveta", - "kriket", - "kritik", - "krize", - "krkavec", - "krmelec", - "krmivo", - "krocan", - "krok", - "kronika", - "kropit", - "kroupa", - "krovka", - "krtek", - "kruhadlo", - "krupice", - "krutost", - "krvinka", - "krychle", - "krypta", - "krystal", - "kryt", - "kudlanka", - "kufr", - "kujnost", - "kukla", - "kulajda", - "kulich", - "kulka", - "kulomet", - "kultura", - "kuna", - "kupodivu", - "kurt", - "kurzor", - "kutil", - "kvalita", - "kvasinka", - "kvestor", - "kynolog", - "kyselina", - "kytara", - "kytice", - "kytka", - "kytovec", - "kyvadlo", - "labrador", - "lachtan", - "ladnost", - "laik", - "lakomec", - "lamela", - "lampa", - "lanovka", - "lasice", - "laso", - "lastura", - "latinka", - "lavina", - "lebka", - "leckdy", - "leden", - "lednice", - "ledovka", - "ledvina", - "legenda", - "legie", - "legrace", - "lehce", - "lehkost", - "lehnout", - "lektvar", - "lenochod", - "lentilka", - "lepenka", - "lepidlo", - "letadlo", - "letec", - "letmo", - "letokruh", - "levhart", - "levitace", - "levobok", - "libra", - "lichotka", - "lidojed", - "lidskost", - "lihovina", - "lijavec", - "lilek", - "limetka", - "linie", - "linka", - "linoleum", - "listopad", - "litina", - "litovat", - "lobista", - "lodivod", - "logika", - "logoped", - "lokalita", - "loket", - "lomcovat", - "lopata", - "lopuch", - "lord", - "losos", - "lotr", - "loudal", - "louh", - "louka", - "louskat", - "lovec", - "lstivost", - "lucerna", - "lucifer", - "lump", - "lusk", - "lustrace", - "lvice", - "lyra", - "lyrika", - "lysina", - "madam", - "madlo", - "magistr", - "mahagon", - "majetek", - "majitel", - "majorita", - "makak", - "makovice", - "makrela", - "malba", - "malina", - "malovat", - "malvice", - "maminka", - "mandle", - "manko", - "marnost", - "masakr", - "maskot", - "masopust", - "matice", - "matrika", - "maturita", - "mazanec", - "mazivo", - "mazlit", - "mazurka", - "mdloba", - "mechanik", - "meditace", - "medovina", - "melasa", - "meloun", - "mentolka", - "metla", - "metoda", - "metr", - "mezera", - "migrace", - "mihnout", - "mihule", - "mikina", - "mikrofon", - "milenec", - "milimetr", - "milost", - "mimika", - "mincovna", - "minibar", - "minomet", - "minulost", - "miska", - "mistr", - "mixovat", - "mladost", - "mlha", - "mlhovina", - "mlok", - "mlsat", - "mluvit", - "mnich", - "mnohem", - "mobil", - "mocnost", - "modelka", - "modlitba", - "mohyla", - "mokro", - "molekula", - "momentka", - "monarcha", - "monokl", - "monstrum", - "montovat", - "monzun", - "mosaz", - "moskyt", - "most", - "motivace", - "motorka", - "motyka", - "moucha", - "moudrost", - "mozaika", - "mozek", - "mozol", - "mramor", - "mravenec", - "mrkev", - "mrtvola", - "mrzet", - "mrzutost", - "mstitel", - "mudrc", - "muflon", - "mulat", - "mumie", - "munice", - "muset", - "mutace", - "muzeum", - "muzikant", - "myslivec", - "mzda", - "nabourat", - "nachytat", - "nadace", - "nadbytek", - "nadhoz", - "nadobro", - "nadpis", - "nahlas", - "nahnat", - "nahodile", - "nahradit", - "naivita", - "najednou", - "najisto", - "najmout", - "naklonit", - "nakonec", - "nakrmit", - "nalevo", - "namazat", - "namluvit", - "nanometr", - "naoko", - "naopak", - "naostro", - "napadat", - "napevno", - "naplnit", - "napnout", - "naposled", - "naprosto", - "narodit", - "naruby", - "narychlo", - "nasadit", - "nasekat", - "naslepo", - "nastat", - "natolik", - "navenek", - "navrch", - "navzdory", - "nazvat", - "nebe", - "nechat", - "necky", - "nedaleko", - "nedbat", - "neduh", - "negace", - "nehet", - "nehoda", - "nejen", - "nejprve", - "neklid", - "nelibost", - "nemilost", - "nemoc", - "neochota", - "neonka", - "nepokoj", - "nerost", - "nerv", - "nesmysl", - "nesoulad", - "netvor", - "neuron", - "nevina", - "nezvykle", - "nicota", - "nijak", - "nikam", - "nikdy", - "nikl", - "nikterak", - "nitro", - "nocleh", - "nohavice", - "nominace", - "nora", - "norek", - "nositel", - "nosnost", - "nouze", - "noviny", - "novota", - "nozdra", - "nuda", - "nudle", - "nuget", - "nutit", - "nutnost", - "nutrie", - "nymfa", - "obal", - "obarvit", - "obava", - "obdiv", - "obec", - "obehnat", - "obejmout", - "obezita", - "obhajoba", - "obilnice", - "objasnit", - "objekt", - "obklopit", - "oblast", - "oblek", - "obliba", - "obloha", - "obluda", - "obnos", - "obohatit", - "obojek", - "obout", - "obrazec", - "obrna", - "obruba", - "obrys", - "obsah", - "obsluha", - "obstarat", - "obuv", - "obvaz", - "obvinit", - "obvod", - "obvykle", - "obyvatel", - "obzor", - "ocas", - "ocel", - "ocenit", - "ochladit", - "ochota", - "ochrana", - "ocitnout", - "odboj", - "odbyt", - "odchod", - "odcizit", - "odebrat", - "odeslat", - "odevzdat", - "odezva", - "odhadce", - "odhodit", - "odjet", - "odjinud", - "odkaz", - "odkoupit", - "odliv", - "odluka", - "odmlka", - "odolnost", - "odpad", - "odpis", - "odplout", - "odpor", - "odpustit", - "odpykat", - "odrazka", - "odsoudit", - "odstup", - "odsun", - "odtok", - "odtud", - "odvaha", - "odveta", - "odvolat", - "odvracet", - "odznak", - "ofina", - "ofsajd", - "ohlas", - "ohnisko", - "ohrada", - "ohrozit", - "ohryzek", - "okap", - "okenice", - "oklika", - "okno", - "okouzlit", - "okovy", - "okrasa", - "okres", - "okrsek", - "okruh", - "okupant", - "okurka", - "okusit", - "olejnina", - "olizovat", - "omak", - "omeleta", - "omezit", - "omladina", - "omlouvat", - "omluva", - "omyl", - "onehdy", - "opakovat", - "opasek", - "operace", - "opice", - "opilost", - "opisovat", - "opora", - "opozice", - "opravdu", - "oproti", - "orbital", - "orchestr", - "orgie", - "orlice", - "orloj", - "ortel", - "osada", - "oschnout", - "osika", - "osivo", - "oslava", - "oslepit", - "oslnit", - "oslovit", - "osnova", - "osoba", - "osolit", - "ospalec", - "osten", - "ostraha", - "ostuda", - "ostych", - "osvojit", - "oteplit", - "otisk", - "otop", - "otrhat", - "otrlost", - "otrok", - "otruby", - "otvor", - "ovanout", - "ovar", - "oves", - "ovlivnit", - "ovoce", - "oxid", - "ozdoba", - "pachatel", - "pacient", - "padouch", - "pahorek", - "pakt", - "palanda", - "palec", - "palivo", - "paluba", - "pamflet", - "pamlsek", - "panenka", - "panika", - "panna", - "panovat", - "panstvo", - "pantofle", - "paprika", - "parketa", - "parodie", - "parta", - "paruka", - "paryba", - "paseka", - "pasivita", - "pastelka", - "patent", - "patrona", - "pavouk", - "pazneht", - "pazourek", - "pecka", - "pedagog", - "pejsek", - "peklo", - "peloton", - "penalta", - "pendrek", - "penze", - "periskop", - "pero", - "pestrost", - "petarda", - "petice", - "petrolej", - "pevnina", - "pexeso", - "pianista", - "piha", - "pijavice", - "pikle", - "piknik", - "pilina", - "pilnost", - "pilulka", - "pinzeta", - "pipeta", - "pisatel", - "pistole", - "pitevna", - "pivnice", - "pivovar", - "placenta", - "plakat", - "plamen", - "planeta", - "plastika", - "platit", - "plavidlo", - "plaz", - "plech", - "plemeno", - "plenta", - "ples", - "pletivo", - "plevel", - "plivat", - "plnit", - "plno", - "plocha", - "plodina", - "plomba", - "plout", - "pluk", - "plyn", - "pobavit", - "pobyt", - "pochod", - "pocit", - "poctivec", - "podat", - "podcenit", - "podepsat", - "podhled", - "podivit", - "podklad", - "podmanit", - "podnik", - "podoba", - "podpora", - "podraz", - "podstata", - "podvod", - "podzim", - "poezie", - "pohanka", - "pohnutka", - "pohovor", - "pohroma", - "pohyb", - "pointa", - "pojistka", - "pojmout", - "pokazit", - "pokles", - "pokoj", - "pokrok", - "pokuta", - "pokyn", - "poledne", - "polibek", - "polknout", - "poloha", - "polynom", - "pomalu", - "pominout", - "pomlka", - "pomoc", - "pomsta", - "pomyslet", - "ponechat", - "ponorka", - "ponurost", - "popadat", - "popel", - "popisek", - "poplach", - "poprosit", - "popsat", - "popud", - "poradce", - "porce", - "porod", - "porucha", - "poryv", - "posadit", - "posed", - "posila", - "poskok", - "poslanec", - "posoudit", - "pospolu", - "postava", - "posudek", - "posyp", - "potah", - "potkan", - "potlesk", - "potomek", - "potrava", - "potupa", - "potvora", - "poukaz", - "pouto", - "pouzdro", - "povaha", - "povidla", - "povlak", - "povoz", - "povrch", - "povstat", - "povyk", - "povzdech", - "pozdrav", - "pozemek", - "poznatek", - "pozor", - "pozvat", - "pracovat", - "prahory", - "praktika", - "prales", - "praotec", - "praporek", - "prase", - "pravda", - "princip", - "prkno", - "probudit", - "procento", - "prodej", - "profese", - "prohra", - "projekt", - "prolomit", - "promile", - "pronikat", - "propad", - "prorok", - "prosba", - "proton", - "proutek", - "provaz", - "prskavka", - "prsten", - "prudkost", - "prut", - "prvek", - "prvohory", - "psanec", - "psovod", - "pstruh", - "ptactvo", - "puberta", - "puch", - "pudl", - "pukavec", - "puklina", - "pukrle", - "pult", - "pumpa", - "punc", - "pupen", - "pusa", - "pusinka", - "pustina", - "putovat", - "putyka", - "pyramida", - "pysk", - "pytel", - "racek", - "rachot", - "radiace", - "radnice", - "radon", - "raft", - "ragby", - "raketa", - "rakovina", - "rameno", - "rampouch", - "rande", - "rarach", - "rarita", - "rasovna", - "rastr", - "ratolest", - "razance", - "razidlo", - "reagovat", - "reakce", - "recept", - "redaktor", - "referent", - "reflex", - "rejnok", - "reklama", - "rekord", - "rekrut", - "rektor", - "reputace", - "revize", - "revma", - "revolver", - "rezerva", - "riskovat", - "riziko", - "robotika", - "rodokmen", - "rohovka", - "rokle", - "rokoko", - "romaneto", - "ropovod", - "ropucha", - "rorejs", - "rosol", - "rostlina", - "rotmistr", - "rotoped", - "rotunda", - "roubenka", - "roucho", - "roup", - "roura", - "rovina", - "rovnice", - "rozbor", - "rozchod", - "rozdat", - "rozeznat", - "rozhodce", - "rozinka", - "rozjezd", - "rozkaz", - "rozloha", - "rozmar", - "rozpad", - "rozruch", - "rozsah", - "roztok", - "rozum", - "rozvod", - "rubrika", - "ruchadlo", - "rukavice", - "rukopis", - "ryba", - "rybolov", - "rychlost", - "rydlo", - "rypadlo", - "rytina", - "ryzost", - "sadista", - "sahat", - "sako", - "samec", - "samizdat", - "samota", - "sanitka", - "sardinka", - "sasanka", - "satelit", - "sazba", - "sazenice", - "sbor", - "schovat", - "sebranka", - "secese", - "sedadlo", - "sediment", - "sedlo", - "sehnat", - "sejmout", - "sekera", - "sekta", - "sekunda", - "sekvoje", - "semeno", - "seno", - "servis", - "sesadit", - "seshora", - "seskok", - "seslat", - "sestra", - "sesuv", - "sesypat", - "setba", - "setina", - "setkat", - "setnout", - "setrvat", - "sever", - "seznam", - "shoda", - "shrnout", - "sifon", - "silnice", - "sirka", - "sirotek", - "sirup", - "situace", - "skafandr", - "skalisko", - "skanzen", - "skaut", - "skeptik", - "skica", - "skladba", - "sklenice", - "sklo", - "skluz", - "skoba", - "skokan", - "skoro", - "skripta", - "skrz", - "skupina", - "skvost", - "skvrna", - "slabika", - "sladidlo", - "slanina", - "slast", - "slavnost", - "sledovat", - "slepec", - "sleva", - "slezina", - "slib", - "slina", - "sliznice", - "slon", - "sloupek", - "slovo", - "sluch", - "sluha", - "slunce", - "slupka", - "slza", - "smaragd", - "smetana", - "smilstvo", - "smlouva", - "smog", - "smrad", - "smrk", - "smrtka", - "smutek", - "smysl", - "snad", - "snaha", - "snob", - "sobota", - "socha", - "sodovka", - "sokol", - "sopka", - "sotva", - "souboj", - "soucit", - "soudce", - "souhlas", - "soulad", - "soumrak", - "souprava", - "soused", - "soutok", - "souviset", - "spalovna", - "spasitel", - "spis", - "splav", - "spodek", - "spojenec", - "spolu", - "sponzor", - "spornost", - "spousta", - "sprcha", - "spustit", - "sranda", - "sraz", - "srdce", - "srna", - "srnec", - "srovnat", - "srpen", - "srst", - "srub", - "stanice", - "starosta", - "statika", - "stavba", - "stehno", - "stezka", - "stodola", - "stolek", - "stopa", - "storno", - "stoupat", - "strach", - "stres", - "strhnout", - "strom", - "struna", - "studna", - "stupnice", - "stvol", - "styk", - "subjekt", - "subtropy", - "suchar", - "sudost", - "sukno", - "sundat", - "sunout", - "surikata", - "surovina", - "svah", - "svalstvo", - "svetr", - "svatba", - "svazek", - "svisle", - "svitek", - "svoboda", - "svodidlo", - "svorka", - "svrab", - "sykavka", - "sykot", - "synek", - "synovec", - "sypat", - "sypkost", - "syrovost", - "sysel", - "sytost", - "tabletka", - "tabule", - "tahoun", - "tajemno", - "tajfun", - "tajga", - "tajit", - "tajnost", - "taktika", - "tamhle", - "tampon", - "tancovat", - "tanec", - "tanker", - "tapeta", - "tavenina", - "tazatel", - "technika", - "tehdy", - "tekutina", - "telefon", - "temnota", - "tendence", - "tenista", - "tenor", - "teplota", - "tepna", - "teprve", - "terapie", - "termoska", - "textil", - "ticho", - "tiskopis", - "titulek", - "tkadlec", - "tkanina", - "tlapka", - "tleskat", - "tlukot", - "tlupa", - "tmel", - "toaleta", - "topinka", - "topol", - "torzo", - "touha", - "toulec", - "tradice", - "traktor", - "tramp", - "trasa", - "traverza", - "trefit", - "trest", - "trezor", - "trhavina", - "trhlina", - "trochu", - "trojice", - "troska", - "trouba", - "trpce", - "trpitel", - "trpkost", - "trubec", - "truchlit", - "truhlice", - "trus", - "trvat", - "tudy", - "tuhnout", - "tuhost", - "tundra", - "turista", - "turnaj", - "tuzemsko", - "tvaroh", - "tvorba", - "tvrdost", - "tvrz", - "tygr", - "tykev", - "ubohost", - "uboze", - "ubrat", - "ubrousek", - "ubrus", - "ubytovna", - "ucho", - "uctivost", - "udivit", - "uhradit", - "ujednat", - "ujistit", - "ujmout", - "ukazatel", - "uklidnit", - "uklonit", - "ukotvit", - "ukrojit", - "ulice", - "ulita", - "ulovit", - "umyvadlo", - "unavit", - "uniforma", - "uniknout", - "upadnout", - "uplatnit", - "uplynout", - "upoutat", - "upravit", - "uran", - "urazit", - "usednout", - "usilovat", - "usmrtit", - "usnadnit", - "usnout", - "usoudit", - "ustlat", - "ustrnout", - "utahovat", - "utkat", - "utlumit", - "utonout", - "utopenec", - "utrousit", - "uvalit", - "uvolnit", - "uvozovka", - "uzdravit", - "uzel", - "uzenina", - "uzlina", - "uznat", - "vagon", - "valcha", - "valoun", - "vana", - "vandal", - "vanilka", - "varan", - "varhany", - "varovat", - "vcelku", - "vchod", - "vdova", - "vedro", - "vegetace", - "vejce", - "velbloud", - "veletrh", - "velitel", - "velmoc", - "velryba", - "venkov", - "veranda", - "verze", - "veselka", - "veskrze", - "vesnice", - "vespodu", - "vesta", - "veterina", - "veverka", - "vibrace", - "vichr", - "videohra", - "vidina", - "vidle", - "vila", - "vinice", - "viset", - "vitalita", - "vize", - "vizitka", - "vjezd", - "vklad", - "vkus", - "vlajka", - "vlak", - "vlasec", - "vlevo", - "vlhkost", - "vliv", - "vlnovka", - "vloupat", - "vnucovat", - "vnuk", - "voda", - "vodivost", - "vodoznak", - "vodstvo", - "vojensky", - "vojna", - "vojsko", - "volant", - "volba", - "volit", - "volno", - "voskovka", - "vozidlo", - "vozovna", - "vpravo", - "vrabec", - "vracet", - "vrah", - "vrata", - "vrba", - "vrcholek", - "vrhat", - "vrstva", - "vrtule", - "vsadit", - "vstoupit", - "vstup", - "vtip", - "vybavit", - "vybrat", - "vychovat", - "vydat", - "vydra", - "vyfotit", - "vyhledat", - "vyhnout", - "vyhodit", - "vyhradit", - "vyhubit", - "vyjasnit", - "vyjet", - "vyjmout", - "vyklopit", - "vykonat", - "vylekat", - "vymazat", - "vymezit", - "vymizet", - "vymyslet", - "vynechat", - "vynikat", - "vynutit", - "vypadat", - "vyplatit", - "vypravit", - "vypustit", - "vyrazit", - "vyrovnat", - "vyrvat", - "vyslovit", - "vysoko", - "vystavit", - "vysunout", - "vysypat", - "vytasit", - "vytesat", - "vytratit", - "vyvinout", - "vyvolat", - "vyvrhel", - "vyzdobit", - "vyznat", - "vzadu", - "vzbudit", - "vzchopit", - "vzdor", - "vzduch", - "vzdychat", - "vzestup", - "vzhledem", - "vzkaz", - "vzlykat", - "vznik", - "vzorek", - "vzpoura", - "vztah", - "vztek", - "xylofon", - "zabrat", - "zabydlet", - "zachovat", - "zadarmo", - "zadusit", - "zafoukat", - "zahltit", - "zahodit", - "zahrada", - "zahynout", - "zajatec", - "zajet", - "zajistit", - "zaklepat", - "zakoupit", - "zalepit", - "zamezit", - "zamotat", - "zamyslet", - "zanechat", - "zanikat", - "zaplatit", - "zapojit", - "zapsat", - "zarazit", - "zastavit", - "zasunout", - "zatajit", - "zatemnit", - "zatknout", - "zaujmout", - "zavalit", - "zavelet", - "zavinit", - "zavolat", - "zavrtat", - "zazvonit", - "zbavit", - "zbrusu", - "zbudovat", - "zbytek", - "zdaleka", - "zdarma", - "zdatnost", - "zdivo", - "zdobit", - "zdroj", - "zdvih", - "zdymadlo", - "zelenina", - "zeman", - "zemina", - "zeptat", - "zezadu", - "zezdola", - "zhatit", - "zhltnout", - "zhluboka", - "zhotovit", - "zhruba", - "zima", - "zimnice", - "zjemnit", - "zklamat", - "zkoumat", - "zkratka", - "zkumavka", - "zlato", - "zlehka", - "zloba", - "zlom", - "zlost", - "zlozvyk", - "zmapovat", - "zmar", - "zmatek", - "zmije", - "zmizet", - "zmocnit", - "zmodrat", - "zmrzlina", - "zmutovat", - "znak", - "znalost", - "znamenat", - "znovu", - "zobrazit", - "zotavit", - "zoubek", - "zoufale", - "zplodit", - "zpomalit", - "zprava", - "zprostit", - "zprudka", - "zprvu", - "zrada", - "zranit", - "zrcadlo", - "zrnitost", - "zrno", - "zrovna", - "zrychlit", - "zrzavost", - "zticha", - "ztratit", - "zubovina", - "zubr", - "zvednout", - "zvenku", - "zvesela", - "zvon", - "zvrat", - "zvukovod", - "zvyk" - ]; - - var require$$4 = [ - "abandon", - "ability", - "able", - "about", - "above", - "absent", - "absorb", - "abstract", - "absurd", - "abuse", - "access", - "accident", - "account", - "accuse", - "achieve", - "acid", - "acoustic", - "acquire", - "across", - "act", - "action", - "actor", - "actress", - "actual", - "adapt", - "add", - "addict", - "address", - "adjust", - "admit", - "adult", - "advance", - "advice", - "aerobic", - "affair", - "afford", - "afraid", - "again", - "age", - "agent", - "agree", - "ahead", - "aim", - "air", - "airport", - "aisle", - "alarm", - "album", - "alcohol", - "alert", - "alien", - "all", - "alley", - "allow", - "almost", - "alone", - "alpha", - "already", - "also", - "alter", - "always", - "amateur", - "amazing", - "among", - "amount", - "amused", - "analyst", - "anchor", - "ancient", - "anger", - "angle", - "angry", - "animal", - "ankle", - "announce", - "annual", - "another", - "answer", - "antenna", - "antique", - "anxiety", - "any", - "apart", - "apology", - "appear", - "apple", - "approve", - "april", - "arch", - "arctic", - "area", - "arena", - "argue", - "arm", - "armed", - "armor", - "army", - "around", - "arrange", - "arrest", - "arrive", - "arrow", - "art", - "artefact", - "artist", - "artwork", - "ask", - "aspect", - "assault", - "asset", - "assist", - "assume", - "asthma", - "athlete", - "atom", - "attack", - "attend", - "attitude", - "attract", - "auction", - "audit", - "august", - "aunt", - "author", - "auto", - "autumn", - "average", - "avocado", - "avoid", - "awake", - "aware", - "away", - "awesome", - "awful", - "awkward", - "axis", - "baby", - "bachelor", - "bacon", - "badge", - "bag", - "balance", - "balcony", - "ball", - "bamboo", - "banana", - "banner", - "bar", - "barely", - "bargain", - "barrel", - "base", - "basic", - "basket", - "battle", - "beach", - "bean", - "beauty", - "because", - "become", - "beef", - "before", - "begin", - "behave", - "behind", - "believe", - "below", - "belt", - "bench", - "benefit", - "best", - "betray", - "better", - "between", - "beyond", - "bicycle", - "bid", - "bike", - "bind", - "biology", - "bird", - "birth", - "bitter", - "black", - "blade", - "blame", - "blanket", - "blast", - "bleak", - "bless", - "blind", - "blood", - "blossom", - "blouse", - "blue", - "blur", - "blush", - "board", - "boat", - "body", - "boil", - "bomb", - "bone", - "bonus", - "book", - "boost", - "border", - "boring", - "borrow", - "boss", - "bottom", - "bounce", - "box", - "boy", - "bracket", - "brain", - "brand", - "brass", - "brave", - "bread", - "breeze", - "brick", - "bridge", - "brief", - "bright", - "bring", - "brisk", - "broccoli", - "broken", - "bronze", - "broom", - "brother", - "brown", - "brush", - "bubble", - "buddy", - "budget", - "buffalo", - "build", - "bulb", - "bulk", - "bullet", - "bundle", - "bunker", - "burden", - "burger", - "burst", - "bus", - "business", - "busy", - "butter", - "buyer", - "buzz", - "cabbage", - "cabin", - "cable", - "cactus", - "cage", - "cake", - "call", - "calm", - "camera", - "camp", - "can", - "canal", - "cancel", - "candy", - "cannon", - "canoe", - "canvas", - "canyon", - "capable", - "capital", - "captain", - "car", - "carbon", - "card", - "cargo", - "carpet", - "carry", - "cart", - "case", - "cash", - "casino", - "castle", - "casual", - "cat", - "catalog", - "catch", - "category", - "cattle", - "caught", - "cause", - "caution", - "cave", - "ceiling", - "celery", - "cement", - "census", - "century", - "cereal", - "certain", - "chair", - "chalk", - "champion", - "change", - "chaos", - "chapter", - "charge", - "chase", - "chat", - "cheap", - "check", - "cheese", - "chef", - "cherry", - "chest", - "chicken", - "chief", - "child", - "chimney", - "choice", - "choose", - "chronic", - "chuckle", - "chunk", - "churn", - "cigar", - "cinnamon", - "circle", - "citizen", - "city", - "civil", - "claim", - "clap", - "clarify", - "claw", - "clay", - "clean", - "clerk", - "clever", - "click", - "client", - "cliff", - "climb", - "clinic", - "clip", - "clock", - "clog", - "close", - "cloth", - "cloud", - "clown", - "club", - "clump", - "cluster", - "clutch", - "coach", - "coast", - "coconut", - "code", - "coffee", - "coil", - "coin", - "collect", - "color", - "column", - "combine", - "come", - "comfort", - "comic", - "common", - "company", - "concert", - "conduct", - "confirm", - "congress", - "connect", - "consider", - "control", - "convince", - "cook", - "cool", - "copper", - "copy", - "coral", - "core", - "corn", - "correct", - "cost", - "cotton", - "couch", - "country", - "couple", - "course", - "cousin", - "cover", - "coyote", - "crack", - "cradle", - "craft", - "cram", - "crane", - "crash", - "crater", - "crawl", - "crazy", - "cream", - "credit", - "creek", - "crew", - "cricket", - "crime", - "crisp", - "critic", - "crop", - "cross", - "crouch", - "crowd", - "crucial", - "cruel", - "cruise", - "crumble", - "crunch", - "crush", - "cry", - "crystal", - "cube", - "culture", - "cup", - "cupboard", - "curious", - "current", - "curtain", - "curve", - "cushion", - "custom", - "cute", - "cycle", - "dad", - "damage", - "damp", - "dance", - "danger", - "daring", - "dash", - "daughter", - "dawn", - "day", - "deal", - "debate", - "debris", - "decade", - "december", - "decide", - "decline", - "decorate", - "decrease", - "deer", - "defense", - "define", - "defy", - "degree", - "delay", - "deliver", - "demand", - "demise", - "denial", - "dentist", - "deny", - "depart", - "depend", - "deposit", - "depth", - "deputy", - "derive", - "describe", - "desert", - "design", - "desk", - "despair", - "destroy", - "detail", - "detect", - "develop", - "device", - "devote", - "diagram", - "dial", - "diamond", - "diary", - "dice", - "diesel", - "diet", - "differ", - "digital", - "dignity", - "dilemma", - "dinner", - "dinosaur", - "direct", - "dirt", - "disagree", - "discover", - "disease", - "dish", - "dismiss", - "disorder", - "display", - "distance", - "divert", - "divide", - "divorce", - "dizzy", - "doctor", - "document", - "dog", - "doll", - "dolphin", - "domain", - "donate", - "donkey", - "donor", - "door", - "dose", - "double", - "dove", - "draft", - "dragon", - "drama", - "drastic", - "draw", - "dream", - "dress", - "drift", - "drill", - "drink", - "drip", - "drive", - "drop", - "drum", - "dry", - "duck", - "dumb", - "dune", - "during", - "dust", - "dutch", - "duty", - "dwarf", - "dynamic", - "eager", - "eagle", - "early", - "earn", - "earth", - "easily", - "east", - "easy", - "echo", - "ecology", - "economy", - "edge", - "edit", - "educate", - "effort", - "egg", - "eight", - "either", - "elbow", - "elder", - "electric", - "elegant", - "element", - "elephant", - "elevator", - "elite", - "else", - "embark", - "embody", - "embrace", - "emerge", - "emotion", - "employ", - "empower", - "empty", - "enable", - "enact", - "end", - "endless", - "endorse", - "enemy", - "energy", - "enforce", - "engage", - "engine", - "enhance", - "enjoy", - "enlist", - "enough", - "enrich", - "enroll", - "ensure", - "enter", - "entire", - "entry", - "envelope", - "episode", - "equal", - "equip", - "era", - "erase", - "erode", - "erosion", - "error", - "erupt", - "escape", - "essay", - "essence", - "estate", - "eternal", - "ethics", - "evidence", - "evil", - "evoke", - "evolve", - "exact", - "example", - "excess", - "exchange", - "excite", - "exclude", - "excuse", - "execute", - "exercise", - "exhaust", - "exhibit", - "exile", - "exist", - "exit", - "exotic", - "expand", - "expect", - "expire", - "explain", - "expose", - "express", - "extend", - "extra", - "eye", - "eyebrow", - "fabric", - "face", - "faculty", - "fade", - "faint", - "faith", - "fall", - "false", - "fame", - "family", - "famous", - "fan", - "fancy", - "fantasy", - "farm", - "fashion", - "fat", - "fatal", - "father", - "fatigue", - "fault", - "favorite", - "feature", - "february", - "federal", - "fee", - "feed", - "feel", - "female", - "fence", - "festival", - "fetch", - "fever", - "few", - "fiber", - "fiction", - "field", - "figure", - "file", - "film", - "filter", - "final", - "find", - "fine", - "finger", - "finish", - "fire", - "firm", - "first", - "fiscal", - "fish", - "fit", - "fitness", - "fix", - "flag", - "flame", - "flash", - "flat", - "flavor", - "flee", - "flight", - "flip", - "float", - "flock", - "floor", - "flower", - "fluid", - "flush", - "fly", - "foam", - "focus", - "fog", - "foil", - "fold", - "follow", - "food", - "foot", - "force", - "forest", - "forget", - "fork", - "fortune", - "forum", - "forward", - "fossil", - "foster", - "found", - "fox", - "fragile", - "frame", - "frequent", - "fresh", - "friend", - "fringe", - "frog", - "front", - "frost", - "frown", - "frozen", - "fruit", - "fuel", - "fun", - "funny", - "furnace", - "fury", - "future", - "gadget", - "gain", - "galaxy", - "gallery", - "game", - "gap", - "garage", - "garbage", - "garden", - "garlic", - "garment", - "gas", - "gasp", - "gate", - "gather", - "gauge", - "gaze", - "general", - "genius", - "genre", - "gentle", - "genuine", - "gesture", - "ghost", - "giant", - "gift", - "giggle", - "ginger", - "giraffe", - "girl", - "give", - "glad", - "glance", - "glare", - "glass", - "glide", - "glimpse", - "globe", - "gloom", - "glory", - "glove", - "glow", - "glue", - "goat", - "goddess", - "gold", - "good", - "goose", - "gorilla", - "gospel", - "gossip", - "govern", - "gown", - "grab", - "grace", - "grain", - "grant", - "grape", - "grass", - "gravity", - "great", - "green", - "grid", - "grief", - "grit", - "grocery", - "group", - "grow", - "grunt", - "guard", - "guess", - "guide", - "guilt", - "guitar", - "gun", - "gym", - "habit", - "hair", - "half", - "hammer", - "hamster", - "hand", - "happy", - "harbor", - "hard", - "harsh", - "harvest", - "hat", - "have", - "hawk", - "hazard", - "head", - "health", - "heart", - "heavy", - "hedgehog", - "height", - "hello", - "helmet", - "help", - "hen", - "hero", - "hidden", - "high", - "hill", - "hint", - "hip", - "hire", - "history", - "hobby", - "hockey", - "hold", - "hole", - "holiday", - "hollow", - "home", - "honey", - "hood", - "hope", - "horn", - "horror", - "horse", - "hospital", - "host", - "hotel", - "hour", - "hover", - "hub", - "huge", - "human", - "humble", - "humor", - "hundred", - "hungry", - "hunt", - "hurdle", - "hurry", - "hurt", - "husband", - "hybrid", - "ice", - "icon", - "idea", - "identify", - "idle", - "ignore", - "ill", - "illegal", - "illness", - "image", - "imitate", - "immense", - "immune", - "impact", - "impose", - "improve", - "impulse", - "inch", - "include", - "income", - "increase", - "index", - "indicate", - "indoor", - "industry", - "infant", - "inflict", - "inform", - "inhale", - "inherit", - "initial", - "inject", - "injury", - "inmate", - "inner", - "innocent", - "input", - "inquiry", - "insane", - "insect", - "inside", - "inspire", - "install", - "intact", - "interest", - "into", - "invest", - "invite", - "involve", - "iron", - "island", - "isolate", - "issue", - "item", - "ivory", - "jacket", - "jaguar", - "jar", - "jazz", - "jealous", - "jeans", - "jelly", - "jewel", - "job", - "join", - "joke", - "journey", - "joy", - "judge", - "juice", - "jump", - "jungle", - "junior", - "junk", - "just", - "kangaroo", - "keen", - "keep", - "ketchup", - "key", - "kick", - "kid", - "kidney", - "kind", - "kingdom", - "kiss", - "kit", - "kitchen", - "kite", - "kitten", - "kiwi", - "knee", - "knife", - "knock", - "know", - "lab", - "label", - "labor", - "ladder", - "lady", - "lake", - "lamp", - "language", - "laptop", - "large", - "later", - "latin", - "laugh", - "laundry", - "lava", - "law", - "lawn", - "lawsuit", - "layer", - "lazy", - "leader", - "leaf", - "learn", - "leave", - "lecture", - "left", - "leg", - "legal", - "legend", - "leisure", - "lemon", - "lend", - "length", - "lens", - "leopard", - "lesson", - "letter", - "level", - "liar", - "liberty", - "library", - "license", - "life", - "lift", - "light", - "like", - "limb", - "limit", - "link", - "lion", - "liquid", - "list", - "little", - "live", - "lizard", - "load", - "loan", - "lobster", - "local", - "lock", - "logic", - "lonely", - "long", - "loop", - "lottery", - "loud", - "lounge", - "love", - "loyal", - "lucky", - "luggage", - "lumber", - "lunar", - "lunch", - "luxury", - "lyrics", - "machine", - "mad", - "magic", - "magnet", - "maid", - "mail", - "main", - "major", - "make", - "mammal", - "man", - "manage", - "mandate", - "mango", - "mansion", - "manual", - "maple", - "marble", - "march", - "margin", - "marine", - "market", - "marriage", - "mask", - "mass", - "master", - "match", - "material", - "math", - "matrix", - "matter", - "maximum", - "maze", - "meadow", - "mean", - "measure", - "meat", - "mechanic", - "medal", - "media", - "melody", - "melt", - "member", - "memory", - "mention", - "menu", - "mercy", - "merge", - "merit", - "merry", - "mesh", - "message", - "metal", - "method", - "middle", - "midnight", - "milk", - "million", - "mimic", - "mind", - "minimum", - "minor", - "minute", - "miracle", - "mirror", - "misery", - "miss", - "mistake", - "mix", - "mixed", - "mixture", - "mobile", - "model", - "modify", - "mom", - "moment", - "monitor", - "monkey", - "monster", - "month", - "moon", - "moral", - "more", - "morning", - "mosquito", - "mother", - "motion", - "motor", - "mountain", - "mouse", - "move", - "movie", - "much", - "muffin", - "mule", - "multiply", - "muscle", - "museum", - "mushroom", - "music", - "must", - "mutual", - "myself", - "mystery", - "myth", - "naive", - "name", - "napkin", - "narrow", - "nasty", - "nation", - "nature", - "near", - "neck", - "need", - "negative", - "neglect", - "neither", - "nephew", - "nerve", - "nest", - "net", - "network", - "neutral", - "never", - "news", - "next", - "nice", - "night", - "noble", - "noise", - "nominee", - "noodle", - "normal", - "north", - "nose", - "notable", - "note", - "nothing", - "notice", - "novel", - "now", - "nuclear", - "number", - "nurse", - "nut", - "oak", - "obey", - "object", - "oblige", - "obscure", - "observe", - "obtain", - "obvious", - "occur", - "ocean", - "october", - "odor", - "off", - "offer", - "office", - "often", - "oil", - "okay", - "old", - "olive", - "olympic", - "omit", - "once", - "one", - "onion", - "online", - "only", - "open", - "opera", - "opinion", - "oppose", - "option", - "orange", - "orbit", - "orchard", - "order", - "ordinary", - "organ", - "orient", - "original", - "orphan", - "ostrich", - "other", - "outdoor", - "outer", - "output", - "outside", - "oval", - "oven", - "over", - "own", - "owner", - "oxygen", - "oyster", - "ozone", - "pact", - "paddle", - "page", - "pair", - "palace", - "palm", - "panda", - "panel", - "panic", - "panther", - "paper", - "parade", - "parent", - "park", - "parrot", - "party", - "pass", - "patch", - "path", - "patient", - "patrol", - "pattern", - "pause", - "pave", - "payment", - "peace", - "peanut", - "pear", - "peasant", - "pelican", - "pen", - "penalty", - "pencil", - "people", - "pepper", - "perfect", - "permit", - "person", - "pet", - "phone", - "photo", - "phrase", - "physical", - "piano", - "picnic", - "picture", - "piece", - "pig", - "pigeon", - "pill", - "pilot", - "pink", - "pioneer", - "pipe", - "pistol", - "pitch", - "pizza", - "place", - "planet", - "plastic", - "plate", - "play", - "please", - "pledge", - "pluck", - "plug", - "plunge", - "poem", - "poet", - "point", - "polar", - "pole", - "police", - "pond", - "pony", - "pool", - "popular", - "portion", - "position", - "possible", - "post", - "potato", - "pottery", - "poverty", - "powder", - "power", - "practice", - "praise", - "predict", - "prefer", - "prepare", - "present", - "pretty", - "prevent", - "price", - "pride", - "primary", - "print", - "priority", - "prison", - "private", - "prize", - "problem", - "process", - "produce", - "profit", - "program", - "project", - "promote", - "proof", - "property", - "prosper", - "protect", - "proud", - "provide", - "public", - "pudding", - "pull", - "pulp", - "pulse", - "pumpkin", - "punch", - "pupil", - "puppy", - "purchase", - "purity", - "purpose", - "purse", - "push", - "put", - "puzzle", - "pyramid", - "quality", - "quantum", - "quarter", - "question", - "quick", - "quit", - "quiz", - "quote", - "rabbit", - "raccoon", - "race", - "rack", - "radar", - "radio", - "rail", - "rain", - "raise", - "rally", - "ramp", - "ranch", - "random", - "range", - "rapid", - "rare", - "rate", - "rather", - "raven", - "raw", - "razor", - "ready", - "real", - "reason", - "rebel", - "rebuild", - "recall", - "receive", - "recipe", - "record", - "recycle", - "reduce", - "reflect", - "reform", - "refuse", - "region", - "regret", - "regular", - "reject", - "relax", - "release", - "relief", - "rely", - "remain", - "remember", - "remind", - "remove", - "render", - "renew", - "rent", - "reopen", - "repair", - "repeat", - "replace", - "report", - "require", - "rescue", - "resemble", - "resist", - "resource", - "response", - "result", - "retire", - "retreat", - "return", - "reunion", - "reveal", - "review", - "reward", - "rhythm", - "rib", - "ribbon", - "rice", - "rich", - "ride", - "ridge", - "rifle", - "right", - "rigid", - "ring", - "riot", - "ripple", - "risk", - "ritual", - "rival", - "river", - "road", - "roast", - "robot", - "robust", - "rocket", - "romance", - "roof", - "rookie", - "room", - "rose", - "rotate", - "rough", - "round", - "route", - "royal", - "rubber", - "rude", - "rug", - "rule", - "run", - "runway", - "rural", - "sad", - "saddle", - "sadness", - "safe", - "sail", - "salad", - "salmon", - "salon", - "salt", - "salute", - "same", - "sample", - "sand", - "satisfy", - "satoshi", - "sauce", - "sausage", - "save", - "say", - "scale", - "scan", - "scare", - "scatter", - "scene", - "scheme", - "school", - "science", - "scissors", - "scorpion", - "scout", - "scrap", - "screen", - "script", - "scrub", - "sea", - "search", - "season", - "seat", - "second", - "secret", - "section", - "security", - "seed", - "seek", - "segment", - "select", - "sell", - "seminar", - "senior", - "sense", - "sentence", - "series", - "service", - "session", - "settle", - "setup", - "seven", - "shadow", - "shaft", - "shallow", - "share", - "shed", - "shell", - "sheriff", - "shield", - "shift", - "shine", - "ship", - "shiver", - "shock", - "shoe", - "shoot", - "shop", - "short", - "shoulder", - "shove", - "shrimp", - "shrug", - "shuffle", - "shy", - "sibling", - "sick", - "side", - "siege", - "sight", - "sign", - "silent", - "silk", - "silly", - "silver", - "similar", - "simple", - "since", - "sing", - "siren", - "sister", - "situate", - "six", - "size", - "skate", - "sketch", - "ski", - "skill", - "skin", - "skirt", - "skull", - "slab", - "slam", - "sleep", - "slender", - "slice", - "slide", - "slight", - "slim", - "slogan", - "slot", - "slow", - "slush", - "small", - "smart", - "smile", - "smoke", - "smooth", - "snack", - "snake", - "snap", - "sniff", - "snow", - "soap", - "soccer", - "social", - "sock", - "soda", - "soft", - "solar", - "soldier", - "solid", - "solution", - "solve", - "someone", - "song", - "soon", - "sorry", - "sort", - "soul", - "sound", - "soup", - "source", - "south", - "space", - "spare", - "spatial", - "spawn", - "speak", - "special", - "speed", - "spell", - "spend", - "sphere", - "spice", - "spider", - "spike", - "spin", - "spirit", - "split", - "spoil", - "sponsor", - "spoon", - "sport", - "spot", - "spray", - "spread", - "spring", - "spy", - "square", - "squeeze", - "squirrel", - "stable", - "stadium", - "staff", - "stage", - "stairs", - "stamp", - "stand", - "start", - "state", - "stay", - "steak", - "steel", - "stem", - "step", - "stereo", - "stick", - "still", - "sting", - "stock", - "stomach", - "stone", - "stool", - "story", - "stove", - "strategy", - "street", - "strike", - "strong", - "struggle", - "student", - "stuff", - "stumble", - "style", - "subject", - "submit", - "subway", - "success", - "such", - "sudden", - "suffer", - "sugar", - "suggest", - "suit", - "summer", - "sun", - "sunny", - "sunset", - "super", - "supply", - "supreme", - "sure", - "surface", - "surge", - "surprise", - "surround", - "survey", - "suspect", - "sustain", - "swallow", - "swamp", - "swap", - "swarm", - "swear", - "sweet", - "swift", - "swim", - "swing", - "switch", - "sword", - "symbol", - "symptom", - "syrup", - "system", - "table", - "tackle", - "tag", - "tail", - "talent", - "talk", - "tank", - "tape", - "target", - "task", - "taste", - "tattoo", - "taxi", - "teach", - "team", - "tell", - "ten", - "tenant", - "tennis", - "tent", - "term", - "test", - "text", - "thank", - "that", - "theme", - "then", - "theory", - "there", - "they", - "thing", - "this", - "thought", - "three", - "thrive", - "throw", - "thumb", - "thunder", - "ticket", - "tide", - "tiger", - "tilt", - "timber", - "time", - "tiny", - "tip", - "tired", - "tissue", - "title", - "toast", - "tobacco", - "today", - "toddler", - "toe", - "together", - "toilet", - "token", - "tomato", - "tomorrow", - "tone", - "tongue", - "tonight", - "tool", - "tooth", - "top", - "topic", - "topple", - "torch", - "tornado", - "tortoise", - "toss", - "total", - "tourist", - "toward", - "tower", - "town", - "toy", - "track", - "trade", - "traffic", - "tragic", - "train", - "transfer", - "trap", - "trash", - "travel", - "tray", - "treat", - "tree", - "trend", - "trial", - "tribe", - "trick", - "trigger", - "trim", - "trip", - "trophy", - "trouble", - "truck", - "true", - "truly", - "trumpet", - "trust", - "truth", - "try", - "tube", - "tuition", - "tumble", - "tuna", - "tunnel", - "turkey", - "turn", - "turtle", - "twelve", - "twenty", - "twice", - "twin", - "twist", - "two", - "type", - "typical", - "ugly", - "umbrella", - "unable", - "unaware", - "uncle", - "uncover", - "under", - "undo", - "unfair", - "unfold", - "unhappy", - "uniform", - "unique", - "unit", - "universe", - "unknown", - "unlock", - "until", - "unusual", - "unveil", - "update", - "upgrade", - "uphold", - "upon", - "upper", - "upset", - "urban", - "urge", - "usage", - "use", - "used", - "useful", - "useless", - "usual", - "utility", - "vacant", - "vacuum", - "vague", - "valid", - "valley", - "valve", - "van", - "vanish", - "vapor", - "various", - "vast", - "vault", - "vehicle", - "velvet", - "vendor", - "venture", - "venue", - "verb", - "verify", - "version", - "very", - "vessel", - "veteran", - "viable", - "vibrant", - "vicious", - "victory", - "video", - "view", - "village", - "vintage", - "violin", - "virtual", - "virus", - "visa", - "visit", - "visual", - "vital", - "vivid", - "vocal", - "voice", - "void", - "volcano", - "volume", - "vote", - "voyage", - "wage", - "wagon", - "wait", - "walk", - "wall", - "walnut", - "want", - "warfare", - "warm", - "warrior", - "wash", - "wasp", - "waste", - "water", - "wave", - "way", - "wealth", - "weapon", - "wear", - "weasel", - "weather", - "web", - "wedding", - "weekend", - "weird", - "welcome", - "west", - "wet", - "whale", - "what", - "wheat", - "wheel", - "when", - "where", - "whip", - "whisper", - "wide", - "width", - "wife", - "wild", - "will", - "win", - "window", - "wine", - "wing", - "wink", - "winner", - "winter", - "wire", - "wisdom", - "wise", - "wish", - "witness", - "wolf", - "woman", - "wonder", - "wood", - "wool", - "word", - "work", - "world", - "worry", - "worth", - "wrap", - "wreck", - "wrestle", - "wrist", - "write", - "wrong", - "yard", - "year", - "yellow", - "you", - "young", - "youth", - "zebra", - "zero", - "zone", - "zoo" - ]; - - var require$$5 = [ - "abaisser", - "abandon", - "abdiquer", - "abeille", - "abolir", - "aborder", - "aboutir", - "aboyer", - "abrasif", - "abreuver", - "abriter", - "abroger", - "abrupt", - "absence", - "absolu", - "absurde", - "abusif", - "abyssal", - "académie", - "acajou", - "acarien", - "accabler", - "accepter", - "acclamer", - "accolade", - "accroche", - "accuser", - "acerbe", - "achat", - "acheter", - "aciduler", - "acier", - "acompte", - "acquérir", - "acronyme", - "acteur", - "actif", - "actuel", - "adepte", - "adéquat", - "adhésif", - "adjectif", - "adjuger", - "admettre", - "admirer", - "adopter", - "adorer", - "adoucir", - "adresse", - "adroit", - "adulte", - "adverbe", - "aérer", - "aéronef", - "affaire", - "affecter", - "affiche", - "affreux", - "affubler", - "agacer", - "agencer", - "agile", - "agiter", - "agrafer", - "agréable", - "agrume", - "aider", - "aiguille", - "ailier", - "aimable", - "aisance", - "ajouter", - "ajuster", - "alarmer", - "alchimie", - "alerte", - "algèbre", - "algue", - "aliéner", - "aliment", - "alléger", - "alliage", - "allouer", - "allumer", - "alourdir", - "alpaga", - "altesse", - "alvéole", - "amateur", - "ambigu", - "ambre", - "aménager", - "amertume", - "amidon", - "amiral", - "amorcer", - "amour", - "amovible", - "amphibie", - "ampleur", - "amusant", - "analyse", - "anaphore", - "anarchie", - "anatomie", - "ancien", - "anéantir", - "angle", - "angoisse", - "anguleux", - "animal", - "annexer", - "annonce", - "annuel", - "anodin", - "anomalie", - "anonyme", - "anormal", - "antenne", - "antidote", - "anxieux", - "apaiser", - "apéritif", - "aplanir", - "apologie", - "appareil", - "appeler", - "apporter", - "appuyer", - "aquarium", - "aqueduc", - "arbitre", - "arbuste", - "ardeur", - "ardoise", - "argent", - "arlequin", - "armature", - "armement", - "armoire", - "armure", - "arpenter", - "arracher", - "arriver", - "arroser", - "arsenic", - "artériel", - "article", - "aspect", - "asphalte", - "aspirer", - "assaut", - "asservir", - "assiette", - "associer", - "assurer", - "asticot", - "astre", - "astuce", - "atelier", - "atome", - "atrium", - "atroce", - "attaque", - "attentif", - "attirer", - "attraper", - "aubaine", - "auberge", - "audace", - "audible", - "augurer", - "aurore", - "automne", - "autruche", - "avaler", - "avancer", - "avarice", - "avenir", - "averse", - "aveugle", - "aviateur", - "avide", - "avion", - "aviser", - "avoine", - "avouer", - "avril", - "axial", - "axiome", - "badge", - "bafouer", - "bagage", - "baguette", - "baignade", - "balancer", - "balcon", - "baleine", - "balisage", - "bambin", - "bancaire", - "bandage", - "banlieue", - "bannière", - "banquier", - "barbier", - "baril", - "baron", - "barque", - "barrage", - "bassin", - "bastion", - "bataille", - "bateau", - "batterie", - "baudrier", - "bavarder", - "belette", - "bélier", - "belote", - "bénéfice", - "berceau", - "berger", - "berline", - "bermuda", - "besace", - "besogne", - "bétail", - "beurre", - "biberon", - "bicycle", - "bidule", - "bijou", - "bilan", - "bilingue", - "billard", - "binaire", - "biologie", - "biopsie", - "biotype", - "biscuit", - "bison", - "bistouri", - "bitume", - "bizarre", - "blafard", - "blague", - "blanchir", - "blessant", - "blinder", - "blond", - "bloquer", - "blouson", - "bobard", - "bobine", - "boire", - "boiser", - "bolide", - "bonbon", - "bondir", - "bonheur", - "bonifier", - "bonus", - "bordure", - "borne", - "botte", - "boucle", - "boueux", - "bougie", - "boulon", - "bouquin", - "bourse", - "boussole", - "boutique", - "boxeur", - "branche", - "brasier", - "brave", - "brebis", - "brèche", - "breuvage", - "bricoler", - "brigade", - "brillant", - "brioche", - "brique", - "brochure", - "broder", - "bronzer", - "brousse", - "broyeur", - "brume", - "brusque", - "brutal", - "bruyant", - "buffle", - "buisson", - "bulletin", - "bureau", - "burin", - "bustier", - "butiner", - "butoir", - "buvable", - "buvette", - "cabanon", - "cabine", - "cachette", - "cadeau", - "cadre", - "caféine", - "caillou", - "caisson", - "calculer", - "calepin", - "calibre", - "calmer", - "calomnie", - "calvaire", - "camarade", - "caméra", - "camion", - "campagne", - "canal", - "caneton", - "canon", - "cantine", - "canular", - "capable", - "caporal", - "caprice", - "capsule", - "capter", - "capuche", - "carabine", - "carbone", - "caresser", - "caribou", - "carnage", - "carotte", - "carreau", - "carton", - "cascade", - "casier", - "casque", - "cassure", - "causer", - "caution", - "cavalier", - "caverne", - "caviar", - "cédille", - "ceinture", - "céleste", - "cellule", - "cendrier", - "censurer", - "central", - "cercle", - "cérébral", - "cerise", - "cerner", - "cerveau", - "cesser", - "chagrin", - "chaise", - "chaleur", - "chambre", - "chance", - "chapitre", - "charbon", - "chasseur", - "chaton", - "chausson", - "chavirer", - "chemise", - "chenille", - "chéquier", - "chercher", - "cheval", - "chien", - "chiffre", - "chignon", - "chimère", - "chiot", - "chlorure", - "chocolat", - "choisir", - "chose", - "chouette", - "chrome", - "chute", - "cigare", - "cigogne", - "cimenter", - "cinéma", - "cintrer", - "circuler", - "cirer", - "cirque", - "citerne", - "citoyen", - "citron", - "civil", - "clairon", - "clameur", - "claquer", - "classe", - "clavier", - "client", - "cligner", - "climat", - "clivage", - "cloche", - "clonage", - "cloporte", - "cobalt", - "cobra", - "cocasse", - "cocotier", - "coder", - "codifier", - "coffre", - "cogner", - "cohésion", - "coiffer", - "coincer", - "colère", - "colibri", - "colline", - "colmater", - "colonel", - "combat", - "comédie", - "commande", - "compact", - "concert", - "conduire", - "confier", - "congeler", - "connoter", - "consonne", - "contact", - "convexe", - "copain", - "copie", - "corail", - "corbeau", - "cordage", - "corniche", - "corpus", - "correct", - "cortège", - "cosmique", - "costume", - "coton", - "coude", - "coupure", - "courage", - "couteau", - "couvrir", - "coyote", - "crabe", - "crainte", - "cravate", - "crayon", - "créature", - "créditer", - "crémeux", - "creuser", - "crevette", - "cribler", - "crier", - "cristal", - "critère", - "croire", - "croquer", - "crotale", - "crucial", - "cruel", - "crypter", - "cubique", - "cueillir", - "cuillère", - "cuisine", - "cuivre", - "culminer", - "cultiver", - "cumuler", - "cupide", - "curatif", - "curseur", - "cyanure", - "cycle", - "cylindre", - "cynique", - "daigner", - "damier", - "danger", - "danseur", - "dauphin", - "débattre", - "débiter", - "déborder", - "débrider", - "débutant", - "décaler", - "décembre", - "déchirer", - "décider", - "déclarer", - "décorer", - "décrire", - "décupler", - "dédale", - "déductif", - "déesse", - "défensif", - "défiler", - "défrayer", - "dégager", - "dégivrer", - "déglutir", - "dégrafer", - "déjeuner", - "délice", - "déloger", - "demander", - "demeurer", - "démolir", - "dénicher", - "dénouer", - "dentelle", - "dénuder", - "départ", - "dépenser", - "déphaser", - "déplacer", - "déposer", - "déranger", - "dérober", - "désastre", - "descente", - "désert", - "désigner", - "désobéir", - "dessiner", - "destrier", - "détacher", - "détester", - "détourer", - "détresse", - "devancer", - "devenir", - "deviner", - "devoir", - "diable", - "dialogue", - "diamant", - "dicter", - "différer", - "digérer", - "digital", - "digne", - "diluer", - "dimanche", - "diminuer", - "dioxyde", - "directif", - "diriger", - "discuter", - "disposer", - "dissiper", - "distance", - "divertir", - "diviser", - "docile", - "docteur", - "dogme", - "doigt", - "domaine", - "domicile", - "dompter", - "donateur", - "donjon", - "donner", - "dopamine", - "dortoir", - "dorure", - "dosage", - "doseur", - "dossier", - "dotation", - "douanier", - "double", - "douceur", - "douter", - "doyen", - "dragon", - "draper", - "dresser", - "dribbler", - "droiture", - "duperie", - "duplexe", - "durable", - "durcir", - "dynastie", - "éblouir", - "écarter", - "écharpe", - "échelle", - "éclairer", - "éclipse", - "éclore", - "écluse", - "école", - "économie", - "écorce", - "écouter", - "écraser", - "écrémer", - "écrivain", - "écrou", - "écume", - "écureuil", - "édifier", - "éduquer", - "effacer", - "effectif", - "effigie", - "effort", - "effrayer", - "effusion", - "égaliser", - "égarer", - "éjecter", - "élaborer", - "élargir", - "électron", - "élégant", - "éléphant", - "élève", - "éligible", - "élitisme", - "éloge", - "élucider", - "éluder", - "emballer", - "embellir", - "embryon", - "émeraude", - "émission", - "emmener", - "émotion", - "émouvoir", - "empereur", - "employer", - "emporter", - "emprise", - "émulsion", - "encadrer", - "enchère", - "enclave", - "encoche", - "endiguer", - "endosser", - "endroit", - "enduire", - "énergie", - "enfance", - "enfermer", - "enfouir", - "engager", - "engin", - "englober", - "énigme", - "enjamber", - "enjeu", - "enlever", - "ennemi", - "ennuyeux", - "enrichir", - "enrobage", - "enseigne", - "entasser", - "entendre", - "entier", - "entourer", - "entraver", - "énumérer", - "envahir", - "enviable", - "envoyer", - "enzyme", - "éolien", - "épaissir", - "épargne", - "épatant", - "épaule", - "épicerie", - "épidémie", - "épier", - "épilogue", - "épine", - "épisode", - "épitaphe", - "époque", - "épreuve", - "éprouver", - "épuisant", - "équerre", - "équipe", - "ériger", - "érosion", - "erreur", - "éruption", - "escalier", - "espadon", - "espèce", - "espiègle", - "espoir", - "esprit", - "esquiver", - "essayer", - "essence", - "essieu", - "essorer", - "estime", - "estomac", - "estrade", - "étagère", - "étaler", - "étanche", - "étatique", - "éteindre", - "étendoir", - "éternel", - "éthanol", - "éthique", - "ethnie", - "étirer", - "étoffer", - "étoile", - "étonnant", - "étourdir", - "étrange", - "étroit", - "étude", - "euphorie", - "évaluer", - "évasion", - "éventail", - "évidence", - "éviter", - "évolutif", - "évoquer", - "exact", - "exagérer", - "exaucer", - "exceller", - "excitant", - "exclusif", - "excuse", - "exécuter", - "exemple", - "exercer", - "exhaler", - "exhorter", - "exigence", - "exiler", - "exister", - "exotique", - "expédier", - "explorer", - "exposer", - "exprimer", - "exquis", - "extensif", - "extraire", - "exulter", - "fable", - "fabuleux", - "facette", - "facile", - "facture", - "faiblir", - "falaise", - "fameux", - "famille", - "farceur", - "farfelu", - "farine", - "farouche", - "fasciner", - "fatal", - "fatigue", - "faucon", - "fautif", - "faveur", - "favori", - "fébrile", - "féconder", - "fédérer", - "félin", - "femme", - "fémur", - "fendoir", - "féodal", - "fermer", - "féroce", - "ferveur", - "festival", - "feuille", - "feutre", - "février", - "fiasco", - "ficeler", - "fictif", - "fidèle", - "figure", - "filature", - "filetage", - "filière", - "filleul", - "filmer", - "filou", - "filtrer", - "financer", - "finir", - "fiole", - "firme", - "fissure", - "fixer", - "flairer", - "flamme", - "flasque", - "flatteur", - "fléau", - "flèche", - "fleur", - "flexion", - "flocon", - "flore", - "fluctuer", - "fluide", - "fluvial", - "folie", - "fonderie", - "fongible", - "fontaine", - "forcer", - "forgeron", - "formuler", - "fortune", - "fossile", - "foudre", - "fougère", - "fouiller", - "foulure", - "fourmi", - "fragile", - "fraise", - "franchir", - "frapper", - "frayeur", - "frégate", - "freiner", - "frelon", - "frémir", - "frénésie", - "frère", - "friable", - "friction", - "frisson", - "frivole", - "froid", - "fromage", - "frontal", - "frotter", - "fruit", - "fugitif", - "fuite", - "fureur", - "furieux", - "furtif", - "fusion", - "futur", - "gagner", - "galaxie", - "galerie", - "gambader", - "garantir", - "gardien", - "garnir", - "garrigue", - "gazelle", - "gazon", - "géant", - "gélatine", - "gélule", - "gendarme", - "général", - "génie", - "genou", - "gentil", - "géologie", - "géomètre", - "géranium", - "germe", - "gestuel", - "geyser", - "gibier", - "gicler", - "girafe", - "givre", - "glace", - "glaive", - "glisser", - "globe", - "gloire", - "glorieux", - "golfeur", - "gomme", - "gonfler", - "gorge", - "gorille", - "goudron", - "gouffre", - "goulot", - "goupille", - "gourmand", - "goutte", - "graduel", - "graffiti", - "graine", - "grand", - "grappin", - "gratuit", - "gravir", - "grenat", - "griffure", - "griller", - "grimper", - "grogner", - "gronder", - "grotte", - "groupe", - "gruger", - "grutier", - "gruyère", - "guépard", - "guerrier", - "guide", - "guimauve", - "guitare", - "gustatif", - "gymnaste", - "gyrostat", - "habitude", - "hachoir", - "halte", - "hameau", - "hangar", - "hanneton", - "haricot", - "harmonie", - "harpon", - "hasard", - "hélium", - "hématome", - "herbe", - "hérisson", - "hermine", - "héron", - "hésiter", - "heureux", - "hiberner", - "hibou", - "hilarant", - "histoire", - "hiver", - "homard", - "hommage", - "homogène", - "honneur", - "honorer", - "honteux", - "horde", - "horizon", - "horloge", - "hormone", - "horrible", - "houleux", - "housse", - "hublot", - "huileux", - "humain", - "humble", - "humide", - "humour", - "hurler", - "hydromel", - "hygiène", - "hymne", - "hypnose", - "idylle", - "ignorer", - "iguane", - "illicite", - "illusion", - "image", - "imbiber", - "imiter", - "immense", - "immobile", - "immuable", - "impact", - "impérial", - "implorer", - "imposer", - "imprimer", - "imputer", - "incarner", - "incendie", - "incident", - "incliner", - "incolore", - "indexer", - "indice", - "inductif", - "inédit", - "ineptie", - "inexact", - "infini", - "infliger", - "informer", - "infusion", - "ingérer", - "inhaler", - "inhiber", - "injecter", - "injure", - "innocent", - "inoculer", - "inonder", - "inscrire", - "insecte", - "insigne", - "insolite", - "inspirer", - "instinct", - "insulter", - "intact", - "intense", - "intime", - "intrigue", - "intuitif", - "inutile", - "invasion", - "inventer", - "inviter", - "invoquer", - "ironique", - "irradier", - "irréel", - "irriter", - "isoler", - "ivoire", - "ivresse", - "jaguar", - "jaillir", - "jambe", - "janvier", - "jardin", - "jauger", - "jaune", - "javelot", - "jetable", - "jeton", - "jeudi", - "jeunesse", - "joindre", - "joncher", - "jongler", - "joueur", - "jouissif", - "journal", - "jovial", - "joyau", - "joyeux", - "jubiler", - "jugement", - "junior", - "jupon", - "juriste", - "justice", - "juteux", - "juvénile", - "kayak", - "kimono", - "kiosque", - "label", - "labial", - "labourer", - "lacérer", - "lactose", - "lagune", - "laine", - "laisser", - "laitier", - "lambeau", - "lamelle", - "lampe", - "lanceur", - "langage", - "lanterne", - "lapin", - "largeur", - "larme", - "laurier", - "lavabo", - "lavoir", - "lecture", - "légal", - "léger", - "légume", - "lessive", - "lettre", - "levier", - "lexique", - "lézard", - "liasse", - "libérer", - "libre", - "licence", - "licorne", - "liège", - "lièvre", - "ligature", - "ligoter", - "ligue", - "limer", - "limite", - "limonade", - "limpide", - "linéaire", - "lingot", - "lionceau", - "liquide", - "lisière", - "lister", - "lithium", - "litige", - "littoral", - "livreur", - "logique", - "lointain", - "loisir", - "lombric", - "loterie", - "louer", - "lourd", - "loutre", - "louve", - "loyal", - "lubie", - "lucide", - "lucratif", - "lueur", - "lugubre", - "luisant", - "lumière", - "lunaire", - "lundi", - "luron", - "lutter", - "luxueux", - "machine", - "magasin", - "magenta", - "magique", - "maigre", - "maillon", - "maintien", - "mairie", - "maison", - "majorer", - "malaxer", - "maléfice", - "malheur", - "malice", - "mallette", - "mammouth", - "mandater", - "maniable", - "manquant", - "manteau", - "manuel", - "marathon", - "marbre", - "marchand", - "mardi", - "maritime", - "marqueur", - "marron", - "marteler", - "mascotte", - "massif", - "matériel", - "matière", - "matraque", - "maudire", - "maussade", - "mauve", - "maximal", - "méchant", - "méconnu", - "médaille", - "médecin", - "méditer", - "méduse", - "meilleur", - "mélange", - "mélodie", - "membre", - "mémoire", - "menacer", - "mener", - "menhir", - "mensonge", - "mentor", - "mercredi", - "mérite", - "merle", - "messager", - "mesure", - "métal", - "météore", - "méthode", - "métier", - "meuble", - "miauler", - "microbe", - "miette", - "mignon", - "migrer", - "milieu", - "million", - "mimique", - "mince", - "minéral", - "minimal", - "minorer", - "minute", - "miracle", - "miroiter", - "missile", - "mixte", - "mobile", - "moderne", - "moelleux", - "mondial", - "moniteur", - "monnaie", - "monotone", - "monstre", - "montagne", - "monument", - "moqueur", - "morceau", - "morsure", - "mortier", - "moteur", - "motif", - "mouche", - "moufle", - "moulin", - "mousson", - "mouton", - "mouvant", - "multiple", - "munition", - "muraille", - "murène", - "murmure", - "muscle", - "muséum", - "musicien", - "mutation", - "muter", - "mutuel", - "myriade", - "myrtille", - "mystère", - "mythique", - "nageur", - "nappe", - "narquois", - "narrer", - "natation", - "nation", - "nature", - "naufrage", - "nautique", - "navire", - "nébuleux", - "nectar", - "néfaste", - "négation", - "négliger", - "négocier", - "neige", - "nerveux", - "nettoyer", - "neurone", - "neutron", - "neveu", - "niche", - "nickel", - "nitrate", - "niveau", - "noble", - "nocif", - "nocturne", - "noirceur", - "noisette", - "nomade", - "nombreux", - "nommer", - "normatif", - "notable", - "notifier", - "notoire", - "nourrir", - "nouveau", - "novateur", - "novembre", - "novice", - "nuage", - "nuancer", - "nuire", - "nuisible", - "numéro", - "nuptial", - "nuque", - "nutritif", - "obéir", - "objectif", - "obliger", - "obscur", - "observer", - "obstacle", - "obtenir", - "obturer", - "occasion", - "occuper", - "océan", - "octobre", - "octroyer", - "octupler", - "oculaire", - "odeur", - "odorant", - "offenser", - "officier", - "offrir", - "ogive", - "oiseau", - "oisillon", - "olfactif", - "olivier", - "ombrage", - "omettre", - "onctueux", - "onduler", - "onéreux", - "onirique", - "opale", - "opaque", - "opérer", - "opinion", - "opportun", - "opprimer", - "opter", - "optique", - "orageux", - "orange", - "orbite", - "ordonner", - "oreille", - "organe", - "orgueil", - "orifice", - "ornement", - "orque", - "ortie", - "osciller", - "osmose", - "ossature", - "otarie", - "ouragan", - "ourson", - "outil", - "outrager", - "ouvrage", - "ovation", - "oxyde", - "oxygène", - "ozone", - "paisible", - "palace", - "palmarès", - "palourde", - "palper", - "panache", - "panda", - "pangolin", - "paniquer", - "panneau", - "panorama", - "pantalon", - "papaye", - "papier", - "papoter", - "papyrus", - "paradoxe", - "parcelle", - "paresse", - "parfumer", - "parler", - "parole", - "parrain", - "parsemer", - "partager", - "parure", - "parvenir", - "passion", - "pastèque", - "paternel", - "patience", - "patron", - "pavillon", - "pavoiser", - "payer", - "paysage", - "peigne", - "peintre", - "pelage", - "pélican", - "pelle", - "pelouse", - "peluche", - "pendule", - "pénétrer", - "pénible", - "pensif", - "pénurie", - "pépite", - "péplum", - "perdrix", - "perforer", - "période", - "permuter", - "perplexe", - "persil", - "perte", - "peser", - "pétale", - "petit", - "pétrir", - "peuple", - "pharaon", - "phobie", - "phoque", - "photon", - "phrase", - "physique", - "piano", - "pictural", - "pièce", - "pierre", - "pieuvre", - "pilote", - "pinceau", - "pipette", - "piquer", - "pirogue", - "piscine", - "piston", - "pivoter", - "pixel", - "pizza", - "placard", - "plafond", - "plaisir", - "planer", - "plaque", - "plastron", - "plateau", - "pleurer", - "plexus", - "pliage", - "plomb", - "plonger", - "pluie", - "plumage", - "pochette", - "poésie", - "poète", - "pointe", - "poirier", - "poisson", - "poivre", - "polaire", - "policier", - "pollen", - "polygone", - "pommade", - "pompier", - "ponctuel", - "pondérer", - "poney", - "portique", - "position", - "posséder", - "posture", - "potager", - "poteau", - "potion", - "pouce", - "poulain", - "poumon", - "pourpre", - "poussin", - "pouvoir", - "prairie", - "pratique", - "précieux", - "prédire", - "préfixe", - "prélude", - "prénom", - "présence", - "prétexte", - "prévoir", - "primitif", - "prince", - "prison", - "priver", - "problème", - "procéder", - "prodige", - "profond", - "progrès", - "proie", - "projeter", - "prologue", - "promener", - "propre", - "prospère", - "protéger", - "prouesse", - "proverbe", - "prudence", - "pruneau", - "psychose", - "public", - "puceron", - "puiser", - "pulpe", - "pulsar", - "punaise", - "punitif", - "pupitre", - "purifier", - "puzzle", - "pyramide", - "quasar", - "querelle", - "question", - "quiétude", - "quitter", - "quotient", - "racine", - "raconter", - "radieux", - "ragondin", - "raideur", - "raisin", - "ralentir", - "rallonge", - "ramasser", - "rapide", - "rasage", - "ratisser", - "ravager", - "ravin", - "rayonner", - "réactif", - "réagir", - "réaliser", - "réanimer", - "recevoir", - "réciter", - "réclamer", - "récolter", - "recruter", - "reculer", - "recycler", - "rédiger", - "redouter", - "refaire", - "réflexe", - "réformer", - "refrain", - "refuge", - "régalien", - "région", - "réglage", - "régulier", - "réitérer", - "rejeter", - "rejouer", - "relatif", - "relever", - "relief", - "remarque", - "remède", - "remise", - "remonter", - "remplir", - "remuer", - "renard", - "renfort", - "renifler", - "renoncer", - "rentrer", - "renvoi", - "replier", - "reporter", - "reprise", - "reptile", - "requin", - "réserve", - "résineux", - "résoudre", - "respect", - "rester", - "résultat", - "rétablir", - "retenir", - "réticule", - "retomber", - "retracer", - "réunion", - "réussir", - "revanche", - "revivre", - "révolte", - "révulsif", - "richesse", - "rideau", - "rieur", - "rigide", - "rigoler", - "rincer", - "riposter", - "risible", - "risque", - "rituel", - "rival", - "rivière", - "rocheux", - "romance", - "rompre", - "ronce", - "rondin", - "roseau", - "rosier", - "rotatif", - "rotor", - "rotule", - "rouge", - "rouille", - "rouleau", - "routine", - "royaume", - "ruban", - "rubis", - "ruche", - "ruelle", - "rugueux", - "ruiner", - "ruisseau", - "ruser", - "rustique", - "rythme", - "sabler", - "saboter", - "sabre", - "sacoche", - "safari", - "sagesse", - "saisir", - "salade", - "salive", - "salon", - "saluer", - "samedi", - "sanction", - "sanglier", - "sarcasme", - "sardine", - "saturer", - "saugrenu", - "saumon", - "sauter", - "sauvage", - "savant", - "savonner", - "scalpel", - "scandale", - "scélérat", - "scénario", - "sceptre", - "schéma", - "science", - "scinder", - "score", - "scrutin", - "sculpter", - "séance", - "sécable", - "sécher", - "secouer", - "sécréter", - "sédatif", - "séduire", - "seigneur", - "séjour", - "sélectif", - "semaine", - "sembler", - "semence", - "séminal", - "sénateur", - "sensible", - "sentence", - "séparer", - "séquence", - "serein", - "sergent", - "sérieux", - "serrure", - "sérum", - "service", - "sésame", - "sévir", - "sevrage", - "sextuple", - "sidéral", - "siècle", - "siéger", - "siffler", - "sigle", - "signal", - "silence", - "silicium", - "simple", - "sincère", - "sinistre", - "siphon", - "sirop", - "sismique", - "situer", - "skier", - "social", - "socle", - "sodium", - "soigneux", - "soldat", - "soleil", - "solitude", - "soluble", - "sombre", - "sommeil", - "somnoler", - "sonde", - "songeur", - "sonnette", - "sonore", - "sorcier", - "sortir", - "sosie", - "sottise", - "soucieux", - "soudure", - "souffle", - "soulever", - "soupape", - "source", - "soutirer", - "souvenir", - "spacieux", - "spatial", - "spécial", - "sphère", - "spiral", - "stable", - "station", - "sternum", - "stimulus", - "stipuler", - "strict", - "studieux", - "stupeur", - "styliste", - "sublime", - "substrat", - "subtil", - "subvenir", - "succès", - "sucre", - "suffixe", - "suggérer", - "suiveur", - "sulfate", - "superbe", - "supplier", - "surface", - "suricate", - "surmener", - "surprise", - "sursaut", - "survie", - "suspect", - "syllabe", - "symbole", - "symétrie", - "synapse", - "syntaxe", - "système", - "tabac", - "tablier", - "tactile", - "tailler", - "talent", - "talisman", - "talonner", - "tambour", - "tamiser", - "tangible", - "tapis", - "taquiner", - "tarder", - "tarif", - "tartine", - "tasse", - "tatami", - "tatouage", - "taupe", - "taureau", - "taxer", - "témoin", - "temporel", - "tenaille", - "tendre", - "teneur", - "tenir", - "tension", - "terminer", - "terne", - "terrible", - "tétine", - "texte", - "thème", - "théorie", - "thérapie", - "thorax", - "tibia", - "tiède", - "timide", - "tirelire", - "tiroir", - "tissu", - "titane", - "titre", - "tituber", - "toboggan", - "tolérant", - "tomate", - "tonique", - "tonneau", - "toponyme", - "torche", - "tordre", - "tornade", - "torpille", - "torrent", - "torse", - "tortue", - "totem", - "toucher", - "tournage", - "tousser", - "toxine", - "traction", - "trafic", - "tragique", - "trahir", - "train", - "trancher", - "travail", - "trèfle", - "tremper", - "trésor", - "treuil", - "triage", - "tribunal", - "tricoter", - "trilogie", - "triomphe", - "tripler", - "triturer", - "trivial", - "trombone", - "tronc", - "tropical", - "troupeau", - "tuile", - "tulipe", - "tumulte", - "tunnel", - "turbine", - "tuteur", - "tutoyer", - "tuyau", - "tympan", - "typhon", - "typique", - "tyran", - "ubuesque", - "ultime", - "ultrason", - "unanime", - "unifier", - "union", - "unique", - "unitaire", - "univers", - "uranium", - "urbain", - "urticant", - "usage", - "usine", - "usuel", - "usure", - "utile", - "utopie", - "vacarme", - "vaccin", - "vagabond", - "vague", - "vaillant", - "vaincre", - "vaisseau", - "valable", - "valise", - "vallon", - "valve", - "vampire", - "vanille", - "vapeur", - "varier", - "vaseux", - "vassal", - "vaste", - "vecteur", - "vedette", - "végétal", - "véhicule", - "veinard", - "véloce", - "vendredi", - "vénérer", - "venger", - "venimeux", - "ventouse", - "verdure", - "vérin", - "vernir", - "verrou", - "verser", - "vertu", - "veston", - "vétéran", - "vétuste", - "vexant", - "vexer", - "viaduc", - "viande", - "victoire", - "vidange", - "vidéo", - "vignette", - "vigueur", - "vilain", - "village", - "vinaigre", - "violon", - "vipère", - "virement", - "virtuose", - "virus", - "visage", - "viseur", - "vision", - "visqueux", - "visuel", - "vital", - "vitesse", - "viticole", - "vitrine", - "vivace", - "vivipare", - "vocation", - "voguer", - "voile", - "voisin", - "voiture", - "volaille", - "volcan", - "voltiger", - "volume", - "vorace", - "vortex", - "voter", - "vouloir", - "voyage", - "voyelle", - "wagon", - "xénon", - "yacht", - "zèbre", - "zénith", - "zeste", - "zoologie" - ]; - - var require$$6 = [ - "abaco", - "abbaglio", - "abbinato", - "abete", - "abisso", - "abolire", - "abrasivo", - "abrogato", - "accadere", - "accenno", - "accusato", - "acetone", - "achille", - "acido", - "acqua", - "acre", - "acrilico", - "acrobata", - "acuto", - "adagio", - "addebito", - "addome", - "adeguato", - "aderire", - "adipe", - "adottare", - "adulare", - "affabile", - "affetto", - "affisso", - "affranto", - "aforisma", - "afoso", - "africano", - "agave", - "agente", - "agevole", - "aggancio", - "agire", - "agitare", - "agonismo", - "agricolo", - "agrumeto", - "aguzzo", - "alabarda", - "alato", - "albatro", - "alberato", - "albo", - "albume", - "alce", - "alcolico", - "alettone", - "alfa", - "algebra", - "aliante", - "alibi", - "alimento", - "allagato", - "allegro", - "allievo", - "allodola", - "allusivo", - "almeno", - "alogeno", - "alpaca", - "alpestre", - "altalena", - "alterno", - "alticcio", - "altrove", - "alunno", - "alveolo", - "alzare", - "amalgama", - "amanita", - "amarena", - "ambito", - "ambrato", - "ameba", - "america", - "ametista", - "amico", - "ammasso", - "ammenda", - "ammirare", - "ammonito", - "amore", - "ampio", - "ampliare", - "amuleto", - "anacardo", - "anagrafe", - "analista", - "anarchia", - "anatra", - "anca", - "ancella", - "ancora", - "andare", - "andrea", - "anello", - "angelo", - "angolare", - "angusto", - "anima", - "annegare", - "annidato", - "anno", - "annuncio", - "anonimo", - "anticipo", - "anzi", - "apatico", - "apertura", - "apode", - "apparire", - "appetito", - "appoggio", - "approdo", - "appunto", - "aprile", - "arabica", - "arachide", - "aragosta", - "araldica", - "arancio", - "aratura", - "arazzo", - "arbitro", - "archivio", - "ardito", - "arenile", - "argento", - "argine", - "arguto", - "aria", - "armonia", - "arnese", - "arredato", - "arringa", - "arrosto", - "arsenico", - "arso", - "artefice", - "arzillo", - "asciutto", - "ascolto", - "asepsi", - "asettico", - "asfalto", - "asino", - "asola", - "aspirato", - "aspro", - "assaggio", - "asse", - "assoluto", - "assurdo", - "asta", - "astenuto", - "astice", - "astratto", - "atavico", - "ateismo", - "atomico", - "atono", - "attesa", - "attivare", - "attorno", - "attrito", - "attuale", - "ausilio", - "austria", - "autista", - "autonomo", - "autunno", - "avanzato", - "avere", - "avvenire", - "avviso", - "avvolgere", - "azione", - "azoto", - "azzimo", - "azzurro", - "babele", - "baccano", - "bacino", - "baco", - "badessa", - "badilata", - "bagnato", - "baita", - "balcone", - "baldo", - "balena", - "ballata", - "balzano", - "bambino", - "bandire", - "baraonda", - "barbaro", - "barca", - "baritono", - "barlume", - "barocco", - "basilico", - "basso", - "batosta", - "battuto", - "baule", - "bava", - "bavosa", - "becco", - "beffa", - "belgio", - "belva", - "benda", - "benevole", - "benigno", - "benzina", - "bere", - "berlina", - "beta", - "bibita", - "bici", - "bidone", - "bifido", - "biga", - "bilancia", - "bimbo", - "binocolo", - "biologo", - "bipede", - "bipolare", - "birbante", - "birra", - "biscotto", - "bisesto", - "bisnonno", - "bisonte", - "bisturi", - "bizzarro", - "blando", - "blatta", - "bollito", - "bonifico", - "bordo", - "bosco", - "botanico", - "bottino", - "bozzolo", - "braccio", - "bradipo", - "brama", - "branca", - "bravura", - "bretella", - "brevetto", - "brezza", - "briglia", - "brillante", - "brindare", - "broccolo", - "brodo", - "bronzina", - "brullo", - "bruno", - "bubbone", - "buca", - "budino", - "buffone", - "buio", - "bulbo", - "buono", - "burlone", - "burrasca", - "bussola", - "busta", - "cadetto", - "caduco", - "calamaro", - "calcolo", - "calesse", - "calibro", - "calmo", - "caloria", - "cambusa", - "camerata", - "camicia", - "cammino", - "camola", - "campale", - "canapa", - "candela", - "cane", - "canino", - "canotto", - "cantina", - "capace", - "capello", - "capitolo", - "capogiro", - "cappero", - "capra", - "capsula", - "carapace", - "carcassa", - "cardo", - "carisma", - "carovana", - "carretto", - "cartolina", - "casaccio", - "cascata", - "caserma", - "caso", - "cassone", - "castello", - "casuale", - "catasta", - "catena", - "catrame", - "cauto", - "cavillo", - "cedibile", - "cedrata", - "cefalo", - "celebre", - "cellulare", - "cena", - "cenone", - "centesimo", - "ceramica", - "cercare", - "certo", - "cerume", - "cervello", - "cesoia", - "cespo", - "ceto", - "chela", - "chiaro", - "chicca", - "chiedere", - "chimera", - "china", - "chirurgo", - "chitarra", - "ciao", - "ciclismo", - "cifrare", - "cigno", - "cilindro", - "ciottolo", - "circa", - "cirrosi", - "citrico", - "cittadino", - "ciuffo", - "civetta", - "civile", - "classico", - "clinica", - "cloro", - "cocco", - "codardo", - "codice", - "coerente", - "cognome", - "collare", - "colmato", - "colore", - "colposo", - "coltivato", - "colza", - "coma", - "cometa", - "commando", - "comodo", - "computer", - "comune", - "conciso", - "condurre", - "conferma", - "congelare", - "coniuge", - "connesso", - "conoscere", - "consumo", - "continuo", - "convegno", - "coperto", - "copione", - "coppia", - "copricapo", - "corazza", - "cordata", - "coricato", - "cornice", - "corolla", - "corpo", - "corredo", - "corsia", - "cortese", - "cosmico", - "costante", - "cottura", - "covato", - "cratere", - "cravatta", - "creato", - "credere", - "cremoso", - "crescita", - "creta", - "criceto", - "crinale", - "crisi", - "critico", - "croce", - "cronaca", - "crostata", - "cruciale", - "crusca", - "cucire", - "cuculo", - "cugino", - "cullato", - "cupola", - "curatore", - "cursore", - "curvo", - "cuscino", - "custode", - "dado", - "daino", - "dalmata", - "damerino", - "daniela", - "dannoso", - "danzare", - "datato", - "davanti", - "davvero", - "debutto", - "decennio", - "deciso", - "declino", - "decollo", - "decreto", - "dedicato", - "definito", - "deforme", - "degno", - "delegare", - "delfino", - "delirio", - "delta", - "demenza", - "denotato", - "dentro", - "deposito", - "derapata", - "derivare", - "deroga", - "descritto", - "deserto", - "desiderio", - "desumere", - "detersivo", - "devoto", - "diametro", - "dicembre", - "diedro", - "difeso", - "diffuso", - "digerire", - "digitale", - "diluvio", - "dinamico", - "dinnanzi", - "dipinto", - "diploma", - "dipolo", - "diradare", - "dire", - "dirotto", - "dirupo", - "disagio", - "discreto", - "disfare", - "disgelo", - "disposto", - "distanza", - "disumano", - "dito", - "divano", - "divelto", - "dividere", - "divorato", - "doblone", - "docente", - "doganale", - "dogma", - "dolce", - "domato", - "domenica", - "dominare", - "dondolo", - "dono", - "dormire", - "dote", - "dottore", - "dovuto", - "dozzina", - "drago", - "druido", - "dubbio", - "dubitare", - "ducale", - "duna", - "duomo", - "duplice", - "duraturo", - "ebano", - "eccesso", - "ecco", - "eclissi", - "economia", - "edera", - "edicola", - "edile", - "editoria", - "educare", - "egemonia", - "egli", - "egoismo", - "egregio", - "elaborato", - "elargire", - "elegante", - "elencato", - "eletto", - "elevare", - "elfico", - "elica", - "elmo", - "elsa", - "eluso", - "emanato", - "emblema", - "emesso", - "emiro", - "emotivo", - "emozione", - "empirico", - "emulo", - "endemico", - "enduro", - "energia", - "enfasi", - "enoteca", - "entrare", - "enzima", - "epatite", - "epilogo", - "episodio", - "epocale", - "eppure", - "equatore", - "erario", - "erba", - "erboso", - "erede", - "eremita", - "erigere", - "ermetico", - "eroe", - "erosivo", - "errante", - "esagono", - "esame", - "esanime", - "esaudire", - "esca", - "esempio", - "esercito", - "esibito", - "esigente", - "esistere", - "esito", - "esofago", - "esortato", - "esoso", - "espanso", - "espresso", - "essenza", - "esso", - "esteso", - "estimare", - "estonia", - "estroso", - "esultare", - "etilico", - "etnico", - "etrusco", - "etto", - "euclideo", - "europa", - "evaso", - "evidenza", - "evitato", - "evoluto", - "evviva", - "fabbrica", - "faccenda", - "fachiro", - "falco", - "famiglia", - "fanale", - "fanfara", - "fango", - "fantasma", - "fare", - "farfalla", - "farinoso", - "farmaco", - "fascia", - "fastoso", - "fasullo", - "faticare", - "fato", - "favoloso", - "febbre", - "fecola", - "fede", - "fegato", - "felpa", - "feltro", - "femmina", - "fendere", - "fenomeno", - "fermento", - "ferro", - "fertile", - "fessura", - "festivo", - "fetta", - "feudo", - "fiaba", - "fiducia", - "fifa", - "figurato", - "filo", - "finanza", - "finestra", - "finire", - "fiore", - "fiscale", - "fisico", - "fiume", - "flacone", - "flamenco", - "flebo", - "flemma", - "florido", - "fluente", - "fluoro", - "fobico", - "focaccia", - "focoso", - "foderato", - "foglio", - "folata", - "folclore", - "folgore", - "fondente", - "fonetico", - "fonia", - "fontana", - "forbito", - "forchetta", - "foresta", - "formica", - "fornaio", - "foro", - "fortezza", - "forzare", - "fosfato", - "fosso", - "fracasso", - "frana", - "frassino", - "fratello", - "freccetta", - "frenata", - "fresco", - "frigo", - "frollino", - "fronde", - "frugale", - "frutta", - "fucilata", - "fucsia", - "fuggente", - "fulmine", - "fulvo", - "fumante", - "fumetto", - "fumoso", - "fune", - "funzione", - "fuoco", - "furbo", - "furgone", - "furore", - "fuso", - "futile", - "gabbiano", - "gaffe", - "galateo", - "gallina", - "galoppo", - "gambero", - "gamma", - "garanzia", - "garbo", - "garofano", - "garzone", - "gasdotto", - "gasolio", - "gastrico", - "gatto", - "gaudio", - "gazebo", - "gazzella", - "geco", - "gelatina", - "gelso", - "gemello", - "gemmato", - "gene", - "genitore", - "gennaio", - "genotipo", - "gergo", - "ghepardo", - "ghiaccio", - "ghisa", - "giallo", - "gilda", - "ginepro", - "giocare", - "gioiello", - "giorno", - "giove", - "girato", - "girone", - "gittata", - "giudizio", - "giurato", - "giusto", - "globulo", - "glutine", - "gnomo", - "gobba", - "golf", - "gomito", - "gommone", - "gonfio", - "gonna", - "governo", - "gracile", - "grado", - "grafico", - "grammo", - "grande", - "grattare", - "gravoso", - "grazia", - "greca", - "gregge", - "grifone", - "grigio", - "grinza", - "grotta", - "gruppo", - "guadagno", - "guaio", - "guanto", - "guardare", - "gufo", - "guidare", - "ibernato", - "icona", - "identico", - "idillio", - "idolo", - "idra", - "idrico", - "idrogeno", - "igiene", - "ignaro", - "ignorato", - "ilare", - "illeso", - "illogico", - "illudere", - "imballo", - "imbevuto", - "imbocco", - "imbuto", - "immane", - "immerso", - "immolato", - "impacco", - "impeto", - "impiego", - "importo", - "impronta", - "inalare", - "inarcare", - "inattivo", - "incanto", - "incendio", - "inchino", - "incisivo", - "incluso", - "incontro", - "incrocio", - "incubo", - "indagine", - "india", - "indole", - "inedito", - "infatti", - "infilare", - "inflitto", - "ingaggio", - "ingegno", - "inglese", - "ingordo", - "ingrosso", - "innesco", - "inodore", - "inoltrare", - "inondato", - "insano", - "insetto", - "insieme", - "insonnia", - "insulina", - "intasato", - "intero", - "intonaco", - "intuito", - "inumidire", - "invalido", - "invece", - "invito", - "iperbole", - "ipnotico", - "ipotesi", - "ippica", - "iride", - "irlanda", - "ironico", - "irrigato", - "irrorare", - "isolato", - "isotopo", - "isterico", - "istituto", - "istrice", - "italia", - "iterare", - "labbro", - "labirinto", - "lacca", - "lacerato", - "lacrima", - "lacuna", - "laddove", - "lago", - "lampo", - "lancetta", - "lanterna", - "lardoso", - "larga", - "laringe", - "lastra", - "latenza", - "latino", - "lattuga", - "lavagna", - "lavoro", - "legale", - "leggero", - "lembo", - "lentezza", - "lenza", - "leone", - "lepre", - "lesivo", - "lessato", - "lesto", - "letterale", - "leva", - "levigato", - "libero", - "lido", - "lievito", - "lilla", - "limatura", - "limitare", - "limpido", - "lineare", - "lingua", - "liquido", - "lira", - "lirica", - "lisca", - "lite", - "litigio", - "livrea", - "locanda", - "lode", - "logica", - "lombare", - "londra", - "longevo", - "loquace", - "lorenzo", - "loto", - "lotteria", - "luce", - "lucidato", - "lumaca", - "luminoso", - "lungo", - "lupo", - "luppolo", - "lusinga", - "lusso", - "lutto", - "macabro", - "macchina", - "macero", - "macinato", - "madama", - "magico", - "maglia", - "magnete", - "magro", - "maiolica", - "malafede", - "malgrado", - "malinteso", - "malsano", - "malto", - "malumore", - "mana", - "mancia", - "mandorla", - "mangiare", - "manifesto", - "mannaro", - "manovra", - "mansarda", - "mantide", - "manubrio", - "mappa", - "maratona", - "marcire", - "maretta", - "marmo", - "marsupio", - "maschera", - "massaia", - "mastino", - "materasso", - "matricola", - "mattone", - "maturo", - "mazurca", - "meandro", - "meccanico", - "mecenate", - "medesimo", - "meditare", - "mega", - "melassa", - "melis", - "melodia", - "meninge", - "meno", - "mensola", - "mercurio", - "merenda", - "merlo", - "meschino", - "mese", - "messere", - "mestolo", - "metallo", - "metodo", - "mettere", - "miagolare", - "mica", - "micelio", - "michele", - "microbo", - "midollo", - "miele", - "migliore", - "milano", - "milite", - "mimosa", - "minerale", - "mini", - "minore", - "mirino", - "mirtillo", - "miscela", - "missiva", - "misto", - "misurare", - "mitezza", - "mitigare", - "mitra", - "mittente", - "mnemonico", - "modello", - "modifica", - "modulo", - "mogano", - "mogio", - "mole", - "molosso", - "monastero", - "monco", - "mondina", - "monetario", - "monile", - "monotono", - "monsone", - "montato", - "monviso", - "mora", - "mordere", - "morsicato", - "mostro", - "motivato", - "motosega", - "motto", - "movenza", - "movimento", - "mozzo", - "mucca", - "mucosa", - "muffa", - "mughetto", - "mugnaio", - "mulatto", - "mulinello", - "multiplo", - "mummia", - "munto", - "muovere", - "murale", - "musa", - "muscolo", - "musica", - "mutevole", - "muto", - "nababbo", - "nafta", - "nanometro", - "narciso", - "narice", - "narrato", - "nascere", - "nastrare", - "naturale", - "nautica", - "naviglio", - "nebulosa", - "necrosi", - "negativo", - "negozio", - "nemmeno", - "neofita", - "neretto", - "nervo", - "nessuno", - "nettuno", - "neutrale", - "neve", - "nevrotico", - "nicchia", - "ninfa", - "nitido", - "nobile", - "nocivo", - "nodo", - "nome", - "nomina", - "nordico", - "normale", - "norvegese", - "nostrano", - "notare", - "notizia", - "notturno", - "novella", - "nucleo", - "nulla", - "numero", - "nuovo", - "nutrire", - "nuvola", - "nuziale", - "oasi", - "obbedire", - "obbligo", - "obelisco", - "oblio", - "obolo", - "obsoleto", - "occasione", - "occhio", - "occidente", - "occorrere", - "occultare", - "ocra", - "oculato", - "odierno", - "odorare", - "offerta", - "offrire", - "offuscato", - "oggetto", - "oggi", - "ognuno", - "olandese", - "olfatto", - "oliato", - "oliva", - "ologramma", - "oltre", - "omaggio", - "ombelico", - "ombra", - "omega", - "omissione", - "ondoso", - "onere", - "onice", - "onnivoro", - "onorevole", - "onta", - "operato", - "opinione", - "opposto", - "oracolo", - "orafo", - "ordine", - "orecchino", - "orefice", - "orfano", - "organico", - "origine", - "orizzonte", - "orma", - "ormeggio", - "ornativo", - "orologio", - "orrendo", - "orribile", - "ortensia", - "ortica", - "orzata", - "orzo", - "osare", - "oscurare", - "osmosi", - "ospedale", - "ospite", - "ossa", - "ossidare", - "ostacolo", - "oste", - "otite", - "otre", - "ottagono", - "ottimo", - "ottobre", - "ovale", - "ovest", - "ovino", - "oviparo", - "ovocito", - "ovunque", - "ovviare", - "ozio", - "pacchetto", - "pace", - "pacifico", - "padella", - "padrone", - "paese", - "paga", - "pagina", - "palazzina", - "palesare", - "pallido", - "palo", - "palude", - "pandoro", - "pannello", - "paolo", - "paonazzo", - "paprica", - "parabola", - "parcella", - "parere", - "pargolo", - "pari", - "parlato", - "parola", - "partire", - "parvenza", - "parziale", - "passivo", - "pasticca", - "patacca", - "patologia", - "pattume", - "pavone", - "peccato", - "pedalare", - "pedonale", - "peggio", - "peloso", - "penare", - "pendice", - "penisola", - "pennuto", - "penombra", - "pensare", - "pentola", - "pepe", - "pepita", - "perbene", - "percorso", - "perdonato", - "perforare", - "pergamena", - "periodo", - "permesso", - "perno", - "perplesso", - "persuaso", - "pertugio", - "pervaso", - "pesatore", - "pesista", - "peso", - "pestifero", - "petalo", - "pettine", - "petulante", - "pezzo", - "piacere", - "pianta", - "piattino", - "piccino", - "picozza", - "piega", - "pietra", - "piffero", - "pigiama", - "pigolio", - "pigro", - "pila", - "pilifero", - "pillola", - "pilota", - "pimpante", - "pineta", - "pinna", - "pinolo", - "pioggia", - "piombo", - "piramide", - "piretico", - "pirite", - "pirolisi", - "pitone", - "pizzico", - "placebo", - "planare", - "plasma", - "platano", - "plenario", - "pochezza", - "poderoso", - "podismo", - "poesia", - "poggiare", - "polenta", - "poligono", - "pollice", - "polmonite", - "polpetta", - "polso", - "poltrona", - "polvere", - "pomice", - "pomodoro", - "ponte", - "popoloso", - "porfido", - "poroso", - "porpora", - "porre", - "portata", - "posa", - "positivo", - "possesso", - "postulato", - "potassio", - "potere", - "pranzo", - "prassi", - "pratica", - "precluso", - "predica", - "prefisso", - "pregiato", - "prelievo", - "premere", - "prenotare", - "preparato", - "presenza", - "pretesto", - "prevalso", - "prima", - "principe", - "privato", - "problema", - "procura", - "produrre", - "profumo", - "progetto", - "prolunga", - "promessa", - "pronome", - "proposta", - "proroga", - "proteso", - "prova", - "prudente", - "prugna", - "prurito", - "psiche", - "pubblico", - "pudica", - "pugilato", - "pugno", - "pulce", - "pulito", - "pulsante", - "puntare", - "pupazzo", - "pupilla", - "puro", - "quadro", - "qualcosa", - "quasi", - "querela", - "quota", - "raccolto", - "raddoppio", - "radicale", - "radunato", - "raffica", - "ragazzo", - "ragione", - "ragno", - "ramarro", - "ramingo", - "ramo", - "randagio", - "rantolare", - "rapato", - "rapina", - "rappreso", - "rasatura", - "raschiato", - "rasente", - "rassegna", - "rastrello", - "rata", - "ravveduto", - "reale", - "recepire", - "recinto", - "recluta", - "recondito", - "recupero", - "reddito", - "redimere", - "regalato", - "registro", - "regola", - "regresso", - "relazione", - "remare", - "remoto", - "renna", - "replica", - "reprimere", - "reputare", - "resa", - "residente", - "responso", - "restauro", - "rete", - "retina", - "retorica", - "rettifica", - "revocato", - "riassunto", - "ribadire", - "ribelle", - "ribrezzo", - "ricarica", - "ricco", - "ricevere", - "riciclato", - "ricordo", - "ricreduto", - "ridicolo", - "ridurre", - "rifasare", - "riflesso", - "riforma", - "rifugio", - "rigare", - "rigettato", - "righello", - "rilassato", - "rilevato", - "rimanere", - "rimbalzo", - "rimedio", - "rimorchio", - "rinascita", - "rincaro", - "rinforzo", - "rinnovo", - "rinomato", - "rinsavito", - "rintocco", - "rinuncia", - "rinvenire", - "riparato", - "ripetuto", - "ripieno", - "riportare", - "ripresa", - "ripulire", - "risata", - "rischio", - "riserva", - "risibile", - "riso", - "rispetto", - "ristoro", - "risultato", - "risvolto", - "ritardo", - "ritegno", - "ritmico", - "ritrovo", - "riunione", - "riva", - "riverso", - "rivincita", - "rivolto", - "rizoma", - "roba", - "robotico", - "robusto", - "roccia", - "roco", - "rodaggio", - "rodere", - "roditore", - "rogito", - "rollio", - "romantico", - "rompere", - "ronzio", - "rosolare", - "rospo", - "rotante", - "rotondo", - "rotula", - "rovescio", - "rubizzo", - "rubrica", - "ruga", - "rullino", - "rumine", - "rumoroso", - "ruolo", - "rupe", - "russare", - "rustico", - "sabato", - "sabbiare", - "sabotato", - "sagoma", - "salasso", - "saldatura", - "salgemma", - "salivare", - "salmone", - "salone", - "saltare", - "saluto", - "salvo", - "sapere", - "sapido", - "saporito", - "saraceno", - "sarcasmo", - "sarto", - "sassoso", - "satellite", - "satira", - "satollo", - "saturno", - "savana", - "savio", - "saziato", - "sbadiglio", - "sbalzo", - "sbancato", - "sbarra", - "sbattere", - "sbavare", - "sbendare", - "sbirciare", - "sbloccato", - "sbocciato", - "sbrinare", - "sbruffone", - "sbuffare", - "scabroso", - "scadenza", - "scala", - "scambiare", - "scandalo", - "scapola", - "scarso", - "scatenare", - "scavato", - "scelto", - "scenico", - "scettro", - "scheda", - "schiena", - "sciarpa", - "scienza", - "scindere", - "scippo", - "sciroppo", - "scivolo", - "sclerare", - "scodella", - "scolpito", - "scomparto", - "sconforto", - "scoprire", - "scorta", - "scossone", - "scozzese", - "scriba", - "scrollare", - "scrutinio", - "scuderia", - "scultore", - "scuola", - "scuro", - "scusare", - "sdebitare", - "sdoganare", - "seccatura", - "secondo", - "sedano", - "seggiola", - "segnalato", - "segregato", - "seguito", - "selciato", - "selettivo", - "sella", - "selvaggio", - "semaforo", - "sembrare", - "seme", - "seminato", - "sempre", - "senso", - "sentire", - "sepolto", - "sequenza", - "serata", - "serbato", - "sereno", - "serio", - "serpente", - "serraglio", - "servire", - "sestina", - "setola", - "settimana", - "sfacelo", - "sfaldare", - "sfamato", - "sfarzoso", - "sfaticato", - "sfera", - "sfida", - "sfilato", - "sfinge", - "sfocato", - "sfoderare", - "sfogo", - "sfoltire", - "sforzato", - "sfratto", - "sfruttato", - "sfuggito", - "sfumare", - "sfuso", - "sgabello", - "sgarbato", - "sgonfiare", - "sgorbio", - "sgrassato", - "sguardo", - "sibilo", - "siccome", - "sierra", - "sigla", - "signore", - "silenzio", - "sillaba", - "simbolo", - "simpatico", - "simulato", - "sinfonia", - "singolo", - "sinistro", - "sino", - "sintesi", - "sinusoide", - "sipario", - "sisma", - "sistole", - "situato", - "slitta", - "slogatura", - "sloveno", - "smarrito", - "smemorato", - "smentito", - "smeraldo", - "smilzo", - "smontare", - "smottato", - "smussato", - "snellire", - "snervato", - "snodo", - "sobbalzo", - "sobrio", - "soccorso", - "sociale", - "sodale", - "soffitto", - "sogno", - "soldato", - "solenne", - "solido", - "sollazzo", - "solo", - "solubile", - "solvente", - "somatico", - "somma", - "sonda", - "sonetto", - "sonnifero", - "sopire", - "soppeso", - "sopra", - "sorgere", - "sorpasso", - "sorriso", - "sorso", - "sorteggio", - "sorvolato", - "sospiro", - "sosta", - "sottile", - "spada", - "spalla", - "spargere", - "spatola", - "spavento", - "spazzola", - "specie", - "spedire", - "spegnere", - "spelatura", - "speranza", - "spessore", - "spettrale", - "spezzato", - "spia", - "spigoloso", - "spillato", - "spinoso", - "spirale", - "splendido", - "sportivo", - "sposo", - "spranga", - "sprecare", - "spronato", - "spruzzo", - "spuntino", - "squillo", - "sradicare", - "srotolato", - "stabile", - "stacco", - "staffa", - "stagnare", - "stampato", - "stantio", - "starnuto", - "stasera", - "statuto", - "stelo", - "steppa", - "sterzo", - "stiletto", - "stima", - "stirpe", - "stivale", - "stizzoso", - "stonato", - "storico", - "strappo", - "stregato", - "stridulo", - "strozzare", - "strutto", - "stuccare", - "stufo", - "stupendo", - "subentro", - "succoso", - "sudore", - "suggerito", - "sugo", - "sultano", - "suonare", - "superbo", - "supporto", - "surgelato", - "surrogato", - "sussurro", - "sutura", - "svagare", - "svedese", - "sveglio", - "svelare", - "svenuto", - "svezia", - "sviluppo", - "svista", - "svizzera", - "svolta", - "svuotare", - "tabacco", - "tabulato", - "tacciare", - "taciturno", - "tale", - "talismano", - "tampone", - "tannino", - "tara", - "tardivo", - "targato", - "tariffa", - "tarpare", - "tartaruga", - "tasto", - "tattico", - "taverna", - "tavolata", - "tazza", - "teca", - "tecnico", - "telefono", - "temerario", - "tempo", - "temuto", - "tendone", - "tenero", - "tensione", - "tentacolo", - "teorema", - "terme", - "terrazzo", - "terzetto", - "tesi", - "tesserato", - "testato", - "tetro", - "tettoia", - "tifare", - "tigella", - "timbro", - "tinto", - "tipico", - "tipografo", - "tiraggio", - "tiro", - "titanio", - "titolo", - "titubante", - "tizio", - "tizzone", - "toccare", - "tollerare", - "tolto", - "tombola", - "tomo", - "tonfo", - "tonsilla", - "topazio", - "topologia", - "toppa", - "torba", - "tornare", - "torrone", - "tortora", - "toscano", - "tossire", - "tostatura", - "totano", - "trabocco", - "trachea", - "trafila", - "tragedia", - "tralcio", - "tramonto", - "transito", - "trapano", - "trarre", - "trasloco", - "trattato", - "trave", - "treccia", - "tremolio", - "trespolo", - "tributo", - "tricheco", - "trifoglio", - "trillo", - "trincea", - "trio", - "tristezza", - "triturato", - "trivella", - "tromba", - "trono", - "troppo", - "trottola", - "trovare", - "truccato", - "tubatura", - "tuffato", - "tulipano", - "tumulto", - "tunisia", - "turbare", - "turchino", - "tuta", - "tutela", - "ubicato", - "uccello", - "uccisore", - "udire", - "uditivo", - "uffa", - "ufficio", - "uguale", - "ulisse", - "ultimato", - "umano", - "umile", - "umorismo", - "uncinetto", - "ungere", - "ungherese", - "unicorno", - "unificato", - "unisono", - "unitario", - "unte", - "uovo", - "upupa", - "uragano", - "urgenza", - "urlo", - "usanza", - "usato", - "uscito", - "usignolo", - "usuraio", - "utensile", - "utilizzo", - "utopia", - "vacante", - "vaccinato", - "vagabondo", - "vagliato", - "valanga", - "valgo", - "valico", - "valletta", - "valoroso", - "valutare", - "valvola", - "vampata", - "vangare", - "vanitoso", - "vano", - "vantaggio", - "vanvera", - "vapore", - "varano", - "varcato", - "variante", - "vasca", - "vedetta", - "vedova", - "veduto", - "vegetale", - "veicolo", - "velcro", - "velina", - "velluto", - "veloce", - "venato", - "vendemmia", - "vento", - "verace", - "verbale", - "vergogna", - "verifica", - "vero", - "verruca", - "verticale", - "vescica", - "vessillo", - "vestale", - "veterano", - "vetrina", - "vetusto", - "viandante", - "vibrante", - "vicenda", - "vichingo", - "vicinanza", - "vidimare", - "vigilia", - "vigneto", - "vigore", - "vile", - "villano", - "vimini", - "vincitore", - "viola", - "vipera", - "virgola", - "virologo", - "virulento", - "viscoso", - "visione", - "vispo", - "vissuto", - "visura", - "vita", - "vitello", - "vittima", - "vivanda", - "vivido", - "viziare", - "voce", - "voga", - "volatile", - "volere", - "volpe", - "voragine", - "vulcano", - "zampogna", - "zanna", - "zappato", - "zattera", - "zavorra", - "zefiro", - "zelante", - "zelo", - "zenzero", - "zerbino", - "zibetto", - "zinco", - "zircone", - "zitto", - "zolla", - "zotico", - "zucchero", - "zufolo", - "zulu", - "zuppa" - ]; - - var require$$7 = [ - "あいこくしん", - "あいさつ", - "あいだ", - "あおぞら", - "あかちゃん", - "あきる", - "あけがた", - "あける", - "あこがれる", - "あさい", - "あさひ", - "あしあと", - "あじわう", - "あずかる", - "あずき", - "あそぶ", - "あたえる", - "あたためる", - "あたりまえ", - "あたる", - "あつい", - "あつかう", - "あっしゅく", - "あつまり", - "あつめる", - "あてな", - "あてはまる", - "あひる", - "あぶら", - "あぶる", - "あふれる", - "あまい", - "あまど", - "あまやかす", - "あまり", - "あみもの", - "あめりか", - "あやまる", - "あゆむ", - "あらいぐま", - "あらし", - "あらすじ", - "あらためる", - "あらゆる", - "あらわす", - "ありがとう", - "あわせる", - "あわてる", - "あんい", - "あんがい", - "あんこ", - "あんぜん", - "あんてい", - "あんない", - "あんまり", - "いいだす", - "いおん", - "いがい", - "いがく", - "いきおい", - "いきなり", - "いきもの", - "いきる", - "いくじ", - "いくぶん", - "いけばな", - "いけん", - "いこう", - "いこく", - "いこつ", - "いさましい", - "いさん", - "いしき", - "いじゅう", - "いじょう", - "いじわる", - "いずみ", - "いずれ", - "いせい", - "いせえび", - "いせかい", - "いせき", - "いぜん", - "いそうろう", - "いそがしい", - "いだい", - "いだく", - "いたずら", - "いたみ", - "いたりあ", - "いちおう", - "いちじ", - "いちど", - "いちば", - "いちぶ", - "いちりゅう", - "いつか", - "いっしゅん", - "いっせい", - "いっそう", - "いったん", - "いっち", - "いってい", - "いっぽう", - "いてざ", - "いてん", - "いどう", - "いとこ", - "いない", - "いなか", - "いねむり", - "いのち", - "いのる", - "いはつ", - "いばる", - "いはん", - "いびき", - "いひん", - "いふく", - "いへん", - "いほう", - "いみん", - "いもうと", - "いもたれ", - "いもり", - "いやがる", - "いやす", - "いよかん", - "いよく", - "いらい", - "いらすと", - "いりぐち", - "いりょう", - "いれい", - "いれもの", - "いれる", - "いろえんぴつ", - "いわい", - "いわう", - "いわかん", - "いわば", - "いわゆる", - "いんげんまめ", - "いんさつ", - "いんしょう", - "いんよう", - "うえき", - "うえる", - "うおざ", - "うがい", - "うかぶ", - "うかべる", - "うきわ", - "うくらいな", - "うくれれ", - "うけたまわる", - "うけつけ", - "うけとる", - "うけもつ", - "うける", - "うごかす", - "うごく", - "うこん", - "うさぎ", - "うしなう", - "うしろがみ", - "うすい", - "うすぎ", - "うすぐらい", - "うすめる", - "うせつ", - "うちあわせ", - "うちがわ", - "うちき", - "うちゅう", - "うっかり", - "うつくしい", - "うったえる", - "うつる", - "うどん", - "うなぎ", - "うなじ", - "うなずく", - "うなる", - "うねる", - "うのう", - "うぶげ", - "うぶごえ", - "うまれる", - "うめる", - "うもう", - "うやまう", - "うよく", - "うらがえす", - "うらぐち", - "うらない", - "うりあげ", - "うりきれ", - "うるさい", - "うれしい", - "うれゆき", - "うれる", - "うろこ", - "うわき", - "うわさ", - "うんこう", - "うんちん", - "うんてん", - "うんどう", - "えいえん", - "えいが", - "えいきょう", - "えいご", - "えいせい", - "えいぶん", - "えいよう", - "えいわ", - "えおり", - "えがお", - "えがく", - "えきたい", - "えくせる", - "えしゃく", - "えすて", - "えつらん", - "えのぐ", - "えほうまき", - "えほん", - "えまき", - "えもじ", - "えもの", - "えらい", - "えらぶ", - "えりあ", - "えんえん", - "えんかい", - "えんぎ", - "えんげき", - "えんしゅう", - "えんぜつ", - "えんそく", - "えんちょう", - "えんとつ", - "おいかける", - "おいこす", - "おいしい", - "おいつく", - "おうえん", - "おうさま", - "おうじ", - "おうせつ", - "おうたい", - "おうふく", - "おうべい", - "おうよう", - "おえる", - "おおい", - "おおう", - "おおどおり", - "おおや", - "おおよそ", - "おかえり", - "おかず", - "おがむ", - "おかわり", - "おぎなう", - "おきる", - "おくさま", - "おくじょう", - "おくりがな", - "おくる", - "おくれる", - "おこす", - "おこなう", - "おこる", - "おさえる", - "おさない", - "おさめる", - "おしいれ", - "おしえる", - "おじぎ", - "おじさん", - "おしゃれ", - "おそらく", - "おそわる", - "おたがい", - "おたく", - "おだやか", - "おちつく", - "おっと", - "おつり", - "おでかけ", - "おとしもの", - "おとなしい", - "おどり", - "おどろかす", - "おばさん", - "おまいり", - "おめでとう", - "おもいで", - "おもう", - "おもたい", - "おもちゃ", - "おやつ", - "おやゆび", - "およぼす", - "おらんだ", - "おろす", - "おんがく", - "おんけい", - "おんしゃ", - "おんせん", - "おんだん", - "おんちゅう", - "おんどけい", - "かあつ", - "かいが", - "がいき", - "がいけん", - "がいこう", - "かいさつ", - "かいしゃ", - "かいすいよく", - "かいぜん", - "かいぞうど", - "かいつう", - "かいてん", - "かいとう", - "かいふく", - "がいへき", - "かいほう", - "かいよう", - "がいらい", - "かいわ", - "かえる", - "かおり", - "かかえる", - "かがく", - "かがし", - "かがみ", - "かくご", - "かくとく", - "かざる", - "がぞう", - "かたい", - "かたち", - "がちょう", - "がっきゅう", - "がっこう", - "がっさん", - "がっしょう", - "かなざわし", - "かのう", - "がはく", - "かぶか", - "かほう", - "かほご", - "かまう", - "かまぼこ", - "かめれおん", - "かゆい", - "かようび", - "からい", - "かるい", - "かろう", - "かわく", - "かわら", - "がんか", - "かんけい", - "かんこう", - "かんしゃ", - "かんそう", - "かんたん", - "かんち", - "がんばる", - "きあい", - "きあつ", - "きいろ", - "ぎいん", - "きうい", - "きうん", - "きえる", - "きおう", - "きおく", - "きおち", - "きおん", - "きかい", - "きかく", - "きかんしゃ", - "ききて", - "きくばり", - "きくらげ", - "きけんせい", - "きこう", - "きこえる", - "きこく", - "きさい", - "きさく", - "きさま", - "きさらぎ", - "ぎじかがく", - "ぎしき", - "ぎじたいけん", - "ぎじにってい", - "ぎじゅつしゃ", - "きすう", - "きせい", - "きせき", - "きせつ", - "きそう", - "きぞく", - "きぞん", - "きたえる", - "きちょう", - "きつえん", - "ぎっちり", - "きつつき", - "きつね", - "きてい", - "きどう", - "きどく", - "きない", - "きなが", - "きなこ", - "きぬごし", - "きねん", - "きのう", - "きのした", - "きはく", - "きびしい", - "きひん", - "きふく", - "きぶん", - "きぼう", - "きほん", - "きまる", - "きみつ", - "きむずかしい", - "きめる", - "きもだめし", - "きもち", - "きもの", - "きゃく", - "きやく", - "ぎゅうにく", - "きよう", - "きょうりゅう", - "きらい", - "きらく", - "きりん", - "きれい", - "きれつ", - "きろく", - "ぎろん", - "きわめる", - "ぎんいろ", - "きんかくじ", - "きんじょ", - "きんようび", - "ぐあい", - "くいず", - "くうかん", - "くうき", - "くうぐん", - "くうこう", - "ぐうせい", - "くうそう", - "ぐうたら", - "くうふく", - "くうぼ", - "くかん", - "くきょう", - "くげん", - "ぐこう", - "くさい", - "くさき", - "くさばな", - "くさる", - "くしゃみ", - "くしょう", - "くすのき", - "くすりゆび", - "くせげ", - "くせん", - "ぐたいてき", - "くださる", - "くたびれる", - "くちこみ", - "くちさき", - "くつした", - "ぐっすり", - "くつろぐ", - "くとうてん", - "くどく", - "くなん", - "くねくね", - "くのう", - "くふう", - "くみあわせ", - "くみたてる", - "くめる", - "くやくしょ", - "くらす", - "くらべる", - "くるま", - "くれる", - "くろう", - "くわしい", - "ぐんかん", - "ぐんしょく", - "ぐんたい", - "ぐんて", - "けあな", - "けいかく", - "けいけん", - "けいこ", - "けいさつ", - "げいじゅつ", - "けいたい", - "げいのうじん", - "けいれき", - "けいろ", - "けおとす", - "けおりもの", - "げきか", - "げきげん", - "げきだん", - "げきちん", - "げきとつ", - "げきは", - "げきやく", - "げこう", - "げこくじょう", - "げざい", - "けさき", - "げざん", - "けしき", - "けしごむ", - "けしょう", - "げすと", - "けたば", - "けちゃっぷ", - "けちらす", - "けつあつ", - "けつい", - "けつえき", - "けっこん", - "けつじょ", - "けっせき", - "けってい", - "けつまつ", - "げつようび", - "げつれい", - "けつろん", - "げどく", - "けとばす", - "けとる", - "けなげ", - "けなす", - "けなみ", - "けぬき", - "げねつ", - "けねん", - "けはい", - "げひん", - "けぶかい", - "げぼく", - "けまり", - "けみかる", - "けむし", - "けむり", - "けもの", - "けらい", - "けろけろ", - "けわしい", - "けんい", - "けんえつ", - "けんお", - "けんか", - "げんき", - "けんげん", - "けんこう", - "けんさく", - "けんしゅう", - "けんすう", - "げんそう", - "けんちく", - "けんてい", - "けんとう", - "けんない", - "けんにん", - "げんぶつ", - "けんま", - "けんみん", - "けんめい", - "けんらん", - "けんり", - "こあくま", - "こいぬ", - "こいびと", - "ごうい", - "こうえん", - "こうおん", - "こうかん", - "ごうきゅう", - "ごうけい", - "こうこう", - "こうさい", - "こうじ", - "こうすい", - "ごうせい", - "こうそく", - "こうたい", - "こうちゃ", - "こうつう", - "こうてい", - "こうどう", - "こうない", - "こうはい", - "ごうほう", - "ごうまん", - "こうもく", - "こうりつ", - "こえる", - "こおり", - "ごかい", - "ごがつ", - "ごかん", - "こくご", - "こくさい", - "こくとう", - "こくない", - "こくはく", - "こぐま", - "こけい", - "こける", - "ここのか", - "こころ", - "こさめ", - "こしつ", - "こすう", - "こせい", - "こせき", - "こぜん", - "こそだて", - "こたい", - "こたえる", - "こたつ", - "こちょう", - "こっか", - "こつこつ", - "こつばん", - "こつぶ", - "こてい", - "こてん", - "ことがら", - "ことし", - "ことば", - "ことり", - "こなごな", - "こねこね", - "このまま", - "このみ", - "このよ", - "ごはん", - "こひつじ", - "こふう", - "こふん", - "こぼれる", - "ごまあぶら", - "こまかい", - "ごますり", - "こまつな", - "こまる", - "こむぎこ", - "こもじ", - "こもち", - "こもの", - "こもん", - "こやく", - "こやま", - "こゆう", - "こゆび", - "こよい", - "こよう", - "こりる", - "これくしょん", - "ころっけ", - "こわもて", - "こわれる", - "こんいん", - "こんかい", - "こんき", - "こんしゅう", - "こんすい", - "こんだて", - "こんとん", - "こんなん", - "こんびに", - "こんぽん", - "こんまけ", - "こんや", - "こんれい", - "こんわく", - "ざいえき", - "さいかい", - "さいきん", - "ざいげん", - "ざいこ", - "さいしょ", - "さいせい", - "ざいたく", - "ざいちゅう", - "さいてき", - "ざいりょう", - "さうな", - "さかいし", - "さがす", - "さかな", - "さかみち", - "さがる", - "さぎょう", - "さくし", - "さくひん", - "さくら", - "さこく", - "さこつ", - "さずかる", - "ざせき", - "さたん", - "さつえい", - "ざつおん", - "ざっか", - "ざつがく", - "さっきょく", - "ざっし", - "さつじん", - "ざっそう", - "さつたば", - "さつまいも", - "さてい", - "さといも", - "さとう", - "さとおや", - "さとし", - "さとる", - "さのう", - "さばく", - "さびしい", - "さべつ", - "さほう", - "さほど", - "さます", - "さみしい", - "さみだれ", - "さむけ", - "さめる", - "さやえんどう", - "さゆう", - "さよう", - "さよく", - "さらだ", - "ざるそば", - "さわやか", - "さわる", - "さんいん", - "さんか", - "さんきゃく", - "さんこう", - "さんさい", - "ざんしょ", - "さんすう", - "さんせい", - "さんそ", - "さんち", - "さんま", - "さんみ", - "さんらん", - "しあい", - "しあげ", - "しあさって", - "しあわせ", - "しいく", - "しいん", - "しうち", - "しえい", - "しおけ", - "しかい", - "しかく", - "じかん", - "しごと", - "しすう", - "じだい", - "したうけ", - "したぎ", - "したて", - "したみ", - "しちょう", - "しちりん", - "しっかり", - "しつじ", - "しつもん", - "してい", - "してき", - "してつ", - "じてん", - "じどう", - "しなぎれ", - "しなもの", - "しなん", - "しねま", - "しねん", - "しのぐ", - "しのぶ", - "しはい", - "しばかり", - "しはつ", - "しはらい", - "しはん", - "しひょう", - "しふく", - "じぶん", - "しへい", - "しほう", - "しほん", - "しまう", - "しまる", - "しみん", - "しむける", - "じむしょ", - "しめい", - "しめる", - "しもん", - "しゃいん", - "しゃうん", - "しゃおん", - "じゃがいも", - "しやくしょ", - "しゃくほう", - "しゃけん", - "しゃこ", - "しゃざい", - "しゃしん", - "しゃせん", - "しゃそう", - "しゃたい", - "しゃちょう", - "しゃっきん", - "じゃま", - "しゃりん", - "しゃれい", - "じゆう", - "じゅうしょ", - "しゅくはく", - "じゅしん", - "しゅっせき", - "しゅみ", - "しゅらば", - "じゅんばん", - "しょうかい", - "しょくたく", - "しょっけん", - "しょどう", - "しょもつ", - "しらせる", - "しらべる", - "しんか", - "しんこう", - "じんじゃ", - "しんせいじ", - "しんちく", - "しんりん", - "すあげ", - "すあし", - "すあな", - "ずあん", - "すいえい", - "すいか", - "すいとう", - "ずいぶん", - "すいようび", - "すうがく", - "すうじつ", - "すうせん", - "すおどり", - "すきま", - "すくう", - "すくない", - "すける", - "すごい", - "すこし", - "ずさん", - "すずしい", - "すすむ", - "すすめる", - "すっかり", - "ずっしり", - "ずっと", - "すてき", - "すてる", - "すねる", - "すのこ", - "すはだ", - "すばらしい", - "ずひょう", - "ずぶぬれ", - "すぶり", - "すふれ", - "すべて", - "すべる", - "ずほう", - "すぼん", - "すまい", - "すめし", - "すもう", - "すやき", - "すらすら", - "するめ", - "すれちがう", - "すろっと", - "すわる", - "すんぜん", - "すんぽう", - "せあぶら", - "せいかつ", - "せいげん", - "せいじ", - "せいよう", - "せおう", - "せかいかん", - "せきにん", - "せきむ", - "せきゆ", - "せきらんうん", - "せけん", - "せこう", - "せすじ", - "せたい", - "せたけ", - "せっかく", - "せっきゃく", - "ぜっく", - "せっけん", - "せっこつ", - "せっさたくま", - "せつぞく", - "せつだん", - "せつでん", - "せっぱん", - "せつび", - "せつぶん", - "せつめい", - "せつりつ", - "せなか", - "せのび", - "せはば", - "せびろ", - "せぼね", - "せまい", - "せまる", - "せめる", - "せもたれ", - "せりふ", - "ぜんあく", - "せんい", - "せんえい", - "せんか", - "せんきょ", - "せんく", - "せんげん", - "ぜんご", - "せんさい", - "せんしゅ", - "せんすい", - "せんせい", - "せんぞ", - "せんたく", - "せんちょう", - "せんてい", - "せんとう", - "せんぬき", - "せんねん", - "せんぱい", - "ぜんぶ", - "ぜんぽう", - "せんむ", - "せんめんじょ", - "せんもん", - "せんやく", - "せんゆう", - "せんよう", - "ぜんら", - "ぜんりゃく", - "せんれい", - "せんろ", - "そあく", - "そいとげる", - "そいね", - "そうがんきょう", - "そうき", - "そうご", - "そうしん", - "そうだん", - "そうなん", - "そうび", - "そうめん", - "そうり", - "そえもの", - "そえん", - "そがい", - "そげき", - "そこう", - "そこそこ", - "そざい", - "そしな", - "そせい", - "そせん", - "そそぐ", - "そだてる", - "そつう", - "そつえん", - "そっかん", - "そつぎょう", - "そっけつ", - "そっこう", - "そっせん", - "そっと", - "そとがわ", - "そとづら", - "そなえる", - "そなた", - "そふぼ", - "そぼく", - "そぼろ", - "そまつ", - "そまる", - "そむく", - "そむりえ", - "そめる", - "そもそも", - "そよかぜ", - "そらまめ", - "そろう", - "そんかい", - "そんけい", - "そんざい", - "そんしつ", - "そんぞく", - "そんちょう", - "ぞんび", - "ぞんぶん", - "そんみん", - "たあい", - "たいいん", - "たいうん", - "たいえき", - "たいおう", - "だいがく", - "たいき", - "たいぐう", - "たいけん", - "たいこ", - "たいざい", - "だいじょうぶ", - "だいすき", - "たいせつ", - "たいそう", - "だいたい", - "たいちょう", - "たいてい", - "だいどころ", - "たいない", - "たいねつ", - "たいのう", - "たいはん", - "だいひょう", - "たいふう", - "たいへん", - "たいほ", - "たいまつばな", - "たいみんぐ", - "たいむ", - "たいめん", - "たいやき", - "たいよう", - "たいら", - "たいりょく", - "たいる", - "たいわん", - "たうえ", - "たえる", - "たおす", - "たおる", - "たおれる", - "たかい", - "たかね", - "たきび", - "たくさん", - "たこく", - "たこやき", - "たさい", - "たしざん", - "だじゃれ", - "たすける", - "たずさわる", - "たそがれ", - "たたかう", - "たたく", - "ただしい", - "たたみ", - "たちばな", - "だっかい", - "だっきゃく", - "だっこ", - "だっしゅつ", - "だったい", - "たてる", - "たとえる", - "たなばた", - "たにん", - "たぬき", - "たのしみ", - "たはつ", - "たぶん", - "たべる", - "たぼう", - "たまご", - "たまる", - "だむる", - "ためいき", - "ためす", - "ためる", - "たもつ", - "たやすい", - "たよる", - "たらす", - "たりきほんがん", - "たりょう", - "たりる", - "たると", - "たれる", - "たれんと", - "たろっと", - "たわむれる", - "だんあつ", - "たんい", - "たんおん", - "たんか", - "たんき", - "たんけん", - "たんご", - "たんさん", - "たんじょうび", - "だんせい", - "たんそく", - "たんたい", - "だんち", - "たんてい", - "たんとう", - "だんな", - "たんにん", - "だんねつ", - "たんのう", - "たんぴん", - "だんぼう", - "たんまつ", - "たんめい", - "だんれつ", - "だんろ", - "だんわ", - "ちあい", - "ちあん", - "ちいき", - "ちいさい", - "ちえん", - "ちかい", - "ちから", - "ちきゅう", - "ちきん", - "ちけいず", - "ちけん", - "ちこく", - "ちさい", - "ちしき", - "ちしりょう", - "ちせい", - "ちそう", - "ちたい", - "ちたん", - "ちちおや", - "ちつじょ", - "ちてき", - "ちてん", - "ちぬき", - "ちぬり", - "ちのう", - "ちひょう", - "ちへいせん", - "ちほう", - "ちまた", - "ちみつ", - "ちみどろ", - "ちめいど", - "ちゃんこなべ", - "ちゅうい", - "ちゆりょく", - "ちょうし", - "ちょさくけん", - "ちらし", - "ちらみ", - "ちりがみ", - "ちりょう", - "ちるど", - "ちわわ", - "ちんたい", - "ちんもく", - "ついか", - "ついたち", - "つうか", - "つうじょう", - "つうはん", - "つうわ", - "つかう", - "つかれる", - "つくね", - "つくる", - "つけね", - "つける", - "つごう", - "つたえる", - "つづく", - "つつじ", - "つつむ", - "つとめる", - "つながる", - "つなみ", - "つねづね", - "つのる", - "つぶす", - "つまらない", - "つまる", - "つみき", - "つめたい", - "つもり", - "つもる", - "つよい", - "つるぼ", - "つるみく", - "つわもの", - "つわり", - "てあし", - "てあて", - "てあみ", - "ていおん", - "ていか", - "ていき", - "ていけい", - "ていこく", - "ていさつ", - "ていし", - "ていせい", - "ていたい", - "ていど", - "ていねい", - "ていひょう", - "ていへん", - "ていぼう", - "てうち", - "ておくれ", - "てきとう", - "てくび", - "でこぼこ", - "てさぎょう", - "てさげ", - "てすり", - "てそう", - "てちがい", - "てちょう", - "てつがく", - "てつづき", - "でっぱ", - "てつぼう", - "てつや", - "でぬかえ", - "てぬき", - "てぬぐい", - "てのひら", - "てはい", - "てぶくろ", - "てふだ", - "てほどき", - "てほん", - "てまえ", - "てまきずし", - "てみじか", - "てみやげ", - "てらす", - "てれび", - "てわけ", - "てわたし", - "でんあつ", - "てんいん", - "てんかい", - "てんき", - "てんぐ", - "てんけん", - "てんごく", - "てんさい", - "てんし", - "てんすう", - "でんち", - "てんてき", - "てんとう", - "てんない", - "てんぷら", - "てんぼうだい", - "てんめつ", - "てんらんかい", - "でんりょく", - "でんわ", - "どあい", - "といれ", - "どうかん", - "とうきゅう", - "どうぐ", - "とうし", - "とうむぎ", - "とおい", - "とおか", - "とおく", - "とおす", - "とおる", - "とかい", - "とかす", - "ときおり", - "ときどき", - "とくい", - "とくしゅう", - "とくてん", - "とくに", - "とくべつ", - "とけい", - "とける", - "とこや", - "とさか", - "としょかん", - "とそう", - "とたん", - "とちゅう", - "とっきゅう", - "とっくん", - "とつぜん", - "とつにゅう", - "とどける", - "ととのえる", - "とない", - "となえる", - "となり", - "とのさま", - "とばす", - "どぶがわ", - "とほう", - "とまる", - "とめる", - "ともだち", - "ともる", - "どようび", - "とらえる", - "とんかつ", - "どんぶり", - "ないかく", - "ないこう", - "ないしょ", - "ないす", - "ないせん", - "ないそう", - "なおす", - "ながい", - "なくす", - "なげる", - "なこうど", - "なさけ", - "なたでここ", - "なっとう", - "なつやすみ", - "ななおし", - "なにごと", - "なにもの", - "なにわ", - "なのか", - "なふだ", - "なまいき", - "なまえ", - "なまみ", - "なみだ", - "なめらか", - "なめる", - "なやむ", - "ならう", - "ならび", - "ならぶ", - "なれる", - "なわとび", - "なわばり", - "にあう", - "にいがた", - "にうけ", - "におい", - "にかい", - "にがて", - "にきび", - "にくしみ", - "にくまん", - "にげる", - "にさんかたんそ", - "にしき", - "にせもの", - "にちじょう", - "にちようび", - "にっか", - "にっき", - "にっけい", - "にっこう", - "にっさん", - "にっしょく", - "にっすう", - "にっせき", - "にってい", - "になう", - "にほん", - "にまめ", - "にもつ", - "にやり", - "にゅういん", - "にりんしゃ", - "にわとり", - "にんい", - "にんか", - "にんき", - "にんげん", - "にんしき", - "にんずう", - "にんそう", - "にんたい", - "にんち", - "にんてい", - "にんにく", - "にんぷ", - "にんまり", - "にんむ", - "にんめい", - "にんよう", - "ぬいくぎ", - "ぬかす", - "ぬぐいとる", - "ぬぐう", - "ぬくもり", - "ぬすむ", - "ぬまえび", - "ぬめり", - "ぬらす", - "ぬんちゃく", - "ねあげ", - "ねいき", - "ねいる", - "ねいろ", - "ねぐせ", - "ねくたい", - "ねくら", - "ねこぜ", - "ねこむ", - "ねさげ", - "ねすごす", - "ねそべる", - "ねだん", - "ねつい", - "ねっしん", - "ねつぞう", - "ねったいぎょ", - "ねぶそく", - "ねふだ", - "ねぼう", - "ねほりはほり", - "ねまき", - "ねまわし", - "ねみみ", - "ねむい", - "ねむたい", - "ねもと", - "ねらう", - "ねわざ", - "ねんいり", - "ねんおし", - "ねんかん", - "ねんきん", - "ねんぐ", - "ねんざ", - "ねんし", - "ねんちゃく", - "ねんど", - "ねんぴ", - "ねんぶつ", - "ねんまつ", - "ねんりょう", - "ねんれい", - "のいず", - "のおづま", - "のがす", - "のきなみ", - "のこぎり", - "のこす", - "のこる", - "のせる", - "のぞく", - "のぞむ", - "のたまう", - "のちほど", - "のっく", - "のばす", - "のはら", - "のべる", - "のぼる", - "のみもの", - "のやま", - "のらいぬ", - "のらねこ", - "のりもの", - "のりゆき", - "のれん", - "のんき", - "ばあい", - "はあく", - "ばあさん", - "ばいか", - "ばいく", - "はいけん", - "はいご", - "はいしん", - "はいすい", - "はいせん", - "はいそう", - "はいち", - "ばいばい", - "はいれつ", - "はえる", - "はおる", - "はかい", - "ばかり", - "はかる", - "はくしゅ", - "はけん", - "はこぶ", - "はさみ", - "はさん", - "はしご", - "ばしょ", - "はしる", - "はせる", - "ぱそこん", - "はそん", - "はたん", - "はちみつ", - "はつおん", - "はっかく", - "はづき", - "はっきり", - "はっくつ", - "はっけん", - "はっこう", - "はっさん", - "はっしん", - "はったつ", - "はっちゅう", - "はってん", - "はっぴょう", - "はっぽう", - "はなす", - "はなび", - "はにかむ", - "はぶらし", - "はみがき", - "はむかう", - "はめつ", - "はやい", - "はやし", - "はらう", - "はろうぃん", - "はわい", - "はんい", - "はんえい", - "はんおん", - "はんかく", - "はんきょう", - "ばんぐみ", - "はんこ", - "はんしゃ", - "はんすう", - "はんだん", - "ぱんち", - "ぱんつ", - "はんてい", - "はんとし", - "はんのう", - "はんぱ", - "はんぶん", - "はんぺん", - "はんぼうき", - "はんめい", - "はんらん", - "はんろん", - "ひいき", - "ひうん", - "ひえる", - "ひかく", - "ひかり", - "ひかる", - "ひかん", - "ひくい", - "ひけつ", - "ひこうき", - "ひこく", - "ひさい", - "ひさしぶり", - "ひさん", - "びじゅつかん", - "ひしょ", - "ひそか", - "ひそむ", - "ひたむき", - "ひだり", - "ひたる", - "ひつぎ", - "ひっこし", - "ひっし", - "ひつじゅひん", - "ひっす", - "ひつぜん", - "ぴったり", - "ぴっちり", - "ひつよう", - "ひてい", - "ひとごみ", - "ひなまつり", - "ひなん", - "ひねる", - "ひはん", - "ひびく", - "ひひょう", - "ひほう", - "ひまわり", - "ひまん", - "ひみつ", - "ひめい", - "ひめじし", - "ひやけ", - "ひやす", - "ひよう", - "びょうき", - "ひらがな", - "ひらく", - "ひりつ", - "ひりょう", - "ひるま", - "ひるやすみ", - "ひれい", - "ひろい", - "ひろう", - "ひろき", - "ひろゆき", - "ひんかく", - "ひんけつ", - "ひんこん", - "ひんしゅ", - "ひんそう", - "ぴんち", - "ひんぱん", - "びんぼう", - "ふあん", - "ふいうち", - "ふうけい", - "ふうせん", - "ぷうたろう", - "ふうとう", - "ふうふ", - "ふえる", - "ふおん", - "ふかい", - "ふきん", - "ふくざつ", - "ふくぶくろ", - "ふこう", - "ふさい", - "ふしぎ", - "ふじみ", - "ふすま", - "ふせい", - "ふせぐ", - "ふそく", - "ぶたにく", - "ふたん", - "ふちょう", - "ふつう", - "ふつか", - "ふっかつ", - "ふっき", - "ふっこく", - "ぶどう", - "ふとる", - "ふとん", - "ふのう", - "ふはい", - "ふひょう", - "ふへん", - "ふまん", - "ふみん", - "ふめつ", - "ふめん", - "ふよう", - "ふりこ", - "ふりる", - "ふるい", - "ふんいき", - "ぶんがく", - "ぶんぐ", - "ふんしつ", - "ぶんせき", - "ふんそう", - "ぶんぽう", - "へいあん", - "へいおん", - "へいがい", - "へいき", - "へいげん", - "へいこう", - "へいさ", - "へいしゃ", - "へいせつ", - "へいそ", - "へいたく", - "へいてん", - "へいねつ", - "へいわ", - "へきが", - "へこむ", - "べにいろ", - "べにしょうが", - "へらす", - "へんかん", - "べんきょう", - "べんごし", - "へんさい", - "へんたい", - "べんり", - "ほあん", - "ほいく", - "ぼうぎょ", - "ほうこく", - "ほうそう", - "ほうほう", - "ほうもん", - "ほうりつ", - "ほえる", - "ほおん", - "ほかん", - "ほきょう", - "ぼきん", - "ほくろ", - "ほけつ", - "ほけん", - "ほこう", - "ほこる", - "ほしい", - "ほしつ", - "ほしゅ", - "ほしょう", - "ほせい", - "ほそい", - "ほそく", - "ほたて", - "ほたる", - "ぽちぶくろ", - "ほっきょく", - "ほっさ", - "ほったん", - "ほとんど", - "ほめる", - "ほんい", - "ほんき", - "ほんけ", - "ほんしつ", - "ほんやく", - "まいにち", - "まかい", - "まかせる", - "まがる", - "まける", - "まこと", - "まさつ", - "まじめ", - "ますく", - "まぜる", - "まつり", - "まとめ", - "まなぶ", - "まぬけ", - "まねく", - "まほう", - "まもる", - "まゆげ", - "まよう", - "まろやか", - "まわす", - "まわり", - "まわる", - "まんが", - "まんきつ", - "まんぞく", - "まんなか", - "みいら", - "みうち", - "みえる", - "みがく", - "みかた", - "みかん", - "みけん", - "みこん", - "みじかい", - "みすい", - "みすえる", - "みせる", - "みっか", - "みつかる", - "みつける", - "みてい", - "みとめる", - "みなと", - "みなみかさい", - "みねらる", - "みのう", - "みのがす", - "みほん", - "みもと", - "みやげ", - "みらい", - "みりょく", - "みわく", - "みんか", - "みんぞく", - "むいか", - "むえき", - "むえん", - "むかい", - "むかう", - "むかえ", - "むかし", - "むぎちゃ", - "むける", - "むげん", - "むさぼる", - "むしあつい", - "むしば", - "むじゅん", - "むしろ", - "むすう", - "むすこ", - "むすぶ", - "むすめ", - "むせる", - "むせん", - "むちゅう", - "むなしい", - "むのう", - "むやみ", - "むよう", - "むらさき", - "むりょう", - "むろん", - "めいあん", - "めいうん", - "めいえん", - "めいかく", - "めいきょく", - "めいさい", - "めいし", - "めいそう", - "めいぶつ", - "めいれい", - "めいわく", - "めぐまれる", - "めざす", - "めした", - "めずらしい", - "めだつ", - "めまい", - "めやす", - "めんきょ", - "めんせき", - "めんどう", - "もうしあげる", - "もうどうけん", - "もえる", - "もくし", - "もくてき", - "もくようび", - "もちろん", - "もどる", - "もらう", - "もんく", - "もんだい", - "やおや", - "やける", - "やさい", - "やさしい", - "やすい", - "やすたろう", - "やすみ", - "やせる", - "やそう", - "やたい", - "やちん", - "やっと", - "やっぱり", - "やぶる", - "やめる", - "ややこしい", - "やよい", - "やわらかい", - "ゆうき", - "ゆうびんきょく", - "ゆうべ", - "ゆうめい", - "ゆけつ", - "ゆしゅつ", - "ゆせん", - "ゆそう", - "ゆたか", - "ゆちゃく", - "ゆでる", - "ゆにゅう", - "ゆびわ", - "ゆらい", - "ゆれる", - "ようい", - "ようか", - "ようきゅう", - "ようじ", - "ようす", - "ようちえん", - "よかぜ", - "よかん", - "よきん", - "よくせい", - "よくぼう", - "よけい", - "よごれる", - "よさん", - "よしゅう", - "よそう", - "よそく", - "よっか", - "よてい", - "よどがわく", - "よねつ", - "よやく", - "よゆう", - "よろこぶ", - "よろしい", - "らいう", - "らくがき", - "らくご", - "らくさつ", - "らくだ", - "らしんばん", - "らせん", - "らぞく", - "らたい", - "らっか", - "られつ", - "りえき", - "りかい", - "りきさく", - "りきせつ", - "りくぐん", - "りくつ", - "りけん", - "りこう", - "りせい", - "りそう", - "りそく", - "りてん", - "りねん", - "りゆう", - "りゅうがく", - "りよう", - "りょうり", - "りょかん", - "りょくちゃ", - "りょこう", - "りりく", - "りれき", - "りろん", - "りんご", - "るいけい", - "るいさい", - "るいじ", - "るいせき", - "るすばん", - "るりがわら", - "れいかん", - "れいぎ", - "れいせい", - "れいぞうこ", - "れいとう", - "れいぼう", - "れきし", - "れきだい", - "れんあい", - "れんけい", - "れんこん", - "れんさい", - "れんしゅう", - "れんぞく", - "れんらく", - "ろうか", - "ろうご", - "ろうじん", - "ろうそく", - "ろくが", - "ろこつ", - "ろじうら", - "ろしゅつ", - "ろせん", - "ろてん", - "ろめん", - "ろれつ", - "ろんぎ", - "ろんぱ", - "ろんぶん", - "ろんり", - "わかす", - "わかめ", - "わかやま", - "わかれる", - "わしつ", - "わじまし", - "わすれもの", - "わらう", - "われる" - ]; - - var require$$8 = [ - "가격", - "가끔", - "가난", - "가능", - "가득", - "가르침", - "가뭄", - "가방", - "가상", - "가슴", - "가운데", - "가을", - "가이드", - "가입", - "가장", - "가정", - "가족", - "가죽", - "각오", - "각자", - "간격", - "간부", - "간섭", - "간장", - "간접", - "간판", - "갈등", - "갈비", - "갈색", - "갈증", - "감각", - "감기", - "감소", - "감수성", - "감자", - "감정", - "갑자기", - "강남", - "강당", - "강도", - "강력히", - "강변", - "강북", - "강사", - "강수량", - "강아지", - "강원도", - "강의", - "강제", - "강조", - "같이", - "개구리", - "개나리", - "개방", - "개별", - "개선", - "개성", - "개인", - "객관적", - "거실", - "거액", - "거울", - "거짓", - "거품", - "걱정", - "건강", - "건물", - "건설", - "건조", - "건축", - "걸음", - "검사", - "검토", - "게시판", - "게임", - "겨울", - "견해", - "결과", - "결국", - "결론", - "결석", - "결승", - "결심", - "결정", - "결혼", - "경계", - "경고", - "경기", - "경력", - "경복궁", - "경비", - "경상도", - "경영", - "경우", - "경쟁", - "경제", - "경주", - "경찰", - "경치", - "경향", - "경험", - "계곡", - "계단", - "계란", - "계산", - "계속", - "계약", - "계절", - "계층", - "계획", - "고객", - "고구려", - "고궁", - "고급", - "고등학생", - "고무신", - "고민", - "고양이", - "고장", - "고전", - "고집", - "고춧가루", - "고통", - "고향", - "곡식", - "골목", - "골짜기", - "골프", - "공간", - "공개", - "공격", - "공군", - "공급", - "공기", - "공동", - "공무원", - "공부", - "공사", - "공식", - "공업", - "공연", - "공원", - "공장", - "공짜", - "공책", - "공통", - "공포", - "공항", - "공휴일", - "과목", - "과일", - "과장", - "과정", - "과학", - "관객", - "관계", - "관광", - "관념", - "관람", - "관련", - "관리", - "관습", - "관심", - "관점", - "관찰", - "광경", - "광고", - "광장", - "광주", - "괴로움", - "굉장히", - "교과서", - "교문", - "교복", - "교실", - "교양", - "교육", - "교장", - "교직", - "교통", - "교환", - "교훈", - "구경", - "구름", - "구멍", - "구별", - "구분", - "구석", - "구성", - "구속", - "구역", - "구입", - "구청", - "구체적", - "국가", - "국기", - "국내", - "국립", - "국물", - "국민", - "국수", - "국어", - "국왕", - "국적", - "국제", - "국회", - "군대", - "군사", - "군인", - "궁극적", - "권리", - "권위", - "권투", - "귀국", - "귀신", - "규정", - "규칙", - "균형", - "그날", - "그냥", - "그늘", - "그러나", - "그룹", - "그릇", - "그림", - "그제서야", - "그토록", - "극복", - "극히", - "근거", - "근교", - "근래", - "근로", - "근무", - "근본", - "근원", - "근육", - "근처", - "글씨", - "글자", - "금강산", - "금고", - "금년", - "금메달", - "금액", - "금연", - "금요일", - "금지", - "긍정적", - "기간", - "기관", - "기념", - "기능", - "기독교", - "기둥", - "기록", - "기름", - "기법", - "기본", - "기분", - "기쁨", - "기숙사", - "기술", - "기억", - "기업", - "기온", - "기운", - "기원", - "기적", - "기준", - "기침", - "기혼", - "기획", - "긴급", - "긴장", - "길이", - "김밥", - "김치", - "김포공항", - "깍두기", - "깜빡", - "깨달음", - "깨소금", - "껍질", - "꼭대기", - "꽃잎", - "나들이", - "나란히", - "나머지", - "나물", - "나침반", - "나흘", - "낙엽", - "난방", - "날개", - "날씨", - "날짜", - "남녀", - "남대문", - "남매", - "남산", - "남자", - "남편", - "남학생", - "낭비", - "낱말", - "내년", - "내용", - "내일", - "냄비", - "냄새", - "냇물", - "냉동", - "냉면", - "냉방", - "냉장고", - "넥타이", - "넷째", - "노동", - "노란색", - "노력", - "노인", - "녹음", - "녹차", - "녹화", - "논리", - "논문", - "논쟁", - "놀이", - "농구", - "농담", - "농민", - "농부", - "농업", - "농장", - "농촌", - "높이", - "눈동자", - "눈물", - "눈썹", - "뉴욕", - "느낌", - "늑대", - "능동적", - "능력", - "다방", - "다양성", - "다음", - "다이어트", - "다행", - "단계", - "단골", - "단독", - "단맛", - "단순", - "단어", - "단위", - "단점", - "단체", - "단추", - "단편", - "단풍", - "달걀", - "달러", - "달력", - "달리", - "닭고기", - "담당", - "담배", - "담요", - "담임", - "답변", - "답장", - "당근", - "당분간", - "당연히", - "당장", - "대규모", - "대낮", - "대단히", - "대답", - "대도시", - "대략", - "대량", - "대륙", - "대문", - "대부분", - "대신", - "대응", - "대장", - "대전", - "대접", - "대중", - "대책", - "대출", - "대충", - "대통령", - "대학", - "대한민국", - "대합실", - "대형", - "덩어리", - "데이트", - "도대체", - "도덕", - "도둑", - "도망", - "도서관", - "도심", - "도움", - "도입", - "도자기", - "도저히", - "도전", - "도중", - "도착", - "독감", - "독립", - "독서", - "독일", - "독창적", - "동화책", - "뒷모습", - "뒷산", - "딸아이", - "마누라", - "마늘", - "마당", - "마라톤", - "마련", - "마무리", - "마사지", - "마약", - "마요네즈", - "마을", - "마음", - "마이크", - "마중", - "마지막", - "마찬가지", - "마찰", - "마흔", - "막걸리", - "막내", - "막상", - "만남", - "만두", - "만세", - "만약", - "만일", - "만점", - "만족", - "만화", - "많이", - "말기", - "말씀", - "말투", - "맘대로", - "망원경", - "매년", - "매달", - "매력", - "매번", - "매스컴", - "매일", - "매장", - "맥주", - "먹이", - "먼저", - "먼지", - "멀리", - "메일", - "며느리", - "며칠", - "면담", - "멸치", - "명단", - "명령", - "명예", - "명의", - "명절", - "명칭", - "명함", - "모금", - "모니터", - "모델", - "모든", - "모범", - "모습", - "모양", - "모임", - "모조리", - "모집", - "모퉁이", - "목걸이", - "목록", - "목사", - "목소리", - "목숨", - "목적", - "목표", - "몰래", - "몸매", - "몸무게", - "몸살", - "몸속", - "몸짓", - "몸통", - "몹시", - "무관심", - "무궁화", - "무더위", - "무덤", - "무릎", - "무슨", - "무엇", - "무역", - "무용", - "무조건", - "무지개", - "무척", - "문구", - "문득", - "문법", - "문서", - "문제", - "문학", - "문화", - "물가", - "물건", - "물결", - "물고기", - "물론", - "물리학", - "물음", - "물질", - "물체", - "미국", - "미디어", - "미사일", - "미술", - "미역", - "미용실", - "미움", - "미인", - "미팅", - "미혼", - "민간", - "민족", - "민주", - "믿음", - "밀가루", - "밀리미터", - "밑바닥", - "바가지", - "바구니", - "바나나", - "바늘", - "바닥", - "바닷가", - "바람", - "바이러스", - "바탕", - "박물관", - "박사", - "박수", - "반대", - "반드시", - "반말", - "반발", - "반성", - "반응", - "반장", - "반죽", - "반지", - "반찬", - "받침", - "발가락", - "발걸음", - "발견", - "발달", - "발레", - "발목", - "발바닥", - "발생", - "발음", - "발자국", - "발전", - "발톱", - "발표", - "밤하늘", - "밥그릇", - "밥맛", - "밥상", - "밥솥", - "방금", - "방면", - "방문", - "방바닥", - "방법", - "방송", - "방식", - "방안", - "방울", - "방지", - "방학", - "방해", - "방향", - "배경", - "배꼽", - "배달", - "배드민턴", - "백두산", - "백색", - "백성", - "백인", - "백제", - "백화점", - "버릇", - "버섯", - "버튼", - "번개", - "번역", - "번지", - "번호", - "벌금", - "벌레", - "벌써", - "범위", - "범인", - "범죄", - "법률", - "법원", - "법적", - "법칙", - "베이징", - "벨트", - "변경", - "변동", - "변명", - "변신", - "변호사", - "변화", - "별도", - "별명", - "별일", - "병실", - "병아리", - "병원", - "보관", - "보너스", - "보라색", - "보람", - "보름", - "보상", - "보안", - "보자기", - "보장", - "보전", - "보존", - "보통", - "보편적", - "보험", - "복도", - "복사", - "복숭아", - "복습", - "볶음", - "본격적", - "본래", - "본부", - "본사", - "본성", - "본인", - "본질", - "볼펜", - "봉사", - "봉지", - "봉투", - "부근", - "부끄러움", - "부담", - "부동산", - "부문", - "부분", - "부산", - "부상", - "부엌", - "부인", - "부작용", - "부장", - "부정", - "부족", - "부지런히", - "부친", - "부탁", - "부품", - "부회장", - "북부", - "북한", - "분노", - "분량", - "분리", - "분명", - "분석", - "분야", - "분위기", - "분필", - "분홍색", - "불고기", - "불과", - "불교", - "불꽃", - "불만", - "불법", - "불빛", - "불안", - "불이익", - "불행", - "브랜드", - "비극", - "비난", - "비닐", - "비둘기", - "비디오", - "비로소", - "비만", - "비명", - "비밀", - "비바람", - "비빔밥", - "비상", - "비용", - "비율", - "비중", - "비타민", - "비판", - "빌딩", - "빗물", - "빗방울", - "빗줄기", - "빛깔", - "빨간색", - "빨래", - "빨리", - "사건", - "사계절", - "사나이", - "사냥", - "사람", - "사랑", - "사립", - "사모님", - "사물", - "사방", - "사상", - "사생활", - "사설", - "사슴", - "사실", - "사업", - "사용", - "사월", - "사장", - "사전", - "사진", - "사촌", - "사춘기", - "사탕", - "사투리", - "사흘", - "산길", - "산부인과", - "산업", - "산책", - "살림", - "살인", - "살짝", - "삼계탕", - "삼국", - "삼십", - "삼월", - "삼촌", - "상관", - "상금", - "상대", - "상류", - "상반기", - "상상", - "상식", - "상업", - "상인", - "상자", - "상점", - "상처", - "상추", - "상태", - "상표", - "상품", - "상황", - "새벽", - "색깔", - "색연필", - "생각", - "생명", - "생물", - "생방송", - "생산", - "생선", - "생신", - "생일", - "생활", - "서랍", - "서른", - "서명", - "서민", - "서비스", - "서양", - "서울", - "서적", - "서점", - "서쪽", - "서클", - "석사", - "석유", - "선거", - "선물", - "선배", - "선생", - "선수", - "선원", - "선장", - "선전", - "선택", - "선풍기", - "설거지", - "설날", - "설렁탕", - "설명", - "설문", - "설사", - "설악산", - "설치", - "설탕", - "섭씨", - "성공", - "성당", - "성명", - "성별", - "성인", - "성장", - "성적", - "성질", - "성함", - "세금", - "세미나", - "세상", - "세월", - "세종대왕", - "세탁", - "센터", - "센티미터", - "셋째", - "소규모", - "소극적", - "소금", - "소나기", - "소년", - "소득", - "소망", - "소문", - "소설", - "소속", - "소아과", - "소용", - "소원", - "소음", - "소중히", - "소지품", - "소질", - "소풍", - "소형", - "속담", - "속도", - "속옷", - "손가락", - "손길", - "손녀", - "손님", - "손등", - "손목", - "손뼉", - "손실", - "손질", - "손톱", - "손해", - "솔직히", - "솜씨", - "송아지", - "송이", - "송편", - "쇠고기", - "쇼핑", - "수건", - "수년", - "수단", - "수돗물", - "수동적", - "수면", - "수명", - "수박", - "수상", - "수석", - "수술", - "수시로", - "수업", - "수염", - "수영", - "수입", - "수준", - "수집", - "수출", - "수컷", - "수필", - "수학", - "수험생", - "수화기", - "숙녀", - "숙소", - "숙제", - "순간", - "순서", - "순수", - "순식간", - "순위", - "숟가락", - "술병", - "술집", - "숫자", - "스님", - "스물", - "스스로", - "스승", - "스웨터", - "스위치", - "스케이트", - "스튜디오", - "스트레스", - "스포츠", - "슬쩍", - "슬픔", - "습관", - "습기", - "승객", - "승리", - "승부", - "승용차", - "승진", - "시각", - "시간", - "시골", - "시금치", - "시나리오", - "시댁", - "시리즈", - "시멘트", - "시민", - "시부모", - "시선", - "시설", - "시스템", - "시아버지", - "시어머니", - "시월", - "시인", - "시일", - "시작", - "시장", - "시절", - "시점", - "시중", - "시즌", - "시집", - "시청", - "시합", - "시험", - "식구", - "식기", - "식당", - "식량", - "식료품", - "식물", - "식빵", - "식사", - "식생활", - "식초", - "식탁", - "식품", - "신고", - "신규", - "신념", - "신문", - "신발", - "신비", - "신사", - "신세", - "신용", - "신제품", - "신청", - "신체", - "신화", - "실감", - "실내", - "실력", - "실례", - "실망", - "실수", - "실습", - "실시", - "실장", - "실정", - "실질적", - "실천", - "실체", - "실컷", - "실태", - "실패", - "실험", - "실현", - "심리", - "심부름", - "심사", - "심장", - "심정", - "심판", - "쌍둥이", - "씨름", - "씨앗", - "아가씨", - "아나운서", - "아드님", - "아들", - "아쉬움", - "아스팔트", - "아시아", - "아울러", - "아저씨", - "아줌마", - "아직", - "아침", - "아파트", - "아프리카", - "아픔", - "아홉", - "아흔", - "악기", - "악몽", - "악수", - "안개", - "안경", - "안과", - "안내", - "안녕", - "안동", - "안방", - "안부", - "안주", - "알루미늄", - "알코올", - "암시", - "암컷", - "압력", - "앞날", - "앞문", - "애인", - "애정", - "액수", - "앨범", - "야간", - "야단", - "야옹", - "약간", - "약국", - "약속", - "약수", - "약점", - "약품", - "약혼녀", - "양념", - "양력", - "양말", - "양배추", - "양주", - "양파", - "어둠", - "어려움", - "어른", - "어젯밤", - "어쨌든", - "어쩌다가", - "어쩐지", - "언니", - "언덕", - "언론", - "언어", - "얼굴", - "얼른", - "얼음", - "얼핏", - "엄마", - "업무", - "업종", - "업체", - "엉덩이", - "엉망", - "엉터리", - "엊그제", - "에너지", - "에어컨", - "엔진", - "여건", - "여고생", - "여관", - "여군", - "여권", - "여대생", - "여덟", - "여동생", - "여든", - "여론", - "여름", - "여섯", - "여성", - "여왕", - "여인", - "여전히", - "여직원", - "여학생", - "여행", - "역사", - "역시", - "역할", - "연결", - "연구", - "연극", - "연기", - "연락", - "연설", - "연세", - "연속", - "연습", - "연애", - "연예인", - "연인", - "연장", - "연주", - "연출", - "연필", - "연합", - "연휴", - "열기", - "열매", - "열쇠", - "열심히", - "열정", - "열차", - "열흘", - "염려", - "엽서", - "영국", - "영남", - "영상", - "영양", - "영역", - "영웅", - "영원히", - "영하", - "영향", - "영혼", - "영화", - "옆구리", - "옆방", - "옆집", - "예감", - "예금", - "예방", - "예산", - "예상", - "예선", - "예술", - "예습", - "예식장", - "예약", - "예전", - "예절", - "예정", - "예컨대", - "옛날", - "오늘", - "오락", - "오랫동안", - "오렌지", - "오로지", - "오른발", - "오븐", - "오십", - "오염", - "오월", - "오전", - "오직", - "오징어", - "오페라", - "오피스텔", - "오히려", - "옥상", - "옥수수", - "온갖", - "온라인", - "온몸", - "온종일", - "온통", - "올가을", - "올림픽", - "올해", - "옷차림", - "와이셔츠", - "와인", - "완성", - "완전", - "왕비", - "왕자", - "왜냐하면", - "왠지", - "외갓집", - "외국", - "외로움", - "외삼촌", - "외출", - "외침", - "외할머니", - "왼발", - "왼손", - "왼쪽", - "요금", - "요일", - "요즘", - "요청", - "용기", - "용서", - "용어", - "우산", - "우선", - "우승", - "우연히", - "우정", - "우체국", - "우편", - "운동", - "운명", - "운반", - "운전", - "운행", - "울산", - "울음", - "움직임", - "웃어른", - "웃음", - "워낙", - "원고", - "원래", - "원서", - "원숭이", - "원인", - "원장", - "원피스", - "월급", - "월드컵", - "월세", - "월요일", - "웨이터", - "위반", - "위법", - "위성", - "위원", - "위험", - "위협", - "윗사람", - "유난히", - "유럽", - "유명", - "유물", - "유산", - "유적", - "유치원", - "유학", - "유행", - "유형", - "육군", - "육상", - "육십", - "육체", - "은행", - "음력", - "음료", - "음반", - "음성", - "음식", - "음악", - "음주", - "의견", - "의논", - "의문", - "의복", - "의식", - "의심", - "의외로", - "의욕", - "의원", - "의학", - "이것", - "이곳", - "이념", - "이놈", - "이달", - "이대로", - "이동", - "이렇게", - "이력서", - "이론적", - "이름", - "이민", - "이발소", - "이별", - "이불", - "이빨", - "이상", - "이성", - "이슬", - "이야기", - "이용", - "이웃", - "이월", - "이윽고", - "이익", - "이전", - "이중", - "이튿날", - "이틀", - "이혼", - "인간", - "인격", - "인공", - "인구", - "인근", - "인기", - "인도", - "인류", - "인물", - "인생", - "인쇄", - "인연", - "인원", - "인재", - "인종", - "인천", - "인체", - "인터넷", - "인하", - "인형", - "일곱", - "일기", - "일단", - "일대", - "일등", - "일반", - "일본", - "일부", - "일상", - "일생", - "일손", - "일요일", - "일월", - "일정", - "일종", - "일주일", - "일찍", - "일체", - "일치", - "일행", - "일회용", - "임금", - "임무", - "입대", - "입력", - "입맛", - "입사", - "입술", - "입시", - "입원", - "입장", - "입학", - "자가용", - "자격", - "자극", - "자동", - "자랑", - "자부심", - "자식", - "자신", - "자연", - "자원", - "자율", - "자전거", - "자정", - "자존심", - "자판", - "작가", - "작년", - "작성", - "작업", - "작용", - "작은딸", - "작품", - "잔디", - "잔뜩", - "잔치", - "잘못", - "잠깐", - "잠수함", - "잠시", - "잠옷", - "잠자리", - "잡지", - "장관", - "장군", - "장기간", - "장래", - "장례", - "장르", - "장마", - "장면", - "장모", - "장미", - "장비", - "장사", - "장소", - "장식", - "장애인", - "장인", - "장점", - "장차", - "장학금", - "재능", - "재빨리", - "재산", - "재생", - "재작년", - "재정", - "재채기", - "재판", - "재학", - "재활용", - "저것", - "저고리", - "저곳", - "저녁", - "저런", - "저렇게", - "저번", - "저울", - "저절로", - "저축", - "적극", - "적당히", - "적성", - "적용", - "적응", - "전개", - "전공", - "전기", - "전달", - "전라도", - "전망", - "전문", - "전반", - "전부", - "전세", - "전시", - "전용", - "전자", - "전쟁", - "전주", - "전철", - "전체", - "전통", - "전혀", - "전후", - "절대", - "절망", - "절반", - "절약", - "절차", - "점검", - "점수", - "점심", - "점원", - "점점", - "점차", - "접근", - "접시", - "접촉", - "젓가락", - "정거장", - "정도", - "정류장", - "정리", - "정말", - "정면", - "정문", - "정반대", - "정보", - "정부", - "정비", - "정상", - "정성", - "정오", - "정원", - "정장", - "정지", - "정치", - "정확히", - "제공", - "제과점", - "제대로", - "제목", - "제발", - "제법", - "제삿날", - "제안", - "제일", - "제작", - "제주도", - "제출", - "제품", - "제한", - "조각", - "조건", - "조금", - "조깅", - "조명", - "조미료", - "조상", - "조선", - "조용히", - "조절", - "조정", - "조직", - "존댓말", - "존재", - "졸업", - "졸음", - "종교", - "종로", - "종류", - "종소리", - "종업원", - "종종", - "종합", - "좌석", - "죄인", - "주관적", - "주름", - "주말", - "주머니", - "주먹", - "주문", - "주민", - "주방", - "주변", - "주식", - "주인", - "주일", - "주장", - "주전자", - "주택", - "준비", - "줄거리", - "줄기", - "줄무늬", - "중간", - "중계방송", - "중국", - "중년", - "중단", - "중독", - "중반", - "중부", - "중세", - "중소기업", - "중순", - "중앙", - "중요", - "중학교", - "즉석", - "즉시", - "즐거움", - "증가", - "증거", - "증권", - "증상", - "증세", - "지각", - "지갑", - "지경", - "지극히", - "지금", - "지급", - "지능", - "지름길", - "지리산", - "지방", - "지붕", - "지식", - "지역", - "지우개", - "지원", - "지적", - "지점", - "지진", - "지출", - "직선", - "직업", - "직원", - "직장", - "진급", - "진동", - "진로", - "진료", - "진리", - "진짜", - "진찰", - "진출", - "진통", - "진행", - "질문", - "질병", - "질서", - "짐작", - "집단", - "집안", - "집중", - "짜증", - "찌꺼기", - "차남", - "차라리", - "차량", - "차림", - "차별", - "차선", - "차츰", - "착각", - "찬물", - "찬성", - "참가", - "참기름", - "참새", - "참석", - "참여", - "참외", - "참조", - "찻잔", - "창가", - "창고", - "창구", - "창문", - "창밖", - "창작", - "창조", - "채널", - "채점", - "책가방", - "책방", - "책상", - "책임", - "챔피언", - "처벌", - "처음", - "천국", - "천둥", - "천장", - "천재", - "천천히", - "철도", - "철저히", - "철학", - "첫날", - "첫째", - "청년", - "청바지", - "청소", - "청춘", - "체계", - "체력", - "체온", - "체육", - "체중", - "체험", - "초등학생", - "초반", - "초밥", - "초상화", - "초순", - "초여름", - "초원", - "초저녁", - "초점", - "초청", - "초콜릿", - "촛불", - "총각", - "총리", - "총장", - "촬영", - "최근", - "최상", - "최선", - "최신", - "최악", - "최종", - "추석", - "추억", - "추진", - "추천", - "추측", - "축구", - "축소", - "축제", - "축하", - "출근", - "출발", - "출산", - "출신", - "출연", - "출입", - "출장", - "출판", - "충격", - "충고", - "충돌", - "충분히", - "충청도", - "취업", - "취직", - "취향", - "치약", - "친구", - "친척", - "칠십", - "칠월", - "칠판", - "침대", - "침묵", - "침실", - "칫솔", - "칭찬", - "카메라", - "카운터", - "칼국수", - "캐릭터", - "캠퍼스", - "캠페인", - "커튼", - "컨디션", - "컬러", - "컴퓨터", - "코끼리", - "코미디", - "콘서트", - "콜라", - "콤플렉스", - "콩나물", - "쾌감", - "쿠데타", - "크림", - "큰길", - "큰딸", - "큰소리", - "큰아들", - "큰어머니", - "큰일", - "큰절", - "클래식", - "클럽", - "킬로", - "타입", - "타자기", - "탁구", - "탁자", - "탄생", - "태권도", - "태양", - "태풍", - "택시", - "탤런트", - "터널", - "터미널", - "테니스", - "테스트", - "테이블", - "텔레비전", - "토론", - "토마토", - "토요일", - "통계", - "통과", - "통로", - "통신", - "통역", - "통일", - "통장", - "통제", - "통증", - "통합", - "통화", - "퇴근", - "퇴원", - "퇴직금", - "튀김", - "트럭", - "특급", - "특별", - "특성", - "특수", - "특징", - "특히", - "튼튼히", - "티셔츠", - "파란색", - "파일", - "파출소", - "판결", - "판단", - "판매", - "판사", - "팔십", - "팔월", - "팝송", - "패션", - "팩스", - "팩시밀리", - "팬티", - "퍼센트", - "페인트", - "편견", - "편의", - "편지", - "편히", - "평가", - "평균", - "평생", - "평소", - "평양", - "평일", - "평화", - "포스터", - "포인트", - "포장", - "포함", - "표면", - "표정", - "표준", - "표현", - "품목", - "품질", - "풍경", - "풍속", - "풍습", - "프랑스", - "프린터", - "플라스틱", - "피곤", - "피망", - "피아노", - "필름", - "필수", - "필요", - "필자", - "필통", - "핑계", - "하느님", - "하늘", - "하드웨어", - "하룻밤", - "하반기", - "하숙집", - "하순", - "하여튼", - "하지만", - "하천", - "하품", - "하필", - "학과", - "학교", - "학급", - "학기", - "학년", - "학력", - "학번", - "학부모", - "학비", - "학생", - "학술", - "학습", - "학용품", - "학원", - "학위", - "학자", - "학점", - "한계", - "한글", - "한꺼번에", - "한낮", - "한눈", - "한동안", - "한때", - "한라산", - "한마디", - "한문", - "한번", - "한복", - "한식", - "한여름", - "한쪽", - "할머니", - "할아버지", - "할인", - "함께", - "함부로", - "합격", - "합리적", - "항공", - "항구", - "항상", - "항의", - "해결", - "해군", - "해답", - "해당", - "해물", - "해석", - "해설", - "해수욕장", - "해안", - "핵심", - "핸드백", - "햄버거", - "햇볕", - "햇살", - "행동", - "행복", - "행사", - "행운", - "행위", - "향기", - "향상", - "향수", - "허락", - "허용", - "헬기", - "현관", - "현금", - "현대", - "현상", - "현실", - "현장", - "현재", - "현지", - "혈액", - "협력", - "형부", - "형사", - "형수", - "형식", - "형제", - "형태", - "형편", - "혜택", - "호기심", - "호남", - "호랑이", - "호박", - "호텔", - "호흡", - "혹시", - "홀로", - "홈페이지", - "홍보", - "홍수", - "홍차", - "화면", - "화분", - "화살", - "화요일", - "화장", - "화학", - "확보", - "확인", - "확장", - "확정", - "환갑", - "환경", - "환영", - "환율", - "환자", - "활기", - "활동", - "활발히", - "활용", - "활짝", - "회견", - "회관", - "회복", - "회색", - "회원", - "회장", - "회전", - "횟수", - "횡단보도", - "효율적", - "후반", - "후춧가루", - "훈련", - "훨씬", - "휴식", - "휴일", - "흉내", - "흐름", - "흑백", - "흑인", - "흔적", - "흔히", - "흥미", - "흥분", - "희곡", - "희망", - "희생", - "흰색", - "힘껏" - ]; - - var require$$9 = [ - "abacate", - "abaixo", - "abalar", - "abater", - "abduzir", - "abelha", - "aberto", - "abismo", - "abotoar", - "abranger", - "abreviar", - "abrigar", - "abrupto", - "absinto", - "absoluto", - "absurdo", - "abutre", - "acabado", - "acalmar", - "acampar", - "acanhar", - "acaso", - "aceitar", - "acelerar", - "acenar", - "acervo", - "acessar", - "acetona", - "achatar", - "acidez", - "acima", - "acionado", - "acirrar", - "aclamar", - "aclive", - "acolhida", - "acomodar", - "acoplar", - "acordar", - "acumular", - "acusador", - "adaptar", - "adega", - "adentro", - "adepto", - "adequar", - "aderente", - "adesivo", - "adeus", - "adiante", - "aditivo", - "adjetivo", - "adjunto", - "admirar", - "adorar", - "adquirir", - "adubo", - "adverso", - "advogado", - "aeronave", - "afastar", - "aferir", - "afetivo", - "afinador", - "afivelar", - "aflito", - "afluente", - "afrontar", - "agachar", - "agarrar", - "agasalho", - "agenciar", - "agilizar", - "agiota", - "agitado", - "agora", - "agradar", - "agreste", - "agrupar", - "aguardar", - "agulha", - "ajoelhar", - "ajudar", - "ajustar", - "alameda", - "alarme", - "alastrar", - "alavanca", - "albergue", - "albino", - "alcatra", - "aldeia", - "alecrim", - "alegria", - "alertar", - "alface", - "alfinete", - "algum", - "alheio", - "aliar", - "alicate", - "alienar", - "alinhar", - "aliviar", - "almofada", - "alocar", - "alpiste", - "alterar", - "altitude", - "alucinar", - "alugar", - "aluno", - "alusivo", - "alvo", - "amaciar", - "amador", - "amarelo", - "amassar", - "ambas", - "ambiente", - "ameixa", - "amenizar", - "amido", - "amistoso", - "amizade", - "amolador", - "amontoar", - "amoroso", - "amostra", - "amparar", - "ampliar", - "ampola", - "anagrama", - "analisar", - "anarquia", - "anatomia", - "andaime", - "anel", - "anexo", - "angular", - "animar", - "anjo", - "anomalia", - "anotado", - "ansioso", - "anterior", - "anuidade", - "anunciar", - "anzol", - "apagador", - "apalpar", - "apanhado", - "apego", - "apelido", - "apertada", - "apesar", - "apetite", - "apito", - "aplauso", - "aplicada", - "apoio", - "apontar", - "aposta", - "aprendiz", - "aprovar", - "aquecer", - "arame", - "aranha", - "arara", - "arcada", - "ardente", - "areia", - "arejar", - "arenito", - "aresta", - "argiloso", - "argola", - "arma", - "arquivo", - "arraial", - "arrebate", - "arriscar", - "arroba", - "arrumar", - "arsenal", - "arterial", - "artigo", - "arvoredo", - "asfaltar", - "asilado", - "aspirar", - "assador", - "assinar", - "assoalho", - "assunto", - "astral", - "atacado", - "atadura", - "atalho", - "atarefar", - "atear", - "atender", - "aterro", - "ateu", - "atingir", - "atirador", - "ativo", - "atoleiro", - "atracar", - "atrevido", - "atriz", - "atual", - "atum", - "auditor", - "aumentar", - "aura", - "aurora", - "autismo", - "autoria", - "autuar", - "avaliar", - "avante", - "avaria", - "avental", - "avesso", - "aviador", - "avisar", - "avulso", - "axila", - "azarar", - "azedo", - "azeite", - "azulejo", - "babar", - "babosa", - "bacalhau", - "bacharel", - "bacia", - "bagagem", - "baiano", - "bailar", - "baioneta", - "bairro", - "baixista", - "bajular", - "baleia", - "baliza", - "balsa", - "banal", - "bandeira", - "banho", - "banir", - "banquete", - "barato", - "barbado", - "baronesa", - "barraca", - "barulho", - "baseado", - "bastante", - "batata", - "batedor", - "batida", - "batom", - "batucar", - "baunilha", - "beber", - "beijo", - "beirada", - "beisebol", - "beldade", - "beleza", - "belga", - "beliscar", - "bendito", - "bengala", - "benzer", - "berimbau", - "berlinda", - "berro", - "besouro", - "bexiga", - "bezerro", - "bico", - "bicudo", - "bienal", - "bifocal", - "bifurcar", - "bigorna", - "bilhete", - "bimestre", - "bimotor", - "biologia", - "biombo", - "biosfera", - "bipolar", - "birrento", - "biscoito", - "bisneto", - "bispo", - "bissexto", - "bitola", - "bizarro", - "blindado", - "bloco", - "bloquear", - "boato", - "bobagem", - "bocado", - "bocejo", - "bochecha", - "boicotar", - "bolada", - "boletim", - "bolha", - "bolo", - "bombeiro", - "bonde", - "boneco", - "bonita", - "borbulha", - "borda", - "boreal", - "borracha", - "bovino", - "boxeador", - "branco", - "brasa", - "braveza", - "breu", - "briga", - "brilho", - "brincar", - "broa", - "brochura", - "bronzear", - "broto", - "bruxo", - "bucha", - "budismo", - "bufar", - "bule", - "buraco", - "busca", - "busto", - "buzina", - "cabana", - "cabelo", - "cabide", - "cabo", - "cabrito", - "cacau", - "cacetada", - "cachorro", - "cacique", - "cadastro", - "cadeado", - "cafezal", - "caiaque", - "caipira", - "caixote", - "cajado", - "caju", - "calafrio", - "calcular", - "caldeira", - "calibrar", - "calmante", - "calota", - "camada", - "cambista", - "camisa", - "camomila", - "campanha", - "camuflar", - "canavial", - "cancelar", - "caneta", - "canguru", - "canhoto", - "canivete", - "canoa", - "cansado", - "cantar", - "canudo", - "capacho", - "capela", - "capinar", - "capotar", - "capricho", - "captador", - "capuz", - "caracol", - "carbono", - "cardeal", - "careca", - "carimbar", - "carneiro", - "carpete", - "carreira", - "cartaz", - "carvalho", - "casaco", - "casca", - "casebre", - "castelo", - "casulo", - "catarata", - "cativar", - "caule", - "causador", - "cautelar", - "cavalo", - "caverna", - "cebola", - "cedilha", - "cegonha", - "celebrar", - "celular", - "cenoura", - "censo", - "centeio", - "cercar", - "cerrado", - "certeiro", - "cerveja", - "cetim", - "cevada", - "chacota", - "chaleira", - "chamado", - "chapada", - "charme", - "chatice", - "chave", - "chefe", - "chegada", - "cheiro", - "cheque", - "chicote", - "chifre", - "chinelo", - "chocalho", - "chover", - "chumbo", - "chutar", - "chuva", - "cicatriz", - "ciclone", - "cidade", - "cidreira", - "ciente", - "cigana", - "cimento", - "cinto", - "cinza", - "ciranda", - "circuito", - "cirurgia", - "citar", - "clareza", - "clero", - "clicar", - "clone", - "clube", - "coado", - "coagir", - "cobaia", - "cobertor", - "cobrar", - "cocada", - "coelho", - "coentro", - "coeso", - "cogumelo", - "coibir", - "coifa", - "coiote", - "colar", - "coleira", - "colher", - "colidir", - "colmeia", - "colono", - "coluna", - "comando", - "combinar", - "comentar", - "comitiva", - "comover", - "complexo", - "comum", - "concha", - "condor", - "conectar", - "confuso", - "congelar", - "conhecer", - "conjugar", - "consumir", - "contrato", - "convite", - "cooperar", - "copeiro", - "copiador", - "copo", - "coquetel", - "coragem", - "cordial", - "corneta", - "coronha", - "corporal", - "correio", - "cortejo", - "coruja", - "corvo", - "cosseno", - "costela", - "cotonete", - "couro", - "couve", - "covil", - "cozinha", - "cratera", - "cravo", - "creche", - "credor", - "creme", - "crer", - "crespo", - "criada", - "criminal", - "crioulo", - "crise", - "criticar", - "crosta", - "crua", - "cruzeiro", - "cubano", - "cueca", - "cuidado", - "cujo", - "culatra", - "culminar", - "culpar", - "cultura", - "cumprir", - "cunhado", - "cupido", - "curativo", - "curral", - "cursar", - "curto", - "cuspir", - "custear", - "cutelo", - "damasco", - "datar", - "debater", - "debitar", - "deboche", - "debulhar", - "decalque", - "decimal", - "declive", - "decote", - "decretar", - "dedal", - "dedicado", - "deduzir", - "defesa", - "defumar", - "degelo", - "degrau", - "degustar", - "deitado", - "deixar", - "delator", - "delegado", - "delinear", - "delonga", - "demanda", - "demitir", - "demolido", - "dentista", - "depenado", - "depilar", - "depois", - "depressa", - "depurar", - "deriva", - "derramar", - "desafio", - "desbotar", - "descanso", - "desenho", - "desfiado", - "desgaste", - "desigual", - "deslize", - "desmamar", - "desova", - "despesa", - "destaque", - "desviar", - "detalhar", - "detentor", - "detonar", - "detrito", - "deusa", - "dever", - "devido", - "devotado", - "dezena", - "diagrama", - "dialeto", - "didata", - "difuso", - "digitar", - "dilatado", - "diluente", - "diminuir", - "dinastia", - "dinheiro", - "diocese", - "direto", - "discreta", - "disfarce", - "disparo", - "disquete", - "dissipar", - "distante", - "ditador", - "diurno", - "diverso", - "divisor", - "divulgar", - "dizer", - "dobrador", - "dolorido", - "domador", - "dominado", - "donativo", - "donzela", - "dormente", - "dorsal", - "dosagem", - "dourado", - "doutor", - "drenagem", - "drible", - "drogaria", - "duelar", - "duende", - "dueto", - "duplo", - "duquesa", - "durante", - "duvidoso", - "eclodir", - "ecoar", - "ecologia", - "edificar", - "edital", - "educado", - "efeito", - "efetivar", - "ejetar", - "elaborar", - "eleger", - "eleitor", - "elenco", - "elevador", - "eliminar", - "elogiar", - "embargo", - "embolado", - "embrulho", - "embutido", - "emenda", - "emergir", - "emissor", - "empatia", - "empenho", - "empinado", - "empolgar", - "emprego", - "empurrar", - "emulador", - "encaixe", - "encenado", - "enchente", - "encontro", - "endeusar", - "endossar", - "enfaixar", - "enfeite", - "enfim", - "engajado", - "engenho", - "englobar", - "engomado", - "engraxar", - "enguia", - "enjoar", - "enlatar", - "enquanto", - "enraizar", - "enrolado", - "enrugar", - "ensaio", - "enseada", - "ensino", - "ensopado", - "entanto", - "enteado", - "entidade", - "entortar", - "entrada", - "entulho", - "envergar", - "enviado", - "envolver", - "enxame", - "enxerto", - "enxofre", - "enxuto", - "epiderme", - "equipar", - "ereto", - "erguido", - "errata", - "erva", - "ervilha", - "esbanjar", - "esbelto", - "escama", - "escola", - "escrita", - "escuta", - "esfinge", - "esfolar", - "esfregar", - "esfumado", - "esgrima", - "esmalte", - "espanto", - "espelho", - "espiga", - "esponja", - "espreita", - "espumar", - "esquerda", - "estaca", - "esteira", - "esticar", - "estofado", - "estrela", - "estudo", - "esvaziar", - "etanol", - "etiqueta", - "euforia", - "europeu", - "evacuar", - "evaporar", - "evasivo", - "eventual", - "evidente", - "evoluir", - "exagero", - "exalar", - "examinar", - "exato", - "exausto", - "excesso", - "excitar", - "exclamar", - "executar", - "exemplo", - "exibir", - "exigente", - "exonerar", - "expandir", - "expelir", - "expirar", - "explanar", - "exposto", - "expresso", - "expulsar", - "externo", - "extinto", - "extrato", - "fabricar", - "fabuloso", - "faceta", - "facial", - "fada", - "fadiga", - "faixa", - "falar", - "falta", - "familiar", - "fandango", - "fanfarra", - "fantoche", - "fardado", - "farelo", - "farinha", - "farofa", - "farpa", - "fartura", - "fatia", - "fator", - "favorita", - "faxina", - "fazenda", - "fechado", - "feijoada", - "feirante", - "felino", - "feminino", - "fenda", - "feno", - "fera", - "feriado", - "ferrugem", - "ferver", - "festejar", - "fetal", - "feudal", - "fiapo", - "fibrose", - "ficar", - "ficheiro", - "figurado", - "fileira", - "filho", - "filme", - "filtrar", - "firmeza", - "fisgada", - "fissura", - "fita", - "fivela", - "fixador", - "fixo", - "flacidez", - "flamingo", - "flanela", - "flechada", - "flora", - "flutuar", - "fluxo", - "focal", - "focinho", - "fofocar", - "fogo", - "foguete", - "foice", - "folgado", - "folheto", - "forjar", - "formiga", - "forno", - "forte", - "fosco", - "fossa", - "fragata", - "fralda", - "frango", - "frasco", - "fraterno", - "freira", - "frente", - "fretar", - "frieza", - "friso", - "fritura", - "fronha", - "frustrar", - "fruteira", - "fugir", - "fulano", - "fuligem", - "fundar", - "fungo", - "funil", - "furador", - "furioso", - "futebol", - "gabarito", - "gabinete", - "gado", - "gaiato", - "gaiola", - "gaivota", - "galega", - "galho", - "galinha", - "galocha", - "ganhar", - "garagem", - "garfo", - "gargalo", - "garimpo", - "garoupa", - "garrafa", - "gasoduto", - "gasto", - "gata", - "gatilho", - "gaveta", - "gazela", - "gelado", - "geleia", - "gelo", - "gemada", - "gemer", - "gemido", - "generoso", - "gengiva", - "genial", - "genoma", - "genro", - "geologia", - "gerador", - "germinar", - "gesso", - "gestor", - "ginasta", - "gincana", - "gingado", - "girafa", - "girino", - "glacial", - "glicose", - "global", - "glorioso", - "goela", - "goiaba", - "golfe", - "golpear", - "gordura", - "gorjeta", - "gorro", - "gostoso", - "goteira", - "governar", - "gracejo", - "gradual", - "grafite", - "gralha", - "grampo", - "granada", - "gratuito", - "graveto", - "graxa", - "grego", - "grelhar", - "greve", - "grilo", - "grisalho", - "gritaria", - "grosso", - "grotesco", - "grudado", - "grunhido", - "gruta", - "guache", - "guarani", - "guaxinim", - "guerrear", - "guiar", - "guincho", - "guisado", - "gula", - "guloso", - "guru", - "habitar", - "harmonia", - "haste", - "haver", - "hectare", - "herdar", - "heresia", - "hesitar", - "hiato", - "hibernar", - "hidratar", - "hiena", - "hino", - "hipismo", - "hipnose", - "hipoteca", - "hoje", - "holofote", - "homem", - "honesto", - "honrado", - "hormonal", - "hospedar", - "humorado", - "iate", - "ideia", - "idoso", - "ignorado", - "igreja", - "iguana", - "ileso", - "ilha", - "iludido", - "iluminar", - "ilustrar", - "imagem", - "imediato", - "imenso", - "imersivo", - "iminente", - "imitador", - "imortal", - "impacto", - "impedir", - "implante", - "impor", - "imprensa", - "impune", - "imunizar", - "inalador", - "inapto", - "inativo", - "incenso", - "inchar", - "incidir", - "incluir", - "incolor", - "indeciso", - "indireto", - "indutor", - "ineficaz", - "inerente", - "infantil", - "infestar", - "infinito", - "inflamar", - "informal", - "infrator", - "ingerir", - "inibido", - "inicial", - "inimigo", - "injetar", - "inocente", - "inodoro", - "inovador", - "inox", - "inquieto", - "inscrito", - "inseto", - "insistir", - "inspetor", - "instalar", - "insulto", - "intacto", - "integral", - "intimar", - "intocado", - "intriga", - "invasor", - "inverno", - "invicto", - "invocar", - "iogurte", - "iraniano", - "ironizar", - "irreal", - "irritado", - "isca", - "isento", - "isolado", - "isqueiro", - "italiano", - "janeiro", - "jangada", - "janta", - "jararaca", - "jardim", - "jarro", - "jasmim", - "jato", - "javali", - "jazida", - "jejum", - "joaninha", - "joelhada", - "jogador", - "joia", - "jornal", - "jorrar", - "jovem", - "juba", - "judeu", - "judoca", - "juiz", - "julgador", - "julho", - "jurado", - "jurista", - "juro", - "justa", - "labareda", - "laboral", - "lacre", - "lactante", - "ladrilho", - "lagarta", - "lagoa", - "laje", - "lamber", - "lamentar", - "laminar", - "lampejo", - "lanche", - "lapidar", - "lapso", - "laranja", - "lareira", - "largura", - "lasanha", - "lastro", - "lateral", - "latido", - "lavanda", - "lavoura", - "lavrador", - "laxante", - "lazer", - "lealdade", - "lebre", - "legado", - "legendar", - "legista", - "leigo", - "leiloar", - "leitura", - "lembrete", - "leme", - "lenhador", - "lentilha", - "leoa", - "lesma", - "leste", - "letivo", - "letreiro", - "levar", - "leveza", - "levitar", - "liberal", - "libido", - "liderar", - "ligar", - "ligeiro", - "limitar", - "limoeiro", - "limpador", - "linda", - "linear", - "linhagem", - "liquidez", - "listagem", - "lisura", - "litoral", - "livro", - "lixa", - "lixeira", - "locador", - "locutor", - "lojista", - "lombo", - "lona", - "longe", - "lontra", - "lorde", - "lotado", - "loteria", - "loucura", - "lousa", - "louvar", - "luar", - "lucidez", - "lucro", - "luneta", - "lustre", - "lutador", - "luva", - "macaco", - "macete", - "machado", - "macio", - "madeira", - "madrinha", - "magnata", - "magreza", - "maior", - "mais", - "malandro", - "malha", - "malote", - "maluco", - "mamilo", - "mamoeiro", - "mamute", - "manada", - "mancha", - "mandato", - "manequim", - "manhoso", - "manivela", - "manobrar", - "mansa", - "manter", - "manusear", - "mapeado", - "maquinar", - "marcador", - "maresia", - "marfim", - "margem", - "marinho", - "marmita", - "maroto", - "marquise", - "marreco", - "martelo", - "marujo", - "mascote", - "masmorra", - "massagem", - "mastigar", - "matagal", - "materno", - "matinal", - "matutar", - "maxilar", - "medalha", - "medida", - "medusa", - "megafone", - "meiga", - "melancia", - "melhor", - "membro", - "memorial", - "menino", - "menos", - "mensagem", - "mental", - "merecer", - "mergulho", - "mesada", - "mesclar", - "mesmo", - "mesquita", - "mestre", - "metade", - "meteoro", - "metragem", - "mexer", - "mexicano", - "micro", - "migalha", - "migrar", - "milagre", - "milenar", - "milhar", - "mimado", - "minerar", - "minhoca", - "ministro", - "minoria", - "miolo", - "mirante", - "mirtilo", - "misturar", - "mocidade", - "moderno", - "modular", - "moeda", - "moer", - "moinho", - "moita", - "moldura", - "moleza", - "molho", - "molinete", - "molusco", - "montanha", - "moqueca", - "morango", - "morcego", - "mordomo", - "morena", - "mosaico", - "mosquete", - "mostarda", - "motel", - "motim", - "moto", - "motriz", - "muda", - "muito", - "mulata", - "mulher", - "multar", - "mundial", - "munido", - "muralha", - "murcho", - "muscular", - "museu", - "musical", - "nacional", - "nadador", - "naja", - "namoro", - "narina", - "narrado", - "nascer", - "nativa", - "natureza", - "navalha", - "navegar", - "navio", - "neblina", - "nebuloso", - "negativa", - "negociar", - "negrito", - "nervoso", - "neta", - "neural", - "nevasca", - "nevoeiro", - "ninar", - "ninho", - "nitidez", - "nivelar", - "nobreza", - "noite", - "noiva", - "nomear", - "nominal", - "nordeste", - "nortear", - "notar", - "noticiar", - "noturno", - "novelo", - "novilho", - "novo", - "nublado", - "nudez", - "numeral", - "nupcial", - "nutrir", - "nuvem", - "obcecado", - "obedecer", - "objetivo", - "obrigado", - "obscuro", - "obstetra", - "obter", - "obturar", - "ocidente", - "ocioso", - "ocorrer", - "oculista", - "ocupado", - "ofegante", - "ofensiva", - "oferenda", - "oficina", - "ofuscado", - "ogiva", - "olaria", - "oleoso", - "olhar", - "oliveira", - "ombro", - "omelete", - "omisso", - "omitir", - "ondulado", - "oneroso", - "ontem", - "opcional", - "operador", - "oponente", - "oportuno", - "oposto", - "orar", - "orbitar", - "ordem", - "ordinal", - "orfanato", - "orgasmo", - "orgulho", - "oriental", - "origem", - "oriundo", - "orla", - "ortodoxo", - "orvalho", - "oscilar", - "ossada", - "osso", - "ostentar", - "otimismo", - "ousadia", - "outono", - "outubro", - "ouvido", - "ovelha", - "ovular", - "oxidar", - "oxigenar", - "pacato", - "paciente", - "pacote", - "pactuar", - "padaria", - "padrinho", - "pagar", - "pagode", - "painel", - "pairar", - "paisagem", - "palavra", - "palestra", - "palheta", - "palito", - "palmada", - "palpitar", - "pancada", - "panela", - "panfleto", - "panqueca", - "pantanal", - "papagaio", - "papelada", - "papiro", - "parafina", - "parcial", - "pardal", - "parede", - "partida", - "pasmo", - "passado", - "pastel", - "patamar", - "patente", - "patinar", - "patrono", - "paulada", - "pausar", - "peculiar", - "pedalar", - "pedestre", - "pediatra", - "pedra", - "pegada", - "peitoral", - "peixe", - "pele", - "pelicano", - "penca", - "pendurar", - "peneira", - "penhasco", - "pensador", - "pente", - "perceber", - "perfeito", - "pergunta", - "perito", - "permitir", - "perna", - "perplexo", - "persiana", - "pertence", - "peruca", - "pescado", - "pesquisa", - "pessoa", - "petiscar", - "piada", - "picado", - "piedade", - "pigmento", - "pilastra", - "pilhado", - "pilotar", - "pimenta", - "pincel", - "pinguim", - "pinha", - "pinote", - "pintar", - "pioneiro", - "pipoca", - "piquete", - "piranha", - "pires", - "pirueta", - "piscar", - "pistola", - "pitanga", - "pivete", - "planta", - "plaqueta", - "platina", - "plebeu", - "plumagem", - "pluvial", - "pneu", - "poda", - "poeira", - "poetisa", - "polegada", - "policiar", - "poluente", - "polvilho", - "pomar", - "pomba", - "ponderar", - "pontaria", - "populoso", - "porta", - "possuir", - "postal", - "pote", - "poupar", - "pouso", - "povoar", - "praia", - "prancha", - "prato", - "praxe", - "prece", - "predador", - "prefeito", - "premiar", - "prensar", - "preparar", - "presilha", - "pretexto", - "prevenir", - "prezar", - "primata", - "princesa", - "prisma", - "privado", - "processo", - "produto", - "profeta", - "proibido", - "projeto", - "prometer", - "propagar", - "prosa", - "protetor", - "provador", - "publicar", - "pudim", - "pular", - "pulmonar", - "pulseira", - "punhal", - "punir", - "pupilo", - "pureza", - "puxador", - "quadra", - "quantia", - "quarto", - "quase", - "quebrar", - "queda", - "queijo", - "quente", - "querido", - "quimono", - "quina", - "quiosque", - "rabanada", - "rabisco", - "rachar", - "racionar", - "radial", - "raiar", - "rainha", - "raio", - "raiva", - "rajada", - "ralado", - "ramal", - "ranger", - "ranhura", - "rapadura", - "rapel", - "rapidez", - "raposa", - "raquete", - "raridade", - "rasante", - "rascunho", - "rasgar", - "raspador", - "rasteira", - "rasurar", - "ratazana", - "ratoeira", - "realeza", - "reanimar", - "reaver", - "rebaixar", - "rebelde", - "rebolar", - "recado", - "recente", - "recheio", - "recibo", - "recordar", - "recrutar", - "recuar", - "rede", - "redimir", - "redonda", - "reduzida", - "reenvio", - "refinar", - "refletir", - "refogar", - "refresco", - "refugiar", - "regalia", - "regime", - "regra", - "reinado", - "reitor", - "rejeitar", - "relativo", - "remador", - "remendo", - "remorso", - "renovado", - "reparo", - "repelir", - "repleto", - "repolho", - "represa", - "repudiar", - "requerer", - "resenha", - "resfriar", - "resgatar", - "residir", - "resolver", - "respeito", - "ressaca", - "restante", - "resumir", - "retalho", - "reter", - "retirar", - "retomada", - "retratar", - "revelar", - "revisor", - "revolta", - "riacho", - "rica", - "rigidez", - "rigoroso", - "rimar", - "ringue", - "risada", - "risco", - "risonho", - "robalo", - "rochedo", - "rodada", - "rodeio", - "rodovia", - "roedor", - "roleta", - "romano", - "roncar", - "rosado", - "roseira", - "rosto", - "rota", - "roteiro", - "rotina", - "rotular", - "rouco", - "roupa", - "roxo", - "rubro", - "rugido", - "rugoso", - "ruivo", - "rumo", - "rupestre", - "russo", - "sabor", - "saciar", - "sacola", - "sacudir", - "sadio", - "safira", - "saga", - "sagrada", - "saibro", - "salada", - "saleiro", - "salgado", - "saliva", - "salpicar", - "salsicha", - "saltar", - "salvador", - "sambar", - "samurai", - "sanar", - "sanfona", - "sangue", - "sanidade", - "sapato", - "sarda", - "sargento", - "sarjeta", - "saturar", - "saudade", - "saxofone", - "sazonal", - "secar", - "secular", - "seda", - "sedento", - "sediado", - "sedoso", - "sedutor", - "segmento", - "segredo", - "segundo", - "seiva", - "seleto", - "selvagem", - "semanal", - "semente", - "senador", - "senhor", - "sensual", - "sentado", - "separado", - "sereia", - "seringa", - "serra", - "servo", - "setembro", - "setor", - "sigilo", - "silhueta", - "silicone", - "simetria", - "simpatia", - "simular", - "sinal", - "sincero", - "singular", - "sinopse", - "sintonia", - "sirene", - "siri", - "situado", - "soberano", - "sobra", - "socorro", - "sogro", - "soja", - "solda", - "soletrar", - "solteiro", - "sombrio", - "sonata", - "sondar", - "sonegar", - "sonhador", - "sono", - "soprano", - "soquete", - "sorrir", - "sorteio", - "sossego", - "sotaque", - "soterrar", - "sovado", - "sozinho", - "suavizar", - "subida", - "submerso", - "subsolo", - "subtrair", - "sucata", - "sucesso", - "suco", - "sudeste", - "sufixo", - "sugador", - "sugerir", - "sujeito", - "sulfato", - "sumir", - "suor", - "superior", - "suplicar", - "suposto", - "suprimir", - "surdina", - "surfista", - "surpresa", - "surreal", - "surtir", - "suspiro", - "sustento", - "tabela", - "tablete", - "tabuada", - "tacho", - "tagarela", - "talher", - "talo", - "talvez", - "tamanho", - "tamborim", - "tampa", - "tangente", - "tanto", - "tapar", - "tapioca", - "tardio", - "tarefa", - "tarja", - "tarraxa", - "tatuagem", - "taurino", - "taxativo", - "taxista", - "teatral", - "tecer", - "tecido", - "teclado", - "tedioso", - "teia", - "teimar", - "telefone", - "telhado", - "tempero", - "tenente", - "tensor", - "tentar", - "termal", - "terno", - "terreno", - "tese", - "tesoura", - "testado", - "teto", - "textura", - "texugo", - "tiara", - "tigela", - "tijolo", - "timbrar", - "timidez", - "tingido", - "tinteiro", - "tiragem", - "titular", - "toalha", - "tocha", - "tolerar", - "tolice", - "tomada", - "tomilho", - "tonel", - "tontura", - "topete", - "tora", - "torcido", - "torneio", - "torque", - "torrada", - "torto", - "tostar", - "touca", - "toupeira", - "toxina", - "trabalho", - "tracejar", - "tradutor", - "trafegar", - "trajeto", - "trama", - "trancar", - "trapo", - "traseiro", - "tratador", - "travar", - "treino", - "tremer", - "trepidar", - "trevo", - "triagem", - "tribo", - "triciclo", - "tridente", - "trilogia", - "trindade", - "triplo", - "triturar", - "triunfal", - "trocar", - "trombeta", - "trova", - "trunfo", - "truque", - "tubular", - "tucano", - "tudo", - "tulipa", - "tupi", - "turbo", - "turma", - "turquesa", - "tutelar", - "tutorial", - "uivar", - "umbigo", - "unha", - "unidade", - "uniforme", - "urologia", - "urso", - "urtiga", - "urubu", - "usado", - "usina", - "usufruir", - "vacina", - "vadiar", - "vagaroso", - "vaidoso", - "vala", - "valente", - "validade", - "valores", - "vantagem", - "vaqueiro", - "varanda", - "vareta", - "varrer", - "vascular", - "vasilha", - "vassoura", - "vazar", - "vazio", - "veado", - "vedar", - "vegetar", - "veicular", - "veleiro", - "velhice", - "veludo", - "vencedor", - "vendaval", - "venerar", - "ventre", - "verbal", - "verdade", - "vereador", - "vergonha", - "vermelho", - "verniz", - "versar", - "vertente", - "vespa", - "vestido", - "vetorial", - "viaduto", - "viagem", - "viajar", - "viatura", - "vibrador", - "videira", - "vidraria", - "viela", - "viga", - "vigente", - "vigiar", - "vigorar", - "vilarejo", - "vinco", - "vinheta", - "vinil", - "violeta", - "virada", - "virtude", - "visitar", - "visto", - "vitral", - "viveiro", - "vizinho", - "voador", - "voar", - "vogal", - "volante", - "voleibol", - "voltagem", - "volumoso", - "vontade", - "vulto", - "vuvuzela", - "xadrez", - "xarope", - "xeque", - "xeretar", - "xerife", - "xingar", - "zangado", - "zarpar", - "zebu", - "zelador", - "zombar", - "zoologia", - "zumbido" - ]; - - var require$$10 = [ - "абзац", - "абонент", - "абсурд", - "авангард", - "авария", - "август", - "авиация", - "автор", - "агент", - "агитация", - "агрегат", - "адвокат", - "адмирал", - "адрес", - "азарт", - "азот", - "академия", - "аквариум", - "аксиома", - "акула", - "акцент", - "акция", - "аллея", - "алмаз", - "алтарь", - "альбом", - "альянс", - "амбиция", - "анализ", - "анекдот", - "анкета", - "ансамбль", - "антенна", - "апельсин", - "аппарат", - "аппетит", - "апрель", - "аптека", - "арбуз", - "аргумент", - "аренда", - "арест", - "армия", - "аромат", - "арсенал", - "артерия", - "артист", - "архив", - "аспирант", - "асфальт", - "атака", - "атомный", - "атрибут", - "аукцион", - "афиша", - "аэропорт", - "бабочка", - "бабушка", - "багаж", - "база", - "бактерия", - "баланс", - "балерина", - "балкон", - "бандит", - "банк", - "барабан", - "барон", - "барышня", - "барьер", - "бассейн", - "батарея", - "башмак", - "башня", - "бедный", - "беженец", - "бездна", - "белка", - "белый", - "бензин", - "берег", - "беседа", - "бешеный", - "билет", - "бинокль", - "биржа", - "битва", - "благо", - "блеск", - "близкий", - "блин", - "блок", - "блюдо", - "богатый", - "бодрый", - "боец", - "бокал", - "боковой", - "бокс", - "более", - "болото", - "болтать", - "большой", - "бомба", - "борт", - "борьба", - "босой", - "ботинок", - "бояться", - "брак", - "брать", - "бревно", - "бред", - "бригада", - "бродяга", - "броня", - "бросить", - "брызги", - "брюки", - "брюхо", - "бугор", - "будка", - "будни", - "будущее", - "буква", - "букет", - "бульвар", - "бумага", - "бунт", - "бурный", - "буря", - "бутылка", - "бухта", - "бывший", - "быстро", - "бытовой", - "быть", - "бюджет", - "бюро", - "бюст", - "вагон", - "важный", - "вакцина", - "валенок", - "вальс", - "валюта", - "ванная", - "варенье", - "вариант", - "вблизи", - "вверх", - "вводить", - "вдали", - "вдвое", - "вдова", - "вдоль", - "вдруг", - "ведро", - "ведущий", - "ведьма", - "вежливо", - "везде", - "веко", - "вексель", - "велеть", - "великий", - "венец", - "веник", - "веранда", - "верблюд", - "верить", - "верный", - "версия", - "вертеть", - "верхний", - "вершина", - "весело", - "весна", - "весомый", - "вести", - "весь", - "ветеран", - "ветхий", - "вечер", - "вечно", - "вешалка", - "вещество", - "взамен", - "взгляд", - "вздох", - "взнос", - "взойти", - "взор", - "взрыв", - "взять", - "видеть", - "видимо", - "визг", - "визит", - "вилка", - "вина", - "вирус", - "висок", - "витамин", - "витрина", - "вихрь", - "вишня", - "вкус", - "влага", - "владелец", - "власть", - "влево", - "влияние", - "вложить", - "вместе", - "внешний", - "вникать", - "внимание", - "вновь", - "внук", - "внутри", - "внучка", - "внушать", - "вовлечь", - "вовремя", - "вовсю", - "вода", - "водород", - "водяной", - "воевать", - "возврат", - "возглас", - "воздух", - "возить", - "возле", - "возня", - "возраст", - "война", - "войско", - "вокзал", - "волос", - "волчий", - "вольный", - "воля", - "вообще", - "вопль", - "вопрос", - "ворота", - "восемь", - "восток", - "вплоть", - "вполне", - "вправе", - "впредь", - "впрочем", - "врач", - "вредный", - "время", - "вручить", - "всадник", - "всегда", - "вскоре", - "вскрыть", - "всплеск", - "вспышка", - "встреча", - "всюду", - "всякий", - "второй", - "вход", - "вчера", - "выбор", - "вывод", - "выгнать", - "выдать", - "выехать", - "вызов", - "выйти", - "выкуп", - "вылезти", - "вымыть", - "выпасть", - "выпить", - "выплата", - "выпуск", - "вырасти", - "выручка", - "выслать", - "высокий", - "выставка", - "вышка", - "вязать", - "вялый", - "газета", - "газовый", - "галерея", - "галстук", - "гамма", - "гарантия", - "гармония", - "гарнизон", - "гастроли", - "гвардия", - "гвоздь", - "гектар", - "генерал", - "гений", - "геном", - "геолог", - "герб", - "герой", - "гибкий", - "гигант", - "гимн", - "гипотеза", - "гитара", - "главный", - "глагол", - "гладить", - "глаз", - "глина", - "глоток", - "глубокий", - "глупый", - "глухой", - "глыба", - "глядеть", - "гнев", - "гнездо", - "гнилой", - "годовой", - "голова", - "голубой", - "голый", - "гонорар", - "гордость", - "горизонт", - "горло", - "горный", - "город", - "горшок", - "горький", - "горючее", - "горячий", - "готовый", - "градус", - "грамм", - "граница", - "граф", - "гребень", - "гриб", - "гримаса", - "грозить", - "грохот", - "грош", - "грубый", - "грудь", - "груз", - "грунт", - "группа", - "груша", - "грязный", - "губа", - "гудок", - "гулкий", - "гулять", - "гусеница", - "густо", - "гусь", - "давление", - "давно", - "даже", - "дальний", - "данный", - "дарить", - "датчик", - "дать", - "дача", - "двадцать", - "дважды", - "дверь", - "двигать", - "движение", - "двойной", - "двор", - "дебют", - "девятый", - "дежурный", - "действие", - "декабрь", - "деление", - "дело", - "дельфин", - "день", - "дерево", - "держать", - "дерзкий", - "десять", - "деталь", - "детский", - "дефект", - "дефицит", - "деятель", - "джаз", - "джинсы", - "джунгли", - "диагноз", - "диалог", - "диапазон", - "диван", - "дивизия", - "дивный", - "диета", - "дизайн", - "дикарь", - "дилер", - "динамика", - "диплом", - "директор", - "дитя", - "длинный", - "дневник", - "добрый", - "добыча", - "доверие", - "догадка", - "догнать", - "дождь", - "доклад", - "доктор", - "документ", - "долго", - "должен", - "долина", - "донос", - "дорога", - "досада", - "доска", - "достать", - "досуг", - "доход", - "доцент", - "дощатый", - "драка", - "древний", - "дремать", - "дробный", - "дрова", - "дрожать", - "другой", - "дружба", - "дубовый", - "дуга", - "думать", - "дурной", - "духи", - "душный", - "дуэль", - "дуэт", - "дыра", - "дыхание", - "дюжина", - "дядя", - "едва", - "единый", - "ерунда", - "если", - "ехать", - "жадный", - "жажда", - "жалеть", - "жалоба", - "жанр", - "жареный", - "жаркий", - "жгучий", - "жевать", - "желание", - "желудок", - "жена", - "женщина", - "жертва", - "жест", - "жидкость", - "житель", - "жить", - "жрец", - "жулик", - "журнал", - "жуткий", - "забрать", - "забыть", - "завести", - "завод", - "завтра", - "загадка", - "загнать", - "заговор", - "задача", - "задеть", - "задний", - "задолго", - "заехать", - "заказ", - "закон", - "закрыть", - "закуска", - "залезть", - "залить", - "залп", - "замок", - "замуж", - "замысел", - "занавес", - "заново", - "занять", - "заодно", - "запись", - "запрос", - "запуск", - "запястье", - "заранее", - "заросль", - "зарплата", - "заря", - "засада", - "заслуга", - "заснуть", - "застать", - "затвор", - "затеять", - "затрата", - "затылок", - "захват", - "зачем", - "защита", - "заявить", - "заяц", - "звезда", - "звено", - "звонить", - "здесь", - "зелень", - "земля", - "зеркало", - "зерно", - "зима", - "злой", - "змея", - "знамя", - "знание", - "значит", - "золотой", - "зона", - "зонтик", - "зоопарк", - "зрачок", - "зрение", - "зритель", - "зубной", - "зубр", - "игла", - "идеал", - "идеолог", - "идея", - "идол", - "идти", - "изба", - "избить", - "избрать", - "избыток", - "извлечь", - "извне", - "изгиб", - "изгнать", - "издание", - "изделие", - "изнутри", - "изобилие", - "изоляция", - "изредка", - "изрядно", - "изучение", - "изъять", - "изящный", - "икона", - "икра", - "иллюзия", - "именно", - "иметь", - "имидж", - "империя", - "импульс", - "иначе", - "инвалид", - "индекс", - "индивид", - "инерция", - "инженер", - "иногда", - "иной", - "институт", - "интерес", - "интрига", - "интуиция", - "инфаркт", - "инцидент", - "ирония", - "искать", - "испуг", - "история", - "итог", - "июнь", - "кабель", - "кабинет", - "каблук", - "кавалер", - "кадр", - "каждый", - "кажется", - "казино", - "калитка", - "камень", - "камин", - "канал", - "кандидат", - "каникулы", - "канон", - "капитан", - "капля", - "капот", - "капуста", - "карандаш", - "карета", - "каркас", - "карман", - "картина", - "карьера", - "каска", - "кассета", - "кастрюля", - "каталог", - "катер", - "каток", - "катушка", - "кафедра", - "качество", - "каша", - "кашлять", - "каюта", - "квадрат", - "квартира", - "квота", - "кепка", - "кивнуть", - "километр", - "кино", - "киоск", - "кипяток", - "кирпич", - "кислота", - "кисть", - "клавиша", - "клапан", - "класс", - "клей", - "клетка", - "клиент", - "климат", - "клиника", - "кличка", - "клоун", - "клочок", - "клуб", - "клумба", - "ключ", - "книга", - "кнопка", - "кнут", - "княгиня", - "князь", - "кобура", - "когда", - "кодекс", - "кожа", - "коктейль", - "колено", - "коллега", - "колонна", - "колпак", - "кольцо", - "колючий", - "коляска", - "команда", - "комедия", - "комиссия", - "коммуна", - "комната", - "комок", - "компания", - "комфорт", - "конвейер", - "конгресс", - "конечно", - "конкурс", - "контроль", - "концерт", - "конь", - "конюшня", - "копать", - "копейка", - "копыто", - "корабль", - "корень", - "корзина", - "коридор", - "кормить", - "корпус", - "космос", - "костюм", - "косяк", - "котел", - "котлета", - "который", - "коттедж", - "кофе", - "кофта", - "кошка", - "кража", - "край", - "красный", - "краткий", - "кредит", - "крем", - "крепкий", - "кресло", - "кривой", - "кризис", - "кристалл", - "критерий", - "кричать", - "кровь", - "крокодил", - "кролик", - "кроме", - "крона", - "круг", - "кружка", - "крупный", - "крутой", - "крушение", - "крыло", - "крыша", - "крючок", - "кстати", - "кубик", - "куда", - "кузов", - "кукла", - "кулак", - "кулиса", - "культура", - "кумир", - "купе", - "купить", - "купол", - "купюра", - "курица", - "курорт", - "курс", - "куртка", - "кусок", - "куст", - "кухня", - "кушать", - "лабиринт", - "лавка", - "лагерь", - "ладно", - "ладонь", - "лапа", - "лауреат", - "лгать", - "лебедь", - "левый", - "легенда", - "легкий", - "ледяной", - "лежать", - "лезвие", - "лезть", - "лекция", - "ленивый", - "лента", - "лепесток", - "лесной", - "лестница", - "лететь", - "лето", - "лечить", - "лига", - "лидер", - "лиловый", - "лимон", - "линия", - "липкий", - "лист", - "литр", - "лихой", - "лицо", - "лишить", - "лишний", - "ловить", - "логика", - "лодка", - "ложь", - "лозунг", - "локоть", - "лопата", - "лошадь", - "лукавый", - "луна", - "лучший", - "лысый", - "льгота", - "любить", - "любой", - "людской", - "люстра", - "лютый", - "лягушка", - "магазин", - "магия", - "майор", - "майский", - "максимум", - "макушка", - "мало", - "мальчик", - "мама", - "манера", - "марка", - "март", - "маршрут", - "масса", - "мастер", - "масштаб", - "материал", - "матч", - "махать", - "машина", - "маяк", - "мебель", - "медаль", - "медведь", - "медицина", - "медь", - "между", - "мелкий", - "мелочь", - "мемуары", - "меньше", - "меню", - "менять", - "мера", - "мерцать", - "место", - "месяц", - "металл", - "метод", - "метр", - "механизм", - "меховой", - "мечтать", - "мешать", - "мешок", - "миграция", - "микрофон", - "милиция", - "миллион", - "милость", - "миля", - "мимо", - "минерал", - "министр", - "минута", - "мирный", - "миска", - "миссия", - "митинг", - "мишень", - "младший", - "мнение", - "мнимый", - "много", - "могучий", - "модель", - "может", - "мозг", - "мокрый", - "молекула", - "молния", - "молодой", - "молчать", - "момент", - "монета", - "монитор", - "монолог", - "монстр", - "монтаж", - "мораль", - "море", - "морковь", - "мороз", - "морщина", - "мостовая", - "мотать", - "мотив", - "мотор", - "мохнатый", - "мрамор", - "мрачный", - "мстить", - "мудрый", - "мужество", - "мужчина", - "музей", - "музыка", - "мундир", - "муравей", - "мусор", - "муха", - "мчаться", - "мысль", - "мыться", - "мышца", - "мышь", - "мюзикл", - "мягкий", - "мясо", - "набор", - "навык", - "наглый", - "нагрузка", - "надежда", - "надзор", - "надо", - "наедине", - "назад", - "название", - "назло", - "наивный", - "найти", - "наконец", - "налево", - "наличие", - "налог", - "намерен", - "нанести", - "напасть", - "например", - "народ", - "наследие", - "натура", - "наука", - "наутро", - "начать", - "небо", - "неважно", - "невеста", - "негодяй", - "недавно", - "неделя", - "недолго", - "недра", - "недуг", - "нежный", - "незачем", - "некто", - "нелепый", - "неловко", - "нельзя", - "немало", - "немой", - "неплохо", - "нервный", - "нередко", - "нестись", - "неудача", - "неужели", - "нефть", - "неясный", - "нигде", - "низкий", - "никакой", - "никогда", - "никуда", - "ничто", - "ничуть", - "ниша", - "нищий", - "новость", - "новый", - "нога", - "ноготь", - "ножницы", - "ноздря", - "номер", - "носить", - "носок", - "ночь", - "ноябрь", - "нрав", - "нуль", - "нынче", - "нырять", - "нюанс", - "няня", - "обаяние", - "обед", - "обезьяна", - "обещать", - "обжечь", - "обзор", - "обилие", - "обитать", - "область", - "облик", - "обложка", - "обмен", - "обморок", - "обожать", - "обои", - "оболочка", - "оборона", - "обочина", - "образ", - "обрести", - "обрыв", - "обувь", - "обучение", - "обход", - "общество", - "общий", - "объект", - "обыск", - "обычно", - "обязать", - "овощи", - "овраг", - "овца", - "оговорка", - "ограда", - "огурец", - "одежда", - "одеяло", - "один", - "однако", - "одолеть", - "ожидать", - "озеро", - "океан", - "окно", - "около", - "окоп", - "окраина", - "октябрь", - "опасный", - "опека", - "операция", - "описание", - "оплата", - "опора", - "оппонент", - "оптимизм", - "оптовый", - "опухоль", - "опыт", - "оратор", - "орбита", - "орган", - "орден", - "орел", - "оригинал", - "ориентир", - "оркестр", - "оружие", - "осенний", - "осколок", - "осмотр", - "остров", - "отбор", - "отбыть", - "отвлечь", - "отдать", - "отдел", - "отдых", - "отель", - "отец", - "отзыв", - "отказ", - "отклик", - "открыть", - "откуда", - "отличие", - "отныне", - "отойти", - "отпуск", - "отрасль", - "отросток", - "отрывок", - "отряд", - "отсек", - "отставка", - "отсюда", - "оттенок", - "оттого", - "отчего", - "отъезд", - "офис", - "офицер", - "охота", - "охрана", - "оценка", - "очаг", - "очень", - "очередь", - "очищать", - "ошибка", - "ощущение", - "павильон", - "падать", - "пазуха", - "пакет", - "палата", - "палец", - "палуба", - "пальто", - "память", - "панель", - "паника", - "пара", - "парень", - "пароход", - "партия", - "парус", - "паспорт", - "пассажир", - "пастух", - "патент", - "патрон", - "пауза", - "паук", - "паутина", - "пафос", - "пахнуть", - "пациент", - "пачка", - "певец", - "педагог", - "пейзаж", - "пенсия", - "пепел", - "первый", - "перед", - "период", - "перо", - "перрон", - "персонаж", - "перчатка", - "песня", - "песок", - "петля", - "петрушка", - "петух", - "пехота", - "печать", - "печень", - "пешком", - "пещера", - "пианист", - "пиджак", - "пилот", - "пионер", - "пирамида", - "пирожок", - "письмо", - "пища", - "плавание", - "плакать", - "пламя", - "план", - "пласт", - "платить", - "пленный", - "плечо", - "плита", - "плод", - "плоский", - "плотный", - "плохой", - "площадь", - "плыть", - "плюс", - "пляж", - "плясать", - "победа", - "повар", - "повод", - "повсюду", - "повязка", - "погода", - "погреб", - "подбор", - "подвиг", - "подделка", - "поджать", - "поднос", - "подпись", - "подруга", - "подход", - "подчас", - "подъезд", - "поединок", - "поезд", - "поесть", - "поехать", - "пожалуй", - "пожилой", - "позади", - "позвать", - "поздний", - "позиция", - "позор", - "поиск", - "поймать", - "пойти", - "поклон", - "покой", - "покрыть", - "полдень", - "полезный", - "ползти", - "полк", - "полный", - "половина", - "полтора", - "польза", - "поляна", - "помидор", - "помнить", - "помощь", - "попасть", - "поперек", - "поплыть", - "пополам", - "поправка", - "попугай", - "попытка", - "порог", - "портрет", - "порция", - "порыв", - "порядок", - "после", - "посол", - "посреди", - "постель", - "посуда", - "потом", - "похвала", - "похожий", - "поцелуй", - "почва", - "почему", - "пошлина", - "поэма", - "поэтому", - "право", - "праздник", - "практика", - "прах", - "преграда", - "предмет", - "прежде", - "прелесть", - "премия", - "препарат", - "пресса", - "прибыть", - "прижать", - "прийти", - "приказ", - "прилавок", - "пример", - "принять", - "природа", - "притом", - "прихожая", - "прицел", - "причина", - "приют", - "прогноз", - "продукт", - "проект", - "прожить", - "прокат", - "промысел", - "пропуск", - "просто", - "против", - "профиль", - "процесс", - "прочий", - "прошлый", - "прощать", - "пружина", - "прут", - "прыжок", - "прямой", - "птица", - "публика", - "пугать", - "пуговица", - "пузырь", - "пульт", - "пуля", - "пункт", - "пускать", - "пустой", - "путь", - "пухлый", - "пучок", - "пушистый", - "пушка", - "пчела", - "пшеница", - "пылать", - "пыль", - "пышный", - "пьеса", - "пятка", - "пятно", - "пятый", - "пятьсот", - "работа", - "равнина", - "ради", - "радость", - "радуга", - "разбить", - "развитие", - "разговор", - "раздел", - "различие", - "размер", - "разный", - "разрыв", - "разум", - "район", - "ракета", - "раковина", - "рамка", - "рано", - "рапорт", - "распад", - "рассказ", - "расти", - "расход", - "расцвет", - "рация", - "рвануть", - "рваться", - "реакция", - "ребро", - "реветь", - "редактор", - "редкий", - "реестр", - "режим", - "резать", - "резерв", - "резина", - "резко", - "резной", - "рейс", - "реклама", - "рекорд", - "религия", - "рельс", - "ремень", - "ремонт", - "реплика", - "репортаж", - "ресница", - "ресторан", - "реформа", - "рецепт", - "речь", - "решение", - "ржавый", - "риск", - "рисунок", - "ритуал", - "рифма", - "робко", - "робот", - "ровесник", - "ровно", - "родной", - "рождение", - "роза", - "розовый", - "розыск", - "роль", - "роман", - "роскошь", - "роспись", - "рост", - "рубашка", - "рубеж", - "рубить", - "рубрика", - "рудник", - "рука", - "рукопись", - "румяный", - "русло", - "рухнуть", - "ручей", - "ручной", - "рыба", - "рыжий", - "рынок", - "рыхлый", - "рыцарь", - "рычаг", - "рюкзак", - "рядом", - "садовый", - "сажать", - "салон", - "салфетка", - "салют", - "самец", - "самовар", - "самый", - "сани", - "санкция", - "сапог", - "сарай", - "сатира", - "сахар", - "сбить", - "сбоку", - "сборная", - "сбыт", - "свадьба", - "свалка", - "сварить", - "свежий", - "сверху", - "свет", - "свеча", - "свинья", - "свист", - "свитер", - "свобода", - "сводка", - "свой", - "свыше", - "связь", - "сдаться", - "сделать", - "сегмент", - "сегодня", - "седло", - "седой", - "седьмой", - "сезон", - "сейф", - "сейчас", - "секрет", - "сектор", - "секунда", - "семинар", - "семья", - "сенатор", - "сено", - "сенсация", - "сентябрь", - "сервис", - "сердце", - "середина", - "сержант", - "серия", - "серый", - "сессия", - "сесть", - "сетевой", - "сжатый", - "сжечь", - "сзади", - "сигнал", - "сиденье", - "сила", - "силуэт", - "сильный", - "символ", - "симпатия", - "симфония", - "синий", - "синтез", - "синяк", - "сирень", - "система", - "ситуация", - "сияние", - "сказать", - "скала", - "скамейка", - "скандал", - "скатерть", - "скачок", - "скважина", - "сквер", - "сквозь", - "скелет", - "скидка", - "склад", - "сколько", - "скорый", - "скосить", - "скот", - "скрипка", - "скудный", - "скука", - "слабый", - "слава", - "сладкий", - "слегка", - "след", - "слеза", - "слепой", - "слесарь", - "слишком", - "слово", - "слог", - "сложный", - "сломать", - "служба", - "слух", - "случай", - "слышать", - "слюна", - "смежный", - "смелый", - "сменить", - "смесь", - "сметана", - "смех", - "смола", - "смуглый", - "смутный", - "смущать", - "смысл", - "снайпер", - "снаряд", - "сначала", - "снег", - "снизу", - "сниться", - "сно��а", - "снять", - "собака", - "соблазн", - "собрание", - "событие", - "совесть", - "совсем", - "согласие", - "создать", - "сознание", - "созреть", - "сойтись", - "сокол", - "солдат", - "соленый", - "солнце", - "солома", - "сомнение", - "сонный", - "соперник", - "соратник", - "сорвать", - "сосед", - "сосиска", - "состав", - "сотня", - "соус", - "союз", - "спад", - "спальня", - "спасти", - "спектр", - "сперва", - "спешить", - "спина", - "спирт", - "список", - "спичка", - "сплав", - "спонсор", - "спор", - "способ", - "справка", - "спустя", - "спутник", - "сразу", - "средство", - "срок", - "срыв", - "ссора", - "ссылка", - "ставить", - "стадия", - "стакан", - "станция", - "старый", - "стая", - "стебель", - "стекло", - "стена", - "степень", - "стереть", - "стиль", - "стимул", - "стирать", - "стихи", - "стоить", - "стойка", - "стол", - "стонать", - "стопа", - "сторона", - "стоянка", - "страна", - "стричь", - "строгий", - "струя", - "студент", - "стук", - "ступня", - "стыдно", - "суббота", - "субъект", - "сувенир", - "сугроб", - "сугубо", - "судить", - "судно", - "судьба", - "суета", - "суметь", - "сумма", - "сумрак", - "сундук", - "супруг", - "суровый", - "сутки", - "сухой", - "суша", - "существо", - "сфера", - "схема", - "схожий", - "сценарий", - "счастье", - "считать", - "съезд", - "сыграть", - "сырой", - "сытый", - "сыщик", - "сюда", - "сюжет", - "сюрприз", - "тайна", - "также", - "такой", - "такси", - "тактика", - "талия", - "таможня", - "танец", - "таракан", - "тарелка", - "тариф", - "тащить", - "таять", - "тварь", - "театр", - "тезис", - "текст", - "текущий", - "телефон", - "тема", - "темнота", - "теневой", - "теннис", - "теория", - "теперь", - "тепло", - "терапия", - "терзать", - "термин", - "терпеть", - "терраса", - "терять", - "тесный", - "тетрадь", - "техника", - "течение", - "тигр", - "типовой", - "тираж", - "титул", - "тихий", - "ткань", - "товарищ", - "тоже", - "толпа", - "толстый", - "толчок", - "толщина", - "только", - "тонкий", - "тонна", - "топить", - "топор", - "торговля", - "тормоз", - "торчать", - "тотчас", - "точка", - "точно", - "тощий", - "трава", - "традиция", - "трактор", - "трамвай", - "траншея", - "трасса", - "тревога", - "трезвый", - "тренер", - "трепет", - "треск", - "третий", - "трещина", - "трибуна", - "тридцать", - "триста", - "триумф", - "трогать", - "тройка", - "тронуть", - "тропа", - "тротуар", - "трубка", - "труд", - "трюк", - "тряпка", - "туго", - "туловище", - "туман", - "тумбочка", - "тундра", - "тупик", - "турист", - "турнир", - "тусклый", - "туфля", - "туча", - "тысяча", - "тяга", - "тяжело", - "убежать", - "убогий", - "уборка", - "уважение", - "увезти", - "уволить", - "угадать", - "угол", - "угощать", - "угроза", - "угрюмый", - "удар", - "удачный", - "уделять", - "удивить", - "удобный", - "удочка", - "уезжать", - "ужин", - "узел", - "узкий", - "уйти", - "указание", - "уклон", - "украсть", - "укусить", - "улетать", - "улица", - "улыбка", - "умело", - "умение", - "умный", - "умолять", - "унести", - "унижать", - "унылый", - "упаковка", - "упасть", - "упорно", - "упрек", - "урна", - "уровень", - "урожай", - "уронить", - "усадьба", - "усатый", - "усвоить", - "усилие", - "условие", - "услуга", - "усмешка", - "успеть", - "устав", - "устоять", - "утечка", - "утешать", - "утро", - "уцелеть", - "участие", - "ученик", - "учесть", - "ущелье", - "ущерб", - "уютный", - "фабрика", - "фаворит", - "факел", - "факт", - "фамилия", - "фантазия", - "фасад", - "февраль", - "феномен", - "фермер", - "фигура", - "физика", - "филиал", - "философ", - "фильм", - "финал", - "флаг", - "флот", - "фойе", - "фокус", - "фонарь", - "фонд", - "фонтан", - "форма", - "форум", - "фото", - "фрагмент", - "фраза", - "фракция", - "фронт", - "фрукт", - "функция", - "фуражка", - "футбол", - "футляр", - "халат", - "хаос", - "характер", - "хата", - "хвалить", - "хватать", - "хвойный", - "хвост", - "химия", - "хирург", - "хитрый", - "хищник", - "хлеб", - "хлынуть", - "хмурый", - "ходить", - "хозяин", - "хоккей", - "холм", - "холст", - "хорошо", - "хотеть", - "храбрый", - "храм", - "хранить", - "хребет", - "хрен", - "хрипло", - "хроника", - "хрупкий", - "художник", - "худший", - "хулиган", - "хутор", - "царь", - "цветок", - "целевой", - "целиком", - "целое", - "цель", - "цензура", - "ценить", - "центр", - "цепной", - "цикл", - "цилиндр", - "цирк", - "цитата", - "цифра", - "чайник", - "часы", - "чашка", - "человек", - "челюсть", - "чемодан", - "чемпион", - "чепуха", - "червь", - "чердак", - "через", - "чернила", - "черта", - "чеснок", - "честно", - "четверть", - "четыре", - "число", - "чистый", - "читатель", - "чтение", - "чтобы", - "чувство", - "чудак", - "чудный", - "чудо", - "чужой", - "чулок", - "чума", - "чушь", - "чуять", - "шагать", - "шанс", - "шапка", - "шарик", - "шарф", - "шахматы", - "шашлык", - "шедевр", - "шептать", - "шерсть", - "шестой", - "шинель", - "ширина", - "шишка", - "шкаф", - "школа", - "шкура", - "шланг", - "шлем", - "шнур", - "шоколад", - "шорох", - "шоссе", - "шпион", - "шприц", - "штаб", - "штамм", - "штаны", - "штатный", - "штора", - "штраф", - "штурм", - "штык", - "шумно", - "шуршать", - "шутить", - "шутка", - "щедрый", - "щека", - "щенок", - "экзамен", - "экипаж", - "экономия", - "экран", - "эксперт", - "элемент", - "элитный", - "эмоция", - "энергия", - "эпизод", - "эпоха", - "эскиз", - "эстрада", - "этап", - "этика", - "этот", - "эфир", - "эффект", - "эшелон", - "юбилей", - "юбка", - "южный", - "юмор", - "юность", - "юрист", - "юстиция", - "яблоко", - "явление", - "ягода", - "ядро", - "язык", - "яйцо", - "якобы", - "якорь", - "январь", - "яркий", - "ярмарка", - "ярость", - "ясный", - "яхта", - "ячейка", - "ящик" - ]; - - var require$$11 = [ - "ábaco", - "abdomen", - "abeja", - "abierto", - "abogado", - "abono", - "aborto", - "abrazo", - "abrir", - "abuelo", - "abuso", - "acabar", - "academia", - "acceso", - "acción", - "aceite", - "acelga", - "acento", - "aceptar", - "ácido", - "aclarar", - "acné", - "acoger", - "acoso", - "activo", - "acto", - "actriz", - "actuar", - "acudir", - "acuerdo", - "acusar", - "adicto", - "admitir", - "adoptar", - "adorno", - "aduana", - "adulto", - "aéreo", - "afectar", - "afición", - "afinar", - "afirmar", - "ágil", - "agitar", - "agonía", - "agosto", - "agotar", - "agregar", - "agrio", - "agua", - "agudo", - "águila", - "aguja", - "ahogo", - "ahorro", - "aire", - "aislar", - "ajedrez", - "ajeno", - "ajuste", - "alacrán", - "alambre", - "alarma", - "alba", - "álbum", - "alcalde", - "aldea", - "alegre", - "alejar", - "alerta", - "aleta", - "alfiler", - "alga", - "algodón", - "aliado", - "aliento", - "alivio", - "alma", - "almeja", - "almíbar", - "altar", - "alteza", - "altivo", - "alto", - "altura", - "alumno", - "alzar", - "amable", - "amante", - "amapola", - "amargo", - "amasar", - "ámbar", - "ámbito", - "ameno", - "amigo", - "amistad", - "amor", - "amparo", - "amplio", - "ancho", - "anciano", - "ancla", - "andar", - "andén", - "anemia", - "ángulo", - "anillo", - "ánimo", - "anís", - "anotar", - "antena", - "antiguo", - "antojo", - "anual", - "anular", - "anuncio", - "añadir", - "añejo", - "año", - "apagar", - "aparato", - "apetito", - "apio", - "aplicar", - "apodo", - "aporte", - "apoyo", - "aprender", - "aprobar", - "apuesta", - "apuro", - "arado", - "araña", - "arar", - "árbitro", - "árbol", - "arbusto", - "archivo", - "arco", - "arder", - "ardilla", - "arduo", - "área", - "árido", - "aries", - "armonía", - "arnés", - "aroma", - "arpa", - "arpón", - "arreglo", - "arroz", - "arruga", - "arte", - "artista", - "asa", - "asado", - "asalto", - "ascenso", - "asegurar", - "aseo", - "asesor", - "asiento", - "asilo", - "asistir", - "asno", - "asombro", - "áspero", - "astilla", - "astro", - "astuto", - "asumir", - "asunto", - "atajo", - "ataque", - "atar", - "atento", - "ateo", - "ático", - "atleta", - "átomo", - "atraer", - "atroz", - "atún", - "audaz", - "audio", - "auge", - "aula", - "aumento", - "ausente", - "autor", - "aval", - "avance", - "avaro", - "ave", - "avellana", - "avena", - "avestruz", - "avión", - "aviso", - "ayer", - "ayuda", - "ayuno", - "azafrán", - "azar", - "azote", - "azúcar", - "azufre", - "azul", - "baba", - "babor", - "bache", - "bahía", - "baile", - "bajar", - "balanza", - "balcón", - "balde", - "bambú", - "banco", - "banda", - "baño", - "barba", - "barco", - "barniz", - "barro", - "báscula", - "bastón", - "basura", - "batalla", - "batería", - "batir", - "batuta", - "baúl", - "bazar", - "bebé", - "bebida", - "bello", - "besar", - "beso", - "bestia", - "bicho", - "bien", - "bingo", - "blanco", - "bloque", - "blusa", - "boa", - "bobina", - "bobo", - "boca", - "bocina", - "boda", - "bodega", - "boina", - "bola", - "bolero", - "bolsa", - "bomba", - "bondad", - "bonito", - "bono", - "bonsái", - "borde", - "borrar", - "bosque", - "bote", - "botín", - "bóveda", - "bozal", - "bravo", - "brazo", - "brecha", - "breve", - "brillo", - "brinco", - "brisa", - "broca", - "broma", - "bronce", - "brote", - "bruja", - "brusco", - "bruto", - "buceo", - "bucle", - "bueno", - "buey", - "bufanda", - "bufón", - "búho", - "buitre", - "bulto", - "burbuja", - "burla", - "burro", - "buscar", - "butaca", - "buzón", - "caballo", - "cabeza", - "cabina", - "cabra", - "cacao", - "cadáver", - "cadena", - "caer", - "café", - "caída", - "caimán", - "caja", - "cajón", - "cal", - "calamar", - "calcio", - "caldo", - "calidad", - "calle", - "calma", - "calor", - "calvo", - "cama", - "cambio", - "camello", - "camino", - "campo", - "cáncer", - "candil", - "canela", - "canguro", - "canica", - "canto", - "caña", - "cañón", - "caoba", - "caos", - "capaz", - "capitán", - "capote", - "captar", - "capucha", - "cara", - "carbón", - "cárcel", - "careta", - "carga", - "cariño", - "carne", - "carpeta", - "carro", - "carta", - "casa", - "casco", - "casero", - "caspa", - "castor", - "catorce", - "catre", - "caudal", - "causa", - "cazo", - "cebolla", - "ceder", - "cedro", - "celda", - "célebre", - "celoso", - "célula", - "cemento", - "ceniza", - "centro", - "cerca", - "cerdo", - "cereza", - "cero", - "cerrar", - "certeza", - "césped", - "cetro", - "chacal", - "chaleco", - "champú", - "chancla", - "chapa", - "charla", - "chico", - "chiste", - "chivo", - "choque", - "choza", - "chuleta", - "chupar", - "ciclón", - "ciego", - "cielo", - "cien", - "cierto", - "cifra", - "cigarro", - "cima", - "cinco", - "cine", - "cinta", - "ciprés", - "circo", - "ciruela", - "cisne", - "cita", - "ciudad", - "clamor", - "clan", - "claro", - "clase", - "clave", - "cliente", - "clima", - "clínica", - "cobre", - "cocción", - "cochino", - "cocina", - "coco", - "código", - "codo", - "cofre", - "coger", - "cohete", - "cojín", - "cojo", - "cola", - "colcha", - "colegio", - "colgar", - "colina", - "collar", - "colmo", - "columna", - "combate", - "comer", - "comida", - "cómodo", - "compra", - "conde", - "conejo", - "conga", - "conocer", - "consejo", - "contar", - "copa", - "copia", - "corazón", - "corbata", - "corcho", - "cordón", - "corona", - "correr", - "coser", - "cosmos", - "costa", - "cráneo", - "cráter", - "crear", - "crecer", - "creído", - "crema", - "cría", - "crimen", - "cripta", - "crisis", - "cromo", - "crónica", - "croqueta", - "crudo", - "cruz", - "cuadro", - "cuarto", - "cuatro", - "cubo", - "cubrir", - "cuchara", - "cuello", - "cuento", - "cuerda", - "cuesta", - "cueva", - "cuidar", - "culebra", - "culpa", - "culto", - "cumbre", - "cumplir", - "cuna", - "cuneta", - "cuota", - "cupón", - "cúpula", - "curar", - "curioso", - "curso", - "curva", - "cutis", - "dama", - "danza", - "dar", - "dardo", - "dátil", - "deber", - "débil", - "década", - "decir", - "dedo", - "defensa", - "definir", - "dejar", - "delfín", - "delgado", - "delito", - "demora", - "denso", - "dental", - "deporte", - "derecho", - "derrota", - "desayuno", - "deseo", - "desfile", - "desnudo", - "destino", - "desvío", - "detalle", - "detener", - "deuda", - "día", - "diablo", - "diadema", - "diamante", - "diana", - "diario", - "dibujo", - "dictar", - "diente", - "dieta", - "diez", - "difícil", - "digno", - "dilema", - "diluir", - "dinero", - "directo", - "dirigir", - "disco", - "diseño", - "disfraz", - "diva", - "divino", - "doble", - "doce", - "dolor", - "domingo", - "don", - "donar", - "dorado", - "dormir", - "dorso", - "dos", - "dosis", - "dragón", - "droga", - "ducha", - "duda", - "duelo", - "dueño", - "dulce", - "dúo", - "duque", - "durar", - "dureza", - "duro", - "ébano", - "ebrio", - "echar", - "eco", - "ecuador", - "edad", - "edición", - "edificio", - "editor", - "educar", - "efecto", - "eficaz", - "eje", - "ejemplo", - "elefante", - "elegir", - "elemento", - "elevar", - "elipse", - "élite", - "elixir", - "elogio", - "eludir", - "embudo", - "emitir", - "emoción", - "empate", - "empeño", - "empleo", - "empresa", - "enano", - "encargo", - "enchufe", - "encía", - "enemigo", - "enero", - "enfado", - "enfermo", - "engaño", - "enigma", - "enlace", - "enorme", - "enredo", - "ensayo", - "enseñar", - "entero", - "entrar", - "envase", - "envío", - "época", - "equipo", - "erizo", - "escala", - "escena", - "escolar", - "escribir", - "escudo", - "esencia", - "esfera", - "esfuerzo", - "espada", - "espejo", - "espía", - "esposa", - "espuma", - "esquí", - "estar", - "este", - "estilo", - "estufa", - "etapa", - "eterno", - "ética", - "etnia", - "evadir", - "evaluar", - "evento", - "evitar", - "exacto", - "examen", - "exceso", - "excusa", - "exento", - "exigir", - "exilio", - "existir", - "éxito", - "experto", - "explicar", - "exponer", - "extremo", - "fábrica", - "fábula", - "fachada", - "fácil", - "factor", - "faena", - "faja", - "falda", - "fallo", - "falso", - "faltar", - "fama", - "familia", - "famoso", - "faraón", - "farmacia", - "farol", - "farsa", - "fase", - "fatiga", - "fauna", - "favor", - "fax", - "febrero", - "fecha", - "feliz", - "feo", - "feria", - "feroz", - "fértil", - "fervor", - "festín", - "fiable", - "fianza", - "fiar", - "fibra", - "ficción", - "ficha", - "fideo", - "fiebre", - "fiel", - "fiera", - "fiesta", - "figura", - "fijar", - "fijo", - "fila", - "filete", - "filial", - "filtro", - "fin", - "finca", - "fingir", - "finito", - "firma", - "flaco", - "flauta", - "flecha", - "flor", - "flota", - "fluir", - "flujo", - "flúor", - "fobia", - "foca", - "fogata", - "fogón", - "folio", - "folleto", - "fondo", - "forma", - "forro", - "fortuna", - "forzar", - "fosa", - "foto", - "fracaso", - "frágil", - "franja", - "frase", - "fraude", - "freír", - "freno", - "fresa", - "frío", - "frito", - "fruta", - "fuego", - "fuente", - "fuerza", - "fuga", - "fumar", - "función", - "funda", - "furgón", - "furia", - "fusil", - "fútbol", - "futuro", - "gacela", - "gafas", - "gaita", - "gajo", - "gala", - "galería", - "gallo", - "gamba", - "ganar", - "gancho", - "ganga", - "ganso", - "garaje", - "garza", - "gasolina", - "gastar", - "gato", - "gavilán", - "gemelo", - "gemir", - "gen", - "género", - "genio", - "gente", - "geranio", - "gerente", - "germen", - "gesto", - "gigante", - "gimnasio", - "girar", - "giro", - "glaciar", - "globo", - "gloria", - "gol", - "golfo", - "goloso", - "golpe", - "goma", - "gordo", - "gorila", - "gorra", - "gota", - "goteo", - "gozar", - "grada", - "gráfico", - "grano", - "grasa", - "gratis", - "grave", - "grieta", - "grillo", - "gripe", - "gris", - "grito", - "grosor", - "grúa", - "grueso", - "grumo", - "grupo", - "guante", - "guapo", - "guardia", - "guerra", - "guía", - "guiño", - "guion", - "guiso", - "guitarra", - "gusano", - "gustar", - "haber", - "hábil", - "hablar", - "hacer", - "hacha", - "hada", - "hallar", - "hamaca", - "harina", - "haz", - "hazaña", - "hebilla", - "hebra", - "hecho", - "helado", - "helio", - "hembra", - "herir", - "hermano", - "héroe", - "hervir", - "hielo", - "hierro", - "hígado", - "higiene", - "hijo", - "himno", - "historia", - "hocico", - "hogar", - "hoguera", - "hoja", - "hombre", - "hongo", - "honor", - "honra", - "hora", - "hormiga", - "horno", - "hostil", - "hoyo", - "hueco", - "huelga", - "huerta", - "hueso", - "huevo", - "huida", - "huir", - "humano", - "húmedo", - "humilde", - "humo", - "hundir", - "huracán", - "hurto", - "icono", - "ideal", - "idioma", - "ídolo", - "iglesia", - "iglú", - "igual", - "ilegal", - "ilusión", - "imagen", - "imán", - "imitar", - "impar", - "imperio", - "imponer", - "impulso", - "incapaz", - "índice", - "inerte", - "infiel", - "informe", - "ingenio", - "inicio", - "inmenso", - "inmune", - "innato", - "insecto", - "instante", - "interés", - "íntimo", - "intuir", - "inútil", - "invierno", - "ira", - "iris", - "ironía", - "isla", - "islote", - "jabalí", - "jabón", - "jamón", - "jarabe", - "jardín", - "jarra", - "jaula", - "jazmín", - "jefe", - "jeringa", - "jinete", - "jornada", - "joroba", - "joven", - "joya", - "juerga", - "jueves", - "juez", - "jugador", - "jugo", - "juguete", - "juicio", - "junco", - "jungla", - "junio", - "juntar", - "júpiter", - "jurar", - "justo", - "juvenil", - "juzgar", - "kilo", - "koala", - "labio", - "lacio", - "lacra", - "lado", - "ladrón", - "lagarto", - "lágrima", - "laguna", - "laico", - "lamer", - "lámina", - "lámpara", - "lana", - "lancha", - "langosta", - "lanza", - "lápiz", - "largo", - "larva", - "lástima", - "lata", - "látex", - "latir", - "laurel", - "lavar", - "lazo", - "leal", - "lección", - "leche", - "lector", - "leer", - "legión", - "legumbre", - "lejano", - "lengua", - "lento", - "leña", - "león", - "leopardo", - "lesión", - "letal", - "letra", - "leve", - "leyenda", - "libertad", - "libro", - "licor", - "líder", - "lidiar", - "lienzo", - "liga", - "ligero", - "lima", - "límite", - "limón", - "limpio", - "lince", - "lindo", - "línea", - "lingote", - "lino", - "linterna", - "líquido", - "liso", - "lista", - "litera", - "litio", - "litro", - "llaga", - "llama", - "llanto", - "llave", - "llegar", - "llenar", - "llevar", - "llorar", - "llover", - "lluvia", - "lobo", - "loción", - "loco", - "locura", - "lógica", - "logro", - "lombriz", - "lomo", - "lonja", - "lote", - "lucha", - "lucir", - "lugar", - "lujo", - "luna", - "lunes", - "lupa", - "lustro", - "luto", - "luz", - "maceta", - "macho", - "madera", - "madre", - "maduro", - "maestro", - "mafia", - "magia", - "mago", - "maíz", - "maldad", - "maleta", - "malla", - "malo", - "mamá", - "mambo", - "mamut", - "manco", - "mando", - "manejar", - "manga", - "maniquí", - "manjar", - "mano", - "manso", - "manta", - "mañana", - "mapa", - "máquina", - "mar", - "marco", - "marea", - "marfil", - "margen", - "marido", - "mármol", - "marrón", - "martes", - "marzo", - "masa", - "máscara", - "masivo", - "matar", - "materia", - "matiz", - "matriz", - "máximo", - "mayor", - "mazorca", - "mecha", - "medalla", - "medio", - "médula", - "mejilla", - "mejor", - "melena", - "melón", - "memoria", - "menor", - "mensaje", - "mente", - "menú", - "mercado", - "merengue", - "mérito", - "mes", - "mesón", - "meta", - "meter", - "método", - "metro", - "mezcla", - "miedo", - "miel", - "miembro", - "miga", - "mil", - "milagro", - "militar", - "millón", - "mimo", - "mina", - "minero", - "mínimo", - "minuto", - "miope", - "mirar", - "misa", - "miseria", - "misil", - "mismo", - "mitad", - "mito", - "mochila", - "moción", - "moda", - "modelo", - "moho", - "mojar", - "molde", - "moler", - "molino", - "momento", - "momia", - "monarca", - "moneda", - "monja", - "monto", - "moño", - "morada", - "morder", - "moreno", - "morir", - "morro", - "morsa", - "mortal", - "mosca", - "mostrar", - "motivo", - "mover", - "móvil", - "mozo", - "mucho", - "mudar", - "mueble", - "muela", - "muerte", - "muestra", - "mugre", - "mujer", - "mula", - "muleta", - "multa", - "mundo", - "muñeca", - "mural", - "muro", - "músculo", - "museo", - "musgo", - "música", - "muslo", - "nácar", - "nación", - "nadar", - "naipe", - "naranja", - "nariz", - "narrar", - "nasal", - "natal", - "nativo", - "natural", - "náusea", - "naval", - "nave", - "navidad", - "necio", - "néctar", - "negar", - "negocio", - "negro", - "neón", - "nervio", - "neto", - "neutro", - "nevar", - "nevera", - "nicho", - "nido", - "niebla", - "nieto", - "niñez", - "niño", - "nítido", - "nivel", - "nobleza", - "noche", - "nómina", - "noria", - "norma", - "norte", - "nota", - "noticia", - "novato", - "novela", - "novio", - "nube", - "nuca", - "núcleo", - "nudillo", - "nudo", - "nuera", - "nueve", - "nuez", - "nulo", - "número", - "nutria", - "oasis", - "obeso", - "obispo", - "objeto", - "obra", - "obrero", - "observar", - "obtener", - "obvio", - "oca", - "ocaso", - "océano", - "ochenta", - "ocho", - "ocio", - "ocre", - "octavo", - "octubre", - "oculto", - "ocupar", - "ocurrir", - "odiar", - "odio", - "odisea", - "oeste", - "ofensa", - "oferta", - "oficio", - "ofrecer", - "ogro", - "oído", - "oír", - "ojo", - "ola", - "oleada", - "olfato", - "olivo", - "olla", - "olmo", - "olor", - "olvido", - "ombligo", - "onda", - "onza", - "opaco", - "opción", - "ópera", - "opinar", - "oponer", - "optar", - "óptica", - "opuesto", - "oración", - "orador", - "oral", - "órbita", - "orca", - "orden", - "oreja", - "órgano", - "orgía", - "orgullo", - "oriente", - "origen", - "orilla", - "oro", - "orquesta", - "oruga", - "osadía", - "oscuro", - "osezno", - "oso", - "ostra", - "otoño", - "otro", - "oveja", - "óvulo", - "óxido", - "oxígeno", - "oyente", - "ozono", - "pacto", - "padre", - "paella", - "página", - "pago", - "país", - "pájaro", - "palabra", - "palco", - "paleta", - "pálido", - "palma", - "paloma", - "palpar", - "pan", - "panal", - "pánico", - "pantera", - "pañuelo", - "papá", - "papel", - "papilla", - "paquete", - "parar", - "parcela", - "pared", - "parir", - "paro", - "párpado", - "parque", - "párrafo", - "parte", - "pasar", - "paseo", - "pasión", - "paso", - "pasta", - "pata", - "patio", - "patria", - "pausa", - "pauta", - "pavo", - "payaso", - "peatón", - "pecado", - "pecera", - "pecho", - "pedal", - "pedir", - "pegar", - "peine", - "pelar", - "peldaño", - "pelea", - "peligro", - "pellejo", - "pelo", - "peluca", - "pena", - "pensar", - "peñón", - "peón", - "peor", - "pepino", - "pequeño", - "pera", - "percha", - "perder", - "pereza", - "perfil", - "perico", - "perla", - "permiso", - "perro", - "persona", - "pesa", - "pesca", - "pésimo", - "pestaña", - "pétalo", - "petróleo", - "pez", - "pezuña", - "picar", - "pichón", - "pie", - "piedra", - "pierna", - "pieza", - "pijama", - "pilar", - "piloto", - "pimienta", - "pino", - "pintor", - "pinza", - "piña", - "piojo", - "pipa", - "pirata", - "pisar", - "piscina", - "piso", - "pista", - "pitón", - "pizca", - "placa", - "plan", - "plata", - "playa", - "plaza", - "pleito", - "pleno", - "plomo", - "pluma", - "plural", - "pobre", - "poco", - "poder", - "podio", - "poema", - "poesía", - "poeta", - "polen", - "policía", - "pollo", - "polvo", - "pomada", - "pomelo", - "pomo", - "pompa", - "poner", - "porción", - "portal", - "posada", - "poseer", - "posible", - "poste", - "potencia", - "potro", - "pozo", - "prado", - "precoz", - "pregunta", - "premio", - "prensa", - "preso", - "previo", - "primo", - "príncipe", - "prisión", - "privar", - "proa", - "probar", - "proceso", - "producto", - "proeza", - "profesor", - "programa", - "prole", - "promesa", - "pronto", - "propio", - "próximo", - "prueba", - "público", - "puchero", - "pudor", - "pueblo", - "puerta", - "puesto", - "pulga", - "pulir", - "pulmón", - "pulpo", - "pulso", - "puma", - "punto", - "puñal", - "puño", - "pupa", - "pupila", - "puré", - "quedar", - "queja", - "quemar", - "querer", - "queso", - "quieto", - "química", - "quince", - "quitar", - "rábano", - "rabia", - "rabo", - "ración", - "radical", - "raíz", - "rama", - "rampa", - "rancho", - "rango", - "rapaz", - "rápido", - "rapto", - "rasgo", - "raspa", - "rato", - "rayo", - "raza", - "razón", - "reacción", - "realidad", - "rebaño", - "rebote", - "recaer", - "receta", - "rechazo", - "recoger", - "recreo", - "recto", - "recurso", - "red", - "redondo", - "reducir", - "reflejo", - "reforma", - "refrán", - "refugio", - "regalo", - "regir", - "regla", - "regreso", - "rehén", - "reino", - "reír", - "reja", - "relato", - "relevo", - "relieve", - "relleno", - "reloj", - "remar", - "remedio", - "remo", - "rencor", - "rendir", - "renta", - "reparto", - "repetir", - "reposo", - "reptil", - "res", - "rescate", - "resina", - "respeto", - "resto", - "resumen", - "retiro", - "retorno", - "retrato", - "reunir", - "revés", - "revista", - "rey", - "rezar", - "rico", - "riego", - "rienda", - "riesgo", - "rifa", - "rígido", - "rigor", - "rincón", - "riñón", - "río", - "riqueza", - "risa", - "ritmo", - "rito", - "rizo", - "roble", - "roce", - "rociar", - "rodar", - "rodeo", - "rodilla", - "roer", - "rojizo", - "rojo", - "romero", - "romper", - "ron", - "ronco", - "ronda", - "ropa", - "ropero", - "rosa", - "rosca", - "rostro", - "rotar", - "rubí", - "rubor", - "rudo", - "rueda", - "rugir", - "ruido", - "ruina", - "ruleta", - "rulo", - "rumbo", - "rumor", - "ruptura", - "ruta", - "rutina", - "sábado", - "saber", - "sabio", - "sable", - "sacar", - "sagaz", - "sagrado", - "sala", - "saldo", - "salero", - "salir", - "salmón", - "salón", - "salsa", - "salto", - "salud", - "salvar", - "samba", - "sanción", - "sandía", - "sanear", - "sangre", - "sanidad", - "sano", - "santo", - "sapo", - "saque", - "sardina", - "sartén", - "sastre", - "satán", - "sauna", - "saxofón", - "sección", - "seco", - "secreto", - "secta", - "sed", - "seguir", - "seis", - "sello", - "selva", - "semana", - "semilla", - "senda", - "sensor", - "señal", - "señor", - "separar", - "sepia", - "sequía", - "ser", - "serie", - "sermón", - "servir", - "sesenta", - "sesión", - "seta", - "setenta", - "severo", - "sexo", - "sexto", - "sidra", - "siesta", - "siete", - "siglo", - "signo", - "sílaba", - "silbar", - "silencio", - "silla", - "símbolo", - "simio", - "sirena", - "sistema", - "sitio", - "situar", - "sobre", - "socio", - "sodio", - "sol", - "solapa", - "soldado", - "soledad", - "sólido", - "soltar", - "solución", - "sombra", - "sondeo", - "sonido", - "sonoro", - "sonrisa", - "sopa", - "soplar", - "soporte", - "sordo", - "sorpresa", - "sorteo", - "sostén", - "sótano", - "suave", - "subir", - "suceso", - "sudor", - "suegra", - "suelo", - "sueño", - "suerte", - "sufrir", - "sujeto", - "sultán", - "sumar", - "superar", - "suplir", - "suponer", - "supremo", - "sur", - "surco", - "sureño", - "surgir", - "susto", - "sutil", - "tabaco", - "tabique", - "tabla", - "tabú", - "taco", - "tacto", - "tajo", - "talar", - "talco", - "talento", - "talla", - "talón", - "tamaño", - "tambor", - "tango", - "tanque", - "tapa", - "tapete", - "tapia", - "tapón", - "taquilla", - "tarde", - "tarea", - "tarifa", - "tarjeta", - "tarot", - "tarro", - "tarta", - "tatuaje", - "tauro", - "taza", - "tazón", - "teatro", - "techo", - "tecla", - "técnica", - "tejado", - "tejer", - "tejido", - "tela", - "teléfono", - "tema", - "temor", - "templo", - "tenaz", - "tender", - "tener", - "tenis", - "tenso", - "teoría", - "terapia", - "terco", - "término", - "ternura", - "terror", - "tesis", - "tesoro", - "testigo", - "tetera", - "texto", - "tez", - "tibio", - "tiburón", - "tiempo", - "tienda", - "tierra", - "tieso", - "tigre", - "tijera", - "tilde", - "timbre", - "tímido", - "timo", - "tinta", - "tío", - "típico", - "tipo", - "tira", - "tirón", - "titán", - "títere", - "título", - "tiza", - "toalla", - "tobillo", - "tocar", - "tocino", - "todo", - "toga", - "toldo", - "tomar", - "tono", - "tonto", - "topar", - "tope", - "toque", - "tórax", - "torero", - "tormenta", - "torneo", - "toro", - "torpedo", - "torre", - "torso", - "tortuga", - "tos", - "tosco", - "toser", - "tóxico", - "trabajo", - "tractor", - "traer", - "tráfico", - "trago", - "traje", - "tramo", - "trance", - "trato", - "trauma", - "trazar", - "trébol", - "tregua", - "treinta", - "tren", - "trepar", - "tres", - "tribu", - "trigo", - "tripa", - "triste", - "triunfo", - "trofeo", - "trompa", - "tronco", - "tropa", - "trote", - "trozo", - "truco", - "trueno", - "trufa", - "tubería", - "tubo", - "tuerto", - "tumba", - "tumor", - "túnel", - "túnica", - "turbina", - "turismo", - "turno", - "tutor", - "ubicar", - "úlcera", - "umbral", - "unidad", - "unir", - "universo", - "uno", - "untar", - "uña", - "urbano", - "urbe", - "urgente", - "urna", - "usar", - "usuario", - "útil", - "utopía", - "uva", - "vaca", - "vacío", - "vacuna", - "vagar", - "vago", - "vaina", - "vajilla", - "vale", - "válido", - "valle", - "valor", - "válvula", - "vampiro", - "vara", - "variar", - "varón", - "vaso", - "vecino", - "vector", - "vehículo", - "veinte", - "vejez", - "vela", - "velero", - "veloz", - "vena", - "vencer", - "venda", - "veneno", - "vengar", - "venir", - "venta", - "venus", - "ver", - "verano", - "verbo", - "verde", - "vereda", - "verja", - "verso", - "verter", - "vía", - "viaje", - "vibrar", - "vicio", - "víctima", - "vida", - "vídeo", - "vidrio", - "viejo", - "viernes", - "vigor", - "vil", - "villa", - "vinagre", - "vino", - "viñedo", - "violín", - "viral", - "virgo", - "virtud", - "visor", - "víspera", - "vista", - "vitamina", - "viudo", - "vivaz", - "vivero", - "vivir", - "vivo", - "volcán", - "volumen", - "volver", - "voraz", - "votar", - "voto", - "voz", - "vuelo", - "vulgar", - "yacer", - "yate", - "yegua", - "yema", - "yerno", - "yeso", - "yodo", - "yoga", - "yogur", - "zafiro", - "zanja", - "zapato", - "zarza", - "zona", - "zorro", - "zumo", - "zurdo" - ]; - - var require$$12 = [ - "abajur", - "abaküs", - "abartı", - "abdal", - "abdest", - "abiye", - "abluka", - "abone", - "absorbe", - "absürt", - "acayip", - "acele", - "acemi", - "açıkgöz", - "adalet", - "adam", - "adezyon", - "adisyon", - "adliye", - "adres", - "afacan", - "afili", - "afiş", - "afiyet", - "aforizm", - "afra", - "ağaç", - "ağır", - "ahbap", - "ahkam", - "ahlak", - "ahtapot", - "aidat", - "aile", - "ajan", - "akademi", - "akarsu", - "akbaş", - "akciğer", - "akdeniz", - "akıbet", - "akıl", - "akıntı", - "akide", - "akrep", - "akrobasi", - "aksiyon", - "akşam", - "aktif", - "aktör", - "aktris", - "akustik", - "alaca", - "albüm", - "alçak", - "aldanma", - "aleni", - "alet", - "alfabe", - "algılama", - "alıngan", - "alkış", - "alkol", - "alpay", - "alperen", - "altın", - "altüst", - "altyapı", - "alyuvar", - "amade", - "amatör", - "amazon", - "ambalaj", - "amblem", - "ambulans", - "amca", - "amel", - "amigo", - "amir", - "amiyane", - "amorti", - "ampul", - "anadolu", - "anahtar", - "anakonda", - "anaokul", - "anapara", - "anarşi", - "anatomi", - "anayasa", - "anekdot", - "anestezi", - "angaje", - "anka", - "anket", - "anlamlı", - "anne", - "anomali", - "anonim", - "anten", - "antlaşma", - "apse", - "araba", - "aracı", - "araf", - "arbede", - "arda", - "arefe", - "arena", - "argo", - "argüman", - "arkadaş", - "armoni", - "aroma", - "arsa", - "arsız", - "artı", - "artist", - "aruz", - "asansör", - "asayiş", - "asfalt", - "asgari", - "asil", - "asker", - "askı", - "aslan", - "asosyal", - "astsubay", - "asya", - "aşçı", - "aşırı", - "aşure", - "atabey", - "ataman", - "ateş", - "atmaca", - "atmosfer", - "atom", - "atölye", - "avcı", - "avdet", - "avize", - "avlu", - "avokado", - "avrupa", - "avukat", - "ayaz", - "ayçiçeği", - "aydın", - "aygıt", - "ayna", - "ayran", - "ayrıntı", - "azim", - "baca", - "bagaj", - "bağlantı", - "bahadır", - "bahçe", - "baki", - "bakkal", - "baklava", - "bakteri", - "balçık", - "balina", - "balo", - "balta", - "bant", - "banyo", - "bardak", - "barış", - "başbuğ", - "başıboş", - "başkan", - "başlık", - "bavul", - "bayındır", - "baykuş", - "bazlama", - "bedel", - "begüm", - "bekçi", - "bekle", - "belge", - "belki", - "bencil", - "benek", - "bengi", - "benzer", - "berjer", - "berk", - "bermuda", - "berrak", - "beşik", - "beton", - "beyin", - "beyoğlu", - "bıçak", - "biberiye", - "bidon", - "biftek", - "bihaber", - "bikini", - "bilezik", - "bilinç", - "bilye", - "bina", - "binbaşı", - "binyıl", - "bisiklet", - "bisküvi", - "bitki", - "bizzat", - "bodrum", - "boğaz", - "bohça", - "bolero", - "boncuk", - "bonfile", - "borsa", - "boru", - "bostan", - "boşboğaz", - "botanik", - "boya", - "boykot", - "boynuz", - "bozgun", - "bozkır", - "bölüm", - "börek", - "buçuk", - "bugün", - "buğday", - "buhar", - "buhran", - "bulvar", - "buram", - "burçak", - "burs", - "burun", - "butik", - "buzdağı", - "buzkıran", - "bücür", - "büfe", - "bülten", - "bütçe", - "bütün", - "büyük", - "cacık", - "cadı", - "cahil", - "cambaz", - "canhıraş", - "casus", - "cazibe", - "cehalet", - "cehennem", - "ceket", - "cemre", - "cenin", - "cennet", - "cepken", - "cerrah", - "cesur", - "cetvel", - "cevher", - "ceylan", - "cılız", - "cıva", - "cilt", - "cisim", - "ciyak", - "coğrafya", - "cömert", - "cumba", - "cüzdan", - "çabucak", - "çadır", - "çağdaş", - "çağlayan", - "çağrı", - "çakmak", - "çalışkan", - "çamaşır", - "çapa", - "çaput", - "çarık", - "çarpan", - "çarşaf", - "çayhane", - "çekirdek", - "çelebi", - "çember", - "çenet", - "çengel", - "çerçeve", - "çerez", - "çeşit", - "çeşme", - "çete", - "çevre", - "çeyiz", - "çeyrek", - "çığır", - "çılgın", - "çıngırak", - "çift", - "çiğdem", - "çikolata", - "çilek", - "çimen", - "çivi", - "çoban", - "çocuk", - "çokgen", - "çomak", - "çorba", - "çözelti", - "çubuk", - "çukur", - "çuval", - "çürük", - "dağbaşı", - "dağılım", - "daktilo", - "daldırış", - "dalga", - "dalkavuk", - "damak", - "damıtma", - "damla", - "dana", - "dandik", - "danışman", - "daniska", - "dantel", - "dargeçit", - "darphane", - "davet", - "dayı", - "defter", - "değer", - "değirmen", - "dehşet", - "delgeç", - "demir", - "deneyim", - "denge", - "depo", - "deprem", - "derdest", - "dere", - "derhal", - "derman", - "dernek", - "derviş", - "desen", - "destan", - "dışarı", - "dışbükey", - "dijital", - "dikbaşlı", - "dilekçe", - "dimağ", - "dinamik", - "dindar", - "dinleme", - "dinozor", - "dipçik", - "dipnot", - "direniş", - "dirsek", - "disiplin", - "disk", - "divriği", - "dizüstü", - "dobra", - "dodurga", - "doğalgaz", - "doktor", - "doküman", - "dolap", - "donanım", - "dondurma", - "donör", - "doruk", - "dosdoğru", - "dost", - "dosya", - "dozer", - "döküm", - "dönence", - "dörtyol", - "dövme", - "dram", - "dublaj", - "durum", - "duvak", - "duyarga", - "duyma", - "duyuru", - "düğme", - "düğüm", - "dükkan", - "dünür", - "düpedüz", - "dürbün", - "düşünür", - "düzayak", - "düzeltme", - "ebeveyn", - "ebru", - "ecel", - "ecnebi", - "ecza", - "edat", - "edilgen", - "efendi", - "efor", - "efsane", - "egemen", - "egzersiz", - "eğrelti", - "ekarte", - "ekip", - "eklem", - "ekmek", - "ekol", - "ekonomi", - "ekose", - "ekran", - "ekvator", - "elaman", - "elastik", - "elbet", - "elbise", - "elçi", - "eldiven", - "elebaşı", - "eleştiri", - "elma", - "eloğlu", - "elveda", - "emare", - "emekçi", - "emisyon", - "emniyet", - "empati", - "emsal", - "emzik", - "endüstri", - "enerji", - "engebe", - "engin", - "enişte", - "enkaz", - "entari", - "entegre", - "entrika", - "enzim", - "erdem", - "ergen", - "erguvan", - "erkek", - "erozyon", - "ertesi", - "erzak", - "esaret", - "esenlik", - "eser", - "eski", - "esnek", - "eşarp", - "eşofman", - "eşraf", - "eşya", - "eşzaman", - "etik", - "etken", - "etkinlik", - "etüt", - "evet", - "evire", - "evrak", - "evrim", - "eyalet", - "eyvah", - "ezber", - "fabrika", - "fanatik", - "fanus", - "fason", - "fasulye", - "fatih", - "fatura", - "fauna", - "favori", - "fayans", - "fayton", - "fazıl", - "fazilet", - "federal", - "felsefe", - "fener", - "feribot", - "fersah", - "fesih", - "festival", - "feveran", - "feza", - "fıçı", - "fıldır", - "fındık", - "fırça", - "fırsat", - "fırtına", - "fıtık", - "fidan", - "fidye", - "figür", - "fihrist", - "fikir", - "fildişi", - "filo", - "filtre", - "fincan", - "firuze", - "fitil", - "fiyaka", - "fizik", - "flaş", - "flüt", - "fosil", - "fren", - "fukara", - "futbol", - "garabet", - "gariban", - "garnitür", - "gazi", - "gece", - "gedik", - "gelenek", - "gelin", - "gemi", - "genç", - "geniş", - "geometri", - "gerçek", - "gevrek", - "gezegen", - "gezgin", - "geziyolu", - "gıcık", - "gıda", - "gıybet", - "girdap", - "girişim", - "gitar", - "giyecek", - "giysi", - "gizem", - "gofret", - "goril", - "göbek", - "göçebe", - "göğüs", - "gökdelen", - "gökmen", - "gökyüzü", - "gölge", - "gömlek", - "gönül", - "görenek", - "görkemli", - "görsel", - "gösteri", - "gövde", - "gözaltı", - "gözcü", - "gözdağı", - "gözleme", - "gözyaşı", - "grup", - "gurbet", - "gusül", - "gübre", - "güfte", - "gümüş", - "günaydın", - "güncel", - "gündüz", - "güneş", - "günyüzü", - "gürbüz", - "güvercin", - "güzel", - "haber", - "hacamat", - "hacim", - "hademe", - "hafız", - "hafriyat", - "hafta", - "hakan", - "hakem", - "hakikat", - "haksever", - "halı", - "hançer", - "hane", - "hangar", - "hapis", - "hapşırık", - "harf", - "haseki", - "hasret", - "hatun", - "havuç", - "haylaz", - "haysiyet", - "hayvan", - "hedef", - "hektar", - "hemen", - "hemfikir", - "hendek", - "hepsi", - "hergele", - "herhangi", - "hesap", - "heyecan", - "heykel", - "hezimet", - "hıçkırık", - "hızölçer", - "hicviye", - "hikaye", - "hikmet", - "hile", - "hisse", - "hobi", - "hoca", - "horlama", - "hormon", - "hoşbeş", - "hoşgörü", - "hoyrat", - "hörgüç", - "höyük", - "hudut", - "hukuk", - "hunhar", - "hurda", - "huysuz", - "huzur", - "hücum", - "hükümet", - "hünkar", - "hüviyet", - "ırmak", - "ısıölçer", - "ısıtıcı", - "ıspanak", - "ısrar", - "ışıldak", - "ızdırap", - "ızgara", - "ibadet", - "icat", - "içbükey", - "içecek", - "içgüdü", - "içsel", - "idman", - "iftihar", - "iğne", - "ihanet", - "ihbar", - "ihdas", - "ihmal", - "ihracat", - "ihsan", - "ikilem", - "ikindi", - "ikircik", - "iklim", - "iksir", - "iktibas", - "ilaç", - "ilçe", - "ileri", - "iletişim", - "ilgi", - "ilhak", - "ilkbahar", - "ilkokul", - "ilmek", - "imkan", - "imleç", - "imsak", - "imtihan", - "imza", - "ince", - "inkar", - "inşa", - "ipek", - "ipucu", - "irade", - "irfan", - "irmik", - "isabet", - "iskele", - "israf", - "isyan", - "işçi", - "işgal", - "işgüzar", - "işlem", - "itibar", - "itiraf", - "ivedi", - "ivme", - "iyileşme", - "iyimser", - "izbandut", - "izci", - "izdiham", - "izin", - "jakoben", - "jandarma", - "jargon", - "kabadayı", - "kablo", - "kabus", - "kaçamak", - "kadeh", - "kadın", - "kadraj", - "kafa", - "kafkas", - "kağıt", - "kağnı", - "kahkaha", - "kahraman", - "kahvaltı", - "kakül", - "kaldırım", - "kale", - "kalibre", - "kalkan", - "kalpak", - "kamış", - "kamyon", - "kanat", - "kandaş", - "kanepe", - "kanser", - "kanun", - "kaos", - "kapı", - "kaplıca", - "kaptan", - "karanlık", - "kardeş", - "karga", - "karınca", - "karmaşa", - "karşıt", - "kasırga", - "kask", - "kasvet", - "katkı", - "katman", - "kavram", - "kaygan", - "kaynakça", - "kayyum", - "kedi", - "kehanet", - "kekik", - "kelebek", - "kenar", - "kerkenez", - "kerpiç", - "kesirli", - "kesmece", - "kestane", - "keşkek", - "ketçap", - "keyfiyet", - "kıble", - "kıdemli", - "kılavuz", - "kılçık", - "kılıf", - "kıraç", - "kırmızı", - "kırsal", - "kısayol", - "kısım", - "kıskanç", - "kısmet", - "kışla", - "kıvanç", - "kıvılcım", - "kıvrık", - "kıyafet", - "kıymetli", - "kızak", - "kızılcık", - "kibar", - "kinaye", - "kira", - "kiremit", - "kirli", - "kirpik", - "kişisel", - "kitap", - "koçbaşı", - "kodaman", - "koğuş", - "kokteyl", - "kolaycı", - "kolbastı", - "kolonya", - "koltuk", - "kolye", - "kombine", - "komedyen", - "komiser", - "komposto", - "komşu", - "komuta", - "konak", - "konfor", - "koni", - "konsül", - "kopya", - "korkusuz", - "korna", - "korse", - "korunak", - "korvet", - "kostüm", - "koşul", - "koyu", - "kozmik", - "köfte", - "kökensel", - "köprücük", - "köpük", - "kördüğüm", - "körfez", - "köstebek", - "köşegen", - "kötü", - "kravat", - "kriter", - "kuantum", - "kudurma", - "kuluçka", - "kulübe", - "kumanya", - "kumbara", - "kumlu", - "kumpir", - "kumral", - "kundura", - "kupa", - "kupkuru", - "kuramsal", - "kurbağa", - "kurdele", - "kurgu", - "kurmay", - "kurşun", - "kurtuluş", - "kurultay", - "kurye", - "kusursuz", - "kuşak", - "kuşbaşı", - "kuşkulu", - "kutlama", - "kutsal", - "kutup", - "kuver", - "kuyruk", - "kuzey", - "kuzgun", - "küçük", - "külçe", - "külfet", - "külliye", - "kültürel", - "kümes", - "künefe", - "küresel", - "kütle", - "lahana", - "lahmacun", - "lamba", - "lansman", - "lavaş", - "layık", - "leğen", - "levent", - "leziz", - "lezzet", - "lider", - "likide", - "liman", - "liste", - "litre", - "liyakat", - "lodos", - "lokanta", - "lokman", - "lokum", - "lunapark", - "lütfen", - "lüzum", - "nokta", - "mabet", - "macera", - "macun", - "madalya", - "madde", - "madem", - "mağara", - "mağdur", - "mağfiret", - "mağlup", - "mahalle", - "mahcup", - "mahir", - "mahkeme", - "mahlas", - "mahrum", - "mahsul", - "makas", - "makbuz", - "makine", - "makro", - "maksat", - "makul", - "maliye", - "manav", - "mangal", - "manidar", - "manken", - "mantık", - "manzara", - "mareşal", - "margarin", - "marifet", - "market", - "marmelat", - "masaüstü", - "masmavi", - "masraf", - "masum", - "matah", - "materyal", - "matrak", - "maval", - "mavra", - "maydanoz", - "mayhoş", - "maytap", - "mazbata", - "mazeret", - "mazlum", - "mazot", - "mazur", - "meblağ", - "mebus", - "mecaz", - "mecbur", - "meclis", - "mecmua", - "mecnun", - "meçhul", - "medeni", - "mehtap", - "mekanik", - "melodi", - "meltem", - "memur", - "mendil", - "menekşe", - "menteşe", - "meraklı", - "mercek", - "merdiven", - "merhaba", - "merinos", - "merkez", - "mermi", - "mert", - "mesafe", - "mesele", - "mesken", - "meslek", - "meşale", - "meşgul", - "meşhur", - "metafor", - "metin", - "metre", - "mevcut", - "mevkidaş", - "meydan", - "meyil", - "meyve", - "meziyet", - "mezun", - "mıknatıs", - "mısra", - "mızıka", - "miğfer", - "mihrak", - "mikrofon", - "miktar", - "milat", - "milli", - "mimar", - "minare", - "mineral", - "minik", - "minyon", - "mirliva", - "misafir", - "miskin", - "miting", - "miyop", - "mizah", - "mobilya", - "model", - "monitör", - "morötesi", - "motive", - "motor", - "mozaik", - "muavin", - "mucize", - "muhafız", - "muhteşem", - "mukayese", - "mumya", - "musluk", - "muşamba", - "mutabık", - "mutfak", - "mutlu", - "muzaffer", - "muzdarip", - "mübarek", - "mücadele", - "müdür", - "müfredat", - "müftü", - "mühendis", - "mühim", - "mühlet", - "mükemmel", - "mülk", - "mümkün", - "mümtaz", - "müsrif", - "müstesna", - "müşahit", - "müşteri", - "mütercim", - "müthiş", - "müze", - "müzik", - "nabız", - "nadas", - "nadir", - "nahoş", - "nakarat", - "nakış", - "nalbur", - "namlu", - "namus", - "nankör", - "nargile", - "narkoz", - "nasıl", - "nasip", - "naylon", - "nazar", - "nazım", - "nazik", - "neden", - "nefes", - "negatif", - "neon", - "neptün", - "nerede", - "nesil", - "nesnel", - "neşeli", - "netice", - "nevresim", - "neyse", - "neyzen", - "nezaket", - "nezih", - "nezle", - "nicel", - "nilüfer", - "nimet", - "nisan", - "nispet", - "nitekim", - "nizam", - "nohut", - "noksan", - "normal", - "nostalji", - "noter", - "nöbet", - "numara", - "numune", - "nutuk", - "nüfus", - "obabaşı", - "obez", - "obje", - "ocak", - "odun", - "ofansif", - "ofis", - "oğlak", - "oğuz", - "okçu", - "oklava", - "oksijen", - "okul", - "okumuş", - "okutman", - "okuyucu", - "okyanus", - "olağan", - "olanak", - "olası", - "olay", - "olgun", - "olimpik", - "olumlu", - "omlet", - "omurga", - "onarım", - "onursal", - "opera", - "optik", - "oral", - "orantı", - "ordu", - "organik", - "orijin", - "orkide", - "orman", - "orta", - "oruç", - "otağ", - "otantik", - "otel", - "otoban", - "otogar", - "otomobil", - "otonom", - "otopark", - "otorite", - "otoyol", - "oturum", - "oyuk", - "oyuncak", - "ozan", - "ödeme", - "ödenek", - "ödev", - "ödül", - "ödünç", - "öfke", - "öğlen", - "öğrenci", - "öğün", - "öğütücü", - "öksürük", - "ölçme", - "ölçü", - "ölümsüz", - "ömür", - "önayak", - "öncü", - "önder", - "önem", - "önerge", - "öngörü", - "önlük", - "önsezi", - "öpücük", - "ördek", - "örgü", - "örtbas", - "örtme", - "örtü", - "örümcek", - "örüntü", - "öteberi", - "öteki", - "övünç", - "öykü", - "öyleyse", - "özçekim", - "özdeyiş", - "özel", - "özenti", - "özerk", - "özgürlük", - "özlem", - "özlü", - "özne", - "özsever", - "özümseme", - "özür", - "özveri", - "pabuç", - "padişah", - "palamut", - "palmiye", - "palto", - "palyaço", - "pamuk", - "panayır", - "pancar", - "panda", - "panel", - "panik", - "panjur", - "pankart", - "pano", - "pansuman", - "pantolon", - "panzehir", - "papatya", - "papyon", - "paraşüt", - "parça", - "pardösü", - "parfüm", - "parıltı", - "parkur", - "parmak", - "parodi", - "parsel", - "partner", - "pasaport", - "pasif", - "paskalya", - "pastırma", - "paşa", - "patates", - "paten", - "patika", - "patlıcan", - "patolog", - "patron", - "payanda", - "paydaş", - "payidar", - "paylaşma", - "paytak", - "peçete", - "pedal", - "peder", - "pehlivan", - "pekala", - "pekmez", - "pelerin", - "pelikan", - "pelüş", - "pembe", - "pena", - "pencere", - "pense", - "perçin", - "perde", - "pergel", - "perişan", - "peron", - "personel", - "perşembe", - "peruk", - "pervane", - "pespaye", - "pestil", - "peşin", - "petek", - "petrol", - "petunya", - "peynir", - "peyzaj", - "pınar", - "pırasa", - "pırlanta", - "pide", - "pikap", - "piknik", - "pilav", - "piliç", - "pilot", - "pipet", - "pipo", - "piramit", - "pirinç", - "pirzola", - "pist", - "pişik", - "pişman", - "piyasa", - "piyes", - "plaj", - "plaket", - "planlama", - "platform", - "plazma", - "podyum", - "poğaça", - "polat", - "polen", - "politika", - "pompa", - "popüler", - "porselen", - "portakal", - "posa", - "poster", - "poşet", - "poyraz", - "pozitif", - "pranga", - "pratik", - "prenses", - "prim", - "problem", - "profil", - "program", - "proje", - "protokol", - "prova", - "puan", - "pudra", - "pusula", - "püre", - "pürüz", - "püstül", - "püsür", - "racon", - "radar", - "radikal", - "radyo", - "rafadan", - "rafine", - "rağbet", - "rahat", - "rahle", - "rakam", - "raket", - "rakip", - "rakun", - "ralli", - "rampa", - "randevu", - "ranza", - "rapor", - "rastgele", - "rasyonel", - "razı", - "realite", - "reçine", - "refah", - "referans", - "refik", - "reform", - "rehber", - "rehin", - "reis", - "rekabet", - "reklam", - "rekor", - "rektör", - "renk", - "resim", - "resmen", - "restoran", - "retorik", - "revaç", - "revize", - "reyon", - "rezalet", - "rezerv", - "rezil", - "rıhtım", - "rıza", - "ritim", - "ritüel", - "rivayet", - "robot", - "roman", - "rota", - "rozet", - "röportaj", - "rötar", - "ruble", - "ruhban", - "ruhsat", - "rulet", - "rulo", - "runik", - "rutin", - "rutubet", - "rüşvet", - "rütbe", - "rüya", - "rüzgar", - "sabah", - "sabıka", - "sabit", - "sabun", - "saçma", - "sade", - "sadık", - "safahat", - "safdil", - "safkan", - "sağanak", - "sağduyu", - "sağlam", - "saha", - "sahiden", - "sahne", - "sakal", - "sakız", - "sakin", - "saklama", - "saksağan", - "salamura", - "salça", - "salgı", - "salınım", - "salkım", - "salon", - "saltanat", - "sanatçı", - "sancak", - "sandalye", - "saniye", - "saplantı", - "sapsız", - "saray", - "sarışın", - "sarkık", - "sarmaşık", - "satır", - "savaşım", - "savunma", - "saydam", - "sayfa", - "saygın", - "sayısal", - "sebep", - "seçenek", - "seçim", - "seçkin", - "seçmen", - "seda", - "sedir", - "sedye", - "sefer", - "sehpa", - "sekizgen", - "selektör", - "selvi", - "semavi", - "sembol", - "seminer", - "senaryo", - "sendika", - "senkron", - "sensör", - "sentez", - "sepet", - "seramik", - "serbest", - "serdar", - "seremoni", - "sergi", - "serhat", - "serin", - "sermaye", - "serpuş", - "sersem", - "serüven", - "servis", - "sesli", - "sesteş", - "sevap", - "seviye", - "seyahat", - "seyirci", - "sezon", - "sıcak", - "sıfat", - "sıhhi", - "sınanma", - "sınır", - "sıradan", - "sırdaş", - "sırma", - "sırtüstü", - "sızgıt", - "siftah", - "sigorta", - "sihirbaz", - "silah", - "silecek", - "silindir", - "simetri", - "simge", - "simit", - "sincap", - "sindirim", - "sinema", - "sinirli", - "sipariş", - "sirke", - "siroz", - "sistem", - "sivilce", - "siyasi", - "slogan", - "soba", - "sofra", - "soğuk", - "sohbet", - "sokak", - "solfej", - "solunum", - "somut", - "sonbahar", - "sonraki", - "sonsuz", - "sorunsuz", - "sosyete", - "soyağacı", - "soydaş", - "soygun", - "soytarı", - "söğüş", - "sömürge", - "sönük", - "söylem", - "sözcük", - "sözde", - "spatula", - "spektrum", - "spiker", - "spiral", - "sponsor", - "sporcu", - "sprey", - "stabil", - "statü", - "stok", - "stopaj", - "strateji", - "subay", - "sucuk", - "suçüstü", - "suhulet", - "sulama", - "sungur", - "sunucu", - "surat", - "susam", - "suskun", - "sükse", - "sükut", - "sülale", - "sünger", - "süpürge", - "sürahi", - "süreç", - "sürgün", - "sürüm", - "süsleme", - "sütanne", - "sütlaç", - "sütun", - "süvari", - "şahane", - "şahbaz", - "şahit", - "şahsiyet", - "şakıma", - "şaklaban", - "şakrak", - "şamar", - "şampiyon", - "şanslı", - "şantiye", - "şapka", - "şarkıcı", - "şartname", - "şaşırma", - "şaşkın", - "şatafat", - "şayet", - "şebeke", - "şefkat", - "şeftali", - "şehir", - "şehvet", - "şeker", - "şekil", - "şelale", - "şema", - "şemsiye", - "şerbet", - "şeref", - "şerit", - "şımarık", - "şıpıdık", - "şifre", - "şimdi", - "şimşek", - "şipşak", - "şirin", - "şişe", - "şişirme", - "şofben", - "şöhret", - "şölen", - "şüphe", - "tabaka", - "tabela", - "tabure", - "tadilat", - "taharet", - "tahıl", - "tahkim", - "tahlil", - "tahmin", - "tahrifat", - "tahsilat", - "tahta", - "taklit", - "takoz", - "taksici", - "taktik", - "takvim", - "talebe", - "talip", - "tamamen", - "tamirci", - "tampon", - "tamtakır", - "tandır", - "tanecik", - "tanıtım", - "tanrı", - "tansiyon", - "tapan", - "tapınak", - "taptaze", - "tapu", - "tarafgir", - "tarhana", - "tarım", - "tarih", - "tarla", - "tartak", - "tarumar", - "tasarım", - "tasdik", - "taslak", - "tastamam", - "taşeron", - "taşınmaz", - "taşra", - "tatava", - "tatbikat", - "tatil", - "tatlı", - "tavsiye", - "tavşan", - "tavuk", - "taze", - "taziye", - "tazminat", - "tebeşir", - "tebrik", - "tecrübe", - "teçhizat", - "tedarik", - "tedbir", - "teftiş", - "teğet", - "teğmen", - "tehdit", - "tehlike", - "tekdüze", - "tekerlek", - "tekme", - "teknik", - "tekrar", - "telef", - "telsiz", - "telve", - "temas", - "tembel", - "temiz", - "temkin", - "tempo", - "temsilci", - "tendon", - "teneke", - "tenha", - "tenkit", - "tepegöz", - "tepki", - "terazi", - "terbiye", - "tercih", - "tereyağı", - "terfi", - "terim", - "terminal", - "tersane", - "tertip", - "tesadüf", - "tescil", - "tesir", - "teslimat", - "tespit", - "testere", - "teşekkür", - "teşhir", - "teşrif", - "teşvik", - "teyze", - "tezahür", - "tezgah", - "tıbbi", - "tıkaç", - "tıkışık", - "tıknaz", - "tılsım", - "tıpkı", - "tıraş", - "tırışka", - "tırmanış", - "tırnak", - "tırpan", - "tıslama", - "ticaret", - "tilki", - "tiryaki", - "titreşim", - "tohum", - "tokat", - "tolere", - "tomar", - "tombak", - "tomurcuk", - "topaç", - "toplum", - "toprak", - "toptan", - "toraman", - "torpido", - "tortu", - "tosbağa", - "toynak", - "tören", - "trafik", - "trajedi", - "tramvay", - "transfer", - "tribün", - "triko", - "tugay", - "tuğla", - "tuğrul", - "tuhaf", - "tulumba", - "tunç", - "turan", - "turkuaz", - "turnusol", - "turşu", - "turuncu", - "tutanak", - "tutkal", - "tutsak", - "tutum", - "tuyuğ", - "tuzlu", - "tüccar", - "tüfek", - "tükenmez", - "tülbent", - "tümleç", - "tünel", - "türbin", - "türev", - "türk", - "tüzük", - "ucube", - "ucuz", - "uçak", - "uçurtma", - "ufuk", - "uğrak", - "uğur", - "ukala", - "ulaşım", - "ulema", - "ulus", - "ulvi", - "umursama", - "umut", - "unutkan", - "uslu", - "ustabaşı", - "ustura", - "usul", - "utangaç", - "uyanık", - "uyarı", - "uydu", - "uygar", - "uygulama", - "uykusuz", - "uysal", - "uyuşma", - "uzantı", - "uzay", - "uzgören", - "uzlaşma", - "uzman", - "uzun", - "ücra", - "ücret", - "üçbudak", - "üçgen", - "üçkağıt", - "üçleme", - "üfürük", - "ülke", - "ümit", - "üniforma", - "ünite", - "ünlem", - "üretken", - "ürün", - "üslup", - "üstel", - "üstün", - "üşengeç", - "üşüme", - "ütopya", - "üvey", - "üzengi", - "üzgün", - "üzüm", - "vagon", - "vaka", - "vakfiye", - "vakıf", - "vakit", - "vakum", - "vapur", - "varil", - "varlık", - "varsayım", - "varyemez", - "vasıta", - "vasiyet", - "vatandaş", - "vazife", - "vazo", - "veciz", - "vefa", - "vehim", - "veliaht", - "veresiye", - "verimli", - "verkaç", - "vernik", - "vertigo", - "vesait", - "vesika", - "vestiyer", - "veznedar", - "vicdan", - "vilayet", - "virane", - "virgül", - "vişne", - "vites", - "vokal", - "volkan", - "vurma", - "vurucu", - "vücut", - "yabancı", - "yabgu", - "yağış", - "yağlı", - "yağmur", - "yakamoz", - "yakın", - "yaklaşık", - "yalçın", - "yalıtım", - "yaman", - "yanardağ", - "yangın", - "yanıt", - "yankı", - "yanlış", - "yansıma", - "yapay", - "yapboz", - "yapımcı", - "yaprak", - "yaratık", - "yarbay", - "yardım", - "yargıç", - "yarıçap", - "yasemin", - "yastık", - "yaşam", - "yatak", - "yatırım", - "yavru", - "yaygara", - "yayıncı", - "yayla", - "yazılım", - "yekpare", - "yekvücut", - "yelkovan", - "yelpaze", - "yemek", - "yemiş", - "yengeç", - "yeniçeri", - "yeraltı", - "yerküre", - "yerleşke", - "yeryüzü", - "yeşil", - "yetenek", - "yetkili", - "yığınak", - "yıkama", - "yılbaşı", - "yıldırım", - "yılkı", - "yılmaz", - "yırtıcı", - "yiğit", - "yoğurt", - "yokuş", - "yolcu", - "yoldaş", - "yolgeçen", - "yolkesen", - "yolüstü", - "yordam", - "yorgan", - "yorumcu", - "yosun", - "yöndeş", - "yönetim", - "yönlü", - "yöntem", - "yöresel", - "yörünge", - "yufka", - "yukarı", - "yumruk", - "yumurta", - "yuvarlak", - "yücelme", - "yükçeker", - "yüklem", - "yüksek", - "yürek", - "yürütme", - "yüzde", - "yüzeysel", - "yüzgeç", - "yüzüstü", - "yüzyıl", - "zabıta", - "zafer", - "zahmet", - "zambak", - "zaptiye", - "zarafet", - "zaruret", - "zeka", - "zekice", - "zemberek", - "zemin", - "zencefil", - "zeplin", - "zeytin", - "zıbın", - "zılgıt", - "zımbırtı", - "zımpara", - "zıpkın", - "zigon", - "zihinsel", - "zihniyet", - "zincir", - "zindan", - "zirzop", - "ziyaret", - "ziynet", - "zoraki", - "zorlu", - "zorunlu", - "züğürt", - "zümre" - ]; - - var wordlist; - var hasRequiredWordlist; - - function requireWordlist () { - if (hasRequiredWordlist) return wordlist; - hasRequiredWordlist = 1; - // note all JSON files in this folder are generated with npm run generate-wordlist - const lookup = require$$0$2; - - wordlist = { - loadWordlist, - detectLanguage - }; - - function loadWordlist (language) { - switch (language) { - case 'chinese_simplified': return require$$1$1 - case 'chinese_traditional': return require$$2 - case 'czech': return require$$3 - case 'english': return require$$4 - case 'french': return require$$5 - case 'italian': return require$$6 - case 'japanese': return require$$7 - case 'korean': return require$$8 - case 'portuguese': return require$$9 - case 'russian': return require$$10 - case 'spanish': return require$$11 - case 'turkish': return require$$12 - } - - throw new Error('Unknown language: ' + language) - } - - function detectLanguage (words) { - let candidate = null; - - for (const word of words) { - const languages = lookup[word]; - if (!languages) return null - - if (languages.length === 1) return languages[0] - - if (!candidate) { - candidate = languages; - continue - } - - const intersect = candidate.filter(l => languages.includes(l)); - if (intersect.length === 1) return intersect[0] - } - - return candidate[0] - } - return wordlist; - } - - var bip39Mnemonic; - var hasRequiredBip39Mnemonic; - - function requireBip39Mnemonic () { - if (hasRequiredBip39Mnemonic) return bip39Mnemonic; - hasRequiredBip39Mnemonic = 1; - const sodium = requireSodiumUniversal(); - const b4a = requireBrowser$1(); - const assert = requireNanoassert(); - const { detectLanguage, loadWordlist } = requireWordlist(); - - bip39Mnemonic = { - generateEntropy, - generateMnemonic, - normalizeMnemonic, - validateMnemonic, - mnemonicToEntropy, - mnemonicToSeed, - entropyToMnemonic - }; - - function generateMnemonic ({ entropy = generateEntropy(), language = 'english' } = {}) { - const wordlist = loadWordlist(language); - const extended = computeCheckSum(entropy); - - const words = []; - - for (const index of uint11Reader(extended)) { - words.push(wordlist[index]); - } - - const delimiter = language === 'japanese' ? '\u3000' : ' '; - - return words.join(delimiter).trim() - } - - function entropyToMnemonic (entropy, { language = 'english' } = {}) { - return generateMnemonic({ entropy, language }) - } - - function mnemonicToEntropy (mnemonic) { - const words = mnemonic.replace(/\u3000/g, ' ').trim().split(' '); - const language = detectLanguage(words); - - if (!language) { - throw new Error('Language not recognised') - } - - if (words.length % 3 !== 0) { - throw new Error('Invalid length') - } - - const wordlist = loadWordlist(language); - - const indexes = []; - for (const word of words) { - const index = wordlist.indexOf(word); - if (index === -1) { - throw new Error('Bad word') - } - - indexes.push(index); - } - - const bits = words.length * 11; - const len = (bits * 32 / 33) >> 3; - - const extended = b4a.alloc(Math.ceil(bits / 8)); - const entropy = extended.subarray(0, len); - - uint11Writer(extended, indexes); - - if (!b4a.equals(extended, computeCheckSum(entropy))) { - throw new Error('Invalid checksum') - } - - return entropy - } - - function normalizeMnemonic (mnemonic) { - return mnemonic.trim().replace(/\u3000/, ' ').split(/\s+/).map(c => c.toLowerCase()).join(' ') - } - - async function mnemonicToSeed (mnemonic, passphrase = '') { - mnemonic = normalizeMnemonic(mnemonic); - - if (!validateMnemonic(mnemonic)) { - throw new Error('Invalid mnemonic') - } - - const input = b4a.from(mnemonic); - const salt = b4a.from('mnemonic' + passphrase); - - const output = b4a.alloc(64); - - await sodium.extension_pbkdf2_sha512_async( - output, - input, - salt, - 2048, - 64 - ); - - return output - } - - function validateMnemonic (mnemonic) { - try { - mnemonicToEntropy(mnemonic); - } catch (e) { - return false - } - return true - } - - function sha256 (data, output = b4a.alloc(32)) { - sodium.crypto_hash_sha256(output, data); - return output - } - - function computeCheckSum (seed) { - assert((seed.byteLength & 4) === 0, 'seed must be a multiple of 4 bytes'); - - const len = seed.byteLength; - const cklen = len >> 2; // cksum bits - const total = len + Math.ceil(cklen / 8); - - const output = b4a.alloc(len + 32); - output.set(seed); - - const entropy = output.subarray(0, len); - const cksum = output.subarray(len); - - sha256(entropy, cksum); - - // only append cklen bits - output[total - 1] &= (0xff ^ (0xff >> cklen)); - - return output.subarray(0, total) - } - - function generateEntropy (length = 32) { - const seed = b4a.alloc(length); - sodium.randombytes_buf(seed); - - return seed - } - - function * uint11Reader (state) { - yield * uintReader(state, 11); - } - - function uint11Writer (buf, uints) { - return uintWriter(buf, uints, 11) - } - - function * uintReader (buffer, width) { - const MASK = (2 << (width - 1)) - 1; - - let pos = 0; - let value = 0; - - while (true) { - const offset = pos >> 3; // byte offset - - if (offset >= buffer.byteLength) { - return value & MASK - } - - const height = width - (pos % width); - const leftover = (offset + 1) * 8 - pos; - - value += shift(buffer[offset], height - leftover); - - pos += Math.min(height, leftover); - if (pos % width) continue - - yield value & MASK; - - value = 0; - } - } - - function uintWriter (buffer, uints, width) { - let pos = 0; - - while (true) { - const offset = pos >> 3; // byte offset - - const i = Math.floor(pos / width); - if (i >= uints.length) break - - if (offset >= buffer.length) { - throw new Error('Failed to encode uints') - } - - const rem = 8 - pos % 8; - const height = (i + 1) * width - pos; - - const value = shift(uints[i], rem - height); - - buffer[offset] += mask(value, rem); - - pos += Math.min(rem, height); - } - - return buffer - } - - // when n is positive, shift left n bits - // when n is negative, shift right -n bits - function shift (val, n) { - if (n === 0) return val - if (n > 0) return val << n - - return val >> (-1 * n) - } - - function mask (val, bits) { - if (bits < 32) return val & ((1 << bits) - 1) - return val % (2 ** bits) - } - return bip39Mnemonic; - } - - var constants$2; - var hasRequiredConstants$2; - - function requireConstants$2 () { - if (hasRequiredConstants$2) return constants$2; - hasRequiredConstants$2 = 1; - const sodium = requireSodiumUniversal(); - const b4a = requireBrowser$1(); - - const TRAC_PUB_KEY_SIZE = sodium.crypto_sign_PUBLICKEYBYTES; - const TRAC_PRIV_KEY_SIZE = sodium.crypto_sign_SECRETKEYBYTES; - const TRAC_SIGNATURE_SIZE = sodium.crypto_sign_BYTES; - const TRAC_MNEMONIC_WORD_COUNT = [24, 12]; // Supported word counts for mnemonics - - const TRAC_NONCE_SIZE = 32; - const TRAC_HASH_SIZE = 32; - - const TRAC_TOKEN_AMOUNT_SIZE_BYTES = 16; // 128 bits / 16 bytes - const TRAC_VALIDITY_SIZE_BYTES = 32; // 256 bits / 32 bytes - - const TRAC_NETWORK_MAINNET_ID = 918; - const TRAC_NETWORK_TESTNET_ID = 919; - - const NULL_BUFFER = b4a.alloc(0); - - constants$2 = { - TRAC_PUB_KEY_SIZE, - TRAC_PRIV_KEY_SIZE, - TRAC_SIGNATURE_SIZE, - TRAC_MNEMONIC_WORD_COUNT, - TRAC_NONCE_SIZE, - TRAC_HASH_SIZE, - TRAC_TOKEN_AMOUNT_SIZE_BYTES, - TRAC_VALIDITY_SIZE_BYTES, - TRAC_NETWORK_MAINNET_ID, - TRAC_NETWORK_TESTNET_ID, - NULL_BUFFER - }; - return constants$2; - } - - var mnemonic; - var hasRequiredMnemonic; - - function requireMnemonic () { - if (hasRequiredMnemonic) return mnemonic; - hasRequiredMnemonic = 1; - const { generateMnemonic, validateMnemonic, mnemonicToSeed, normalizeMnemonic } = requireBip39Mnemonic(); - const b4a = requireBrowser$1(); - const { TRAC_MNEMONIC_WORD_COUNT } = requireConstants$2(); - - function _isString(input) { - return typeof input === 'string'; - } - - function _isMnemonicFormat(mnemonic) { - const words = mnemonic.split(' '); - return TRAC_MNEMONIC_WORD_COUNT.includes(words.length); - } - - /** - * Validates a mnemonic phrase for correct word count and word validity. - * @param {string} mnemonic - The mnemonic phrase to validate. - * @returns {boolean} True if the mnemonic is valid and has the correct number of words, false otherwise. - */ - function isValid(mnemonic) { - if (!_isString(mnemonic) || !_isMnemonicFormat(mnemonic)) { - return false; - } - return validateMnemonic(mnemonic); - } - - /** - * Sanitizes and validates a mnemonic phrase. - * @param {string} mnemonic - The mnemonic phrase to sanitize. - * @returns {string|null} The sanitized mnemonic or null if the input is invalid. - */ - function sanitize(mnemonic) { - if (!_isString(mnemonic)) { - return null; - } - - const normalized = normalizeMnemonic(mnemonic); - if (!_isMnemonicFormat(normalized) || !validateMnemonic(normalized)) { - return null; - } - return normalized; - } - - /** - * Generates a new 24 word mnemonic phrase. - * @param {Buffer|string|null} [seed] - Optional seed to use as entropy. If null, a random seed will be generated. - * @returns {string} The generated mnemonic phrase. - * @throws Will throw an error if the seed is invalid. - */ - function generate(seed = null) { - const options = () => { - const seedBuffer = b4a.from(seed); - return { - entropy: seedBuffer, - language: 'english' - } - }; - return generateMnemonic(seed ? options() : undefined); - } - - - /** - * Converts a mnemonic phrase to a seed buffer. - * @async - * @param {string} mnemonic - The mnemonic phrase to convert. - * @param {string} [passphrase=''] - Optional passphrase to add extra security. - * @returns {Promise} Resolves to the derived seed buffer. - */ - // TODO: Implement a sync version of this function - async function toSeed(mnemonic, passphrase = '') { - // There is no need to sanitize the mnemonic here, - // as the `mnemonicToSeed` function will handle validation. - return mnemonicToSeed(mnemonic, passphrase); - } - - mnemonic = { - validate: isValid, - isValid, - sanitize, - generate, - toSeed, - }; - return mnemonic; - } - - var dist$4 = {}; - - var hasRequiredDist$4; - - function requireDist$4 () { - if (hasRequiredDist$4) return dist$4; - hasRequiredDist$4 = 1; - Object.defineProperty(dist$4, "__esModule", { value: true }); - dist$4.bech32m = dist$4.bech32 = void 0; - const ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'; - const ALPHABET_MAP = {}; - for (let z = 0; z < ALPHABET.length; z++) { - const x = ALPHABET.charAt(z); - ALPHABET_MAP[x] = z; - } - function polymodStep(pre) { - const b = pre >> 25; - return (((pre & 0x1ffffff) << 5) ^ - (-((b >> 0) & 1) & 0x3b6a57b2) ^ - (-((b >> 1) & 1) & 0x26508e6d) ^ - (-((b >> 2) & 1) & 0x1ea119fa) ^ - (-((b >> 3) & 1) & 0x3d4233dd) ^ - (-((b >> 4) & 1) & 0x2a1462b3)); - } - function prefixChk(prefix) { - let chk = 1; - for (let i = 0; i < prefix.length; ++i) { - const c = prefix.charCodeAt(i); - if (c < 33 || c > 126) - return 'Invalid prefix (' + prefix + ')'; - chk = polymodStep(chk) ^ (c >> 5); - } - chk = polymodStep(chk); - for (let i = 0; i < prefix.length; ++i) { - const v = prefix.charCodeAt(i); - chk = polymodStep(chk) ^ (v & 0x1f); - } - return chk; - } - function convert(data, inBits, outBits, pad) { - let value = 0; - let bits = 0; - const maxV = (1 << outBits) - 1; - const result = []; - for (let i = 0; i < data.length; ++i) { - value = (value << inBits) | data[i]; - bits += inBits; - while (bits >= outBits) { - bits -= outBits; - result.push((value >> bits) & maxV); - } - } - if (pad) { - if (bits > 0) { - result.push((value << (outBits - bits)) & maxV); - } - } - else { - if (bits >= inBits) - return 'Excess padding'; - if ((value << (outBits - bits)) & maxV) - return 'Non-zero padding'; - } - return result; - } - function toWords(bytes) { - return convert(bytes, 8, 5, true); - } - function fromWordsUnsafe(words) { - const res = convert(words, 5, 8, false); - if (Array.isArray(res)) - return res; - } - function fromWords(words) { - const res = convert(words, 5, 8, false); - if (Array.isArray(res)) - return res; - throw new Error(res); - } - function getLibraryFromEncoding(encoding) { - let ENCODING_CONST; - if (encoding === 'bech32') { - ENCODING_CONST = 1; - } - else { - ENCODING_CONST = 0x2bc830a3; - } - function encode(prefix, words, LIMIT) { - LIMIT = LIMIT || 90; - if (prefix.length + 7 + words.length > LIMIT) - throw new TypeError('Exceeds length limit'); - prefix = prefix.toLowerCase(); - // determine chk mod - let chk = prefixChk(prefix); - if (typeof chk === 'string') - throw new Error(chk); - let result = prefix + '1'; - for (let i = 0; i < words.length; ++i) { - const x = words[i]; - if (x >> 5 !== 0) - throw new Error('Non 5-bit word'); - chk = polymodStep(chk) ^ x; - result += ALPHABET.charAt(x); - } - for (let i = 0; i < 6; ++i) { - chk = polymodStep(chk); - } - chk ^= ENCODING_CONST; - for (let i = 0; i < 6; ++i) { - const v = (chk >> ((5 - i) * 5)) & 0x1f; - result += ALPHABET.charAt(v); - } - return result; - } - function __decode(str, LIMIT) { - LIMIT = LIMIT || 90; - if (str.length < 8) - return str + ' too short'; - if (str.length > LIMIT) - return 'Exceeds length limit'; - // don't allow mixed case - const lowered = str.toLowerCase(); - const uppered = str.toUpperCase(); - if (str !== lowered && str !== uppered) - return 'Mixed-case string ' + str; - str = lowered; - const split = str.lastIndexOf('1'); - if (split === -1) - return 'No separator character for ' + str; - if (split === 0) - return 'Missing prefix for ' + str; - const prefix = str.slice(0, split); - const wordChars = str.slice(split + 1); - if (wordChars.length < 6) - return 'Data too short'; - let chk = prefixChk(prefix); - if (typeof chk === 'string') - return chk; - const words = []; - for (let i = 0; i < wordChars.length; ++i) { - const c = wordChars.charAt(i); - const v = ALPHABET_MAP[c]; - if (v === undefined) - return 'Unknown character ' + c; - chk = polymodStep(chk) ^ v; - // not in the checksum? - if (i + 6 >= wordChars.length) - continue; - words.push(v); - } - if (chk !== ENCODING_CONST) - return 'Invalid checksum for ' + str; - return { prefix, words }; - } - function decodeUnsafe(str, LIMIT) { - const res = __decode(str, LIMIT); - if (typeof res === 'object') - return res; - } - function decode(str, LIMIT) { - const res = __decode(str, LIMIT); - if (typeof res === 'object') - return res; - throw new Error(res); - } - return { - decodeUnsafe, - decode, - encode, - toWords, - fromWordsUnsafe, - fromWords, - }; - } - dist$4.bech32 = getLibraryFromEncoding('bech32'); - dist$4.bech32m = getLibraryFromEncoding('bech32m'); - return dist$4; - } - - var dist$3 = {}; - - var BIP44Node = {}; - - var dist$2 = {}; - - var assert = {}; - - var dist$1 = {}; - - var error = {}; - - var hasRequiredError; - - function requireError () { - if (hasRequiredError) return error; - hasRequiredError = 1; - /** - * A `StructFailure` represents a single specific failure in validation. - */ - Object.defineProperty(error, "__esModule", { value: true }); - error.StructError = void 0; - /** - * `StructError` objects are thrown (or returned) when validation fails. - * - * Validation logic is design to exit early for maximum performance. The error - * represents the first error encountered during validation. For more detail, - * the `error.failures` property is a generator function that can be run to - * continue validation and receive all the failures in the data. - */ - class StructError extends TypeError { - constructor(failure, failures) { - let cached; - const { message, explanation, ...rest } = failure; - const { path } = failure; - const cause = path.length === 0 ? message : `At path: ${path.join('.')} -- ${message}`; - super(explanation ?? cause); - if (explanation !== null && explanation !== undefined) { - this.cause = cause; - } - Object.assign(this, rest); - this.name = this.constructor.name; - this.failures = () => { - return (cached ?? (cached = [failure, ...failures()])); - }; - } - } - error.StructError = StructError; - - return error; - } - - var struct = {}; - - var utils$5 = {}; - - var hasRequiredUtils$5; - - function requireUtils$5 () { - if (hasRequiredUtils$5) return utils$5; - hasRequiredUtils$5 = 1; - Object.defineProperty(utils$5, "__esModule", { value: true }); - utils$5.run = utils$5.toFailures = utils$5.toFailure = utils$5.shiftIterator = utils$5.print = utils$5.isPlainObject = utils$5.isObject = void 0; - /** - * Check if a value is an iterator. - * - * @param value - The value to check. - * @returns Whether the value is an iterator. - */ - function isIterable(value) { - return isObject(value) && typeof value[Symbol.iterator] === 'function'; - } - /** - * Check if a value is a plain object. - * - * @param value - The value to check. - * @returns Whether the value is a plain object. - */ - function isObject(value) { - return typeof value === 'object' && value !== null; - } - utils$5.isObject = isObject; - /** - * Check if a value is a plain object. - * - * @param value - The value to check. - * @returns Whether the value is a plain object. - */ - function isPlainObject(value) { - if (Object.prototype.toString.call(value) !== '[object Object]') { - return false; - } - const prototype = Object.getPrototypeOf(value); - return prototype === null || prototype === Object.prototype; - } - utils$5.isPlainObject = isPlainObject; - /** - * Return a value as a printable string. - * - * @param value - The value to print. - * @returns The value as a string. - */ - function print(value) { - if (typeof value === 'symbol') { - return value.toString(); - } - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - return typeof value === 'string' ? JSON.stringify(value) : `${value}`; - } - utils$5.print = print; - /** - * Shift (remove and return) the first value from the `input` iterator. - * Like `Array.prototype.shift()` but for an `Iterator`. - * - * @param input - The iterator to shift. - * @returns The first value of the iterator, or `undefined` if the iterator is - * empty. - */ - function shiftIterator(input) { - const { done, value } = input.next(); - return done ? undefined : value; - } - utils$5.shiftIterator = shiftIterator; - /** - * Convert a single validation result to a failure. - * - * @param result - The result to convert. - * @param context - The context of the validation. - * @param struct - The struct being validated. - * @param value - The value being validated. - * @returns A failure if the result is a failure, or `undefined` if the result - * is a success. - */ - function toFailure(result, context, struct, value) { - if (result === true) { - return undefined; - } - else if (result === false) { - // eslint-disable-next-line no-param-reassign - result = {}; - } - else if (typeof result === 'string') { - // eslint-disable-next-line no-param-reassign - result = { message: result }; - } - const { path, branch } = context; - const { type } = struct; - const { refinement, message = `Expected a value of type \`${type}\`${refinement ? ` with refinement \`${refinement}\`` : ''}, but received: \`${print(value)}\``, } = result; - return { - value, - type, - refinement, - key: path[path.length - 1], - path, - branch, - ...result, - message, - }; - } - utils$5.toFailure = toFailure; - /** - * Convert a validation result to an iterable of failures. - * - * @param result - The result to convert. - * @param context - The context of the validation. - * @param struct - The struct being validated. - * @param value - The value being validated. - * @yields The failures. - * @returns An iterable of failures. - */ - function* toFailures(result, context, struct, value) { - if (!isIterable(result)) { - // eslint-disable-next-line no-param-reassign - result = [result]; - } - for (const validationResult of result) { - const failure = toFailure(validationResult, context, struct, value); - if (failure) { - yield failure; - } - } - } - utils$5.toFailures = toFailures; - /** - * Check a value against a struct, traversing deeply into nested values, and - * returning an iterator of failures or success. - * - * @param value - The value to check. - * @param struct - The struct to check against. - * @param options - Optional settings. - * @param options.path - The path to the value in the input data. - * @param options.branch - The branch of the value in the input data. - * @param options.coerce - Whether to coerce the value before validating it. - * @param options.mask - Whether to mask the value before validating it. - * @param options.message - An optional message to include in the error. - * @yields An iterator of failures or success. - * @returns An iterator of failures or success. - */ - function* run(value, struct, options = {}) { - const { path = [], branch = [value], coerce = false, mask = false } = options; - const context = { path, branch }; - if (coerce) { - // eslint-disable-next-line no-param-reassign - value = struct.coercer(value, context); - if (mask && - struct.type !== 'type' && - isObject(struct.schema) && - isObject(value) && - !Array.isArray(value)) { - for (const key in value) { - if (struct.schema[key] === undefined) { - delete value[key]; - } - } - } - } - let status = 'valid'; - for (const failure of struct.validator(value, context)) { - failure.explanation = options.message; - status = 'not_valid'; - yield [failure, undefined]; - } - // eslint-disable-next-line prefer-const - for (let [innerKey, innerValue, innerStruct] of struct.entries(value, context)) { - const iterable = run(innerValue, innerStruct, { - path: innerKey === undefined ? path : [...path, innerKey], - branch: innerKey === undefined ? branch : [...branch, innerValue], - coerce, - mask, - message: options.message, - }); - for (const result of iterable) { - if (result[0]) { - status = - result[0].refinement === null || result[0].refinement === undefined - ? 'not_valid' - : 'not_refined'; - yield [result[0], undefined]; - } - else if (coerce) { - innerValue = result[1]; - if (innerKey === undefined) { - // eslint-disable-next-line no-param-reassign - value = innerValue; - } - else if (value instanceof Map) { - value.set(innerKey, innerValue); - } - else if (value instanceof Set) { - value.add(innerValue); - } - else if (isObject(value)) { - if (innerValue !== undefined || innerKey in value) { - value[innerKey] = innerValue; - } - } - } - } - } - if (status !== 'not_valid') { - for (const failure of struct.refiner(value, context)) { - failure.explanation = options.message; - status = 'not_refined'; - yield [failure, undefined]; - } - } - if (status === 'valid') { - yield [undefined, value]; - } - } - utils$5.run = run; - - return utils$5; - } - - var hasRequiredStruct; - - function requireStruct () { - if (hasRequiredStruct) return struct; - hasRequiredStruct = 1; - Object.defineProperty(struct, "__esModule", { value: true }); - struct.validate = struct.is = struct.mask = struct.create = struct.assert = struct.ExactOptionalStruct = struct.Struct = void 0; - const error_js_1 = /*@__PURE__*/ requireError(); - const utils_js_1 = /*@__PURE__*/ requireUtils$5(); - /** - * `Struct` objects encapsulate the validation logic for a specific type of - * values. Once constructed, you use the `assert`, `is` or `validate` helpers to - * validate unknown input data against the struct. - */ - class Struct { - constructor(props) { - const { type, schema, validator, refiner, coercer = (value) => value, entries = function* () { - /* noop */ - }, } = props; - this.type = type; - this.schema = schema; - this.entries = entries; - this.coercer = coercer; - if (validator) { - this.validator = (value, context) => { - const result = validator(value, context); - return (0, utils_js_1.toFailures)(result, context, this, value); - }; - } - else { - this.validator = () => []; - } - if (refiner) { - this.refiner = (value, context) => { - const result = refiner(value, context); - return (0, utils_js_1.toFailures)(result, context, this, value); - }; - } - else { - this.refiner = () => []; - } - } - /** - * Assert that a value passes the struct's validation, throwing if it doesn't. - */ - assert(value, message) { - return assert(value, this, message); - } - /** - * Create a value with the struct's coercion logic, then validate it. - */ - create(value, message) { - return create(value, this, message); - } - /** - * Check if a value passes the struct's validation. - */ - is(value) { - return is(value, this); - } - /** - * Mask a value, coercing and validating it, but returning only the subset of - * properties defined by the struct's schema. - */ - mask(value, message) { - return mask(value, this, message); - } - /** - * Validate a value with the struct's validation logic, returning a tuple - * representing the result. - * - * You may optionally pass `true` for the `withCoercion` argument to coerce - * the value before attempting to validate it. If you do, the result will - * contain the coerced result when successful. - */ - validate(value, options = {}) { - return validate(value, this, options); - } - } - struct.Struct = Struct; - // String instead of a Symbol in case of multiple different versions of this library. - const ExactOptionalBrand = 'EXACT_OPTIONAL'; - /** - * An `ExactOptionalStruct` is a `Struct` that is used to create exactly optional - * properties of `object()` structs. - */ - class ExactOptionalStruct extends Struct { - constructor(props) { - super({ - ...props, - type: `exact optional ${props.type}`, - }); - this.brand = ExactOptionalBrand; - } - static isExactOptional(value) { - return ((0, utils_js_1.isObject)(value) && 'brand' in value && value.brand === ExactOptionalBrand); - } - } - struct.ExactOptionalStruct = ExactOptionalStruct; - /** - * Assert that a value passes a struct, throwing if it doesn't. - * - * @param value - The value to validate. - * @param struct - The struct to validate against. - * @param message - An optional message to include in the error. - */ - function assert(value, struct, message) { - const result = validate(value, struct, { message }); - if (result[0]) { - throw result[0]; - } - } - struct.assert = assert; - /** - * Create a value with the coercion logic of struct and validate it. - * - * @param value - The value to coerce and validate. - * @param struct - The struct to validate against. - * @param message - An optional message to include in the error. - * @returns The coerced and validated value. - */ - function create(value, struct, message) { - const result = validate(value, struct, { coerce: true, message }); - if (result[0]) { - throw result[0]; - } - else { - return result[1]; - } - } - struct.create = create; - /** - * Mask a value, returning only the subset of properties defined by a struct. - * - * @param value - The value to mask. - * @param struct - The struct to mask against. - * @param message - An optional message to include in the error. - * @returns The masked value. - */ - function mask(value, struct, message) { - const result = validate(value, struct, { coerce: true, mask: true, message }); - if (result[0]) { - throw result[0]; - } - else { - return result[1]; - } - } - struct.mask = mask; - /** - * Check if a value passes a struct. - * - * @param value - The value to validate. - * @param struct - The struct to validate against. - * @returns `true` if the value passes the struct, `false` otherwise. - */ - function is(value, struct) { - const result = validate(value, struct); - return !result[0]; - } - struct.is = is; - /** - * Validate a value against a struct, returning an error if invalid, or the - * value (with potential coercion) if valid. - * - * @param value - The value to validate. - * @param struct - The struct to validate against. - * @param options - Optional settings. - * @param options.coerce - Whether to coerce the value before validating it. - * @param options.mask - Whether to mask the value before validating it. - * @param options.message - An optional message to include in the error. - * @returns A tuple containing the error (if invalid) and the validated value. - */ - function validate(value, struct, options = {}) { - const tuples = (0, utils_js_1.run)(value, struct, options); - const tuple = (0, utils_js_1.shiftIterator)(tuples); - if (tuple[0]) { - const error = new error_js_1.StructError(tuple[0], function* () { - for (const innerTuple of tuples) { - if (innerTuple[0]) { - yield innerTuple[0]; - } - } - }); - return [error, undefined]; - } - const validatedValue = tuple[1]; - return [undefined, validatedValue]; - } - struct.validate = validate; - - return struct; - } - - var coercions = {}; - - var types = {}; - - var utilities = {}; - - var hasRequiredUtilities; - - function requireUtilities () { - if (hasRequiredUtilities) return utilities; - hasRequiredUtilities = 1; - Object.defineProperty(utilities, "__esModule", { value: true }); - utilities.pick = utilities.partial = utilities.omit = utilities.lazy = utilities.dynamic = utilities.deprecated = utilities.define = utilities.assign = void 0; - const struct_js_1 = /*@__PURE__*/ requireStruct(); - const types_js_1 = /*@__PURE__*/ requireTypes(); - /** - * Create a new struct that combines the properties from multiple object or type - * structs. Its return type will match the first parameter's type. - * - * @param Structs - The structs to combine. - * @returns A new struct that combines the properties of the input structs. - */ - function assign(...Structs) { - const isType = Structs[0]?.type === 'type'; - const schemas = Structs.map(({ schema }) => schema); - const schema = Object.assign({}, ...schemas); - return isType ? (0, types_js_1.type)(schema) : (0, types_js_1.object)(schema); - } - utilities.assign = assign; - /** - * Define a new struct type with a custom validation function. - * - * @param name - The name of the struct type. - * @param validator - The validation function. - * @returns A new struct type. - */ - function define(name, validator) { - return new struct_js_1.Struct({ type: name, schema: null, validator }); - } - utilities.define = define; - /** - * Create a new struct based on an existing struct, but the value is allowed to - * be `undefined`. `log` will be called if the value is not `undefined`. - * - * @param struct - The struct to augment. - * @param log - The function to call when the value is not `undefined`. - * @returns A new struct that will only accept `undefined` or values that pass - * the input struct. - */ - function deprecated(struct, log) { - return new struct_js_1.Struct({ - ...struct, - refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx), - validator(value, ctx) { - if (value === undefined) { - return true; - } - log(value, ctx); - return struct.validator(value, ctx); - }, - }); - } - utilities.deprecated = deprecated; - /** - * Create a struct with dynamic validation logic. - * - * The callback will receive the value currently being validated, and must - * return a struct object to validate it with. This can be useful to model - * validation logic that changes based on its input. - * - * @param fn - The callback to create the struct. - * @returns A new struct with dynamic validation logic. - */ - function dynamic(fn) { - return new struct_js_1.Struct({ - type: 'dynamic', - schema: null, - *entries(value, ctx) { - const struct = fn(value, ctx); - yield* struct.entries(value, ctx); - }, - validator(value, ctx) { - const struct = fn(value, ctx); - return struct.validator(value, ctx); - }, - coercer(value, ctx) { - const struct = fn(value, ctx); - return struct.coercer(value, ctx); - }, - refiner(value, ctx) { - const struct = fn(value, ctx); - return struct.refiner(value, ctx); - }, - }); - } - utilities.dynamic = dynamic; - /** - * Create a struct with lazily evaluated validation logic. - * - * The first time validation is run with the struct, the callback will be called - * and must return a struct object to use. This is useful for cases where you - * want to have self-referential structs for nested data structures to avoid a - * circular definition problem. - * - * @param fn - The callback to create the struct. - * @returns A new struct with lazily evaluated validation logic. - */ - function lazy(fn) { - let struct; - return new struct_js_1.Struct({ - type: 'lazy', - schema: null, - *entries(value, ctx) { - struct ?? (struct = fn()); - yield* struct.entries(value, ctx); - }, - validator(value, ctx) { - struct ?? (struct = fn()); - return struct.validator(value, ctx); - }, - coercer(value, ctx) { - struct ?? (struct = fn()); - return struct.coercer(value, ctx); - }, - refiner(value, ctx) { - struct ?? (struct = fn()); - return struct.refiner(value, ctx); - }, - }); - } - utilities.lazy = lazy; - /** - * Create a new struct based on an existing object struct, but excluding - * specific properties. - * - * Like TypeScript's `Omit` utility. - * - * @param struct - The struct to augment. - * @param keys - The keys to omit. - * @returns A new struct that will not accept the input keys. - */ - function omit(struct, keys) { - const { schema } = struct; - const subschema = { ...schema }; - for (const key of keys) { - delete subschema[key]; - } - switch (struct.type) { - case 'type': - return (0, types_js_1.type)(subschema); - default: - return (0, types_js_1.object)(subschema); - } - } - utilities.omit = omit; - /** - * Create a new struct based on an existing object struct, but with all of its - * properties allowed to be `undefined`. - * - * Like TypeScript's `Partial` utility. - * - * @param struct - The struct to augment. - * @returns A new struct that will accept the input keys as `undefined`. - */ - function partial(struct) { - const isStruct = struct instanceof struct_js_1.Struct; - const schema = isStruct ? { ...struct.schema } : { ...struct }; - // eslint-disable-next-line guard-for-in - for (const key in schema) { - schema[key] = (0, types_js_1.optional)(schema[key]); - } - if (isStruct && struct.type === 'type') { - return (0, types_js_1.type)(schema); - } - return (0, types_js_1.object)(schema); - } - utilities.partial = partial; - /** - * Create a new struct based on an existing object struct, but only including - * specific properties. - * - * Like TypeScript's `Pick` utility. - * - * @param struct - The struct to augment. - * @param keys - The keys to pick. - * @returns A new struct that will only accept the input keys. - */ - function pick(struct, keys) { - const { schema } = struct; - const subschema = {}; - for (const key of keys) { - subschema[key] = schema[key]; - } - switch (struct.type) { - case 'type': - return (0, types_js_1.type)(subschema); - default: - return (0, types_js_1.object)(subschema); - } - } - utilities.pick = pick; - - return utilities; - } - - var hasRequiredTypes; - - function requireTypes () { - if (hasRequiredTypes) return types; - hasRequiredTypes = 1; - Object.defineProperty(types, "__esModule", { value: true }); - types.unknown = types.union = types.type = types.tuple = types.string = types.set = types.regexp = types.record = types.exactOptional = types.optional = types.object = types.number = types.nullable = types.never = types.map = types.literal = types.intersection = types.integer = types.instance = types.func = types.enums = types.date = types.boolean = types.bigint = types.array = types.any = void 0; - const struct_js_1 = /*@__PURE__*/ requireStruct(); - const utils_js_1 = /*@__PURE__*/ requireUtils$5(); - const utilities_js_1 = /*@__PURE__*/ requireUtilities(); - /** - * Ensure that any value passes validation. - * - * @returns A struct that will always pass validation. - */ - function any() { - return (0, utilities_js_1.define)('any', () => true); - } - types.any = any; - /** - * Ensure that a value is an array and that its elements are of a specific type. - * - * Note: If you omit the element struct, the arrays elements will not be - * iterated at all. This can be helpful for cases where performance is critical, - * and it is preferred to using `array(any())`. - * - * @param Element - The struct to validate each element in the array against. - * @returns A new struct that will only accept arrays of the given type. - */ - function array(Element) { - return new struct_js_1.Struct({ - type: 'array', - schema: Element, - *entries(value) { - if (Element && Array.isArray(value)) { - for (const [index, arrayValue] of value.entries()) { - yield [index, arrayValue, Element]; - } - } - }, - coercer(value) { - return Array.isArray(value) ? value.slice() : value; - }, - validator(value) { - return (Array.isArray(value) || - `Expected an array value, but received: ${(0, utils_js_1.print)(value)}`); - }, - }); - } - types.array = array; - /** - * Ensure that a value is a bigint. - * - * @returns A new struct that will only accept bigints. - */ - function bigint() { - return (0, utilities_js_1.define)('bigint', (value) => { - return typeof value === 'bigint'; - }); - } - types.bigint = bigint; - /** - * Ensure that a value is a boolean. - * - * @returns A new struct that will only accept booleans. - */ - function boolean() { - return (0, utilities_js_1.define)('boolean', (value) => { - return typeof value === 'boolean'; - }); - } - types.boolean = boolean; - /** - * Ensure that a value is a valid `Date`. - * - * Note: this also ensures that the value is *not* an invalid `Date` object, - * which can occur when parsing a date fails but still returns a `Date`. - * - * @returns A new struct that will only accept valid `Date` objects. - */ - function date() { - return (0, utilities_js_1.define)('date', (value) => { - return ((value instanceof Date && !isNaN(value.getTime())) || - `Expected a valid \`Date\` object, but received: ${(0, utils_js_1.print)(value)}`); - }); - } - types.date = date; - /** - * Ensure that a value is one of a set of potential values. - * - * Note: after creating the struct, you can access the definition of the - * potential values as `struct.schema`. - * - * @param values - The potential values that the input can be. - * @returns A new struct that will only accept the given values. - */ - function enums(values) { - const schema = {}; - const description = values.map((value) => (0, utils_js_1.print)(value)).join(); - for (const key of values) { - schema[key] = key; - } - return new struct_js_1.Struct({ - type: 'enums', - schema, - validator(value) { - return (values.includes(value) || - `Expected one of \`${description}\`, but received: ${(0, utils_js_1.print)(value)}`); - }, - }); - } - types.enums = enums; - /** - * Ensure that a value is a function. - * - * @returns A new struct that will only accept functions. - */ - // eslint-disable-next-line @typescript-eslint/ban-types - function func() { - return (0, utilities_js_1.define)('func', (value) => { - return (typeof value === 'function' || - `Expected a function, but received: ${(0, utils_js_1.print)(value)}`); - }); - } - types.func = func; - /** - * Ensure that a value is an instance of a specific class. - * - * @param Class - The class that the value must be an instance of. - * @returns A new struct that will only accept instances of the given class. - */ - function instance(Class) { - return (0, utilities_js_1.define)('instance', (value) => { - return (value instanceof Class || - `Expected a \`${Class.name}\` instance, but received: ${(0, utils_js_1.print)(value)}`); - }); - } - types.instance = instance; - /** - * Ensure that a value is an integer. - * - * @returns A new struct that will only accept integers. - */ - function integer() { - return (0, utilities_js_1.define)('integer', (value) => { - return ((typeof value === 'number' && !isNaN(value) && Number.isInteger(value)) || - `Expected an integer, but received: ${(0, utils_js_1.print)(value)}`); - }); - } - types.integer = integer; - /** - * Ensure that a value matches all of a set of types. - * - * @param Structs - The set of structs that the value must match. - * @returns A new struct that will only accept values that match all of the - * given structs. - */ - function intersection(Structs) { - return new struct_js_1.Struct({ - type: 'intersection', - schema: null, - *entries(value, context) { - for (const { entries } of Structs) { - yield* entries(value, context); - } - }, - *validator(value, context) { - for (const { validator } of Structs) { - yield* validator(value, context); - } - }, - *refiner(value, context) { - for (const { refiner } of Structs) { - yield* refiner(value, context); - } - }, - }); - } - types.intersection = intersection; - /** - * Ensure that a value is an exact value, using `===` for comparison. - * - * @param constant - The exact value that the input must be. - * @returns A new struct that will only accept the exact given value. - */ - function literal(constant) { - const description = (0, utils_js_1.print)(constant); - const valueType = typeof constant; - return new struct_js_1.Struct({ - type: 'literal', - schema: valueType === 'string' || - valueType === 'number' || - valueType === 'boolean' - ? constant - : null, - validator(value) { - return (value === constant || - `Expected the literal \`${description}\`, but received: ${(0, utils_js_1.print)(value)}`); - }, - }); - } - types.literal = literal; - /** - * Ensure that a value is a `Map` object, and that its keys and values are of - * specific types. - * - * @param Key - The struct to validate each key in the map against. - * @param Value - The struct to validate each value in the map against. - * @returns A new struct that will only accept `Map` objects. - */ - function map(Key, Value) { - return new struct_js_1.Struct({ - type: 'map', - schema: null, - *entries(value) { - if (Key && Value && value instanceof Map) { - for (const [mapKey, mapValue] of value.entries()) { - yield [mapKey, mapKey, Key]; - yield [mapKey, mapValue, Value]; - } - } - }, - coercer(value) { - return value instanceof Map ? new Map(value) : value; - }, - validator(value) { - return (value instanceof Map || - `Expected a \`Map\` object, but received: ${(0, utils_js_1.print)(value)}`); - }, - }); - } - types.map = map; - /** - * Ensure that no value ever passes validation. - * - * @returns A new struct that will never pass validation. - */ - function never() { - return (0, utilities_js_1.define)('never', () => false); - } - types.never = never; - /** - * Augment an existing struct to allow `null` values. - * - * @param struct - The struct to augment. - * @returns A new struct that will accept `null` values. - */ - function nullable(struct) { - return new struct_js_1.Struct({ - ...struct, - validator: (value, ctx) => value === null || struct.validator(value, ctx), - refiner: (value, ctx) => value === null || struct.refiner(value, ctx), - }); - } - types.nullable = nullable; - /** - * Ensure that a value is a number. - * - * @returns A new struct that will only accept numbers. - */ - function number() { - return (0, utilities_js_1.define)('number', (value) => { - return ((typeof value === 'number' && !isNaN(value)) || - `Expected a number, but received: ${(0, utils_js_1.print)(value)}`); - }); - } - types.number = number; - /** - * Ensure that a value is an object, that it has a known set of properties, - * and that its properties are of specific types. - * - * Note: Unrecognized properties will fail validation. - * - * @param schema - An object that defines the structure of the object. - * @returns A new struct that will only accept objects. - */ - function object(schema) { - const knowns = schema ? Object.keys(schema) : []; - const Never = never(); - return new struct_js_1.Struct({ - type: 'object', - schema: schema ?? null, - *entries(value) { - if (schema && (0, utils_js_1.isObject)(value)) { - const unknowns = new Set(Object.keys(value)); - for (const key of knowns) { - unknowns.delete(key); - const propertySchema = schema[key]; - if (struct_js_1.ExactOptionalStruct.isExactOptional(propertySchema) && - !Object.prototype.hasOwnProperty.call(value, key)) { - continue; - } - yield [key, value[key], schema[key]]; - } - for (const key of unknowns) { - yield [key, value[key], Never]; - } - } - }, - validator(value) { - return ((0, utils_js_1.isObject)(value) || `Expected an object, but received: ${(0, utils_js_1.print)(value)}`); - }, - coercer(value) { - return (0, utils_js_1.isObject)(value) ? { ...value } : value; - }, - }); - } - types.object = object; - /** - * Augment a struct to allow `undefined` values. - * - * @param struct - The struct to augment. - * @returns A new struct that will accept `undefined` values. - */ - function optional(struct) { - return new struct_js_1.Struct({ - ...struct, - validator: (value, ctx) => value === undefined || struct.validator(value, ctx), - refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx), - }); - } - types.optional = optional; - /** - * Augment a struct such that, if it is the property of an object, it is exactly optional. - * In other words, it is either present with the correct type, or not present at all. - * - * NOTE: Only intended for use with `object()` structs. - * - * @param struct - The struct to augment. - * @returns A new struct that can be used to create exactly optional properties of `object()` - * structs. - */ - function exactOptional(struct) { - return new struct_js_1.ExactOptionalStruct(struct); - } - types.exactOptional = exactOptional; - /** - * Ensure that a value is an object with keys and values of specific types, but - * without ensuring any specific shape of properties. - * - * Like TypeScript's `Record` utility. - */ - /** - * Ensure that a value is an object with keys and values of specific types, but - * without ensuring any specific shape of properties. - * - * @param Key - The struct to validate each key in the record against. - * @param Value - The struct to validate each value in the record against. - * @returns A new struct that will only accept objects. - */ - function record(Key, Value) { - return new struct_js_1.Struct({ - type: 'record', - schema: null, - *entries(value) { - if ((0, utils_js_1.isObject)(value)) { - // eslint-disable-next-line guard-for-in - for (const objectKey in value) { - const objectValue = value[objectKey]; - yield [objectKey, objectKey, Key]; - yield [objectKey, objectValue, Value]; - } - } - }, - validator(value) { - return ((0, utils_js_1.isObject)(value) || `Expected an object, but received: ${(0, utils_js_1.print)(value)}`); - }, - }); - } - types.record = record; - /** - * Ensure that a value is a `RegExp`. - * - * Note: this does not test the value against the regular expression! For that - * you need to use the `pattern()` refinement. - * - * @returns A new struct that will only accept `RegExp` objects. - */ - function regexp() { - return (0, utilities_js_1.define)('regexp', (value) => { - return value instanceof RegExp; - }); - } - types.regexp = regexp; - /** - * Ensure that a value is a `Set` object, and that its elements are of a - * specific type. - * - * @param Element - The struct to validate each element in the set against. - * @returns A new struct that will only accept `Set` objects. - */ - function set(Element) { - return new struct_js_1.Struct({ - type: 'set', - schema: null, - *entries(value) { - if (Element && value instanceof Set) { - for (const setValue of value) { - yield [setValue, setValue, Element]; - } - } - }, - coercer(value) { - return value instanceof Set ? new Set(value) : value; - }, - validator(value) { - return (value instanceof Set || - `Expected a \`Set\` object, but received: ${(0, utils_js_1.print)(value)}`); - }, - }); - } - types.set = set; - /** - * Ensure that a value is a string. - * - * @returns A new struct that will only accept strings. - */ - function string() { - return (0, utilities_js_1.define)('string', (value) => { - return (typeof value === 'string' || - `Expected a string, but received: ${(0, utils_js_1.print)(value)}`); - }); - } - types.string = string; - /** - * Ensure that a value is a tuple of a specific length, and that each of its - * elements is of a specific type. - * - * @param Structs - The set of structs that the value must match. - * @returns A new struct that will only accept tuples of the given types. - */ - function tuple(Structs) { - const Never = never(); - return new struct_js_1.Struct({ - type: 'tuple', - schema: null, - *entries(value) { - if (Array.isArray(value)) { - const length = Math.max(Structs.length, value.length); - for (let i = 0; i < length; i++) { - yield [i, value[i], Structs[i] || Never]; - } - } - }, - validator(value) { - return (Array.isArray(value) || - `Expected an array, but received: ${(0, utils_js_1.print)(value)}`); - }, - }); - } - types.tuple = tuple; - /** - * Ensure that a value has a set of known properties of specific types. - * - * Note: Unrecognized properties are allowed and untouched. This is similar to - * how TypeScript's structural typing works. - * - * @param schema - An object that defines the structure of the object. - * @returns A new struct that will only accept objects. - */ - function type(schema) { - const keys = Object.keys(schema); - return new struct_js_1.Struct({ - type: 'type', - schema, - *entries(value) { - if ((0, utils_js_1.isObject)(value)) { - for (const k of keys) { - yield [k, value[k], schema[k]]; - } - } - }, - validator(value) { - return ((0, utils_js_1.isObject)(value) || `Expected an object, but received: ${(0, utils_js_1.print)(value)}`); - }, - coercer(value) { - return (0, utils_js_1.isObject)(value) ? { ...value } : value; - }, - }); - } - types.type = type; - /** - * Ensure that a value matches one of a set of types. - * - * @param Structs - The set of structs that the value must match. - * @returns A new struct that will only accept values that match one of the - * given structs. - */ - function union(Structs) { - const description = Structs.map((struct) => struct.type).join(' | '); - return new struct_js_1.Struct({ - type: 'union', - schema: null, - coercer(value) { - for (const InnerStruct of Structs) { - const [error, coerced] = InnerStruct.validate(value, { coerce: true }); - if (!error) { - return coerced; - } - } - return value; - }, - validator(value, ctx) { - const failures = []; - for (const InnerStruct of Structs) { - const [...tuples] = (0, utils_js_1.run)(value, InnerStruct, ctx); - const [first] = tuples; - if (!first?.[0]) { - return []; - } - for (const [failure] of tuples) { - if (failure) { - failures.push(failure); - } - } - } - return [ - `Expected the value to satisfy a union of \`${description}\`, but received: ${(0, utils_js_1.print)(value)}`, - ...failures, - ]; - }, - }); - } - types.union = union; - /** - * Ensure that any value passes validation, without widening its type to `any`. - * - * @returns A struct that will always pass validation. - */ - function unknown() { - return (0, utilities_js_1.define)('unknown', () => true); - } - types.unknown = unknown; - - return types; - } - - var hasRequiredCoercions; - - function requireCoercions () { - if (hasRequiredCoercions) return coercions; - hasRequiredCoercions = 1; - Object.defineProperty(coercions, "__esModule", { value: true }); - coercions.trimmed = coercions.defaulted = coercions.coerce = void 0; - const struct_js_1 = /*@__PURE__*/ requireStruct(); - const utils_js_1 = /*@__PURE__*/ requireUtils$5(); - const types_js_1 = /*@__PURE__*/ requireTypes(); - /** - * Augment a `Struct` to add an additional coercion step to its input. - * - * This allows you to transform input data before validating it, to increase the - * likelihood that it passes validation—for example for default values, parsing - * different formats, etc. - * - * Note: You must use `create(value, Struct)` on the value to have the coercion - * take effect! Using simply `assert()` or `is()` will not use coercion. - * - * @param struct - The struct to augment. - * @param condition - A struct that the input must pass to be coerced. - * @param coercer - A function that takes the input and returns the coerced - * value. - * @returns A new struct that will coerce its input before validating it. - */ - function coerce(struct, condition, coercer) { - return new struct_js_1.Struct({ - ...struct, - coercer: (value, ctx) => { - return (0, struct_js_1.is)(value, condition) - ? struct.coercer(coercer(value, ctx), ctx) - : struct.coercer(value, ctx); - }, - }); - } - coercions.coerce = coerce; - /** - * Augment a struct to replace `undefined` values with a default. - * - * Note: You must use `create(value, Struct)` on the value to have the coercion - * take effect! Using simply `assert()` or `is()` will not use coercion. - * - * @param struct - The struct to augment. - * @param fallback - The value to use when the input is `undefined`. - * @param options - An optional options object. - * @param options.strict - When `true`, the fallback will only be used when the - * input is `undefined`. When `false`, the fallback will be used when the input - * is `undefined` or when the input is a plain object and the fallback is a - * plain object, and any keys in the fallback are missing from the input. - * @returns A new struct that will replace `undefined` inputs with a default. - */ - function defaulted(struct, fallback, options = {}) { - return coerce(struct, (0, types_js_1.unknown)(), (value) => { - const result = typeof fallback === 'function' ? fallback() : fallback; - if (value === undefined) { - return result; - } - if (!options.strict && (0, utils_js_1.isPlainObject)(value) && (0, utils_js_1.isPlainObject)(result)) { - const ret = { ...value }; - let changed = false; - for (const key in result) { - if (ret[key] === undefined) { - ret[key] = result[key]; - changed = true; - } - } - if (changed) { - return ret; - } - } - return value; - }); - } - coercions.defaulted = defaulted; - /** - * Augment a struct to trim string inputs. - * - * Note: You must use `create(value, Struct)` on the value to have the coercion - * take effect! Using simply `assert()` or `is()` will not use coercion. - * - * @param struct - The struct to augment. - * @returns A new struct that will trim string inputs before validating them. - */ - function trimmed(struct) { - return coerce(struct, (0, types_js_1.string)(), (value) => value.trim()); - } - coercions.trimmed = trimmed; - - return coercions; - } - - var refinements = {}; - - var hasRequiredRefinements; - - function requireRefinements () { - if (hasRequiredRefinements) return refinements; - hasRequiredRefinements = 1; - Object.defineProperty(refinements, "__esModule", { value: true }); - refinements.refine = refinements.size = refinements.pattern = refinements.nonempty = refinements.min = refinements.max = refinements.empty = void 0; - const struct_js_1 = /*@__PURE__*/ requireStruct(); - const utils_js_1 = /*@__PURE__*/ requireUtils$5(); - /** - * Ensure that a string, array, map, or set is empty. - * - * @param struct - The struct to augment. - * @returns A new struct that will only accept empty values. - */ - function empty(struct) { - return refine(struct, 'empty', (value) => { - // eslint-disable-next-line @typescript-eslint/no-shadow - const size = getSize(value); - return (size === 0 || - `Expected an empty ${struct.type} but received one with a size of \`${size}\``); - }); - } - refinements.empty = empty; - /** - * Get the size of a string, array, map, or set. - * - * @param value - The value to measure. - * @returns The size of the value. - */ - function getSize(value) { - if (value instanceof Map || value instanceof Set) { - return value.size; - } - return value.length; - } - /** - * Ensure that a number or date is below a threshold. - * - * @param struct - The struct to augment. - * @param threshold - The maximum value that the input can be. - * @param options - An optional options object. - * @param options.exclusive - When `true`, the input must be strictly less than - * the threshold. When `false`, the input must be less than or equal to the - * threshold. - * @returns A new struct that will only accept values below the threshold. - */ - function max(struct, threshold, options = {}) { - const { exclusive } = options; - return refine(struct, 'max', (value) => { - return exclusive - ? value < threshold - : value <= threshold || - `Expected a ${struct.type} less than ${exclusive ? '' : 'or equal to ' - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - }${threshold} but received \`${value}\``; - }); - } - refinements.max = max; - /** - * Ensure that a number or date is above a threshold. - * - * @param struct - The struct to augment. - * @param threshold - The minimum value that the input can be. - * @param options - An optional options object. - * @param options.exclusive - When `true`, the input must be strictly greater - * than the threshold. When `false`, the input must be greater than or equal to - * the threshold. - * @returns A new struct that will only accept values above the threshold. - */ - function min(struct, threshold, options = {}) { - const { exclusive } = options; - return refine(struct, 'min', (value) => { - return exclusive - ? value > threshold - : value >= threshold || - `Expected a ${struct.type} greater than ${exclusive ? '' : 'or equal to ' - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - }${threshold} but received \`${value}\``; - }); - } - refinements.min = min; - /** - * Ensure that a string, array, map or set is not empty. - * - * @param struct - The struct to augment. - * @returns A new struct that will only accept non-empty values. - */ - function nonempty(struct) { - return refine(struct, 'nonempty', (value) => { - // eslint-disable-next-line @typescript-eslint/no-shadow - const size = getSize(value); - return (size > 0 || `Expected a nonempty ${struct.type} but received an empty one`); - }); - } - refinements.nonempty = nonempty; - /** - * Ensure that a string matches a regular expression. - * - * @param struct - The struct to augment. - * @param regexp - The regular expression to match against. - * @returns A new struct that will only accept strings matching the regular - * expression. - */ - function pattern(struct, regexp) { - return refine(struct, 'pattern', (value) => { - return (regexp.test(value) || - `Expected a ${struct.type} matching \`/${regexp.source}/\` but received "${value}"`); - }); - } - refinements.pattern = pattern; - /** - * Ensure that a string, array, number, date, map, or set has a size (or length, - * or time) between `min` and `max`. - * - * @param struct - The struct to augment. - * @param minimum - The minimum size that the input can be. - * @param maximum - The maximum size that the input can be. - * @returns A new struct that will only accept values within the given size - * range. - */ - function size(struct, minimum, maximum = minimum) { - const expected = `Expected a ${struct.type}`; - const of = minimum === maximum - ? `of \`${minimum}\`` - : `between \`${minimum}\` and \`${maximum}\``; - return refine(struct, 'size', (value) => { - if (typeof value === 'number' || value instanceof Date) { - return ((minimum <= value && value <= maximum) || - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - `${expected} ${of} but received \`${value}\``); - } - else if (value instanceof Map || value instanceof Set) { - // eslint-disable-next-line @typescript-eslint/no-shadow - const { size } = value; - return ((minimum <= size && size <= maximum) || - `${expected} with a size ${of} but received one with a size of \`${size}\``); - } - const { length } = value; - return ((minimum <= length && length <= maximum) || - `${expected} with a length ${of} but received one with a length of \`${length}\``); - }); - } - refinements.size = size; - /** - * Augment a `Struct` to add an additional refinement to the validation. - * - * The refiner function is guaranteed to receive a value of the struct's type, - * because the struct's existing validation will already have passed. This - * allows you to layer additional validation on top of existing structs. - * - * @param struct - The struct to augment. - * @param name - The name of the refinement. - * @param refiner - The refiner function. - * @returns A new struct that will run the refiner function after the existing - * validation. - */ - function refine(struct, name, refiner) { - return new struct_js_1.Struct({ - ...struct, - *refiner(value, ctx) { - yield* struct.refiner(value, ctx); - const result = refiner(value, ctx); - const failures = (0, utils_js_1.toFailures)(result, ctx, struct, value); - for (const failure of failures) { - yield { ...failure, refinement: name }; - } - }, - }); - } - refinements.refine = refine; - - return refinements; - } - - var hasRequiredDist$3; - - function requireDist$3 () { - if (hasRequiredDist$3) return dist$1; - hasRequiredDist$3 = 1; - (function (exports) { - var __createBinding = (dist$1 && dist$1.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - })); - var __exportStar = (dist$1 && dist$1.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); - }; - Object.defineProperty(exports, "__esModule", { value: true }); - __exportStar(/*@__PURE__*/ requireError(), exports); - __exportStar(/*@__PURE__*/ requireStruct(), exports); - __exportStar(/*@__PURE__*/ requireCoercions(), exports); - __exportStar(/*@__PURE__*/ requireRefinements(), exports); - __exportStar(/*@__PURE__*/ requireTypes(), exports); - __exportStar(/*@__PURE__*/ requireUtilities(), exports); - - } (dist$1)); - return dist$1; - } - - var errors = {}; - - /** @template [T=undefined] */ - class ErrorWithCause extends Error { - /** - * @param {string} message - * @param {{ cause?: T }} options - */ - constructor (message, { cause } = {}) { - super(message); - - /** @type {string} */ - this.name = ErrorWithCause.name; - if (cause) { - /** @type {T} */ - this.cause = cause; - } - /** @type {string} */ - this.message = message; - } - } - - var errorWithCause = /*#__PURE__*/Object.freeze({ - __proto__: null, - ErrorWithCause: ErrorWithCause - }); - - var require$$0$1 = /*@__PURE__*/getAugmentedNamespace(errorWithCause); - - /** - * @template {Error} T - * @param {unknown} err - * @param {new(...args: any[]) => T} reference - * @returns {T|undefined} - */ - const findCauseByReference = (err, reference) => { - if (!err || !reference) return; - if (!(err instanceof Error)) return; - if ( - !(reference.prototype instanceof Error) && - // @ts-ignore - reference !== Error - ) return; - - /** - * Ensures we don't go circular - * - * @type {Set} - */ - const seen = new Set(); - - /** @type {Error|undefined} */ - let currentErr = err; - - while (currentErr && !seen.has(currentErr)) { - seen.add(currentErr); - - if (currentErr instanceof reference) { - return currentErr; - } - - currentErr = getErrorCause(currentErr); - } - }; - - /** - * @param {Error|{ cause?: unknown|(()=>err)}} err - * @returns {Error|undefined} - */ - const getErrorCause = (err) => { - if (!err || typeof err !== 'object' || !('cause' in err)) { - return; - } - - // VError / NError style causes - if (typeof err.cause === 'function') { - const causeResult = err.cause(); - - return causeResult instanceof Error - ? causeResult - : undefined; - } else { - return err.cause instanceof Error - ? err.cause - : undefined; - } - }; - - /** - * Internal method that keeps a track of which error we have already added, to avoid circular recursion - * - * @private - * @param {Error} err - * @param {Set} seen - * @returns {string} - */ - const _stackWithCauses = (err, seen) => { - if (!(err instanceof Error)) return ''; - - const stack = err.stack || ''; - - // Ensure we don't go circular or crazily deep - if (seen.has(err)) { - return stack + '\ncauses have become circular...'; - } - - const cause = getErrorCause(err); - - // TODO: Follow up in https://github.com/nodejs/node/issues/38725#issuecomment-920309092 on how to log stuff - - if (cause) { - seen.add(err); - return (stack + '\ncaused by: ' + _stackWithCauses(cause, seen)); - } else { - return stack; - } - }; - - /** - * @param {Error} err - * @returns {string} - */ - const stackWithCauses = (err) => _stackWithCauses(err, new Set()); - - /** - * Internal method that keeps a track of which error we have already added, to avoid circular recursion - * - * @private - * @param {Error} err - * @param {Set} seen - * @param {boolean} [skip] - * @returns {string} - */ - const _messageWithCauses = (err, seen, skip) => { - if (!(err instanceof Error)) return ''; - - const message = skip ? '' : (err.message || ''); - - // Ensure we don't go circular or crazily deep - if (seen.has(err)) { - return message + ': ...'; - } - - const cause = getErrorCause(err); - - if (cause) { - seen.add(err); - - const skipIfVErrorStyleCause = 'cause' in err && typeof err.cause === 'function'; - - return (message + - (skipIfVErrorStyleCause ? '' : ': ') + - _messageWithCauses(cause, seen, skipIfVErrorStyleCause)); - } else { - return message; - } - }; - - /** - * @param {Error} err - * @returns {string} - */ - const messageWithCauses = (err) => _messageWithCauses(err, new Set()); - - var helpers = /*#__PURE__*/Object.freeze({ - __proto__: null, - findCauseByReference: findCauseByReference, - getErrorCause: getErrorCause, - messageWithCauses: messageWithCauses, - stackWithCauses: stackWithCauses - }); - - var require$$1 = /*@__PURE__*/getAugmentedNamespace(helpers); - - var ponyCause; - var hasRequiredPonyCause; - - function requirePonyCause () { - if (hasRequiredPonyCause) return ponyCause; - hasRequiredPonyCause = 1; - - const { ErrorWithCause } = require$$0$1; // linemod-replace-with: export { ErrorWithCause } from './lib/error-with-cause.mjs'; - - const { // linemod-replace-with: export { - findCauseByReference, - getErrorCause, - messageWithCauses, - stackWithCauses, - } = require$$1; // linemod-replace-with: } from './lib/helpers.mjs'; - - ponyCause = { // linemod-remove - ErrorWithCause, // linemod-remove - findCauseByReference, // linemod-remove - getErrorCause, // linemod-remove - stackWithCauses, // linemod-remove - messageWithCauses, // linemod-remove - }; // linemod-remove - return ponyCause; - } - - var misc = {}; - - var hasRequiredMisc; - - function requireMisc () { - if (hasRequiredMisc) return misc; - hasRequiredMisc = 1; - (function (exports) { - // - // Types - // - Object.defineProperty(exports, "__esModule", { value: true }); - exports.calculateNumberSize = exports.calculateStringSize = exports.isASCII = exports.isPlainObject = exports.ESCAPE_CHARACTERS_REGEXP = exports.JsonSize = exports.getKnownPropertyNames = exports.hasProperty = exports.isObject = exports.isNullOrUndefined = exports.isNonEmptyArray = void 0; - // - // Type Guards - // - /** - * A {@link NonEmptyArray} type guard. - * - * @template Element - The non-empty array member type. - * @param value - The value to check. - * @returns Whether the value is a non-empty array. - */ - function isNonEmptyArray(value) { - return Array.isArray(value) && value.length > 0; - } - exports.isNonEmptyArray = isNonEmptyArray; - /** - * Type guard for "nullishness". - * - * @param value - Any value. - * @returns `true` if the value is null or undefined, `false` otherwise. - */ - function isNullOrUndefined(value) { - return value === null || value === undefined; - } - exports.isNullOrUndefined = isNullOrUndefined; - /** - * A type guard for {@link RuntimeObject}. - * - * @param value - The value to check. - * @returns Whether the specified value has a runtime type of `object` and is - * neither `null` nor an `Array`. - */ - function isObject(value) { - return Boolean(value) && typeof value === 'object' && !Array.isArray(value); - } - exports.isObject = isObject; - // - // Other utility functions - // - /** - * A type guard for ensuring an object has a property. - * - * @param objectToCheck - The object to check. - * @param name - The property name to check for. - * @returns Whether the specified object has an own property with the specified - * name, regardless of whether it is enumerable or not. - */ - const hasProperty = (objectToCheck, name) => Object.hasOwnProperty.call(objectToCheck, name); - exports.hasProperty = hasProperty; - /** - * `Object.getOwnPropertyNames()` is intentionally generic: it returns the - * immediate property names of an object, but it cannot make guarantees about - * the contents of that object, so the type of the property names is merely - * `string[]`. While this is technically accurate, it is also unnecessary if we - * have an object with a type that we own (such as an enum). - * - * @param object - The plain object. - * @returns The own property names of the object which are assigned a type - * derived from the object itself. - */ - function getKnownPropertyNames(object) { - return Object.getOwnPropertyNames(object); - } - exports.getKnownPropertyNames = getKnownPropertyNames; - (function (JsonSize) { - JsonSize[JsonSize["Null"] = 4] = "Null"; - JsonSize[JsonSize["Comma"] = 1] = "Comma"; - JsonSize[JsonSize["Wrapper"] = 1] = "Wrapper"; - JsonSize[JsonSize["True"] = 4] = "True"; - JsonSize[JsonSize["False"] = 5] = "False"; - JsonSize[JsonSize["Quote"] = 1] = "Quote"; - JsonSize[JsonSize["Colon"] = 1] = "Colon"; - // eslint-disable-next-line @typescript-eslint/no-shadow - JsonSize[JsonSize["Date"] = 24] = "Date"; - })(exports.JsonSize || (exports.JsonSize = {})); - /** - * Regular expression with pattern matching for (special) escaped characters. - */ - exports.ESCAPE_CHARACTERS_REGEXP = /"|\\|\n|\r|\t/gu; - /** - * Check if the value is plain object. - * - * @param value - Value to be checked. - * @returns True if an object is the plain JavaScript object, - * false if the object is not plain (e.g. function). - */ - function isPlainObject(value) { - if (typeof value !== 'object' || value === null) { - return false; - } - try { - let proto = value; - while (Object.getPrototypeOf(proto) !== null) { - proto = Object.getPrototypeOf(proto); - } - return Object.getPrototypeOf(value) === proto; - } - catch (_) { - return false; - } - } - exports.isPlainObject = isPlainObject; - /** - * Check if character is ASCII. - * - * @param character - Character. - * @returns True if a character code is ASCII, false if not. - */ - function isASCII(character) { - return character.charCodeAt(0) <= 127; - } - exports.isASCII = isASCII; - /** - * Calculate string size. - * - * @param value - String value to calculate size. - * @returns Number of bytes used to store whole string value. - */ - function calculateStringSize(value) { - const size = value.split('').reduce((total, character) => { - if (isASCII(character)) { - return total + 1; - } - return total + 2; - }, 0); - // Also detect characters that need backslash escape - return size + (value.match(exports.ESCAPE_CHARACTERS_REGEXP) ?? []).length; - } - exports.calculateStringSize = calculateStringSize; - /** - * Calculate size of a number ofter JSON serialization. - * - * @param value - Number value to calculate size. - * @returns Number of bytes used to store whole number in JSON. - */ - function calculateNumberSize(value) { - return value.toString().length; - } - exports.calculateNumberSize = calculateNumberSize; - - } (misc)); - return misc; - } - - var hasRequiredErrors; - - function requireErrors () { - if (hasRequiredErrors) return errors; - hasRequiredErrors = 1; - Object.defineProperty(errors, "__esModule", { value: true }); - errors.wrapError = errors.getErrorMessage = errors.isErrorWithStack = errors.isErrorWithMessage = errors.isErrorWithCode = void 0; - const pony_cause_1 = requirePonyCause(); - const misc_1 = /*@__PURE__*/ requireMisc(); - /** - * Type guard for determining whether the given value is an instance of Error. - * For errors generated via `fs.promises`, `error instanceof Error` won't work, - * so we have to come up with another way of testing. - * - * @param error - The object to check. - * @returns A boolean. - */ - function isError(error) { - return (error instanceof Error || - ((0, misc_1.isObject)(error) && error.constructor.name === 'Error')); - } - /** - * Type guard for determining whether the given value is an error object with a - * `code` property such as the type of error that Node throws for filesystem - * operations, etc. - * - * @param error - The object to check. - * @returns A boolean. - */ - function isErrorWithCode(error) { - return typeof error === 'object' && error !== null && 'code' in error; - } - errors.isErrorWithCode = isErrorWithCode; - /** - * Type guard for determining whether the given value is an error object with a - * `message` property, such as an instance of Error. - * - * @param error - The object to check. - * @returns A boolean. - */ - function isErrorWithMessage(error) { - return typeof error === 'object' && error !== null && 'message' in error; - } - errors.isErrorWithMessage = isErrorWithMessage; - /** - * Type guard for determining whether the given value is an error object with a - * `stack` property, such as an instance of Error. - * - * @param error - The object to check. - * @returns A boolean. - */ - function isErrorWithStack(error) { - return typeof error === 'object' && error !== null && 'stack' in error; - } - errors.isErrorWithStack = isErrorWithStack; - /** - * Attempts to obtain the message from a possible error object, defaulting to an - * empty string if it is impossible to do so. - * - * @param error - The possible error to get the message from. - * @returns The message if `error` is an object with a `message` property; - * the string version of `error` if it is not `undefined` or `null`; otherwise - * an empty string. - */ - function getErrorMessage(error) { - if (isErrorWithMessage(error) && typeof error.message === 'string') { - return error.message; - } - if ((0, misc_1.isNullOrUndefined)(error)) { - return ''; - } - return String(error); - } - errors.getErrorMessage = getErrorMessage; - /** - * Builds a new error object, linking it to the original error via the `cause` - * property if it is an Error. - * - * This function is useful to reframe error messages in general, but is - * _critical_ when interacting with any of Node's filesystem functions as - * provided via `fs.promises`, because these do not produce stack traces in the - * case of an I/O error (see ). - * - * @param originalError - The error to be wrapped (something throwable). - * @param message - The desired message of the new error. - * @returns A new error object. - */ - function wrapError(originalError, message) { - if (isError(originalError)) { - let error; - if (Error.length === 2) { - // for some reason `tsserver` is not complaining that the - // Error constructor doesn't support a second argument in the editor, - // but `tsc` does. Error causes are not supported by our current tsc target (ES2020, we need ES2022 to make this work) - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - error = new Error(message, { cause: originalError }); - } - else { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - error = new pony_cause_1.ErrorWithCause(message, { cause: originalError }); - } - if (isErrorWithCode(originalError)) { - error.code = originalError.code; - } - return error; - } - if (message.length > 0) { - return new Error(`${String(originalError)}: ${message}`); - } - return new Error(String(originalError)); - } - errors.wrapError = wrapError; - - return errors; - } - - var hasRequiredAssert; - - function requireAssert () { - if (hasRequiredAssert) return assert; - hasRequiredAssert = 1; - Object.defineProperty(assert, "__esModule", { value: true }); - assert.assertExhaustive = assert.assertStruct = assert.assert = assert.AssertionError = void 0; - const superstruct_1 = /*@__PURE__*/ requireDist$3(); - const errors_1 = /*@__PURE__*/ requireErrors(); - /** - * Check if a value is a constructor, i.e., a function that can be called with - * the `new` keyword. - * - * @param fn - The value to check. - * @returns `true` if the value is a constructor, or `false` otherwise. - */ - function isConstructable(fn) { - /* istanbul ignore next */ - return Boolean(typeof fn?.prototype?.constructor?.name === 'string'); - } - /** - * Attempts to obtain the message from a possible error object. If it is - * possible to do so, any trailing period will be removed from the message; - * otherwise an empty string is returned. - * - * @param error - The error object to get the message from. - * @returns The message without any trailing period if `error` is an object - * with a `message` property; the string version of `error` without any trailing - * period if it is not `undefined` or `null`; otherwise an empty string. - */ - function getErrorMessageWithoutTrailingPeriod(error) { - // We'll add our own period. - return (0, errors_1.getErrorMessage)(error).replace(/\.$/u, ''); - } - /** - * Initialise an {@link AssertionErrorConstructor} error. - * - * @param ErrorWrapper - The error class to use. - * @param message - The error message. - * @returns The error object. - */ - // eslint-disable-next-line @typescript-eslint/naming-convention - function getError(ErrorWrapper, message) { - if (isConstructable(ErrorWrapper)) { - return new ErrorWrapper({ - message, - }); - } - return ErrorWrapper({ - message, - }); - } - /** - * The default error class that is thrown if an assertion fails. - */ - class AssertionError extends Error { - constructor(options) { - super(options.message); - this.code = 'ERR_ASSERTION'; - } - } - assert.AssertionError = AssertionError; - /** - * Same as Node.js assert. - * If the value is falsy, throws an error, does nothing otherwise. - * - * @throws {@link AssertionError} If value is falsy. - * @param value - The test that should be truthy to pass. - * @param message - Message to be passed to {@link AssertionError} or an - * {@link Error} instance to throw. - * @param ErrorWrapper - The error class to throw if the assertion fails. - * Defaults to {@link AssertionError}. If a custom error class is provided for - * the `message` argument, this argument is ignored. - */ - function assert$1(value, message = 'Assertion failed.', - // eslint-disable-next-line @typescript-eslint/naming-convention - ErrorWrapper = AssertionError) { - if (!value) { - if (message instanceof Error) { - throw message; - } - throw getError(ErrorWrapper, message); - } - } - assert.assert = assert$1; - /** - * Assert a value against a Superstruct struct. - * - * @param value - The value to validate. - * @param struct - The struct to validate against. - * @param errorPrefix - A prefix to add to the error message. Defaults to - * "Assertion failed". - * @param ErrorWrapper - The error class to throw if the assertion fails. - * Defaults to {@link AssertionError}. - * @throws If the value is not valid. - */ - function assertStruct(value, struct, errorPrefix = 'Assertion failed', - // eslint-disable-next-line @typescript-eslint/naming-convention - ErrorWrapper = AssertionError) { - try { - (0, superstruct_1.assert)(value, struct); - } - catch (error) { - throw getError(ErrorWrapper, `${errorPrefix}: ${getErrorMessageWithoutTrailingPeriod(error)}.`); - } - } - assert.assertStruct = assertStruct; - /** - * Use in the default case of a switch that you want to be fully exhaustive. - * Using this function forces the compiler to enforce exhaustivity during - * compile-time. - * - * @example - * ``` - * const number = 1; - * switch (number) { - * case 0: - * ... - * case 1: - * ... - * default: - * assertExhaustive(snapPrefix); - * } - * ``` - * @param _object - The object on which the switch is being operated. - */ - function assertExhaustive(_object) { - throw new Error('Invalid branch reached. Should be detected during compilation.'); - } - assert.assertExhaustive = assertExhaustive; - - return assert; - } - - var base64 = {}; - - var hasRequiredBase64; - - function requireBase64 () { - if (hasRequiredBase64) return base64; - hasRequiredBase64 = 1; - Object.defineProperty(base64, "__esModule", { value: true }); - base64.base64 = void 0; - const superstruct_1 = /*@__PURE__*/ requireDist$3(); - const assert_1 = /*@__PURE__*/ requireAssert(); - /** - * Ensure that a provided string-based struct is valid base64. - * - * @param struct - The string based struct. - * @param options - Optional options to specialize base64 validation. See {@link Base64Options} documentation. - * @returns A superstruct validating base64. - */ - const base64$1 = (struct, options = {}) => { - const paddingRequired = options.paddingRequired ?? false; - const characterSet = options.characterSet ?? 'base64'; - let letters; - if (characterSet === 'base64') { - letters = String.raw `[A-Za-z0-9+\/]`; - } - else { - (0, assert_1.assert)(characterSet === 'base64url'); - letters = String.raw `[-_A-Za-z0-9]`; - } - let re; - if (paddingRequired) { - re = new RegExp(`^(?:${letters}{4})*(?:${letters}{3}=|${letters}{2}==)?$`, 'u'); - } - else { - re = new RegExp(`^(?:${letters}{4})*(?:${letters}{2,3}|${letters}{3}=|${letters}{2}==)?$`, 'u'); - } - return (0, superstruct_1.pattern)(struct, re); - }; - base64.base64 = base64$1; - - return base64; - } - - var bytes = {}; - - var lib$1 = {}; - - var hasRequiredLib$1; - - function requireLib$1 () { - if (hasRequiredLib$1) return lib$1; - hasRequiredLib$1 = 1; - (function (exports) { - /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.createBase58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64urlnopad = exports.base64url = exports.base64nopad = exports.base64 = exports.base32crockford = exports.base32hexnopad = exports.base32hex = exports.base32nopad = exports.base32 = exports.base16 = exports.utils = void 0; - function isBytes(a) { - return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array'); - } - /** Asserts something is Uint8Array. */ - function abytes(b, ...lengths) { - if (!isBytes(b)) - throw new Error('Uint8Array expected'); - if (lengths.length > 0 && !lengths.includes(b.length)) - throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length); - } - function isArrayOf(isString, arr) { - if (!Array.isArray(arr)) - return false; - if (arr.length === 0) - return true; - if (isString) { - return arr.every((item) => typeof item === 'string'); - } - else { - return arr.every((item) => Number.isSafeInteger(item)); - } - } - // no abytes: seems to have 10% slowdown. Why?! - function afn(input) { - if (typeof input !== 'function') - throw new Error('function expected'); - return true; - } - function astr(label, input) { - if (typeof input !== 'string') - throw new Error(`${label}: string expected`); - return true; - } - function anumber(n) { - if (!Number.isSafeInteger(n)) - throw new Error(`invalid integer: ${n}`); - } - function aArr(input) { - if (!Array.isArray(input)) - throw new Error('array expected'); - } - function astrArr(label, input) { - if (!isArrayOf(true, input)) - throw new Error(`${label}: array of strings expected`); - } - function anumArr(label, input) { - if (!isArrayOf(false, input)) - throw new Error(`${label}: array of numbers expected`); - } - /** - * @__NO_SIDE_EFFECTS__ - */ - function chain(...args) { - const id = (a) => a; - // Wrap call in closure so JIT can inline calls - const wrap = (a, b) => (c) => a(b(c)); - // Construct chain of args[-1].encode(args[-2].encode([...])) - const encode = args.map((x) => x.encode).reduceRight(wrap, id); - // Construct chain of args[0].decode(args[1].decode(...)) - const decode = args.map((x) => x.decode).reduce(wrap, id); - return { encode, decode }; - } - /** - * Encodes integer radix representation to array of strings using alphabet and back. - * Could also be array of strings. - * @__NO_SIDE_EFFECTS__ - */ - function alphabet(letters) { - // mapping 1 to "b" - const lettersA = typeof letters === 'string' ? letters.split('') : letters; - const len = lettersA.length; - astrArr('alphabet', lettersA); - // mapping "b" to 1 - const indexes = new Map(lettersA.map((l, i) => [l, i])); - return { - encode: (digits) => { - aArr(digits); - return digits.map((i) => { - if (!Number.isSafeInteger(i) || i < 0 || i >= len) - throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${letters}`); - return lettersA[i]; - }); - }, - decode: (input) => { - aArr(input); - return input.map((letter) => { - astr('alphabet.decode', letter); - const i = indexes.get(letter); - if (i === undefined) - throw new Error(`Unknown letter: "${letter}". Allowed: ${letters}`); - return i; - }); - }, - }; - } - /** - * @__NO_SIDE_EFFECTS__ - */ - function join(separator = '') { - astr('join', separator); - return { - encode: (from) => { - astrArr('join.decode', from); - return from.join(separator); - }, - decode: (to) => { - astr('join.decode', to); - return to.split(separator); - }, - }; - } - /** - * Pad strings array so it has integer number of bits - * @__NO_SIDE_EFFECTS__ - */ - function padding(bits, chr = '=') { - anumber(bits); - astr('padding', chr); - return { - encode(data) { - astrArr('padding.encode', data); - while ((data.length * bits) % 8) - data.push(chr); - return data; - }, - decode(input) { - astrArr('padding.decode', input); - let end = input.length; - if ((end * bits) % 8) - throw new Error('padding: invalid, string should have whole number of bytes'); - for (; end > 0 && input[end - 1] === chr; end--) { - const last = end - 1; - const byte = last * bits; - if (byte % 8 === 0) - throw new Error('padding: invalid, string has too much padding'); - } - return input.slice(0, end); - }, - }; - } - /** - * @__NO_SIDE_EFFECTS__ - */ - function normalize(fn) { - afn(fn); - return { encode: (from) => from, decode: (to) => fn(to) }; - } - /** - * Slow: O(n^2) time complexity - */ - function convertRadix(data, from, to) { - // base 1 is impossible - if (from < 2) - throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`); - if (to < 2) - throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`); - aArr(data); - if (!data.length) - return []; - let pos = 0; - const res = []; - const digits = Array.from(data, (d) => { - anumber(d); - if (d < 0 || d >= from) - throw new Error(`invalid integer: ${d}`); - return d; - }); - const dlen = digits.length; - while (true) { - let carry = 0; - let done = true; - for (let i = pos; i < dlen; i++) { - const digit = digits[i]; - const fromCarry = from * carry; - const digitBase = fromCarry + digit; - if (!Number.isSafeInteger(digitBase) || - fromCarry / from !== carry || - digitBase - digit !== fromCarry) { - throw new Error('convertRadix: carry overflow'); - } - const div = digitBase / to; - carry = digitBase % to; - const rounded = Math.floor(div); - digits[i] = rounded; - if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase) - throw new Error('convertRadix: carry overflow'); - if (!done) - continue; - else if (!rounded) - pos = i; - else - done = false; - } - res.push(carry); - if (done) - break; - } - for (let i = 0; i < data.length - 1 && data[i] === 0; i++) - res.push(0); - return res.reverse(); - } - const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b)); - const radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to)); - const powers = /* @__PURE__ */ (() => { - let res = []; - for (let i = 0; i < 40; i++) - res.push(2 ** i); - return res; - })(); - /** - * Implemented with numbers, because BigInt is 5x slower - */ - function convertRadix2(data, from, to, padding) { - aArr(data); - if (from <= 0 || from > 32) - throw new Error(`convertRadix2: wrong from=${from}`); - if (to <= 0 || to > 32) - throw new Error(`convertRadix2: wrong to=${to}`); - if (radix2carry(from, to) > 32) { - throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`); - } - let carry = 0; - let pos = 0; // bitwise position in current element - const max = powers[from]; - const mask = powers[to] - 1; - const res = []; - for (const n of data) { - anumber(n); - if (n >= max) - throw new Error(`convertRadix2: invalid data word=${n} from=${from}`); - carry = (carry << from) | n; - if (pos + from > 32) - throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`); - pos += from; - for (; pos >= to; pos -= to) - res.push(((carry >> (pos - to)) & mask) >>> 0); - const pow = powers[pos]; - if (pow === undefined) - throw new Error('invalid carry'); - carry &= pow - 1; // clean carry, otherwise it will cause overflow - } - carry = (carry << (to - pos)) & mask; - if (!padding && pos >= from) - throw new Error('Excess padding'); - if (!padding && carry > 0) - throw new Error(`Non-zero padding: ${carry}`); - if (padding && pos > 0) - res.push(carry >>> 0); - return res; - } - /** - * @__NO_SIDE_EFFECTS__ - */ - function radix(num) { - anumber(num); - const _256 = 2 ** 8; - return { - encode: (bytes) => { - if (!isBytes(bytes)) - throw new Error('radix.encode input should be Uint8Array'); - return convertRadix(Array.from(bytes), _256, num); - }, - decode: (digits) => { - anumArr('radix.decode', digits); - return Uint8Array.from(convertRadix(digits, num, _256)); - }, - }; - } - /** - * If both bases are power of same number (like `2**8 <-> 2**64`), - * there is a linear algorithm. For now we have implementation for power-of-two bases only. - * @__NO_SIDE_EFFECTS__ - */ - function radix2(bits, revPadding = false) { - anumber(bits); - if (bits <= 0 || bits > 32) - throw new Error('radix2: bits should be in (0..32]'); - if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32) - throw new Error('radix2: carry overflow'); - return { - encode: (bytes) => { - if (!isBytes(bytes)) - throw new Error('radix2.encode input should be Uint8Array'); - return convertRadix2(Array.from(bytes), 8, bits, !revPadding); - }, - decode: (digits) => { - anumArr('radix2.decode', digits); - return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding)); - }, - }; - } - function unsafeWrapper(fn) { - afn(fn); - return function (...args) { - try { - return fn.apply(null, args); - } - catch (e) { } - }; - } - function checksum(len, fn) { - anumber(len); - afn(fn); - return { - encode(data) { - if (!isBytes(data)) - throw new Error('checksum.encode: input should be Uint8Array'); - const sum = fn(data).slice(0, len); - const res = new Uint8Array(data.length + len); - res.set(data); - res.set(sum, data.length); - return res; - }, - decode(data) { - if (!isBytes(data)) - throw new Error('checksum.decode: input should be Uint8Array'); - const payload = data.slice(0, -len); - const oldChecksum = data.slice(-len); - const newChecksum = fn(payload).slice(0, len); - for (let i = 0; i < len; i++) - if (newChecksum[i] !== oldChecksum[i]) - throw new Error('Invalid checksum'); - return payload; - }, - }; - } - // prettier-ignore - exports.utils = { - alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding, - }; - // RFC 4648 aka RFC 3548 - // --------------------- - /** - * base16 encoding from RFC 4648. - * @example - * ```js - * base16.encode(Uint8Array.from([0x12, 0xab])); - * // => '12AB' - * ``` - */ - exports.base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join('')); - /** - * base32 encoding from RFC 4648. Has padding. - * Use `base32nopad` for unpadded version. - * Also check out `base32hex`, `base32hexnopad`, `base32crockford`. - * @example - * ```js - * base32.encode(Uint8Array.from([0x12, 0xab])); - * // => 'CKVQ====' - * base32.decode('CKVQ===='); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - exports.base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join('')); - /** - * base32 encoding from RFC 4648. No padding. - * Use `base32` for padded version. - * Also check out `base32hex`, `base32hexnopad`, `base32crockford`. - * @example - * ```js - * base32nopad.encode(Uint8Array.from([0x12, 0xab])); - * // => 'CKVQ' - * base32nopad.decode('CKVQ'); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - exports.base32nopad = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), join('')); - /** - * base32 encoding from RFC 4648. Padded. Compared to ordinary `base32`, slightly different alphabet. - * Use `base32hexnopad` for unpadded version. - * @example - * ```js - * base32hex.encode(Uint8Array.from([0x12, 0xab])); - * // => '2ALG====' - * base32hex.decode('2ALG===='); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - exports.base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join('')); - /** - * base32 encoding from RFC 4648. No padding. Compared to ordinary `base32`, slightly different alphabet. - * Use `base32hex` for padded version. - * @example - * ```js - * base32hexnopad.encode(Uint8Array.from([0x12, 0xab])); - * // => '2ALG' - * base32hexnopad.decode('2ALG'); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - exports.base32hexnopad = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), join('')); - /** - * base32 encoding from RFC 4648. Doug Crockford's version. - * https://www.crockford.com/base32.html - * @example - * ```js - * base32crockford.encode(Uint8Array.from([0x12, 0xab])); - * // => '2ANG' - * base32crockford.decode('2ANG'); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - exports.base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1'))); - // Built-in base64 conversion https://caniuse.com/mdn-javascript_builtins_uint8array_frombase64 - // prettier-ignore - const hasBase64Builtin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toBase64 === 'function' && - typeof Uint8Array.fromBase64 === 'function')(); - const decodeBase64Builtin = (s, isUrl) => { - astr('base64', s); - const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/; - const alphabet = isUrl ? 'base64url' : 'base64'; - if (s.length > 0 && !re.test(s)) - throw new Error('invalid base64'); - return Uint8Array.fromBase64(s, { alphabet, lastChunkHandling: 'strict' }); - }; - /** - * base64 from RFC 4648. Padded. - * Use `base64nopad` for unpadded version. - * Also check out `base64url`, `base64urlnopad`. - * Falls back to built-in function, when available. - * @example - * ```js - * base64.encode(Uint8Array.from([0x12, 0xab])); - * // => 'Eqs=' - * base64.decode('Eqs='); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - // prettier-ignore - exports.base64 = hasBase64Builtin ? { - encode(b) { abytes(b); return b.toBase64(); }, - decode(s) { return decodeBase64Builtin(s, false); }, - } : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join('')); - /** - * base64 from RFC 4648. No padding. - * Use `base64` for padded version. - * @example - * ```js - * base64nopad.encode(Uint8Array.from([0x12, 0xab])); - * // => 'Eqs' - * base64nopad.decode('Eqs'); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - exports.base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join('')); - /** - * base64 from RFC 4648, using URL-safe alphabet. Padded. - * Use `base64urlnopad` for unpadded version. - * Falls back to built-in function, when available. - * @example - * ```js - * base64url.encode(Uint8Array.from([0x12, 0xab])); - * // => 'Eqs=' - * base64url.decode('Eqs='); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - // prettier-ignore - exports.base64url = hasBase64Builtin ? { - encode(b) { abytes(b); return b.toBase64({ alphabet: 'base64url' }); }, - decode(s) { return decodeBase64Builtin(s, true); }, - } : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join('')); - /** - * base64 from RFC 4648, using URL-safe alphabet. No padding. - * Use `base64url` for padded version. - * @example - * ```js - * base64urlnopad.encode(Uint8Array.from([0x12, 0xab])); - * // => 'Eqs' - * base64urlnopad.decode('Eqs'); - * // => Uint8Array.from([0x12, 0xab]) - * ``` - */ - exports.base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join('')); - // base58 code - // ----------- - const genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join('')); - /** - * base58: base64 without ambigous characters +, /, 0, O, I, l. - * Quadratic (O(n^2)) - so, can't be used on large inputs. - * @example - * ```js - * base58.decode('01abcdef'); - * // => '3UhJW' - * ``` - */ - exports.base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'); - /** - * base58: flickr version. Check out `base58`. - */ - exports.base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'); - /** - * base58: XRP version. Check out `base58`. - */ - exports.base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'); - // Data len (index) -> encoded block len - const XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11]; - /** - * base58: XMR version. Check out `base58`. - * Done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN. - * Block encoding significantly reduces quadratic complexity of base58. - */ - exports.base58xmr = { - encode(data) { - let res = ''; - for (let i = 0; i < data.length; i += 8) { - const block = data.subarray(i, i + 8); - res += exports.base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1'); - } - return res; - }, - decode(str) { - let res = []; - for (let i = 0; i < str.length; i += 11) { - const slice = str.slice(i, i + 11); - const blockLen = XMR_BLOCK_LEN.indexOf(slice.length); - const block = exports.base58.decode(slice); - for (let j = 0; j < block.length - blockLen; j++) { - if (block[j] !== 0) - throw new Error('base58xmr: wrong padding'); - } - res = res.concat(Array.from(block.slice(block.length - blockLen))); - } - return Uint8Array.from(res); - }, - }; - /** - * Method, which creates base58check encoder. - * Requires function, calculating sha256. - */ - const createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), exports.base58); - exports.createBase58check = createBase58check; - /** - * Use `createBase58check` instead. - * @deprecated - */ - exports.base58check = exports.createBase58check; - const BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join('')); - const POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]; - function bech32Polymod(pre) { - const b = pre >> 25; - let chk = (pre & 0x1ffffff) << 5; - for (let i = 0; i < POLYMOD_GENERATORS.length; i++) { - if (((b >> i) & 1) === 1) - chk ^= POLYMOD_GENERATORS[i]; - } - return chk; - } - function bechChecksum(prefix, words, encodingConst = 1) { - const len = prefix.length; - let chk = 1; - for (let i = 0; i < len; i++) { - const c = prefix.charCodeAt(i); - if (c < 33 || c > 126) - throw new Error(`Invalid prefix (${prefix})`); - chk = bech32Polymod(chk) ^ (c >> 5); - } - chk = bech32Polymod(chk); - for (let i = 0; i < len; i++) - chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f); - for (let v of words) - chk = bech32Polymod(chk) ^ v; - for (let i = 0; i < 6; i++) - chk = bech32Polymod(chk); - chk ^= encodingConst; - return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false)); - } - /** - * @__NO_SIDE_EFFECTS__ - */ - function genBech32(encoding) { - const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3; - const _words = radix2(5); - const fromWords = _words.decode; - const toWords = _words.encode; - const fromWordsUnsafe = unsafeWrapper(fromWords); - function encode(prefix, words, limit = 90) { - astr('bech32.encode prefix', prefix); - if (isBytes(words)) - words = Array.from(words); - anumArr('bech32.encode', words); - const plen = prefix.length; - if (plen === 0) - throw new TypeError(`Invalid prefix length ${plen}`); - const actualLength = plen + 7 + words.length; - if (limit !== false && actualLength > limit) - throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`); - const lowered = prefix.toLowerCase(); - const sum = bechChecksum(lowered, words, ENCODING_CONST); - return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`; - } - function decode(str, limit = 90) { - astr('bech32.decode input', str); - const slen = str.length; - if (slen < 8 || (limit !== false && slen > limit)) - throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`); - // don't allow mixed case - const lowered = str.toLowerCase(); - if (str !== lowered && str !== str.toUpperCase()) - throw new Error(`String must be lowercase or uppercase`); - const sepIndex = lowered.lastIndexOf('1'); - if (sepIndex === 0 || sepIndex === -1) - throw new Error(`Letter "1" must be present between prefix and data only`); - const prefix = lowered.slice(0, sepIndex); - const data = lowered.slice(sepIndex + 1); - if (data.length < 6) - throw new Error('Data must be at least 6 characters long'); - const words = BECH_ALPHABET.decode(data).slice(0, -6); - const sum = bechChecksum(prefix, words, ENCODING_CONST); - if (!data.endsWith(sum)) - throw new Error(`Invalid checksum in ${str}: expected "${sum}"`); - return { prefix, words }; - } - const decodeUnsafe = unsafeWrapper(decode); - function decodeToBytes(str) { - const { prefix, words } = decode(str, false); - return { prefix, words, bytes: fromWords(words) }; - } - function encodeFromBytes(prefix, bytes) { - return encode(prefix, toWords(bytes)); - } - return { - encode, - decode, - encodeFromBytes, - decodeToBytes, - decodeUnsafe, - fromWords, - fromWordsUnsafe, - toWords, - }; - } - /** - * bech32 from BIP 173. Operates on words. - * For high-level, check out scure-btc-signer: - * https://github.com/paulmillr/scure-btc-signer. - */ - exports.bech32 = genBech32('bech32'); - /** - * bech32m from BIP 350. Operates on words. - * It was to mitigate `bech32` weaknesses. - * For high-level, check out scure-btc-signer: - * https://github.com/paulmillr/scure-btc-signer. - */ - exports.bech32m = genBech32('bech32m'); - /** - * UTF-8-to-byte decoder. Uses built-in TextDecoder / TextEncoder. - * @example - * ```js - * const b = utf8.decode("hey"); // => new Uint8Array([ 104, 101, 121 ]) - * const str = utf8.encode(b); // "hey" - * ``` - */ - exports.utf8 = { - encode: (data) => new TextDecoder().decode(data), - decode: (str) => new TextEncoder().encode(str), - }; - // Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex - // prettier-ignore - const hasHexBuiltin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toHex === 'function' && - typeof Uint8Array.fromHex === 'function')(); - // prettier-ignore - const hexBuiltin = { - encode(data) { abytes(data); return data.toHex(); }, - decode(s) { astr('hex', s); return Uint8Array.fromHex(s); }, - }; - /** - * hex string decoder. Uses built-in function, when available. - * @example - * ```js - * const b = hex.decode("0102ff"); // => new Uint8Array([ 1, 2, 255 ]) - * const str = hex.encode(b); // "0102ff" - * ``` - */ - exports.hex = hasHexBuiltin - ? hexBuiltin - : chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => { - if (typeof s !== 'string' || s.length % 2 !== 0) - throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`); - return s.toLowerCase(); - })); - // prettier-ignore - const CODERS = { - utf8: exports.utf8, hex: exports.hex, base16: exports.base16, base32: exports.base32, base64: exports.base64, base64url: exports.base64url, base58: exports.base58, base58xmr: exports.base58xmr - }; - const coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr'; - /** @deprecated */ - const bytesToString = (type, bytes) => { - if (typeof type !== 'string' || !CODERS.hasOwnProperty(type)) - throw new TypeError(coderTypeError); - if (!isBytes(bytes)) - throw new TypeError('bytesToString() expects Uint8Array'); - return CODERS[type].encode(bytes); - }; - exports.bytesToString = bytesToString; - /** @deprecated */ - exports.str = exports.bytesToString; // as in python, but for bytes only - /** @deprecated */ - const stringToBytes = (type, str) => { - if (!CODERS.hasOwnProperty(type)) - throw new TypeError(coderTypeError); - if (typeof str !== 'string') - throw new TypeError('stringToBytes() expects string'); - return CODERS[type].decode(str); - }; - exports.stringToBytes = stringToBytes; - /** @deprecated */ - exports.bytes = exports.stringToBytes; - - } (lib$1)); - return lib$1; - } - - var hex = {}; - - var sha3 = {}; - - var _u64$1 = {}; - - var hasRequired_u64$1; - - function require_u64$1 () { - if (hasRequired_u64$1) return _u64$1; - hasRequired_u64$1 = 1; - Object.defineProperty(_u64$1, "__esModule", { value: true }); - _u64$1.toBig = _u64$1.shrSL = _u64$1.shrSH = _u64$1.rotrSL = _u64$1.rotrSH = _u64$1.rotrBL = _u64$1.rotrBH = _u64$1.rotr32L = _u64$1.rotr32H = _u64$1.rotlSL = _u64$1.rotlSH = _u64$1.rotlBL = _u64$1.rotlBH = _u64$1.add5L = _u64$1.add5H = _u64$1.add4L = _u64$1.add4H = _u64$1.add3L = _u64$1.add3H = void 0; - _u64$1.add = add; - _u64$1.fromBig = fromBig; - _u64$1.split = split; - /** - * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array. - * @todo re-check https://issues.chromium.org/issues/42212588 - * @module - */ - const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1); - const _32n = /* @__PURE__ */ BigInt(32); - function fromBig(n, le = false) { - if (le) - return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) }; - return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 }; - } - function split(lst, le = false) { - const len = lst.length; - let Ah = new Uint32Array(len); - let Al = new Uint32Array(len); - for (let i = 0; i < len; i++) { - const { h, l } = fromBig(lst[i], le); - [Ah[i], Al[i]] = [h, l]; - } - return [Ah, Al]; - } - const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0); - _u64$1.toBig = toBig; - // for Shift in [0, 32) - const shrSH = (h, _l, s) => h >>> s; - _u64$1.shrSH = shrSH; - const shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s); - _u64$1.shrSL = shrSL; - // Right rotate for Shift in [1, 32) - const rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s)); - _u64$1.rotrSH = rotrSH; - const rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s); - _u64$1.rotrSL = rotrSL; - // Right rotate for Shift in (32, 64), NOTE: 32 is special case. - const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32)); - _u64$1.rotrBH = rotrBH; - const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s)); - _u64$1.rotrBL = rotrBL; - // Right rotate for shift===32 (just swaps l&h) - const rotr32H = (_h, l) => l; - _u64$1.rotr32H = rotr32H; - const rotr32L = (h, _l) => h; - _u64$1.rotr32L = rotr32L; - // Left rotate for Shift in [1, 32) - const rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s)); - _u64$1.rotlSH = rotlSH; - const rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s)); - _u64$1.rotlSL = rotlSL; - // Left rotate for Shift in (32, 64), NOTE: 32 is special case. - const rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s)); - _u64$1.rotlBH = rotlBH; - const rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s)); - _u64$1.rotlBL = rotlBL; - // JS uses 32-bit signed integers for bitwise operations which means we cannot - // simple take carry out of low bit sum by shift, we need to use division. - function add(Ah, Al, Bh, Bl) { - const l = (Al >>> 0) + (Bl >>> 0); - return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 }; - } - // Addition with more than 2 elements - const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0); - _u64$1.add3L = add3L; - const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0; - _u64$1.add3H = add3H; - const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0); - _u64$1.add4L = add4L; - const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0; - _u64$1.add4H = add4H; - const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0); - _u64$1.add5L = add5L; - const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0; - _u64$1.add5H = add5H; - // prettier-ignore - const u64 = { - fromBig, split, toBig, - shrSH, shrSL, - rotrSH, rotrSL, rotrBH, rotrBL, - rotr32H, rotr32L, - rotlSH, rotlSL, rotlBH, rotlBL, - add, add3L, add3H, add4L, add4H, add5H, add5L, - }; - _u64$1.default = u64; - - return _u64$1; - } - - var utils$4 = {}; - - var crypto$2 = {}; - - var hasRequiredCrypto$1; - - function requireCrypto$1 () { - if (hasRequiredCrypto$1) return crypto$2; - hasRequiredCrypto$1 = 1; - Object.defineProperty(crypto$2, "__esModule", { value: true }); - crypto$2.crypto = void 0; - crypto$2.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined; - - return crypto$2; - } - - var hasRequiredUtils$4; - - function requireUtils$4 () { - if (hasRequiredUtils$4) return utils$4; - hasRequiredUtils$4 = 1; - (function (exports) { - /** - * Utilities for hex, bytes, CSPRNG. - * @module - */ - /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ - Object.defineProperty(exports, "__esModule", { value: true }); - exports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.Hash = exports.nextTick = exports.swap32IfBE = exports.byteSwapIfBE = exports.swap8IfBE = exports.isLE = void 0; - exports.isBytes = isBytes; - exports.anumber = anumber; - exports.abytes = abytes; - exports.ahash = ahash; - exports.aexists = aexists; - exports.aoutput = aoutput; - exports.u8 = u8; - exports.u32 = u32; - exports.clean = clean; - exports.createView = createView; - exports.rotr = rotr; - exports.rotl = rotl; - exports.byteSwap = byteSwap; - exports.byteSwap32 = byteSwap32; - exports.bytesToHex = bytesToHex; - exports.hexToBytes = hexToBytes; - exports.asyncLoop = asyncLoop; - exports.utf8ToBytes = utf8ToBytes; - exports.bytesToUtf8 = bytesToUtf8; - exports.toBytes = toBytes; - exports.kdfInputToBytes = kdfInputToBytes; - exports.concatBytes = concatBytes; - exports.checkOpts = checkOpts; - exports.createHasher = createHasher; - exports.createOptHasher = createOptHasher; - exports.createXOFer = createXOFer; - exports.randomBytes = randomBytes; - // We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. - // node.js versions earlier than v19 don't declare it in global scope. - // For node.js, package.json#exports field mapping rewrites import - // from `crypto` to `cryptoNode`, which imports native module. - // Makes the utils un-importable in browsers without a bundler. - // Once node.js 18 is deprecated (2025-04-30), we can just drop the import. - const crypto_1 = requireCrypto$1(); - /** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */ - function isBytes(a) { - return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array'); - } - /** Asserts something is positive integer. */ - function anumber(n) { - if (!Number.isSafeInteger(n) || n < 0) - throw new Error('positive integer expected, got ' + n); - } - /** Asserts something is Uint8Array. */ - function abytes(b, ...lengths) { - if (!isBytes(b)) - throw new Error('Uint8Array expected'); - if (lengths.length > 0 && !lengths.includes(b.length)) - throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length); - } - /** Asserts something is hash */ - function ahash(h) { - if (typeof h !== 'function' || typeof h.create !== 'function') - throw new Error('Hash should be wrapped by utils.createHasher'); - anumber(h.outputLen); - anumber(h.blockLen); - } - /** Asserts a hash instance has not been destroyed / finished */ - function aexists(instance, checkFinished = true) { - if (instance.destroyed) - throw new Error('Hash instance has been destroyed'); - if (checkFinished && instance.finished) - throw new Error('Hash#digest() has already been called'); - } - /** Asserts output is properly-sized byte array */ - function aoutput(out, instance) { - abytes(out); - const min = instance.outputLen; - if (out.length < min) { - throw new Error('digestInto() expects output buffer of length at least ' + min); - } - } - /** Cast u8 / u16 / u32 to u8. */ - function u8(arr) { - return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength); - } - /** Cast u8 / u16 / u32 to u32. */ - function u32(arr) { - return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); - } - /** Zeroize a byte array. Warning: JS provides no guarantees. */ - function clean(...arrays) { - for (let i = 0; i < arrays.length; i++) { - arrays[i].fill(0); - } - } - /** Create DataView of an array for easy byte-level manipulation. */ - function createView(arr) { - return new DataView(arr.buffer, arr.byteOffset, arr.byteLength); - } - /** The rotate right (circular right shift) operation for uint32 */ - function rotr(word, shift) { - return (word << (32 - shift)) | (word >>> shift); - } - /** The rotate left (circular left shift) operation for uint32 */ - function rotl(word, shift) { - return (word << shift) | ((word >>> (32 - shift)) >>> 0); - } - /** Is current platform little-endian? Most are. Big-Endian platform: IBM */ - exports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)(); - /** The byte swap operation for uint32 */ - function byteSwap(word) { - return (((word << 24) & 0xff000000) | - ((word << 8) & 0xff0000) | - ((word >>> 8) & 0xff00) | - ((word >>> 24) & 0xff)); - } - /** Conditionally byte swap if on a big-endian platform */ - exports.swap8IfBE = exports.isLE - ? (n) => n - : (n) => byteSwap(n); - /** @deprecated */ - exports.byteSwapIfBE = exports.swap8IfBE; - /** In place byte swap for Uint32Array */ - function byteSwap32(arr) { - for (let i = 0; i < arr.length; i++) { - arr[i] = byteSwap(arr[i]); - } - return arr; - } - exports.swap32IfBE = exports.isLE - ? (u) => u - : byteSwap32; - // Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex - const hasHexBuiltin = /* @__PURE__ */ (() => - // @ts-ignore - typeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')(); - // Array where index 0xf0 (240) is mapped to string 'f0' - const hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0')); - /** - * Convert byte array to hex string. Uses built-in function, when available. - * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123' - */ - function bytesToHex(bytes) { - abytes(bytes); - // @ts-ignore - if (hasHexBuiltin) - return bytes.toHex(); - // pre-caching improves the speed 6x - let hex = ''; - for (let i = 0; i < bytes.length; i++) { - hex += hexes[bytes[i]]; - } - return hex; - } - // We use optimized technique to convert hex string to byte array - const asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; - function asciiToBase16(ch) { - if (ch >= asciis._0 && ch <= asciis._9) - return ch - asciis._0; // '2' => 50-48 - if (ch >= asciis.A && ch <= asciis.F) - return ch - (asciis.A - 10); // 'B' => 66-(65-10) - if (ch >= asciis.a && ch <= asciis.f) - return ch - (asciis.a - 10); // 'b' => 98-(97-10) - return; - } - /** - * Convert hex string to byte array. Uses built-in function, when available. - * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23]) - */ - function hexToBytes(hex) { - if (typeof hex !== 'string') - throw new Error('hex string expected, got ' + typeof hex); - // @ts-ignore - if (hasHexBuiltin) - return Uint8Array.fromHex(hex); - const hl = hex.length; - const al = hl / 2; - if (hl % 2) - throw new Error('hex string expected, got unpadded hex of length ' + hl); - const array = new Uint8Array(al); - for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { - const n1 = asciiToBase16(hex.charCodeAt(hi)); - const n2 = asciiToBase16(hex.charCodeAt(hi + 1)); - if (n1 === undefined || n2 === undefined) { - const char = hex[hi] + hex[hi + 1]; - throw new Error('hex string expected, got non-hex character "' + char + '" at index ' + hi); - } - array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163 - } - return array; - } - /** - * There is no setImmediate in browser and setTimeout is slow. - * Call of async fn will return Promise, which will be fullfiled only on - * next scheduler queue processing step and this is exactly what we need. - */ - const nextTick = async () => { }; - exports.nextTick = nextTick; - /** Returns control to thread each 'tick' ms to avoid blocking. */ - async function asyncLoop(iters, tick, cb) { - let ts = Date.now(); - for (let i = 0; i < iters; i++) { - cb(i); - // Date.now() is not monotonic, so in case if clock goes backwards we return return control too - const diff = Date.now() - ts; - if (diff >= 0 && diff < tick) - continue; - await (0, exports.nextTick)(); - ts += diff; - } - } - /** - * Converts string to bytes using UTF8 encoding. - * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99]) - */ - function utf8ToBytes(str) { - if (typeof str !== 'string') - throw new Error('string expected'); - return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809 - } - /** - * Converts bytes to string using UTF8 encoding. - * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc' - */ - function bytesToUtf8(bytes) { - return new TextDecoder().decode(bytes); - } - /** - * Normalizes (non-hex) string or Uint8Array to Uint8Array. - * Warning: when Uint8Array is passed, it would NOT get copied. - * Keep in mind for future mutable operations. - */ - function toBytes(data) { - if (typeof data === 'string') - data = utf8ToBytes(data); - abytes(data); - return data; - } - /** - * Helper for KDFs: consumes uint8array or string. - * When string is passed, does utf8 decoding, using TextDecoder. - */ - function kdfInputToBytes(data) { - if (typeof data === 'string') - data = utf8ToBytes(data); - abytes(data); - return data; - } - /** Copies several Uint8Arrays into one. */ - function concatBytes(...arrays) { - let sum = 0; - for (let i = 0; i < arrays.length; i++) { - const a = arrays[i]; - abytes(a); - sum += a.length; - } - const res = new Uint8Array(sum); - for (let i = 0, pad = 0; i < arrays.length; i++) { - const a = arrays[i]; - res.set(a, pad); - pad += a.length; - } - return res; - } - function checkOpts(defaults, opts) { - if (opts !== undefined && {}.toString.call(opts) !== '[object Object]') - throw new Error('options should be object or undefined'); - const merged = Object.assign(defaults, opts); - return merged; - } - /** For runtime check if class implements interface */ - class Hash { - } - exports.Hash = Hash; - /** Wraps hash function, creating an interface on top of it */ - function createHasher(hashCons) { - const hashC = (msg) => hashCons().update(toBytes(msg)).digest(); - const tmp = hashCons(); - hashC.outputLen = tmp.outputLen; - hashC.blockLen = tmp.blockLen; - hashC.create = () => hashCons(); - return hashC; - } - function createOptHasher(hashCons) { - const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest(); - const tmp = hashCons({}); - hashC.outputLen = tmp.outputLen; - hashC.blockLen = tmp.blockLen; - hashC.create = (opts) => hashCons(opts); - return hashC; - } - function createXOFer(hashCons) { - const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest(); - const tmp = hashCons({}); - hashC.outputLen = tmp.outputLen; - hashC.blockLen = tmp.blockLen; - hashC.create = (opts) => hashCons(opts); - return hashC; - } - exports.wrapConstructor = createHasher; - exports.wrapConstructorWithOpts = createOptHasher; - exports.wrapXOFConstructorWithOpts = createXOFer; - /** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */ - function randomBytes(bytesLength = 32) { - if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') { - return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength)); - } - // Legacy Node.js compatibility - if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') { - return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength)); - } - throw new Error('crypto.getRandomValues must be defined'); - } - - } (utils$4)); - return utils$4; - } - - var hasRequiredSha3; - - function requireSha3 () { - if (hasRequiredSha3) return sha3; - hasRequiredSha3 = 1; - Object.defineProperty(sha3, "__esModule", { value: true }); - sha3.shake256 = sha3.shake128 = sha3.keccak_512 = sha3.keccak_384 = sha3.keccak_256 = sha3.keccak_224 = sha3.sha3_512 = sha3.sha3_384 = sha3.sha3_256 = sha3.sha3_224 = sha3.Keccak = void 0; - sha3.keccakP = keccakP; - /** - * SHA3 (keccak) hash function, based on a new "Sponge function" design. - * Different from older hashes, the internal state is bigger than output size. - * - * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf), - * [Website](https://keccak.team/keccak.html), - * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub). - * - * Check out `sha3-addons` module for cSHAKE, k12, and others. - * @module - */ - const _u64_ts_1 = /*@__PURE__*/ require_u64$1(); - // prettier-ignore - const utils_ts_1 = /*@__PURE__*/ requireUtils$4(); - // No __PURE__ annotations in sha3 header: - // EVERYTHING is in fact used on every export. - // Various per round constants calculations - const _0n = BigInt(0); - const _1n = BigInt(1); - const _2n = BigInt(2); - const _7n = BigInt(7); - const _256n = BigInt(256); - const _0x71n = BigInt(0x71); - const SHA3_PI = []; - const SHA3_ROTL = []; - const _SHA3_IOTA = []; - for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) { - // Pi - [x, y] = [y, (2 * x + 3 * y) % 5]; - SHA3_PI.push(2 * (5 * y + x)); - // Rotational - SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64); - // Iota - let t = _0n; - for (let j = 0; j < 7; j++) { - R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n; - if (R & _2n) - t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n); - } - _SHA3_IOTA.push(t); - } - const IOTAS = (0, _u64_ts_1.split)(_SHA3_IOTA, true); - const SHA3_IOTA_H = IOTAS[0]; - const SHA3_IOTA_L = IOTAS[1]; - // Left rotation (without 0, 32, 64) - const rotlH = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBH)(h, l, s) : (0, _u64_ts_1.rotlSH)(h, l, s)); - const rotlL = (h, l, s) => (s > 32 ? (0, _u64_ts_1.rotlBL)(h, l, s) : (0, _u64_ts_1.rotlSL)(h, l, s)); - /** `keccakf1600` internal function, additionally allows to adjust round count. */ - function keccakP(s, rounds = 24) { - const B = new Uint32Array(5 * 2); - // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js) - for (let round = 24 - rounds; round < 24; round++) { - // Theta θ - for (let x = 0; x < 10; x++) - B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40]; - for (let x = 0; x < 10; x += 2) { - const idx1 = (x + 8) % 10; - const idx0 = (x + 2) % 10; - const B0 = B[idx0]; - const B1 = B[idx0 + 1]; - const Th = rotlH(B0, B1, 1) ^ B[idx1]; - const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1]; - for (let y = 0; y < 50; y += 10) { - s[x + y] ^= Th; - s[x + y + 1] ^= Tl; - } - } - // Rho (ρ) and Pi (π) - let curH = s[2]; - let curL = s[3]; - for (let t = 0; t < 24; t++) { - const shift = SHA3_ROTL[t]; - const Th = rotlH(curH, curL, shift); - const Tl = rotlL(curH, curL, shift); - const PI = SHA3_PI[t]; - curH = s[PI]; - curL = s[PI + 1]; - s[PI] = Th; - s[PI + 1] = Tl; - } - // Chi (χ) - for (let y = 0; y < 50; y += 10) { - for (let x = 0; x < 10; x++) - B[x] = s[y + x]; - for (let x = 0; x < 10; x++) - s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10]; - } - // Iota (ι) - s[0] ^= SHA3_IOTA_H[round]; - s[1] ^= SHA3_IOTA_L[round]; - } - (0, utils_ts_1.clean)(B); - } - /** Keccak sponge function. */ - class Keccak extends utils_ts_1.Hash { - // NOTE: we accept arguments in bytes instead of bits here. - constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) { - super(); - this.pos = 0; - this.posOut = 0; - this.finished = false; - this.destroyed = false; - this.enableXOF = false; - this.blockLen = blockLen; - this.suffix = suffix; - this.outputLen = outputLen; - this.enableXOF = enableXOF; - this.rounds = rounds; - // Can be passed from user as dkLen - (0, utils_ts_1.anumber)(outputLen); - // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes - // 0 < blockLen < 200 - if (!(0 < blockLen && blockLen < 200)) - throw new Error('only keccak-f1600 function is supported'); - this.state = new Uint8Array(200); - this.state32 = (0, utils_ts_1.u32)(this.state); - } - clone() { - return this._cloneInto(); - } - keccak() { - (0, utils_ts_1.swap32IfBE)(this.state32); - keccakP(this.state32, this.rounds); - (0, utils_ts_1.swap32IfBE)(this.state32); - this.posOut = 0; - this.pos = 0; - } - update(data) { - (0, utils_ts_1.aexists)(this); - data = (0, utils_ts_1.toBytes)(data); - (0, utils_ts_1.abytes)(data); - const { blockLen, state } = this; - const len = data.length; - for (let pos = 0; pos < len;) { - const take = Math.min(blockLen - this.pos, len - pos); - for (let i = 0; i < take; i++) - state[this.pos++] ^= data[pos++]; - if (this.pos === blockLen) - this.keccak(); - } - return this; - } - finish() { - if (this.finished) - return; - this.finished = true; - const { state, suffix, pos, blockLen } = this; - // Do the padding - state[pos] ^= suffix; - if ((suffix & 0x80) !== 0 && pos === blockLen - 1) - this.keccak(); - state[blockLen - 1] ^= 0x80; - this.keccak(); - } - writeInto(out) { - (0, utils_ts_1.aexists)(this, false); - (0, utils_ts_1.abytes)(out); - this.finish(); - const bufferOut = this.state; - const { blockLen } = this; - for (let pos = 0, len = out.length; pos < len;) { - if (this.posOut >= blockLen) - this.keccak(); - const take = Math.min(blockLen - this.posOut, len - pos); - out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos); - this.posOut += take; - pos += take; - } - return out; - } - xofInto(out) { - // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF - if (!this.enableXOF) - throw new Error('XOF is not possible for this instance'); - return this.writeInto(out); - } - xof(bytes) { - (0, utils_ts_1.anumber)(bytes); - return this.xofInto(new Uint8Array(bytes)); - } - digestInto(out) { - (0, utils_ts_1.aoutput)(out, this); - if (this.finished) - throw new Error('digest() was already called'); - this.writeInto(out); - this.destroy(); - return out; - } - digest() { - return this.digestInto(new Uint8Array(this.outputLen)); - } - destroy() { - this.destroyed = true; - (0, utils_ts_1.clean)(this.state); - } - _cloneInto(to) { - const { blockLen, suffix, outputLen, rounds, enableXOF } = this; - to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds)); - to.state32.set(this.state32); - to.pos = this.pos; - to.posOut = this.posOut; - to.finished = this.finished; - to.rounds = rounds; - // Suffix can change in cSHAKE - to.suffix = suffix; - to.outputLen = outputLen; - to.enableXOF = enableXOF; - to.destroyed = this.destroyed; - return to; - } - } - sha3.Keccak = Keccak; - const gen = (suffix, blockLen, outputLen) => (0, utils_ts_1.createHasher)(() => new Keccak(blockLen, suffix, outputLen)); - /** SHA3-224 hash function. */ - sha3.sha3_224 = (() => gen(0x06, 144, 224 / 8))(); - /** SHA3-256 hash function. Different from keccak-256. */ - sha3.sha3_256 = (() => gen(0x06, 136, 256 / 8))(); - /** SHA3-384 hash function. */ - sha3.sha3_384 = (() => gen(0x06, 104, 384 / 8))(); - /** SHA3-512 hash function. */ - sha3.sha3_512 = (() => gen(0x06, 72, 512 / 8))(); - /** keccak-224 hash function. */ - sha3.keccak_224 = (() => gen(0x01, 144, 224 / 8))(); - /** keccak-256 hash function. Different from SHA3-256. */ - sha3.keccak_256 = (() => gen(0x01, 136, 256 / 8))(); - /** keccak-384 hash function. */ - sha3.keccak_384 = (() => gen(0x01, 104, 384 / 8))(); - /** keccak-512 hash function. */ - sha3.keccak_512 = (() => gen(0x01, 72, 512 / 8))(); - const genShake = (suffix, blockLen, outputLen) => (0, utils_ts_1.createXOFer)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)); - /** SHAKE128 XOF with 128-bit security. */ - sha3.shake128 = (() => genShake(0x1f, 168, 128 / 8))(); - /** SHAKE256 XOF with 256-bit security. */ - sha3.shake256 = (() => genShake(0x1f, 136, 256 / 8))(); - - return sha3; - } - - var lodash$1 = {exports: {}}; - - /** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ - var lodash = lodash$1.exports; - - var hasRequiredLodash; - - function requireLodash () { - if (hasRequiredLodash) return lodash$1.exports; - hasRequiredLodash = 1; - (function (module, exports) { - (function() { - - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined$1; - - /** Used as the semantic version number. */ - var VERSION = '4.17.23'; - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** Error message constants. */ - var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', - FUNC_ERROR_TEXT = 'Expected a function', - INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`'; - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; - - /** Used as the internal argument placeholder. */ - var PLACEHOLDER = '__lodash_placeholder__'; - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG = 4; - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; - - /** Used to compose bitmasks for function metadata. */ - var WRAP_BIND_FLAG = 1, - WRAP_BIND_KEY_FLAG = 2, - WRAP_CURRY_BOUND_FLAG = 4, - WRAP_CURRY_FLAG = 8, - WRAP_CURRY_RIGHT_FLAG = 16, - WRAP_PARTIAL_FLAG = 32, - WRAP_PARTIAL_RIGHT_FLAG = 64, - WRAP_ARY_FLAG = 128, - WRAP_REARG_FLAG = 256, - WRAP_FLIP_FLAG = 512; - - /** Used as default options for `_.truncate`. */ - var DEFAULT_TRUNC_LENGTH = 30, - DEFAULT_TRUNC_OMISSION = '...'; - - /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 800, - HOT_SPAN = 16; - - /** Used to indicate the type of lazy iteratees. */ - var LAZY_FILTER_FLAG = 1, - LAZY_MAP_FLAG = 2, - LAZY_WHILE_FLAG = 3; - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - - /** Used as references for the maximum length and index of an array. */ - var MAX_ARRAY_LENGTH = 4294967295, - MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, - HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - - /** Used to associate wrap methods with their bit flags. */ - var wrapFlags = [ - ['ary', WRAP_ARY_FLAG], - ['bind', WRAP_BIND_FLAG], - ['bindKey', WRAP_BIND_KEY_FLAG], - ['curry', WRAP_CURRY_FLAG], - ['curryRight', WRAP_CURRY_RIGHT_FLAG], - ['flip', WRAP_FLIP_FLAG], - ['partial', WRAP_PARTIAL_FLAG], - ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], - ['rearg', WRAP_REARG_FLAG] - ]; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - asyncTag = '[object AsyncFunction]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - domExcTag = '[object DOMException]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - nullTag = '[object Null]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - proxyTag = '[object Proxy]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - undefinedTag = '[object Undefined]', - weakMapTag = '[object WeakMap]', - weakSetTag = '[object WeakSet]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to match empty string literals in compiled template source. */ - var reEmptyStringLeading = /\b__p \+= '';/g, - reEmptyStringMiddle = /\b(__p \+=) '' \+/g, - reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - - /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, - reUnescapedHtml = /[&<>"']/g, - reHasEscapedHtml = RegExp(reEscapedHtml.source), - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - - /** Used to match template delimiters. */ - var reEscape = /<%-([\s\S]+?)%>/g, - reEvaluate = /<%([\s\S]+?)%>/g, - reInterpolate = /<%=([\s\S]+?)%>/g; - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, - reHasRegExpChar = RegExp(reRegExpChar.source); - - /** Used to match leading whitespace. */ - var reTrimStart = /^\s+/; - - /** Used to match a single whitespace character. */ - var reWhitespace = /\s/; - - /** Used to match wrap detail comments. */ - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, - reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, - reSplitDetails = /,? & /; - - /** Used to match words composed of alphanumeric characters. */ - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - - /** - * Used to validate the `validate` option in `_.template` variable. - * - * Forbids characters which could potentially change the meaning of the function argument definition: - * - "()," (modification of function parameters) - * - "=" (default value) - * - "[]{}" (destructuring of function parameters) - * - "/" (beginning of a comment) - * - whitespace - */ - var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** - * Used to match - * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). - */ - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** Used to match Latin Unicode letters (excluding mathematical operators). */ - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - - /** Used to ensure capturing order of template delimiters. */ - var reNoMatch = /($^)/; - - /** Used to match unescaped characters in compiled string literals. */ - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - - /** Used to compose unicode character classes. */ - var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f', - reComboHalfMarksRange = '\\ufe20-\\ufe2f', - rsComboSymbolsRange = '\\u20d0-\\u20ff', - rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, - rsDingbatRange = '\\u2700-\\u27bf', - rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', - rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', - rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', - rsPunctuationRange = '\\u2000-\\u206f', - rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', - rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', - rsVarRange = '\\ufe0e\\ufe0f', - rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - - /** Used to compose unicode capture groups. */ - var rsApos = "['\u2019]", - rsAstral = '[' + rsAstralRange + ']', - rsBreak = '[' + rsBreakRange + ']', - rsCombo = '[' + rsComboRange + ']', - rsDigits = '\\d+', - rsDingbat = '[' + rsDingbatRange + ']', - rsLower = '[' + rsLowerRange + ']', - rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsUpper = '[' + rsUpperRange + ']', - rsZWJ = '\\u200d'; - - /** Used to compose unicode regexes. */ - var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', - rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', - rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', - rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', - reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', - rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - - /** Used to match apostrophes. */ - var reApos = RegExp(rsApos, 'g'); - - /** - * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and - * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). - */ - var reComboMark = RegExp(rsCombo, 'g'); - - /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ - var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - - /** Used to match complex or compound words. */ - var reUnicodeWord = RegExp([ - rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', - rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', - rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, - rsUpper + '+' + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji - ].join('|'), 'g'); - - /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ - var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); - - /** Used to detect strings that need a more robust regexp to match words. */ - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - - /** Used to assign default `context` object properties. */ - var contextProps = [ - 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', - 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', - 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', - 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', - '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' - ]; - - /** Used to make template sourceURLs easier to identify. */ - var templateCounter = -1; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = - cloneableTags[boolTag] = cloneableTags[dateTag] = - cloneableTags[float32Tag] = cloneableTags[float64Tag] = - cloneableTags[int8Tag] = cloneableTags[int16Tag] = - cloneableTags[int32Tag] = cloneableTags[mapTag] = - cloneableTags[numberTag] = cloneableTags[objectTag] = - cloneableTags[regexpTag] = cloneableTags[setTag] = - cloneableTags[stringTag] = cloneableTags[symbolTag] = - cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = - cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = - cloneableTags[weakMapTag] = false; - - /** Used to map Latin Unicode letters to basic Latin letters. */ - var deburredLetters = { - // Latin-1 Supplement block. - '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', - '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', - '\xc7': 'C', '\xe7': 'c', - '\xd0': 'D', '\xf0': 'd', - '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', - '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', - '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', - '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', - '\xd1': 'N', '\xf1': 'n', - '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', - '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', - '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', - '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', - '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', - '\xc6': 'Ae', '\xe6': 'ae', - '\xde': 'Th', '\xfe': 'th', - '\xdf': 'ss', - // Latin Extended-A block. - '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', - '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', - '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', - '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', - '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', - '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', - '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', - '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', - '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', - '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', - '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', - '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', - '\u0134': 'J', '\u0135': 'j', - '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', - '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', - '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', - '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', - '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', - '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', - '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', - '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', - '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', - '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', - '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', - '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', - '\u0163': 't', '\u0165': 't', '\u0167': 't', - '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', - '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', - '\u0174': 'W', '\u0175': 'w', - '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', - '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', - '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', - '\u0132': 'IJ', '\u0133': 'ij', - '\u0152': 'Oe', '\u0153': 'oe', - '\u0149': "'n", '\u017f': 's' - }; - - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; - - /** Used to map HTML entities to characters. */ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'" - }; - - /** Used to escape characters for inclusion in compiled string literals. */ - var stringEscapes = { - '\\': '\\', - "'": "'", - '\n': 'n', - '\r': 'r', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - /** Built-in method references without a dependency on `root`. */ - var freeParseFloat = parseFloat, - freeParseInt = parseInt; - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; - - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); - - /** Detect free variable `exports`. */ - var freeExports = exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; - - if (types) { - return types; - } - - // Legacy `process.binding('util')` for Node.js < 10. - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - /* Node.js helper references. */ - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, - nodeIsDate = nodeUtil && nodeUtil.isDate, - nodeIsMap = nodeUtil && nodeUtil.isMap, - nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, - nodeIsSet = nodeUtil && nodeUtil.isSet, - nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /*--------------------------------------------------------------------------*/ - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; - } - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.forEachRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEachRight(array, iteratee) { - var length = array == null ? 0 : array.length; - - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.every` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ - function arrayEvery(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - - /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; - } - - /** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; - } - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - /** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array == null ? 0 : array.length; - - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - /** - * A specialized version of `_.reduceRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the last element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - - /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - /** - * Gets the size of an ASCII `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - var asciiSize = baseProperty('length'); - - /** - * Converts an ASCII `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function asciiToArray(string) { - return string.split(''); - } - - /** - * Splits an ASCII `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - - /** - * The base implementation of methods like `_.findKey` and `_.findLastKey`, - * without support for iteratee shorthands, which iterates over `collection` - * using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function(value, key, collection) { - if (predicate(value, key, collection)) { - result = key; - return false; - } - }); - return result; - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); - } - - /** - * This function is like `baseIndexOf` except that it accepts a comparator. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @param {Function} comparator The comparator invoked per element. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - /** - * The base implementation of `_.mean` and `_.meanBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the mean. - */ - function baseMean(array, iteratee) { - var length = array == null ? 0 : array.length; - return length ? (baseSum(array, iteratee) / length) : NAN; - } - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined$1 : object[key]; - }; - } - - /** - * The base implementation of `_.propertyOf` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined$1 : object[key]; - }; - } - - /** - * The base implementation of `_.reduce` and `_.reduceRight`, without support - * for iteratee shorthands, which iterates over `collection` using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initAccum Specify using the first or last element of - * `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection) { - accumulator = initAccum - ? (initAccum = false, value) - : iteratee(accumulator, value, index, collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.sortBy` which uses `comparer` to define the - * sort order of `array` and replaces criteria objects with their corresponding - * values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ - function baseSortBy(array, comparer) { - var length = array.length; - - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - - /** - * The base implementation of `_.sum` and `_.sumBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the sum. - */ - function baseSum(array, iteratee) { - var result, - index = -1, - length = array.length; - - while (++index < length) { - var current = iteratee(array[index]); - if (current !== undefined$1) { - result = result === undefined$1 ? current : (result + current); - } - } - return result; - } - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array - * of key-value pairs for `object` corresponding to the property names of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the key-value pairs. - */ - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); - } - - /** - * The base implementation of `_.trim`. - * - * @private - * @param {string} string The string to trim. - * @returns {string} Returns the trimmed string. - */ - function baseTrim(string) { - return string - ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') - : string; - } - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - - /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function cacheHas(cache, key) { - return cache.has(key); - } - - /** - * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the first unmatched string symbol. - */ - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, - length = strSymbols.length; - - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the last unmatched string symbol. - */ - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Gets the number of `placeholder` occurrences in `array`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} placeholder The placeholder to search for. - * @returns {number} Returns the placeholder count. - */ - function countHolders(array, placeholder) { - var length = array.length, - result = 0; - - while (length--) { - if (array[length] === placeholder) { - ++result; - } - } - return result; - } - - /** - * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A - * letters to basic Latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ - var deburrLetter = basePropertyOf(deburredLetters); - - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - var escapeHtmlChar = basePropertyOf(htmlEscapes); - - /** - * Used by `_.template` to escape characters for inclusion in compiled string literals. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeStringChar(chr) { - return '\\' + stringEscapes[chr]; - } - - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function getValue(object, key) { - return object == null ? undefined$1 : object[key]; - } - - /** - * Checks if `string` contains Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a symbol is found, else `false`. - */ - function hasUnicode(string) { - return reHasUnicode.test(string); - } - - /** - * Checks if `string` contains a word composed of Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a word is found, else `false`. - */ - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - - /** - * Converts `iterator` to an array. - * - * @private - * @param {Object} iterator The iterator to convert. - * @returns {Array} Returns the converted array. - */ - function iteratorToArray(iterator) { - var data, - result = []; - - while (!(data = iterator.next()).done) { - result.push(data.value); - } - return result; - } - - /** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ - function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - - /** - * Replaces all `placeholder` elements in `array` with an internal placeholder - * and returns an array of their indexes. - * - * @private - * @param {Array} array The array to modify. - * @param {*} placeholder The placeholder to replace. - * @returns {Array} Returns the new array of placeholder indexes. - */ - function replaceHolders(array, placeholder) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result[resIndex++] = index; - } - } - return result; - } - - /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ - function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; - } - - /** - * Converts `set` to its value-value pairs. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the value-value pairs. - */ - function setToPairs(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = [value, value]; - }); - return result; - } - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * A specialized version of `_.lastIndexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; - } - - /** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ - function stringSize(string) { - return hasUnicode(string) - ? unicodeSize(string) - : asciiSize(string); - } - - /** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function stringToArray(string) { - return hasUnicode(string) - ? unicodeToArray(string) - : asciiToArray(string); - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the last non-whitespace character. - */ - function trimmedEndIndex(string) { - var index = string.length; - - while (index-- && reWhitespace.test(string.charAt(index))) {} - return index; - } - - /** - * Used by `_.unescape` to convert HTML entities to characters. - * - * @private - * @param {string} chr The matched character to unescape. - * @returns {string} Returns the unescaped character. - */ - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - - /** - * Gets the size of a Unicode `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - - /** - * Converts a Unicode `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - - /** - * Splits a Unicode `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Create a new pristine `lodash` function using the `context` object. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Util - * @param {Object} [context=root] The context object. - * @returns {Function} Returns a new `lodash` function. - * @example - * - * _.mixin({ 'foo': _.constant('foo') }); - * - * var lodash = _.runInContext(); - * lodash.mixin({ 'bar': lodash.constant('bar') }); - * - * _.isFunction(_.foo); - * // => true - * _.isFunction(_.bar); - * // => false - * - * lodash.isFunction(lodash.foo); - * // => false - * lodash.isFunction(lodash.bar); - * // => true - * - * // Create a suped-up `defer` in Node.js. - * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; - */ - var runInContext = (function runInContext(context) { - context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); - - /** Built-in constructor references. */ - var Array = context.Array, - Date = context.Date, - Error = context.Error, - Function = context.Function, - Math = context.Math, - Object = context.Object, - RegExp = context.RegExp, - String = context.String, - TypeError = context.TypeError; - - /** Used for built-in method references. */ - var arrayProto = Array.prototype, - funcProto = Function.prototype, - objectProto = Object.prototype; - - /** Used to detect overreaching core-js shims. */ - var coreJsData = context['__core-js_shared__']; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to generate unique IDs. */ - var idCounter = 0; - - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; - - /** Used to infer the `Object` constructor. */ - var objectCtorString = funcToString.call(Object); - - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = root._; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** Built-in value references. */ - var Buffer = moduleExports ? context.Buffer : undefined$1, - Symbol = context.Symbol, - Uint8Array = context.Uint8Array, - allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined$1, - getPrototype = overArg(Object.getPrototypeOf, Object), - objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice, - spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined$1, - symIterator = Symbol ? Symbol.iterator : undefined$1, - symToStringTag = Symbol ? Symbol.toStringTag : undefined$1; - - var defineProperty = (function() { - try { - var func = getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} - }()); - - /** Mocked built-ins. */ - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, - ctxNow = Date && Date.now !== root.Date.now && Date.now, - ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil, - nativeFloor = Math.floor, - nativeGetSymbols = Object.getOwnPropertySymbols, - nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined$1, - nativeIsFinite = context.isFinite, - nativeJoin = arrayProto.join, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max, - nativeMin = Math.min, - nativeNow = Date.now, - nativeParseInt = context.parseInt, - nativeRandom = Math.random, - nativeReverse = arrayProto.reverse; - - /* Built-in method references that are verified to be native. */ - var DataView = getNative(context, 'DataView'), - Map = getNative(context, 'Map'), - Promise = getNative(context, 'Promise'), - Set = getNative(context, 'Set'), - WeakMap = getNative(context, 'WeakMap'), - nativeCreate = getNative(Object, 'create'); - - /** Used to store function metadata. */ - var metaMap = WeakMap && new WeakMap; - - /** Used to lookup unminified function names. */ - var realNames = {}; - - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined$1, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined$1, - symbolToString = symbolProto ? symbolProto.toString : undefined$1; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object which wraps `value` to enable implicit method - * chain sequences. Methods that operate on and return arrays, collections, - * and functions can be chained together. Methods that retrieve a single value - * or may return a primitive value will automatically end the chain sequence - * and return the unwrapped value. Otherwise, the value must be unwrapped - * with `_#value`. - * - * Explicit chain sequences, which must be unwrapped with `_#value`, may be - * enabled using `_.chain`. - * - * The execution of chained methods is lazy, that is, it's deferred until - * `_#value` is implicitly or explicitly called. - * - * Lazy evaluation allows several methods to support shortcut fusion. - * Shortcut fusion is an optimization to merge iteratee calls; this avoids - * the creation of intermediate arrays and can greatly reduce the number of - * iteratee executions. Sections of a chain sequence qualify for shortcut - * fusion if the section is applied to an array and iteratees accept only - * one argument. The heuristic for whether a section qualifies for shortcut - * fusion is subject to change. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers have `Array` and `String` methods. - * - * The wrapper `Array` methods are: - * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` - * - * The wrapper `String` methods are: - * `replace` and `split` - * - * The wrapper methods that support shortcut fusion are: - * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, - * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, - * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` - * - * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, - * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, - * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, - * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, - * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, - * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, - * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, - * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, - * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, - * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, - * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, - * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, - * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, - * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, - * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, - * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, - * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, - * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, - * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, - * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, - * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, - * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, - * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, - * `zipObject`, `zipObjectDeep`, and `zipWith` - * - * The wrapper methods that are **not** chainable by default are: - * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, - * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, - * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, - * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, - * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, - * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, - * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, - * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, - * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, - * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, - * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, - * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, - * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, - * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, - * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, - * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, - * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, - * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, - * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, - * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, - * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, - * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, - * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, - * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, - * `upperFirst`, `value`, and `words` - * - * @name _ - * @constructor - * @category Seq - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2, 3]); - * - * // Returns an unwrapped value. - * wrapped.reduce(_.add); - * // => 6 - * - * // Returns a wrapped value. - * var squares = wrapped.map(square); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, '__wrapped__')) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object; - object.prototype = undefined$1; - return result; - }; - }()); - - /** - * The function whose prototype chain sequence wrappers inherit from. - * - * @private - */ - function baseLodash() { - // No operation performed. - } - - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable explicit method chain sequences. - */ - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined$1; - } - - /** - * By default, the template delimiters used by lodash are like those in - * embedded Ruby (ERB) as well as ES2015 template strings. Change the - * following template settings to use alternative delimiters. - * - * @static - * @memberOf _ - * @type {Object} - */ - lodash.templateSettings = { - - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'escape': reEscape, - - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'evaluate': reEvaluate, - - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'interpolate': reInterpolate, - - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type {string} - */ - 'variable': '', - - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type {Object} - */ - 'imports': { - - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type {Function} - */ - '_': lodash - } - }; - - // Ensure wrappers are instances of `baseLodash`. - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. - * - * @private - * @constructor - * @param {*} value The value to wrap. - */ - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - - /** - * Creates a clone of the lazy wrapper object. - * - * @private - * @name clone - * @memberOf LazyWrapper - * @returns {Object} Returns the cloned `LazyWrapper` object. - */ - function lazyClone() { - var result = new LazyWrapper(this.__wrapped__); - result.__actions__ = copyArray(this.__actions__); - result.__dir__ = this.__dir__; - result.__filtered__ = this.__filtered__; - result.__iteratees__ = copyArray(this.__iteratees__); - result.__takeCount__ = this.__takeCount__; - result.__views__ = copyArray(this.__views__); - return result; - } - - /** - * Reverses the direction of lazy iteration. - * - * @private - * @name reverse - * @memberOf LazyWrapper - * @returns {Object} Returns the new reversed `LazyWrapper` object. - */ - function lazyReverse() { - if (this.__filtered__) { - var result = new LazyWrapper(this); - result.__dir__ = -1; - result.__filtered__ = true; - } else { - result = this.clone(); - result.__dir__ *= -1; - } - return result; - } - - /** - * Extracts the unwrapped value from its lazy wrapper. - * - * @private - * @name value - * @memberOf LazyWrapper - * @returns {*} Returns the unwrapped value. - */ - function lazyValue() { - var array = this.__wrapped__.value(), - dir = this.__dir__, - isArr = isArray(array), - isRight = dir < 0, - arrLength = isArr ? array.length : 0, - view = getView(0, arrLength, this.__views__), - start = view.start, - end = view.end, - length = end - start, - index = isRight ? end : (start - 1), - iteratees = this.__iteratees__, - iterLength = iteratees.length, - resIndex = 0, - takeCount = nativeMin(length, this.__takeCount__); - - if (!isArr || (!isRight && arrLength == length && takeCount == length)) { - return baseWrapperValue(array, this.__actions__); - } - var result = []; - - outer: - while (length-- && resIndex < takeCount) { - index += dir; - - var iterIndex = -1, - value = array[index]; - - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], - iteratee = data.iteratee, - type = data.type, - computed = iteratee(value); - - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result[resIndex++] = value; - } - return result; - } - - // Ensure `LazyWrapper` is an instance of `baseLodash`. - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - - /** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined$1 : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined$1; - } - - /** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? (data[key] !== undefined$1) : hasOwnProperty.call(data, key); - } - - /** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined$1) ? HASH_UNDEFINED : value; - return this; - } - - // Add methods to `Hash`. - Hash.prototype.clear = hashClear; - Hash.prototype['delete'] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - - /** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined$1 : data[index][1]; - } - - /** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - - /** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ - function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - - // Add methods to `ListCache`. - ListCache.prototype.clear = listCacheClear; - ListCache.prototype['delete'] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ - function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; - } - - /** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - - /** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ - function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; - - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; - } - - // Add methods to `MapCache`. - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype['delete'] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } - } - - /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - - /** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ - function setCacheHas(value) { - return this.__data__.has(value); - } - - // Add methods to `SetCache`. - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear() { - this.__data__ = new ListCache; - this.size = 0; - } - - /** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - - this.size = data.size; - return result; - } - - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function stackGet(key) { - return this.__data__.get(key); - } - - /** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function stackHas(key) { - return this.__data__.has(key); - } - - /** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } - - // Add methods to `Stack`. - Stack.prototype.clear = stackClear; - Stack.prototype['delete'] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; - } - - /** - * A specialized version of `_.sample` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @returns {*} Returns the random element. - */ - function arraySample(array) { - var length = array.length; - return length ? array[baseRandom(0, length - 1)] : undefined$1; - } - - /** - * A specialized version of `_.sampleSize` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function arraySampleSize(array, n) { - return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); - } - - /** - * A specialized version of `_.shuffle` for arrays. - * - * @private - * @param {Array} array The array to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - - /** - * This function is like `assignValue` except that it doesn't assign - * `undefined` values. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignMergeValue(object, key, value) { - if ((value !== undefined$1 && !eq(object[key], value)) || - (value === undefined$1 && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined$1 && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - - /** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function baseAggregator(collection, setter, iteratee, accumulator) { - baseEach(collection, function(value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - - /** - * The base implementation of `_.assignIn` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - if (key == '__proto__' && defineProperty) { - defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; - } - } - - /** - * The base implementation of `_.at` without support for individual paths. - * - * @private - * @param {Object} object The object to iterate over. - * @param {string[]} paths The property paths to pick. - * @returns {Array} Returns the picked elements. - */ - function baseAt(object, paths) { - var index = -1, - length = paths.length, - result = Array(length), - skip = object == null; - - while (++index < length) { - result[index] = skip ? undefined$1 : get(object, paths[index]); - } - return result; - } - - /** - * The base implementation of `_.clamp` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - */ - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined$1) { - number = number <= upper ? number : upper; - } - if (lower !== undefined$1) { - number = number >= lower ? number : lower; - } - } - return number; - } - - /** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} bitmask The bitmask flags. - * 1 - Deep clone - * 2 - Flatten inherited properties - * 4 - Clone symbols - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ - function baseClone(value, bitmask, customizer, key, object, stack) { - var result, - isDeep = bitmask & CLONE_DEEP_FLAG, - isFlat = bitmask & CLONE_FLAT_FLAG, - isFull = bitmask & CLONE_SYMBOLS_FLAG; - - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined$1) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } - } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = (isFlat || isFunc) ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat - ? copySymbolsIn(value, baseAssignIn(result, value)) - : copySymbols(value, baseAssign(result, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result = initCloneByTag(value, tag, isDeep); - } - } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - - if (isSet(value)) { - value.forEach(function(subValue) { - result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap(value)) { - value.forEach(function(subValue, key) { - result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - } - - var keysFunc = isFull - ? (isFlat ? getAllKeysIn : getAllKeys) - : (isFlat ? keysIn : keys); - - var props = isArr ? undefined$1 : keysFunc(value); - arrayEach(props || value, function(subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; - } - // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - return result; - } - - /** - * The base implementation of `_.conforms` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property predicates to conform to. - * @returns {Function} Returns the new spec function. - */ - function baseConforms(source) { - var props = keys(source); - return function(object) { - return baseConformsTo(object, source, props); - }; - } - - /** - * The base implementation of `_.conformsTo` which accepts `props` to check. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - */ - function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object(object); - while (length--) { - var key = props[length], - predicate = source[key], - value = object[key]; - - if ((value === undefined$1 && !(key in object)) || !predicate(value)) { - return false; - } - } - return true; - } - - /** - * The base implementation of `_.delay` and `_.defer` which accepts `args` - * to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Array} args The arguments to provide to `func`. - * @returns {number|Object} Returns the timer id or timeout object. - */ - function baseDelay(func, wait, args) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return setTimeout(function() { func.apply(undefined$1, args); }, wait); - } - - /** - * The base implementation of methods like `_.difference` without support - * for excluding multiple arrays or iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - isCommon = true, - length = array.length, - result = [], - valuesLength = values.length; - - if (!length) { - return result; - } - if (iteratee) { - values = arrayMap(values, baseUnary(iteratee)); - } - if (comparator) { - includes = arrayIncludesWith; - isCommon = false; - } - else if (values.length >= LARGE_ARRAY_SIZE) { - includes = cacheHas; - isCommon = false; - values = new SetCache(values); - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee == null ? value : iteratee(value); - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === computed) { - continue outer; - } - } - result.push(value); - } - else if (!includes(values, computed, comparator)) { - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); - - /** - * The base implementation of `_.forEachRight` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEachRight = createBaseEach(baseForOwnRight, true); - - /** - * The base implementation of `_.every` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; - } - - /** - * The base implementation of methods like `_.max` and `_.min` which accepts a - * `comparator` to determine the extremum value. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The iteratee invoked per iteration. - * @param {Function} comparator The comparator used to compare values. - * @returns {*} Returns the extremum value. - */ - function baseExtremum(array, iteratee, comparator) { - var index = -1, - length = array.length; - - while (++index < length) { - var value = array[index], - current = iteratee(value); - - if (current != null && (computed === undefined$1 - ? (current === current && !isSymbol(current)) - : comparator(current, computed) - )) { - var computed = current, - result = value; - } - } - return result; - } - - /** - * The base implementation of `_.fill` without an iteratee call guard. - * - * @private - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - */ - function baseFill(array, value, start, end) { - var length = array.length; - - start = toInteger(start); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (end === undefined$1 || end > length) ? length : toInteger(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength(end); - while (start < end) { - array[start++] = value; - } - return array; - } - - /** - * The base implementation of `_.filter` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function(value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } - }); - return result; - } - - /** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - - predicate || (predicate = isFlattenable); - result || (result = []); - - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * This function is like `baseFor` except that it iterates over properties - * in the opposite order. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseForRight = createBaseFor(true); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.forOwnRight` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwnRight(object, iteratee) { - return object && baseForRight(object, iteratee, keys); - } - - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from `props`. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the function names. - */ - function baseFunctions(object, props) { - return arrayFilter(props, function(key) { - return isFunction(object[key]); - }); - } - - /** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path) { - path = castPath(path, object); - - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return (index && index == length) ? object : undefined$1; - } - - /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); - } - - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined$1 ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); - } - - /** - * The base implementation of `_.gt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - */ - function baseGt(value, other) { - return value > other; - } - - /** - * The base implementation of `_.has` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHas(object, key) { - return object != null && hasOwnProperty.call(object, key); - } - - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHasIn(object, key) { - return object != null && key in Object(object); - } - - /** - * The base implementation of `_.inRange` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to check. - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - */ - function baseInRange(number, start, end) { - return number >= nativeMin(start, end) && number < nativeMax(start, end); - } - - /** - * The base implementation of methods like `_.intersection`, without support - * for iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of shared values. - */ - function baseIntersection(arrays, iteratee, comparator) { - var includes = comparator ? arrayIncludesWith : arrayIncludes, - length = arrays[0].length, - othLength = arrays.length, - othIndex = othLength, - caches = Array(othLength), - maxLength = Infinity, - result = []; - - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee) { - array = arrayMap(array, baseUnary(iteratee)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) - ? new SetCache(othIndex && array) - : undefined$1; - } - array = arrays[0]; - - var index = -1, - seen = caches[0]; - - outer: - while (++index < length && result.length < maxLength) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (!(seen - ? cacheHas(seen, computed) - : includes(result, computed, comparator) - )) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache - ? cacheHas(cache, computed) - : includes(arrays[othIndex], computed, comparator)) - ) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.invert` and `_.invertBy` which inverts - * `object` with values transformed by `iteratee` and set by `setter`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform values. - * @param {Object} accumulator The initial inverted object. - * @returns {Function} Returns `accumulator`. - */ - function baseInverter(object, setter, iteratee, accumulator) { - baseForOwn(object, function(value, key, object) { - setter(accumulator, iteratee(value), key, object); - }); - return accumulator; - } - - /** - * The base implementation of `_.invoke` without support for individual - * method arguments. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {Array} args The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - */ - function baseInvoke(object, path, args) { - path = castPath(path, object); - object = parent(object, path); - var func = object == null ? object : object[toKey(last(path))]; - return func == null ? undefined$1 : apply(func, object, args); - } - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - /** - * The base implementation of `_.isArrayBuffer` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - */ - function baseIsArrayBuffer(value) { - return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; - } - - /** - * The base implementation of `_.isDate` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - */ - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } - - /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : getTag(object), - othTag = othIsArr ? arrayTag : getTag(other); - - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack); - return (objIsArr || isTypedArray(object)) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - - stack || (stack = new Stack); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - - /** - * The base implementation of `_.isMap` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - */ - function baseIsMap(value) { - return isObjectLike(value) && getTag(value) == mapTag; - } - - /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined$1 && !(key in object)) { - return false; - } - } else { - var stack = new Stack; - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined$1 - ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) - : result - )) { - return false; - } - } - } - return true; - } - - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - - /** - * The base implementation of `_.isRegExp` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - */ - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } - - /** - * The base implementation of `_.isSet` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - */ - function baseIsSet(value) { - return isObjectLike(value) && getTag(value) == setTag; - } - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - /** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ - function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); - } - return property(value); - } - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), - result = []; - - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.lt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - */ - function baseLt(value, other) { - return value < other; - } - - /** - * The base implementation of `_.map` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; - } - - /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - - /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get(object, path); - return (objValue === undefined$1 && objValue === srcValue) - ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - - /** - * The base implementation of `_.merge` without support for multiple sources. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {number} srcIndex The index of `source`. - * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function(srcValue, key) { - stack || (stack = new Stack); - if (isObject(srcValue)) { - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } - else { - var newValue = customizer - ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) - : undefined$1; - - if (newValue === undefined$1) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - - /** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {number} srcIndex The index of `source`. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = safeGet(object, key), - srcValue = safeGet(source, key), - stacked = stack.get(srcValue); - - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer - ? customizer(objValue, srcValue, (key + ''), object, source, stack) - : undefined$1; - - var isCommon = newValue === undefined$1; - - if (isCommon) { - var isArr = isArray(srcValue), - isBuff = !isArr && isBuffer(srcValue), - isTyped = !isArr && !isBuff && isTypedArray(srcValue); - - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray(objValue)) { - newValue = objValue; - } - else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } - else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } - else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } - else { - newValue = []; - } - } - else if (isPlainObject(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } - else if (!isObject(objValue) || isFunction(objValue)) { - newValue = initCloneObject(srcValue); - } - } - else { - isCommon = false; - } - } - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack['delete'](srcValue); - } - assignMergeValue(object, key, newValue); - } - - /** - * The base implementation of `_.nth` which doesn't coerce arguments. - * - * @private - * @param {Array} array The array to query. - * @param {number} n The index of the element to return. - * @returns {*} Returns the nth element of `array`. - */ - function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex(n, length) ? array[n] : undefined$1; - } - - /** - * The base implementation of `_.orderBy` without param guards. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {string[]} orders The sort orders of `iteratees`. - * @returns {Array} Returns the new sorted array. - */ - function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap(iteratees, function(iteratee) { - if (isArray(iteratee)) { - return function(value) { - return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); - }; - } - return iteratee; - }); - } else { - iteratees = [identity]; - } - - var index = -1; - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - - var result = baseMap(collection, function(value, key, collection) { - var criteria = arrayMap(iteratees, function(iteratee) { - return iteratee(value); - }); - return { 'criteria': criteria, 'index': ++index, 'value': value }; - }); - - return baseSortBy(result, function(object, other) { - return compareMultiple(object, other, orders); - }); - } - - /** - * The base implementation of `_.pick` without support for individual - * property identifiers. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @returns {Object} Returns the new object. - */ - function basePick(object, paths) { - return basePickBy(object, paths, function(value, path) { - return hasIn(object, path); - }); - } - - /** - * The base implementation of `_.pickBy` without support for iteratee shorthands. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @param {Function} predicate The function invoked per property. - * @returns {Object} Returns the new object. - */ - function basePickBy(object, paths, predicate) { - var index = -1, - length = paths.length, - result = {}; - - while (++index < length) { - var path = paths[index], - value = baseGet(object, path); - - if (predicate(value, path)) { - baseSet(result, castPath(path, object), value); - } - } - return result; - } - - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } - - /** - * The base implementation of `_.pullAllBy` without support for iteratee - * shorthands. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - */ - function basePullAll(array, values, iteratee, comparator) { - var indexOf = comparator ? baseIndexOfWith : baseIndexOf, - index = -1, - length = values.length, - seen = array; - - if (array === values) { - values = copyArray(values); - } - if (iteratee) { - seen = arrayMap(array, baseUnary(iteratee)); - } - while (++index < length) { - var fromIndex = 0, - value = values[index], - computed = iteratee ? iteratee(value) : value; - - while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; - } - - /** - * The base implementation of `_.pullAt` without support for individual - * indexes or capturing the removed elements. - * - * @private - * @param {Array} array The array to modify. - * @param {number[]} indexes The indexes of elements to remove. - * @returns {Array} Returns `array`. - */ - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, - lastIndex = length - 1; - - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex(index)) { - splice.call(array, index, 1); - } else { - baseUnset(array, index); - } - } - } - return array; - } - - /** - * The base implementation of `_.random` without support for returning - * floating-point numbers. - * - * @private - * @param {number} lower The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the random number. - */ - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - - /** - * The base implementation of `_.range` and `_.rangeRight` which doesn't - * coerce arguments. - * - * @private - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @param {number} step The value to increment or decrement by. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the range of numbers. - */ - function baseRange(start, end, step, fromRight) { - var index = -1, - length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), - result = Array(length); - - while (length--) { - result[fromRight ? length : ++index] = start; - start += step; - } - return result; - } - - /** - * The base implementation of `_.repeat` which doesn't coerce arguments. - * - * @private - * @param {string} string The string to repeat. - * @param {number} n The number of times to repeat the string. - * @returns {string} Returns the repeated string. - */ - function baseRepeat(string, n) { - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - - return result; - } - - /** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); - } - - /** - * The base implementation of `_.sample`. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - */ - function baseSample(collection) { - return arraySample(values(collection)); - } - - /** - * The base implementation of `_.sampleSize` without param guards. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function baseSampleSize(collection, n) { - var array = values(collection); - return shuffleSelf(array, baseClamp(n, 0, array.length)); - } - - /** - * The base implementation of `_.set`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseSet(object, path, value, customizer) { - if (!isObject(object)) { - return object; - } - path = castPath(path, object); - - var index = -1, - length = path.length, - lastIndex = length - 1, - nested = object; - - while (nested != null && ++index < length) { - var key = toKey(path[index]), - newValue = value; - - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return object; - } - - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined$1; - if (newValue === undefined$1) { - newValue = isObject(objValue) - ? objValue - : (isIndex(path[index + 1]) ? [] : {}); - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - - /** - * The base implementation of `setData` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - - /** - * The base implementation of `setToString` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(string), - 'writable': true - }); - }; - - /** - * The base implementation of `_.shuffle`. - * - * @private - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function baseShuffle(collection) { - return shuffleSelf(values(collection)); - } - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * The base implementation of `_.some` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; - - baseEach(collection, function(value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; - } - - /** - * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which - * performs a binary search of `array` to determine the index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndex(array, value, retHighest) { - var low = 0, - high = array == null ? low : array.length; - - if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = (low + high) >>> 1, - computed = array[mid]; - - if (computed !== null && !isSymbol(computed) && - (retHighest ? (computed <= value) : (computed < value))) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy(array, value, identity, retHighest); - } - - /** - * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` - * which invokes `iteratee` for `value` and each element of `array` to compute - * their sort ranking. The iteratee is invoked with one argument; (value). - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} iteratee The iteratee invoked per element. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndexBy(array, value, iteratee, retHighest) { - var low = 0, - high = array == null ? 0 : array.length; - if (high === 0) { - return 0; - } - - value = iteratee(value); - var valIsNaN = value !== value, - valIsNull = value === null, - valIsSymbol = isSymbol(value), - valIsUndefined = value === undefined$1; - - while (low < high) { - var mid = nativeFloor((low + high) / 2), - computed = iteratee(array[mid]), - othIsDefined = computed !== undefined$1, - othIsNull = computed === null, - othIsReflexive = computed === computed, - othIsSymbol = isSymbol(computed); - - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? (computed <= value) : (computed < value); - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - - /** - * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseSortedUniq(array, iteratee) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - if (!index || !eq(computed, seen)) { - var seen = computed; - result[resIndex++] = value === 0 ? 0 : value; - } - } - return result; - } - - /** - * The base implementation of `_.toNumber` which doesn't ensure correct - * conversions of binary, hexadecimal, or octal string values. - * - * @private - * @param {*} value The value to process. - * @returns {number} Returns the number. - */ - function baseToNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - return +value; - } - - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } - else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache; - } - else { - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.unset`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The property path to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - */ - function baseUnset(object, path) { - path = castPath(path, object); - - // Prevent prototype pollution, see: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg - var index = -1, - length = path.length; - - if (!length) { - return true; - } - - var isRootPrimitive = object == null || (typeof object !== 'object' && typeof object !== 'function'); - - while (++index < length) { - var key = path[index]; - - // skip non-string keys (e.g., Symbols, numbers) - if (typeof key !== 'string') { - continue; - } - - // Always block "__proto__" anywhere in the path if it's not expected - if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) { - return false; - } - - // Block "constructor.prototype" chains - if (key === 'constructor' && - (index + 1) < length && - typeof path[index + 1] === 'string' && - path[index + 1] === 'prototype') { - - // Allow ONLY when the path starts at a primitive root, e.g., _.unset(0, 'constructor.prototype.a') - if (isRootPrimitive && index === 0) { - continue; - } - - return false; - } - } - - var obj = parent(object, path); - return obj == null || delete obj[toKey(last(path))]; - } - - /** - * The base implementation of `_.update`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to update. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseUpdate(object, path, updater, customizer) { - return baseSet(object, path, updater(baseGet(object, path)), customizer); - } - - /** - * The base implementation of methods like `_.dropWhile` and `_.takeWhile` - * without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to query. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [isDrop] Specify dropping elements instead of taking them. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the slice of `array`. - */ - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length) && - predicate(array[index], index, array)) {} - - return isDrop - ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) - : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); - } - - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to perform to resolve the unwrapped value. - * @returns {*} Returns the resolved value. - */ - function baseWrapperValue(value, actions) { - var result = value; - if (result instanceof LazyWrapper) { - result = result.value(); - } - return arrayReduce(actions, function(result, action) { - return action.func.apply(action.thisArg, arrayPush([result], action.args)); - }, result); - } - - /** - * The base implementation of methods like `_.xor`, without support for - * iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of values. - */ - function baseXor(arrays, iteratee, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq(arrays[0]) : []; - } - var index = -1, - result = Array(length); - - while (++index < length) { - var array = arrays[index], - othIndex = -1; - - while (++othIndex < length) { - if (othIndex != index) { - result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); - } - } - } - return baseUniq(baseFlatten(result, 1), iteratee, comparator); - } - - /** - * This base implementation of `_.zipObject` which assigns values using `assignFunc`. - * - * @private - * @param {Array} props The property identifiers. - * @param {Array} values The property values. - * @param {Function} assignFunc The function to assign values. - * @returns {Object} Returns the new object. - */ - function baseZipObject(props, values, assignFunc) { - var index = -1, - length = props.length, - valsLength = values.length, - result = {}; - - while (++index < length) { - var value = index < valsLength ? values[index] : undefined$1; - assignFunc(result, props[index], value); - } - return result; - } - - /** - * Casts `value` to an empty array if it's not an array like object. - * - * @private - * @param {*} value The value to inspect. - * @returns {Array|Object} Returns the cast array-like object. - */ - function castArrayLikeObject(value) { - return isArrayLikeObject(value) ? value : []; - } - - /** - * Casts `value` to `identity` if it's not a function. - * - * @private - * @param {*} value The value to inspect. - * @returns {Function} Returns cast function. - */ - function castFunction(value) { - return typeof value == 'function' ? value : identity; - } - - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - - /** - * A `baseRest` alias which can be replaced with `identity` by module - * replacement plugins. - * - * @private - * @type {Function} - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - var castRest = baseRest; - - /** - * Casts `array` to a slice if it's needed. - * - * @private - * @param {Array} array The array to inspect. - * @param {number} start The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the cast slice. - */ - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined$1 ? length : end; - return (!start && end >= length) ? array : baseSlice(array, start, end); - } - - /** - * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). - * - * @private - * @param {number|Object} id The timer id or timeout object of the timer to clear. - */ - var clearTimeout = ctxClearTimeout || function(id) { - return root.clearTimeout(id); - }; - - /** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, - result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - - buffer.copy(result); - return result; - } - - /** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; - } - - /** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - - /** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ - function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; - } - - /** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ - function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; - } - - /** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - - /** - * Compares values to sort them in ascending order. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined$1, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = isSymbol(value); - - var othIsDefined = other !== undefined$1, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = isSymbol(other); - - if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || - (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || - (valIsNull && othIsDefined && othIsReflexive) || - (!valIsDefined && othIsReflexive) || - !valIsReflexive) { - return 1; - } - if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || - (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || - (othIsNull && valIsDefined && valIsReflexive) || - (!othIsDefined && valIsReflexive) || - !othIsReflexive) { - return -1; - } - } - return 0; - } - - /** - * Used by `_.orderBy` to compare multiple properties of a value to another - * and stable sort them. - * - * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, - * specify an order of "desc" for descending or "asc" for ascending sort order - * of corresponding values. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {boolean[]|string[]} orders The order to sort by for each property. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareMultiple(object, other, orders) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length, - ordersLength = orders.length; - - while (++index < length) { - var result = compareAscending(objCriteria[index], othCriteria[index]); - if (result) { - if (index >= ordersLength) { - return result; - } - var order = orders[index]; - return result * (order == 'desc' ? -1 : 1); - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; - } - - /** - * Creates an array that is the composition of partially applied arguments, - * placeholders, and provided arguments into a single array of arguments. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to prepend to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersLength = holders.length, - leftIndex = -1, - leftLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(leftLength + rangeLength), - isUncurried = !isCurried; - - while (++leftIndex < leftLength) { - result[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result[leftIndex++] = args[argsIndex++]; - } - return result; - } - - /** - * This function is like `composeArgs` except that the arguments composition - * is tailored for `_.partialRight`. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to append to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersIndex = -1, - holdersLength = holders.length, - rightIndex = -1, - rightLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(rangeLength + rightLength), - isUncurried = !isCurried; - - while (++argsIndex < rangeLength) { - result[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result; - } - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined$1; - - if (newValue === undefined$1) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - - /** - * Copies own symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - - /** - * Copies own and inherited symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - - /** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ - function createAggregator(setter, initializer) { - return function(collection, iteratee) { - var func = isArray(collection) ? arrayAggregator : baseAggregator, - accumulator = initializer ? initializer() : {}; - - return func(collection, setter, getIteratee(iteratee, 2), accumulator); - }; - } - - /** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined$1, - guard = length > 2 ? sources[2] : undefined$1; - - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined$1; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined$1 : customizer; - length = 1; - } - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); - - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * Creates a function that wraps `func` to invoke it with the optional `this` - * binding of `thisArg`. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - - /** - * Creates a function like `_.lowerFirst`. - * - * @private - * @param {string} methodName The name of the `String` case method to use. - * @returns {Function} Returns the new case function. - */ - function createCaseFirst(methodName) { - return function(string) { - string = toString(string); - - var strSymbols = hasUnicode(string) - ? stringToArray(string) - : undefined$1; - - var chr = strSymbols - ? strSymbols[0] - : string.charAt(0); - - var trailing = strSymbols - ? castSlice(strSymbols, 1).join('') - : string.slice(1); - - return chr[methodName]() + trailing; - }; - } - - /** - * Creates a function like `_.camelCase`. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ - function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); - }; - } - - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtor(Ctor) { - return function() { - // Use a `switch` statement to work with class constructors. See - // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist - // for more details. - var args = arguments; - switch (args.length) { - case 0: return new Ctor; - case 1: return new Ctor(args[0]); - case 2: return new Ctor(args[0], args[1]); - case 3: return new Ctor(args[0], args[1], args[2]); - case 4: return new Ctor(args[0], args[1], args[2], args[3]); - case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); - - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; - } - - /** - * Creates a function that wraps `func` to enable currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {number} arity The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length, - placeholder = getHolder(wrapper); - - while (index--) { - args[index] = arguments[index]; - } - var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) - ? [] - : replaceHolders(args, placeholder); - - length -= holders.length; - if (length < arity) { - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, undefined$1, - args, holders, undefined$1, undefined$1, arity - length); - } - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return apply(fn, this, args); - } - return wrapper; - } - - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} findIndexFunc The function to find the collection index. - * @returns {Function} Returns the new find function. - */ - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike(collection)) { - var iteratee = getIteratee(predicate, 3); - collection = keys(collection); - predicate = function(key) { return iteratee(iterable[key], key, iterable); }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined$1; - }; - } - - /** - * Creates a `_.flow` or `_.flowRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new flow function. - */ - function createFlow(fromRight) { - return flatRest(function(funcs) { - var length = funcs.length, - index = length, - prereq = LodashWrapper.prototype.thru; - - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == 'wrapper') { - var wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - - var funcName = getFuncName(func), - data = funcName == 'wrapper' ? getData(func) : undefined$1; - - if (data && isLaziable(data[0]) && - data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && - !data[4].length && data[9] == 1 - ) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = (func.length == 1 && isLaziable(func)) - ? wrapper[funcName]() - : wrapper.thru(func); - } - } - return function() { - var args = arguments, - value = args[0]; - - if (wrapper && args.length == 1 && isArray(value)) { - return wrapper.plant(value).value(); - } - var index = 0, - result = length ? funcs[index].apply(this, args) : value; - - while (++index < length) { - result = funcs[index].call(this, result); - } - return result; - }; - }); - } - - /** - * Creates a function that wraps `func` to invoke it with optional `this` - * binding of `thisArg`, partial application, and currying. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [partialsRight] The arguments to append to those provided - * to the new function. - * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, - isBind = bitmask & WRAP_BIND_FLAG, - isBindKey = bitmask & WRAP_BIND_KEY_FLAG, - isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), - isFlip = bitmask & WRAP_FLIP_FLAG, - Ctor = isBindKey ? undefined$1 : createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length; - - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), - holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, thisArg, - args, newHolders, argPos, ary, arity - length - ); - } - var thisBinding = isBind ? thisArg : this, - fn = isBindKey ? thisBinding[func] : func; - - length = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary < length) { - args.length = ary; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtor(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - - /** - * Creates a function like `_.invertBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} toIteratee The function to resolve iteratees. - * @returns {Function} Returns the new inverter function. - */ - function createInverter(setter, toIteratee) { - return function(object, iteratee) { - return baseInverter(object, setter, toIteratee(iteratee), {}); - }; - } - - /** - * Creates a function that performs a mathematical operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @param {number} [defaultValue] The value used for `undefined` arguments. - * @returns {Function} Returns the new mathematical operation function. - */ - function createMathOperation(operator, defaultValue) { - return function(value, other) { - var result; - if (value === undefined$1 && other === undefined$1) { - return defaultValue; - } - if (value !== undefined$1) { - result = value; - } - if (other !== undefined$1) { - if (result === undefined$1) { - return other; - } - if (typeof value == 'string' || typeof other == 'string') { - value = baseToString(value); - other = baseToString(other); - } else { - value = baseToNumber(value); - other = baseToNumber(other); - } - result = operator(value, other); - } - return result; - }; - } - - /** - * Creates a function like `_.over`. - * - * @private - * @param {Function} arrayFunc The function to iterate over iteratees. - * @returns {Function} Returns the new over function. - */ - function createOver(arrayFunc) { - return flatRest(function(iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee) { - return apply(iteratee, thisArg, args); - }); - }); - }); - } - - /** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {number} length The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ - function createPadding(length, chars) { - chars = chars === undefined$1 ? ' ' : baseToString(chars); - - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length) : chars; - } - var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); - return hasUnicode(chars) - ? castSlice(stringToArray(result), 0, length).join('') - : result.slice(0, length); - } - - /** - * Creates a function that wraps `func` to invoke it with the `this` binding - * of `thisArg` and `partials` prepended to the arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to - * the new function. - * @returns {Function} Returns the new wrapped function. - */ - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn, isBind ? thisArg : this, args); - } - return wrapper; - } - - /** - * Creates a `_.range` or `_.rangeRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new range function. - */ - function createRange(fromRight) { - return function(start, end, step) { - if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { - end = step = undefined$1; - } - // Ensure the sign of `-0` is preserved. - start = toFinite(start); - if (end === undefined$1) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - step = step === undefined$1 ? (start < end ? 1 : -1) : toFinite(step); - return baseRange(start, end, step, fromRight); - }; - } - - /** - * Creates a function that performs a relational operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @returns {Function} Returns the new relational operation function. - */ - function createRelationalOperation(operator) { - return function(value, other) { - if (!(typeof value == 'string' && typeof other == 'string')) { - value = toNumber(value); - other = toNumber(other); - } - return operator(value, other); - }; - } - - /** - * Creates a function that wraps `func` to continue currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {Function} wrapFunc The function to create the `func` wrapper. - * @param {*} placeholder The placeholder value. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, - newHolders = isCurry ? holders : undefined$1, - newHoldersRight = isCurry ? undefined$1 : holders, - newPartials = isCurry ? partials : undefined$1, - newPartialsRight = isCurry ? undefined$1 : partials; - - bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= -4; - } - var newData = [ - func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, - newHoldersRight, argPos, ary, arity - ]; - - var result = wrapFunc.apply(undefined$1, newData); - if (isLaziable(func)) { - setData(result, newData); - } - result.placeholder = placeholder; - return setWrapToString(result, func, bitmask); - } - - /** - * Creates a function like `_.round`. - * - * @private - * @param {string} methodName The name of the `Math` method to use when rounding. - * @returns {Function} Returns the new round function. - */ - function createRound(methodName) { - var func = Math[methodName]; - return function(number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision && nativeIsFinite(number)) { - // Shift with exponential notation to avoid floating-point issues. - // See [MDN](https://mdn.io/round#Examples) for more details. - var pair = (toString(number) + 'e').split('e'), - value = func(pair[0] + 'e' + (+pair[1] + precision)); - - pair = (toString(value) + 'e').split('e'); - return +(pair[0] + 'e' + (+pair[1] - precision)); - } - return func(number); - }; - } - - /** - * Creates a set object of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ - var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { - return new Set(values); - }; - - /** - * Creates a `_.toPairs` or `_.toPairsIn` function. - * - * @private - * @param {Function} keysFunc The function to get the keys of a given object. - * @returns {Function} Returns the new pairs function. - */ - function createToPairs(keysFunc) { - return function(object) { - var tag = getTag(object); - if (tag == mapTag) { - return mapToArray(object); - } - if (tag == setTag) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - - /** - * Creates a function that either curries or invokes `func` with optional - * `this` binding and partially applied arguments. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * 512 - `_.flip` - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to be partially applied. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= -97; - partials = holders = undefined$1; - } - ary = ary === undefined$1 ? ary : nativeMax(toInteger(ary), 0); - arity = arity === undefined$1 ? arity : toInteger(arity); - length -= holders ? holders.length : 0; - - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, - holdersRight = holders; - - partials = holders = undefined$1; - } - var data = isBindKey ? undefined$1 : getData(func); - - var newData = [ - func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, - argPos, ary, arity - ]; - - if (data) { - mergeData(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined$1 - ? (isBindKey ? 0 : func.length) - : nativeMax(newData[9] - length, 0); - - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= -25; - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result = createPartial(func, bitmask, thisArg, partials); - } else { - result = createHybrid.apply(undefined$1, newData); - } - var setter = data ? baseSetData : setData; - return setWrapToString(setter(result, newData), func, bitmask); - } - - /** - * Used by `_.defaults` to customize its `_.assignIn` use to assign properties - * of source objects to the destination object for all destination properties - * that resolve to `undefined`. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to assign. - * @param {Object} object The parent object of `objValue`. - * @returns {*} Returns the value to assign. - */ - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined$1 || - (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { - return srcValue; - } - return objValue; - } - - /** - * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source - * objects into destination objects that are passed thru. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to merge. - * @param {Object} object The parent object of `objValue`. - * @param {Object} source The parent object of `srcValue`. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - * @returns {*} Returns the value to assign. - */ - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject(objValue) && isObject(srcValue)) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined$1, customDefaultsMerge, stack); - stack['delete'](srcValue); - } - return objValue; - } - - /** - * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain - * objects. - * - * @private - * @param {*} value The value to inspect. - * @param {string} key The key of the property to inspect. - * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. - */ - function customOmitClone(value) { - return isPlainObject(value) ? undefined$1 : value; - } - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; - - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - // Check that cyclic values are equal. - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined$1; - - stack.set(array, other); - stack.set(other, array); - - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined$1) { - if (compared) { - continue; - } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function(othValue, othIndex) { - if (!cacheHas(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; - } - } - stack['delete'](array); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; - - case arrayBufferTag: - if ((object.byteLength != other.byteLength) || - !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; - - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); - - case errorTag: - return object.name == other.name && object.message == other.message; - - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); - - case mapTag: - var convert = mapToArray; - - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; - - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; - } - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; - - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - // Check that cyclic values are equal. - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined$1 - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - function flatRest(func) { - return setToString(overRest(func, undefined$1, flatten), func + ''); - } - - /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - - /** - * Creates an array of own and inherited enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - - /** - * Gets metadata for `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {*} Returns the metadata for `func`. - */ - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - - /** - * Gets the name of `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {string} Returns the function name. - */ - function getFuncName(func) { - var result = (func.name + ''), - array = realNames[result], - length = hasOwnProperty.call(realNames, result) ? array.length : 0; - - while (length--) { - var data = array[length], - otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result; - } - - /** - * Gets the argument placeholder value for `func`. - * - * @private - * @param {Function} func The function to inspect. - * @returns {*} Returns the placeholder value. - */ - function getHolder(func) { - var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; - return object.placeholder; - } - - /** - * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, - * this function returns the custom method, otherwise it returns `baseIteratee`. - * If arguments are provided, the chosen function is invoked with them and - * its result is returned. - * - * @private - * @param {*} [value] The value to convert to an iteratee. - * @param {number} [arity] The arity of the created iteratee. - * @returns {Function} Returns the chosen function or its result. - */ - function getIteratee() { - var result = lodash.iteratee || iteratee; - result = result === iteratee ? baseIteratee : result; - return arguments.length ? result(arguments[0], arguments[1]) : result; - } - - /** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; - } - - /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = keys(object), - length = result.length; - - while (length--) { - var key = result[length], - value = object[key]; - - result[length] = [key, value, isStrictComparable(value)]; - } - return result; - } - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined$1; - } - - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - - try { - value[symToStringTag] = undefined$1; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result; - } - - /** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - - /** - * Creates an array of the own and inherited enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result = []; - while (object) { - arrayPush(result, getSymbols(object)); - object = getPrototype(object); - } - return result; - }; - - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - var getTag = baseGetTag; - - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined$1, - ctorString = Ctor ? toSource(Ctor) : ''; - - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; - } - - /** - * Gets the view, applying any `transforms` to the `start` and `end` positions. - * - * @private - * @param {number} start The start of the view. - * @param {number} end The end of the view. - * @param {Array} transforms The transformations to apply to the view. - * @returns {Object} Returns an object containing the `start` and `end` - * positions of the view. - */ - function getView(start, end, transforms) { - var index = -1, - length = transforms.length; - - while (++index < length) { - var data = transforms[index], - size = data.size; - - switch (data.type) { - case 'drop': start += size; break; - case 'dropRight': end -= size; break; - case 'take': end = nativeMin(end, start + size); break; - case 'takeRight': start = nativeMax(start, end - size); break; - } - } - return { 'start': start, 'end': end }; - } - - /** - * Extracts wrapper details from the `source` body comment. - * - * @private - * @param {string} source The source to inspect. - * @returns {Array} Returns the wrapper details. - */ - function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; - } - - /** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ - function hasPath(object, path, hasFunc) { - path = castPath(path, object); - - var index = -1, - length = path.length, - result = false; - - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && - (isArray(object) || isArguments(object)); - } - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = new array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototype(object)) - : {}; - } - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case dataViewTag: - return cloneDataView(object, isDeep); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - return cloneTypedArray(object, isDeep); - - case mapTag: - return new Ctor; - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - return cloneRegExp(object); - - case setTag: - return new Ctor; - - case symbolTag: - return cloneSymbol(object); - } - } - - /** - * Inserts wrapper `details` in a comment at the top of the `source` body. - * - * @private - * @param {string} source The source to modify. - * @returns {Array} details The details to insert. - * @returns {string} Returns the modified source. - */ - function insertWrapDetails(source, details) { - var length = details.length; - if (!length) { - return source; - } - var lastIndex = length - 1; - details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; - details = details.join(length > 2 ? ', ' : ' '); - return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); - } - - /** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ - function isFlattenable(value) { - return isArray(value) || isArguments(value) || - !!(spreadableSymbol && value && value[spreadableSymbol]); - } - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; - - return !!length && - (type == 'number' || - (type != 'symbol' && reIsUint.test(value))) && - (value > -1 && value % 1 == 0 && value < length); - } - - /** - * Checks if the given arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, - * else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { - return eq(object[index], value); - } - return false; - } - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); - } - - /** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ - function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); - } - - /** - * Checks if `func` has a lazy counterpart. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` has a lazy counterpart, - * else `false`. - */ - function isLaziable(func) { - var funcName = getFuncName(func), - other = lodash[funcName]; - - if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); - } - - /** - * Checks if `func` is capable of being masked. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `func` is maskable, else `false`. - */ - var isMaskable = coreJsData ? isFunction : stubFalse; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - - return value === proto; - } - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && !isObject(value); - } - - /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && - (srcValue !== undefined$1 || (key in Object(object))); - }; - } - - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - - var cache = result.cache; - return result; - } - - /** - * Merges the function metadata of `source` into `data`. - * - * Merging metadata reduces the number of wrappers used to invoke a function. - * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` - * may be applied regardless of execution order. Methods like `_.ary` and - * `_.rearg` modify function arguments, making the order in which they are - * executed important, preventing the merging of metadata. However, we make - * an exception for a safe combined case where curried functions have `_.ary` - * and or `_.rearg` applied. - * - * @private - * @param {Array} data The destination metadata. - * @param {Array} source The source metadata. - * @returns {Array} Returns `data`. - */ - function mergeData(data, source) { - var bitmask = data[1], - srcBitmask = source[1], - newBitmask = bitmask | srcBitmask, - isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - - var isCombo = - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || - ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); - - // Exit early if metadata can't be merged. - if (!(isCommon || isCombo)) { - return data; - } - // Use source `thisArg` if available. - if (srcBitmask & WRAP_BIND_FLAG) { - data[2] = source[2]; - // Set when currying a bound function. - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - // Compose partial arguments. - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; - } - // Compose partial right arguments. - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; - } - // Use source `argPos` if available. - value = source[7]; - if (value) { - data[7] = value; - } - // Use source `ary` if it's smaller. - if (srcBitmask & WRAP_ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - // Use source `arity` if one is not provided. - if (data[9] == null) { - data[9] = source[9]; - } - // Use source `func` and merge bitmasks. - data[0] = source[0]; - data[1] = newBitmask; - - return data; - } - - /** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; - } - - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString.call(value); - } - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined$1 ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - /** - * Gets the parent value at `path` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path to get the parent value of. - * @returns {*} Returns the parent value. - */ - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - - /** - * Reorder `array` according to the specified indexes where the element at - * the first index is assigned as the first element, the element at - * the second index is assigned as the second element, and so on. - * - * @private - * @param {Array} array The array to reorder. - * @param {Array} indexes The arranged array indexes. - * @returns {Array} Returns `array`. - */ - function reorder(array, indexes) { - var arrLength = array.length, - length = nativeMin(indexes.length, arrLength), - oldArray = copyArray(array); - - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined$1; - } - return array; - } - - /** - * Gets the value at `key`, unless `key` is "__proto__" or "constructor". - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function safeGet(object, key) { - if (key === 'constructor' && typeof object[key] === 'function') { - return; - } - - if (key == '__proto__') { - return; - } - - return object[key]; - } - - /** - * Sets metadata for `func`. - * - * **Note:** If this function becomes hot, i.e. is invoked a lot in a short - * period of time, it will trip its breaker and transition to an identity - * function to avoid garbage collection pauses in V8. See - * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) - * for more details. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var setData = shortOut(baseSetData); - - /** - * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @returns {number|Object} Returns the timer id or timeout object. - */ - var setTimeout = ctxSetTimeout || function(func, wait) { - return root.setTimeout(func, wait); - }; - - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = shortOut(baseSetToString); - - /** - * Sets the `toString` method of `wrapper` to mimic the source of `reference` - * with wrapper details in a comment at the top of the source body. - * - * @private - * @param {Function} wrapper The function to modify. - * @param {Function} reference The reference function. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Function} Returns `wrapper`. - */ - function setWrapToString(wrapper, reference, bitmask) { - var source = (reference + ''); - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - - /** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. - */ - function shortOut(func) { - var count = 0, - lastCalled = 0; - - return function() { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined$1, arguments); - }; - } - - /** - * A specialized version of `_.shuffle` which mutates and sets the size of `array`. - * - * @private - * @param {Array} array The array to shuffle. - * @param {number} [size=array.length] The size of `array`. - * @returns {Array} Returns `array`. - */ - function shuffleSelf(array, size) { - var index = -1, - length = array.length, - lastIndex = length - 1; - - size = size === undefined$1 ? length : size; - while (++index < size) { - var rand = baseRandom(index, lastIndex), - value = array[rand]; - - array[rand] = array[index]; - array[index] = value; - } - array.length = size; - return array; - } - - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath = memoizeCapped(function(string) { - var result = []; - if (string.charCodeAt(0) === 46 /* . */) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - }); - - /** - * Converts `value` to a string key if it's not a string or symbol. - * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. - */ - function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; - } - - /** - * Updates wrapper `details` based on `bitmask` flags. - * - * @private - * @returns {Array} details The details to modify. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Array} Returns `details`. - */ - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function(pair) { - var value = '_.' + pair[0]; - if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { - details.push(value); - } - }); - return details.sort(); - } - - /** - * Creates a clone of `wrapper`. - * - * @private - * @param {Object} wrapper The wrapper to clone. - * @returns {Object} Returns the cloned wrapper. - */ - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result.__actions__ = copyArray(wrapper.__actions__); - result.__index__ = wrapper.__index__; - result.__values__ = wrapper.__values__; - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements split into groups the length of `size`. - * If `array` can't be split evenly, the final chunk will be the remaining - * elements. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to process. - * @param {number} [size=1] The length of each chunk - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the new array of chunks. - * @example - * - * _.chunk(['a', 'b', 'c', 'd'], 2); - * // => [['a', 'b'], ['c', 'd']] - * - * _.chunk(['a', 'b', 'c', 'd'], 3); - * // => [['a', 'b', 'c'], ['d']] - */ - function chunk(array, size, guard) { - if ((guard ? isIterateeCall(array, size, guard) : size === undefined$1)) { - size = 1; - } else { - size = nativeMax(toInteger(size), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size < 1) { - return []; - } - var index = 0, - resIndex = 0, - result = Array(nativeCeil(length / size)); - - while (index < length) { - result[resIndex++] = baseSlice(array, index, (index += size)); - } - return result; - } - - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * Creates a new array concatenating `array` with any additional arrays - * and/or values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to concatenate. - * @param {...*} [values] The values to concatenate. - * @returns {Array} Returns the new concatenated array. - * @example - * - * var array = [1]; - * var other = _.concat(array, 2, [3], [[4]]); - * - * console.log(other); - * // => [1, 2, 3, [4]] - * - * console.log(array); - * // => [1] - */ - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array(length - 1), - array = arguments[0], - index = length; - - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - - /** - * Creates an array of `array` values not included in the other given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * **Note:** Unlike `_.pullAll`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.without, _.xor - * @example - * - * _.difference([2, 1], [2, 3]); - * // => [1] - */ - var difference = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `iteratee` which - * is invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * **Note:** Unlike `_.pullAllBy`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2] - * - * // The `_.property` iteratee shorthand. - * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var differenceBy = baseRest(function(array, values) { - var iteratee = last(values); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined$1; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `comparator` - * which is invoked to compare elements of `array` to `values`. The order and - * references of result values are determined by the first array. The comparator - * is invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.pullAllWith`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * - * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); - * // => [{ 'x': 2, 'y': 1 }] - */ - var differenceWith = baseRest(function(array, values) { - var comparator = last(values); - if (isArrayLikeObject(comparator)) { - comparator = undefined$1; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined$1, comparator) - : []; - }); - - /** - * Creates a slice of `array` with `n` elements dropped from the beginning. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.drop([1, 2, 3]); - * // => [2, 3] - * - * _.drop([1, 2, 3], 2); - * // => [3] - * - * _.drop([1, 2, 3], 5); - * // => [] - * - * _.drop([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined$1) ? 1 : toInteger(n); - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRight([1, 2, 3]); - * // => [1, 2] - * - * _.dropRight([1, 2, 3], 2); - * // => [1] - * - * _.dropRight([1, 2, 3], 5); - * // => [] - * - * _.dropRight([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined$1) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` excluding elements dropped from the end. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.dropRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney'] - * - * // The `_.matches` iteratee shorthand. - * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropRightWhile(users, ['active', false]); - * // => objects for ['barney'] - * - * // The `_.property` iteratee shorthand. - * _.dropRightWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true, true) - : []; - } - - /** - * Creates a slice of `array` excluding elements dropped from the beginning. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.dropWhile(users, function(o) { return !o.active; }); - * // => objects for ['pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.dropWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropWhile(users, ['active', false]); - * // => objects for ['pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.dropWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true) - : []; - } - - /** - * Fills elements of `array` with `value` from `start` up to, but not - * including, `end`. - * - * **Note:** This method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Array - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.fill(array, 'a'); - * console.log(array); - * // => ['a', 'a', 'a'] - * - * _.fill(Array(3), 2); - * // => [2, 2, 2] - * - * _.fill([4, 6, 8, 10], '*', 1, 3); - * // => [4, '*', '*', 10] - */ - function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index); - } - - /** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); - * // => 2 - * - * // The `_.matches` iteratee shorthand. - * _.findLastIndex(users, { 'user': 'barney', 'active': true }); - * // => 0 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastIndex(users, ['active', false]); - * // => 2 - * - * // The `_.property` iteratee shorthand. - * _.findLastIndex(users, 'active'); - * // => 0 - */ - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== undefined$1) { - index = toInteger(fromIndex); - index = fromIndex < 0 - ? nativeMax(length + index, 0) - : nativeMin(index, length - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index, true); - } - - /** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - - /** - * Recursively flattens `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2, [3, [4]], 5]]); - * // => [1, 2, 3, 4, 5] - */ - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } - - /** - * Recursively flatten `array` up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Array - * @param {Array} array The array to flatten. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * var array = [1, [2, [3, [4]], 5]]; - * - * _.flattenDepth(array, 1); - * // => [1, 2, [3, [4]], 5] - * - * _.flattenDepth(array, 2); - * // => [1, 2, 3, [4], 5] - */ - function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === undefined$1 ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - - /** - * The inverse of `_.toPairs`; this method returns an object composed - * from key-value `pairs`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} pairs The key-value pairs. - * @returns {Object} Returns the new object. - * @example - * - * _.fromPairs([['a', 1], ['b', 2]]); - * // => { 'a': 1, 'b': 2 } - */ - function fromPairs(pairs) { - var index = -1, - length = pairs == null ? 0 : pairs.length, - result = {}; - - while (++index < length) { - var pair = pairs[index]; - result[pair[0]] = pair[1]; - } - return result; - } - - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias first - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.head([1, 2, 3]); - * // => 1 - * - * _.head([]); - * // => undefined - */ - function head(array) { - return (array && array.length) ? array[0] : undefined$1; - } - - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the - * offset from the end of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // Search from the `fromIndex`. - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 - */ - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseIndexOf(array, value, index); - } - - /** - * Gets all but the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.initial([1, 2, 3]); - * // => [1, 2] - */ - function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 0, -1) : []; - } - - /** - * Creates an array of unique values that are included in all given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersection([2, 1], [2, 3]); - * // => [2] - */ - var intersection = baseRest(function(arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `iteratee` - * which is invoked for each element of each `arrays` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [2.1] - * - * // The `_.property` iteratee shorthand. - * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }] - */ - var intersectionBy = baseRest(function(arrays) { - var iteratee = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - if (iteratee === last(mapped)) { - iteratee = undefined$1; - } else { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `comparator` - * which is invoked to compare elements of `arrays`. The order and references - * of result values are determined by the first array. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.intersectionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }] - */ - var intersectionWith = baseRest(function(arrays) { - var comparator = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - comparator = typeof comparator == 'function' ? comparator : undefined$1; - if (comparator) { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, undefined$1, comparator) - : []; - }); - - /** - * Converts all elements in `array` into a string separated by `separator`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to convert. - * @param {string} [separator=','] The element separator. - * @returns {string} Returns the joined string. - * @example - * - * _.join(['a', 'b', 'c'], '~'); - * // => 'a~b~c' - */ - function join(array, separator) { - return array == null ? '' : nativeJoin.call(array, separator); - } - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined$1; - } - - /** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 1, 2], 2); - * // => 3 - * - * // Search from the `fromIndex`. - * _.lastIndexOf([1, 2, 1, 2], 2, 2); - * // => 1 - */ - function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined$1) { - index = toInteger(fromIndex); - index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return value === value - ? strictLastIndexOf(array, value, index) - : baseFindIndex(array, baseIsNaN, index, true); - } - - /** - * Gets the element at index `n` of `array`. If `n` is negative, the nth - * element from the end is returned. - * - * @static - * @memberOf _ - * @since 4.11.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=0] The index of the element to return. - * @returns {*} Returns the nth element of `array`. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * - * _.nth(array, 1); - * // => 'b' - * - * _.nth(array, -2); - * // => 'c'; - */ - function nth(array, n) { - return (array && array.length) ? baseNth(array, toInteger(n)) : undefined$1; - } - - /** - * Removes all given values from `array` using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` - * to remove elements from an array by predicate. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...*} [values] The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pull(array, 'a', 'c'); - * console.log(array); - * // => ['b', 'b'] - */ - var pull = baseRest(pullAll); - - /** - * This method is like `_.pull` except that it accepts an array of values to remove. - * - * **Note:** Unlike `_.difference`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pullAll(array, ['a', 'c']); - * console.log(array); - * // => ['b', 'b'] - */ - function pullAll(array, values) { - return (array && array.length && values && values.length) - ? basePullAll(array, values) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `iteratee` which is - * invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The iteratee is invoked with one argument: (value). - * - * **Note:** Unlike `_.differenceBy`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; - * - * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); - * console.log(array); - * // => [{ 'x': 2 }] - */ - function pullAllBy(array, values, iteratee) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, getIteratee(iteratee, 2)) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `comparator` which - * is invoked to compare elements of `array` to `values`. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.differenceWith`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; - * - * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); - * console.log(array); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] - */ - function pullAllWith(array, values, comparator) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, undefined$1, comparator) - : array; - } - - /** - * Removes elements from `array` corresponding to `indexes` and returns an - * array of removed elements. - * - * **Note:** Unlike `_.at`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...(number|number[])} [indexes] The indexes of elements to remove. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * var pulled = _.pullAt(array, [1, 3]); - * - * console.log(array); - * // => ['a', 'c'] - * - * console.log(pulled); - * // => ['b', 'd'] - */ - var pullAt = flatRest(function(array, indexes) { - var length = array == null ? 0 : array.length, - result = baseAt(array, indexes); - - basePullAt(array, arrayMap(indexes, function(index) { - return isIndex(index, length) ? +index : index; - }).sort(compareAscending)); - - return result; - }); - - /** - * Removes all elements from `array` that `predicate` returns truthy for - * and returns an array of the removed elements. The predicate is invoked - * with three arguments: (value, index, array). - * - * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` - * to pull elements from an array by value. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [1, 2, 3, 4]; - * var evens = _.remove(array, function(n) { - * return n % 2 == 0; - * }); - * - * console.log(array); - * // => [1, 3] - * - * console.log(evens); - * // => [2, 4] - */ - function remove(array, predicate) { - var result = []; - if (!(array && array.length)) { - return result; - } - var index = -1, - indexes = [], - length = array.length; - - predicate = getIteratee(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result; - } - - /** - * Reverses `array` so that the first element becomes the last, the second - * element becomes the second to last, and so on. - * - * **Note:** This method mutates `array` and is based on - * [`Array#reverse`](https://mdn.io/Array/reverse). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.reverse(array); - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This method is used instead of - * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are - * returned. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } - else { - start = start == null ? 0 : toInteger(start); - end = end === undefined$1 ? length : toInteger(end); - } - return baseSlice(array, start, end); - } - - /** - * Uses a binary search to determine the lowest index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedIndex([30, 50], 40); - * // => 1 - */ - function sortedIndex(array, value) { - return baseSortedIndex(array, value); - } - - /** - * This method is like `_.sortedIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); - * // => 0 - */ - function sortedIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); - } - - /** - * This method is like `_.indexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedIndexOf([4, 5, 5, 5, 6], 5); - * // => 1 - */ - function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value); - if (index < length && eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.sortedIndex` except that it returns the highest - * index at which `value` should be inserted into `array` in order to - * maintain its sort order. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedLastIndex([4, 5, 5, 5, 6], 5); - * // => 4 - */ - function sortedLastIndex(array, value) { - return baseSortedIndex(array, value, true); - } - - /** - * This method is like `_.sortedLastIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 1 - * - * // The `_.property` iteratee shorthand. - * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); - * // => 1 - */ - function sortedLastIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); - } - - /** - * This method is like `_.lastIndexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); - * // => 3 - */ - function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value, true) - 1; - if (eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.uniq` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniq([1, 1, 2]); - * // => [1, 2] - */ - function sortedUniq(array) { - return (array && array.length) - ? baseSortedUniq(array) - : []; - } - - /** - * This method is like `_.uniqBy` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); - * // => [1.1, 2.3] - */ - function sortedUniqBy(array, iteratee) { - return (array && array.length) - ? baseSortedUniq(array, getIteratee(iteratee, 2)) - : []; - } - - /** - * Gets all but the first element of `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.tail([1, 2, 3]); - * // => [2, 3] - */ - function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 1, length) : []; - } - - /** - * Creates a slice of `array` with `n` elements taken from the beginning. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.take([1, 2, 3]); - * // => [1] - * - * _.take([1, 2, 3], 2); - * // => [1, 2] - * - * _.take([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.take([1, 2, 3], 0); - * // => [] - */ - function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = (guard || n === undefined$1) ? 1 : toInteger(n); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements taken from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRight([1, 2, 3]); - * // => [3] - * - * _.takeRight([1, 2, 3], 2); - * // => [2, 3] - * - * _.takeRight([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.takeRight([1, 2, 3], 0); - * // => [] - */ - function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined$1) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with elements taken from the end. Elements are - * taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.takeRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeRightWhile(users, ['active', false]); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.takeRightWhile(users, 'active'); - * // => [] - */ - function takeRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), false, true) - : []; - } - - /** - * Creates a slice of `array` with elements taken from the beginning. Elements - * are taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.takeWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matches` iteratee shorthand. - * _.takeWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeWhile(users, ['active', false]); - * // => objects for ['barney', 'fred'] - * - * // The `_.property` iteratee shorthand. - * _.takeWhile(users, 'active'); - * // => [] - */ - function takeWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3)) - : []; - } - - /** - * Creates an array of unique values, in order, from all given arrays using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([2], [1, 2]); - * // => [2, 1] - */ - var union = baseRest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - - /** - * This method is like `_.union` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which uniqueness is computed. Result values are chosen from the first - * array in which the value occurs. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.unionBy([2.1], [1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - var unionBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined$1; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.union` except that it accepts `comparator` which - * is invoked to compare elements of `arrays`. Result values are chosen from - * the first array in which the value occurs. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.unionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var unionWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined$1; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined$1, comparator); - }); - - /** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each element - * is kept. The order of result values is determined by the order they occur - * in the array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - */ - function uniq(array) { - return (array && array.length) ? baseUniq(array) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `iteratee` which is - * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The order of result values is determined by the - * order they occur in the array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniqBy([2.1, 1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - function uniqBy(array, iteratee) { - return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `comparator` which - * is invoked to compare elements of `array`. The order of result values is - * determined by the order they occur in the array.The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.uniqWith(objects, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] - */ - function uniqWith(array, comparator) { - comparator = typeof comparator == 'function' ? comparator : undefined$1; - return (array && array.length) ? baseUniq(array, undefined$1, comparator) : []; - } - - /** - * This method is like `_.zip` except that it accepts an array of grouped - * elements and creates an array regrouping the elements to their pre-zip - * configuration. - * - * @static - * @memberOf _ - * @since 1.2.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - * - * _.unzip(zipped); - * // => [['a', 'b'], [1, 2], [true, false]] - */ - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter(array, function(group) { - if (isArrayLikeObject(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - return baseTimes(length, function(index) { - return arrayMap(array, baseProperty(index)); - }); - } - - /** - * This method is like `_.unzip` except that it accepts `iteratee` to specify - * how regrouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @param {Function} [iteratee=_.identity] The function to combine - * regrouped values. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip([1, 2], [10, 20], [100, 200]); - * // => [[1, 10, 100], [2, 20, 200]] - * - * _.unzipWith(zipped, _.add); - * // => [3, 30, 300] - */ - function unzipWith(array, iteratee) { - if (!(array && array.length)) { - return []; - } - var result = unzip(array); - if (iteratee == null) { - return result; - } - return arrayMap(result, function(group) { - return apply(iteratee, undefined$1, group); - }); - } - - /** - * Creates an array excluding all given values using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.pull`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.xor - * @example - * - * _.without([2, 1, 2, 3], 1, 2); - * // => [3] - */ - var without = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, values) - : []; - }); - - /** - * Creates an array of unique values that is the - * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) - * of the given arrays. The order of result values is determined by the order - * they occur in the arrays. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.without - * @example - * - * _.xor([2, 1], [2, 3]); - * // => [1, 3] - */ - var xor = baseRest(function(arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - - /** - * This method is like `_.xor` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which by which they're compared. The order of result values is determined - * by the order they occur in the arrays. The iteratee is invoked with one - * argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2, 3.4] - * - * // The `_.property` iteratee shorthand. - * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var xorBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined$1; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.xor` except that it accepts `comparator` which is - * invoked to compare elements of `arrays`. The order of result values is - * determined by the order they occur in the arrays. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.xorWith(objects, others, _.isEqual); - * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var xorWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined$1; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined$1, comparator); - }); - - /** - * Creates an array of grouped elements, the first of which contains the - * first elements of the given arrays, the second of which contains the - * second elements of the given arrays, and so on. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - */ - var zip = baseRest(unzip); - - /** - * This method is like `_.fromPairs` except that it accepts two arrays, - * one of property identifiers and one of corresponding values. - * - * @static - * @memberOf _ - * @since 0.4.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObject(['a', 'b'], [1, 2]); - * // => { 'a': 1, 'b': 2 } - */ - function zipObject(props, values) { - return baseZipObject(props || [], values || [], assignValue); - } - - /** - * This method is like `_.zipObject` except that it supports property paths. - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); - * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } - */ - function zipObjectDeep(props, values) { - return baseZipObject(props || [], values || [], baseSet); - } - - /** - * This method is like `_.zip` except that it accepts `iteratee` to specify - * how grouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @param {Function} [iteratee=_.identity] The function to combine - * grouped values. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { - * return a + b + c; - * }); - * // => [111, 222] - */ - var zipWith = baseRest(function(arrays) { - var length = arrays.length, - iteratee = length > 1 ? arrays[length - 1] : undefined$1; - - iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined$1; - return unzipWith(arrays, iteratee); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` wrapper instance that wraps `value` with explicit method - * chain sequences enabled. The result of such sequences must be unwrapped - * with `_#value`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Seq - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _ - * .chain(users) - * .sortBy('age') - * .map(function(o) { - * return o.user + ' is ' + o.age; - * }) - * .head() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } - - /** - * This method invokes `interceptor` and returns `value`. The interceptor - * is invoked with one argument; (value). The purpose of this method is to - * "tap into" a method chain sequence in order to modify intermediate results. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { - * // Mutate input array. - * array.pop(); - * }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor) { - interceptor(value); - return value; - } - - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * The purpose of this method is to "pass thru" values replacing intermediate - * results in a method chain sequence. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _(' abc ') - * .chain() - * .trim() - * .thru(function(value) { - * return [value]; - * }) - * .value(); - * // => ['abc'] - */ - function thru(value, interceptor) { - return interceptor(value); - } - - /** - * This method is the wrapper version of `_.at`. - * - * @name at - * @memberOf _ - * @since 1.0.0 - * @category Seq - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _(object).at(['a[0].b.c', 'a[1]']).value(); - * // => [3, 4] - */ - var wrapperAt = flatRest(function(paths) { - var length = paths.length, - start = length ? paths[0] : 0, - value = this.__wrapped__, - interceptor = function(object) { return baseAt(object, paths); }; - - if (length > 1 || this.__actions__.length || - !(value instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - 'func': thru, - 'args': [interceptor], - 'thisArg': undefined$1 - }); - return new LodashWrapper(value, this.__chain__).thru(function(array) { - if (length && !array.length) { - array.push(undefined$1); - } - return array; - }); - }); - - /** - * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. - * - * @name chain - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // A sequence without explicit chaining. - * _(users).head(); - * // => { 'user': 'barney', 'age': 36 } - * - * // A sequence with explicit chaining. - * _(users) - * .chain() - * .head() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } - - /** - * Executes the chain sequence and returns the wrapped result. - * - * @name commit - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2]; - * var wrapped = _(array).push(3); - * - * console.log(array); - * // => [1, 2] - * - * wrapped = wrapped.commit(); - * console.log(array); - * // => [1, 2, 3] - * - * wrapped.last(); - * // => 3 - * - * console.log(array); - * // => [1, 2, 3] - */ - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - - /** - * Gets the next value on a wrapped object following the - * [iterator protocol](https://mdn.io/iteration_protocols#iterator). - * - * @name next - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the next iterator value. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped.next(); - * // => { 'done': false, 'value': 1 } - * - * wrapped.next(); - * // => { 'done': false, 'value': 2 } - * - * wrapped.next(); - * // => { 'done': true, 'value': undefined } - */ - function wrapperNext() { - if (this.__values__ === undefined$1) { - this.__values__ = toArray(this.value()); - } - var done = this.__index__ >= this.__values__.length, - value = done ? undefined$1 : this.__values__[this.__index__++]; - - return { 'done': done, 'value': value }; - } - - /** - * Enables the wrapper to be iterable. - * - * @name Symbol.iterator - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the wrapper object. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped[Symbol.iterator]() === wrapped; - * // => true - * - * Array.from(wrapped); - * // => [1, 2] - */ - function wrapperToIterator() { - return this; - } - - /** - * Creates a clone of the chain sequence planting `value` as the wrapped value. - * - * @name plant - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @param {*} value The value to plant. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2]).map(square); - * var other = wrapped.plant([3, 4]); - * - * other.value(); - * // => [9, 16] - * - * wrapped.value(); - * // => [1, 4] - */ - function wrapperPlant(value) { - var result, - parent = this; - - while (parent instanceof baseLodash) { - var clone = wrapperClone(parent); - clone.__index__ = 0; - clone.__values__ = undefined$1; - if (result) { - previous.__wrapped__ = clone; - } else { - result = clone; - } - var previous = clone; - parent = parent.__wrapped__; - } - previous.__wrapped__ = value; - return result; - } - - /** - * This method is the wrapper version of `_.reverse`. - * - * **Note:** This method mutates the wrapped array. - * - * @name reverse - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2, 3]; - * - * _(array).reverse().value() - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - 'func': thru, - 'args': [reverse], - 'thisArg': undefined$1 - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - - /** - * Executes the chain sequence to resolve the unwrapped value. - * - * @name value - * @memberOf _ - * @since 0.1.0 - * @alias toJSON, valueOf - * @category Seq - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the number of times the key was returned by `iteratee`. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': 1, '6': 2 } - * - * // The `_.property` iteratee shorthand. - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ - var countBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - ++result[key]; - } else { - baseAssignValue(result, key, 1); - } - }); - - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false - */ - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined$1; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * **Note:** Unlike `_.remove`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.reject - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * _.filter(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.filter(users, { 'age': 36, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.filter(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.filter(users, 'active'); - * // => objects for ['barney'] - * - * // Combining several predicates using `_.overEvery` or `_.overSome`. - * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); - * // => objects for ['fred', 'barney'] - */ - function filter(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.find(users, function(o) { return o.age < 40; }); - * // => object for 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.find(users, { 'age': 1, 'active': true }); - * // => object for 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.find(users, ['active', false]); - * // => object for 'fred' - * - * // The `_.property` iteratee shorthand. - * _.find(users, 'active'); - * // => object for 'barney' - */ - var find = createFind(findIndex); - - /** - * This method is like `_.find` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=collection.length-1] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * _.findLast([1, 2, 3, 4], function(n) { - * return n % 2 == 1; - * }); - * // => 3 - */ - var findLast = createFind(findLastIndex); - - /** - * Creates a flattened array of values by running each element in `collection` - * thru `iteratee` and flattening the mapped results. The iteratee is invoked - * with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [n, n]; - * } - * - * _.flatMap([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMap(collection, iteratee) { - return baseFlatten(map(collection, iteratee), 1); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDeep([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMapDeep(collection, iteratee) { - return baseFlatten(map(collection, iteratee), INFINITY); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDepth([1, 2], duplicate, 2); - * // => [[1, 1], [2, 2]] - */ - function flatMapDepth(collection, iteratee, depth) { - depth = depth === undefined$1 ? 1 : toInteger(depth); - return baseFlatten(map(collection, iteratee), depth); - } - - /** - * Iterates over elements of `collection` and invokes `iteratee` for each element. - * The iteratee is invoked with three arguments: (value, index|key, collection). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a "length" - * property are iterated like arrays. To avoid this behavior use `_.forIn` - * or `_.forOwn` for object iteration. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias each - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEachRight - * @example - * - * _.forEach([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `1` then `2`. - * - * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forEach(collection, iteratee) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forEach` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @alias eachRight - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEach - * @example - * - * _.forEachRight([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `2` then `1`. - */ - function forEachRight(collection, iteratee) { - var func = isArray(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The order of grouped values - * is determined by the order they occur in `collection`. The corresponding - * value of each key is an array of elements responsible for generating the - * key. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': [4.2], '6': [6.1, 6.3] } - * - * // The `_.property` iteratee shorthand. - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ - var groupBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - baseAssignValue(result, key, [value]); - } - }); - - /** - * Checks if `value` is in `collection`. If `collection` is a string, it's - * checked for a substring of `value`, otherwise - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * is used for equality comparisons. If `fromIndex` is negative, it's used as - * the offset from the end of `collection`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {boolean} Returns `true` if `value` is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'a': 1, 'b': 2 }, 1); - * // => true - * - * _.includes('abcd', 'bc'); - * // => true - */ - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values(collection); - fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; - - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString(collection) - ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) - : (!!length && baseIndexOf(collection, value, fromIndex) > -1); - } - - /** - * Invokes the method at `path` of each element in `collection`, returning - * an array of the results of each invoked method. Any additional arguments - * are provided to each invoked method. If `path` is a function, it's invoked - * for, and `this` bound to, each element in `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array|Function|string} path The path of the method to invoke or - * the function invoked per iteration. - * @param {...*} [args] The arguments to invoke each method with. - * @returns {Array} Returns the array of results. - * @example - * - * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); - * // => [[1, 5, 7], [1, 2, 3]] - * - * _.invokeMap([123, 456], String.prototype.split, ''); - * // => [['1', '2', '3'], ['4', '5', '6']] - */ - var invokeMap = baseRest(function(collection, path, args) { - var index = -1, - isFunc = typeof path == 'function', - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value) { - result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); - }); - return result; - }); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the last element responsible for generating the key. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var array = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.keyBy(array, function(o) { - * return String.fromCharCode(o.code); - * }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.keyBy(array, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - */ - var keyBy = createAggregator(function(result, value, key) { - baseAssignValue(result, key, value); - }); - - /** - * Creates an array of values by running each element in `collection` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. - * - * The guarded methods are: - * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, - * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, - * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, - * `template`, `trim`, `trimEnd`, `trimStart`, and `words` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - * @example - * - * function square(n) { - * return n * n; - * } - * - * _.map([4, 8], square); - * // => [16, 64] - * - * _.map({ 'a': 4, 'b': 8 }, square); - * // => [16, 64] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // The `_.property` iteratee shorthand. - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.sortBy` except that it allows specifying the sort - * orders of the iteratees to sort by. If `orders` is unspecified, all values - * are sorted in ascending order. Otherwise, specify an order of "desc" for - * descending or "asc" for ascending sort order of corresponding values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] - * The iteratees to sort by. - * @param {string[]} [orders] The sort orders of `iteratees`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 34 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'barney', 'age': 36 } - * ]; - * - * // Sort by `user` in ascending order and by `age` in descending order. - * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] - */ - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined$1 : orders; - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - - /** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, the second of which - * contains elements `predicate` returns falsey for. The predicate is - * invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.partition(users, function(o) { return o.active; }); - * // => objects for [['fred'], ['barney', 'pebbles']] - * - * // The `_.matches` iteratee shorthand. - * _.partition(users, { 'age': 1, 'active': false }); - * // => objects for [['pebbles'], ['barney', 'fred']] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.partition(users, ['active', false]); - * // => objects for [['barney', 'pebbles'], ['fred']] - * - * // The `_.property` iteratee shorthand. - * _.partition(users, 'active'); - * // => objects for [['fred'], ['barney', 'pebbles']] - */ - var partition = createAggregator(function(result, value, key) { - result[key ? 0 : 1].push(value); - }, function() { return [[], []]; }); - - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` thru `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not given, the first element of `collection` is used as the initial - * value. The iteratee is invoked with four arguments: - * (accumulator, value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.reduce`, `_.reduceRight`, and `_.transform`. - * - * The guarded methods are: - * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, - * and `sortBy` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduceRight - * @example - * - * _.reduce([1, 2], function(sum, n) { - * return sum + n; - * }, 0); - * // => 3 - * - * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * return result; - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) - */ - function reduce(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); - } - - /** - * This method is like `_.reduce` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduce - * @example - * - * var array = [[0, 1], [2, 3], [4, 5]]; - * - * _.reduceRight(array, function(flattened, other) { - * return flattened.concat(other); - * }, []); - * // => [4, 5, 2, 3, 0, 1] - */ - function reduceRight(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduceRight : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); - } - - /** - * The opposite of `_.filter`; this method returns the elements of `collection` - * that `predicate` does **not** return truthy for. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.filter - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * _.reject(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.reject(users, { 'age': 40, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.reject(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.reject(users, 'active'); - * // => objects for ['barney'] - */ - function reject(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, negate(getIteratee(predicate, 3))); - } - - /** - * Gets a random element from `collection`. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - * @example - * - * _.sample([1, 2, 3, 4]); - * // => 2 - */ - function sample(collection) { - var func = isArray(collection) ? arraySample : baseSample; - return func(collection); - } - - /** - * Gets `n` random elements at unique keys from `collection` up to the - * size of `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @param {number} [n=1] The number of elements to sample. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the random elements. - * @example - * - * _.sampleSize([1, 2, 3], 2); - * // => [3, 1] - * - * _.sampleSize([1, 2, 3], 4); - * // => [2, 3, 1] - */ - function sampleSize(collection, n, guard) { - if ((guard ? isIterateeCall(collection, n, guard) : n === undefined$1)) { - n = 1; - } else { - n = toInteger(n); - } - var func = isArray(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n); - } - - /** - * Creates an array of shuffled values, using a version of the - * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - * @example - * - * _.shuffle([1, 2, 3, 4]); - * // => [4, 1, 3, 2] - */ - function shuffle(collection) { - var func = isArray(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - - /** - * Gets the size of `collection` by returning its length for array-like - * values or the number of own enumerable string keyed properties for objects. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the collection size. - * @example - * - * _.size([1, 2, 3]); - * // => 3 - * - * _.size({ 'a': 1, 'b': 2 }); - * // => 2 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike(collection)) { - return isString(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag || tag == setTag) { - return collection.size; - } - return baseKeys(collection).length; - } - - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * Iteration is stopped once `predicate` returns truthy. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.some(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.some(users, 'active'); - * // => true - */ - function some(collection, predicate, guard) { - var func = isArray(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined$1; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection thru each iteratee. This method - * performs a stable sort, that is, it preserves the original sort order of - * equal elements. The iteratees are invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {...(Function|Function[])} [iteratees=[_.identity]] - * The iteratees to sort by. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 30 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] - * - * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] - */ - var sortBy = baseRest(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ - var now = ctxNow || function() { - return root.Date.now(); - }; - - /*------------------------------------------------------------------------*/ - - /** - * The opposite of `_.before`; this method creates a function that invokes - * `func` once it's called `n` or more times. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {number} n The number of calls before `func` is invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var saves = ['profile', 'settings']; - * - * var done = _.after(saves.length, function() { - * console.log('done saving!'); - * }); - * - * _.forEach(saves, function(type) { - * asyncSave({ 'type': type, 'complete': done }); - * }); - * // => Logs 'done saving!' after the two async saves have completed. - */ - function after(n, func) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - - /** - * Creates a function that invokes `func`, with up to `n` arguments, - * ignoring any additional arguments. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @param {number} [n=func.length] The arity cap. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.ary(parseInt, 1)); - * // => [6, 8, 10] - */ - function ary(func, n, guard) { - n = guard ? undefined$1 : n; - n = (func && n == null) ? func.length : n; - return createWrap(func, WRAP_ARY_FLAG, undefined$1, undefined$1, undefined$1, undefined$1, n); - } - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery(element).on('click', _.before(5, addContactToList)); - * // => Allows adding up to 4 contacts to the list. - */ - function before(n, func) { - var result; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined$1; - } - return result; - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and `partials` prepended to the arguments it receives. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" - * property of bound functions. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * function greet(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // Bound with placeholders. - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' - */ - var bind = baseRest(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - - /** - * Creates a function that invokes the method at `object[key]` with `partials` - * prepended to the arguments it receives. - * - * This method differs from `_.bind` by allowing bound functions to reference - * methods that may be redefined or don't yet exist. See - * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) - * for more details. - * - * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Function - * @param {Object} object The object to invoke the method on. - * @param {string} key The key of the method. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var object = { - * 'user': 'fred', - * 'greet': function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * }; - * - * var bound = _.bindKey(object, 'greet', 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * object.greet = function(greeting, punctuation) { - * return greeting + 'ya ' + this.user + punctuation; - * }; - * - * bound('!'); - * // => 'hiya fred!' - * - * // Bound with placeholders. - * var bound = _.bindKey(object, 'greet', _, '!'); - * bound('hi'); - * // => 'hiya fred!' - */ - var bindKey = baseRest(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - - /** - * Creates a function that accepts arguments of `func` and either invokes - * `func` returning its result, if at least `arity` number of arguments have - * been provided, or returns a function that accepts the remaining `func` - * arguments, and so on. The arity of `func` may be specified if `func.length` - * is not sufficient. - * - * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curry(abc); - * - * curried(1)(2)(3); - * // => [1, 2, 3] - * - * curried(1, 2)(3); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(1)(_, 3)(2); - * // => [1, 2, 3] - */ - function curry(func, arity, guard) { - arity = guard ? undefined$1 : arity; - var result = createWrap(func, WRAP_CURRY_FLAG, undefined$1, undefined$1, undefined$1, undefined$1, undefined$1, arity); - result.placeholder = curry.placeholder; - return result; - } - - /** - * This method is like `_.curry` except that arguments are applied to `func` - * in the manner of `_.partialRight` instead of `_.partial`. - * - * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curryRight(abc); - * - * curried(3)(2)(1); - * // => [1, 2, 3] - * - * curried(2, 3)(1); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(3)(1, _)(2); - * // => [1, 2, 3] - */ - function curryRight(func, arity, guard) { - arity = guard ? undefined$1 : arity; - var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined$1, undefined$1, undefined$1, undefined$1, undefined$1, arity); - result.placeholder = curryRight.placeholder; - return result; - } - - /** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ - function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined$1; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - timeWaiting = wait - timeSinceLastCall; - - return maxing - ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) - : timeWaiting; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return (lastCallTime === undefined$1 || (timeSinceLastCall >= wait) || - (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - - function trailingEdge(time) { - timerId = undefined$1; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined$1; - return result; - } - - function cancel() { - if (timerId !== undefined$1) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined$1; - } - - function flush() { - return timerId === undefined$1 ? result : trailingEdge(now()); - } - - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined$1) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined$1) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - - /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.defer(function(text) { - * console.log(text); - * }, 'deferred'); - * // => Logs 'deferred' after one millisecond. - */ - var defer = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); - - /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.delay(function(text) { - * console.log(text); - * }, 1000, 'later'); - * // => Logs 'later' after one second. - */ - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - - /** - * Creates a function that invokes `func` with arguments reversed. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to flip arguments for. - * @returns {Function} Returns the new flipped function. - * @example - * - * var flipped = _.flip(function() { - * return _.toArray(arguments); - * }); - * - * flipped('a', 'b', 'c', 'd'); - * // => ['d', 'c', 'b', 'a'] - */ - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache); - return memoized; - } - - // Expose `MapCache`. - memoize.Cache = MapCache; - - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new negated function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (typeof predicate != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - var args = arguments; - switch (args.length) { - case 0: return !predicate.call(this); - case 1: return !predicate.call(this, args[0]); - case 2: return !predicate.call(this, args[0], args[1]); - case 3: return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first invocation. The `func` is - * invoked with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // => `createApplication` is invoked once - */ - function once(func) { - return before(2, func); - } - - /** - * Creates a function that invokes `func` with its arguments transformed. - * - * @static - * @since 4.0.0 - * @memberOf _ - * @category Function - * @param {Function} func The function to wrap. - * @param {...(Function|Function[])} [transforms=[_.identity]] - * The argument transforms. - * @returns {Function} Returns the new function. - * @example - * - * function doubled(n) { - * return n * 2; - * } - * - * function square(n) { - * return n * n; - * } - * - * var func = _.overArgs(function(x, y) { - * return [x, y]; - * }, [square, doubled]); - * - * func(9, 3); - * // => [81, 6] - * - * func(10, 5); - * // => [100, 10] - */ - var overArgs = castRest(function(func, transforms) { - transforms = (transforms.length == 1 && isArray(transforms[0])) - ? arrayMap(transforms[0], baseUnary(getIteratee())) - : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - - var funcsLength = transforms.length; - return baseRest(function(args) { - var index = -1, - length = nativeMin(args.length, funcsLength); - - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply(func, this, args); - }); - }); - - /** - * Creates a function that invokes `func` with `partials` prepended to the - * arguments it receives. This method is like `_.bind` except it does **not** - * alter the `this` binding. - * - * The `_.partial.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 0.2.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var sayHelloTo = _.partial(greet, 'hello'); - * sayHelloTo('fred'); - * // => 'hello fred' - * - * // Partially applied with placeholders. - * var greetFred = _.partial(greet, _, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - */ - var partial = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined$1, partials, holders); - }); - - /** - * This method is like `_.partial` except that partially applied arguments - * are appended to the arguments it receives. - * - * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var greetFred = _.partialRight(greet, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - * - * // Partially applied with placeholders. - * var sayHelloTo = _.partialRight(greet, 'hello', _); - * sayHelloTo('fred'); - * // => 'hello fred' - */ - var partialRight = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined$1, partials, holders); - }); - - /** - * Creates a function that invokes `func` with arguments arranged according - * to the specified `indexes` where the argument value at the first index is - * provided as the first argument, the argument value at the second index is - * provided as the second argument, and so on. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to rearrange arguments for. - * @param {...(number|number[])} indexes The arranged argument indexes. - * @returns {Function} Returns the new function. - * @example - * - * var rearged = _.rearg(function(a, b, c) { - * return [a, b, c]; - * }, [2, 0, 1]); - * - * rearged('b', 'c', 'a') - * // => ['a', 'b', 'c'] - */ - var rearg = flatRest(function(func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined$1, undefined$1, undefined$1, indexes); - }); - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start === undefined$1 ? start : toInteger(start); - return baseRest(func, start); - } - - /** - * Creates a function that invokes `func` with the `this` binding of the - * create function and an array of arguments much like - * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). - * - * **Note:** This method is based on the - * [spread operator](https://mdn.io/spread_operator). - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Function - * @param {Function} func The function to spread arguments over. - * @param {number} [start=0] The start position of the spread. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.spread(function(who, what) { - * return who + ' says ' + what; - * }); - * - * say(['fred', 'hello']); - * // => 'fred says hello' - * - * var numbers = Promise.all([ - * Promise.resolve(40), - * Promise.resolve(36) - * ]); - * - * numbers.then(_.spread(function(x, y) { - * return x + y; - * })); - * // => a Promise of 76 - */ - function spread(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function(args) { - var array = args[start], - otherArgs = castSlice(args, 0, start); - - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - - /** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed `func` invocations and a `flush` method to - * immediately invoke them. Provide `options` to indicate whether `func` - * should be invoked on the leading and/or trailing edge of the `wait` - * timeout. The `func` is invoked with the last arguments provided to the - * throttled function. Subsequent calls to the throttled function return the - * result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the throttled function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // Avoid excessively updating the position while scrolling. - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); - * jQuery(element).on('click', throttled); - * - * // Cancel the trailing throttled invocation. - * jQuery(window).on('popstate', throttled.cancel); - */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - 'leading': leading, - 'maxWait': wait, - 'trailing': trailing - }); - } - - /** - * Creates a function that accepts up to one argument, ignoring any - * additional arguments. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.unary(parseInt)); - * // => [6, 8, 10] - */ - function unary(func) { - return ary(func, 1); - } - - /** - * Creates a function that provides `value` to `wrapper` as its first - * argument. Any additional arguments provided to the function are appended - * to those provided to the `wrapper`. The wrapper is invoked with the `this` - * binding of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {*} value The value to wrap. - * @param {Function} [wrapper=identity] The wrapper function. - * @returns {Function} Returns the new function. - * @example - * - * var p = _.wrap(_.escape, function(func, text) { - * return '

' + func(text) + '

'; - * }); - * - * p('fred, barney, & pebbles'); - * // => '

fred, barney, & pebbles

' - */ - function wrap(value, wrapper) { - return partial(castFunction(wrapper), value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Casts `value` as an array if it's not one. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Lang - * @param {*} value The value to inspect. - * @returns {Array} Returns the cast array. - * @example - * - * _.castArray(1); - * // => [1] - * - * _.castArray({ 'a': 1 }); - * // => [{ 'a': 1 }] - * - * _.castArray('abc'); - * // => ['abc'] - * - * _.castArray(null); - * // => [null] - * - * _.castArray(undefined); - * // => [undefined] - * - * _.castArray(); - * // => [] - * - * var array = [1, 2, 3]; - * console.log(_.castArray(array) === array); - * // => true - */ - function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray(value) ? value : [value]; - } - - /** - * Creates a shallow clone of `value`. - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) - * and supports cloning arrays, array buffers, booleans, date objects, maps, - * numbers, `Object` objects, regexes, sets, strings, symbols, and typed - * arrays. The own enumerable properties of `arguments` objects are cloned - * as plain objects. An empty object is returned for uncloneable values such - * as error objects, functions, DOM nodes, and WeakMaps. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to clone. - * @returns {*} Returns the cloned value. - * @see _.cloneDeep - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var shallow = _.clone(objects); - * console.log(shallow[0] === objects[0]); - * // => true - */ - function clone(value) { - return baseClone(value, CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.clone` except that it accepts `customizer` which - * is invoked to produce the cloned value. If `customizer` returns `undefined`, - * cloning is handled by the method instead. The `customizer` is invoked with - * up to four arguments; (value [, index|key, object, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the cloned value. - * @see _.cloneDeepWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(false); - * } - * } - * - * var el = _.cloneWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 0 - */ - function cloneWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined$1; - return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @see _.clone - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ - function cloneDeep(value) { - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.cloneWith` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the deep cloned value. - * @see _.cloneWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(true); - * } - * } - * - * var el = _.cloneDeepWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 20 - */ - function cloneDeepWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined$1; - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * Checks if `object` conforms to `source` by invoking the predicate - * properties of `source` with the corresponding property values of `object`. - * - * **Note:** This method is equivalent to `_.conforms` when `source` is - * partially applied. - * - * @static - * @memberOf _ - * @since 4.14.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); - * // => true - * - * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); - * // => false - */ - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys(source)); - } - - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || (value !== value && other !== other); - } - - /** - * Checks if `value` is greater than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - * @see _.lt - * @example - * - * _.gt(3, 1); - * // => true - * - * _.gt(3, 3); - * // => false - * - * _.gt(1, 3); - * // => false - */ - var gt = createRelationalOperation(baseGt); - - /** - * Checks if `value` is greater than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than or equal to - * `other`, else `false`. - * @see _.lte - * @example - * - * _.gte(3, 1); - * // => true - * - * _.gte(3, 3); - * // => true - * - * _.gte(1, 3); - * // => false - */ - var gte = createRelationalOperation(function(value, other) { - return value >= other; - }); - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** - * Checks if `value` is classified as an `ArrayBuffer` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - * @example - * - * _.isArrayBuffer(new ArrayBuffer(2)); - * // => true - * - * _.isArrayBuffer(new Array(2)); - * // => false - */ - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - /** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return value === true || value === false || - (isObjectLike(value) && baseGetTag(value) == boolTag); - } - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - - /** - * Checks if `value` is likely a DOM element. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false - */ - function isElement(value) { - return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); - } - - /** - * Checks if `value` is an empty object, collection, map, or set. - * - * Objects are considered empty if they have no own enumerable string keyed - * properties. - * - * Array-like values such as `arguments` objects, arrays, buffers, strings, or - * jQuery-like collections are considered empty if they have a `length` of `0`. - * Similarly, maps and sets are considered empty if they have a `size` of `0`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && - (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || - isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; - } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { - return false; - } - } - return true; - } - - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. - * - * **Note:** This method supports comparing arrays, array buffers, booleans, - * date objects, error objects, maps, numbers, `Object` objects, regexes, - * sets, strings, symbols, and typed arrays. `Object` objects are compared - * by their own, not inherited, enumerable properties. Functions and DOM - * nodes are compared by strict equality, i.e. `===`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.isEqual(object, other); - * // => true - * - * object === other; - * // => false - */ - function isEqual(value, other) { - return baseIsEqual(value, other); - } - - /** - * This method is like `_.isEqual` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with up to - * six arguments: (objValue, othValue [, index|key, object, other, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, othValue) { - * if (isGreeting(objValue) && isGreeting(othValue)) { - * return true; - * } - * } - * - * var array = ['hello', 'goodbye']; - * var other = ['hi', 'goodbye']; - * - * _.isEqualWith(array, other, customizer); - * // => true - */ - function isEqualWith(value, other, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined$1; - var result = customizer ? customizer(value, other) : undefined$1; - return result === undefined$1 ? baseIsEqual(value, other, undefined$1, customizer) : !!result; - } - - /** - * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, - * `SyntaxError`, `TypeError`, or `URIError` object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an error object, else `false`. - * @example - * - * _.isError(new Error); - * // => true - * - * _.isError(Error); - * // => false - */ - function isError(value) { - if (!isObjectLike(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == errorTag || tag == domExcTag || - (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); - } - - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on - * [`Number.isFinite`](https://mdn.io/Number/isFinite). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(3); - * // => true - * - * _.isFinite(Number.MIN_VALUE); - * // => true - * - * _.isFinite(Infinity); - * // => false - * - * _.isFinite('3'); - * // => false - */ - function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); - } - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - /** - * Checks if `value` is an integer. - * - * **Note:** This method is based on - * [`Number.isInteger`](https://mdn.io/Number/isInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an integer, else `false`. - * @example - * - * _.isInteger(3); - * // => true - * - * _.isInteger(Number.MIN_VALUE); - * // => false - * - * _.isInteger(Infinity); - * // => false - * - * _.isInteger('3'); - * // => false - */ - function isInteger(value) { - return typeof value == 'number' && value == toInteger(value); - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } - - /** - * Checks if `value` is classified as a `Map` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - * @example - * - * _.isMap(new Map); - * // => true - * - * _.isMap(new WeakMap); - * // => false - */ - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - - /** - * Performs a partial deep comparison between `object` and `source` to - * determine if `object` contains equivalent property values. - * - * **Note:** This method is equivalent to `_.matches` when `source` is - * partially applied. - * - * Partial comparisons will match empty array and empty object `source` - * values against any array or object value, respectively. See `_.isEqual` - * for a list of supported value comparisons. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.isMatch(object, { 'b': 2 }); - * // => true - * - * _.isMatch(object, { 'b': 1 }); - * // => false - */ - function isMatch(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - - /** - * This method is like `_.isMatch` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with five - * arguments: (objValue, srcValue, index|key, object, source). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, srcValue) { - * if (isGreeting(objValue) && isGreeting(srcValue)) { - * return true; - * } - * } - * - * var object = { 'greeting': 'hello' }; - * var source = { 'greeting': 'hi' }; - * - * _.isMatchWith(object, source, customizer); - * // => true - */ - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined$1; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is based on - * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as - * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for - * `undefined` and other non-number values. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some - // ActiveX objects in IE. - return isNumber(value) && value != +value; - } - - /** - * Checks if `value` is a pristine native function. - * - * **Note:** This method can't reliably detect native functions in the presence - * of the core-js package because core-js circumvents this kind of detection. - * Despite multiple requests, the core-js maintainer has made it clear: any - * attempt to fix the detection will be obstructed. As a result, we're left - * with little choice but to throw an error. Unfortunately, this also affects - * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), - * which rely on core-js. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (isMaskable(value)) { - throw new Error(CORE_ERROR_TEXT); - } - return baseIsNative(value); - } - - /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true - * - * _.isNull(void 0); - * // => false - */ - function isNull(value) { - return value === null; - } - - /** - * Checks if `value` is `null` or `undefined`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is nullish, else `false`. - * @example - * - * _.isNil(null); - * // => true - * - * _.isNil(void 0); - * // => true - * - * _.isNil(NaN); - * // => false - */ - function isNil(value) { - return value == null; - } - - /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are - * classified as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a number, else `false`. - * @example - * - * _.isNumber(3); - * // => true - * - * _.isNumber(Number.MIN_VALUE); - * // => true - * - * _.isNumber(Infinity); - * // => true - * - * _.isNumber('3'); - * // => false - */ - function isNumber(value) { - return typeof value == 'number' || - (isObjectLike(value) && baseGetTag(value) == numberTag); - } - - /** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * @static - * @memberOf _ - * @since 0.8.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ - function isPlainObject(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; - return typeof Ctor == 'function' && Ctor instanceof Ctor && - funcToString.call(Ctor) == objectCtorString; - } - - /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false - */ - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - - /** - * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 - * double precision number which isn't the result of a rounded unsafe integer. - * - * **Note:** This method is based on - * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. - * @example - * - * _.isSafeInteger(3); - * // => true - * - * _.isSafeInteger(Number.MIN_VALUE); - * // => false - * - * _.isSafeInteger(Infinity); - * // => false - * - * _.isSafeInteger('3'); - * // => false - */ - function isSafeInteger(value) { - return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is classified as a `Set` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - * @example - * - * _.isSet(new Set); - * // => true - * - * _.isSet(new WeakSet); - * // => false - */ - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); - } - - /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ - function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); - } - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - /** - * Checks if `value` is `undefined`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false - */ - function isUndefined(value) { - return value === undefined$1; - } - - /** - * Checks if `value` is classified as a `WeakMap` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. - * @example - * - * _.isWeakMap(new WeakMap); - * // => true - * - * _.isWeakMap(new Map); - * // => false - */ - function isWeakMap(value) { - return isObjectLike(value) && getTag(value) == weakMapTag; - } - - /** - * Checks if `value` is classified as a `WeakSet` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. - * @example - * - * _.isWeakSet(new WeakSet); - * // => true - * - * _.isWeakSet(new Set); - * // => false - */ - function isWeakSet(value) { - return isObjectLike(value) && baseGetTag(value) == weakSetTag; - } - - /** - * Checks if `value` is less than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - * @see _.gt - * @example - * - * _.lt(1, 3); - * // => true - * - * _.lt(3, 3); - * // => false - * - * _.lt(3, 1); - * // => false - */ - var lt = createRelationalOperation(baseLt); - - /** - * Checks if `value` is less than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than or equal to - * `other`, else `false`. - * @see _.gte - * @example - * - * _.lte(1, 3); - * // => true - * - * _.lte(3, 3); - * // => true - * - * _.lte(3, 1); - * // => false - */ - var lte = createRelationalOperation(function(value, other) { - return value <= other; - }); - - /** - * Converts `value` to an array. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * _.toArray({ 'a': 1, 'b': 2 }); - * // => [1, 2] - * - * _.toArray('abc'); - * // => ['a', 'b', 'c'] - * - * _.toArray(1); - * // => [] - * - * _.toArray(null); - * // => [] - */ - function toArray(value) { - if (!value) { - return []; - } - if (isArrayLike(value)) { - return isString(value) ? stringToArray(value) : copyArray(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray(value[symIterator]()); - } - var tag = getTag(value), - func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); - - return func(value); - } - - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; - } - - /** - * Converts `value` to an integer suitable for use as the length of an - * array-like object. - * - * **Note:** This method is based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toLength(3.2); - * // => 3 - * - * _.toLength(Number.MIN_VALUE); - * // => 0 - * - * _.toLength(Infinity); - * // => 4294967295 - * - * _.toLength('3.2'); - * // => 3 - */ - function toLength(value) { - return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; - } - - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = baseTrim(value); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); - } - - /** - * Converts `value` to a plain object flattening inherited enumerable string - * keyed properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ - function toPlainObject(value) { - return copyObject(value, keysIn(value)); - } - - /** - * Converts `value` to a safe integer. A safe integer can be compared and - * represented correctly. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toSafeInteger(3.2); - * // => 3 - * - * _.toSafeInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toSafeInteger(Infinity); - * // => 9007199254740991 - * - * _.toSafeInteger('3.2'); - * // => 3 - */ - function toSafeInteger(value) { - return value - ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) - : (value === 0 ? value : 0); - } - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Assigns own enumerable string keyed properties of source objects to the - * destination object. Source objects are applied from left to right. - * Subsequent sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object` and is loosely based on - * [`Object.assign`](https://mdn.io/Object/assign). - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assignIn - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assign({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'c': 3 } - */ - var assign = createAssigner(function(object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - - /** - * This method is like `_.assign` except that it iterates over own and - * inherited source properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assign - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assignIn({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } - */ - var assignIn = createAssigner(function(object, source) { - copyObject(source, keysIn(source), object); - }); - - /** - * This method is like `_.assignIn` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extendWith - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignInWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - - /** - * This method is like `_.assign` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignInWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keys(source), object, customizer); - }); - - /** - * Creates an array of values corresponding to `paths` of `object`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Array} Returns the picked values. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _.at(object, ['a[0].b.c', 'a[1]']); - * // => [3, 4] - */ - var at = flatRest(baseAt); - - /** - * Creates an object that inherits from the `prototype` object. If a - * `properties` object is given, its own enumerable string keyed properties - * are assigned to the created object. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ - function create(prototype, properties) { - var result = baseCreate(prototype); - return properties == null ? result : baseAssign(result, properties); - } - - /** - * Assigns own and inherited enumerable string keyed properties of source - * objects to the destination object for all destination properties that - * resolve to `undefined`. Source objects are applied from left to right. - * Once a property is set, additional values of the same property are ignored. - * - * **Note:** This method mutates `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaultsDeep - * @example - * - * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var defaults = baseRest(function(object, sources) { - object = Object(object); - - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : undefined$1; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length = 1; - } - - while (++index < length) { - var source = sources[index]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; - - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; - - if (value === undefined$1 || - (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { - object[key] = source[key]; - } - } - } - - return object; - }); - - /** - * This method is like `_.defaults` except that it recursively assigns - * default properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaults - * @example - * - * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); - * // => { 'a': { 'b': 2, 'c': 3 } } - */ - var defaultsDeep = baseRest(function(args) { - args.push(undefined$1, customDefaultsMerge); - return apply(mergeWith, undefined$1, args); - }); - - /** - * This method is like `_.find` except that it returns the key of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findKey(users, function(o) { return o.age < 40; }); - * // => 'barney' (iteration order is not guaranteed) - * - * // The `_.matches` iteratee shorthand. - * _.findKey(users, { 'age': 1, 'active': true }); - * // => 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findKey(users, 'active'); - * // => 'barney' - */ - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - - /** - * This method is like `_.findKey` except that it iterates over elements of - * a collection in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findLastKey(users, function(o) { return o.age < 40; }); - * // => returns 'pebbles' assuming `_.findKey` returns 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.findLastKey(users, { 'age': 36, 'active': true }); - * // => 'barney' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findLastKey(users, 'active'); - * // => 'pebbles' - */ - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - - /** - * Iterates over own and inherited enumerable string keyed properties of an - * object and invokes `iteratee` for each property. The iteratee is invoked - * with three arguments: (value, key, object). Iteratee functions may exit - * iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forInRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forIn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). - */ - function forIn(object, iteratee) { - return object == null - ? object - : baseFor(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * This method is like `_.forIn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forIn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forInRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. - */ - function forInRight(object, iteratee) { - return object == null - ? object - : baseForRight(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * Iterates over own enumerable string keyed properties of an object and - * invokes `iteratee` for each property. The iteratee is invoked with three - * arguments: (value, key, object). Iteratee functions may exit iteration - * early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwnRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forOwn(object, iteratee) { - return object && baseForOwn(object, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forOwn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwnRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. - */ - function forOwnRight(object, iteratee) { - return object && baseForOwnRight(object, getIteratee(iteratee, 3)); - } - - /** - * Creates an array of function property names from own enumerable properties - * of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functionsIn - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functions(new Foo); - * // => ['a', 'b'] - */ - function functions(object) { - return object == null ? [] : baseFunctions(object, keys(object)); - } - - /** - * Creates an array of function property names from own and inherited - * enumerable properties of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functions - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functionsIn(new Foo); - * // => ['a', 'b', 'c'] - */ - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - - /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 - * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' - */ - function get(object, path, defaultValue) { - var result = object == null ? undefined$1 : baseGet(object, path); - return result === undefined$1 ? defaultValue : result; - } - - /** - * Checks if `path` is a direct property of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = { 'a': { 'b': 2 } }; - * var other = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.has(object, 'a'); - * // => true - * - * _.has(object, 'a.b'); - * // => true - * - * _.has(object, ['a', 'b']); - * // => true - * - * _.has(other, 'a'); - * // => false - */ - function has(object, path) { - return object != null && hasPath(object, path, baseHas); - } - - /** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } - - /** - * Creates an object composed of the inverted keys and values of `object`. - * If `object` contains duplicate values, subsequent values overwrite - * property assignments of previous values. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Object - * @param {Object} object The object to invert. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invert(object); - * // => { '1': 'c', '2': 'b' } - */ - var invert = createInverter(function(result, value, key) { - if (value != null && - typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - - result[value] = key; - }, constant(identity)); - - /** - * This method is like `_.invert` except that the inverted object is generated - * from the results of running each element of `object` thru `iteratee`. The - * corresponding inverted value of each inverted key is an array of keys - * responsible for generating the inverted value. The iteratee is invoked - * with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Object - * @param {Object} object The object to invert. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invertBy(object); - * // => { '1': ['a', 'c'], '2': ['b'] } - * - * _.invertBy(object, function(value) { - * return 'group' + value; - * }); - * // => { 'group1': ['a', 'c'], 'group2': ['b'] } - */ - var invertBy = createInverter(function(result, value, key) { - if (value != null && - typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - }, getIteratee); - - /** - * Invokes the method at `path` of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {...*} [args] The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - * @example - * - * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; - * - * _.invoke(object, 'a[0].b.c.slice', 1, 3); - * // => [2, 3] - */ - var invoke = baseRest(baseInvoke); - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - - /** - * The opposite of `_.mapValues`; this method creates an object with the - * same values as `object` and keys generated by running each own enumerable - * string keyed property of `object` thru `iteratee`. The iteratee is invoked - * with three arguments: (value, key, object). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapValues - * @example - * - * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { - * return key + value; - * }); - * // => { 'a1': 1, 'b2': 2 } - */ - function mapKeys(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, iteratee(value, key, object), value); - }); - return result; - } - - /** - * Creates an object with the same keys as `object` and values generated - * by running each own enumerable string keyed property of `object` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, key, object). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapKeys - * @example - * - * var users = { - * 'fred': { 'user': 'fred', 'age': 40 }, - * 'pebbles': { 'user': 'pebbles', 'age': 1 } - * }; - * - * _.mapValues(users, function(o) { return o.age; }); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - * - * // The `_.property` iteratee shorthand. - * _.mapValues(users, 'age'); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - */ - function mapValues(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, key, iteratee(value, key, object)); - }); - return result; - } - - /** - * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable string keyed properties of source objects into the - * destination object. Source properties that resolve to `undefined` are - * skipped if a destination value exists. Array and plain object properties - * are merged recursively. Other objects and value types are overridden by - * assignment. Source objects are applied from left to right. Subsequent - * sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * var object = { - * 'a': [{ 'b': 2 }, { 'd': 4 }] - * }; - * - * var other = { - * 'a': [{ 'c': 3 }, { 'e': 5 }] - * }; - * - * _.merge(object, other); - * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } - */ - var merge = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - - /** - * This method is like `_.merge` except that it accepts `customizer` which - * is invoked to produce the merged values of the destination and source - * properties. If `customizer` returns `undefined`, merging is handled by the - * method instead. The `customizer` is invoked with six arguments: - * (objValue, srcValue, key, object, source, stack). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} customizer The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * function customizer(objValue, srcValue) { - * if (_.isArray(objValue)) { - * return objValue.concat(srcValue); - * } - * } - * - * var object = { 'a': [1], 'b': [2] }; - * var other = { 'a': [3], 'b': [4] }; - * - * _.mergeWith(object, other, customizer); - * // => { 'a': [1, 3], 'b': [2, 4] } - */ - var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable property paths of `object` that are not omitted. - * - * **Note:** This method is considerably slower than `_.pick`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to omit. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omit(object, ['a', 'c']); - * // => { 'b': '2' } - */ - var omit = flatRest(function(object, paths) { - var result = {}; - if (object == null) { - return result; - } - var isDeep = false; - paths = arrayMap(paths, function(path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result); - if (isDeep) { - result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length = paths.length; - while (length--) { - baseUnset(result, paths[length]); - } - return result; - }); - - /** - * The opposite of `_.pickBy`; this method creates an object composed of - * the own and inherited enumerable string keyed properties of `object` that - * `predicate` doesn't return truthy for. The predicate is invoked with two - * arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omitBy(object, _.isNumber); - * // => { 'b': '2' } - */ - function omitBy(object, predicate) { - return pickBy(object, negate(getIteratee(predicate))); - } - - /** - * Creates an object composed of the picked `object` properties. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } - */ - var pick = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); - - /** - * Creates an object composed of the `object` properties `predicate` returns - * truthy for. The predicate is invoked with two arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pickBy(object, _.isNumber); - * // => { 'a': 1, 'c': 3 } - */ - function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function(prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function(value, path) { - return predicate(value, path[0]); - }); - } - - /** - * This method is like `_.get` except that if the resolved value is a - * function it's invoked with the `this` binding of its parent object and - * its result is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to resolve. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - * - * _.result(object, 'a[0].b.c1'); - * // => 3 - * - * _.result(object, 'a[0].b.c2'); - * // => 4 - * - * _.result(object, 'a[0].b.c3', 'default'); - * // => 'default' - * - * _.result(object, 'a[0].b.c3', _.constant('default')); - * // => 'default' - */ - function result(object, path, defaultValue) { - path = castPath(path, object); - - var index = -1, - length = path.length; - - // Ensure the loop is entered when path is empty. - if (!length) { - length = 1; - object = undefined$1; - } - while (++index < length) { - var value = object == null ? undefined$1 : object[toKey(path[index])]; - if (value === undefined$1) { - index = length; - value = defaultValue; - } - object = isFunction(value) ? value.call(object) : value; - } - return object; - } - - /** - * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, - * it's created. Arrays are created for missing index properties while objects - * are created for all other missing properties. Use `_.setWith` to customize - * `path` creation. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.set(object, 'a[0].b.c', 4); - * console.log(object.a[0].b.c); - * // => 4 - * - * _.set(object, ['x', '0', 'y', 'z'], 5); - * console.log(object.x[0].y.z); - * // => 5 - */ - function set(object, path, value) { - return object == null ? object : baseSet(object, path, value); - } - - /** - * This method is like `_.set` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.setWith(object, '[0][1]', 'a', Object); - * // => { '0': { '1': 'a' } } - */ - function setWith(object, path, value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined$1; - return object == null ? object : baseSet(object, path, value, customizer); - } - - /** - * Creates an array of own enumerable string keyed-value pairs for `object` - * which can be consumed by `_.fromPairs`. If `object` is a map or set, its - * entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entries - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairs(new Foo); - * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) - */ - var toPairs = createToPairs(keys); - - /** - * Creates an array of own and inherited enumerable string keyed-value pairs - * for `object` which can be consumed by `_.fromPairs`. If `object` is a map - * or set, its entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entriesIn - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairsIn(new Foo); - * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) - */ - var toPairsIn = createToPairs(keysIn); - - /** - * An alternative to `_.reduce`; this method transforms `object` to a new - * `accumulator` object which is the result of running each of its own - * enumerable string keyed properties thru `iteratee`, with each invocation - * potentially mutating the `accumulator` object. If `accumulator` is not - * provided, a new object with the same `[[Prototype]]` will be used. The - * iteratee is invoked with four arguments: (accumulator, value, key, object). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The custom accumulator value. - * @returns {*} Returns the accumulated value. - * @example - * - * _.transform([2, 3, 4], function(result, n) { - * result.push(n *= n); - * return n % 2 == 0; - * }, []); - * // => [4, 9] - * - * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } - */ - function transform(object, iteratee, accumulator) { - var isArr = isArray(object), - isArrLike = isArr || isBuffer(object) || isTypedArray(object); - - iteratee = getIteratee(iteratee, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor : []; - } - else if (isObject(object)) { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } - else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { - return iteratee(accumulator, value, index, object); - }); - return accumulator; - } - - /** - * Removes the property at `path` of `object`. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 7 } }] }; - * _.unset(object, 'a[0].b.c'); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - * - * _.unset(object, ['a', '0', 'b', 'c']); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - */ - function unset(object, path) { - return object == null ? true : baseUnset(object, path); - } - - /** - * This method is like `_.set` except that accepts `updater` to produce the - * value to set. Use `_.updateWith` to customize `path` creation. The `updater` - * is invoked with one argument: (value). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.update(object, 'a[0].b.c', function(n) { return n * n; }); - * console.log(object.a[0].b.c); - * // => 9 - * - * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); - * console.log(object.x[0].y.z); - * // => 0 - */ - function update(object, path, updater) { - return object == null ? object : baseUpdate(object, path, castFunction(updater)); - } - - /** - * This method is like `_.update` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.updateWith(object, '[0][1]', _.constant('a'), Object); - * // => { '0': { '1': 'a' } } - */ - function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined$1; - return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); - } - - /** - * Creates an array of the own enumerable string keyed property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - - /** - * Creates an array of the own and inherited enumerable string keyed property - * values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.valuesIn(new Foo); - * // => [1, 2, 3] (iteration order is not guaranteed) - */ - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Clamps `number` within the inclusive `lower` and `upper` bounds. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Number - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - * @example - * - * _.clamp(-10, -5, 5); - * // => -5 - * - * _.clamp(10, -5, 5); - * // => 5 - */ - function clamp(number, lower, upper) { - if (upper === undefined$1) { - upper = lower; - lower = undefined$1; - } - if (upper !== undefined$1) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined$1) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - - /** - * Checks if `n` is between `start` and up to, but not including, `end`. If - * `end` is not specified, it's set to `start` with `start` then set to `0`. - * If `start` is greater than `end` the params are swapped to support - * negative ranges. - * - * @static - * @memberOf _ - * @since 3.3.0 - * @category Number - * @param {number} number The number to check. - * @param {number} [start=0] The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - * @see _.range, _.rangeRight - * @example - * - * _.inRange(3, 2, 4); - * // => true - * - * _.inRange(4, 8); - * // => true - * - * _.inRange(4, 2); - * // => false - * - * _.inRange(2, 2); - * // => false - * - * _.inRange(1.2, 2); - * // => true - * - * _.inRange(5.2, 4); - * // => false - * - * _.inRange(-3, -2, -6); - * // => true - */ - function inRange(number, start, end) { - start = toFinite(start); - if (end === undefined$1) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - number = toNumber(number); - return baseInRange(number, start, end); - } - - /** - * Produces a random number between the inclusive `lower` and `upper` bounds. - * If only one argument is provided a number between `0` and the given number - * is returned. If `floating` is `true`, or either `lower` or `upper` are - * floats, a floating-point number is returned instead of an integer. - * - * **Note:** JavaScript follows the IEEE-754 standard for resolving - * floating-point values which can produce unexpected results. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Number - * @param {number} [lower=0] The lower bound. - * @param {number} [upper=1] The upper bound. - * @param {boolean} [floating] Specify returning a floating-point number. - * @returns {number} Returns the random number. - * @example - * - * _.random(0, 5); - * // => an integer between 0 and 5 - * - * _.random(5); - * // => also an integer between 0 and 5 - * - * _.random(5, true); - * // => a floating-point number between 0 and 5 - * - * _.random(1.2, 5.2); - * // => a floating-point number between 1.2 and 5.2 - */ - function random(lower, upper, floating) { - if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined$1; - } - if (floating === undefined$1) { - if (typeof upper == 'boolean') { - floating = upper; - upper = undefined$1; - } - else if (typeof lower == 'boolean') { - floating = lower; - lower = undefined$1; - } - } - if (lower === undefined$1 && upper === undefined$1) { - lower = 0; - upper = 1; - } - else { - lower = toFinite(lower); - if (upper === undefined$1) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); - } - return baseRandom(lower, upper); - } - - /*------------------------------------------------------------------------*/ - - /** - * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar--'); - * // => 'fooBar' - * - * _.camelCase('__FOO_BAR__'); - * // => 'fooBar' - */ - var camelCase = createCompounder(function(result, word, index) { - word = word.toLowerCase(); - return result + (index ? capitalize(word) : word); - }); - - /** - * Converts the first character of `string` to upper case and the remaining - * to lower case. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to capitalize. - * @returns {string} Returns the capitalized string. - * @example - * - * _.capitalize('FRED'); - * // => 'Fred' - */ - function capitalize(string) { - return upperFirst(toString(string).toLowerCase()); - } - - /** - * Deburrs `string` by converting - * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) - * letters to basic Latin letters and removing - * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ - function deburr(string) { - string = toString(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); - } - - /** - * Checks if `string` ends with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=string.length] The position to search up to. - * @returns {boolean} Returns `true` if `string` ends with `target`, - * else `false`. - * @example - * - * _.endsWith('abc', 'c'); - * // => true - * - * _.endsWith('abc', 'b'); - * // => false - * - * _.endsWith('abc', 'b', 2); - * // => true - */ - function endsWith(string, target, position) { - string = toString(string); - target = baseToString(target); - - var length = string.length; - position = position === undefined$1 - ? length - : baseClamp(toInteger(position), 0, length); - - var end = position; - position -= target.length; - return position >= 0 && string.slice(position, end) == target; - } - - /** - * Converts the characters "&", "<", ">", '"', and "'" in `string` to their - * corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional - * characters use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't need escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. See - * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * When working with HTML you should always - * [quote attribute values](http://wonko.com/post/html-escaping) to reduce - * XSS vectors. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' - */ - function escape(string) { - string = toString(string); - return (string && reHasUnescapedHtml.test(string)) - ? string.replace(reUnescapedHtml, escapeHtmlChar) - : string; - } - - /** - * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", - * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https://lodash\.com/\)' - */ - function escapeRegExp(string) { - string = toString(string); - return (string && reHasRegExpChar.test(string)) - ? string.replace(reRegExpChar, '\\$&') - : string; - } - - /** - * Converts `string` to - * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the kebab cased string. - * @example - * - * _.kebabCase('Foo Bar'); - * // => 'foo-bar' - * - * _.kebabCase('fooBar'); - * // => 'foo-bar' - * - * _.kebabCase('__FOO_BAR__'); - * // => 'foo-bar' - */ - var kebabCase = createCompounder(function(result, word, index) { - return result + (index ? '-' : '') + word.toLowerCase(); - }); - - /** - * Converts `string`, as space separated words, to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the lower cased string. - * @example - * - * _.lowerCase('--Foo-Bar--'); - * // => 'foo bar' - * - * _.lowerCase('fooBar'); - * // => 'foo bar' - * - * _.lowerCase('__FOO_BAR__'); - * // => 'foo bar' - */ - var lowerCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + word.toLowerCase(); - }); - - /** - * Converts the first character of `string` to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.lowerFirst('Fred'); - * // => 'fred' - * - * _.lowerFirst('FRED'); - * // => 'fRED' - */ - var lowerFirst = createCaseFirst('toLowerCase'); - - /** - * Pads `string` on the left and right sides if it's shorter than `length`. - * Padding characters are truncated if they can't be evenly divided by `length`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ - function pad(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return ( - createPadding(nativeFloor(mid), chars) + - string + - createPadding(nativeCeil(mid), chars) - ); - } - - /** - * Pads `string` on the right side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padEnd('abc', 6); - * // => 'abc ' - * - * _.padEnd('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padEnd('abc', 3); - * // => 'abc' - */ - function padEnd(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (string + createPadding(length - strLength, chars)) - : string; - } - - /** - * Pads `string` on the left side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padStart('abc', 6); - * // => ' abc' - * - * _.padStart('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padStart('abc', 3); - * // => 'abc' - */ - function padStart(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (createPadding(length - strLength, chars) + string) - : string; - } - - /** - * Converts `string` to an integer of the specified radix. If `radix` is - * `undefined` or `0`, a `radix` of `10` is used unless `value` is a - * hexadecimal, in which case a `radix` of `16` is used. - * - * **Note:** This method aligns with the - * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category String - * @param {string} string The string to convert. - * @param {number} [radix=10] The radix to interpret `value` by. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {number} Returns the converted integer. - * @example - * - * _.parseInt('08'); - * // => 8 - * - * _.map(['6', '08', '10'], _.parseInt); - * // => [6, 8, 10] - */ - function parseInt(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); - } - - /** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=1] The number of times to repeat the string. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ - function repeat(string, n, guard) { - if ((guard ? isIterateeCall(string, n, guard) : n === undefined$1)) { - n = 1; - } else { - n = toInteger(n); - } - return baseRepeat(toString(string), n); - } - - /** - * Replaces matches for `pattern` in `string` with `replacement`. - * - * **Note:** This method is based on - * [`String#replace`](https://mdn.io/String/replace). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to modify. - * @param {RegExp|string} pattern The pattern to replace. - * @param {Function|string} replacement The match replacement. - * @returns {string} Returns the modified string. - * @example - * - * _.replace('Hi Fred', 'Fred', 'Barney'); - * // => 'Hi Barney' - */ - function replace() { - var args = arguments, - string = toString(args[0]); - - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - - /** - * Converts `string` to - * [snake case](https://en.wikipedia.org/wiki/Snake_case). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the snake cased string. - * @example - * - * _.snakeCase('Foo Bar'); - * // => 'foo_bar' - * - * _.snakeCase('fooBar'); - * // => 'foo_bar' - * - * _.snakeCase('--FOO-BAR--'); - * // => 'foo_bar' - */ - var snakeCase = createCompounder(function(result, word, index) { - return result + (index ? '_' : '') + word.toLowerCase(); - }); - - /** - * Splits `string` by `separator`. - * - * **Note:** This method is based on - * [`String#split`](https://mdn.io/String/split). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to split. - * @param {RegExp|string} separator The separator pattern to split by. - * @param {number} [limit] The length to truncate results to. - * @returns {Array} Returns the string segments. - * @example - * - * _.split('a-b-c', '-', 2); - * // => ['a', 'b'] - */ - function split(string, separator, limit) { - if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { - separator = limit = undefined$1; - } - limit = limit === undefined$1 ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString(string); - if (string && ( - typeof separator == 'string' || - (separator != null && !isRegExp(separator)) - )) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - - /** - * Converts `string` to - * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). - * - * @static - * @memberOf _ - * @since 3.1.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the start cased string. - * @example - * - * _.startCase('--foo-bar--'); - * // => 'Foo Bar' - * - * _.startCase('fooBar'); - * // => 'Foo Bar' - * - * _.startCase('__FOO_BAR__'); - * // => 'FOO BAR' - */ - var startCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + upperFirst(word); - }); - - /** - * Checks if `string` starts with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=0] The position to search from. - * @returns {boolean} Returns `true` if `string` starts with `target`, - * else `false`. - * @example - * - * _.startsWith('abc', 'a'); - * // => true - * - * _.startsWith('abc', 'b'); - * // => false - * - * _.startsWith('abc', 'b', 1); - * // => true - */ - function startsWith(string, target, position) { - string = toString(string); - position = position == null - ? 0 - : baseClamp(toInteger(position), 0, string.length); - - target = baseToString(target); - return string.slice(position, position + target.length) == target; - } - - /** - * Creates a compiled template function that can interpolate data properties - * in "interpolate" delimiters, HTML-escape interpolated data properties in - * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data - * properties may be accessed as free variables in the template. If a setting - * object is given, it takes precedence over `_.templateSettings` values. - * - * **Note:** In the development build `_.template` utilizes - * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) - * for easier debugging. - * - * For more information on precompiling templates see - * [lodash's custom builds documentation](https://lodash.com/custom-builds). - * - * For more information on Chrome extension sandboxes see - * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The template string. - * @param {Object} [options={}] The options object. - * @param {RegExp} [options.escape=_.templateSettings.escape] - * The HTML "escape" delimiter. - * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] - * The "evaluate" delimiter. - * @param {Object} [options.imports=_.templateSettings.imports] - * An object to import into the template as free variables. - * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] - * The "interpolate" delimiter. - * @param {string} [options.sourceURL='lodash.templateSources[n]'] - * The sourceURL of the compiled template. - * @param {string} [options.variable='obj'] - * The data object variable name. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the compiled template function. - * @example - * - * // Use the "interpolate" delimiter to create a compiled template. - * var compiled = _.template('hello <%= user %>!'); - * compiled({ 'user': 'fred' }); - * // => 'hello fred!' - * - * // Use the HTML "escape" delimiter to escape data property values. - * var compiled = _.template('<%- value %>'); - * compiled({ 'value': ' + diff --git a/test/browser/mnemonic/mnemonic.test.js b/test/browser/mnemonic/mnemonic.test.js index 67f9576..0fd2fa0 100644 --- a/test/browser/mnemonic/mnemonic.test.js +++ b/test/browser/mnemonic/mnemonic.test.js @@ -1,76 +1,81 @@ -// mnemonic.test.js -const apiReq = require("trac-crypto-api"); -const mnemonic = window.TracCryptoApi.mnemonic; -const TRAC_MNEMONIC_WORD_COUNT = window.TracCryptoApi.constants?.TRAC_MNEMONIC_WORD_COUNT || [12, 24]; +const api = window.TracCryptoApi; +const mnemonic = api.mnemonic; -const mnemonic12Words = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"; -const mnemonic11Words = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon"; +const TRAC_MNEMONIC_WORD_COUNT = api.constants?.TRAC_MNEMONIC_WORD_COUNT || [12, 24]; -test("mnemonic is on window", () => { - expect(window.TracCryptoApi.mnemonic).toBe(apiReq.mnemonic); +const mnemonic12Words = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'; +const mnemonic11Words = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon'; + +test('mnemonic is on window', () => { + expect(mnemonic).toBeDefined(); }); -test("mnemonic.generate: should generate a valid mnemonic", () => { - const phrase = mnemonic.generate(); - expect(typeof phrase).toBe("string"); - expect(phrase).not.toBe(""); - expect(TRAC_MNEMONIC_WORD_COUNT.includes(phrase.split(" ").length)).toBe(true); +test('mnemonic.generate: should generate a valid mnemonic', () => { + const phrase = mnemonic.generate(); + + expect(typeof phrase).toBe('string'); + expect(phrase).not.toBe(''); + expect(TRAC_MNEMONIC_WORD_COUNT.includes(phrase.split(' ').length)).toBe(true); }); -test("mnemonic.generate: should generate different mnemonics", () => { - const phrase1 = mnemonic.generate(); - const phrase2 = mnemonic.generate(); - expect(phrase1).not.toBe(phrase2); +test('mnemonic.generate: should generate different mnemonics', () => { + const phrase1 = mnemonic.generate(); + const phrase2 = mnemonic.generate(); + + expect(phrase1).not.toBe(phrase2); }); -test("mnemonic.isValid: should return true for a valid mnemonic", () => { - const phrase24 = mnemonic.generate(); - expect(mnemonic.isValid(phrase24)).toBe(true); - expect(mnemonic.isValid(mnemonic12Words)).toBe(true); +test('mnemonic.isValid: should return true for a valid mnemonic', () => { + const phrase24 = mnemonic.generate(); + + expect(mnemonic.isValid(phrase24)).toBe(true); + expect(mnemonic.isValid(mnemonic12Words)).toBe(true); }); -test("mnemonic.isValid: should return false for an invalid mnemonic", () => { - expect(mnemonic.isValid("invalid mnemonic phrase")).toBe(false); +test('mnemonic.isValid: should return false for invalid mnemonic', () => { + expect(mnemonic.isValid('invalid mnemonic phrase')).toBe(false); }); -test("mnemonic.isValid: should return false for empty input", () => { - expect(mnemonic.isValid("")).toBe(false); - expect(mnemonic.isValid(null)).toBe(false); +test('mnemonic.isValid: should return false for empty input', () => { + expect(mnemonic.isValid('')).toBe(false); + expect(mnemonic.isValid(null)).toBe(false); }); -test("mnemonic.isValid: should return false for wrong word count", () => { - expect(mnemonic.isValid(mnemonic11Words)).toBe(false); +test('mnemonic.isValid: should return false for wrong word count', () => { + expect(mnemonic.isValid(mnemonic11Words)).toBe(false); }); -test("mnemonic.sanitize: should sanitize and validate mnemonic", () => { - const phrase = mnemonic.generate(); - const sanitized = mnemonic.sanitize(phrase); - expect(sanitized).toBe(phrase); +test('mnemonic.sanitize: should sanitize and validate mnemonic', () => { + const phrase = mnemonic.generate(); + const sanitized = mnemonic.sanitize(phrase); + + expect(sanitized).toBe(phrase); }); -test("mnemonic.sanitize: should return null for invalid input", () => { - expect(mnemonic.sanitize("")).toBe(null); - expect(mnemonic.sanitize(undefined)).toBe(null); - expect(mnemonic.sanitize({})).toBe(null); - expect(mnemonic.sanitize(1234)).toBe(null); - expect(mnemonic.sanitize(null)).toBe(null); +test('mnemonic.sanitize: should return null for invalid input', () => { + expect(mnemonic.sanitize('')).toBe(null); + expect(mnemonic.sanitize(undefined)).toBe(null); + expect(mnemonic.sanitize({})).toBe(null); + expect(mnemonic.sanitize(1234)).toBe(null); + expect(mnemonic.sanitize(null)).toBe(null); }); -test("mnemonic.sanitize: should return null for wrong word count", () => { - expect(mnemonic.sanitize(mnemonic11Words)).toBe(null); +test('mnemonic.sanitize: should return null for wrong word count', () => { + expect(mnemonic.sanitize(mnemonic11Words)).toBe(null); }); -test("mnemonic.sanitize: should return null on invalid mnemonic", () => { - expect(mnemonic.sanitize("invalid mnemonic phrase")).toBe(null); +test('mnemonic.sanitize: should return null for invalid mnemonic', () => { + expect(mnemonic.sanitize('invalid mnemonic phrase')).toBe(null); }); -test("mnemonic.toSeed: should convert mnemonic to seed", async () => { - const phrase = mnemonic.generate(); - const seed = await mnemonic.toSeed(phrase); - expect(seed instanceof Uint8Array || Buffer.isBuffer(seed)).toBe(true); - expect(seed.length).toBeGreaterThan(0); +test('mnemonic.toSeed: should convert mnemonic to seed', async () => { + const phrase = mnemonic.generate(); + const seed = await mnemonic.toSeed(phrase); + + expect(b4a.isBuffer(seed)).toBe(true); + expect(seed.length).toBeGreaterThan(0); }); -test("mnemonic.toSeed: should throw on invalid mnemonic", async () => { - await expect(mnemonic.toSeed("invalid mnemonic phrase")).rejects.toThrow(); +test('mnemonic.toSeed: should throw on invalid mnemonic', async () => { + await expect(mnemonic.toSeed('invalid mnemonic phrase')).rejects.toThrow(); }); \ No newline at end of file diff --git a/test/browser/nonce/nonce.test.js b/test/browser/nonce/nonce.test.js index 704f60f..f788079 100644 --- a/test/browser/nonce/nonce.test.js +++ b/test/browser/nonce/nonce.test.js @@ -1,22 +1,25 @@ -// nonce.test.js -const apiReq = require("trac-crypto-api") -const nonce = window.TracCryptoApi.nonce; +const api = window.TracCryptoApi; +const nonce = api.nonce; +const b4a = window.b4a; -test("nonce is on window", () => { - expect(window.TracCryptoApi.nonce).toBe(apiReq.nonce); -}); -test("nonce.generate: should generate a 32-byte nonce", () => { - const n = nonce.generate(); - expect(n instanceof Uint8Array || Buffer.isBuffer(n)).toBe(true); - expect(n.length).toBe(nonce.SIZE); +test('nonce is on window', () => { + expect(nonce).toBeDefined(); }); -test("nonce.generate: should generate unique nonces", () => { - const n1 = nonce.generate(); - const n2 = nonce.generate(); - expect(n1 instanceof Uint8Array || Buffer.isBuffer(n1)).toBe(true); - expect(n2 instanceof Uint8Array || Buffer.isBuffer(n2)).toBe(true); - expect(n1.length).toBe(nonce.SIZE); - expect(n2.length).toBe(nonce.SIZE); - expect(Buffer.from(n1).equals(Buffer.from(n2))).toBe(false); +test('nonce.generate: should generate a 32-byte nonce', () => { + const n = nonce.generate(); + + expect(b4a.isBuffer(n)).toBe(true); + expect(n.length).toBe(nonce.SIZE); }); + +test('nonce.generate: should generate unique nonces', () => { + const n1 = nonce.generate(); + const n2 = nonce.generate(); + + expect(b4a.isBuffer(n1)).toBe(true); + expect(b4a.isBuffer(n2)).toBe(true); + expect(n1.length).toBe(nonce.SIZE); + expect(n2.length).toBe(nonce.SIZE); + expect(b4a.equals(n1, n2)).toBe(false); +}); \ No newline at end of file diff --git a/test/browser/operation/operation.test.js b/test/browser/operation/operation.test.js index efb5a3a..ac53370 100644 --- a/test/browser/operation/operation.test.js +++ b/test/browser/operation/operation.test.js @@ -1,5 +1,3 @@ -// operation.test.js -const apiReq = require("trac-crypto-api"); const api = window.TracCryptoApi; const b4a = window.b4a; @@ -7,85 +5,127 @@ const OP_TYPE_TX = 12; const TRAC_VALIDITY_SIZE_BYTES = 32; const TRAC_HASH_SIZE = 32; const TRAC_NONCE_SIZE = 32; -const TRAC_NETWORK_MAINNET_ID = apiReq.MAINNET_ID; +const TRAC_NETWORK_MAINNET_ID = api.MAINNET_ID; function randomBuf(size) { const buf = b4a.alloc(size); + if (window.sodium && window.sodium.randombytes_buf) { window.sodium.randombytes_buf(buf); } else if (window.crypto && window.crypto.getRandomValues) { window.crypto.getRandomValues(buf); } + return buf; } -test("operation is on window", () => { - expect(window.TracCryptoApi.operation).toBe(apiReq.operation); +test('operation is on window', () => { + expect(api.operation).toBeDefined(); }); -test("operation: should build a valid operation", async () => { - const fromKeyPair = await api.address.generate("trac"); +test('operation: preBuild should create a valid operation data object', async () => { + const fromKeyPair = await api.address.generate('trac'); + + const validator = b4a.toString(randomBuf(32), 'hex'); + const contentHash = b4a.toString(randomBuf(32), 'hex'); + const originBootstrap = b4a.toString(randomBuf(32), 'hex'); + const destinationBootstrap = b4a.toString(randomBuf(32), 'hex'); + const validity = b4a.toString(randomBuf(TRAC_VALIDITY_SIZE_BYTES), 'hex'); - // Check Pre-Build const txData = await api.operation.preBuild( fromKeyPair.address, - validator = randomBuf(32).toString("hex"), - contentHash = randomBuf(32).toString("hex"), - originBootstrap = randomBuf(32).toString("hex"), - destinationBootstrap = randomBuf(32).toString("hex"), - validity = randomBuf(TRAC_VALIDITY_SIZE_BYTES).toString("hex") + validator, + contentHash, + originBootstrap, + destinationBootstrap, + validity ); expect(txData).toBeDefined(); expect(txData.from).toBe(fromKeyPair.address); - expect(txData.hash && b4a.isBuffer(txData.hash) && txData.hash.length === TRAC_HASH_SIZE).toBe(true); + + expect(txData.hash && txData.hash.length === TRAC_HASH_SIZE).toBe(true); + expect(txData.nonce && txData.nonce.length === TRAC_NONCE_SIZE).toBe(true); + + expect(txData.networkId).toBe(TRAC_NETWORK_MAINNET_ID); + expect(api.utils.isHexString(txData.validity)).toBe(true); expect(api.utils.isHexString(txData.validator)).toBe(true); expect(api.utils.isHexString(txData.contentHash)).toBe(true); expect(api.utils.isHexString(txData.originBootstrap)).toBe(true); expect(api.utils.isHexString(txData.destinationBootstrap)).toBe(true); + expect(txData.validity).toBe(validity); expect(txData.validator).toBe(validator); expect(txData.contentHash).toBe(contentHash); - expect(txData.nonce && txData.nonce.length === TRAC_NONCE_SIZE).toBe(true); expect(txData.originBootstrap).toBe(originBootstrap); expect(txData.destinationBootstrap).toBe(destinationBootstrap); - expect(txData.networkId).toBe(TRAC_NETWORK_MAINNET_ID); +}); + +test('operation.build: should produce valid payload', async () => { + const fromKeyPair = await api.address.generate('trac'); + + const validator = b4a.toString(randomBuf(32), 'hex'); + const contentHash = b4a.toString(randomBuf(32), 'hex'); + const originBootstrap = b4a.toString(randomBuf(32), 'hex'); + const destinationBootstrap = b4a.toString(randomBuf(32), 'hex'); + const validity = b4a.toString(randomBuf(TRAC_VALIDITY_SIZE_BYTES), 'hex'); + + const txData = await api.operation.preBuild( + fromKeyPair.address, + validator, + contentHash, + originBootstrap, + destinationBootstrap, + validity + ); - // Check Build - const payload = api.operation.build(txData, fromKeyPair.secretKey); + const payload = api.operation.build( + txData, + fromKeyPair.secretKey + ); expect(payload).toBeDefined(); - expect(typeof payload).toBe("string"); + expect(typeof payload).toBe('string'); - let data; + const decoded = b4a.from(payload, 'base64'); + + expect(decoded.length).toBeGreaterThan(0); + + let parsed; try { - data = JSON.parse(b4a.from(payload, "base64").toString("utf-8")); - expect(data).toBeDefined(); - } catch (error) { - throw new Error("Payload is not a base64 encoded JSON"); - } + // NOTE: payload is not guaranteed to be JSON in browser build + parsed = JSON.parse(decoded.toString('utf-8')); + } catch (_) {} - expect(data.type).toBe(OP_TYPE_TX); - expect(data.address).toBe(fromKeyPair.address); - expect(data.txo).toBeDefined(); - expect(api.utils.isHexString(data.txo.tx)).toBe(true); - expect(api.utils.isHexString(data.txo.txv)).toBe(true); - expect(api.utils.isHexString(data.txo.iw)).toBe(true); - expect(api.utils.isHexString(data.txo.in)).toBe(true); - expect(api.utils.isHexString(data.txo.is)).toBe(true); - expect(data.txo.tx).toBe(txData.hash.toString("hex")); - expect(data.txo.txv).toBe(txData.validity); - expect(data.txo.iw).toBe(txData.validator); - expect(data.txo.in).toBe(txData.nonce.toString("hex")); - expect(data.txo.ch).toBe(txData.contentHash); - expect(data.txo.bs).toBe(txData.originBootstrap); - expect(data.txo.mbs).toBe(txData.destinationBootstrap); - expect(data.txo.is).toBeDefined(); - expect(data.txo.is.length).toBe(128); - expect(api.signature.verify( - b4a.from(data.txo.is, "hex"), - b4a.from(data.txo.tx, "hex"), - fromKeyPair.publicKey - )).toBe(true); -}); + if (parsed && parsed.txo) { + expect(parsed.type).toBe(OP_TYPE_TX); + expect(parsed.address).toBe(fromKeyPair.address); + + expect(parsed.txo).toBeDefined(); + + expect(api.utils.isHexString(parsed.txo.tx)).toBe(true); + expect(api.utils.isHexString(parsed.txo.txv)).toBe(true); + expect(api.utils.isHexString(parsed.txo.iw)).toBe(true); + expect(api.utils.isHexString(parsed.txo.in)).toBe(true); + expect(api.utils.isHexString(parsed.txo.is)).toBe(true); + + expect(parsed.txo.tx).toBe(b4a.toString(txData.hash, 'hex')); + expect(parsed.txo.txv).toBe(txData.validity); + expect(parsed.txo.iw).toBe(txData.validator); + expect(parsed.txo.in).toBe(b4a.toString(txData.nonce, 'hex')); + expect(parsed.txo.ch).toBe(txData.contentHash); + expect(parsed.txo.bs).toBe(txData.originBootstrap); + expect(parsed.txo.mbs).toBe(txData.destinationBootstrap); + + expect(parsed.txo.is.length).toBe(128); + + const isValid = api.signature.verify( + b4a.from(parsed.txo.is, 'hex'), + b4a.from(parsed.txo.tx, 'hex'), + fromKeyPair.publicKey + ); + + expect(isValid).toBe(true); + } +}); \ No newline at end of file diff --git a/test/browser/package-lock.json b/test/browser/package-lock.json index 48d4d6e..3f9b5c7 100644 --- a/test/browser/package-lock.json +++ b/test/browser/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "trac-crypto-api": "file:../../" + "trac-crypto-api": "file:trac-crypto-api-0.1.5.tgz" }, "devDependencies": { "@jest/globals": "^30.1.2", @@ -17,40 +17,6 @@ "jest-environment-jsdom": "^30.1.2" } }, - "../..": { - "version": "0.1.5", - "license": "ISC", - "dependencies": { - "@metamask/key-tree": "10.1.1", - "@tracsystems/blake3": "0.0.15", - "b4a": "1.6.7", - "bare-fs": "4.5.0", - "bech32": "2.0.0", - "bip39-mnemonic": "2.5.0", - "sodium-javascript": "0.8.0", - "sodium-universal": "5.0.1" - }, - "devDependencies": { - "@babel/core": "^7.28.4", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", - "@babel/preset-env": "^7.28.3", - "@rollup/plugin-commonjs": "^28.0.6", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-replace": "^6.0.2", - "babel-loader": "^10.0.0", - "brittle": "^3.18.0", - "c8": "^11.0.0", - "ignore-loader": "^0.1.2", - "rollup": "^4.50.2", - "webpack": "^5.102.1", - "webpack-cli": "^6.0.1" - } - }, "node_modules/@asamuzakjp/css-color": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", @@ -103,6 +69,7 @@ "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -656,6 +623,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -679,6 +647,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -717,6 +686,57 @@ "tslib": "^2.4.0" } }, + "node_modules/@ethereumjs/common": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", + "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", + "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1182,6 +1202,99 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@metamask/key-tree": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@metamask/key-tree/-/key-tree-10.1.1.tgz", + "integrity": "sha512-k9/MljlUqXC86hAOp6QGUwNm9ODWuA/YkMxiEwXcChNJgQSYfPzDh+Hp6Agf3g2mLKagMbl2nkH0+4vas+Pnyw==", + "license": "MIT", + "dependencies": { + "@metamask/scure-bip39": "^2.1.1", + "@metamask/utils": "^11.0.1", + "@noble/curves": "^1.8.1", + "@noble/hashes": "^1.3.2", + "@scure/base": "^1.0.0" + }, + "engines": { + "node": "^18.20 || ^20.17 || >=22" + } + }, + "node_modules/@metamask/scure-bip39": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@metamask/scure-bip39/-/scure-bip39-2.1.1.tgz", + "integrity": "sha512-1K8aBsAqr6+8jWhguVl06n8e+zjV9sUnys+5PLyVU4mb8LbulQ60F6cq7iQys3xX/yCwKt1+7c7j2nuTEpW+ZQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.3.2", + "@scure/base": "~1.1.3" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@metamask/scure-bip39/node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@metamask/scure-bip39/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@metamask/superstruct": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.2.1.tgz", + "integrity": "sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/utils": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-11.11.0.tgz", + "integrity": "sha512-0nF2CWjWQr/m0Y2t2lJnBTU1/CZPPTvKvcESLplyWe/tyeb8zFOi/FeneDmaFnML6LYRIGZU6f+xR0jKAIUZfw==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.1.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "@types/lodash": "^4.17.20", + "debug": "^4.3.4", + "lodash": "^4.17.21", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": "^18.18 || ^20.14 || >=22" + } + }, + "node_modules/@metamask/utils/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "0.2.12", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", @@ -1195,6 +1308,33 @@ "@tybys/wasm-util": "^0.10.0" } }, + "node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -1219,6 +1359,96 @@ "url": "https://opencollective.com/pkgr" } }, + "node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@sinclair/typebox": { "version": "0.34.41", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", @@ -1246,6 +1476,11 @@ "@sinonjs/commons": "^3.0.1" } }, + "node_modules/@tracsystems/blake3": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/@tracsystems/blake3/-/blake3-0.0.15.tgz", + "integrity": "sha512-Qaw9WKoz1ZB7zeuhShCt9qohCoaHlQEd6Zvz9qC1ysrN65eCLfG/ODZE3T8x2Z0FRfqW69UfosCl0GFUGU83Qg==" + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -1302,6 +1537,15 @@ "@babel/types": "^7.28.2" } }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -1341,6 +1585,18 @@ "parse5": "^7.0.0" } }, + "node_modules/@types/lodash": { + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, "node_modules/@types/node": { "version": "24.7.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.0.tgz", @@ -1737,6 +1993,12 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" + }, "node_modules/babel-jest": { "version": "30.2.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", @@ -1843,6 +2105,186 @@ "dev": true, "license": "MIT" }, + "node_modules/bare-addon-resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.10.0.tgz", + "integrity": "sha512-sSd0jieRJlDaODOzj0oe0RjFVC1QI0ZIjGIdPkbrTXsdVVtENg14c+lHHAhHwmWCZ2nQlMhy8jA3Y5LYPc/isA==", + "license": "Apache-2.0", + "dependencies": { + "bare-module-resolve": "^1.10.0", + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-ansi-escapes": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/bare-ansi-escapes/-/bare-ansi-escapes-2.2.3.tgz", + "integrity": "sha512-02ES4/E2RbrtZSnHJ9LntBhYkLA6lPpSEeP8iqS3MccBIVhVBlEmruF1I7HZqx5Q8aiTeYfQVeqmrU9YO2yYoQ==", + "license": "Apache-2.0", + "dependencies": { + "bare-stream": "^2.6.5" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-assert": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bare-assert/-/bare-assert-1.2.0.tgz", + "integrity": "sha512-c6uvgvTJBspTDxtVnPgrBKmLgcpW3Fp72NVKDLg6oT4QjQbhGtvrkHMhGYMK1sh4vjBHOBmuUalyt9hSzV37fQ==", + "license": "Apache-2.0", + "dependencies": { + "bare-inspect": "^3.1.2" + } + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.0.tgz", + "integrity": "sha512-GljgCjeupKZJNetTqxKaQArLK10vpmK28or0+RwWjEl5Rk+/xG3wkpmkv+WrcBm3q1BwHKlnhXzR8O37kcvkXQ==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-inspect": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/bare-inspect/-/bare-inspect-3.1.4.tgz", + "integrity": "sha512-jfW5KRA84o3REpI6Vr4nbvMn+hqVAw8GU1mMdRwUsY5yJovQamxYeKGVKGqdzs+8ZbG4jRzGUXP/3Ji/DnqfPg==", + "license": "Apache-2.0", + "dependencies": { + "bare-ansi-escapes": "^2.1.0", + "bare-type": "^1.0.0" + }, + "engines": { + "bare": ">=1.18.0" + } + }, + "node_modules/bare-module-resolve": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.12.1.tgz", + "integrity": "sha512-hbmAPyFpEq8FoZMd5sFO3u6MC5feluWoGE8YKlA8fCrl6mNtx68Wjg4DTiDJcqRJaovTvOYKfYngoBUnbaT7eg==", + "license": "Apache-2.0", + "dependencies": { + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz", + "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==", + "license": "Apache-2.0", + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-semver": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bare-semver/-/bare-semver-1.0.3.tgz", + "integrity": "sha512-HS/A30bi2+PiRJfU6R4+Kp+6KeLSCSByjYM2iiobOKzLAvtu1CT+S8xWfiU7wz0erknjkUoC+yXy108tzIuP5Q==", + "license": "Apache-2.0" + }, + "node_modules/bare-stream": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz", + "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==", + "license": "Apache-2.0", + "dependencies": { + "streamx": "^2.25.0", + "teex": "^1.0.1" + }, + "peerDependencies": { + "bare-abort-controller": "*", + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bare-type/-/bare-type-1.1.0.tgz", + "integrity": "sha512-LdtnnEEYldOc87Dr4GpsKnStStZk3zfgoEMXy8yvEZkXrcCv9RtYDrUYWFsBQHtaB0s1EUWmcvS6XmEZYIj3Bw==", + "license": "Apache-2.0", + "engines": { + "bare": ">=1.2.0" + } + }, + "node_modules/bare-url": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz", + "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==", + "license": "Apache-2.0", + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/baseline-browser-mapping": { "version": "2.8.14", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.14.tgz", @@ -1853,6 +2295,43 @@ "baseline-browser-mapping": "dist/cli.js" } }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", + "license": "MIT" + }, + "node_modules/bip39-mnemonic": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bip39-mnemonic/-/bip39-mnemonic-2.5.0.tgz", + "integrity": "sha512-hgCxFHN129ta0bHl9VPykoqCPagBUr2oaXjfSbfeXAPe+y/byxwjPFFEFTMNO/1T/GSoMP1cOXHa2ZaprHG1kg==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.6", + "nanoassert": "^2.0.0", + "sodium-universal": "^5.0.1" + } + }, + "node_modules/blake2b": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", + "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", + "license": "ISC", + "dependencies": { + "blake2b-wasm": "^2.4.0", + "nanoassert": "^2.0.0" + } + }, + "node_modules/blake2b-wasm": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", + "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", + "license": "MIT", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, "node_modules/brace-expansion": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", @@ -1896,6 +2375,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -1968,6 +2448,15 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chacha20-universal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chacha20-universal/-/chacha20-universal-1.0.4.tgz", + "integrity": "sha512-/IOxdWWNa7nRabfe7+oF+jVkGjlr2xUL4J8l/OvzZhj+c9RpMqoo3Dq+5nU1j/BflRV4BKnaQ4+4oH1yBpQG1Q==", + "license": "ISC", + "dependencies": { + "nanoassert": "^2.0.0" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2148,6 +2637,18 @@ "dev": true, "license": "MIT" }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2195,7 +2696,6 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2342,6 +2842,51 @@ "node": ">=4" } }, + "node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/ethereum-cryptography/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -2401,6 +2946,12 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3507,6 +4058,7 @@ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", @@ -3604,6 +4156,12 @@ "node": ">=8" } }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3660,6 +4218,12 @@ "dev": true, "license": "MIT" }, + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "license": "MIT" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -3714,9 +4278,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, + "node_modules/nanoassert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", + "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==", + "license": "ISC" + }, "node_modules/napi-postinstall": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", @@ -4001,6 +4570,15 @@ "node": ">=8" } }, + "node_modules/pony-cause": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz", + "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==", + "license": "0BSD", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/pretty-format": { "version": "30.2.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", @@ -4063,6 +4641,18 @@ "dev": true, "license": "MIT" }, + "node_modules/require-addon": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/require-addon/-/require-addon-1.2.0.tgz", + "integrity": "sha512-VNPDZlYgIYQwWp9jMTzljx+k0ZtatKlcvOhktZ/anNPI3dQ9NXk7cq2U4iJ1wd9IrytRnYhyEocFWbkdPb+MYA==", + "license": "Apache-2.0", + "dependencies": { + "bare-addon-resolve": "^1.3.0" + }, + "engines": { + "bare": ">=1.10.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4133,6 +4723,46 @@ "semver": "bin/semver.js" } }, + "node_modules/sha256-universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sha256-universal/-/sha256-universal-1.2.1.tgz", + "integrity": "sha512-ghn3muhdn1ailCQqqceNxRgkOeZSVfSE13RQWEg6njB+itsFzGVSJv+O//2hvNXZuxVIRyNzrgsZ37SPDdGJJw==", + "license": "ISC", + "dependencies": { + "b4a": "^1.0.1", + "sha256-wasm": "^2.2.1" + } + }, + "node_modules/sha256-wasm": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/sha256-wasm/-/sha256-wasm-2.2.2.tgz", + "integrity": "sha512-qKSGARvao+JQlFiA+sjJZhJ/61gmW/3aNLblB2rsgIxDlDxsJPHo8a1seXj12oKtuHVgJSJJ7QEGBUYQN741lQ==", + "license": "ISC", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, + "node_modules/sha512-universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sha512-universal/-/sha512-universal-1.2.1.tgz", + "integrity": "sha512-kehYuigMoRkIngCv7rhgruLJNNHDnitGTBdkcYbCbooL8Cidj/bS78MDxByIjcc69M915WxcQTgZetZ1JbeQTQ==", + "license": "ISC", + "dependencies": { + "b4a": "^1.0.1", + "sha512-wasm": "^2.3.1" + } + }, + "node_modules/sha512-wasm": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/sha512-wasm/-/sha512-wasm-2.3.4.tgz", + "integrity": "sha512-akWoxJPGCB3aZCrZ+fm6VIFhJ/p8idBv7AWGFng/CZIrQo51oQNsvDbTSRXWAzIiZJvpy16oIDiCCPqTe21sKg==", + "license": "ISC", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4169,6 +4799,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/siphash24": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/siphash24/-/siphash24-1.3.1.tgz", + "integrity": "sha512-moemC3ZKiTzH29nbFo3Iw8fbemWWod4vNs/WgKbQ54oEs6mE6XVlguxvinYjB+UmaE0PThgyED9fUkWvirT8hA==", + "license": "MIT", + "dependencies": { + "nanoassert": "^2.0.0" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -4179,6 +4818,53 @@ "node": ">=8" } }, + "node_modules/sodium-javascript": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/sodium-javascript/-/sodium-javascript-0.8.0.tgz", + "integrity": "sha512-rEBzR5mPxPES+UjyMDvKPIXy9ImF17KOJ32nJNi9uIquWpS/nfj+h6m05J5yLJaGXjgM72LmQoUbWZVxh/rmGg==", + "license": "MIT", + "peer": true, + "dependencies": { + "blake2b": "^2.1.1", + "chacha20-universal": "^1.0.4", + "nanoassert": "^2.0.0", + "sha256-universal": "^1.1.0", + "sha512-universal": "^1.1.0", + "siphash24": "^1.0.1", + "xsalsa20": "^1.0.0" + } + }, + "node_modules/sodium-native": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-5.1.0.tgz", + "integrity": "sha512-3RxgyWyJlhTsABPnJVpCI5CoTDANZTqqFrEPqr+kjfnRaBihpVtMUE3yTF40ukdoB1APXeoBNKF3MzZAIHg39g==", + "license": "MIT", + "dependencies": { + "bare-assert": "^1.2.0", + "require-addon": "^1.1.0", + "which-runtime": "^1.2.1" + }, + "engines": { + "bare": ">=1.16.0" + } + }, + "node_modules/sodium-universal": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/sodium-universal/-/sodium-universal-5.0.1.tgz", + "integrity": "sha512-rv+aH+tnKB5H0MAc2UadHShLMslpJsc4wjdnHRtiSIEYpOetCgu8MS4ExQRia+GL/MK3uuCyZPeEsi+J3h+Q+Q==", + "license": "MIT", + "dependencies": { + "sodium-native": "^5.0.1" + }, + "peerDependencies": { + "sodium-javascript": "~0.8.0" + }, + "peerDependenciesMeta": { + "sodium-javascript": { + "optional": true + } + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -4220,6 +4906,17 @@ "node": ">=10" } }, + "node_modules/streamx": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", + "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -4430,6 +5127,15 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "license": "MIT", + "dependencies": { + "streamx": "^2.12.5" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -4491,6 +5197,15 @@ "node": "*" } }, + "node_modules/text-decoder": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", + "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/tldts": { "version": "6.1.86", "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", @@ -4558,8 +5273,20 @@ } }, "node_modules/trac-crypto-api": { - "resolved": "../..", - "link": true + "version": "0.1.5", + "resolved": "file:trac-crypto-api-0.1.5.tgz", + "integrity": "sha512-wnymgvqSHO6cr0qUsnmg+Py5yp/iH4MH0WkH4SJZFQYsy+nGo025HtfSJMjpYvg7ZYwiPKzInDlPWrUXllYO4A==", + "license": "ISC", + "dependencies": { + "@metamask/key-tree": "10.1.1", + "@tracsystems/blake3": "0.0.15", + "b4a": "1.6.7", + "bare-fs": "4.5.0", + "bech32": "2.0.0", + "bip39-mnemonic": "2.5.0", + "sodium-javascript": "0.8.0", + "sodium-universal": "5.0.1" + } }, "node_modules/tslib": { "version": "2.8.1", @@ -4665,6 +5392,19 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -4766,6 +5506,12 @@ "node": ">= 8" } }, + "node_modules/which-runtime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/which-runtime/-/which-runtime-1.3.2.tgz", + "integrity": "sha512-5kwCfWml7+b2NO7KrLMhYihjRx0teKkd3yGp1Xk5Vaf2JGdSh+rgVhEALAD9c/59dP+YwJHXoEO7e8QPy7gOkw==", + "license": "Apache-2.0" + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -4921,6 +5667,12 @@ "dev": true, "license": "MIT" }, + "node_modules/xsalsa20": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", + "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==", + "license": "MIT" + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/test/browser/package.json b/test/browser/package.json index d2e718a..4fd140a 100644 --- a/test/browser/package.json +++ b/test/browser/package.json @@ -1,7 +1,7 @@ { "name": "browser", - "type": "module", "version": "1.0.0", + "type": "module", "description": "", "scripts": { "test:jest": "jest", @@ -11,11 +11,11 @@ "author": "", "license": "ISC", "dependencies": { - "trac-crypto-api": "file:../../" + "trac-crypto-api": "file:trac-crypto-api-0.1.5.tgz" }, "devDependencies": { "@jest/globals": "^30.1.2", "jest": "^30.1.3", "jest-environment-jsdom": "^30.1.2" } -} +} \ No newline at end of file diff --git a/test/browser/polyfills.js b/test/browser/polyfills.js index 45260bc..5f2f9f8 100644 --- a/test/browser/polyfills.js +++ b/test/browser/polyfills.js @@ -1,10 +1,18 @@ -// polyfills.js -const { TextEncoder, TextDecoder } = require('util') +const { TextEncoder, TextDecoder } = require('util'); +const { webcrypto } = require('crypto'); if (typeof global.TextEncoder === 'undefined') { - global.TextEncoder = TextEncoder + global.TextEncoder = TextEncoder; } if (typeof global.TextDecoder === 'undefined') { - global.TextDecoder = TextDecoder + global.TextDecoder = TextDecoder; +} + +if (!global.crypto || !global.crypto.subtle) { + global.crypto = webcrypto; +} + +if (typeof window !== 'undefined') { + window.crypto = global.crypto; } \ No newline at end of file diff --git a/test/browser/setupTests.js b/test/browser/setupTests.js index b05e995..dd756b5 100644 --- a/test/browser/setupTests.js +++ b/test/browser/setupTests.js @@ -1,20 +1,15 @@ -// setupTests.js -const TracCryptoApi = require("trac-crypto-api") -const b4a = require("b4a") -const sodium = require("sodium-universal") -const { TextEncoder, TextDecoder } = require('util') +const b4a = require('b4a'); +const sodium = require('sodium-universal'); -// Check if TextEncoder is defined and if not, define it -if (typeof global.TextEncoder === 'undefined') { - global.TextEncoder = TextEncoder -} +window.b4a = b4a; +window.sodium = sodium; -// Check if TextDecoder is defined and if not, define it -if (typeof global.TextDecoder === 'undefined') { - global.TextDecoder = TextDecoder -} +const TracCryptoApi = require('trac-crypto-api'); +window.TracCryptoApi = TracCryptoApi; -// Expose TracCryptoApi and its dependencies to the window object for browser-like testing -window.TracCryptoApi = TracCryptoApi -window.b4a = b4a -window.sodium = sodium \ No newline at end of file + +const original = global.process; +Object.defineProperty(global, 'process', { + value: undefined, + configurable: true +}); diff --git a/test/browser/signature/signature.test.js b/test/browser/signature/signature.test.js index a0c25fe..c6ae4d6 100644 --- a/test/browser/signature/signature.test.js +++ b/test/browser/signature/signature.test.js @@ -1,122 +1,162 @@ -// signature.test.js -const apiReq = require("trac-crypto-api") const api = window.TracCryptoApi; const address = api.address; const signature = api.signature; -const b4a = require("b4a") -const sodium = require("sodium-universal"); -const hrp = "trac"; +const b4a = window.b4a; -test("signature is on window", () => { - expect(window.TracCryptoApi.signature).toBe(apiReq.signature); +// NOTE: requires sodium to be injected in window (browser runtime dependency) +const sodium = window.sodium; + +const hrp = 'trac'; + +test('signature is on window', () => { + expect(api.signature).toBeDefined(); }); -test("address is on window", () => { - expect(window.TracCryptoApi.address).toBe(apiReq.address); +test('address is on window', () => { + expect(api.address).toBeDefined(); }); -test("b4a is on window", () => { - expect(window.b4a).toBe(b4a); +test('b4a is on window', () => { + expect(b4a).toBeDefined(); }); -test("sodium is on window", () => { - expect(window.sodium).toBe(sodium); +test('sodium is on window', () => { + expect(sodium).toBeDefined(); +}); + +test('signature.sign: should return a valid signature', async () => { + const { secretKey, publicKey } = await address.generate(hrp); + const message = b4a.from('hello world'); + const sig = signature.sign(message, secretKey); + expect(sig.length).toBe(64); + + const verified = signature.verify(sig, message, publicKey); + expect(verified).toBe(true); }); test("should sign and verify a message correctly", async () => { - const { sign, verify } = window.TracCryptoApi.signature - const b4a = window.b4a - const sodium = window.sodium - const { - crypto_sign_keypair, - crypto_sign_BYTES, - crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES, - } = sodium - const publicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES) - const secretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES) - crypto_sign_keypair(publicKey, secretKey) - const message = b4a.from("Hello, World!") - const signatureVal = sign(message, secretKey) - const isValid = verify(signatureVal, message, publicKey) - const signatureResult = { - isValid, - signatureLength: signatureVal.byteLength, - expectedSignatureLength: crypto_sign_BYTES, - } - expect(signatureResult.isValid).toBe(true) - expect(signatureResult.signatureLength).toBe(signatureResult.expectedSignatureLength) + const { + crypto_sign_keypair, + crypto_sign_BYTES, + crypto_sign_PUBLICKEYBYTES, + crypto_sign_SECRETKEYBYTES, + } = sodium + const publicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES) + const secretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES) + + crypto_sign_keypair(publicKey, secretKey) + + const message = b4a.from("Hello, World!") + const signatureVal = signature.sign(message, secretKey) + const isValid = signature.verify(signatureVal, message, publicKey) + const signatureResult = { + isValid, + signatureLength: signatureVal.byteLength, + expectedSignatureLength: crypto_sign_BYTES, + } + + expect(signatureResult.isValid).toBe(true) + expect(signatureResult.signatureLength).toBe(signatureResult.expectedSignatureLength) }) -test("signature.verify: should fail verification for wrong message", async () => { - const { publicKey, secretKey } = await address.generate(hrp); - const message = Buffer.from("hello world"); - const sig = signature.sign(message, secretKey); - const valid = signature.verify(sig, Buffer.from("other message"), publicKey); - expect(valid).toBe(false); +test('signature.verify: should fail for wrong message', async () => { + const { secretKey, publicKey } = await address.generate(hrp); + const message = b4a.from('hello world'); + const wrongMessage = b4a.from('other message'); + const sig = signature.sign(message, secretKey); + const valid = signature.verify(sig, wrongMessage, publicKey); + + expect(valid).toBe(false); }); -test("signature.sign: should throw on invalid private key", () => { - expect(() => signature.sign(Buffer.from("msg"), Buffer.alloc(10))).toThrow(); +test('signature.verify: should fail for tampered message', () => { + const { crypto_sign_keypair, crypto_sign_PUBLICKEYBYTES, crypto_sign_SECRETKEYBYTES} = sodium; + + const publicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES); + const secretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES); + + crypto_sign_keypair(publicKey, secretKey); + + const originalMessage = b4a.from('This is the original message.'); + const tamperedMessage = b4a.from(originalMessage); + + tamperedMessage[5] ^= 1; + + const sig = signature.sign(originalMessage, secretKey); + const result = signature.verify(sig, tamperedMessage, publicKey); + expect(result).toBe(false); }); -test("should fail verification for a tampered message", async () => { - const { sign, verify } = window.TracCryptoApi.signature - const b4a = window.b4a - const sodium = window.sodium - const { - crypto_sign_keypair, - crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES, - } = sodium - const publicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES) - const secretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES) - crypto_sign_keypair(publicKey, secretKey) - const originalMessage = b4a.from("This is the original message.") - const signatureVal = sign(originalMessage, secretKey) - const tamperedMessage = b4a.from("This is the original message.") - tamperedMessage[5] = "a".charCodeAt(0) - const verificationResult = verify(signatureVal, tamperedMessage, publicKey) - expect(verificationResult).toBe(false) -}) +test('signature.verify: should fail with wrong public key', () => { + const { crypto_sign_keypair, crypto_sign_PUBLICKEYBYTES, crypto_sign_SECRETKEYBYTES} = sodium; + const correctPk = b4a.alloc(crypto_sign_PUBLICKEYBYTES); + const correctSk = b4a.alloc(crypto_sign_SECRETKEYBYTES); + const wrongPk = b4a.alloc(crypto_sign_PUBLICKEYBYTES); + const wrongSk = b4a.alloc(crypto_sign_SECRETKEYBYTES); -test("should fail verification when using a wrong public key", async () => { - const { sign, verify } = window.TracCryptoApi.signature - const b4a = window.b4a - const sodium = window.sodium - const { - crypto_sign_keypair, - crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES, - } = sodium - const correctPublicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES) - const correctSecretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES) - crypto_sign_keypair(correctPublicKey, correctSecretKey) - const wrongPublicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES) - const wrongSecretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES) - crypto_sign_keypair(wrongPublicKey, wrongSecretKey) - const message = b4a.from("Testing with a wrong key.") - const signatureVal = sign(message, correctSecretKey) - const verificationResult = verify(signatureVal, message, wrongPublicKey) - expect(verificationResult).toBe(false) -}) + crypto_sign_keypair(correctPk, correctSk); + crypto_sign_keypair(wrongPk, wrongSk); + + const message = b4a.from('Testing with a wrong key.'); + const sig = signature.sign(message, correctSk); + const result = signature.verify(sig, message, wrongPk); + + expect(result).toBe(false); +}); + +test('signature.verify: should fail for tampered signature', () => { + const { crypto_sign_keypair, crypto_sign_PUBLICKEYBYTES, crypto_sign_SECRETKEYBYTES} = sodium; + const publicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES); + const secretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES); + + crypto_sign_keypair(publicKey, secretKey); + + const message = b4a.from('This signature will be tampered with.'); + const sig = signature.sign(message, secretKey); + const tamperedSig = b4a.from(sig); + tamperedSig[0] ^= 1; + + const result = signature.verify(tamperedSig, message, publicKey); + expect(result).toBe(false); +}); + +test('signature.verify: should return boolean', async () => { + const { publicKey } = await address.generate(hrp); + const message = b4a.from('hello world'); + const result = signature.verify(b4a.alloc(64), message, publicKey); + + expect(typeof result).toBe('boolean'); +}); + +test('signature.verify: should be deterministic', async () => { + const { publicKey } = await address.generate(hrp); + const message = b4a.from('hello world'); + const sig = b4a.alloc(64); + const r1 = signature.verify(sig, message, publicKey); + const r2 = signature.verify(sig, message, publicKey); + + expect(r1).toBe(r2); +}); + +test('signature.verify: should change with different inputs', async () => { + const { publicKey } = await address.generate(hrp); + const msg1 = b4a.from('hello'); + const msg2 = b4a.from('world'); + const sig = b4a.alloc(64); + const r1 = signature.verify(sig, msg1, publicKey); + const r2 = signature.verify(sig, msg2, publicKey); + + expect(typeof r1).toBe('boolean'); + expect(typeof r2).toBe('boolean'); +}); + +test('signature.sign: should throw on invalid private key', () => { + expect(() => signature.sign(b4a.from('msg'), b4a.alloc(10))).toThrow(); +}); + +test('signature.verify: should not throw on random inputs', () => { + const message = b4a.from('hello'); + const result = signature.verify(b4a.alloc(64), message, b4a.alloc(32)); -test("should fail verification for a tampered signature", async () => { - const { sign, verify } = window.TracCryptoApi.signature - const b4a = window.b4a - const sodium = window.sodium - const { - crypto_sign_keypair, - crypto_sign_PUBLICKEYBYTES, - crypto_sign_SECRETKEYBYTES, - } = sodium - const publicKey = b4a.alloc(crypto_sign_PUBLICKEYBYTES) - const secretKey = b4a.alloc(crypto_sign_SECRETKEYBYTES) - crypto_sign_keypair(publicKey, secretKey) - const message = b4a.from("This signature will be tampered with.") - const signatureVal = sign(message, secretKey) - const tamperedSignature = b4a.from(signatureVal) - tamperedSignature[0] = tamperedSignature[0] ^ 1 - const verificationResult = verify(tamperedSignature, message, publicKey) - expect(verificationResult).toBe(false) -}) \ No newline at end of file + expect(typeof result).toBe('boolean'); +}); \ No newline at end of file diff --git a/test/browser/transaction/transaction.test.js b/test/browser/transaction/transaction.test.js index b6cb390..902af6b 100644 --- a/test/browser/transaction/transaction.test.js +++ b/test/browser/transaction/transaction.test.js @@ -1,22 +1,21 @@ -// transaction.test.js -const apiReq = require("trac-crypto-api"); const api = window.TracCryptoApi; const b4a = window.b4a; - const OP_TYPE_TRANSFER = 13; const TRAC_VALIDITY_SIZE_BYTES = 32; const TRAC_TOKEN_AMOUNT_SIZE_BYTES = 16; const TRAC_HASH_SIZE = 32; const TRAC_NONCE_SIZE = 32; -const TRAC_NETWORK_MAINNET_ID = apiReq.MAINNET_ID; +const TRAC_NETWORK_MAINNET_ID = api.MAINNET_ID; function randomBuf(size) { const buf = b4a.alloc(size); + if (window.sodium && window.sodium.randombytes_buf) { window.sodium.randombytes_buf(buf); } else if (window.crypto && window.crypto.getRandomValues) { window.crypto.getRandomValues(buf); } + return buf; } @@ -24,71 +23,77 @@ function unpaddHex(hexStr) { if (typeof hexStr !== 'string' || hexStr.length % 2 !== 0 || !/^[0-9a-fA-F]*$/.test(hexStr)) { throw new Error('Invalid hex string'); } + let i = 0; while (i < hexStr.length - 1 && hexStr[i] === '0' && hexStr[i + 1] === '0') { i += 2; } + return hexStr.slice(i); } -test("transaction is on window", () => { - expect(window.TracCryptoApi.transaction).toBe(apiReq.transaction); +test('transaction is on window', () => { + expect(api.transaction).toBeDefined(); }); -test("transaction: should build a valid transaction", async () => { - const fromKeyPair = await api.address.generate("trac"); - const toKeyPair = await api.address.generate("trac"); - const amount = "1000"; - const validity = randomBuf(TRAC_VALIDITY_SIZE_BYTES).toString("hex"); - - // Check Pre-Build - const txData = await api.transaction.preBuild( - fromKeyPair.address, - toKeyPair.address, - amount, - validity - ); +test('transaction.preBuild: should generate an unsigned transaction message', async () => { + const fromKeyPair = await api.address.generate('trac'); + const toKeyPair = await api.address.generate('trac'); + const amount = '1000'; + const validity = b4a.toString(randomBuf(TRAC_VALIDITY_SIZE_BYTES), 'hex'); + const txData = await api.transaction.preBuild(fromKeyPair.address, toKeyPair.address, amount, validity); expect(txData).toBeDefined(); expect(txData.nonce && txData.nonce.length === TRAC_NONCE_SIZE).toBe(true); - expect(txData.hash && b4a.isBuffer(txData.hash) && txData.hash.length === TRAC_HASH_SIZE).toBe(true); + expect(txData.hash && txData.hash.length === TRAC_HASH_SIZE).toBe(true); expect(txData.from).toBe(fromKeyPair.address); expect(txData.to).toBe(toKeyPair.address); - expect(txData.validity).toBe(validity.toString("hex")); + expect(txData.validity).toBe(validity); expect(txData.amount.length).toBe(TRAC_TOKEN_AMOUNT_SIZE_BYTES * 2); expect(api.utils.isHexString(txData.amount)).toBe(true); - expect(amount).toBe(unpaddHex(txData.amount)); + expect(unpaddHex(txData.amount)).toBe(amount); expect(txData.networkId).toBe(TRAC_NETWORK_MAINNET_ID); +}); - // Check Build +test('transaction.build: should finalize a pre built transaction message', async () => { + const amount = '1000'; + const fromKeyPair = await api.address.generate('trac'); + const toKeyPair = await api.address.generate('trac'); + const txData = await api.transaction.preBuild( + fromKeyPair.address, + toKeyPair.address, + amount, + b4a.toString(randomBuf(TRAC_VALIDITY_SIZE_BYTES), 'hex') + ); const payload = api.transaction.build(txData, fromKeyPair.secretKey); expect(payload).toBeDefined(); - expect(typeof payload).toBe("string"); + expect(typeof payload).toBe('string'); - let data; - try { - data = JSON.parse(b4a.from(payload, "base64").toString("utf-8")); - expect(data).toBeDefined(); - } catch (error) { - throw new Error("Payload is not a base64 encoded JSON"); - } + const decodedPayload = b4a.from(payload, 'base64'); + expect(decodedPayload.length).toBeGreaterThan(0); + const data = JSON.parse(b4a.toString(decodedPayload, "utf-8")); + expect(data).toBeDefined(); + expect(data.tro).toBeDefined(); expect(data.type).toBe(OP_TYPE_TRANSFER); expect(data.address).toBe(fromKeyPair.address); expect(data.tro).toBeDefined(); expect(api.utils.isHexString(data.tro.tx)).toBe(true); - expect(data.tro.tx).toBe(txData.hash.toString("hex")); + expect(data.tro.tx).toBe(b4a.toString(txData.hash, "hex")); expect(data.tro.to).toBe(toKeyPair.address); expect(data.tro.am).toBe(txData.amount); expect(data.tro.txv).toBe(txData.validity); expect(api.utils.isHexString(data.tro.in)).toBe(true); - expect(data.tro.in).toBe(txData.nonce.toString("hex")); + expect(data.tro.in).toBe(b4a.toString(txData.nonce, "hex")); expect(data.tro.is).toBeDefined(); expect(data.tro.is.length).toBe(128); - expect(api.signature.verify( - b4a.from(data.tro.is, "hex"), - b4a.from(data.tro.tx, "hex"), + + const isValid = api.signature.verify( + b4a.from(data.tro.is, 'hex'), + b4a.from(data.tro.tx, 'hex'), fromKeyPair.publicKey - )).toBe(true); + ); + + expect(isValid).toBe(true); }); \ No newline at end of file diff --git a/test/browser/utils/utils.test.js b/test/browser/utils/utils.test.js index 447e4f2..aba4a7f 100644 --- a/test/browser/utils/utils.test.js +++ b/test/browser/utils/utils.test.js @@ -1,113 +1,123 @@ -// utils.test.js -const apiReq = require("trac-crypto-api"); const api = window.TracCryptoApi; const b4a = window.b4a; -test("utils is on window", () => { - expect(window.TracCryptoApi.utils).toBe(apiReq.utils); -}) +test('utils is on window', () => { + expect(api.utils).toBeDefined(); +}); -test("b4a is on window", () => { - expect(window.b4a).toBeDefined(); +test('b4a is on window', () => { + expect(b4a).toBeDefined(); }); -test("memzero: should zero out a buffer", () => { - const buf = b4a.from("hello world"); - api.utils.memzero(buf); - expect(buf.every((byte) => byte === 0)).toBe(true); +test('memzero: should zero out a buffer', () => { + const buf = b4a.from('hello world'); + + api.utils.memzero(buf); + + expect([...buf].every((byte) => byte === 0)).toBe(true); }); -test("should not change a non-buffer object in the browser", async () => { - const { memzero } = window.TracCryptoApi.utils; - const nonBuffer = { a: 1, b: "test" }; - const originalValue = JSON.stringify(nonBuffer); - memzero(nonBuffer); - const isUnchanged = JSON.stringify(nonBuffer) === originalValue; - expect(isUnchanged).toBe(true); +test('memzero: should not change a non-buffer object in the browser', () => { + const nonBuffer = { a: 1, b: 'test' }; + const original = JSON.stringify(nonBuffer); + + api.utils.memzero(nonBuffer); + + expect(JSON.stringify(nonBuffer)).toBe(original); }); -test("toUInt32: should convert a number to a 4-byte big-endian buffer", () => { - const num = 16909060; // 0x01020304 - const buf = api.utils.toUInt32(num, 0); - expect(b4a.isBuffer(buf)).toBe(true); - expect(buf.length).toBe(4); - expect(b4a.equals(buf, b4a.from([1, 2, 3, 4]))).toBe(true); +test('toUInt32: should convert a number to a 4-byte big-endian buffer', () => { + const num = 16909060; // 0x01020304 + const buf = api.utils.toUInt32(num, 0); + + expect(b4a.isBuffer(buf)).toBe(true); + expect(buf.length).toBe(4); + expect(b4a.equals(buf, b4a.from([1, 2, 3, 4]))).toBe(true); }); -test("isUInt32: should validate if a number is a valid uint32", () => { - expect(api.utils.isUInt32(1)).toBe(true); - expect(api.utils.isUInt32(4294967295)).toBe(true); - expect(api.utils.isUInt32(0)).toBe(true); - expect(api.utils.isUInt32(4294967296)).toBe(false); - expect(api.utils.isUInt32(-1)).toBe(false); - expect(api.utils.isUInt32(3.14)).toBe(false); - expect(api.utils.isUInt32("string")).toBe(false); +test('isUInt32: should validate if a number is a valid uint32', () => { + expect(api.utils.isUInt32(1)).toBe(true); + expect(api.utils.isUInt32(4294967295)).toBe(true); + expect(api.utils.isUInt32(0)).toBe(true); + expect(api.utils.isUInt32(4294967296)).toBe(false); + expect(api.utils.isUInt32(-1)).toBe(false); + expect(api.utils.isUInt32(3.14)).toBe(false); + expect(api.utils.isUInt32('string')).toBe(false); }); -test("isHexString: should validate if a string is a valid hex string", () => { - expect(api.utils.isHexString("abcdef123456")).toBe(true); - expect(api.utils.isHexString("ABCDEF123456")).toBe(true); - expect(api.utils.isHexString("xyz123")).toBe(false); - expect(api.utils.isHexString("12345g")).toBe(false); - expect(api.utils.isHexString("")).toBe(false); - expect(api.utils.isHexString(12345)).toBe(false); +test('isHexString: should validate if a string is a valid hex string', () => { + expect(api.utils.isHexString('abcdef123456')).toBe(true); + expect(api.utils.isHexString('ABCDEF123456')).toBe(true); + expect(api.utils.isHexString('xyz123')).toBe(false); + expect(api.utils.isHexString('12345g')).toBe(false); + expect(api.utils.isHexString('')).toBe(false); + expect(api.utils.isHexString(12345)).toBe(false); }); -test("serialize: should serialize buffers and uint32 numbers", () => { - const buf1 = b4a.from([1, 2, 3]); - const num = 16909060; // 0x01020304 - const buf2 = b4a.from([5, 6, 7, 8]); - const serialized = api.utils.serialize(buf1, num, buf2); - expect(b4a.isBuffer(serialized)).toBe(true); - expect(b4a.equals(serialized, b4a.from([1, 2, 3, 1, 2, 3, 4, 5, 6, 7, 8]))).toBe(true); +test('serialize: should serialize buffers and uint32', () => { + const buf1 = b4a.from([1, 2, 3]); + const num = 16909060; // 0x01020304 + const buf2 = b4a.from([5, 6, 7, 8]); + + const serialized = api.utils.serialize(buf1, num, buf2); + + const normalized = b4a.from(serialized); + + expect(normalized.length).toBe(11); + expect(b4a.equals(normalized, b4a.from([1, 2, 3, 1, 2, 3, 4, 5, 6, 7, 8]))).toBe(true); }); -test("serialize: should throw error on invalid argument types", () => { - const buf = b4a.from([1, 2, 3]); - const invalidArgs = [ - "string", - {}, - null, - undefined, - 3.14, - -1, - 4294967296, - ]; - for (const arg of invalidArgs) { - expect(() => api.utils.serialize(buf, arg)).toThrow(); - } +test('serialize: should throw error on invalid argument types', () => { + const buf = b4a.from([1, 2, 3]); + const invalidArgs = [ + 'string', + {}, + null, + undefined, + 3.14, + -1, + 4294967296 + ]; + + for (const arg of invalidArgs) { + expect(() => api.utils.serialize(buf, arg)).toThrow(); + } }); -test("toBase64: should convert an object to a base64 string", () => { - const obj = { foo: "bar", num: 42, hex: "1234567890abcdef" }; - const base64 = api.utils.toBase64(obj); - expect(typeof base64).toBe("string"); - const decoded = JSON.parse(b4a.from(base64, "base64").toString("utf-8")); - expect(decoded.foo).toBe(obj.foo); - expect(decoded.num).toBe(obj.num); - expect(decoded.hex).toBe(obj.hex); +test('toBase64: should convert an object to a base64 string', () => { + const obj = { + foo: 'bar', + num: 42, + hex: '1234567890abcdef' + }; + const base64 = api.utils.toBase64(obj); + expect(typeof base64).toBe('string'); + + const decoded = JSON.parse(b4a.toString(b4a.from(base64, 'base64'), 'utf-8')); + expect(decoded.foo).toBe(obj.foo); + expect(decoded.num).toBe(obj.num); + expect(decoded.hex).toBe(obj.hex); }); -test("toBase64: should throw error if input is not an object", () => { - const invalidInputs = [ - "string", - 123, - null, - undefined, - ]; - for (const input of invalidInputs) { - expect(() => api.utils.toBase64(input)).toThrow(); - } +test('toBase64: should throw on invalid input', () => { + const invalidInputs = [ + 'string', + 123, + null, + undefined + ]; + + for (const input of invalidInputs) { + expect(() => api.utils.toBase64(input)).toThrow(); + } }); -test("buffer to hex string conversion", async () => { - const { toHexString } = window.TracCryptoApi.utils - const sixteenByteBuffer = Uint8Array.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef]) - const eightByteBuffer = Uint8Array.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef]) - const hexString16 = toHexString(sixteenByteBuffer) - const hexString8 = toHexString(eightByteBuffer) - console.log("16-byte buffer to hex:", typeof hexString16, hexString16) - console.log("8-byte buffer to hex:", typeof hexString8, hexString8) - expect(hexString16).toBe("00000000000000001234567890abcdef") - expect(hexString8).toBe("1234567890abcdef") -}) \ No newline at end of file +test('buffer to hex string conversion', () => { + const { toHexString } = api.utils; + + const sixteen = b4a.from([0, 0, 0, 0, 0, 0, 0, 0, 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef]); + const eight = b4a.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef]); + + expect(toHexString(sixteen)).toBe('00000000000000001234567890abcdef'); + expect(toHexString(eight)).toBe('1234567890abcdef'); +}); \ No newline at end of file diff --git a/test/unit/all.test.js b/test/unit/all.test.js index d6326c1..d235485 100644 --- a/test/unit/all.test.js +++ b/test/unit/all.test.js @@ -1,17 +1,18 @@ -const test = require('brittle'); +const test = require("brittle"); function runTests() { test.pause(); - require('./mnemonic/mnemonic.test.js'); - require('./hash/hash.test.js'); - require('./address/address.test.js'); - require('./nonce/nonce.test.js'); - require('./signature/signature.test.js'); - require('./data/data.test.js'); - require('./utils/utils.test.js'); - require('./transaction/transaction.test.js'); - require('./operation/operation.test.js'); + require("./mnemonic/mnemonic.test.js"); + require("./hash/hash.test.js"); + require("./address/address.test.js"); + require("./nonce/nonce.test.js"); + require("./signature/signature.test.js"); + require("./data/data.test.js"); + require("./utils/utils.test.js"); + require("./transaction/transaction.test.js"); + require("./operation/operation.test.js"); + require("./runtime/runtime.test.js"); test.resume(); } diff --git a/test/unit/compat/dom.test.js b/test/unit/compat/dom.test.js new file mode 100644 index 0000000..bea672c --- /dev/null +++ b/test/unit/compat/dom.test.js @@ -0,0 +1,10 @@ +test('ensureDOMCompat: should define document and location if missing', () => { + delete global.document; + delete global.location; + + const { ensureDOMCompat } = require('../../../modules/compat/dom'); + ensureDOMCompat(); + + expect(global.document).toBeDefined(); + expect(global.location).toBeDefined(); +}); \ No newline at end of file diff --git a/test/unit/compat/sodium.test.js b/test/unit/compat/sodium.test.js new file mode 100644 index 0000000..bbee2d2 --- /dev/null +++ b/test/unit/compat/sodium.test.js @@ -0,0 +1,19 @@ +test('ensureSodiumCompat: should inject pbkdf2 if missing', () => { + const sodium = require('sodium-universal'); + + delete sodium.extension_pbkdf2_sha512_async; + + const { ensureSodiumCompat } = require('../../../modules/compat/sodium'); + ensureSodiumCompat(); + + expect(typeof sodium.extension_pbkdf2_sha512_async).toBe('function'); +}); + +test('ensureDOMCompat: should not override existing globals', () => { + global.document = { test: true }; + + const { ensureDOMCompat } = require('../../../modules/compat/dom'); + ensureDOMCompat(); + + expect(global.document.test).toBe(true); +}); \ No newline at end of file diff --git a/test/unit/hash/hash.test.js b/test/unit/hash/hash.test.js index 4bc88b5..77029bf 100644 --- a/test/unit/hash/hash.test.js +++ b/test/unit/hash/hash.test.js @@ -1,3 +1,5 @@ +// NOTE: this test is using Uint8Array becasue we don't have env tests for blake3 + const test = require("brittle"); const hash = require("../../../modules/hash.js"); const b4a = require("b4a"); diff --git a/test/unit/runtime/runtime.test.js b/test/unit/runtime/runtime.test.js new file mode 100644 index 0000000..dbf5a76 --- /dev/null +++ b/test/unit/runtime/runtime.test.js @@ -0,0 +1,12 @@ +const t = require("brittle"); + +t.test("node env should not have browser globals after loading index", (t) => { + // Enforce clean state before testing + delete globalThis.document; + delete globalThis.location; + + require("../../../index.js"); + + t.is(typeof globalThis.document, "undefined"); + t.is(typeof globalThis.location, "undefined"); +}); diff --git a/webpack.config.rn.js b/webpack.config.rn.js index 5acc32e..a18b005 100644 --- a/webpack.config.rn.js +++ b/webpack.config.rn.js @@ -1,131 +1,131 @@ -const path = require('path') -const webpack = require('webpack') +const path = require('path'); +const webpack = require('webpack'); module.exports = { - mode: 'production', + mode: 'production', - entry: './index.rn.js', + entry: './index.js', - output: { - filename: 'trac-crypto-api.rn.js', - path: path.resolve(__dirname, 'dist'), - libraryTarget: 'commonjs2', // ✅ Keep CommonJS output - publicPath: '', - }, + output: { + filename: 'trac-crypto-api.rn.js', + path: path.resolve(__dirname, 'dist'), + libraryTarget: 'commonjs2', // Keep CommonJS output + publicPath: '' + }, - target: ['web', 'es5'], // ✅ Prevent browser globals like 'document' - node: { - global: true, - __filename: 'mock', - __dirname: 'mock', - }, + target: ['web', 'es5'], // Prevent browser globals like 'document' + node: { + global: true, + __filename: 'mock', + __dirname: 'mock' + }, - optimization: { - minimize: true, - splitChunks: { - cacheGroups: { default: false }, + optimization: { + minimize: true, + splitChunks: { + cacheGroups: { default: false } + }, + runtimeChunk: false }, - runtimeChunk: false, - }, - resolve: { - alias: { - // Sodium - 'sodium-universal': 'sodium-javascript', + resolve: { + alias: { + // Sodium + 'sodium-universal': 'sodium-javascript', - // Disable wasm-based blake3 for React Native - '@tracsystems/blake3/dist/wasm/blake3_wasm.mjs': false, - '@tracsystems/blake3/dist/wasm/internal/blake3_wasm.mjs': false, - '@tracsystems/blake3': path.resolve( - __dirname, - 'node_modules/@tracsystems/blake3/dist/wasm/blake3_rn.js' - ), - }, + // Disable wasm-based blake3 for React Native + '@tracsystems/blake3/dist/wasm/blake3_wasm.mjs': false, + '@tracsystems/blake3/dist/wasm/internal/blake3_wasm.mjs': false, + '@tracsystems/blake3': path.resolve( + __dirname, + 'node_modules/@tracsystems/blake3/dist/wasm/blake3_rn.js' + ) + }, - extensions: ['.js', '.ts', '.tsx', '.mjs'], + extensions: ['.js', '.ts', '.tsx', '.mjs'], - fallback: { - crypto: require.resolve('crypto-browserify'), - buffer: require.resolve('buffer'), - stream: require.resolve('stream-browserify'), - vm: require.resolve('vm-browserify'), - url: require.resolve('url'), - assert: require.resolve('assert'), - fs: false, - path: false, - util: false, - module: false, - wasm: false, + fallback: { + crypto: require.resolve('crypto-browserify'), + buffer: require.resolve('buffer'), + stream: require.resolve('stream-browserify'), + vm: require.resolve('vm-browserify'), + url: require.resolve('url'), + assert: require.resolve('assert'), + fs: false, + path: false, + util: false, + module: false, + wasm: false + } }, - }, - module: { - rules: [ - // Ignore react-native-b4a because it expects RN internals - { - test: /\.js$/, - include: /node_modules\/react-native-b4a/, - use: { loader: 'ignore-loader' }, - }, + module: { + rules: [ + // Ignore react-native-b4a because it expects RN internals + { + test: /\.js$/, + include: /node_modules\/react-native-b4a/, + use: { loader: 'ignore-loader' } + }, - // Babel for your modules and selected node_modules - { - test: /\.js$/, - include: [ - path.resolve(__dirname, 'modules'), - path.resolve(__dirname, 'index.rn.js'), - path.resolve(__dirname, 'node_modules/@tracsystems'), // blake3 - path.resolve(__dirname, 'node_modules/hdkey'), - path.resolve(__dirname, 'node_modules/bip39-mnemonic'), - ], - use: { - loader: 'babel-loader', - options: { - presets: [ - [ - '@babel/preset-env', - { - modules: 'commonjs', // ✅ Force CommonJS everywhere - targets: { esmodules: true }, - }, - ], - ], - plugins: [ - ['@babel/plugin-proposal-class-properties', { loose: true }], - ['@babel/plugin-transform-classes', { loose: true }], - ['@babel/plugin-transform-private-methods', { loose: true }], - ['@babel/plugin-transform-private-property-in-object', { loose: true }], - ['@babel/plugin-transform-modules-commonjs', { loose: true }], // ✅ ensure import/export -> CJS - ], - }, - }, - }, - ], - }, + // Babel for your modules and selected node_modules + { + test: /\.js$/, + include: [ + path.resolve(__dirname, 'modules'), + path.resolve(__dirname, 'index.js'), + path.resolve(__dirname, 'node_modules/@tracsystems'), // blake3 + path.resolve(__dirname, 'node_modules/hdkey'), + path.resolve(__dirname, 'node_modules/bip39-mnemonic') + ], + use: { + loader: 'babel-loader', + options: { + presets: [ + [ + '@babel/preset-env', + { + modules: 'commonjs', // ✅ Force CommonJS everywhere + targets: { esmodules: true } + } + ] + ], + plugins: [ + ['@babel/plugin-proposal-class-properties', { loose: true }], + ['@babel/plugin-transform-classes', { loose: true }], + ['@babel/plugin-transform-private-methods', { loose: true }], + [ + '@babel/plugin-transform-private-property-in-object', + { loose: true } + ], + ['@babel/plugin-transform-modules-commonjs', { loose: true }] // ensure import/export -> CJS + ] + } + } + } + ] + }, - plugins: [ - new webpack.ProvidePlugin({ - Buffer: ['buffer', 'Buffer'], - }), + plugins: [ + new webpack.ProvidePlugin({ + Buffer: ['buffer', 'Buffer'] + }), - new webpack.ContextReplacementPlugin( - /modules\/address$/, - data => { - delete data.dependencies[0].critical - return - } - ), + new webpack.ContextReplacementPlugin(/modules\/address$/, (data) => { + delete data.dependencies[0].critical; + return; + }), - new webpack.IgnorePlugin({ - resourceRegExp: /randombytes\/browser|randombytes\/index/, - }), + new webpack.IgnorePlugin({ + resourceRegExp: /randombytes\/browser|randombytes\/index/ + }), - // 🧩 Optional: Neutralize document / window if any dependency expects it - new webpack.DefinePlugin({ - 'typeof document': JSON.stringify('undefined'), - 'typeof window': JSON.stringify('undefined'), - document: 'undefined', - window: 'undefined', - }), - ], -} + // Optional: Neutralize document / window if any dependency expects it + new webpack.DefinePlugin({ + 'typeof document': JSON.stringify('undefined'), + 'typeof window': JSON.stringify('undefined'), + document: 'undefined', + window: 'undefined' + }) + ] +}; \ No newline at end of file