diff --git a/CHANGELOG.md b/CHANGELOG.md
index 67e5894..1c6da92 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
- [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
- [`auto-changelog`](https://github.com/CookPete/auto-changelog)
-## [v1.41.3](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
+## [v1.41.4](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
### Changes
diff --git a/README.md b/README.md
index 150c78d..d32b2f3 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
Data Structures of Javascript & TypeScript.
-Do you envy C++ with [std](), Python with [collections](), and Java with [java.util]() ? Well, no need to envy anymore! JavaScript and TypeScript now have [data-structure-typed]().
+Do you envy C++ with [STL](), Python with [collections](), and Java with [java.util]() ? Well, no need to envy anymore! JavaScript and TypeScript now have [data-structure-typed]().
Now you can use this library in Node.js and browser environments in CommonJS(require export.modules = ), ESModule(import export), Typescript(import export), UMD(var Queue = dataStructureTyped.Queue)
@@ -432,7 +432,7 @@ Array.from(dijkstraResult?.seen ?? []).map(vertex => vertex.id) // ['A', 'B', 'D
avl-tree
test name | time taken (ms) | executions per sec | executed times | sample mean (secs) | sample deviation |
---|
add 1000 randomly | 2.39 | 418.91 | 22 | 0.00 | 6.47e-5 |
delete 1000 randomly | 0.06 | 1.77e+4 | 917 | 5.66e-5 | 1.90e-6 |
addMany 1000 | 3.32 | 301.33 | 17 | 0.00 | 5.90e-4 |
get 1000 | 55.03 | 18.17 | 1 | 0.06 | 0.00 |
diff --git a/package.json b/package.json
index 7705366..4d92375 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "data-structure-typed",
- "version": "1.41.4",
+ "version": "1.41.5",
"description": "Data Structures of Javascript & TypeScript. Binary Tree, BST, Graph, Heap, Priority Queue, Linked List, Queue, Deque, Stack, AVL Tree, Tree Multiset, Trie, Directed Graph, Undirected Graph, Singly Linked List, Doubly Linked List, Max Heap, Max Priority Queue, Min Heap, Min Priority Queue.",
"main": "dist/cjs/index.js",
"module": "dist/mjs/index.js",
@@ -41,7 +41,7 @@
"copy:to-subs": "sh scripts/copy_to_all_subs.sh",
"publish:subs": "npm run copy:to-subs && sh scripts/publish_all_subs.sh",
"publish:docs": "sh scripts/publish_docs.sh",
- "publish:all": "npm run ci && npm publish && npm run publish:docs && npm run publish:subs"
+ "publish:all": "npm run ci && npm run benchmark && npm publish && npm run publish:docs && npm run publish:subs"
},
"repository": {
"type": "git",
@@ -133,9 +133,12 @@
"UMD",
"esmodule",
"java.util",
+ "c++ stl",
"c++ std",
"Python collections",
"System.Collections.Generic",
+ "STL",
+ "stl",
"STD",
"std",
"util",
diff --git a/test/config.ts b/test/config.ts
index 2316e5e..6ca1161 100644
--- a/test/config.ts
+++ b/test/config.ts
@@ -1 +1 @@
-export const isDebugTest = true;
+export const isDebugTest = false;
diff --git a/test/performance/data-structures/binary-tree/avl-tree.test.ts b/test/performance/data-structures/binary-tree/avl-tree.test.ts
index 0de0d75..f8a0d54 100644
--- a/test/performance/data-structures/binary-tree/avl-tree.test.ts
+++ b/test/performance/data-structures/binary-tree/avl-tree.test.ts
@@ -1,24 +1,36 @@
import {AVLTree} from '../../../../src';
import * as Benchmark from 'benchmark';
-import {magnitude, randomInt, randomIntArray} from '../../../utils';
+import {getRandomIntArray, magnitude} from '../../../utils';
const suite = new Benchmark.Suite();
const avl = new AVLTree
();
const {N_LOG_N} = magnitude;
+const arr = getRandomIntArray(N_LOG_N, 0, N_LOG_N, true);
suite
- .add(`add ${N_LOG_N} randomly`, () => {
- for (let i = 0; i < N_LOG_N; i++) avl.add(randomInt(0, N_LOG_N));
+ .add(`${N_LOG_N} add randomly`, () => {
+ avl.clear();
+ for (let i = 0; i < arr.length; i++) {
+ avl.add(arr[i]);
+ }
})
- .add(`delete ${N_LOG_N} randomly`, () => {
- for (let i = 0; i < N_LOG_N; i++) avl.delete(randomInt(0, N_LOG_N));
+ .add(`${N_LOG_N} add & delete randomly`, () => {
+ avl.clear();
+ for (let i = 0; i < arr.length; i++) {
+ avl.add(arr[i]);
+ }
+ for (let i = 0; i < arr.length; i++) {
+ avl.delete(arr[i]);
+ }
})
- .add(`addMany ${N_LOG_N}`, () => {
- const arr = randomIntArray(N_LOG_N);
+ .add(`${N_LOG_N} addMany`, () => {
+ avl.clear();
avl.addMany(arr);
})
- .add(`get ${N_LOG_N}`, () => {
- for (let i = 0; i < N_LOG_N; i++) avl.get(randomInt(-N_LOG_N, N_LOG_N));
+ .add(`${N_LOG_N} get`, () => {
+ for (let i = 0; i < arr.length; i++) {
+ avl.get(arr[i]);
+ }
});
export {suite};
diff --git a/test/performance/data-structures/binary-tree/binary-tree.test.ts b/test/performance/data-structures/binary-tree/binary-tree.test.ts
index 6217aef..416afeb 100644
--- a/test/performance/data-structures/binary-tree/binary-tree.test.ts
+++ b/test/performance/data-structures/binary-tree/binary-tree.test.ts
@@ -1,25 +1,45 @@
import {BinaryTree} from '../../../../src';
import * as Benchmark from 'benchmark';
-import {magnitude, randomInt, randomIntArray} from '../../../utils';
+import {getRandomIntArray, magnitude} from '../../../utils';
const suite = new Benchmark.Suite();
const biTree = new BinaryTree();
const {N_LOG_N} = magnitude;
+const arr = getRandomIntArray(N_LOG_N, 0, N_LOG_N, true);
suite
- .add(`add ${N_LOG_N}`, () => {
- for (let i = 0; i < N_LOG_N; i++) biTree.add(randomInt(-N_LOG_N, N_LOG_N));
- })
- .add(`delete ${N_LOG_N}`, () => {
- for (let i = 0; i < N_LOG_N; i++) biTree.delete(randomInt(-N_LOG_N, N_LOG_N));
- })
- .add(`addMany ${N_LOG_N}`, () => {
+ .add(`${N_LOG_N} add randomly`, () => {
+ biTree.clear();
+ for (let i = 0; i < arr.length; i++) {
+ biTree.add(arr[i]);
+ }
+ })
+ .add(`${N_LOG_N} add & delete randomly`, () => {
+ biTree.clear();
+ for (let i = 0; i < arr.length; i++) {
+ biTree.add(arr[i]);
+ }
+ for (let i = 0; i < arr.length; i++) {
+ biTree.delete(arr[i]);
+ }
+ })
+ .add(`${N_LOG_N} addMany`, () => {
biTree.clear();
- const arr = randomIntArray(N_LOG_N);
biTree.addMany(arr);
})
- .add(`get ${N_LOG_N}`, () => {
- for (let i = 0; i < N_LOG_N; i++) biTree.get(randomInt(-N_LOG_N, N_LOG_N));
+ .add(`${N_LOG_N} get`, () => {
+ for (let i = 0; i < arr.length; i++) {
+ biTree.get(arr[i]);
+ }
+ })
+ .add(`${N_LOG_N} dfs`, () => {
+ for (let i = 0; i < N_LOG_N; i++) biTree.dfs();
+ })
+ .add(`${N_LOG_N} bfs`, () => {
+ for (let i = 0; i < N_LOG_N; i++) biTree.bfs();
+ })
+ .add(`${N_LOG_N} morris`, () => {
+ for (let i = 0; i < N_LOG_N; i++) biTree.morris(n => n, 'pre');
});
export {suite};
diff --git a/test/performance/data-structures/binary-tree/bst.test.ts b/test/performance/data-structures/binary-tree/bst.test.ts
index 5c48beb..65e888d 100644
--- a/test/performance/data-structures/binary-tree/bst.test.ts
+++ b/test/performance/data-structures/binary-tree/bst.test.ts
@@ -1,24 +1,36 @@
import {BST} from '../../../../src';
import * as Benchmark from 'benchmark';
-import {magnitude, randomInt, randomIntArray} from '../../../utils';
+import {getRandomIntArray, magnitude} from '../../../utils';
const suite = new Benchmark.Suite();
const bst = new BST();
const {N_LOG_N} = magnitude;
+const arr = getRandomIntArray(N_LOG_N, 0, N_LOG_N, true);
suite
- .add(`add ${N_LOG_N} randomly`, () => {
- for (let i = 0; i < N_LOG_N; i++) bst.add(randomInt(0, N_LOG_N));
+ .add(`${N_LOG_N} add randomly`, () => {
+ bst.clear();
+ for (let i = 0; i < arr.length; i++) {
+ bst.add(arr[i]);
+ }
})
- .add(`delete ${N_LOG_N} randomly`, () => {
- for (let i = 0; i < N_LOG_N; i++) bst.delete(randomInt(0, N_LOG_N));
+ .add(`${N_LOG_N} add & delete randomly`, () => {
+ bst.clear();
+ for (let i = 0; i < arr.length; i++) {
+ bst.add(arr[i]);
+ }
+ for (let i = 0; i < arr.length; i++) {
+ bst.delete(arr[i]);
+ }
})
- .add(`addMany ${N_LOG_N} balanced`, () => {
- const arr = randomIntArray(N_LOG_N);
+ .add(`${N_LOG_N} addMany`, () => {
+ bst.clear();
bst.addMany(arr);
})
- .add(`get ${N_LOG_N}`, () => {
- for (let i = 0; i < N_LOG_N; i++) bst.get(randomInt(-N_LOG_N, N_LOG_N));
+ .add(`${N_LOG_N} get`, () => {
+ for (let i = 0; i < arr.length; i++) {
+ bst.get(arr[i]);
+ }
});
export {suite};
diff --git a/test/performance/data-structures/graph/directed-graph.test.ts b/test/performance/data-structures/graph/directed-graph.test.ts
index e69de29..fd5376f 100644
--- a/test/performance/data-structures/graph/directed-graph.test.ts
+++ b/test/performance/data-structures/graph/directed-graph.test.ts
@@ -0,0 +1,49 @@
+import {DirectedGraph} from '../../../../src';
+import * as Benchmark from 'benchmark';
+import {getRandomIndex, getRandomWords, magnitude} from '../../../utils';
+
+const suite = new Benchmark.Suite();
+const {THOUSAND} = magnitude;
+const graph = new DirectedGraph();
+const vertexes = getRandomWords(THOUSAND);
+
+suite
+ .add(`${THOUSAND} addVertex`, () => {
+ for (const v of vertexes) {
+ graph.addVertex(v);
+ }
+ })
+ .add(`${THOUSAND} addEdge`, () => {
+ for (let i = 0; i < THOUSAND; i++) {
+ const v1 = vertexes[getRandomIndex(vertexes)];
+ const v2 = vertexes[getRandomIndex(vertexes)];
+ graph.addEdge(v1, v2);
+ }
+ })
+ .add(`${THOUSAND} getVertex`, () => {
+ for (let i = 0; i < THOUSAND; i++) {
+ graph.getVertex(vertexes[getRandomIndex(vertexes)]);
+ }
+ })
+ .add(`${THOUSAND} getEdge`, () => {
+ for (let i = 0; i < THOUSAND; i++) {
+ graph.getEdge(vertexes[getRandomIndex(vertexes)], vertexes[getRandomIndex(vertexes)]);
+ }
+ })
+ .add(`tarjan`, () => {
+ // for (let i = 0; i < THOUSAND; i++) {
+ graph.tarjan(true);
+ // }
+ })
+ .add(`tarjan all`, () => {
+ // for (let i = 0; i < THOUSAND; i++) {
+ graph.tarjan(true, true, true, true);
+ // }
+ })
+ .add(`topologicalSort`, () => {
+ // for (let i = 0; i < THOUSAND; i++) {
+ graph.topologicalSort('key');
+ // }
+ });
+
+export {suite};
diff --git a/test/performance/data-structures/heap/heap.test.ts b/test/performance/data-structures/heap/heap.test.ts
index 0775c71..d0fd2e8 100644
--- a/test/performance/data-structures/heap/heap.test.ts
+++ b/test/performance/data-structures/heap/heap.test.ts
@@ -6,7 +6,7 @@ const suite = new Benchmark.Suite();
const {N_LOG_N} = magnitude;
suite
- .add(`add & ${N_LOG_N}`, () => {
+ .add(`${N_LOG_N} add & pop`, () => {
const heap = new Heap({comparator: (a, b) => b - a});
for (let i = 0; i < N_LOG_N; i++) {
@@ -17,7 +17,7 @@ suite
heap.pop();
}
})
- .add(`fib add & pop ${N_LOG_N}`, () => {
+ .add(`${N_LOG_N} fib add & pop`, () => {
const fbHeap = new FibonacciHeap();
for (let i = 1; i <= N_LOG_N; i++) {
fbHeap.push(i);
diff --git a/test/performance/data-structures/linked-list/doubly-linked-list.test.ts b/test/performance/data-structures/linked-list/doubly-linked-list.test.ts
index 7847c1b..c181260 100644
--- a/test/performance/data-structures/linked-list/doubly-linked-list.test.ts
+++ b/test/performance/data-structures/linked-list/doubly-linked-list.test.ts
@@ -6,14 +6,14 @@ const suite = new Benchmark.Suite();
const {LINEAR, N_LOG_N} = magnitude;
suite
- .add(`unshift ${LINEAR}`, () => {
+ .add(`${LINEAR} unshift`, () => {
const list = new DoublyLinkedList();
for (let i = 0; i < LINEAR; i++) {
list.unshift(i);
}
})
- .add(`unshift & shift ${LINEAR}`, () => {
+ .add(`${LINEAR} unshift & shift`, () => {
const list = new DoublyLinkedList();
for (let i = 0; i < LINEAR; i++) {
@@ -23,7 +23,7 @@ suite
list.shift();
}
})
- .add(`insertBefore ${N_LOG_N}`, () => {
+ .add(`${N_LOG_N} insertBefore`, () => {
const doublyList = new DoublyLinkedList();
let midNode: DoublyLinkedListNode | null = null;
const midIndex = Math.floor(N_LOG_N / 2);
diff --git a/test/performance/data-structures/linked-list/singly-linked-list.test.ts b/test/performance/data-structures/linked-list/singly-linked-list.test.ts
index a0c491b..7c9e852 100644
--- a/test/performance/data-structures/linked-list/singly-linked-list.test.ts
+++ b/test/performance/data-structures/linked-list/singly-linked-list.test.ts
@@ -6,7 +6,7 @@ const suite = new Benchmark.Suite();
const {N_LOG_N} = magnitude;
suite
- .add(`push & pop ${N_LOG_N}`, () => {
+ .add(`${N_LOG_N} push & pop`, () => {
const list = new SinglyLinkedList();
for (let i = 0; i < N_LOG_N; i++) {
@@ -17,7 +17,7 @@ suite
list.pop();
}
})
- .add(`insertBefore ${N_LOG_N}`, () => {
+ .add(`${N_LOG_N} insertBefore`, () => {
const singlyList = new SinglyLinkedList();
let midSinglyNode: SinglyLinkedListNode | null = null;
const midIndex = Math.floor(N_LOG_N / 2);
diff --git a/test/performance/data-structures/priority-queue/max-priority-queue.test.ts b/test/performance/data-structures/priority-queue/max-priority-queue.test.ts
index b143987..430e20b 100644
--- a/test/performance/data-structures/priority-queue/max-priority-queue.test.ts
+++ b/test/performance/data-structures/priority-queue/max-priority-queue.test.ts
@@ -3,11 +3,11 @@ import * as Benchmark from 'benchmark';
import {magnitude} from '../../../utils';
const suite = new Benchmark.Suite();
-const {LINEAR} = magnitude;
+const {TEN_THOUSAND} = magnitude;
-suite.add(`refill & poll ${LINEAR}`, () => {
+suite.add(`${TEN_THOUSAND} refill & poll`, () => {
const nodes = Array.from(
- new Set(Array.from(new Array(LINEAR), () => Math.floor(Math.random() * LINEAR * 100)))
+ new Set(Array.from(new Array(TEN_THOUSAND), () => Math.floor(Math.random() * TEN_THOUSAND * 100)))
);
const maxPQ = new MaxPriorityQueue();
maxPQ.refill(nodes);
diff --git a/test/performance/data-structures/queue/deque.test.ts b/test/performance/data-structures/queue/deque.test.ts
index 6ea4266..e377199 100644
--- a/test/performance/data-structures/queue/deque.test.ts
+++ b/test/performance/data-structures/queue/deque.test.ts
@@ -6,13 +6,13 @@ export const suite = new Benchmark.Suite();
const {LINEAR} = magnitude;
suite
- .add(`push ${LINEAR}`, () => {
+ .add(`${LINEAR} push`, () => {
const deque = new Deque();
for (let i = 0; i < LINEAR; i++) {
deque.push(i);
}
})
- .add(`shift ${LINEAR}`, () => {
+ .add(`${LINEAR} shift`, () => {
const deque = new Deque();
for (let i = 0; i < LINEAR; i++) {
deque.push(i);
diff --git a/test/performance/data-structures/queue/queue.test.ts b/test/performance/data-structures/queue/queue.test.ts
index f256e0b..689cac0 100644
--- a/test/performance/data-structures/queue/queue.test.ts
+++ b/test/performance/data-structures/queue/queue.test.ts
@@ -6,14 +6,14 @@ const suite = new Benchmark.Suite();
const {LINEAR} = magnitude;
suite
- .add(`push ${LINEAR}`, () => {
+ .add(`${LINEAR} push`, () => {
const queue = new Queue();
for (let i = 0; i < LINEAR; i++) {
queue.push(i);
}
})
- .add(`push & shift ${LINEAR}`, () => {
+ .add(`${LINEAR} push & shift`, () => {
const queue = new Queue();
for (let i = 0; i < LINEAR; i++) {
diff --git a/test/performance/data-structures/trie/trie.test.ts b/test/performance/data-structures/trie/trie.test.ts
index e69de29..a448dd2 100644
--- a/test/performance/data-structures/trie/trie.test.ts
+++ b/test/performance/data-structures/trie/trie.test.ts
@@ -0,0 +1,22 @@
+import {Trie} from '../../../../src';
+import * as Benchmark from 'benchmark';
+import {getRandomWords, magnitude} from '../../../utils';
+
+const suite = new Benchmark.Suite();
+const {HUNDRED_THOUSAND} = magnitude;
+const trie = new Trie();
+const randomWords = getRandomWords(HUNDRED_THOUSAND, false);
+
+suite
+ .add(`${HUNDRED_THOUSAND} push`, () => {
+ for (let i = 0; i < randomWords.length; i++) {
+ trie.add(randomWords[i]);
+ }
+ })
+ .add(`${HUNDRED_THOUSAND} getWords`, () => {
+ for (let i = 0; i < randomWords.length; i++) {
+ trie.getWords(randomWords[i]);
+ }
+ });
+
+export {suite};
diff --git a/test/performance/reportor.ts b/test/performance/reportor.ts
index 2bd0ab5..31d4d90 100644
--- a/test/performance/reportor.ts
+++ b/test/performance/reportor.ts
@@ -11,14 +11,12 @@ const testFiles = fastGlob.sync(path.join(testDir, '**', '*.test.ts'));
const report: {[key: string]: any} = {};
-let testFileCount = 0,
- completedCount = 0;
+let completedCount = 0;
const performanceTests: PerformanceTest[] = [];
-const {GREEN, BOLD, RED, END, YELLOW, CYAN, BG_YELLOW} = Color;
+const {GREEN, BOLD, END, YELLOW, GRAY, CYAN, BG_YELLOW} = Color;
testFiles.forEach((file: string) => {
- testFileCount++;
const testName = path.basename(file, '.test.ts');
const testFunction = require(file);
const {suite} = testFunction;
@@ -133,7 +131,7 @@ function writeIntoMarkdown(html: string) {
if (err) {
console.error('Unable to write to README.md file:', err);
} else {
- console.log('The text has been successfully inserted into the README.md file!');
+ console.log('The tables have been successfully inserted into the README.md file!');
}
});
});
@@ -141,29 +139,40 @@ function writeIntoMarkdown(html: string) {
performanceTests.forEach(item => {
const {suite, testName, file} = item;
- console.log(`${BG_YELLOW}Running in${END}: ${CYAN}${file}${END}`);
+ const relativeFilePath = path.relative(__dirname, file);
+ const directory = path.dirname(relativeFilePath);
+ const fileName = path.basename(relativeFilePath);
+ console.log(`${BG_YELLOW}Running in${END}: ${GRAY}${directory}/${END}${CYAN}${fileName}${END}`);
if (suite) {
+ let runTime = 0;
suite
.on('complete', function (this: Benchmark.Suite) {
completedCount++;
report[testName] = {};
- report[testName].benchmarks = this.map((benchmark: Benchmark) => ({
- 'test name': benchmark.name,
- 'time taken (ms)': numberFix(benchmark.times.period * 1000, 2),
- 'executions per sec': numberFix(benchmark.hz, 2),
- 'executed times': numberFix(benchmark.count, 0),
- 'sample mean (secs)': numberFix(benchmark.stats.mean, 2),
- 'sample deviation': numberFix(benchmark.stats.deviation, 2)
- }));
+ report[testName].benchmarks = this.map((benchmark: Benchmark) => {
+ runTime += benchmark.times.elapsed;
+ return {
+ 'test name': benchmark.name,
+ 'time taken (ms)': numberFix(benchmark.times.period * 1000, 2),
+ 'executions per sec': numberFix(benchmark.hz, 2),
+ 'executed times': numberFix(benchmark.count, 0),
+ 'sample mean (secs)': numberFix(benchmark.stats.mean, 2),
+ 'sample deviation': numberFix(benchmark.stats.deviation, 2)
+ };
+ });
+
report[testName].testName = testName;
const isDone = completedCount === performanceTests.length;
+ runTime = Number(runTime.toFixed(2));
+ const isTimeWarn = runTime > 120;
console.log(
- `Files: ${GREEN}${testFileCount}${END} `,
- `Suites: ${GREEN}${performanceTests.length}${END} `,
- `Progress: ${isDone ? GREEN : YELLOW}${completedCount}${END}/${isDone ? GREEN : RED}${
+ // `Files: ${GREEN}${testFileCount}${END} `,
+ // `Suites: ${GREEN}${performanceTests.length}${END} `,
+ `Suites Progress: ${isDone ? GREEN : YELLOW}${completedCount}${END}/${isDone ? GREEN : YELLOW}${
performanceTests.length
- }${END}`
+ }${END}`,
+ `Time: ${isTimeWarn ? YELLOW : GREEN}${runTime}s${END}`
);
if (isDone) {
composeReport();
diff --git a/test/unit/data-structures/binary-tree/rb-tree.test.ts b/test/unit/data-structures/binary-tree/rb-tree.test.ts
index 4d2c7ea..2da8475 100644
--- a/test/unit/data-structures/binary-tree/rb-tree.test.ts
+++ b/test/unit/data-structures/binary-tree/rb-tree.test.ts
@@ -1,5 +1,5 @@
import {NIL, RBTNColor, RBTreeNode, RedBlackTree} from '../../../../src';
-import {randomInt} from '../../../utils';
+import {getRandomInt} from '../../../utils';
import {isDebugTest} from '../../../config';
const isDebug = isDebugTest;
@@ -428,8 +428,8 @@ describe('RedBlackTree', () => {
it('should fix the tree after insertion and deletion', () => {
for (let i = 0; i < 100; i++) {
- tree.insert(randomInt(-100, 1000));
- tree.delete(randomInt(-100, 1000));
+ tree.insert(getRandomInt(-100, 1000));
+ tree.delete(getRandomInt(-100, 1000));
}
});
});
diff --git a/test/unit/data-structures/heap/heap.test.ts b/test/unit/data-structures/heap/heap.test.ts
index 19ed4dc..4b3763f 100644
--- a/test/unit/data-structures/heap/heap.test.ts
+++ b/test/unit/data-structures/heap/heap.test.ts
@@ -235,10 +235,11 @@ describe('FibonacciHeap Stress Test', () => {
// 10, 100, 1000, 5000, 10000, 20000, 50000, 75000, 100000,
// 150000, 200000, 250000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000
// ].forEach(m => logBigOMetricsWrap(testByMagnitude, [m]));
- [
- 10, 100, 1000, 5000, 10000, 20000, 50000, 75000, 100000, 150000, 200000, 250000, 300000, 400000, 500000, 600000,
- 700000, 800000, 900000, 1000000
- ].forEach(m =>
+ // [
+ // 10, 100, 1000, 5000, 10000, 20000, 50000, 75000, 100000, 150000, 200000, 250000, 300000, 400000, 500000, 600000,
+ // 700000, 800000, 900000, 1000000
+ // ]
+ [10, 100, 1000, 5000].forEach(m =>
logBigOMetricsWrap(
(c: number) => {
const result: number[] = [];
diff --git a/test/unit/data-structures/priority-queue/priority-queue.test.ts b/test/unit/data-structures/priority-queue/priority-queue.test.ts
index cd850ae..dd4fba0 100644
--- a/test/unit/data-structures/priority-queue/priority-queue.test.ts
+++ b/test/unit/data-structures/priority-queue/priority-queue.test.ts
@@ -1,5 +1,5 @@
import {PriorityQueue} from '../../../../src';
-import {randomInt} from '../../../utils';
+import {getRandomInt} from '../../../utils';
describe('PriorityQueue Operation Test', () => {
it('should PriorityQueue poll, pee, heapify, toArray work well', function () {
@@ -44,7 +44,7 @@ describe('PriorityQueue Operation Test', () => {
describe('Priority Queue Performance Test', () => {
it('should numeric heap work well', function () {
- const values = Array.from(new Array(10000), () => randomInt(1, 10000000));
+ const values = Array.from(new Array(10000), () => getRandomInt(1, 10000000));
const minPriorityQueue = new PriorityQueue({comparator: (a, b) => a - b});
minPriorityQueue.refill(values);
const sorted = minPriorityQueue.sort();
diff --git a/test/utils/array.ts b/test/utils/array.ts
index 5befc76..94f3fbc 100644
--- a/test/utils/array.ts
+++ b/test/utils/array.ts
@@ -1,5 +1,5514 @@
-import {randomInt} from './number';
+import {getRandomInt} from './number';
-export const randomIntArray = (length: number, min: number = -1000, max: number = 1000) => {
- return new Array(length).fill(0).map(() => randomInt(min, max));
-};
+export function getRandomIntArray(length: number, min: number = -1000, max: number = 1000, isDistinct = true) {
+ if (isDistinct) {
+ const set = new Set();
+ const ans: number[] = [];
+ while (ans.length < length) {
+ const num = getRandomInt(min, max);
+ if (!set.has(num)) {
+ ans.push(num);
+ set.add(num);
+ }
+ }
+ return ans;
+ }
+ return new Array(length).fill(0).map(() => getRandomInt(min, max));
+}
+
+const words = [
+ 'about',
+ 'search',
+ 'other',
+ 'which',
+ 'their',
+ 'there',
+ 'contact',
+ 'business',
+ 'online',
+ 'first',
+ 'would',
+ 'services',
+ 'these',
+ 'click',
+ 'service',
+ 'price',
+ 'people',
+ 'state',
+ 'email',
+ 'health',
+ 'world',
+ 'products',
+ 'music',
+ 'should',
+ 'product',
+ 'system',
+ 'policy',
+ 'number',
+ 'please',
+ 'support',
+ 'message',
+ 'after',
+ 'software',
+ 'video',
+ 'where',
+ 'rights',
+ 'public',
+ 'books',
+ 'school',
+ 'through',
+ 'links',
+ 'review',
+ 'years',
+ 'order',
+ 'privacy',
+ 'items',
+ 'company',
+ 'group',
+ 'under',
+ 'general',
+ 'research',
+ 'january',
+ 'reviews',
+ 'program',
+ 'games',
+ 'could',
+ 'great',
+ 'united',
+ 'hotel',
+ 'center',
+ 'store',
+ 'travel',
+ 'comments',
+ 'report',
+ 'member',
+ 'details',
+ 'terms',
+ 'before',
+ 'hotels',
+ 'right',
+ 'because',
+ 'local',
+ 'those',
+ 'using',
+ 'results',
+ 'office',
+ 'national',
+ 'design',
+ 'posted',
+ 'internet',
+ 'address',
+ 'within',
+ 'states',
+ 'phone',
+ 'shipping',
+ 'reserved',
+ 'subject',
+ 'between',
+ 'forum',
+ 'family',
+ 'based',
+ 'black',
+ 'check',
+ 'special',
+ 'prices',
+ 'website',
+ 'index',
+ 'being',
+ 'women',
+ 'today',
+ 'south',
+ 'project',
+ 'pages',
+ 'version',
+ 'section',
+ 'found',
+ 'sports',
+ 'house',
+ 'related',
+ 'security',
+ 'county',
+ 'american',
+ 'photo',
+ 'members',
+ 'power',
+ 'while',
+ 'network',
+ 'computer',
+ 'systems',
+ 'three',
+ 'total',
+ 'place',
+ 'download',
+ 'without',
+ 'access',
+ 'think',
+ 'north',
+ 'current',
+ 'posts',
+ 'media',
+ 'control',
+ 'water',
+ 'history',
+ 'pictures',
+ 'personal',
+ 'since',
+ 'guide',
+ 'board',
+ 'location',
+ 'change',
+ 'white',
+ 'small',
+ 'rating',
+ 'children',
+ 'during',
+ 'return',
+ 'students',
+ 'shopping',
+ 'account',
+ 'times',
+ 'sites',
+ 'level',
+ 'digital',
+ 'profile',
+ 'previous',
+ 'events',
+ 'hours',
+ 'image',
+ 'title',
+ 'another',
+ 'shall',
+ 'property',
+ 'class',
+ 'still',
+ 'money',
+ 'quality',
+ 'every',
+ 'listing',
+ 'content',
+ 'country',
+ 'private',
+ 'little',
+ 'visit',
+ 'tools',
+ 'reply',
+ 'customer',
+ 'december',
+ 'compare',
+ 'movies',
+ 'include',
+ 'college',
+ 'value',
+ 'article',
+ 'provide',
+ 'source',
+ 'author',
+ 'press',
+ 'learn',
+ 'around',
+ 'print',
+ 'course',
+ 'canada',
+ 'process',
+ 'stock',
+ 'training',
+ 'credit',
+ 'point',
+ 'science',
+ 'advanced',
+ 'sales',
+ 'english',
+ 'estate',
+ 'select',
+ 'windows',
+ 'photos',
+ 'thread',
+ 'category',
+ 'large',
+ 'gallery',
+ 'table',
+ 'register',
+ 'however',
+ 'october',
+ 'november',
+ 'market',
+ 'library',
+ 'really',
+ 'action',
+ 'start',
+ 'series',
+ 'model',
+ 'features',
+ 'industry',
+ 'human',
+ 'provided',
+ 'required',
+ 'second',
+ 'movie',
+ 'forums',
+ 'march',
+ 'better',
+ 'yahoo',
+ 'going',
+ 'medical',
+ 'friend',
+ 'server',
+ 'study',
+ 'staff',
+ 'articles',
+ 'feedback',
+ 'again',
+ 'looking',
+ 'issues',
+ 'april',
+ 'never',
+ 'users',
+ 'complete',
+ 'street',
+ 'topic',
+ 'comment',
+ 'things',
+ 'working',
+ 'against',
+ 'standard',
+ 'person',
+ 'below',
+ 'mobile',
+ 'party',
+ 'payment',
+ 'login',
+ 'student',
+ 'programs',
+ 'offers',
+ 'legal',
+ 'above',
+ 'recent',
+ 'stores',
+ 'problem',
+ 'memory',
+ 'social',
+ 'august',
+ 'quote',
+ 'language',
+ 'story',
+ 'options',
+ 'rates',
+ 'create',
+ 'young',
+ 'america',
+ 'field',
+ 'paper',
+ 'single',
+ 'example',
+ 'girls',
+ 'password',
+ 'latest',
+ 'question',
+ 'changes',
+ 'night',
+ 'texas',
+ 'poker',
+ 'status',
+ 'browse',
+ 'issue',
+ 'range',
+ 'building',
+ 'seller',
+ 'court',
+ 'february',
+ 'always',
+ 'result',
+ 'audio',
+ 'light',
+ 'write',
+ 'offer',
+ 'groups',
+ 'given',
+ 'files',
+ 'event',
+ 'release',
+ 'analysis',
+ 'request',
+ 'china',
+ 'making',
+ 'picture',
+ 'needs',
+ 'possible',
+ 'might',
+ 'month',
+ 'major',
+ 'areas',
+ 'future',
+ 'space',
+ 'cards',
+ 'problems',
+ 'london',
+ 'meeting',
+ 'become',
+ 'interest',
+ 'child',
+ 'enter',
+ 'share',
+ 'similar',
+ 'garden',
+ 'schools',
+ 'million',
+ 'added',
+ 'listed',
+ 'learning',
+ 'energy',
+ 'delivery',
+ 'popular',
+ 'stories',
+ 'journal',
+ 'reports',
+ 'welcome',
+ 'central',
+ 'images',
+ 'notice',
+ 'original',
+ 'radio',
+ 'until',
+ 'color',
+ 'council',
+ 'includes',
+ 'track',
+ 'archive',
+ 'others',
+ 'format',
+ 'least',
+ 'society',
+ 'months',
+ 'safety',
+ 'friends',
+ 'trade',
+ 'edition',
+ 'messages',
+ 'further',
+ 'updated',
+ 'having',
+ 'provides',
+ 'david',
+ 'already',
+ 'green',
+ 'studies',
+ 'close',
+ 'common',
+ 'drive',
+ 'specific',
+ 'several',
+ 'living',
+ 'called',
+ 'short',
+ 'display',
+ 'limited',
+ 'powered',
+ 'means',
+ 'director',
+ 'daily',
+ 'beach',
+ 'natural',
+ 'whether',
+ 'period',
+ 'planning',
+ 'database',
+ 'official',
+ 'weather',
+ 'average',
+ 'window',
+ 'france',
+ 'region',
+ 'island',
+ 'record',
+ 'direct',
+ 'records',
+ 'district',
+ 'calendar',
+ 'costs',
+ 'style',
+ 'front',
+ 'update',
+ 'parts',
+ 'early',
+ 'miles',
+ 'sound',
+ 'resource',
+ 'present',
+ 'either',
+ 'document',
+ 'works',
+ 'material',
+ 'written',
+ 'federal',
+ 'hosting',
+ 'rules',
+ 'final',
+ 'adult',
+ 'tickets',
+ 'thing',
+ 'centre',
+ 'cheap',
+ 'finance',
+ 'minutes',
+ 'third',
+ 'gifts',
+ 'europe',
+ 'reading',
+ 'topics',
+ 'cover',
+ 'usually',
+ 'together',
+ 'videos',
+ 'percent',
+ 'function',
+ 'getting',
+ 'global',
+ 'economic',
+ 'player',
+ 'projects',
+ 'lyrics',
+ 'often',
+ 'submit',
+ 'germany',
+ 'amount',
+ 'watch',
+ 'included',
+ 'though',
+ 'thanks',
+ 'deals',
+ 'various',
+ 'words',
+ 'linux',
+ 'james',
+ 'weight',
+ 'heart',
+ 'received',
+ 'choose',
+ 'archives',
+ 'points',
+ 'magazine',
+ 'error',
+ 'camera',
+ 'clear',
+ 'receive',
+ 'domain',
+ 'methods',
+ 'chapter',
+ 'makes',
+ 'policies',
+ 'beauty',
+ 'manager',
+ 'india',
+ 'position',
+ 'taken',
+ 'listings',
+ 'models',
+ 'michael',
+ 'known',
+ 'cases',
+ 'florida',
+ 'simple',
+ 'quick',
+ 'wireless',
+ 'license',
+ 'friday',
+ 'whole',
+ 'annual',
+ 'later',
+ 'basic',
+ 'shows',
+ 'google',
+ 'church',
+ 'method',
+ 'purchase',
+ 'active',
+ 'response',
+ 'practice',
+ 'hardware',
+ 'figure',
+ 'holiday',
+ 'enough',
+ 'designed',
+ 'along',
+ 'among',
+ 'death',
+ 'writing',
+ 'speed',
+ 'brand',
+ 'discount',
+ 'higher',
+ 'effects',
+ 'created',
+ 'remember',
+ 'yellow',
+ 'increase',
+ 'kingdom',
+ 'thought',
+ 'stuff',
+ 'french',
+ 'storage',
+ 'japan',
+ 'doing',
+ 'loans',
+ 'shoes',
+ 'entry',
+ 'nature',
+ 'orders',
+ 'africa',
+ 'summary',
+ 'growth',
+ 'notes',
+ 'agency',
+ 'monday',
+ 'european',
+ 'activity',
+ 'although',
+ 'western',
+ 'income',
+ 'force',
+ 'overall',
+ 'river',
+ 'package',
+ 'contents',
+ 'players',
+ 'engine',
+ 'album',
+ 'regional',
+ 'supplies',
+ 'started',
+ 'views',
+ 'plans',
+ 'double',
+ 'build',
+ 'screen',
+ 'exchange',
+ 'types',
+ 'lines',
+ 'continue',
+ 'across',
+ 'benefits',
+ 'needed',
+ 'season',
+ 'apply',
+ 'someone',
+ 'anything',
+ 'printer',
+ 'believe',
+ 'effect',
+ 'asked',
+ 'sunday',
+ 'casino',
+ 'volume',
+ 'cross',
+ 'anyone',
+ 'mortgage',
+ 'silver',
+ 'inside',
+ 'solution',
+ 'mature',
+ 'rather',
+ 'weeks',
+ 'addition',
+ 'supply',
+ 'nothing',
+ 'certain',
+ 'running',
+ 'lower',
+ 'union',
+ 'jewelry',
+ 'clothing',
+ 'names',
+ 'robert',
+ 'homepage',
+ 'skills',
+ 'islands',
+ 'advice',
+ 'career',
+ 'military',
+ 'rental',
+ 'decision',
+ 'leave',
+ 'british',
+ 'teens',
+ 'woman',
+ 'sellers',
+ 'middle',
+ 'cable',
+ 'taking',
+ 'values',
+ 'division',
+ 'coming',
+ 'tuesday',
+ 'object',
+ 'lesbian',
+ 'machine',
+ 'length',
+ 'actually',
+ 'score',
+ 'client',
+ 'returns',
+ 'capital',
+ 'follow',
+ 'sample',
+ 'shown',
+ 'saturday',
+ 'england',
+ 'culture',
+ 'flash',
+ 'george',
+ 'choice',
+ 'starting',
+ 'thursday',
+ 'courses',
+ 'consumer',
+ 'airport',
+ 'foreign',
+ 'artist',
+ 'outside',
+ 'levels',
+ 'channel',
+ 'letter',
+ 'phones',
+ 'ideas',
+ 'summer',
+ 'allow',
+ 'degree',
+ 'contract',
+ 'button',
+ 'releases',
+ 'homes',
+ 'super',
+ 'matter',
+ 'custom',
+ 'virginia',
+ 'almost',
+ 'located',
+ 'multiple',
+ 'asian',
+ 'editor',
+ 'cause',
+ 'focus',
+ 'featured',
+ 'rooms',
+ 'female',
+ 'thomas',
+ 'primary',
+ 'cancer',
+ 'numbers',
+ 'reason',
+ 'browser',
+ 'spring',
+ 'answer',
+ 'voice',
+ 'friendly',
+ 'schedule',
+ 'purpose',
+ 'feature',
+ 'comes',
+ 'police',
+ 'everyone',
+ 'approach',
+ 'cameras',
+ 'brown',
+ 'physical',
+ 'medicine',
+ 'ratings',
+ 'chicago',
+ 'forms',
+ 'glass',
+ 'happy',
+ 'smith',
+ 'wanted',
+ 'thank',
+ 'unique',
+ 'survey',
+ 'prior',
+ 'sport',
+ 'ready',
+ 'animal',
+ 'sources',
+ 'mexico',
+ 'regular',
+ 'secure',
+ 'simply',
+ 'evidence',
+ 'station',
+ 'round',
+ 'paypal',
+ 'favorite',
+ 'option',
+ 'master',
+ 'valley',
+ 'recently',
+ 'probably',
+ 'rentals',
+ 'built',
+ 'blood',
+ 'improve',
+ 'larger',
+ 'networks',
+ 'earth',
+ 'parents',
+ 'nokia',
+ 'impact',
+ 'transfer',
+ 'kitchen',
+ 'strong',
+ 'carolina',
+ 'wedding',
+ 'hospital',
+ 'ground',
+ 'overview',
+ 'owners',
+ 'disease',
+ 'italy',
+ 'perfect',
+ 'classic',
+ 'basis',
+ 'command',
+ 'cities',
+ 'william',
+ 'express',
+ 'award',
+ 'distance',
+ 'peter',
+ 'ensure',
+ 'involved',
+ 'extra',
+ 'partners',
+ 'budget',
+ 'rated',
+ 'guides',
+ 'success',
+ 'maximum',
+ 'existing',
+ 'quite',
+ 'selected',
+ 'amazon',
+ 'patients',
+ 'warning',
+ 'horse',
+ 'forward',
+ 'flowers',
+ 'stars',
+ 'lists',
+ 'owner',
+ 'retail',
+ 'animals',
+ 'useful',
+ 'directly',
+ 'housing',
+ 'takes',
+ 'bring',
+ 'catalog',
+ 'searches',
+ 'trying',
+ 'mother',
+ 'traffic',
+ 'joined',
+ 'input',
+ 'strategy',
+ 'agent',
+ 'valid',
+ 'modern',
+ 'senior',
+ 'ireland',
+ 'teaching',
+ 'grand',
+ 'testing',
+ 'trial',
+ 'charge',
+ 'units',
+ 'instead',
+ 'canadian',
+ 'normal',
+ 'wrote',
+ 'ships',
+ 'entire',
+ 'leading',
+ 'metal',
+ 'positive',
+ 'fitness',
+ 'chinese',
+ 'opinion',
+ 'football',
+ 'abstract',
+ 'output',
+ 'funds',
+ 'greater',
+ 'likely',
+ 'develop',
+ 'artists',
+ 'guest',
+ 'seems',
+ 'trust',
+ 'contains',
+ 'session',
+ 'multi',
+ 'republic',
+ 'vacation',
+ 'century',
+ 'academic',
+ 'graphics',
+ 'indian',
+ 'expected',
+ 'grade',
+ 'dating',
+ 'pacific',
+ 'mountain',
+ 'filter',
+ 'mailing',
+ 'vehicle',
+ 'longer',
+ 'consider',
+ 'northern',
+ 'behind',
+ 'panel',
+ 'floor',
+ 'german',
+ 'buying',
+ 'match',
+ 'proposed',
+ 'default',
+ 'require',
+ 'outdoor',
+ 'morning',
+ 'allows',
+ 'protein',
+ 'plant',
+ 'reported',
+ 'politics',
+ 'partner',
+ 'authors',
+ 'boards',
+ 'faculty',
+ 'parties',
+ 'mission',
+ 'string',
+ 'sense',
+ 'modified',
+ 'released',
+ 'stage',
+ 'internal',
+ 'goods',
+ 'unless',
+ 'richard',
+ 'detailed',
+ 'japanese',
+ 'approved',
+ 'target',
+ 'except',
+ 'ability',
+ 'maybe',
+ 'moving',
+ 'brands',
+ 'places',
+ 'pretty',
+ 'spain',
+ 'southern',
+ 'yourself',
+ 'winter',
+ 'battery',
+ 'youth',
+ 'pressure',
+ 'boston',
+ 'keywords',
+ 'medium',
+ 'break',
+ 'purposes',
+ 'dance',
+ 'itself',
+ 'defined',
+ 'papers',
+ 'playing',
+ 'awards',
+ 'studio',
+ 'reader',
+ 'virtual',
+ 'device',
+ 'answers',
+ 'remote',
+ 'external',
+ 'apple',
+ 'offered',
+ 'theory',
+ 'enjoy',
+ 'remove',
+ 'surface',
+ 'minimum',
+ 'visual',
+ 'variety',
+ 'teachers',
+ 'martin',
+ 'manual',
+ 'block',
+ 'subjects',
+ 'agents',
+ 'repair',
+ 'civil',
+ 'steel',
+ 'songs',
+ 'fixed',
+ 'wrong',
+ 'hands',
+ 'finally',
+ 'updates',
+ 'desktop',
+ 'classes',
+ 'paris',
+ 'sector',
+ 'capacity',
+ 'requires',
+ 'jersey',
+ 'fully',
+ 'father',
+ 'electric',
+ 'quotes',
+ 'officer',
+ 'driver',
+ 'respect',
+ 'unknown',
+ 'worth',
+ 'teacher',
+ 'workers',
+ 'georgia',
+ 'peace',
+ 'campus',
+ 'showing',
+ 'creative',
+ 'coast',
+ 'benefit',
+ 'progress',
+ 'funding',
+ 'devices',
+ 'grant',
+ 'agree',
+ 'fiction',
+ 'watches',
+ 'careers',
+ 'beyond',
+ 'families',
+ 'museum',
+ 'blogs',
+ 'accepted',
+ 'former',
+ 'complex',
+ 'agencies',
+ 'parent',
+ 'spanish',
+ 'michigan',
+ 'columbia',
+ 'setting',
+ 'scale',
+ 'stand',
+ 'economy',
+ 'highest',
+ 'helpful',
+ 'monthly',
+ 'critical',
+ 'frame',
+ 'musical',
+ 'angeles',
+ 'employee',
+ 'chief',
+ 'gives',
+ 'bottom',
+ 'packages',
+ 'detail',
+ 'changed',
+ 'heard',
+ 'begin',
+ 'colorado',
+ 'royal',
+ 'clean',
+ 'switch',
+ 'russian',
+ 'largest',
+ 'african',
+ 'titles',
+ 'relevant',
+ 'justice',
+ 'connect',
+ 'bible',
+ 'basket',
+ 'applied',
+ 'weekly',
+ 'demand',
+ 'suite',
+ 'vegas',
+ 'square',
+ 'chris',
+ 'advance',
+ 'auction',
+ 'allowed',
+ 'correct',
+ 'charles',
+ 'nation',
+ 'selling',
+ 'piece',
+ 'sheet',
+ 'seven',
+ 'older',
+ 'illinois',
+ 'elements',
+ 'species',
+ 'cells',
+ 'module',
+ 'resort',
+ 'facility',
+ 'random',
+ 'pricing',
+ 'minister',
+ 'motion',
+ 'looks',
+ 'fashion',
+ 'visitors',
+ 'monitor',
+ 'trading',
+ 'forest',
+ 'calls',
+ 'whose',
+ 'coverage',
+ 'couple',
+ 'giving',
+ 'chance',
+ 'vision',
+ 'ending',
+ 'clients',
+ 'actions',
+ 'listen',
+ 'discuss',
+ 'accept',
+ 'naked',
+ 'clinical',
+ 'sciences',
+ 'markets',
+ 'lowest',
+ 'highly',
+ 'appear',
+ 'lives',
+ 'currency',
+ 'leather',
+ 'patient',
+ 'actual',
+ 'stone',
+ 'commerce',
+ 'perhaps',
+ 'persons',
+ 'tests',
+ 'village',
+ 'accounts',
+ 'amateur',
+ 'factors',
+ 'coffee',
+ 'settings',
+ 'buyer',
+ 'cultural',
+ 'steve',
+ 'easily',
+ 'poster',
+ 'closed',
+ 'holidays',
+ 'zealand',
+ 'balance',
+ 'graduate',
+ 'replies',
+ 'initial',
+ 'label',
+ 'thinking',
+ 'scott',
+ 'canon',
+ 'league',
+ 'waste',
+ 'minute',
+ 'provider',
+ 'optional',
+ 'sections',
+ 'chair',
+ 'fishing',
+ 'effort',
+ 'phase',
+ 'fields',
+ 'fantasy',
+ 'letters',
+ 'motor',
+ 'context',
+ 'install',
+ 'shirt',
+ 'apparel',
+ 'crime',
+ 'count',
+ 'breast',
+ 'johnson',
+ 'quickly',
+ 'dollars',
+ 'websites',
+ 'religion',
+ 'claim',
+ 'driving',
+ 'surgery',
+ 'patch',
+ 'measures',
+ 'kansas',
+ 'chemical',
+ 'doctor',
+ 'reduce',
+ 'brought',
+ 'himself',
+ 'enable',
+ 'exercise',
+ 'santa',
+ 'leader',
+ 'diamond',
+ 'israel',
+ 'servers',
+ 'alone',
+ 'meetings',
+ 'seconds',
+ 'jones',
+ 'arizona',
+ 'keyword',
+ 'flight',
+ 'congress',
+ 'username',
+ 'produced',
+ 'italian',
+ 'pocket',
+ 'saint',
+ 'freedom',
+ 'argument',
+ 'creating',
+ 'drugs',
+ 'joint',
+ 'premium',
+ 'fresh',
+ 'attorney',
+ 'upgrade',
+ 'factor',
+ 'growing',
+ 'stream',
+ 'hearing',
+ 'eastern',
+ 'auctions',
+ 'therapy',
+ 'entries',
+ 'dates',
+ 'signed',
+ 'upper',
+ 'serious',
+ 'prime',
+ 'samsung',
+ 'limit',
+ 'began',
+ 'louis',
+ 'steps',
+ 'errors',
+ 'shops',
+ 'efforts',
+ 'informed',
+ 'thoughts',
+ 'creek',
+ 'worked',
+ 'quantity',
+ 'urban',
+ 'sorted',
+ 'myself',
+ 'tours',
+ 'platform',
+ 'labor',
+ 'admin',
+ 'nursing',
+ 'defense',
+ 'machines',
+ 'heavy',
+ 'covered',
+ 'recovery',
+ 'merchant',
+ 'expert',
+ 'protect',
+ 'solid',
+ 'became',
+ 'orange',
+ 'vehicles',
+ 'prevent',
+ 'theme',
+ 'campaign',
+ 'marine',
+ 'guitar',
+ 'finding',
+ 'examples',
+ 'saying',
+ 'spirit',
+ 'claims',
+ 'motorola',
+ 'affairs',
+ 'touch',
+ 'intended',
+ 'towards',
+ 'goals',
+ 'election',
+ 'suggest',
+ 'branch',
+ 'charges',
+ 'serve',
+ 'reasons',
+ 'magic',
+ 'mount',
+ 'smart',
+ 'talking',
+ 'latin',
+ 'avoid',
+ 'manage',
+ 'corner',
+ 'oregon',
+ 'element',
+ 'birth',
+ 'virus',
+ 'abuse',
+ 'requests',
+ 'separate',
+ 'quarter',
+ 'tables',
+ 'define',
+ 'racing',
+ 'facts',
+ 'column',
+ 'plants',
+ 'faith',
+ 'chain',
+ 'identify',
+ 'avenue',
+ 'missing',
+ 'domestic',
+ 'sitemap',
+ 'moved',
+ 'houston',
+ 'reach',
+ 'mental',
+ 'viewed',
+ 'moment',
+ 'extended',
+ 'sequence',
+ 'attack',
+ 'sorry',
+ 'centers',
+ 'opening',
+ 'damage',
+ 'reserve',
+ 'recipes',
+ 'gamma',
+ 'plastic',
+ 'produce',
+ 'placed',
+ 'truth',
+ 'counter',
+ 'failure',
+ 'follows',
+ 'weekend',
+ 'dollar',
+ 'ontario',
+ 'films',
+ 'bridge',
+ 'native',
+ 'williams',
+ 'movement',
+ 'printing',
+ 'baseball',
+ 'owned',
+ 'approval',
+ 'draft',
+ 'chart',
+ 'played',
+ 'contacts',
+ 'jesus',
+ 'readers',
+ 'clubs',
+ 'jackson',
+ 'equal',
+ 'matching',
+ 'offering',
+ 'shirts',
+ 'profit',
+ 'leaders',
+ 'posters',
+ 'variable',
+ 'expect',
+ 'parking',
+ 'compared',
+ 'workshop',
+ 'russia',
+ 'codes',
+ 'kinds',
+ 'seattle',
+ 'golden',
+ 'teams',
+ 'lighting',
+ 'senate',
+ 'forces',
+ 'funny',
+ 'brother',
+ 'turned',
+ 'portable',
+ 'tried',
+ 'returned',
+ 'pattern',
+ 'named',
+ 'theatre',
+ 'laser',
+ 'earlier',
+ 'sponsor',
+ 'warranty',
+ 'indiana',
+ 'harry',
+ 'objects',
+ 'delete',
+ 'evening',
+ 'assembly',
+ 'nuclear',
+ 'taxes',
+ 'mouse',
+ 'signal',
+ 'criminal',
+ 'issued',
+ 'brain',
+ 'sexual',
+ 'powerful',
+ 'dream',
+ 'obtained',
+ 'false',
+ 'flower',
+ 'passed',
+ 'supplied',
+ 'falls',
+ 'opinions',
+ 'promote',
+ 'stated',
+ 'stats',
+ 'hawaii',
+ 'appears',
+ 'carry',
+ 'decided',
+ 'covers',
+ 'hello',
+ 'designs',
+ 'maintain',
+ 'tourism',
+ 'priority',
+ 'adults',
+ 'clips',
+ 'savings',
+ 'graphic',
+ 'payments',
+ 'binding',
+ 'brief',
+ 'ended',
+ 'winning',
+ 'eight',
+ 'straight',
+ 'script',
+ 'served',
+ 'wants',
+ 'prepared',
+ 'dining',
+ 'alert',
+ 'atlanta',
+ 'dakota',
+ 'queen',
+ 'credits',
+ 'clearly',
+ 'handle',
+ 'sweet',
+ 'criteria',
+ 'pubmed',
+ 'diego',
+ 'truck',
+ 'behavior',
+ 'enlarge',
+ 'revenue',
+ 'measure',
+ 'changing',
+ 'votes',
+ 'looked',
+ 'festival',
+ 'ocean',
+ 'flights',
+ 'experts',
+ 'signs',
+ 'depth',
+ 'whatever',
+ 'logged',
+ 'laptop',
+ 'vintage',
+ 'train',
+ 'exactly',
+ 'explore',
+ 'maryland',
+ 'concept',
+ 'nearly',
+ 'eligible',
+ 'checkout',
+ 'reality',
+ 'forgot',
+ 'handling',
+ 'origin',
+ 'gaming',
+ 'feeds',
+ 'billion',
+ 'scotland',
+ 'faster',
+ 'dallas',
+ 'bought',
+ 'nations',
+ 'route',
+ 'followed',
+ 'broken',
+ 'frank',
+ 'alaska',
+ 'battle',
+ 'anime',
+ 'speak',
+ 'protocol',
+ 'query',
+ 'equity',
+ 'speech',
+ 'rural',
+ 'shared',
+ 'sounds',
+ 'judge',
+ 'bytes',
+ 'forced',
+ 'fight',
+ 'height',
+ 'speaker',
+ 'filed',
+ 'obtain',
+ 'offices',
+ 'designer',
+ 'remain',
+ 'managed',
+ 'failed',
+ 'marriage',
+ 'korea',
+ 'banks',
+ 'secret',
+ 'kelly',
+ 'leads',
+ 'negative',
+ 'austin',
+ 'toronto',
+ 'theater',
+ 'springs',
+ 'missouri',
+ 'andrew',
+ 'perform',
+ 'healthy',
+ 'assets',
+ 'injury',
+ 'joseph',
+ 'ministry',
+ 'drivers',
+ 'lawyer',
+ 'figures',
+ 'married',
+ 'proposal',
+ 'sharing',
+ 'portal',
+ 'waiting',
+ 'birthday',
+ 'gratis',
+ 'banking',
+ 'brian',
+ 'toward',
+ 'slightly',
+ 'assist',
+ 'conduct',
+ 'lingerie',
+ 'calling',
+ 'serving',
+ 'profiles',
+ 'miami',
+ 'comics',
+ 'matters',
+ 'houses',
+ 'postal',
+ 'controls',
+ 'breaking',
+ 'combined',
+ 'ultimate',
+ 'wales',
+ 'minor',
+ 'finish',
+ 'noted',
+ 'reduced',
+ 'physics',
+ 'spent',
+ 'extreme',
+ 'samples',
+ 'davis',
+ 'daniel',
+ 'reviewed',
+ 'forecast',
+ 'removed',
+ 'helps',
+ 'singles',
+ 'cycle',
+ 'amounts',
+ 'contain',
+ 'accuracy',
+ 'sleep',
+ 'pharmacy',
+ 'brazil',
+ 'creation',
+ 'static',
+ 'scene',
+ 'hunter',
+ 'crystal',
+ 'famous',
+ 'writer',
+ 'chairman',
+ 'violence',
+ 'oklahoma',
+ 'speakers',
+ 'drink',
+ 'academy',
+ 'dynamic',
+ 'gender',
+ 'cleaning',
+ 'concerns',
+ 'vendor',
+ 'intel',
+ 'officers',
+ 'referred',
+ 'supports',
+ 'regions',
+ 'junior',
+ 'rings',
+ 'meaning',
+ 'ladies',
+ 'henry',
+ 'ticket',
+ 'guess',
+ 'agreed',
+ 'soccer',
+ 'import',
+ 'posting',
+ 'presence',
+ 'instant',
+ 'viewing',
+ 'majority',
+ 'christ',
+ 'aspects',
+ 'austria',
+ 'ahead',
+ 'scheme',
+ 'utility',
+ 'preview',
+ 'manner',
+ 'matrix',
+ 'devel',
+ 'despite',
+ 'strength',
+ 'turkey',
+ 'proper',
+ 'degrees',
+ 'delta',
+ 'seeking',
+ 'inches',
+ 'phoenix',
+ 'shares',
+ 'daughter',
+ 'standing',
+ 'comfort',
+ 'colors',
+ 'cisco',
+ 'ordering',
+ 'alpha',
+ 'appeal',
+ 'cruise',
+ 'bonus',
+ 'bookmark',
+ 'specials',
+ 'disney',
+ 'adobe',
+ 'smoking',
+ 'becomes',
+ 'drives',
+ 'alabama',
+ 'improved',
+ 'trees',
+ 'achieve',
+ 'dress',
+ 'dealer',
+ 'nearby',
+ 'carried',
+ 'happen',
+ 'exposure',
+ 'gambling',
+ 'refer',
+ 'miller',
+ 'outdoors',
+ 'clothes',
+ 'caused',
+ 'luxury',
+ 'babes',
+ 'frames',
+ 'indeed',
+ 'circuit',
+ 'layer',
+ 'printed',
+ 'removal',
+ 'easier',
+ 'printers',
+ 'adding',
+ 'kentucky',
+ 'mostly',
+ 'taylor',
+ 'prints',
+ 'spend',
+ 'factory',
+ 'interior',
+ 'revised',
+ 'optical',
+ 'relative',
+ 'amazing',
+ 'clock',
+ 'identity',
+ 'suites',
+ 'feeling',
+ 'hidden',
+ 'victoria',
+ 'serial',
+ 'relief',
+ 'revision',
+ 'ratio',
+ 'planet',
+ 'copies',
+ 'recipe',
+ 'permit',
+ 'seeing',
+ 'proof',
+ 'tennis',
+ 'bedroom',
+ 'empty',
+ 'instance',
+ 'licensed',
+ 'orlando',
+ 'bureau',
+ 'maine',
+ 'ideal',
+ 'specs',
+ 'recorded',
+ 'pieces',
+ 'finished',
+ 'parks',
+ 'dinner',
+ 'lawyers',
+ 'sydney',
+ 'stress',
+ 'cream',
+ 'trends',
+ 'discover',
+ 'patterns',
+ 'boxes',
+ 'hills',
+ 'fourth',
+ 'advisor',
+ 'aware',
+ 'wilson',
+ 'shape',
+ 'irish',
+ 'stations',
+ 'remains',
+ 'greatest',
+ 'firms',
+ 'operator',
+ 'generic',
+ 'usage',
+ 'charts',
+ 'mixed',
+ 'census',
+ 'exist',
+ 'wheel',
+ 'transit',
+ 'compact',
+ 'poetry',
+ 'lights',
+ 'tracking',
+ 'angel',
+ 'keeping',
+ 'attempt',
+ 'matches',
+ 'width',
+ 'noise',
+ 'engines',
+ 'forget',
+ 'array',
+ 'accurate',
+ 'stephen',
+ 'climate',
+ 'alcohol',
+ 'greek',
+ 'managing',
+ 'sister',
+ 'walking',
+ 'explain',
+ 'smaller',
+ 'newest',
+ 'happened',
+ 'extent',
+ 'sharp',
+ 'lesbians',
+ 'export',
+ 'managers',
+ 'aircraft',
+ 'modules',
+ 'sweden',
+ 'conflict',
+ 'versions',
+ 'employer',
+ 'occur',
+ 'knows',
+ 'describe',
+ 'concern',
+ 'backup',
+ 'citizens',
+ 'heritage',
+ 'holding',
+ 'trouble',
+ 'spread',
+ 'coach',
+ 'kevin',
+ 'expand',
+ 'audience',
+ 'assigned',
+ 'jordan',
+ 'affect',
+ 'virgin',
+ 'raised',
+ 'directed',
+ 'dealers',
+ 'sporting',
+ 'helping',
+ 'affected',
+ 'totally',
+ 'plate',
+ 'expenses',
+ 'indicate',
+ 'blonde',
+ 'anderson',
+ 'organic',
+ 'albums',
+ 'cheats',
+ 'guests',
+ 'hosted',
+ 'diseases',
+ 'nevada',
+ 'thailand',
+ 'agenda',
+ 'anyway',
+ 'tracks',
+ 'advisory',
+ 'logic',
+ 'template',
+ 'prince',
+ 'circle',
+ 'grants',
+ 'anywhere',
+ 'atlantic',
+ 'edward',
+ 'investor',
+ 'leaving',
+ 'wildlife',
+ 'cooking',
+ 'speaking',
+ 'sponsors',
+ 'respond',
+ 'sizes',
+ 'plain',
+ 'entered',
+ 'launch',
+ 'checking',
+ 'costa',
+ 'belgium',
+ 'guidance',
+ 'trail',
+ 'symbol',
+ 'crafts',
+ 'highway',
+ 'buddy',
+ 'observed',
+ 'setup',
+ 'booking',
+ 'glossary',
+ 'fiscal',
+ 'styles',
+ 'denver',
+ 'filled',
+ 'channels',
+ 'ericsson',
+ 'appendix',
+ 'notify',
+ 'blues',
+ 'portion',
+ 'scope',
+ 'supplier',
+ 'cables',
+ 'cotton',
+ 'biology',
+ 'dental',
+ 'killed',
+ 'border',
+ 'ancient',
+ 'debate',
+ 'starts',
+ 'causes',
+ 'arkansas',
+ 'leisure',
+ 'learned',
+ 'notebook',
+ 'explorer',
+ 'historic',
+ 'attached',
+ 'opened',
+ 'husband',
+ 'disabled',
+ 'crazy',
+ 'upcoming',
+ 'britain',
+ 'concert',
+ 'scores',
+ 'comedy',
+ 'adopted',
+ 'weblog',
+ 'linear',
+ 'bears',
+ 'carrier',
+ 'edited',
+ 'constant',
+ 'mouth',
+ 'jewish',
+ 'meter',
+ 'linked',
+ 'portland',
+ 'concepts',
+ 'reflect',
+ 'deliver',
+ 'wonder',
+ 'lessons',
+ 'fruit',
+ 'begins',
+ 'reform',
+ 'alerts',
+ 'treated',
+ 'mysql',
+ 'relating',
+ 'assume',
+ 'alliance',
+ 'confirm',
+ 'neither',
+ 'lewis',
+ 'howard',
+ 'offline',
+ 'leaves',
+ 'engineer',
+ 'replace',
+ 'checks',
+ 'reached',
+ 'becoming',
+ 'safari',
+ 'sugar',
+ 'stick',
+ 'allen',
+ 'relation',
+ 'enabled',
+ 'genre',
+ 'slide',
+ 'montana',
+ 'tested',
+ 'enhance',
+ 'exact',
+ 'bound',
+ 'adapter',
+ 'formal',
+ 'hockey',
+ 'storm',
+ 'micro',
+ 'colleges',
+ 'laptops',
+ 'showed',
+ 'editors',
+ 'threads',
+ 'supreme',
+ 'brothers',
+ 'presents',
+ 'dolls',
+ 'estimate',
+ 'cancel',
+ 'limits',
+ 'weapons',
+ 'paint',
+ 'delay',
+ 'pilot',
+ 'outlet',
+ 'czech',
+ 'novel',
+ 'ultra',
+ 'winner',
+ 'idaho',
+ 'episode',
+ 'potter',
+ 'plays',
+ 'bulletin',
+ 'modify',
+ 'oxford',
+ 'truly',
+ 'epinions',
+ 'painting',
+ 'universe',
+ 'patent',
+ 'eating',
+ 'planned',
+ 'watching',
+ 'lodge',
+ 'mirror',
+ 'sterling',
+ 'sessions',
+ 'kernel',
+ 'stocks',
+ 'buyers',
+ 'journals',
+ 'jennifer',
+ 'antonio',
+ 'charged',
+ 'broad',
+ 'taiwan',
+ 'chosen',
+ 'greece',
+ 'swiss',
+ 'sarah',
+ 'clark',
+ 'terminal',
+ 'nights',
+ 'behalf',
+ 'liquid',
+ 'nebraska',
+ 'salary',
+ 'foods',
+ 'gourmet',
+ 'guard',
+ 'properly',
+ 'orleans',
+ 'saving',
+ 'empire',
+ 'resume',
+ 'twenty',
+ 'newly',
+ 'raise',
+ 'prepare',
+ 'avatar',
+ 'illegal',
+ 'hundreds',
+ 'lincoln',
+ 'helped',
+ 'premier',
+ 'tomorrow',
+ 'decide',
+ 'consent',
+ 'drama',
+ 'visiting',
+ 'downtown',
+ 'keyboard',
+ 'contest',
+ 'bands',
+ 'suitable',
+ 'millions',
+ 'lunch',
+ 'audit',
+ 'chamber',
+ 'guinea',
+ 'findings',
+ 'muscle',
+ 'clicking',
+ 'polls',
+ 'typical',
+ 'tower',
+ 'yours',
+ 'chicken',
+ 'attend',
+ 'shower',
+ 'sending',
+ 'jason',
+ 'tonight',
+ 'holdem',
+ 'shell',
+ 'province',
+ 'catholic',
+ 'governor',
+ 'seemed',
+ 'swimming',
+ 'spyware',
+ 'formula',
+ 'solar',
+ 'catch',
+ 'pakistan',
+ 'reliable',
+ 'doubt',
+ 'finder',
+ 'unable',
+ 'periods',
+ 'tasks',
+ 'attacks',
+ 'const',
+ 'doors',
+ 'symptoms',
+ 'resorts',
+ 'biggest',
+ 'memorial',
+ 'visitor',
+ 'forth',
+ 'insert',
+ 'gateway',
+ 'alumni',
+ 'drawing',
+ 'ordered',
+ 'fighting',
+ 'happens',
+ 'romance',
+ 'bruce',
+ 'split',
+ 'themes',
+ 'powers',
+ 'heaven',
+ 'pregnant',
+ 'twice',
+ 'focused',
+ 'egypt',
+ 'bargain',
+ 'cellular',
+ 'norway',
+ 'vermont',
+ 'asking',
+ 'blocks',
+ 'normally',
+ 'hunting',
+ 'diabetes',
+ 'shift',
+ 'bodies',
+ 'cutting',
+ 'simon',
+ 'writers',
+ 'marks',
+ 'flexible',
+ 'loved',
+ 'mapping',
+ 'numerous',
+ 'birds',
+ 'indexed',
+ 'superior',
+ 'saved',
+ 'paying',
+ 'cartoon',
+ 'shots',
+ 'moore',
+ 'granted',
+ 'choices',
+ 'carbon',
+ 'spending',
+ 'magnetic',
+ 'registry',
+ 'crisis',
+ 'outlook',
+ 'massive',
+ 'denmark',
+ 'employed',
+ 'bright',
+ 'treat',
+ 'header',
+ 'poverty',
+ 'formed',
+ 'piano',
+ 'sheets',
+ 'patrick',
+ 'puerto',
+ 'displays',
+ 'plasma',
+ 'allowing',
+ 'earnings',
+ 'mystery',
+ 'journey',
+ 'delaware',
+ 'bidding',
+ 'risks',
+ 'banner',
+ 'charter',
+ 'barbara',
+ 'counties',
+ 'ports',
+ 'dreams',
+ 'blogger',
+ 'stands',
+ 'teach',
+ 'occurred',
+ 'rapid',
+ 'hairy',
+ 'reverse',
+ 'deposit',
+ 'seminar',
+ 'latina',
+ 'wheels',
+ 'specify',
+ 'dutch',
+ 'formats',
+ 'depends',
+ 'boots',
+ 'holds',
+ 'router',
+ 'concrete',
+ 'editing',
+ 'poland',
+ 'folder',
+ 'womens',
+ 'upload',
+ 'pulse',
+ 'voting',
+ 'courts',
+ 'notices',
+ 'detroit',
+ 'metro',
+ 'toshiba',
+ 'strip',
+ 'pearl',
+ 'accident',
+ 'resident',
+ 'possibly',
+ 'airline',
+ 'regard',
+ 'exists',
+ 'smooth',
+ 'strike',
+ 'flashing',
+ 'narrow',
+ 'threat',
+ 'surveys',
+ 'sitting',
+ 'putting',
+ 'vietnam',
+ 'trailer',
+ 'castle',
+ 'gardens',
+ 'missed',
+ 'malaysia',
+ 'antique',
+ 'labels',
+ 'willing',
+ 'acting',
+ 'heads',
+ 'stored',
+ 'logos',
+ 'antiques',
+ 'density',
+ 'hundred',
+ 'strange',
+ 'mention',
+ 'parallel',
+ 'honda',
+ 'amended',
+ 'operate',
+ 'bills',
+ 'bathroom',
+ 'stable',
+ 'opera',
+ 'doctors',
+ 'lesson',
+ 'cinema',
+ 'asset',
+ 'drinking',
+ 'reaction',
+ 'blank',
+ 'enhanced',
+ 'entitled',
+ 'severe',
+ 'generate',
+ 'deluxe',
+ 'humor',
+ 'monitors',
+ 'lived',
+ 'duration',
+ 'pursuant',
+ 'fabric',
+ 'visits',
+ 'tight',
+ 'domains',
+ 'contrast',
+ 'flying',
+ 'berlin',
+ 'siemens',
+ 'adoption',
+ 'meant',
+ 'capture',
+ 'pounds',
+ 'buffalo',
+ 'plane',
+ 'desire',
+ 'camping',
+ 'meets',
+ 'welfare',
+ 'caught',
+ 'marked',
+ 'driven',
+ 'measured',
+ 'medline',
+ 'bottle',
+ 'marshall',
+ 'massage',
+ 'rubber',
+ 'closing',
+ 'tampa',
+ 'thousand',
+ 'legend',
+ 'grace',
+ 'susan',
+ 'adams',
+ 'python',
+ 'monster',
+ 'villa',
+ 'columns',
+ 'hamilton',
+ 'cookies',
+ 'inner',
+ 'tutorial',
+ 'entity',
+ 'cruises',
+ 'holder',
+ 'portugal',
+ 'lawrence',
+ 'roman',
+ 'duties',
+ 'valuable',
+ 'ethics',
+ 'forever',
+ 'dragon',
+ 'captain',
+ 'imagine',
+ 'brings',
+ 'heating',
+ 'scripts',
+ 'stereo',
+ 'taste',
+ 'dealing',
+ 'commit',
+ 'airlines',
+ 'liberal',
+ 'livecam',
+ 'trips',
+ 'sides',
+ 'turns',
+ 'cache',
+ 'jacket',
+ 'oracle',
+ 'matthew',
+ 'lease',
+ 'aviation',
+ 'hobbies',
+ 'proud',
+ 'excess',
+ 'disaster',
+ 'console',
+ 'commands',
+ 'giant',
+ 'achieved',
+ 'injuries',
+ 'shipped',
+ 'seats',
+ 'alarm',
+ 'voltage',
+ 'anthony',
+ 'nintendo',
+ 'usual',
+ 'loading',
+ 'stamps',
+ 'appeared',
+ 'franklin',
+ 'angle',
+ 'vinyl',
+ 'mining',
+ 'ongoing',
+ 'worst',
+ 'imaging',
+ 'betting',
+ 'liberty',
+ 'wyoming',
+ 'convert',
+ 'analyst',
+ 'garage',
+ 'exciting',
+ 'thongs',
+ 'ringtone',
+ 'finland',
+ 'morgan',
+ 'derived',
+ 'pleasure',
+ 'honor',
+ 'oriented',
+ 'eagle',
+ 'desktops',
+ 'pants',
+ 'columbus',
+ 'nurse',
+ 'prayer',
+ 'quiet',
+ 'postage',
+ 'producer',
+ 'cheese',
+ 'comic',
+ 'crown',
+ 'maker',
+ 'crack',
+ 'picks',
+ 'semester',
+ 'fetish',
+ 'applies',
+ 'casinos',
+ 'smoke',
+ 'apache',
+ 'filters',
+ 'craft',
+ 'apart',
+ 'fellow',
+ 'blind',
+ 'lounge',
+ 'coins',
+ 'gross',
+ 'strongly',
+ 'hilton',
+ 'proteins',
+ 'horror',
+ 'familiar',
+ 'capable',
+ 'douglas',
+ 'debian',
+ 'epson',
+ 'elected',
+ 'carrying',
+ 'victory',
+ 'madison',
+ 'editions',
+ 'mainly',
+ 'ethnic',
+ 'actor',
+ 'finds',
+ 'fifth',
+ 'citizen',
+ 'vertical',
+ 'prize',
+ 'occurs',
+ 'absolute',
+ 'consists',
+ 'anytime',
+ 'soldiers',
+ 'guardian',
+ 'lecture',
+ 'layout',
+ 'classics',
+ 'horses',
+ 'dirty',
+ 'wayne',
+ 'donate',
+ 'taught',
+ 'worker',
+ 'alive',
+ 'temple',
+ 'prove',
+ 'wings',
+ 'breaks',
+ 'genetic',
+ 'waters',
+ 'promise',
+ 'prefer',
+ 'ridge',
+ 'cabinet',
+ 'modem',
+ 'harris',
+ 'bringing',
+ 'evaluate',
+ 'tiffany',
+ 'tropical',
+ 'collect',
+ 'toyota',
+ 'streets',
+ 'vector',
+ 'shaved',
+ 'turning',
+ 'buffer',
+ 'purple',
+ 'larry',
+ 'mutual',
+ 'pipeline',
+ 'syntax',
+ 'prison',
+ 'skill',
+ 'chairs',
+ 'everyday',
+ 'moves',
+ 'inquiry',
+ 'ethernet',
+ 'checked',
+ 'exhibit',
+ 'throw',
+ 'trend',
+ 'sierra',
+ 'visible',
+ 'desert',
+ 'oldest',
+ 'rhode',
+ 'mercury',
+ 'steven',
+ 'handbook',
+ 'navigate',
+ 'worse',
+ 'summit',
+ 'victims',
+ 'spaces',
+ 'burning',
+ 'escape',
+ 'coupons',
+ 'somewhat',
+ 'receiver',
+ 'cialis',
+ 'boats',
+ 'glance',
+ 'scottish',
+ 'arcade',
+ 'richmond',
+ 'russell',
+ 'tells',
+ 'obvious',
+ 'fiber',
+ 'graph',
+ 'covering',
+ 'platinum',
+ 'judgment',
+ 'bedrooms',
+ 'talks',
+ 'filing',
+ 'foster',
+ 'modeling',
+ 'passing',
+ 'awarded',
+ 'trials',
+ 'tissue',
+ 'clinton',
+ 'masters',
+ 'bonds',
+ 'alberta',
+ 'commons',
+ 'fraud',
+ 'spectrum',
+ 'arrival',
+ 'pottery',
+ 'emphasis',
+ 'roger',
+ 'aspect',
+ 'awesome',
+ 'mexican',
+ 'counts',
+ 'priced',
+ 'crash',
+ 'desired',
+ 'inter',
+ 'closer',
+ 'assumes',
+ 'heights',
+ 'shadow',
+ 'riding',
+ 'firefox',
+ 'expense',
+ 'grove',
+ 'venture',
+ 'clinic',
+ 'korean',
+ 'healing',
+ 'princess',
+ 'entering',
+ 'packet',
+ 'spray',
+ 'studios',
+ 'buttons',
+ 'funded',
+ 'thompson',
+ 'winners',
+ 'extend',
+ 'roads',
+ 'dublin',
+ 'rolling',
+ 'memories',
+ 'nelson',
+ 'arrived',
+ 'creates',
+ 'faces',
+ 'tourist',
+ 'mayor',
+ 'murder',
+ 'adequate',
+ 'senator',
+ 'yield',
+ 'grades',
+ 'cartoons',
+ 'digest',
+ 'lodging',
+ 'hence',
+ 'entirely',
+ 'replaced',
+ 'radar',
+ 'rescue',
+ 'losses',
+ 'combat',
+ 'reducing',
+ 'stopped',
+ 'lakes',
+ 'closely',
+ 'diary',
+ 'kings',
+ 'shooting',
+ 'flags',
+ 'baker',
+ 'launched',
+ 'shock',
+ 'walls',
+ 'abroad',
+ 'ebony',
+ 'drawn',
+ 'arthur',
+ 'visited',
+ 'walker',
+ 'suggests',
+ 'beast',
+ 'operated',
+ 'targets',
+ 'overseas',
+ 'dodge',
+ 'counsel',
+ 'pizza',
+ 'invited',
+ 'yards',
+ 'gordon',
+ 'farmers',
+ 'queries',
+ 'ukraine',
+ 'absence',
+ 'nearest',
+ 'cluster',
+ 'vendors',
+ 'whereas',
+ 'serves',
+ 'woods',
+ 'surprise',
+ 'partial',
+ 'shoppers',
+ 'couples',
+ 'ranking',
+ 'jokes',
+ 'simpson',
+ 'twiki',
+ 'sublime',
+ 'palace',
+ 'verify',
+ 'globe',
+ 'trusted',
+ 'copper',
+ 'dicke',
+ 'kerry',
+ 'receipt',
+ 'supposed',
+ 'ordinary',
+ 'nobody',
+ 'ghost',
+ 'applying',
+ 'pride',
+ 'knowing',
+ 'reporter',
+ 'keith',
+ 'champion',
+ 'cloudy',
+ 'linda',
+ 'chile',
+ 'plenty',
+ 'sentence',
+ 'throat',
+ 'ignore',
+ 'maria',
+ 'uniform',
+ 'wealth',
+ 'vacuum',
+ 'dancing',
+ 'brass',
+ 'writes',
+ 'plaza',
+ 'outcomes',
+ 'survival',
+ 'quest',
+ 'publish',
+ 'trans',
+ 'jonathan',
+ 'whenever',
+ 'lifetime',
+ 'pioneer',
+ 'booty',
+ 'acrobat',
+ 'plates',
+ 'acres',
+ 'venue',
+ 'athletic',
+ 'thermal',
+ 'essays',
+ 'vital',
+ 'telling',
+ 'fairly',
+ 'coastal',
+ 'config',
+ 'charity',
+ 'excel',
+ 'modes',
+ 'campbell',
+ 'stupid',
+ 'harbor',
+ 'hungary',
+ 'traveler',
+ 'segment',
+ 'realize',
+ 'enemy',
+ 'puzzle',
+ 'rising',
+ 'aluminum',
+ 'wells',
+ 'wishlist',
+ 'opens',
+ 'insight',
+ 'secrets',
+ 'lucky',
+ 'latter',
+ 'thick',
+ 'trailers',
+ 'repeat',
+ 'syndrome',
+ 'philips',
+ 'penalty',
+ 'glasses',
+ 'enables',
+ 'iraqi',
+ 'builder',
+ 'vista',
+ 'jessica',
+ 'chips',
+ 'terry',
+ 'flood',
+ 'arena',
+ 'pupils',
+ 'stewart',
+ 'outcome',
+ 'expanded',
+ 'casual',
+ 'grown',
+ 'polish',
+ 'lovely',
+ 'extras',
+ 'centres',
+ 'jerry',
+ 'clause',
+ 'smile',
+ 'lands',
+ 'troops',
+ 'indoor',
+ 'bulgaria',
+ 'armed',
+ 'broker',
+ 'charger',
+ 'believed',
+ 'cooling',
+ 'trucks',
+ 'divorce',
+ 'laura',
+ 'shopper',
+ 'tokyo',
+ 'partly',
+ 'nikon',
+ 'candy',
+ 'pills',
+ 'tiger',
+ 'donald',
+ 'folks',
+ 'sensor',
+ 'exposed',
+ 'telecom',
+ 'angels',
+ 'deputy',
+ 'sealed',
+ 'loaded',
+ 'scenes',
+ 'boost',
+ 'spanking',
+ 'founded',
+ 'chronic',
+ 'icons',
+ 'moral',
+ 'catering',
+ 'finger',
+ 'keeps',
+ 'pound',
+ 'locate',
+ 'trained',
+ 'roses',
+ 'bread',
+ 'tobacco',
+ 'wooden',
+ 'motors',
+ 'tough',
+ 'roberts',
+ 'incident',
+ 'gonna',
+ 'dynamics',
+ 'decrease',
+ 'chest',
+ 'pension',
+ 'billy',
+ 'revenues',
+ 'emerging',
+ 'worship',
+ 'craig',
+ 'herself',
+ 'churches',
+ 'damages',
+ 'reserves',
+ 'solve',
+ 'shorts',
+ 'minority',
+ 'diverse',
+ 'johnny',
+ 'recorder',
+ 'facing',
+ 'nancy',
+ 'tones',
+ 'passion',
+ 'sight',
+ 'defence',
+ 'patches',
+ 'refund',
+ 'towns',
+ 'trembl',
+ 'divided',
+ 'emails',
+ 'cyprus',
+ 'insider',
+ 'seminars',
+ 'makers',
+ 'hearts',
+ 'worry',
+ 'carter',
+ 'legacy',
+ 'pleased',
+ 'danger',
+ 'vitamin',
+ 'widely',
+ 'phrase',
+ 'genuine',
+ 'raising',
+ 'paradise',
+ 'hybrid',
+ 'reads',
+ 'roles',
+ 'glory',
+ 'bigger',
+ 'billing',
+ 'diesel',
+ 'versus',
+ 'combine',
+ 'exceed',
+ 'saudi',
+ 'fault',
+ 'babies',
+ 'karen',
+ 'compiled',
+ 'romantic',
+ 'revealed',
+ 'albert',
+ 'examine',
+ 'jimmy',
+ 'graham',
+ 'bristol',
+ 'margaret',
+ 'compaq',
+ 'slowly',
+ 'rugby',
+ 'portions',
+ 'infant',
+ 'sectors',
+ 'samuel',
+ 'fluid',
+ 'grounds',
+ 'regards',
+ 'unlike',
+ 'equation',
+ 'baskets',
+ 'wright',
+ 'barry',
+ 'proven',
+ 'cached',
+ 'warren',
+ 'studied',
+ 'reviewer',
+ 'involves',
+ 'profits',
+ 'devil',
+ 'grass',
+ 'comply',
+ 'marie',
+ 'florist',
+ 'cherry',
+ 'deutsch',
+ 'kenya',
+ 'webcam',
+ 'funeral',
+ 'nutten',
+ 'earrings',
+ 'enjoyed',
+ 'chapters',
+ 'charlie',
+ 'quebec',
+ 'dennis',
+ 'francis',
+ 'sized',
+ 'manga',
+ 'noticed',
+ 'socket',
+ 'silent',
+ 'literary',
+ 'signals',
+ 'theft',
+ 'swing',
+ 'symbols',
+ 'humans',
+ 'analog',
+ 'facial',
+ 'choosing',
+ 'talent',
+ 'dated',
+ 'seeker',
+ 'wisdom',
+ 'shoot',
+ 'boundary',
+ 'packard',
+ 'offset',
+ 'payday',
+ 'philip',
+ 'elite',
+ 'holders',
+ 'believes',
+ 'swedish',
+ 'poems',
+ 'deadline',
+ 'robot',
+ 'witness',
+ 'collins',
+ 'equipped',
+ 'stages',
+ 'winds',
+ 'powder',
+ 'broadway',
+ 'acquired',
+ 'assess',
+ 'stones',
+ 'entrance',
+ 'gnome',
+ 'roots',
+ 'losing',
+ 'attempts',
+ 'gadgets',
+ 'noble',
+ 'glasgow',
+ 'impacts',
+ 'gospel',
+ 'shore',
+ 'loves',
+ 'induced',
+ 'knight',
+ 'loose',
+ 'linking',
+ 'appeals',
+ 'earned',
+ 'illness',
+ 'islamic',
+ 'pending',
+ 'parker',
+ 'lebanon',
+ 'kennedy',
+ 'teenage',
+ 'triple',
+ 'cooper',
+ 'vincent',
+ 'secured',
+ 'unusual',
+ 'answered',
+ 'slots',
+ 'disorder',
+ 'routine',
+ 'toolbar',
+ 'rocks',
+ 'titans',
+ 'wearing',
+ 'sought',
+ 'genes',
+ 'mounted',
+ 'habitat',
+ 'firewall',
+ 'median',
+ 'scanner',
+ 'herein',
+ 'animated',
+ 'judicial',
+ 'integer',
+ 'bachelor',
+ 'attitude',
+ 'engaged',
+ 'falling',
+ 'basics',
+ 'montreal',
+ 'carpet',
+ 'struct',
+ 'lenses',
+ 'binary',
+ 'genetics',
+ 'attended',
+ 'dropped',
+ 'walter',
+ 'besides',
+ 'hosts',
+ 'moments',
+ 'atlas',
+ 'strings',
+ 'feels',
+ 'torture',
+ 'deleted',
+ 'mitchell',
+ 'ralph',
+ 'warner',
+ 'embedded',
+ 'inkjet',
+ 'wizard',
+ 'corps',
+ 'actors',
+ 'liver',
+ 'liable',
+ 'brochure',
+ 'morris',
+ 'petition',
+ 'eminem',
+ 'recall',
+ 'antenna',
+ 'picked',
+ 'assumed',
+ 'belief',
+ 'killing',
+ 'bikini',
+ 'memphis',
+ 'shoulder',
+ 'decor',
+ 'lookup',
+ 'texts',
+ 'harvard',
+ 'brokers',
+ 'diameter',
+ 'ottawa',
+ 'podcast',
+ 'seasons',
+ 'refine',
+ 'bidder',
+ 'singer',
+ 'evans',
+ 'herald',
+ 'literacy',
+ 'fails',
+ 'aging',
+ 'plugin',
+ 'diving',
+ 'invite',
+ 'alice',
+ 'latinas',
+ 'suppose',
+ 'involve',
+ 'moderate',
+ 'terror',
+ 'younger',
+ 'thirty',
+ 'opposite',
+ 'rapidly',
+ 'dealtime',
+ 'intro',
+ 'mercedes',
+ 'clerk',
+ 'mills',
+ 'outline',
+ 'tramadol',
+ 'holland',
+ 'receives',
+ 'jeans',
+ 'fonts',
+ 'refers',
+ 'favor',
+ 'veterans',
+ 'sigma',
+ 'xhtml',
+ 'occasion',
+ 'victim',
+ 'demands',
+ 'sleeping',
+ 'careful',
+ 'arrive',
+ 'sunset',
+ 'tracked',
+ 'moreover',
+ 'minimal',
+ 'lottery',
+ 'framed',
+ 'aside',
+ 'licence',
+ 'michelle',
+ 'essay',
+ 'dialogue',
+ 'camps',
+ 'declared',
+ 'aaron',
+ 'handheld',
+ 'trace',
+ 'disposal',
+ 'florists',
+ 'packs',
+ 'switches',
+ 'romania',
+ 'consult',
+ 'greatly',
+ 'blogging',
+ 'cycling',
+ 'midnight',
+ 'commonly',
+ 'inform',
+ 'turkish',
+ 'pentium',
+ 'quantum',
+ 'murray',
+ 'intent',
+ 'largely',
+ 'pleasant',
+ 'announce',
+ 'spoke',
+ 'arrow',
+ 'sampling',
+ 'rough',
+ 'weird',
+ 'inspired',
+ 'holes',
+ 'weddings',
+ 'blade',
+ 'suddenly',
+ 'oxygen',
+ 'cookie',
+ 'meals',
+ 'canyon',
+ 'meters',
+ 'merely',
+ 'passes',
+ 'pointer',
+ 'stretch',
+ 'durham',
+ 'permits',
+ 'muslim',
+ 'sleeve',
+ 'netscape',
+ 'cleaner',
+ 'cricket',
+ 'feeding',
+ 'stroke',
+ 'township',
+ 'rankings',
+ 'robin',
+ 'robinson',
+ 'strap',
+ 'sharon',
+ 'crowd',
+ 'olympic',
+ 'remained',
+ 'entities',
+ 'customs',
+ 'rainbow',
+ 'roulette',
+ 'decline',
+ 'gloves',
+ 'israeli',
+ 'medicare',
+ 'skiing',
+ 'cloud',
+ 'valve',
+ 'hewlett',
+ 'explains',
+ 'proceed',
+ 'flickr',
+ 'feelings',
+ 'knife',
+ 'jamaica',
+ 'shelf',
+ 'timing',
+ 'liked',
+ 'adopt',
+ 'denied',
+ 'fotos',
+ 'britney',
+ 'freeware',
+ 'donation',
+ 'outer',
+ 'deaths',
+ 'rivers',
+ 'tales',
+ 'katrina',
+ 'islam',
+ 'nodes',
+ 'thumbs',
+ 'seeds',
+ 'cited',
+ 'targeted',
+ 'skype',
+ 'realized',
+ 'twelve',
+ 'founder',
+ 'decade',
+ 'gamecube',
+ 'dispute',
+ 'tired',
+ 'titten',
+ 'adverse',
+ 'excerpt',
+ 'steam',
+ 'drinks',
+ 'voices',
+ 'acute',
+ 'climbing',
+ 'stood',
+ 'perfume',
+ 'carol',
+ 'honest',
+ 'albany',
+ 'restore',
+ 'stack',
+ 'somebody',
+ 'curve',
+ 'creator',
+ 'amber',
+ 'museums',
+ 'coding',
+ 'tracker',
+ 'passage',
+ 'trunk',
+ 'hiking',
+ 'pierre',
+ 'jelsoft',
+ 'headset',
+ 'oakland',
+ 'colombia',
+ 'waves',
+ 'camel',
+ 'lamps',
+ 'suicide',
+ 'archived',
+ 'arabia',
+ 'juice',
+ 'chase',
+ 'logical',
+ 'sauce',
+ 'extract',
+ 'panama',
+ 'payable',
+ 'courtesy',
+ 'athens',
+ 'judges',
+ 'retired',
+ 'remarks',
+ 'detected',
+ 'decades',
+ 'walked',
+ 'arising',
+ 'nissan',
+ 'bracelet',
+ 'juvenile',
+ 'afraid',
+ 'acoustic',
+ 'railway',
+ 'cassette',
+ 'pointed',
+ 'causing',
+ 'mistake',
+ 'norton',
+ 'locked',
+ 'fusion',
+ 'mineral',
+ 'steering',
+ 'beads',
+ 'fortune',
+ 'canvas',
+ 'parish',
+ 'claimed',
+ 'screens',
+ 'cemetery',
+ 'planner',
+ 'croatia',
+ 'flows',
+ 'stadium',
+ 'fewer',
+ 'coupon',
+ 'nurses',
+ 'proxy',
+ 'lanka',
+ 'edwards',
+ 'contests',
+ 'costume',
+ 'tagged',
+ 'berkeley',
+ 'voted',
+ 'killer',
+ 'bikes',
+ 'gates',
+ 'adjusted',
+ 'bishop',
+ 'pulled',
+ 'shaped',
+ 'seasonal',
+ 'farmer',
+ 'counters',
+ 'slave',
+ 'cultures',
+ 'norfolk',
+ 'coaching',
+ 'examined',
+ 'encoding',
+ 'heroes',
+ 'painted',
+ 'lycos',
+ 'zdnet',
+ 'artwork',
+ 'cosmetic',
+ 'resulted',
+ 'portrait',
+ 'ethical',
+ 'carriers',
+ 'mobility',
+ 'floral',
+ 'builders',
+ 'struggle',
+ 'schemes',
+ 'neutral',
+ 'fisher',
+ 'spears',
+ 'bedding',
+ 'joining',
+ 'heading',
+ 'equally',
+ 'bearing',
+ 'combo',
+ 'seniors',
+ 'worlds',
+ 'guilty',
+ 'haven',
+ 'tablet',
+ 'charm',
+ 'violent',
+ 'basin',
+ 'ranch',
+ 'crossing',
+ 'cottage',
+ 'drunk',
+ 'crimes',
+ 'resolved',
+ 'mozilla',
+ 'toner',
+ 'latex',
+ 'branches',
+ 'anymore',
+ 'delhi',
+ 'holdings',
+ 'alien',
+ 'locator',
+ 'broke',
+ 'nepal',
+ 'zimbabwe',
+ 'browsing',
+ 'resolve',
+ 'melissa',
+ 'moscow',
+ 'thesis',
+ 'nylon',
+ 'discs',
+ 'rocky',
+ 'bargains',
+ 'frequent',
+ 'nigeria',
+ 'ceiling',
+ 'pixels',
+ 'ensuring',
+ 'hispanic',
+ 'anybody',
+ 'diamonds',
+ 'fleet',
+ 'untitled',
+ 'bunch',
+ 'totals',
+ 'marriott',
+ 'singing',
+ 'afford',
+ 'starring',
+ 'referral',
+ 'optimal',
+ 'distinct',
+ 'turner',
+ 'sucking',
+ 'cents',
+ 'reuters',
+ 'spoken',
+ 'omega',
+ 'stayed',
+ 'civic',
+ 'manuals',
+ 'watched',
+ 'saver',
+ 'thereof',
+ 'grill',
+ 'redeem',
+ 'rogers',
+ 'grain',
+ 'regime',
+ 'wanna',
+ 'wishes',
+ 'depend',
+ 'differ',
+ 'ranging',
+ 'monica',
+ 'repairs',
+ 'breath',
+ 'candle',
+ 'hanging',
+ 'colored',
+ 'verified',
+ 'formerly',
+ 'situated',
+ 'seeks',
+ 'herbal',
+ 'loving',
+ 'strictly',
+ 'routing',
+ 'stanley',
+ 'retailer',
+ 'vitamins',
+ 'elegant',
+ 'gains',
+ 'renewal',
+ 'opposed',
+ 'deemed',
+ 'scoring',
+ 'brooklyn',
+ 'sisters',
+ 'critics',
+ 'spots',
+ 'hacker',
+ 'madrid',
+ 'margin',
+ 'solely',
+ 'salon',
+ 'norman',
+ 'turbo',
+ 'headed',
+ 'voters',
+ 'madonna',
+ 'murphy',
+ 'thinks',
+ 'thats',
+ 'soldier',
+ 'phillips',
+ 'aimed',
+ 'justin',
+ 'interval',
+ 'mirrors',
+ 'tricks',
+ 'reset',
+ 'brush',
+ 'expansys',
+ 'panels',
+ 'repeated',
+ 'assault',
+ 'spare',
+ 'kodak',
+ 'tongue',
+ 'bowling',
+ 'danish',
+ 'monkey',
+ 'filename',
+ 'skirt',
+ 'florence',
+ 'invest',
+ 'honey',
+ 'analyzes',
+ 'drawings',
+ 'scenario',
+ 'lovers',
+ 'atomic',
+ 'approx',
+ 'arabic',
+ 'gauge',
+ 'junction',
+ 'faced',
+ 'rachel',
+ 'solving',
+ 'weekends',
+ 'produces',
+ 'chains',
+ 'kingston',
+ 'sixth',
+ 'engage',
+ 'deviant',
+ 'quoted',
+ 'adapters',
+ 'farms',
+ 'imports',
+ 'cheat',
+ 'bronze',
+ 'sandy',
+ 'suspect',
+ 'macro',
+ 'sender',
+ 'crucial',
+ 'adjacent',
+ 'tuition',
+ 'spouse',
+ 'exotic',
+ 'viewer',
+ 'signup',
+ 'threats',
+ 'puzzles',
+ 'reaching',
+ 'damaged',
+ 'receptor',
+ 'laugh',
+ 'surgical',
+ 'destroy',
+ 'citation',
+ 'pitch',
+ 'autos',
+ 'premises',
+ 'perry',
+ 'proved',
+ 'imperial',
+ 'dozen',
+ 'benjamin',
+ 'teeth',
+ 'cloth',
+ 'studying',
+ 'stamp',
+ 'lotus',
+ 'salmon',
+ 'olympus',
+ 'cargo',
+ 'salem',
+ 'starter',
+ 'upgrades',
+ 'likes',
+ 'butter',
+ 'pepper',
+ 'weapon',
+ 'luggage',
+ 'burden',
+ 'tapes',
+ 'zones',
+ 'races',
+ 'stylish',
+ 'maple',
+ 'grocery',
+ 'offshore',
+ 'depot',
+ 'kenneth',
+ 'blend',
+ 'harrison',
+ 'julie',
+ 'emission',
+ 'finest',
+ 'realty',
+ 'janet',
+ 'apparent',
+ 'phpbb',
+ 'autumn',
+ 'probe',
+ 'toilet',
+ 'ranked',
+ 'jackets',
+ 'routes',
+ 'packed',
+ 'excited',
+ 'outreach',
+ 'helen',
+ 'mounting',
+ 'recover',
+ 'lopez',
+ 'balanced',
+ 'timely',
+ 'talked',
+ 'debug',
+ 'delayed',
+ 'chuck',
+ 'explicit',
+ 'villas',
+ 'ebook',
+ 'exclude',
+ 'peeing',
+ 'brooks',
+ 'newton',
+ 'anxiety',
+ 'bingo',
+ 'whilst',
+ 'spatial',
+ 'ceramic',
+ 'prompt',
+ 'precious',
+ 'minds',
+ 'annually',
+ 'scanners',
+ 'xanax',
+ 'fingers',
+ 'sunny',
+ 'ebooks',
+ 'delivers',
+ 'necklace',
+ 'leeds',
+ 'cedar',
+ 'arranged',
+ 'theaters',
+ 'advocacy',
+ 'raleigh',
+ 'threaded',
+ 'qualify',
+ 'blair',
+ 'hopes',
+ 'mason',
+ 'diagram',
+ 'burns',
+ 'pumps',
+ 'footwear',
+ 'beijing',
+ 'peoples',
+ 'victor',
+ 'mario',
+ 'attach',
+ 'licenses',
+ 'utils',
+ 'removing',
+ 'advised',
+ 'spider',
+ 'ranges',
+ 'pairs',
+ 'trails',
+ 'hudson',
+ 'isolated',
+ 'calgary',
+ 'interim',
+ 'assisted',
+ 'divine',
+ 'approve',
+ 'chose',
+ 'compound',
+ 'abortion',
+ 'dialog',
+ 'venues',
+ 'blast',
+ 'wellness',
+ 'calcium',
+ 'newport',
+ 'indians',
+ 'shield',
+ 'harvest',
+ 'membrane',
+ 'prague',
+ 'previews',
+ 'locally',
+ 'pickup',
+ 'mothers',
+ 'nascar',
+ 'iceland',
+ 'candles',
+ 'sailing',
+ 'sacred',
+ 'morocco',
+ 'chrome',
+ 'tommy',
+ 'refused',
+ 'brake',
+ 'exterior',
+ 'greeting',
+ 'ecology',
+ 'oliver',
+ 'congo',
+ 'botswana',
+ 'delays',
+ 'olive',
+ 'cyber',
+ 'verizon',
+ 'scored',
+ 'clone',
+ 'velocity',
+ 'lambda',
+ 'relay',
+ 'composed',
+ 'tears',
+ 'oasis',
+ 'baseline',
+ 'angry',
+ 'silicon',
+ 'compete',
+ 'lover',
+ 'belong',
+ 'honolulu',
+ 'beatles',
+ 'rolls',
+ 'thomson',
+ 'barnes',
+ 'malta',
+ 'daddy',
+ 'ferry',
+ 'rabbit',
+ 'seating',
+ 'exports',
+ 'omaha',
+ 'electron',
+ 'loads',
+ 'heather',
+ 'passport',
+ 'motel',
+ 'unions',
+ 'treasury',
+ 'warrant',
+ 'solaris',
+ 'frozen',
+ 'occupied',
+ 'royalty',
+ 'scales',
+ 'rally',
+ 'observer',
+ 'sunshine',
+ 'strain',
+ 'ceremony',
+ 'somehow',
+ 'arrested',
+ 'yamaha',
+ 'hebrew',
+ 'gained',
+ 'dying',
+ 'laundry',
+ 'stuck',
+ 'solomon',
+ 'placing',
+ 'stops',
+ 'homework',
+ 'adjust',
+ 'assessed',
+ 'enabling',
+ 'filling',
+ 'imposed',
+ 'silence',
+ 'focuses',
+ 'soviet',
+ 'treaty',
+ 'vocal',
+ 'trainer',
+ 'organ',
+ 'stronger',
+ 'volumes',
+ 'advances',
+ 'lemon',
+ 'toxic',
+ 'darkness',
+ 'bizrate',
+ 'vienna',
+ 'implied',
+ 'stanford',
+ 'packing',
+ 'statute',
+ 'rejected',
+ 'satisfy',
+ 'shelter',
+ 'chapel',
+ 'gamespot',
+ 'layers',
+ 'guided',
+ 'bahamas',
+ 'powell',
+ 'mixture',
+ 'bench',
+ 'rider',
+ 'radius',
+ 'logging',
+ 'hampton',
+ 'borders',
+ 'butts',
+ 'bobby',
+ 'sheep',
+ 'railroad',
+ 'lectures',
+ 'wines',
+ 'nursery',
+ 'harder',
+ 'cheapest',
+ 'travesti',
+ 'stuart',
+ 'salvador',
+ 'salad',
+ 'monroe',
+ 'tender',
+ 'paste',
+ 'clouds',
+ 'tanzania',
+ 'preserve',
+ 'unsigned',
+ 'staying',
+ 'easter',
+ 'theories',
+ 'praise',
+ 'jeremy',
+ 'venice',
+ 'estonia',
+ 'veteran',
+ 'streams',
+ 'landing',
+ 'signing',
+ 'executed',
+ 'katie',
+ 'showcase',
+ 'integral',
+ 'relax',
+ 'namibia',
+ 'synopsis',
+ 'hardly',
+ 'prairie',
+ 'reunion',
+ 'composer',
+ 'sword',
+ 'absent',
+ 'sells',
+ 'ecuador',
+ 'hoping',
+ 'accessed',
+ 'spirits',
+ 'coral',
+ 'pixel',
+ 'float',
+ 'colin',
+ 'imported',
+ 'paths',
+ 'bubble',
+ 'acquire',
+ 'contrary',
+ 'tribune',
+ 'vessel',
+ 'acids',
+ 'focusing',
+ 'viruses',
+ 'cheaper',
+ 'admitted',
+ 'dairy',
+ 'admit',
+ 'fancy',
+ 'equality',
+ 'samoa',
+ 'stickers',
+ 'leasing',
+ 'lauren',
+ 'beliefs',
+ 'squad',
+ 'analyze',
+ 'ashley',
+ 'scroll',
+ 'relate',
+ 'wages',
+ 'suffer',
+ 'forests',
+ 'invalid',
+ 'concerts',
+ 'martial',
+ 'males',
+ 'retain',
+ 'execute',
+ 'tunnel',
+ 'genres',
+ 'cambodia',
+ 'patents',
+ 'chaos',
+ 'wheat',
+ 'beaver',
+ 'updating',
+ 'readings',
+ 'kijiji',
+ 'confused',
+ 'compiler',
+ 'eagles',
+ 'bases',
+ 'accused',
+ 'unity',
+ 'bride',
+ 'defines',
+ 'airports',
+ 'begun',
+ 'brunette',
+ 'packets',
+ 'anchor',
+ 'socks',
+ 'parade',
+ 'trigger',
+ 'gathered',
+ 'essex',
+ 'slovenia',
+ 'notified',
+ 'beaches',
+ 'folders',
+ 'dramatic',
+ 'surfaces',
+ 'terrible',
+ 'routers',
+ 'pendant',
+ 'dresses',
+ 'baptist',
+ 'hiring',
+ 'clocks',
+ 'females',
+ 'wallace',
+ 'reflects',
+ 'taxation',
+ 'fever',
+ 'cuisine',
+ 'surely',
+ 'myspace',
+ 'theorem',
+ 'stylus',
+ 'drums',
+ 'arnold',
+ 'chicks',
+ 'cattle',
+ 'radical',
+ 'rover',
+ 'treasure',
+ 'reload',
+ 'flame',
+ 'levitra',
+ 'tanks',
+ 'assuming',
+ 'monetary',
+ 'elderly',
+ 'floating',
+ 'bolivia',
+ 'spell',
+ 'hottest',
+ 'stevens',
+ 'kuwait',
+ 'emily',
+ 'alleged',
+ 'compile',
+ 'webster',
+ 'struck',
+ 'plymouth',
+ 'warnings',
+ 'bridal',
+ 'annex',
+ 'tribal',
+ 'curious',
+ 'freight',
+ 'rebate',
+ 'meetup',
+ 'eclipse',
+ 'sudan',
+ 'shuttle',
+ 'stunning',
+ 'cycles',
+ 'affects',
+ 'detect',
+ 'actively',
+ 'ampland',
+ 'fastest',
+ 'butler',
+ 'injured',
+ 'payroll',
+ 'cookbook',
+ 'courier',
+ 'uploaded',
+ 'hints',
+ 'collapse',
+ 'americas',
+ 'unlikely',
+ 'techno',
+ 'beverage',
+ 'tribute',
+ 'wired',
+ 'elvis',
+ 'immune',
+ 'latvia',
+ 'forestry',
+ 'barriers',
+ 'rarely',
+ 'infected',
+ 'martha',
+ 'genesis',
+ 'barrier',
+ 'argue',
+ 'trains',
+ 'metals',
+ 'bicycle',
+ 'letting',
+ 'arise',
+ 'celtic',
+ 'thereby',
+ 'jamie',
+ 'particle',
+ 'minerals',
+ 'advise',
+ 'humidity',
+ 'bottles',
+ 'boxing',
+ 'bangkok',
+ 'hughes',
+ 'jeffrey',
+ 'chess',
+ 'operates',
+ 'brisbane',
+ 'survive',
+ 'oscar',
+ 'menus',
+ 'reveal',
+ 'canal',
+ 'amino',
+ 'herbs',
+ 'clinics',
+ 'manitoba',
+ 'missions',
+ 'watson',
+ 'lying',
+ 'costumes',
+ 'strict',
+ 'saddam',
+ 'drill',
+ 'offense',
+ 'bryan',
+ 'protest',
+ 'hobby',
+ 'tries',
+ 'nickname',
+ 'inline',
+ 'washing',
+ 'staffing',
+ 'trick',
+ 'enquiry',
+ 'closure',
+ 'timber',
+ 'intense',
+ 'playlist',
+ 'showers',
+ 'ruling',
+ 'steady',
+ 'statutes',
+ 'myers',
+ 'drops',
+ 'wider',
+ 'plugins',
+ 'enrolled',
+ 'sensors',
+ 'screw',
+ 'publicly',
+ 'hourly',
+ 'blame',
+ 'geneva',
+ 'freebsd',
+ 'reseller',
+ 'handed',
+ 'suffered',
+ 'intake',
+ 'informal',
+ 'tucson',
+ 'heavily',
+ 'swingers',
+ 'fifty',
+ 'headers',
+ 'mistakes',
+ 'uncle',
+ 'defining',
+ 'counting',
+ 'assure',
+ 'devoted',
+ 'jacob',
+ 'sodium',
+ 'randy',
+ 'hormone',
+ 'timothy',
+ 'brick',
+ 'naval',
+ 'medieval',
+ 'bridges',
+ 'captured',
+ 'thehun',
+ 'decent',
+ 'casting',
+ 'dayton',
+ 'shortly',
+ 'cameron',
+ 'carlos',
+ 'donna',
+ 'andreas',
+ 'warrior',
+ 'diploma',
+ 'cabin',
+ 'innocent',
+ 'scanning',
+ 'valium',
+ 'copying',
+ 'cordless',
+ 'patricia',
+ 'eddie',
+ 'uganda',
+ 'fired',
+ 'trivia',
+ 'adidas',
+ 'perth',
+ 'grammar',
+ 'syria',
+ 'disagree',
+ 'klein',
+ 'harvey',
+ 'tires',
+ 'hazard',
+ 'retro',
+ 'gregory',
+ 'episodes',
+ 'boolean',
+ 'circular',
+ 'anger',
+ 'mainland',
+ 'suits',
+ 'chances',
+ 'interact',
+ 'bizarre',
+ 'glenn',
+ 'auckland',
+ 'olympics',
+ 'fruits',
+ 'ribbon',
+ 'startup',
+ 'suzuki',
+ 'trinidad',
+ 'kissing',
+ 'handy',
+ 'exempt',
+ 'crops',
+ 'reduces',
+ 'geometry',
+ 'slovakia',
+ 'guild',
+ 'gorgeous',
+ 'capitol',
+ 'dishes',
+ 'barbados',
+ 'chrysler',
+ 'nervous',
+ 'refuse',
+ 'extends',
+ 'mcdonald',
+ 'replica',
+ 'plumbing',
+ 'brussels',
+ 'tribe',
+ 'trades',
+ 'superb',
+ 'trinity',
+ 'handled',
+ 'legends',
+ 'floors',
+ 'exhaust',
+ 'shanghai',
+ 'speaks',
+ 'burton',
+ 'davidson',
+ 'copied',
+ 'scotia',
+ 'farming',
+ 'gibson',
+ 'roller',
+ 'batch',
+ 'organize',
+ 'alter',
+ 'nicole',
+ 'latino',
+ 'ghana',
+ 'edges',
+ 'mixing',
+ 'handles',
+ 'skilled',
+ 'fitted',
+ 'harmony',
+ 'asthma',
+ 'twins',
+ 'triangle',
+ 'amend',
+ 'oriental',
+ 'reward',
+ 'windsor',
+ 'zambia',
+ 'hydrogen',
+ 'webshots',
+ 'sprint',
+ 'chick',
+ 'advocate',
+ 'inputs',
+ 'genome',
+ 'escorts',
+ 'thong',
+ 'medal',
+ 'coaches',
+ 'vessels',
+ 'walks',
+ 'knives',
+ 'arrange',
+ 'artistic',
+ 'honors',
+ 'booth',
+ 'indie',
+ 'unified',
+ 'bones',
+ 'breed',
+ 'detector',
+ 'ignored',
+ 'polar',
+ 'fallen',
+ 'precise',
+ 'sussex',
+ 'msgid',
+ 'invoice',
+ 'gather',
+ 'backed',
+ 'alfred',
+ 'colonial',
+ 'carey',
+ 'motels',
+ 'forming',
+ 'embassy',
+ 'danny',
+ 'rebecca',
+ 'slight',
+ 'proceeds',
+ 'indirect',
+ 'amongst',
+ 'msgstr',
+ 'arrest',
+ 'adipex',
+ 'horizon',
+ 'deeply',
+ 'toolbox',
+ 'marina',
+ 'prizes',
+ 'bosnia',
+ 'browsers',
+ 'patio',
+ 'surfing',
+ 'lloyd',
+ 'optics',
+ 'pursue',
+ 'overcome',
+ 'attract',
+ 'brighton',
+ 'beans',
+ 'ellis',
+ 'disable',
+ 'snake',
+ 'succeed',
+ 'leonard',
+ 'lending',
+ 'reminder',
+ 'searched',
+ 'plains',
+ 'raymond',
+ 'insights',
+ 'sullivan',
+ 'midwest',
+ 'karaoke',
+ 'lonely',
+ 'hereby',
+ 'observe',
+ 'julia',
+ 'berry',
+ 'collar',
+ 'racial',
+ 'bermuda',
+ 'amanda',
+ 'mobiles',
+ 'kelkoo',
+ 'exhibits',
+ 'terrace',
+ 'bacteria',
+ 'replied',
+ 'seafood',
+ 'novels',
+ 'ought',
+ 'safely',
+ 'finite',
+ 'kidney',
+ 'fixes',
+ 'sends',
+ 'durable',
+ 'mazda',
+ 'allied',
+ 'throws',
+ 'moisture',
+ 'roster',
+ 'symantec',
+ 'spencer',
+ 'wichita',
+ 'nasdaq',
+ 'uruguay',
+ 'timer',
+ 'tablets',
+ 'tuning',
+ 'gotten',
+ 'tyler',
+ 'futures',
+ 'verse',
+ 'highs',
+ 'wanting',
+ 'custody',
+ 'scratch',
+ 'launches',
+ 'ellen',
+ 'rocket',
+ 'bullet',
+ 'towers',
+ 'racks',
+ 'nasty',
+ 'latitude',
+ 'tumor',
+ 'deposits',
+ 'beverly',
+ 'mistress',
+ 'trustees',
+ 'watts',
+ 'duncan',
+ 'reprints',
+ 'bernard',
+ 'forty',
+ 'tubes',
+ 'midlands',
+ 'priest',
+ 'floyd',
+ 'ronald',
+ 'analysts',
+ 'queue',
+ 'trance',
+ 'locale',
+ 'nicholas',
+ 'bundle',
+ 'hammer',
+ 'invasion',
+ 'runner',
+ 'notion',
+ 'skins',
+ 'mailed',
+ 'fujitsu',
+ 'spelling',
+ 'arctic',
+ 'exams',
+ 'rewards',
+ 'beneath',
+ 'defend',
+ 'medicaid',
+ 'infrared',
+ 'seventh',
+ 'welsh',
+ 'belly',
+ 'quarters',
+ 'stolen',
+ 'soonest',
+ 'haiti',
+ 'naturals',
+ 'lenders',
+ 'fitting',
+ 'fixtures',
+ 'bloggers',
+ 'agrees',
+ 'surplus',
+ 'elder',
+ 'sonic',
+ 'cheers',
+ 'belarus',
+ 'zoning',
+ 'gravity',
+ 'thumb',
+ 'guitars',
+ 'essence',
+ 'flooring',
+ 'ethiopia',
+ 'mighty',
+ 'athletes',
+ 'humanity',
+ 'holmes',
+ 'scholars',
+ 'galaxy',
+ 'chester',
+ 'snapshot',
+ 'caring',
+ 'segments',
+ 'dominant',
+ 'twist',
+ 'itunes',
+ 'stomach',
+ 'buried',
+ 'newbie',
+ 'minimize',
+ 'darwin',
+ 'ranks',
+ 'debut',
+ 'bradley',
+ 'anatomy',
+ 'fraction',
+ 'defects',
+ 'milton',
+ 'marker',
+ 'clarity',
+ 'sandra',
+ 'adelaide',
+ 'monaco',
+ 'settled',
+ 'folding',
+ 'emirates',
+ 'airfare',
+ 'vaccine',
+ 'belize',
+ 'promised',
+ 'volvo',
+ 'penny',
+ 'robust',
+ 'bookings',
+ 'minolta',
+ 'porter',
+ 'jungle',
+ 'ivory',
+ 'alpine',
+ 'andale',
+ 'fabulous',
+ 'remix',
+ 'alias',
+ 'newer',
+ 'spice',
+ 'implies',
+ 'cooler',
+ 'maritime',
+ 'periodic',
+ 'overhead',
+ 'ascii',
+ 'prospect',
+ 'shipment',
+ 'breeding',
+ 'donor',
+ 'tension',
+ 'trash',
+ 'shapes',
+ 'manor',
+ 'envelope',
+ 'diane',
+ 'homeland',
+ 'excluded',
+ 'andrea',
+ 'breeds',
+ 'rapids',
+ 'disco',
+ 'bailey',
+ 'endif',
+ 'emotions',
+ 'incoming',
+ 'lexmark',
+ 'cleaners',
+ 'eternal',
+ 'cashiers',
+ 'rotation',
+ 'eugene',
+ 'metric',
+ 'minus',
+ 'bennett',
+ 'hotmail',
+ 'joshua',
+ 'armenia',
+ 'varied',
+ 'grande',
+ 'closest',
+ 'actress',
+ 'assign',
+ 'tigers',
+ 'aurora',
+ 'slides',
+ 'milan',
+ 'premiere',
+ 'lender',
+ 'villages',
+ 'shade',
+ 'chorus',
+ 'rhythm',
+ 'digit',
+ 'argued',
+ 'dietary',
+ 'symphony',
+ 'clarke',
+ 'sudden',
+ 'marilyn',
+ 'lions',
+ 'findlaw',
+ 'pools',
+ 'lyric',
+ 'claire',
+ 'speeds',
+ 'matched',
+ 'carroll',
+ 'rational',
+ 'fighters',
+ 'chambers',
+ 'warming',
+ 'vocals',
+ 'fountain',
+ 'chubby',
+ 'grave',
+ 'burner',
+ 'finnish',
+ 'gentle',
+ 'deeper',
+ 'muslims',
+ 'footage',
+ 'howto',
+ 'worthy',
+ 'reveals',
+ 'saints',
+ 'carries',
+ 'devon',
+ 'helena',
+ 'saves',
+ 'regarded',
+ 'marion',
+ 'lobby',
+ 'egyptian',
+ 'tunisia',
+ 'outlined',
+ 'headline',
+ 'treating',
+ 'punch',
+ 'gotta',
+ 'cowboy',
+ 'bahrain',
+ 'enormous',
+ 'karma',
+ 'consist',
+ 'betty',
+ 'queens',
+ 'lucas',
+ 'tribes',
+ 'defeat',
+ 'clicks',
+ 'honduras',
+ 'naughty',
+ 'hazards',
+ 'insured',
+ 'harper',
+ 'mardi',
+ 'tenant',
+ 'cabinets',
+ 'tattoo',
+ 'shake',
+ 'algebra',
+ 'shadows',
+ 'holly',
+ 'silly',
+ 'mercy',
+ 'hartford',
+ 'freely',
+ 'marcus',
+ 'sunrise',
+ 'wrapping',
+ 'weblogs',
+ 'timeline',
+ 'belongs',
+ 'readily',
+ 'fence',
+ 'nudist',
+ 'infinite',
+ 'diana',
+ 'ensures',
+ 'lindsay',
+ 'legally',
+ 'shame',
+ 'civilian',
+ 'fatal',
+ 'remedy',
+ 'realtors',
+ 'briefly',
+ 'genius',
+ 'fighter',
+ 'flesh',
+ 'retreat',
+ 'adapted',
+ 'barely',
+ 'wherever',
+ 'estates',
+ 'democrat',
+ 'borough',
+ 'failing',
+ 'retained',
+ 'pamela',
+ 'andrews',
+ 'marble',
+ 'jesse',
+ 'logitech',
+ 'surrey',
+ 'briefing',
+ 'belkin',
+ 'highland',
+ 'modular',
+ 'brandon',
+ 'giants',
+ 'balloon',
+ 'winston',
+ 'solved',
+ 'hawaiian',
+ 'gratuit',
+ 'consoles',
+ 'qatar',
+ 'magnet',
+ 'porsche',
+ 'cayman',
+ 'jaguar',
+ 'sheer',
+ 'posing',
+ 'hopkins',
+ 'urgent',
+ 'infants',
+ 'gothic',
+ 'cylinder',
+ 'witch',
+ 'cohen',
+ 'puppy',
+ 'kathy',
+ 'graphs',
+ 'surround',
+ 'revenge',
+ 'expires',
+ 'enemies',
+ 'finances',
+ 'accepts',
+ 'enjoying',
+ 'patrol',
+ 'smell',
+ 'italiano',
+ 'carnival',
+ 'roughly',
+ 'sticker',
+ 'promises',
+ 'divide',
+ 'cornell',
+ 'satin',
+ 'deserve',
+ 'mailto',
+ 'promo',
+ 'worried',
+ 'tunes',
+ 'garbage',
+ 'combines',
+ 'bradford',
+ 'phrases',
+ 'chelsea',
+ 'boring',
+ 'reynolds',
+ 'speeches',
+ 'reaches',
+ 'schema',
+ 'catalogs',
+ 'quizzes',
+ 'prefix',
+ 'lucia',
+ 'savannah',
+ 'barrel',
+ 'typing',
+ 'nerve',
+ 'planets',
+ 'deficit',
+ 'boulder',
+ 'pointing',
+ 'renew',
+ 'coupled',
+ 'myanmar',
+ 'metadata',
+ 'harold',
+ 'circuits',
+ 'floppy',
+ 'texture',
+ 'handbags',
+ 'somerset',
+ 'incurred',
+ 'antigua',
+ 'thunder',
+ 'caution',
+ 'locks',
+ 'namely',
+ 'euros',
+ 'pirates',
+ 'aerial',
+ 'rebel',
+ 'origins',
+ 'hired',
+ 'makeup',
+ 'textile',
+ 'nathan',
+ 'tobago',
+ 'indexes',
+ 'hindu',
+ 'licking',
+ 'markers',
+ 'weights',
+ 'albania',
+ 'lasting',
+ 'wicked',
+ 'kills',
+ 'roommate',
+ 'webcams',
+ 'pushed',
+ 'slope',
+ 'reggae',
+ 'failures',
+ 'surname',
+ 'theology',
+ 'nails',
+ 'evident',
+ 'whats',
+ 'rides',
+ 'rehab',
+ 'saturn',
+ 'allergy',
+ 'twisted',
+ 'merit',
+ 'enzyme',
+ 'zshops',
+ 'planes',
+ 'edmonton',
+ 'tackle',
+ 'disks',
+ 'condo',
+ 'pokemon',
+ 'ambien',
+ 'retrieve',
+ 'vernon',
+ 'worldcat',
+ 'titanium',
+ 'fairy',
+ 'builds',
+ 'shaft',
+ 'leslie',
+ 'casio',
+ 'deutsche',
+ 'postings',
+ 'kitty',
+ 'drain',
+ 'monte',
+ 'fires',
+ 'algeria',
+ 'blessed',
+ 'cardiff',
+ 'cornwall',
+ 'favors',
+ 'potato',
+ 'panic',
+ 'sticks',
+ 'leone',
+ 'excuse',
+ 'reforms',
+ 'basement',
+ 'onion',
+ 'strand',
+ 'sandwich',
+ 'lawsuit',
+ 'cheque',
+ 'banners',
+ 'reject',
+ 'circles',
+ 'italic',
+ 'beats',
+ 'merry',
+ 'scuba',
+ 'passive',
+ 'valued',
+ 'courage',
+ 'verde',
+ 'gazette',
+ 'hitachi',
+ 'batman',
+ 'hearings',
+ 'coleman',
+ 'anaheim',
+ 'textbook',
+ 'dried',
+ 'luther',
+ 'frontier',
+ 'settle',
+ 'stopping',
+ 'refugees',
+ 'knights',
+ 'palmer',
+ 'derby',
+ 'peaceful',
+ 'altered',
+ 'pontiac',
+ 'doctrine',
+ 'scenic',
+ 'trainers',
+ 'sewing',
+ 'conclude',
+ 'munich',
+ 'celebs',
+ 'propose',
+ 'lighter',
+ 'advisors',
+ 'pavilion',
+ 'tactics',
+ 'trusts',
+ 'talented',
+ 'annie',
+ 'pillow',
+ 'derek',
+ 'shorter',
+ 'harley',
+ 'relying',
+ 'finals',
+ 'paraguay',
+ 'steal',
+ 'parcel',
+ 'refined',
+ 'fifteen',
+ 'fears',
+ 'predict',
+ 'boutique',
+ 'acrylic',
+ 'rolled',
+ 'tuner',
+ 'peterson',
+ 'shannon',
+ 'toddler',
+ 'flavor',
+ 'alike',
+ 'homeless',
+ 'horrible',
+ 'hungry',
+ 'metallic',
+ 'blocked',
+ 'warriors',
+ 'cadillac',
+ 'malawi',
+ 'sagem',
+ 'curtis',
+ 'parental',
+ 'strikes',
+ 'lesser',
+ 'marathon',
+ 'pressing',
+ 'gasoline',
+ 'dressed',
+ 'scout',
+ 'belfast',
+ 'dealt',
+ 'niagara',
+ 'warcraft',
+ 'charms',
+ 'catalyst',
+ 'trader',
+ 'bucks',
+ 'denial',
+ 'thrown',
+ 'prepaid',
+ 'raises',
+ 'electro',
+ 'badge',
+ 'wrist',
+ 'analyzed',
+ 'heath',
+ 'ballot',
+ 'lexus',
+ 'varying',
+ 'remedies',
+ 'validity',
+ 'trustee',
+ 'weighted',
+ 'angola',
+ 'performs',
+ 'plastics',
+ 'realm',
+ 'jenny',
+ 'helmet',
+ 'salaries',
+ 'postcard',
+ 'elephant',
+ 'yemen',
+ 'tsunami',
+ 'scholar',
+ 'nickel',
+ 'buses',
+ 'expedia',
+ 'geology',
+ 'coating',
+ 'wallet',
+ 'cleared',
+ 'smilies',
+ 'boating',
+ 'drainage',
+ 'shakira',
+ 'corners',
+ 'broader',
+ 'rouge',
+ 'yeast',
+ 'clearing',
+ 'coated',
+ 'intend',
+ 'louise',
+ 'kenny',
+ 'routines',
+ 'hitting',
+ 'yukon',
+ 'beings',
+ 'aquatic',
+ 'reliance',
+ 'habits',
+ 'striking',
+ 'podcasts',
+ 'singh',
+ 'gilbert',
+ 'ferrari',
+ 'brook',
+ 'outputs',
+ 'ensemble',
+ 'insulin',
+ 'assured',
+ 'biblical',
+ 'accent',
+ 'mysimon',
+ 'eleven',
+ 'wives',
+ 'ambient',
+ 'utilize',
+ 'mileage',
+ 'prostate',
+ 'adaptor',
+ 'auburn',
+ 'unlock',
+ 'hyundai',
+ 'pledge',
+ 'vampire',
+ 'angela',
+ 'relates',
+ 'nitrogen',
+ 'xerox',
+ 'merger',
+ 'softball',
+ 'firewire',
+ 'nextel',
+ 'framing',
+ 'musician',
+ 'blocking',
+ 'rwanda',
+ 'sorts',
+ 'vsnet',
+ 'limiting',
+ 'dispatch',
+ 'papua',
+ 'restored',
+ 'armor',
+ 'riders',
+ 'chargers',
+ 'remark',
+ 'dozens',
+ 'varies',
+ 'rendered',
+ 'picking',
+ 'guards',
+ 'openings',
+ 'councils',
+ 'kruger',
+ 'pockets',
+ 'granny',
+ 'viral',
+ 'inquire',
+ 'pipes',
+ 'laden',
+ 'aruba',
+ 'cottages',
+ 'realtor',
+ 'merge',
+ 'edgar',
+ 'develops',
+ 'chassis',
+ 'dubai',
+ 'pushing',
+ 'fleece',
+ 'pierce',
+ 'allan',
+ 'dressing',
+ 'sperm',
+ 'filme',
+ 'craps',
+ 'frost',
+ 'sally',
+ 'yacht',
+ 'tracy',
+ 'prefers',
+ 'drilling',
+ 'breach',
+ 'whale',
+ 'tomatoes',
+ 'bedford',
+ 'mustang',
+ 'clusters',
+ 'antibody',
+ 'momentum',
+ 'wiring',
+ 'pastor',
+ 'calvin',
+ 'shark',
+ 'phases',
+ 'grateful',
+ 'emerald',
+ 'laughing',
+ 'grows',
+ 'cliff',
+ 'tract',
+ 'ballet',
+ 'abraham',
+ 'bumper',
+ 'webpage',
+ 'garlic',
+ 'hostels',
+ 'shine',
+ 'senegal',
+ 'banned',
+ 'wendy',
+ 'briefs',
+ 'diffs',
+ 'mumbai',
+ 'ozone',
+ 'radios',
+ 'tariff',
+ 'nvidia',
+ 'opponent',
+ 'pasta',
+ 'muscles',
+ 'serum',
+ 'wrapped',
+ 'swift',
+ 'runtime',
+ 'inbox',
+ 'focal',
+ 'distant',
+ 'decimal',
+ 'propecia',
+ 'samba',
+ 'hostel',
+ 'employ',
+ 'mongolia',
+ 'penguin',
+ 'magical',
+ 'miracle',
+ 'manually',
+ 'reprint',
+ 'centered',
+ 'yearly',
+ 'wound',
+ 'belle',
+ 'writings',
+ 'hamburg',
+ 'cindy',
+ 'fathers',
+ 'charging',
+ 'marvel',
+ 'lined',
+ 'petite',
+ 'terrain',
+ 'strips',
+ 'gossip',
+ 'rangers',
+ 'rotary',
+ 'discrete',
+ 'beginner',
+ 'boxed',
+ 'cubic',
+ 'sapphire',
+ 'kinase',
+ 'skirts',
+ 'crawford',
+ 'labeled',
+ 'marking',
+ 'serbia',
+ 'sheriff',
+ 'griffin',
+ 'declined',
+ 'guyana',
+ 'spies',
+ 'neighbor',
+ 'elect',
+ 'highways',
+ 'thinkpad',
+ 'intimate',
+ 'preston',
+ 'deadly',
+ 'bunny',
+ 'chevy',
+ 'rounds',
+ 'longest',
+ 'tions',
+ 'dentists',
+ 'flyer',
+ 'dosage',
+ 'variance',
+ 'cameroon',
+ 'baking',
+ 'adaptive',
+ 'computed',
+ 'needle',
+ 'baths',
+ 'brakes',
+ 'nirvana',
+ 'invision',
+ 'sticky',
+ 'destiny',
+ 'generous',
+ 'madness',
+ 'emacs',
+ 'climb',
+ 'blowing',
+ 'heated',
+ 'jackie',
+ 'sparc',
+ 'cardiac',
+ 'dover',
+ 'adrian',
+ 'vatican',
+ 'brutal',
+ 'learners',
+ 'token',
+ 'seekers',
+ 'yields',
+ 'suited',
+ 'numeric',
+ 'skating',
+ 'kinda',
+ 'aberdeen',
+ 'emperor',
+ 'dylan',
+ 'belts',
+ 'blacks',
+ 'educated',
+ 'rebates',
+ 'burke',
+ 'proudly',
+ 'inserted',
+ 'pulling',
+ 'basename',
+ 'obesity',
+ 'curves',
+ 'suburban',
+ 'touring',
+ 'clara',
+ 'vertex',
+ 'tomato',
+ 'andorra',
+ 'expired',
+ 'travels',
+ 'flush',
+ 'waiver',
+ 'hayes',
+ 'delight',
+ 'survivor',
+ 'garcia',
+ 'cingular',
+ 'moses',
+ 'counted',
+ 'declare',
+ 'johns',
+ 'valves',
+ 'impaired',
+ 'donors',
+ 'jewel',
+ 'teddy',
+ 'teaches',
+ 'ventures',
+ 'bufing',
+ 'stranger',
+ 'tragedy',
+ 'julian',
+ 'dryer',
+ 'painful',
+ 'velvet',
+ 'tribunal',
+ 'ruled',
+ 'pensions',
+ 'prayers',
+ 'funky',
+ 'nowhere',
+ 'joins',
+ 'wesley',
+ 'lately',
+ 'scary',
+ 'mattress',
+ 'mpegs',
+ 'brunei',
+ 'likewise',
+ 'banana',
+ 'slovak',
+ 'cakes',
+ 'mixer',
+ 'remind',
+ 'sbjct',
+ 'charming',
+ 'tooth',
+ 'annoying',
+ 'stays',
+ 'disclose',
+ 'affair',
+ 'drove',
+ 'washer',
+ 'upset',
+ 'restrict',
+ 'springer',
+ 'beside',
+ 'mines',
+ 'rebound',
+ 'logan',
+ 'mentor',
+ 'fought',
+ 'baghdad',
+ 'metres',
+ 'pencil',
+ 'freeze',
+ 'titled',
+ 'sphere',
+ 'ratios',
+ 'concord',
+ 'endorsed',
+ 'walnut',
+ 'lance',
+ 'ladder',
+ 'italia',
+ 'liberia',
+ 'sherman',
+ 'maximize',
+ 'hansen',
+ 'senators',
+ 'workout',
+ 'bleeding',
+ 'colon',
+ 'lanes',
+ 'purse',
+ 'optimize',
+ 'stating',
+ 'caroline',
+ 'align',
+ 'bless',
+ 'engaging',
+ 'crest',
+ 'triumph',
+ 'welding',
+ 'deferred',
+ 'alloy',
+ 'condos',
+ 'plots',
+ 'polished',
+ 'gently',
+ 'tulsa',
+ 'locking',
+ 'casey',
+ 'draws',
+ 'fridge',
+ 'blanket',
+ 'bloom',
+ 'simpsons',
+ 'elliott',
+ 'fraser',
+ 'justify',
+ 'blades',
+ 'loops',
+ 'surge',
+ 'trauma',
+ 'tahoe',
+ 'advert',
+ 'possess',
+ 'flashers',
+ 'subaru',
+ 'vanilla',
+ 'picnic',
+ 'souls',
+ 'arrivals',
+ 'spank',
+ 'hollow',
+ 'vault',
+ 'securely',
+ 'fioricet',
+ 'groove',
+ 'pursuit',
+ 'wires',
+ 'mails',
+ 'backing',
+ 'sleeps',
+ 'blake',
+ 'travis',
+ 'endless',
+ 'figured',
+ 'orbit',
+ 'niger',
+ 'bacon',
+ 'heater',
+ 'colony',
+ 'cannon',
+ 'circus',
+ 'promoted',
+ 'forbes',
+ 'moldova',
+ 'paxil',
+ 'spine',
+ 'trout',
+ 'enclosed',
+ 'cooked',
+ 'thriller',
+ 'transmit',
+ 'apnic',
+ 'fatty',
+ 'gerald',
+ 'pressed',
+ 'scanned',
+ 'hunger',
+ 'mariah',
+ 'joyce',
+ 'surgeon',
+ 'cement',
+ 'planners',
+ 'disputes',
+ 'textiles',
+ 'missile',
+ 'intranet',
+ 'closes',
+ 'deborah',
+ 'marco',
+ 'assists',
+ 'gabriel',
+ 'auditor',
+ 'aquarium',
+ 'violin',
+ 'prophet',
+ 'bracket',
+ 'isaac',
+ 'oxide',
+ 'naples',
+ 'promptly',
+ 'modems',
+ 'harmful',
+ 'prozac',
+ 'sexually',
+ 'dividend',
+ 'newark',
+ 'glucose',
+ 'phantom',
+ 'playback',
+ 'turtle',
+ 'warned',
+ 'neural',
+ 'fossil',
+ 'hometown',
+ 'badly',
+ 'apollo',
+ 'persian',
+ 'handmade',
+ 'greene',
+ 'robots',
+ 'grenada',
+ 'scoop',
+ 'earning',
+ 'mailman',
+ 'sanyo',
+ 'nested',
+ 'somalia',
+ 'movers',
+ 'verbal',
+ 'blink',
+ 'carlo',
+ 'workflow',
+ 'novelty',
+ 'bryant',
+ 'tiles',
+ 'voyuer',
+ 'switched',
+ 'tamil',
+ 'garmin',
+ 'fuzzy',
+ 'grams',
+ 'richards',
+ 'budgets',
+ 'toolkit',
+ 'render',
+ 'carmen',
+ 'hardwood',
+ 'erotica',
+ 'temporal',
+ 'forge',
+ 'dense',
+ 'brave',
+ 'awful',
+ 'airplane',
+ 'istanbul',
+ 'impose',
+ 'viewers',
+ 'asbestos',
+ 'meyer',
+ 'enters',
+ 'savage',
+ 'willow',
+ 'resumes',
+ 'throwing',
+ 'existed',
+ 'wagon',
+ 'barbie',
+ 'knock',
+ 'potatoes',
+ 'thorough',
+ 'peers',
+ 'roland',
+ 'optimum',
+ 'quilt',
+ 'creature',
+ 'mounts',
+ 'syracuse',
+ 'refresh',
+ 'webcast',
+ 'michel',
+ 'subtle',
+ 'notre',
+ 'maldives',
+ 'stripes',
+ 'firmware',
+ 'shepherd',
+ 'canberra',
+ 'cradle',
+ 'mambo',
+ 'flour',
+ 'sympathy',
+ 'choir',
+ 'avoiding',
+ 'blond',
+ 'expects',
+ 'jumping',
+ 'fabrics',
+ 'polymer',
+ 'hygiene',
+ 'poultry',
+ 'virtue',
+ 'burst',
+ 'surgeons',
+ 'bouquet',
+ 'promotes',
+ 'mandate',
+ 'wiley',
+ 'corpus',
+ 'johnston',
+ 'fibre',
+ 'shades',
+ 'indices',
+ 'adware',
+ 'zoloft',
+ 'prisoner',
+ 'daisy',
+ 'halifax',
+ 'ultram',
+ 'cursor',
+ 'earliest',
+ 'donated',
+ 'stuffed',
+ 'insects',
+ 'crude',
+ 'morrison',
+ 'maiden',
+ 'examines',
+ 'viking',
+ 'myrtle',
+ 'bored',
+ 'cleanup',
+ 'bother',
+ 'budapest',
+ 'knitting',
+ 'attacked',
+ 'bhutan',
+ 'mating',
+ 'compute',
+ 'redhead',
+ 'arrives',
+ 'tractor',
+ 'allah',
+ 'unwrap',
+ 'fares',
+ 'resist',
+ 'hoped',
+ 'safer',
+ 'wagner',
+ 'touched',
+ 'cologne',
+ 'wishing',
+ 'ranger',
+ 'smallest',
+ 'newman',
+ 'marsh',
+ 'ricky',
+ 'scared',
+ 'theta',
+ 'monsters',
+ 'asylum',
+ 'lightbox',
+ 'robbie',
+ 'stake',
+ 'cocktail',
+ 'outlets',
+ 'arbor',
+ 'poison'
+];
+
+export function getRandomWords(length: number, distinct: boolean = true): string[] {
+ if (length <= 0) {
+ throw new Error('Invalid length parameter. Length must be greater than 0.');
+ }
+
+ if (!distinct) {
+ const randomWords: string[] = [];
+ for (let i = 0; i < length; i++) {
+ const randomIndex: number = Math.floor(Math.random() * words.length);
+ randomWords.push(words[randomIndex]);
+ }
+ return randomWords;
+ }
+
+ if (length >= words.length) return words;
+
+ const randomWordsSet: Set = new Set();
+ const randomWords: string[] = [];
+
+ while (randomWordsSet.size < length) {
+ const randomIndex: number = Math.floor(Math.random() * words.length);
+ const randomWord: string = words[randomIndex];
+ if (!randomWordsSet.has(randomWord)) {
+ randomWordsSet.add(randomWord);
+ randomWords.push(randomWord);
+ }
+ }
+
+ return randomWords;
+}
+
+export function getRandomIndex(vertexes: any[]) {
+ return getRandomInt(0, vertexes.length - 1);
+}
diff --git a/test/utils/big-o.ts b/test/utils/big-o.ts
index d197e07..5d5d906 100644
--- a/test/utils/big-o.ts
+++ b/test/utils/big-o.ts
@@ -11,7 +11,13 @@ export const magnitude = {
N_LOG_N: Math.pow(10, 4 - orderReducedBy),
SQUARED: Math.pow(10, 3 - orderReducedBy),
CUBED: Math.pow(10, 2 - orderReducedBy),
- FACTORIAL: 20 - orderReducedBy
+ FACTORIAL: 20 - orderReducedBy,
+ THOUSAND: 1000,
+ TEN_THOUSAND: 10000,
+ HUNDRED_THOUSAND: 100000,
+ MILLION: 1000000,
+ TEN_MILLION: 10000000,
+ BILLION: 100000000
};
export const bigO = {
diff --git a/test/utils/console.ts b/test/utils/console.ts
index d0badad..ff1fc72 100644
--- a/test/utils/console.ts
+++ b/test/utils/console.ts
@@ -17,6 +17,7 @@ export const Color = {
YELLOW: '\x1b[33m',
BLUE: '\x1b[34m',
MAGENTA: '\x1b[35m',
+ GRAY: '\x1b[90m',
CYAN: '\x1b[36m',
WHITE: '\x1b[37m',
BG_BLACK: '\x1b[40m',
diff --git a/test/utils/index.ts b/test/utils/index.ts
index f1d4872..97be71e 100644
--- a/test/utils/index.ts
+++ b/test/utils/index.ts
@@ -4,3 +4,4 @@ export * from './big-o';
export * from './json2html';
export * from './is';
export * from './console';
+export * from './string';
diff --git a/test/utils/number.ts b/test/utils/number.ts
index 2192cda..04c3210 100644
--- a/test/utils/number.ts
+++ b/test/utils/number.ts
@@ -1,4 +1,4 @@
-export function randomInt(min: number, max: number) {
+export function getRandomInt(min: number, max: number) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
diff --git a/test/utils/string.ts b/test/utils/string.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/test/utils/string.ts
@@ -0,0 +1 @@
+export {};