├── .gitignore
├── runserver.sh
├── data
└── read-along
│ ├── routes.js
│ ├── style.css
│ ├── index.html
│ ├── views.js
│ ├── models.js
│ └── underscore.js
├── reports
├── Ps.117
├── Ps.1
├── John.2
├── John.1
├── Ps.118
├── Gen.2
├── Gen.3
├── Col.1
├── John.3
└── Gen.1
├── README.md
├── generate-reports.py
├── bookinfo.py
└── align.py
/.gitignore:
--------------------------------------------------------------------------------
1 | /long-audio-aligner
2 | /data/*.mp3
3 | /data/*.wav
4 | /data/*.txt
5 | /data/*.html
6 | /data/*.json
7 | *.pyc
8 | *.komodoproject
9 |
--------------------------------------------------------------------------------
/runserver.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo "Open http://127.0.0.1:8000/read-along/ in your browser"
4 |
5 | cd data
6 | python -m SimpleHTTPServer 8000
7 |
8 |
--------------------------------------------------------------------------------
/data/read-along/routes.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | var AppRouter = Backbone.Router.extend({
4 | routes: {
5 | ":bookCode.:chapterNumber": "viewChapter"
6 | },
7 | viewChapter: function(bookCode, chapterNumber){
8 | chapterNumber = parseInt(chapterNumber, 10);
9 |
10 | query_view.selectBook(bookCode);
11 | query_view.selectChapter(chapterNumber);
12 |
13 | var bookObj = _(esv_bible.select(function(bookObj){ return bookObj.get('osis') == bookCode; })).first();
14 | var chapter = new Chapter({
15 | book: bookObj,
16 | number: chapterNumber
17 | });
18 |
19 | chapter_view.model = chapter;
20 | chapter_view.render();
21 | }
22 | });
23 | var app_router = new AppRouter();
24 |
25 | document.addEventListener('DOMContentLoaded', function(){
26 | Backbone.history.start();
27 | }, true);
28 |
29 |
30 |
--------------------------------------------------------------------------------
/reports/Ps.117:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 28
7 | Words found by aligner: 29
8 | Number of words: 1
9 | All words in the text are reported to be discovered in audio
10 | 0.3s Praise +++
11 | 0.6s -------
12 | 0.1s the +
13 | 0.3s LORD +++
14 | 0.1s all +
15 | 0.7s nations +++++++
16 | 0.6s Extol +++++++
17 | 0.4s him ++++
18 | 0.4s all ++++
19 | 0.6s peoples +++++++
20 | 0.4s For +++++
21 | 0.4s great +++++
22 | 0.2s is ++
23 | 0.1s his ++
24 | 0.7s steadfast +++++++
25 | 0.3s love +++
26 | 0.4s toward ++++
27 | 0.2s us +++
28 | 0.2s and ++
29 | 0.1s the +
30 | 0.7s faithfulness +++++++
31 | 0.1s of +
32 | 0.1s the +
33 | 0.5s LORD +++++
34 | 0.7s endures +++++++
35 | 0.6s forever ++++++
36 | 0.4s Praise +++++
37 | 0.1s the ++
38 | 0.4s LORD +++++
39 | Words left off: 0
40 |
--------------------------------------------------------------------------------
/data/read-along/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: sans-serif;
3 | }
4 |
5 |
6 | #notification_view {
7 | position: fixed;
8 | left:30%;
9 | right:30%;
10 | top:0;
11 | display:block;
12 | min-height:25px;
13 | line-height:25px;
14 | font-size:15px;
15 | margin:0;
16 | padding:0;
17 |
18 | text-align:center;
19 |
20 | background: rgba(230,230,230,0.90);
21 | border: solid 1px gray;
22 | border-top: none;
23 |
24 | -webkit-border-bottom-right-radius: 10px;
25 | -webkit-border-bottom-left-radius: 10px;
26 | -moz-border-radius-bottomright: 10px;
27 | -moz-border-radius-bottomleft: 10px;
28 | border-bottom-right-radius: 10px;
29 | border-bottom-left-radius: 10px;
30 | }
31 | #notification_view .notification {
32 | list-style: none;
33 | display: block;
34 | cursor: pointer;
35 | }
36 | #notification_view .notification:focus,
37 | #notification_view .notification:hover {
38 | text-decoration: underline;
39 | }
40 | #notification_view .notification.error {
41 | color:red;
42 | /*background: #FFCCCC;*/
43 | }
44 |
45 | #notification_view[hidden] {
46 | display: none;
47 | }
48 |
49 |
50 | body > footer {
51 | margin-top:2em;
52 | padding-top:1em;
53 | border-top:solid 1px gray;
54 | font-size:smaller;
55 | }
--------------------------------------------------------------------------------
/data/read-along/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ESV Read Along
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 | ESV Read Along
16 |
17 |
18 |
28 |
29 |
30 |
31 |
40 |
41 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ESV Text/Audio Aligner
2 | ======================
3 |
4 | Pulls down the ESV text and audio from the ESV API, then aligns the text and
5 | audio chapter-by-chapter by means of [CMU Sphinx](http://cmusphinx.sourceforge.net/)
6 | and generates `{book}.{chapter}.timings.json` timing files in the `data/`
7 | directory (see [output for John 3](https://github.com/westonruter/esv-text-audio-aligner/blob/master/data/John.3.timings.json)).
8 | The audio and text for each chapter is also saved in this directory.
9 | Previously-aligned chapters are skipped unless `--force`d. There is an
10 | ongoing [discussion](http://sourceforge.net/projects/cmusphinx/forums/forum/382337/topic/4503550)
11 | on the CMU Sphinx forums on the quality of the alignment data it provides.
12 |
13 |
14 | __Author__: Weston Ruter (@westonruter)
15 | __GitHub__: https://github.com/westonruter/esv-text-audio-aligner
16 | __Dependencies__: Python 2.7, java, ant, [sox](http://sox.sourceforge.net/), svn
17 |
18 | The ESV Text and MP3 data downloaded by this script is subject to [copyright](http://www.crossway.org/rights-permissions/esv/):
19 |
20 | > The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles, a
21 | > publishing ministry of Good News Publishers. All rights reserved.
22 |
23 | ESV API usage terms (see [full conditions](http://www.esvapi.org/#conditions)):
24 |
25 | > You can access the ESV text using the key "IP" (without the quotes). This
26 | > key limits you to 5,000 queries per day from a single IP address. You are
27 | > bound by the below conditions of use, including the non-commercial
28 | > aspects.
29 |
30 | Background
31 | ----------
32 |
33 | This project was birthed out of a desire to realize the read-along app, where
34 | the currently-spoken word in the audio is higlighted in the text on the screen.
35 | I made an [HTML5 Audio Read-Along prototype](https://github.com/westonruter/html5-audio-read-along#readme)
36 | (includes writeup) featuring a passage from Luke 2 of the ESV, but the actual audio timing
37 | data for the Luke 2 sample I had to obtain manually (read: painstakingly). This
38 | project aims to generate the audio word timings automatically so that the entire
39 | Bible can be used in a read-along app.
40 |
41 | Usage
42 | -----
43 |
44 | $ python align.py [-f|--force] [osisBook [[chapter], [chapter]...]]...
45 |
46 | Examples
47 | --------
48 |
49 | Align Genesis 1:
50 |
51 | $ python align.py Gen 1
52 |
53 | Align John 3, overridding any existing timings:
54 |
55 | $ python align.py -f John 3
56 |
57 | Align Genesis 1-3, Psalm 1, and all of Colossians:
58 |
59 | $ python align.py Gen 1 2 3 Ps 1 Col
60 |
61 | License
62 | -------
63 | Dual licensed under the MIT or GPL Version 2 licenses.
64 | MIT License: http://creativecommons.org/licenses/MIT/
65 | GPL 2.0 license: http://creativecommons.org/licenses/GPL/2.0/
66 |
--------------------------------------------------------------------------------
/generate-reports.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """
3 | Report generator to help provide feedback to the CMU Sphinx project.
4 | Usage: generate-reports.py [osisBook chapter[...]]...
5 | """
6 |
7 | import json
8 | import codecs
9 | import sys
10 | import re
11 | import math
12 | import bookinfo
13 | import os
14 |
15 | # Get args
16 | books = bookinfo.get_book_subset(sys.argv[1:])
17 |
18 | for bookinfo in books:
19 | for chapter in bookinfo.chapters:
20 | # Get timings
21 | timings_file = "data/%s.%d.timings.json" % (bookinfo.osis, chapter)
22 | if not os.path.exists(timings_file):
23 | continue
24 | with codecs.open(timings_file, encoding='utf-8') as f:
25 | timings = json.loads(f.read()).get('words')
26 |
27 | # Get the original
28 | text_file = "data/%s.%d.txt" % (bookinfo.osis, chapter)
29 | if not os.path.exists(text_file):
30 | continue
31 | with codecs.open(text_file, encoding='utf-8') as f:
32 | original_words = map(lambda s: re.sub(r'^\W+|\W+$', '', s), f.read().strip().split())
33 | assert(len(original_words) != 0)
34 |
35 | print '%s.%d' % (bookinfo.osis, chapter)
36 |
37 | freport = codecs.open('reports/%s.%d' % (bookinfo.osis, chapter), mode='w', encoding='utf-8')
38 |
39 | freport.write("Any data appearing in the ESV text column herein is copyrighted:\n")
40 | freport.write("The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,\n")
41 | freport.write("a publishing ministry of Good News Publishers. All rights reserved.\n")
42 | freport.write("\n\n")
43 |
44 | freport.write("Words in source text: %d\n" % len(original_words))
45 | freport.write("Words found by aligner: %d\n" % len(timings))
46 | freport.write("Number of words: %d\n" % len(filter(lambda t: t['word'] is None, timings)))
47 |
48 | missing_original_words = list(original_words)
49 | for timing in timings:
50 | if len(missing_original_words) == 0:
51 | assert(timing['word'] is None)
52 | elif missing_original_words[0] == timing['word']:
53 | missing_original_words.pop(0)
54 |
55 | if len(missing_original_words):
56 | freport.write("Number of words that were left off: %d (%.1f%%)\n" % (
57 | len(missing_original_words),
58 | float(len(missing_original_words))/len(original_words)*100
59 | ))
60 | else:
61 | freport.write("All words in the text are reported to be discovered in audio\n")
62 | word_max_length = max([len(word) for word in original_words])
63 | pad_format = "%% -%ds" % (word_max_length+1) # so meta
64 |
65 | timings_queue = list(timings)
66 | for timing in timings_queue:
67 | freport.write('% 2.01fs ' % (timing['end'] - timing['start']))
68 | word = ''
69 | if timing['word'] is None:
70 | word = ''
71 | else:
72 | word = timing['word']
73 | freport.write(pad_format % word)
74 | freport.write(' ')
75 |
76 | for i in range(0, int((timing['end'] - timing['start'])*10)+1):
77 | if timing['word'] is None:
78 | freport.write('-')
79 | else:
80 | freport.write('+')
81 | freport.write("\n")
82 |
83 | freport.write("Words left off: %d\n" % len(missing_original_words))
84 |
85 | freport.close()
86 |
--------------------------------------------------------------------------------
/reports/Ps.1:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 124
7 | Words found by aligner: 126
8 | Number of words: 2
9 | All words in the text are reported to be discovered in audio
10 | 0.3s Blessed ++++
11 | 0.2s is +++
12 | 0.1s the +
13 | 0.4s man ++++
14 | 0.1s who ++
15 | 0.4s walks ++++
16 | 0.3s not +++
17 | 0.1s in +
18 | 0.1s the +
19 | 0.5s counsel ++++++
20 | 0.1s of +
21 | 0.1s the ++
22 | 0.4s wicked +++++
23 | 0.2s nor ++
24 | 0.5s stands +++++
25 | 0.1s in +
26 | 0.1s the +
27 | 0.1s way ++
28 | 0.1s of ++
29 | 0.5s sinners ++++++
30 | 0.6s nor ++++++
31 | 0.4s sits ++++
32 | 0.1s in +
33 | 0.1s the +
34 | 0.3s seat ++++
35 | 0.1s of ++
36 | 0.7s scoffers +++++++
37 | 0.2s but +++
38 | 0.2s his +++
39 | 0.5s delight +++++
40 | 0.1s is ++
41 | 0.1s in +
42 | 0.1s the +
43 | 0.4s law ++++
44 | 0.1s of +
45 | 0.1s the ++
46 | 0.5s LORD +++++
47 | 0.2s and ++
48 | 0.2s on +++
49 | 0.3s his ++++
50 | 0.3s law ++++
51 | 0.2s he ++
52 | 0.6s meditates +++++++
53 | 0.3s day +++
54 | 0.2s and ++
55 | 0.4s night ++++
56 | 0.6s -------
57 | 0.1s He +
58 | 0.1s is ++
59 | 0.2s like +++
60 | 0.1s a +
61 | 0.5s tree +++++
62 | 0.5s planted +++++
63 | 0.2s by ++
64 | 0.6s streams ++++++
65 | 0.1s of ++
66 | 0.4s water +++++
67 | 0.2s that ++
68 | 0.5s yields ++++++
69 | 0.1s its ++
70 | 0.5s fruit +++++
71 | 0.1s in +
72 | 0.2s its ++
73 | 0.6s season ++++++
74 | 0.4s and ++++
75 | 0.2s its ++
76 | 0.3s leaf ++++
77 | 0.3s does +++
78 | 0.2s not +++
79 | 0.4s wither ++++
80 | 0.8s --------
81 | 0.2s In ++
82 | 0.2s all ++
83 | 0.1s that ++
84 | 0.1s he ++
85 | 0.4s does +++++
86 | 0.1s he ++
87 | 0.8s prospers +++++++++
88 | 1.1s The +++++++++++
89 | 0.4s wicked ++++
90 | 0.1s are +
91 | 0.2s not +++
92 | 0.4s so ++++
93 | 0.1s but ++
94 | 0.1s are +
95 | 0.3s like +++
96 | 0.4s chaff +++++
97 | 0.2s that ++
98 | 0.1s the ++
99 | 0.4s wind ++++
100 | 0.4s drives +++++
101 | 0.5s away ++++++
102 | 0.6s Therefore +++++++
103 | 0.1s the ++
104 | 0.3s wicked ++++
105 | 0.1s will ++
106 | 0.2s not +++
107 | 0.5s stand +++++
108 | 0.1s in +
109 | 0.1s the +
110 | 0.5s judgment +++++
111 | 0.2s nor +++
112 | 0.4s sinners +++++
113 | 0.1s in +
114 | 0.1s the ++
115 | 0.7s congregation ++++++++
116 | 0.1s of +
117 | 0.1s the ++
118 | 0.5s righteous ++++++
119 | 0.6s for +++++++
120 | 0.1s the ++
121 | 0.3s LORD ++++
122 | 0.2s knows +++
123 | 0.1s the ++
124 | 0.2s way ++
125 | 0.1s of ++
126 | 0.1s the ++
127 | 0.5s righteous ++++++
128 | 0.2s but ++
129 | 0.1s the ++
130 | 0.2s way +++
131 | 0.1s of ++
132 | 0.1s the ++
133 | 0.3s wicked ++++
134 | 0.2s will ++
135 | 0.6s perish +++++++
136 | Words left off: 0
137 |
--------------------------------------------------------------------------------
/data/read-along/views.js:
--------------------------------------------------------------------------------
1 | var NotificationView = Backbone.View.extend({
2 | collection: null,
3 | initialize: function(){
4 | //this.notifications.create({message:'fp'})
5 | var view = this;
6 |
7 | this.collection.bind("add", function(notification){
8 | view.el.prop('hidden', false);
9 | var item = _.template( $("#notification_template").html(), {
10 | cid: notification.cid,
11 | message: notification.get('message'),
12 | type: notification.get('type')
13 | });
14 | view.el.prepend(item);
15 | });
16 |
17 | this.collection.bind("remove", function(notification){
18 | view.el.find('[data-cid="' + notification.cid + '"]').remove();
19 | if(this.isEmpty()){
20 | view.el.prop('hidden', true);
21 | }
22 | });
23 |
24 | this.render();
25 | },
26 | render: function(){
27 | // This needs to list out all from the Notification collection
28 | },
29 | events: {
30 | "click .notification": "clickItem"
31 | },
32 | clickItem: function(e){
33 | var notification = this.collection.getByCid($(e.target).data('cid'));
34 | this.collection.remove(notification);
35 | }
36 | });
37 | var notification_view = new NotificationView({
38 | el: $('#notification_view'),
39 | collection: notifications
40 | });
41 |
42 |
43 | var ChapterView = Backbone.View.extend({
44 | model: Chapter, // ???
45 |
46 | initialize: function(){
47 |
48 | },
49 | render: function(){
50 | var vars = {
51 | title: this.model.get('book').get('name') + ' ' + this.model.get('number')
52 | };
53 | var template = _.template( $("#chapter_template").html(), vars );
54 | this.el.html( template );
55 | var view = this;
56 | this.model.loadData(function(responseData){
57 | if(responseData.errors.length){
58 | _(responseData.errors).each(function(error){
59 | notifications.add({message: error.toString(), type:"error"});
60 | });
61 | view.$('.text').html('');
62 | }
63 | else {
64 | view.$('.text').html(responseData.text);
65 | }
66 | });
67 | }
68 | });
69 |
70 | var chapter_view = new ChapterView({
71 | el: $("#chapter_view")
72 | });
73 |
74 | var QueryView = Backbone.View.extend({
75 | initialize: function(){
76 | this.render()
77 | },
78 | render: function(){
79 | var vars = {
80 | books: esv_bible.map(function(book){ return {
81 | text: book.get('name'),
82 | value: book.get('osis')
83 | }})
84 | };
85 | var template = _.template( $("#query_template").html(), vars );
86 | this.el.html( template );
87 | this.$('#book')[0].selectedIndex = -1;
88 | this.$('#chapter').val('');
89 | },
90 |
91 |
92 | selectBook: function(osisBook){
93 | if( osisBook == this.$('#book').val() ){
94 | return;
95 | }
96 | this.$('#book').val(osisBook).trigger('change');
97 | },
98 | selectChapter: function(chapterNumber){
99 | if( chapterNumber == this.$('#chapter').val() ){
100 | return;
101 | }
102 | this.$('#chapter').val(chapterNumber);
103 | },
104 |
105 | events: {
106 | "submit form" : "onSubmitForm",
107 | "change #book" : "onChangeBook"
108 | },
109 |
110 | onSubmitForm: function(e){
111 | e.preventDefault();
112 | var book = this.$('#book').val();
113 | var chapter = this.$('#chapter').val();
114 | if( !book || !chapter ){
115 | alert("Oops! Your browser shouldn't have let you submit the form. You're missing values.");
116 | return;
117 | }
118 | app_router.navigate(book + '.' + chapter, true);
119 | },
120 |
121 | onChangeBook: function(e){
122 | var book = this.$('#book').val();
123 | var bookObj = _.first(esv_bible.select(function(bookObj){ return book == bookObj.get('osis'); }));
124 | var $chapter = this.$('#chapter');
125 | $chapter.attr('max', bookObj.get('chapters'));
126 | $chapter.val( Math.min($chapter.val(), bookObj.get('chapters')) );
127 | }
128 |
129 | });
130 |
131 | var query_view = new QueryView({
132 | el: $("#query_view")
133 | });
134 |
--------------------------------------------------------------------------------
/bookinfo.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """
3 | Basic metadata for books of the Bible
4 | """
5 |
6 | class BookInfo:
7 | def __init__(self, chapters, osis, name):
8 | self.chapters = chapters
9 | self.osis = osis
10 | self.name = name
11 |
12 | # @todo This might work better as an OrderedDict, keyed by osisBook
13 | books = (
14 | BookInfo(range(1,50+1), 'Gen', 'Genesis'),
15 | BookInfo(range(1,40+1), 'Exod', 'Exodus'),
16 | BookInfo(range(1,27+1), 'Lev', 'Leviticus'),
17 | BookInfo(range(1,36+1), 'Num', 'Numbers'),
18 | BookInfo(range(1,34+1), 'Deut', 'Deuteronomy'),
19 | BookInfo(range(1,24+1), 'Josh', 'Joshua'),
20 | BookInfo(range(1,21+1), 'Judg', 'Judges'),
21 | BookInfo(range(1,4+1), 'Ruth', 'Ruth'),
22 | BookInfo(range(1,31+1), '1Sam', '1 Samuel'),
23 | BookInfo(range(1,24+1), '2Sam', '2 Samuel'),
24 | BookInfo(range(1,22+1), '1Kgs', '1 Kings'),
25 | BookInfo(range(1,25+1), '2Kgs', '2 Kings'),
26 | BookInfo(range(1,29+1), '1Chr', '1 Chronicles'),
27 | BookInfo(range(1,36+1), '2Chr', '2 Chronicles'),
28 | BookInfo(range(1,10+1), 'Ezra', 'Ezra'),
29 | BookInfo(range(1,13+1), 'Neh', 'Nehemiah'),
30 | BookInfo(range(1,10+1), 'Esth', 'Esther'),
31 | BookInfo(range(1,42+1), 'Job', 'Job'),
32 | BookInfo(range(1,150+1), 'Ps', 'Psalms'),
33 | BookInfo(range(1,31+1), 'Prov', 'Proverbs'),
34 | BookInfo(range(1,12+1), 'Eccl', 'Ecclesiastes'),
35 | BookInfo(range(1,8+1), 'Song', 'Song of Solomon'),
36 | BookInfo(range(1,66+1), 'Isa', 'Isaiah'),
37 | BookInfo(range(1,52+1), 'Jer', 'Jeremiah'),
38 | BookInfo(range(1,5+1), 'Lam', 'Lamentations'),
39 | BookInfo(range(1,48+1), 'Ezek', 'Ezekiel'),
40 | BookInfo(range(1,12+1), 'Dan', 'Daniel'),
41 | BookInfo(range(1,14+1), 'Hos', 'Hosea'),
42 | BookInfo(range(1,3+1), 'Joel', 'Joel'),
43 | BookInfo(range(1,9+1), 'Amos', 'Amos'),
44 | BookInfo(range(1,1+1), 'Obad', 'Obadiah'),
45 | BookInfo(range(1,4+1), 'Jonah', 'Jonah'),
46 | BookInfo(range(1,7+1), 'Mic', 'Micah'),
47 | BookInfo(range(1,3+1), 'Nah', 'Nahum'),
48 | BookInfo(range(1,3+1), 'Hab', 'Habakkuk'),
49 | BookInfo(range(1,3+1), 'Zeph', 'Zephaniah'),
50 | BookInfo(range(1,2+1), 'Hag', 'Haggai'),
51 | BookInfo(range(1,14+1), 'Zech', 'Zechariah'),
52 | BookInfo(range(1,4+1), 'Mal', 'Malachi'),
53 | BookInfo(range(1,28+1), 'Matt', 'Matthew'),
54 | BookInfo(range(1,16+1), 'Mark', 'Mark'),
55 | BookInfo(range(1,24+1), 'Luke', 'Luke'),
56 | BookInfo(range(1,21+1), 'John', 'John'),
57 | BookInfo(range(1,28+1), 'Acts', 'Acts'),
58 | BookInfo(range(1,16+1), 'Rom', 'Romans'),
59 | BookInfo(range(1,16+1), '1Cor', '1 Corinthians'),
60 | BookInfo(range(1,13+1), '2Cor', '2 Corinthians'),
61 | BookInfo(range(1,6+1), 'Gal', 'Galatians'),
62 | BookInfo(range(1,6+1), 'Eph', 'Ephesians'),
63 | BookInfo(range(1,4+1), 'Phil', 'Philippians'),
64 | BookInfo(range(1,4+1), 'Col', 'Colossians'),
65 | BookInfo(range(1,5+1), '1Thess', '1 Thessalonians'),
66 | BookInfo(range(1,3+1), '2Thess', '2 Thessalonians'),
67 | BookInfo(range(1,6+1), '1Tim', '1 Timothy'),
68 | BookInfo(range(1,4+1), '2Tim', '2 Timothy'),
69 | BookInfo(range(1,3+1), 'Titus', 'Titus'),
70 | BookInfo(range(1,1+1), 'Phlm', 'Philemon'),
71 | BookInfo(range(1,13+1), 'Heb', 'Hebrews'),
72 | BookInfo(range(1,5+1), 'Jas', 'James'),
73 | BookInfo(range(1,5+1), '1Pet', '1 Peter'),
74 | BookInfo(range(1,3+1), '2Pet', '2 Peter'),
75 | BookInfo(range(1,5+1), '1John', '1 John'),
76 | BookInfo(range(1,1+1), '2John', '2 John'),
77 | BookInfo(range(1,1+1), '3John', '3 John'),
78 | BookInfo(range(1,1+1), 'Jude', 'Jude'),
79 | BookInfo(range(1,22+1), 'Rev', 'Revelation'),
80 | )
81 |
82 |
83 | def get_book_subset(args):
84 | """
85 | Get a subset of BookInfo books; if args is empty, returns all books
86 |
87 | args -- a list of osisBooks and chapter numbers; the chapter numbers are associated
88 |
89 | with their immediately-preceding osisBook. If an osisBook appears without any
90 | subsequent chapters, then all chapters in the book will be returned.
91 |
92 | >>> subset_books = get_book_subset('John', '1')
93 | >>> len(subset_books)
94 | 1
95 | >>> subset_books[0].osis
96 | 'John'
97 | >>> len(subset_books[0].chapters)
98 | 1
99 | >>> subset_books[0].chapters[0]
100 | 1
101 | >>> subset_books = get_book_subset('Mark', '1', '3', '6', 'Jude')
102 | >>> subset_books[0].chapters
103 | [1, 3, 6]
104 | >>> len(subset_books)
105 | 2
106 | >>> subset_books[1].osis
107 | 'Jude'
108 | >>> subset_books[1].chapters
109 | [1]
110 | >>> len(get_book_subset())
111 | 66
112 | >>> subset_books = get_book_subset('Mark', '1', 'Mark')
113 | Traceback (most recent call last):
114 | ...
115 | ValueError: You already provided the osisBook 'Mark'
116 | >>> subset_books = get_book_subset('1', 'Mark')
117 | Traceback (most recent call last):
118 | ...
119 | ValueError: Expected osisBook. A chapter must be preceded by an osisBook
120 | >>> subset_books = get_book_subset('Jude', 2)
121 | Traceback (most recent call last):
122 | ...
123 | ValueError: Chapter '2' does not exist in Jude
124 | >>> subset_books = get_book_subset('Matt', 1, 2, 3, 'FOO')
125 | Traceback (most recent call last):
126 | ...
127 | ValueError: Invalid arg 'FOO'. Expected valid osisBook or chapter.
128 | >>> subset_books = get_book_subset('Matt', 1, 2, 1)
129 | Traceback (most recent call last):
130 | ...
131 | ValueError: You already provided chapter '1' for Matt
132 |
133 | """
134 |
135 | import re
136 | from copy import deepcopy
137 | from collections import OrderedDict
138 |
139 | osis_books = [book.osis for book in books]
140 | current_osis_book = None
141 | subset_book_dict = OrderedDict()
142 | for arg in args:
143 | # osisBook
144 | if arg in osis_books:
145 | if arg in subset_book_dict:
146 | raise ValueError("You already provided the osisBook '%s'" % arg)
147 | current_osis_book = arg
148 | subset_book_dict[current_osis_book] = []
149 | # chapter
150 | elif re.match('^\d+$', str(arg)):
151 | if current_osis_book is None:
152 | raise ValueError("Expected osisBook. A chapter must be preceded by an osisBook")
153 |
154 | chapter = int(arg)
155 | if chapter not in books[osis_books.index(current_osis_book)].chapters:
156 | raise ValueError("Chapter '%d' does not exist in %s" % (chapter, current_osis_book))
157 |
158 | if chapter in subset_book_dict[current_osis_book]:
159 | raise ValueError("You already provided chapter '%d' for %s" % (chapter, current_osis_book))
160 | subset_book_dict[current_osis_book].append(chapter)
161 | else:
162 | raise ValueError("Invalid arg '%s'. Expected valid osisBook or chapter." % arg)
163 |
164 | if len(subset_book_dict.keys()) == 0:
165 | return books
166 | else:
167 | subset_books = []
168 | for osis_book, chapters in subset_book_dict.iteritems():
169 | if len(chapters) == 0:
170 | subset_books.append(books[osis_books.index(osis_book)])
171 | else:
172 | book_info = deepcopy(books[osis_books.index(osis_book)])
173 | book_info.chapters = chapters
174 | subset_books.append(book_info)
175 | return subset_books
176 |
177 |
178 | # Run tests
179 | if __name__ == '__main__':
180 | import sys
181 | if '--json' in sys.argv:
182 | import json
183 | print json.dumps([book.__dict__ for book in books], indent=4)
184 | elif '--js' in sys.argv:
185 | import json
186 | import re
187 | bookinfo_json = json.dumps([book.__dict__ for book in books], indent=4)
188 | bookinfo_js = re.sub(r'\[\s+(\d+)[^\]]+?(\d+)\s+\]', '_.range(\g<1>, \g<2>+1)', bookinfo_json, 0, re.S)
189 | bookinfo_js = re.sub(r'\[\s+(\d+)\s+\]', '_.range(\g<1>, \g<1>+1)', bookinfo_js, 0, re.S)
190 | print bookinfo_js
191 | else:
192 | print "Running tests wthout without any args"
193 | import doctest
194 | doctest.testmod()
195 |
--------------------------------------------------------------------------------
/reports/John.2:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 497
7 | Words found by aligner: 285
8 | Number of words: 24
9 | Number of words that were left off: 236 (47.5%)
10 | 0.2s On ++
11 | 0.1s the +
12 | 0.3s third ++++
13 | 0.2s day +++
14 | 0.1s there ++
15 | 0.1s was ++
16 | 0.1s a +
17 | 0.3s wedding +++
18 | 0.1s at ++
19 | 0.4s Cana +++++
20 | 0.1s in ++
21 | 0.6s Galilee ++++++
22 | 0.1s and ++
23 | 0.1s the +
24 | 0.3s mother ++++
25 | 0.1s of ++
26 | 0.4s Jesus +++++
27 | 0.2s was ++
28 | 0.4s there +++++
29 | 0.5s Jesus +++++
30 | 0.3s also ++++
31 | 0.1s was ++
32 | 0.4s invited +++++
33 | 0.1s to +
34 | 0.1s the ++
35 | 0.3s wedding ++++
36 | 0.2s with ++
37 | 0.1s his ++
38 | 0.7s disciples +++++++
39 | 1.0s When +++++++++++
40 | 0.1s the +
41 | 0.3s wine ++++
42 | 0.2s ran +++
43 | 0.2s out +++
44 | 0.1s the +
45 | 0.3s mother +++
46 | 0.1s of +
47 | 0.4s Jesus ++++
48 | 0.2s said +++
49 | 0.1s to ++
50 | 0.2s him ++
51 | 0.1s They ++
52 | 0.2s have +++
53 | 0.3s no ++++
54 | 0.3s wine ++++
55 | 0.2s And ++
56 | 0.4s Jesus ++++
57 | 0.2s said +++
58 | 0.1s to +
59 | 0.2s her +++
60 | 0.2s Woman ++
61 | 1.2s what +++++++++++++
62 | 0.2s does ++
63 | 0.2s this ++
64 | 0.2s have ++
65 | 0.1s to +
66 | 0.1s do ++
67 | 0.2s with ++
68 | 0.4s me +++++
69 | 0.2s My ++
70 | 0.3s hour ++++
71 | 0.1s has ++
72 | 0.2s not +++
73 | 0.2s yet ++
74 | 0.4s come ++++
75 | 0.2s His ++
76 | 0.3s mother +++
77 | 0.2s said +++
78 | 0.1s to ++
79 | 0.1s the +
80 | 0.5s servants +++++
81 | 0.8s Do +++++++++
82 | 0.4s whatever ++++
83 | 0.1s he +
84 | 0.3s tells ++++
85 | 0.2s you ++
86 | 0.3s Now ++++
87 | 0.2s there ++
88 | 0.1s were +
89 | 0.4s six ++++
90 | 0.4s stone ++++
91 | 0.4s water ++++
92 | 0.3s jars ++++
93 | 0.2s there +++
94 | 0.2s for ++
95 | 0.1s the ++
96 | 0.3s Jewish ++++
97 | 0.3s rites ++++
98 | 0.1s of +
99 | 0.8s purification ++++++++
100 | 0.2s each +++
101 | 0.4s holding +++++
102 | 0.4s twenty ++++
103 | 0.1s or +
104 | 0.3s thirty ++++
105 | 0.5s gallons ++++++
106 | 0.5s Jesus ++++++
107 | 0.2s said +++
108 | 0.1s to +
109 | 0.1s the ++
110 | 0.6s servants ++++++
111 | 0.8s Fill ++++++++
112 | 0.1s the ++
113 | 0.5s jars +++++
114 | 0.2s with ++
115 | 0.5s water +++++
116 | 0.2s And ++
117 | 0.1s they ++
118 | 0.3s filled +++
119 | 0.1s them ++
120 | 0.1s up ++
121 | 0.1s to +
122 | 0.1s the +
123 | 0.5s brim +++++
124 | 0.1s And ++
125 | 0.1s he +
126 | 0.2s said +++
127 | 0.1s to +
128 | 0.2s them +++
129 | 0.2s Now +++
130 | 0.4s draw ++++
131 | 0.3s some +++
132 | 0.3s out ++++
133 | 0.1s and ++
134 | 0.2s take ++
135 | 0.1s it ++
136 | 0.1s to +
137 | 0.1s the ++
138 | 0.5s master +++++
139 | 0.1s of +
140 | 0.1s the +
141 | 0.5s feast +++++
142 | 0.2s So ++
143 | 0.1s they ++
144 | 0.2s took +++
145 | 0.2s it ++
146 | 1.1s When +++++++++++
147 | 0.1s the +
148 | 0.3s master ++++
149 | 0.1s of +
150 | 0.1s the +
151 | 0.4s feast +++++
152 | 0.4s tasted +++++
153 | 0.1s the ++
154 | 0.3s water ++++
155 | 0.3s now +++
156 | 0.4s become ++++
157 | 0.5s wine +++++
158 | 0.2s and +++
159 | 0.1s did ++
160 | 0.2s not ++
161 | 0.1s know ++
162 | 0.2s where ++
163 | 0.1s it +
164 | 0.3s came +++
165 | 0.3s from ++++
166 | 0.2s though ++
167 | 0.1s the +
168 | 0.5s servants +++++
169 | 0.1s who ++
170 | 0.2s had ++
171 | 0.3s drawn +++
172 | 0.1s the ++
173 | 0.3s water +++
174 | 0.3s knew ++++
175 | 0.2s the ++
176 | 0.4s master +++++
177 | 0.1s of +
178 | 0.1s the +
179 | 0.4s feast +++++
180 | 0.4s called ++++
181 | 0.1s the +
182 | 0.5s bridegroom ++++++
183 | 0.1s and ++
184 | 0.2s said +++
185 | 0.1s to +
186 | 0.2s him +++
187 | 0.6s Everyone +++++++
188 | 0.4s serves ++++
189 | 0.1s the ++
190 | 0.2s good ++
191 | 0.3s wine ++++
192 | 0.5s first ++++++
193 | 0.1s and ++
194 | 0.1s when ++
195 | 0.3s people +++
196 | 0.1s have ++
197 | 0.3s drunk +++
198 | 0.4s freely +++++
199 | 0.2s then +++
200 | 0.1s the +
201 | 0.4s poor ++++
202 | 0.5s wine +++++
203 | 0.2s But ++
204 | 0.1s you ++
205 | 0.2s have ++
206 | 0.3s kept ++++
207 | 0.2s the ++
208 | 0.2s good ++
209 | 0.4s wine ++++
210 | 0.3s until +++
211 | 0.4s now +++++
212 | 1.1s This +++++++++++
213 | 0.2s the ++
214 | 0.3s first ++++
215 | 0.1s of +
216 | 0.2s his +++
217 | 0.7s signs ++++++++
218 | 0.5s Jesus ++++++
219 | 0.3s did +++
220 | 0.1s at ++
221 | 0.4s Cana +++++
222 | 0.1s in ++
223 | 0.6s Galilee ++++++
224 | 0.2s and ++
225 | 0.6s manifested +++++++
226 | 0.2s his ++
227 | 0.5s glory +++++
228 | 0.2s And ++
229 | 0.2s his ++
230 | 0.7s disciples +++++++
231 | 0.4s believed +++++
232 | 0.1s in ++
233 | 0.2s him +++
234 | 0.3s After ++++
235 | 0.2s this +++
236 | 0.1s he +
237 | 0.2s went ++
238 | 0.2s down ++
239 | 0.1s to +
240 | 0.6s Capernaum ++++++
241 | 0.1s with ++
242 | 0.2s his ++
243 | 0.4s mother ++++
244 | 0.1s and ++
245 | 0.1s his ++
246 | 0.5s brothers +++++
247 | 0.4s and +++++
248 | 0.1s his ++
249 | 0.7s disciples ++++++++
250 | 0.1s and ++
251 | 0.1s they +
252 | 0.3s stayed ++++
253 | 0.2s there ++
254 | 0.1s for ++
255 | 0.0s a +
256 | 0.2s few ++
257 | 0.5s days ++++++
258 | 0.8s --------
259 | 3.6s ------------------------------------
260 | 3.4s ----------------------------------
261 | 1.7s -----------------
262 | 4.4s ---------------------------------------------
263 | 3.4s ----------------------------------
264 | 0.4s The +++++
265 | 7.0s ----------------------------------------------------------------------
266 | 2.3s ------------------------
267 | 2.1s ---------------------
268 | 1.4s --------------
269 | 2.2s ----------------------
270 | 2.9s -----------------------------
271 | 1.8s ------------------
272 | 7.3s --------------------------------------------------------------------------
273 | 2.0s --------------------
274 | 0.6s -------
275 | 4.4s --------------------------------------------
276 | 2.9s ------------------------------
277 | 0.7s --------
278 | 1.6s -----------------
279 | 0.4s Passover +++++
280 | 0.1s of +
281 | 0.1s the ++
282 | 0.2s Jews +++
283 | 2.6s --------------------------
284 | 0.1s was ++
285 | 0.3s at +++
286 | 0.1s hand ++
287 | 5.9s -----------------------------------------------------------
288 | 0.4s and ++++
289 | 0.1s --
290 | 0.4s Jesus +++++
291 | 0.7s --------
292 | 0.2s went +++
293 | 0.2s up ++
294 | 0.3s to ++++
295 | Words left off: 236
296 |
--------------------------------------------------------------------------------
/reports/John.1:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 965
7 | Words found by aligner: 281
8 | Number of words: 116
9 | Number of words that were left off: 800 (82.9%)
10 | 0.2s In ++
11 | 0.1s the ++
12 | 0.5s beginning +++++
13 | 0.2s was +++
14 | 0.1s the ++
15 | 0.5s Word ++++++
16 | 0.2s and ++
17 | 0.1s the ++
18 | 0.3s Word ++++
19 | 0.2s was +++
20 | 0.3s with +++
21 | 0.4s God +++++
22 | 0.1s and ++
23 | 0.1s the +
24 | 0.2s Word +++
25 | 0.3s was +++
26 | 0.4s God ++++
27 | 0.2s He +++
28 | 0.2s was +++
29 | 0.2s in ++
30 | 0.1s the +
31 | 0.5s beginning ++++++
32 | 0.2s with +++
33 | 0.5s God +++++
34 | 0.3s All +++
35 | 0.3s things +++
36 | 0.1s were ++
37 | 0.4s made ++++
38 | 0.3s through +++
39 | 0.3s him ++++
40 | 0.2s and ++
41 | 0.3s without ++++
42 | 0.2s him +++
43 | 0.2s was ++
44 | 0.3s not +++
45 | 0.2s any +++
46 | 0.2s thing ++
47 | 0.4s made +++++
48 | 0.2s that ++
49 | 0.2s was ++
50 | 0.5s made +++++
51 | 0.3s In ++++
52 | 0.1s him ++
53 | 0.2s was ++
54 | 0.5s life ++++++
55 | 0.1s and ++
56 | 0.1s the +
57 | 0.4s life ++++
58 | 0.2s was ++
59 | 0.1s the ++
60 | 0.3s light +++
61 | 0.1s of ++
62 | 0.4s men +++++
63 | 0.1s The ++
64 | 0.2s light +++
65 | 0.5s shines ++++++
66 | 0.1s in +
67 | 0.1s the ++
68 | 0.6s darkness +++++++
69 | 0.1s and ++
70 | 0.1s the ++
71 | 0.5s darkness ++++++
72 | 0.2s has ++
73 | 0.2s not +++
74 | 0.4s overcome +++++
75 | 0.2s it ++
76 | 1.6s -----------------
77 | 0.2s There ++
78 | 0.2s was ++
79 | 0.3s ----
80 | 0.1s a +
81 | 3.0s -------------------------------
82 | 1.7s -----------------
83 | 0.9s ----------
84 | 2.0s ---------------------
85 | 3.5s -----------------------------------
86 | 3.6s -------------------------------------
87 | 1.6s -----------------
88 | 2.7s ----------------------------
89 | 1.0s ----------
90 | 1.6s -----------------
91 | 1.4s --------------
92 | 2.4s -------------------------
93 | 1.5s ----------------
94 | 2.3s -----------------------
95 | 0.2s man +++
96 | 0.2s sent +++
97 | 0.1s from ++
98 | 0.5s God ++++++
99 | 2.2s ----------------------
100 | 0.3s whose ++++
101 | 1.9s -------------------
102 | 3.7s --------------------------------------
103 | 3.8s --------------------------------------
104 | 0.1s name ++
105 | 0.3s was +++
106 | 0.3s John +++
107 | 0.2s He +++
108 | 1.9s -------------------
109 | 0.2s came +++
110 | 1.2s -------------
111 | 1.3s as +++++++++++++
112 | 2.0s ---------------------
113 | 0.0s a +
114 | 0.3s witness ++++
115 | 0.1s to ++
116 | 0.2s bear ++
117 | 0.6s witness +++++++
118 | 1.9s -------------------
119 | 2.7s ----------------------------
120 | 0.7s --------
121 | 0.9s ----------
122 | 0.5s about ++++++
123 | 0.4s the +++++
124 | 0.3s light ++++
125 | 0.3s that +++
126 | 2.6s ---------------------------
127 | 0.3s all +++
128 | 5.1s ---------------------------------------------------
129 | 0.3s ----
130 | 1.2s ------------
131 | 0.4s might +++++
132 | 3.5s -----------------------------------
133 | 0.3s believe +++
134 | 0.2s through +++
135 | 0.3s him ++++
136 | 0.2s He +++
137 | 0.2s was ++
138 | 0.4s not ++++
139 | 0.3s the +++
140 | 0.4s light ++++
141 | 0.8s but +++++++++
142 | 2.7s ----------------------------
143 | 1.7s -----------------
144 | 1.8s ------------------
145 | 3.0s ------------------------------
146 | 2.6s ---------------------------
147 | 2.9s ------------------------------
148 | 3.6s -------------------------------------
149 | 4.1s -----------------------------------------
150 | 0.9s ----------
151 | 1.4s --------------
152 | 2.5s --------------------------
153 | 5.0s --------------------------------------------------
154 | 2.5s --------------------------
155 | 1.4s ---------------
156 | 2.8s -----------------------------
157 | 1.6s -----------------
158 | 0.1s came ++
159 | 0.2s to +++
160 | 0.1s bear +
161 | 0.4s witness +++++
162 | 0.2s about +++
163 | 0.1s the +
164 | 0.5s light ++++++
165 | 0.2s The ++
166 | 0.5s ------
167 | 0.2s true ++
168 | 0.3s light ++++
169 | 0.2s ---
170 | 2.4s -------------------------
171 | 1.3s --------------
172 | 1.5s ----------------
173 | 2.6s ---------------------------
174 | 0.2s which +++
175 | 0.6s enlightens ++++++
176 | 0.6s everyone ++++++
177 | 0.6s -------
178 | 1.0s -----------
179 | 0.4s was ++++
180 | 0.4s -----
181 | 2.8s -----------------------------
182 | 0.7s coming +++++++
183 | 0.6s into ++++++
184 | 1.4s --------------
185 | 2.4s ------------------------
186 | 0.2s the +++
187 | 0.5s -----
188 | 0.2s world ++
189 | 0.1s He +
190 | 0.2s was ++
191 | 0.1s in ++
192 | 1.1s ------------
193 | 0.4s the +++++
194 | 2.6s ---------------------------
195 | 3.9s ---------------------------------------
196 | 0.7s --------
197 | 2.6s --------------------------
198 | 0.1s world ++
199 | 0.2s and ++
200 | 0.2s the ++
201 | 0.9s ----------
202 | 0.4s world ++++
203 | 0.3s ----
204 | 0.2s was ++
205 | 0.2s --
206 | 4.4s --------------------------------------------
207 | 0.2s made +++
208 | 0.2s ---
209 | 0.2s through +++
210 | 3.2s ---------------------------------
211 | 0.2s him +++
212 | 0.3s ----
213 | 0.2s yet +++
214 | 0.7s --------
215 | 0.6s the +++++++
216 | 1.2s ------------
217 | 1.7s -----------------
218 | 1.0s ----------
219 | 0.8s ---------
220 | 1.3s --------------
221 | 3.0s -------------------------------
222 | 0.2s world +++
223 | 0.2s ---
224 | 0.2s did ++
225 | 0.2s not +++
226 | 0.3s know +++
227 | 0.1s him +
228 | 1.4s --------------
229 | 0.2s He ++
230 | 0.2s came ++
231 | 0.4s -----
232 | 0.2s to ++
233 | 0.5s his +++++
234 | 1.8s -------------------
235 | 2.4s ------------------------
236 | 0.4s -----
237 | 0.3s own +++
238 | 0.1s and ++
239 | 0.2s his +++
240 | 8.7s ---------------------------------------------------------------------------------------
241 | 0.4s own +++++
242 | 1.4s --------------
243 | 1.6s ----------------
244 | 2.5s --------------------------
245 | 1.8s -------------------
246 | 0.7s -------
247 | 2.9s -----------------------------
248 | 1.8s -------------------
249 | 6.6s ------------------------------------------------------------------
250 | 4.7s ------------------------------------------------
251 | 1.5s ----------------
252 | 1.0s ----------
253 | 2.6s ---------------------------
254 | 1.4s ---------------
255 | 0.7s people +++++++
256 | 0.3s did ++++
257 | 0.2s not +++
258 | 0.3s receive ++++
259 | 1.8s ------------------
260 | 1.0s -----------
261 | 1.1s -----------
262 | 0.1s him +
263 | 0.2s But ++
264 | 0.9s ---------
265 | 0.3s to ++++
266 | 2.2s -----------------------
267 | 3.3s ----------------------------------
268 | 1.2s -------------
269 | 1.2s -------------
270 | 0.2s all ++
271 | 1.8s -------------------
272 | 0.1s who +
273 | 1.3s --------------
274 | 1.0s -----------
275 | 0.3s did ++++
276 | 0.3s receive ++++
277 | 0.2s him ++
278 | 0.1s who ++
279 | 0.7s believed +++++++
280 | 0.2s in ++
281 | 1.5s ---------------
282 | 0.4s his +++++
283 | 1.0s -----------
284 | 1.6s ----------------
285 | 1.3s --------------
286 | 0.1s name ++
287 | 0.1s he ++
288 | 0.2s gave +++
289 | 2.7s ---------------------------
290 | 0.4s the ++++
291 | Words left off: 800
292 |
--------------------------------------------------------------------------------
/data/read-along/models.js:
--------------------------------------------------------------------------------
1 | var Notification = Backbone.Model.extend({
2 | defaults: {
3 | message: ""
4 | }
5 | });
6 | var NotificationCollection = Backbone.Collection.extend({
7 | model: Notification
8 | });
9 | var notifications = new NotificationCollection();
10 |
11 | var Book = Backbone.Model.extend({
12 | defaults: {
13 | name: "Unknown",
14 | osis: "unknown",
15 | chapters: 0
16 | },
17 | initialize: function(attributes){
18 |
19 | },
20 | getChapter: function(number){
21 | if(number <= 0 || number > this.attributes.chapters){
22 | throw Error("Chapter number out of range: " + number);
23 | }
24 | return new Chapter({
25 | book: this,
26 | number: number
27 | });
28 | }
29 | });
30 |
31 |
32 | var Chapter = Backbone.Model.extend({
33 | defaults: {
34 | book: null,
35 | number: 0
36 | /*,
37 | timings: [],
38 | html: null,
39 | audio: [] // list of URLs to audio
40 | */
41 | },
42 | audioFormats: [
43 | {
44 | 'mime': 'audio/mpeg',
45 | 'ext': 'mp3'
46 | },
47 | {
48 | 'mime': 'audio/vnd.wave',
49 | 'ext': 'wav'
50 | },
51 | {
52 | 'mime': 'audio/ogg',
53 | 'ext': 'ogg'
54 | }
55 | ],
56 | initialize: function( attributes ){
57 |
58 | // @todo Can this be async to fetch the html, audio urls
59 | },
60 |
61 | loadData: function(callback){
62 | var dataPath = '../';
63 | var osisID = this.get('book').get('osis') + '.' + this.get('number');
64 |
65 | var requestQueue = [
66 | {
67 | url: dataPath + osisID + '.html',
68 | property: 'text',
69 | type: 'html'
70 | },
71 | {
72 | url: dataPath + osisID + '.timings.json',
73 | property: 'timings',
74 | type: 'json'
75 | }
76 | ];
77 | var completedRequestCount = 0; // TODO: Implement via promises?
78 |
79 | var responseData = {
80 | errors: []
81 | };
82 |
83 | _(requestQueue).each(function(request){
84 | try {
85 | var xhr = new XMLHttpRequest();
86 | xhr.open('GET', request.url);
87 | xhr.onreadystatechange = function(){
88 | if(xhr.readyState == 4){
89 | completedRequestCount++;
90 |
91 | if(xhr.status == 200){
92 | var data = xhr.responseText;
93 | if( request.type == 'json' ){
94 | data = JSON.parse(data);
95 | }
96 | responseData[request.property] = data;
97 | }
98 | else {
99 | responseData.errors.push(new Error(xhr.statusText + ': ' + request.url));
100 | }
101 |
102 | if(completedRequestCount == requestQueue.length){
103 | callback(responseData);
104 | }
105 | }
106 | };
107 | xhr.send(null);
108 | }
109 | catch(e){
110 | responseData.push(new Error(xhr.statusText));
111 | callback(responseData);
112 | }
113 | });
114 |
115 | }
116 |
117 | });
118 |
119 | var Bible = Backbone.Collection.extend({
120 | model: Book
121 | });
122 |
123 | var esv_bible = new Bible([ // This array is generated via $ python bokinfo.py --js
124 | {
125 | "osis": "Gen",
126 | "chapters": 50,
127 | "name": "Genesis"
128 | },
129 | {
130 | "osis": "Exod",
131 | "chapters": 40,
132 | "name": "Exodus"
133 | },
134 | {
135 | "osis": "Lev",
136 | "chapters": 27,
137 | "name": "Leviticus"
138 | },
139 | {
140 | "osis": "Num",
141 | "chapters": 36,
142 | "name": "Numbers"
143 | },
144 | {
145 | "osis": "Deut",
146 | "chapters": 34,
147 | "name": "Deuteronomy"
148 | },
149 | {
150 | "osis": "Josh",
151 | "chapters": 24,
152 | "name": "Joshua"
153 | },
154 | {
155 | "osis": "Judg",
156 | "chapters": 21,
157 | "name": "Judges"
158 | },
159 | {
160 | "osis": "Ruth",
161 | "chapters": 4,
162 | "name": "Ruth"
163 | },
164 | {
165 | "osis": "1Sam",
166 | "chapters": 31,
167 | "name": "1 Samuel"
168 | },
169 | {
170 | "osis": "2Sam",
171 | "chapters": 24,
172 | "name": "2 Samuel"
173 | },
174 | {
175 | "osis": "1Kgs",
176 | "chapters": 22,
177 | "name": "1 Kings"
178 | },
179 | {
180 | "osis": "2Kgs",
181 | "chapters": 25,
182 | "name": "2 Kings"
183 | },
184 | {
185 | "osis": "1Chr",
186 | "chapters": 29,
187 | "name": "1 Chronicles"
188 | },
189 | {
190 | "osis": "2Chr",
191 | "chapters": 36,
192 | "name": "2 Chronicles"
193 | },
194 | {
195 | "osis": "Ezra",
196 | "chapters": 10,
197 | "name": "Ezra"
198 | },
199 | {
200 | "osis": "Neh",
201 | "chapters": 13,
202 | "name": "Nehemiah"
203 | },
204 | {
205 | "osis": "Esth",
206 | "chapters": 10,
207 | "name": "Esther"
208 | },
209 | {
210 | "osis": "Job",
211 | "chapters": 42,
212 | "name": "Job"
213 | },
214 | {
215 | "osis": "Ps",
216 | "chapters": 150,
217 | "name": "Psalms"
218 | },
219 | {
220 | "osis": "Prov",
221 | "chapters": 31,
222 | "name": "Proverbs"
223 | },
224 | {
225 | "osis": "Eccl",
226 | "chapters": 12,
227 | "name": "Ecclesiastes"
228 | },
229 | {
230 | "osis": "Song",
231 | "chapters": 8,
232 | "name": "Song of Solomon"
233 | },
234 | {
235 | "osis": "Isa",
236 | "chapters": 66,
237 | "name": "Isaiah"
238 | },
239 | {
240 | "osis": "Jer",
241 | "chapters": 52,
242 | "name": "Jeremiah"
243 | },
244 | {
245 | "osis": "Lam",
246 | "chapters": 5,
247 | "name": "Lamentations"
248 | },
249 | {
250 | "osis": "Ezek",
251 | "chapters": 48,
252 | "name": "Ezekiel"
253 | },
254 | {
255 | "osis": "Dan",
256 | "chapters": 12,
257 | "name": "Daniel"
258 | },
259 | {
260 | "osis": "Hos",
261 | "chapters": 14,
262 | "name": "Hosea"
263 | },
264 | {
265 | "osis": "Joel",
266 | "chapters": 3,
267 | "name": "Joel"
268 | },
269 | {
270 | "osis": "Amos",
271 | "chapters": 9,
272 | "name": "Amos"
273 | },
274 | {
275 | "osis": "Obad",
276 | "chapters": 1,
277 | "name": "Obadiah"
278 | },
279 | {
280 | "osis": "Jonah",
281 | "chapters": 4,
282 | "name": "Jonah"
283 | },
284 | {
285 | "osis": "Mic",
286 | "chapters": 7,
287 | "name": "Micah"
288 | },
289 | {
290 | "osis": "Nah",
291 | "chapters": 3,
292 | "name": "Nahum"
293 | },
294 | {
295 | "osis": "Hab",
296 | "chapters": 3,
297 | "name": "Habakkuk"
298 | },
299 | {
300 | "osis": "Zeph",
301 | "chapters": 3,
302 | "name": "Zephaniah"
303 | },
304 | {
305 | "osis": "Hag",
306 | "chapters": 2,
307 | "name": "Haggai"
308 | },
309 | {
310 | "osis": "Zech",
311 | "chapters": 14,
312 | "name": "Zechariah"
313 | },
314 | {
315 | "osis": "Mal",
316 | "chapters": 4,
317 | "name": "Malachi"
318 | },
319 | {
320 | "osis": "Matt",
321 | "chapters": 28,
322 | "name": "Matthew"
323 | },
324 | {
325 | "osis": "Mark",
326 | "chapters": 16,
327 | "name": "Mark"
328 | },
329 | {
330 | "osis": "Luke",
331 | "chapters": 24,
332 | "name": "Luke"
333 | },
334 | {
335 | "osis": "John",
336 | "chapters": 21,
337 | "name": "John"
338 | },
339 | {
340 | "osis": "Acts",
341 | "chapters": 28,
342 | "name": "Acts"
343 | },
344 | {
345 | "osis": "Rom",
346 | "chapters": 16,
347 | "name": "Romans"
348 | },
349 | {
350 | "osis": "1Cor",
351 | "chapters": 16,
352 | "name": "1 Corinthians"
353 | },
354 | {
355 | "osis": "2Cor",
356 | "chapters": 13,
357 | "name": "2 Corinthians"
358 | },
359 | {
360 | "osis": "Gal",
361 | "chapters": 6,
362 | "name": "Galatians"
363 | },
364 | {
365 | "osis": "Eph",
366 | "chapters": 6,
367 | "name": "Ephesians"
368 | },
369 | {
370 | "osis": "Phil",
371 | "chapters": 4,
372 | "name": "Philippians"
373 | },
374 | {
375 | "osis": "Col",
376 | "chapters": 4,
377 | "name": "Colossians"
378 | },
379 | {
380 | "osis": "1Thess",
381 | "chapters": 5,
382 | "name": "1 Thessalonians"
383 | },
384 | {
385 | "osis": "2Thess",
386 | "chapters": 3,
387 | "name": "2 Thessalonians"
388 | },
389 | {
390 | "osis": "1Tim",
391 | "chapters": 6,
392 | "name": "1 Timothy"
393 | },
394 | {
395 | "osis": "2Tim",
396 | "chapters": 4,
397 | "name": "2 Timothy"
398 | },
399 | {
400 | "osis": "Titus",
401 | "chapters": 3,
402 | "name": "Titus"
403 | },
404 | {
405 | "osis": "Phlm",
406 | "chapters": 1,
407 | "name": "Philemon"
408 | },
409 | {
410 | "osis": "Heb",
411 | "chapters": 13,
412 | "name": "Hebrews"
413 | },
414 | {
415 | "osis": "Jas",
416 | "chapters": 5,
417 | "name": "James"
418 | },
419 | {
420 | "osis": "1Pet",
421 | "chapters": 5,
422 | "name": "1 Peter"
423 | },
424 | {
425 | "osis": "2Pet",
426 | "chapters": 3,
427 | "name": "2 Peter"
428 | },
429 | {
430 | "osis": "1John",
431 | "chapters": 5,
432 | "name": "1 John"
433 | },
434 | {
435 | "osis": "2John",
436 | "chapters": 1,
437 | "name": "2 John"
438 | },
439 | {
440 | "osis": "3John",
441 | "chapters": 1,
442 | "name": "3 John"
443 | },
444 | {
445 | "osis": "Jude",
446 | "chapters": 1,
447 | "name": "Jude"
448 | },
449 | {
450 | "osis": "Rev",
451 | "chapters": 22,
452 | "name": "Revelation"
453 | }
454 | ]);
455 |
--------------------------------------------------------------------------------
/align.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """
3 | ESV Text/Audio Aligner using CMU Sphinx
4 | Pulls down the ESV text and audio from the ESV API, then generates
5 | chapyer-by-chapter {book}.{chapter}.timings.json files in the data/ directory.
6 | Previously-aligned chapters are skipped unless forced.
7 |
8 | Author: Weston Ruter @westonruter
9 | Project: https://github.com/westonruter/esv-audio-timings
10 | Dependencies: Python 2.7, java, ant, sox, svn
11 |
12 | The ESV Text and MP3 data downloaded by this script is subject to copyright:
13 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles, a
14 | publishing ministry of Good News Publishers. All rights reserved.
15 |
16 |
17 | ESV API usage terms available from http://www.esvapi.org/
18 | You can access the ESV text using the key "IP" (without the quotes). This
19 | key limits you to 5,000 queries per day from a single IP address. You are
20 | bound by the below conditions of use, including the non-commercial
21 | aspects.
22 |
23 | USAGE:
24 | $ python align.py [-f|--force] [osisBook] [chapter, [chapter]...] [osisBook] [chapter, [chapter]...] ...
25 |
26 | See README for examples and further information.
27 |
28 | Dual licensed under the MIT or GPL Version 2 licenses.
29 | MIT License: http://creativecommons.org/licenses/MIT/
30 | GPL 2.0 license: http://creativecommons.org/licenses/GPL/2.0/
31 | """
32 |
33 | import subprocess
34 | import os
35 | from os import path
36 | import urllib
37 | import codecs
38 | import sys
39 | import shutil
40 | import json
41 | import re
42 | from collections import OrderedDict
43 | from time import time as clock
44 | import bookinfo
45 |
46 | def align(argv):
47 | """ Main function for this module (see its docstring for usage) """
48 |
49 | init_start_time = clock()
50 |
51 | __dir__ = path.realpath(path.dirname(__file__))
52 | sphinx_long_audio_aligner_repo_url = "http://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/branches/long-audio-aligner/Aligner"
53 | long_audio_aligner_path = __dir__ + '/long-audio-aligner'
54 | data_path = __dir__ + '/data'
55 | is_force = ('--force' in sys.argv or '-f' in sys.argv)
56 | book_args = filter(lambda arg: arg[0] != '-', argv)
57 |
58 | books = bookinfo.get_book_subset(book_args)
59 |
60 | # svn co http://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/branches/long-audio-aligner/Aligner aligner
61 | if not path.exists(long_audio_aligner_path):
62 | print "Fetching long-audio-aligner from Sourceforge..."
63 | subprocess.call(['svn', 'co', sphinx_long_audio_aligner_repo_url, long_audio_aligner_path])
64 |
65 | # Remove the initial batchFile since we don't want to process it anyway
66 | f = open(long_audio_aligner_path + '/resource/batchFile.txt', 'w')
67 | f.write('')
68 | f.close()
69 |
70 | # Build the Java project
71 | cwd = os.path.realpath(os.curdir)
72 | os.chdir(long_audio_aligner_path)
73 | print "Running ant"
74 | retcode = subprocess.call(['ant'])
75 | if retcode != 0:
76 | raise Exception("fail (have you ant?)")
77 | os.chdir(cwd)
78 |
79 | # Create the data directory which is where we put all the ESV data: audio, text, HTML, alignments
80 | if not path.exists(data_path):
81 | print "Making data dir"
82 | os.mkdir(data_path)
83 |
84 | def save_url(url, file, encoding=None):
85 | """Fetch a URL and save if to file, throwing exception if HTTP fail"""
86 | if encoding:
87 | fo = codecs.open(file, mode='w', encoding=encoding)
88 | else:
89 | fo = open(file, 'w')
90 | fi = urllib.urlopen(url)
91 | if not fi.getcode() or fi.getcode() != 200:
92 | raise Exception("Unable to fetch %s. Status code: %s" % (url, str(fi.getcode())))
93 | fo.write(fi.read())
94 | fo.close()
95 |
96 | for book in books:
97 | print "########################"
98 | print "%s (%s)" % (book.name, book.osis)
99 | print "########################"
100 |
101 | book_start_time = clock()
102 |
103 | for chapter in book.chapters:
104 | chapter_start_time = clock()
105 |
106 | mp3_file = data_path + '/%s.%d.mp3' % (book.osis, chapter)
107 | print "%s %d" % (book.osis, chapter)
108 |
109 | # Fetch MP3
110 | if not os.path.exists(mp3_file):
111 | mp3_url = 'http://www.esvapi.org/v2/rest/passageQuery?key=IP&output-format=mp3&passage={book}+{chapter}'.format(
112 | book=book.name,
113 | chapter=chapter
114 | )
115 | print "Downloading MP3"
116 | save_url(mp3_url, mp3_file)
117 | else:
118 | print "Skipping MP3 (already-fetched)"
119 |
120 | # Convert to WAV
121 | wav_file = mp3_file.replace('.mp3', '.wav')
122 | if not os.path.exists(wav_file):
123 | print "Generating WAV file from MP3"
124 | retcode = subprocess.call(['sox', mp3_file, wav_file, 'rate', '16k'])
125 | if retcode != 0:
126 | raise Exception("fail (have you installed SoX?)")
127 | else:
128 | print "Skipping WAV (already-generated)"
129 |
130 | # Fetch text for chapter for Aligner, first verseless then versed
131 | text_params = {
132 | 'key': 'IP',
133 | 'output-format': 'plain-text',
134 | 'passage': '{book} {chapter}'.format(book=book.name, chapter=chapter),
135 | 'include-passage-references': 'false',
136 | 'include-first-verse-numbers': 'false',
137 | 'include-footnotes': 'false',
138 | 'include-short-copyright': 'false',
139 | 'include-passage-horizontal-lines': 'false',
140 | 'include-heading-horizontal-lines': 'false',
141 | 'include-headings': 'false',
142 | 'include-subheadings': 'false',
143 | 'include-selahs': 'true',
144 | 'line-length': '0',
145 | }
146 | text_params['include-verse-numbers'] = 'false'
147 | verseless_text_file = data_path + '/%s.%d.verseless.txt' % (book.osis, chapter)
148 | if not path.exists(verseless_text_file):
149 | print "Fetching verseless text"
150 | # @todo What is the character encoding of the response??
151 | text_url = 'http://www.esvapi.org/v2/rest/passageQuery?%s' % urllib.urlencode(text_params)
152 | save_url(text_url, verseless_text_file, 'utf-8')
153 | else:
154 | print "Skipping verseless text (already-fetched)"
155 |
156 | text_params['include-verse-numbers'] = 'true'
157 | versed_text_file = data_path + '/%s.%d.versed.txt' % (book.osis, chapter)
158 | if not path.exists(versed_text_file):
159 | print "Fetching versed text"
160 | # @todo What is the character encoding of the response??
161 | text_url = 'http://www.esvapi.org/v2/rest/passageQuery?%s' % urllib.urlencode(text_params)
162 | save_url(text_url, versed_text_file, 'utf-8')
163 | else:
164 | print "Skipping versed text (already-fetched)"
165 |
166 | # Fetch HTML for chapter
167 | html_file = data_path + '/%s.%d.html' % (book.osis, chapter)
168 | if not path.exists(html_file):
169 | print "Fetching HTML"
170 | params = {
171 | 'key': 'IP',
172 | 'passage': '{book} {chapter}'.format(book=book.name, chapter=chapter),
173 | 'include-passage-references': 'false',
174 | 'include-first-verse-numbers': 'false',
175 | 'include-verse-numbers': 'true',
176 | 'include-footnotes': 'true',
177 | 'include-surrounding-chapters': 'false',
178 | 'include-audio-link': 'false',
179 | 'include-short-copyright': 'false',
180 | 'include-copyright': 'true',
181 | }
182 | html_url = 'http://www.esvapi.org/v2/rest/passageQuery?%s' % urllib.urlencode(params)
183 | save_url(html_url, html_file, 'utf-8')
184 | else:
185 | print "Skipping HTML (already-fetched)"
186 |
187 | # Create batch file for this chapter
188 | f = open(long_audio_aligner_path + '/resource/batchFile.txt', 'w')
189 | f.write('../data/{book}.{chapter}.verseless.txt ../data/{book}.{chapter}.wav'.format(book=book.osis, chapter=chapter))
190 | f.close()
191 |
192 | # Now run the aligner on the batchFile
193 | timings_file = data_path + '/%s.%d.timings.json' % (book.osis, chapter)
194 | if not path.exists(timings_file) or is_force:
195 | print "Aligning text"
196 |
197 | cwd = path.realpath(path.curdir)
198 | os.chdir(long_audio_aligner_path)
199 | retcode = subprocess.call(['java', '-Xmx3g', '-jar', 'bin/aligner.jar'])
200 | if retcode != 0:
201 | raise Exception("fail (haz Java?)")
202 | os.chdir(cwd)
203 |
204 | # Chapter word segments: split up the chapter into an OrderedDict where each verse is separate
205 | fi = codecs.open(versed_text_file, mode='r', encoding='utf-8')
206 | chapter_text = fi.read()
207 | fi.close()
208 |
209 | # Split the text into words
210 | chapter_text = re.sub(r'(\[\d+\])', r' \1 ', chapter_text)
211 | unnormalized_word_chunks = chapter_text.strip().split()
212 | unnormalized_word_chunks.insert(0, '[1]')
213 |
214 | # Obtain the timed output
215 | fi = codecs.open(long_audio_aligner_path + '/timedOutput/1.txt', encoding='utf-8')
216 | raw_timings = fi.read().split()
217 | fi.close()
218 |
219 | verse_timings = OrderedDict()
220 | word_timings = []
221 |
222 | # Parse the timings out of the raw timings, and then pair up the
223 | # normalized word from Sphinx with the actual word from the text
224 | normalize_word_chunk = lambda s: re.sub(r'\W', '', s).lower()
225 | stip_punc = lambda s: re.sub(r'^\W+|\W+$', '', s)
226 | current_verse = None
227 | for raw_timing in raw_timings:
228 | matches = re.match(r'(.+)\((.+),(.+)\)', raw_timing)
229 | word = matches.group(1)
230 | if word == '':
231 | word = None
232 | else:
233 | skipped_words = 0
234 | while True:
235 | unnormalized_word_chunk = unnormalized_word_chunks.pop(0)
236 |
237 | # Detect the verses
238 | if unnormalized_word_chunk.startswith('[') and unnormalized_word_chunk.endswith(']'):
239 | current_verse = unnormalized_word_chunk.strip('[]')
240 | verse_timings[current_verse] = {'start': None, 'end': None}
241 | unnormalized_word_chunk = unnormalized_word_chunks.pop(0)
242 |
243 | if word == normalize_word_chunk(unnormalized_word_chunk):
244 | word = stip_punc(unnormalized_word_chunk)
245 | break
246 | skipped_words.append(unnormalized_word_chunk)
247 | if len(skipped_words) > 5:
248 | raise Exception("Skipping several words: " + ", ".join(skipped_words))
249 |
250 | start = float(matches.group(2))
251 | end = float(matches.group(3))
252 |
253 | # Keep track of verse timings
254 | if verse_timings[current_verse]['start'] is None:
255 | verse_timings[current_verse]['start'] = start
256 | verse_timings[current_verse]['end'] = end
257 |
258 | # Record word timings
259 | word_timings.append({
260 | 'word' : word,
261 | 'start' : start,
262 | 'end' : end,
263 | })
264 |
265 | fo = codecs.open(timings_file, mode='w', encoding='utf-8')
266 | fo.write(json.dumps({'verses': verse_timings, 'words': word_timings}, indent=2))
267 | fo.close()
268 | else:
269 | print "Text already aligned"
270 |
271 | print "Time: %.02fs" % (clock() - chapter_start_time)
272 | print "--"
273 |
274 | print "%s book execution time: %.02fs" % (book.name, clock() - book_start_time)
275 |
276 | print "Total execution time: %.02fs" % (clock() - init_start_time)
277 |
278 |
279 |
280 | if __name__ == '__main__':
281 | try:
282 | align(sys.argv[1:])
283 | except Exception as e:
284 | print "Exception:", e
285 | sys.exit(1)
286 |
--------------------------------------------------------------------------------
/reports/Ps.118:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 451
7 | Words found by aligner: 464
8 | Number of words: 13
9 | All words in the text are reported to be discovered in audio
10 | 0.2s Oh +++
11 | 0.2s give +++
12 | 0.4s thanks +++++
13 | 0.1s to ++
14 | 0.1s the ++
15 | 0.4s LORD ++++
16 | 0.1s for ++
17 | 0.1s he ++
18 | 0.2s is ++
19 | 0.4s good ++++
20 | 0.1s for ++
21 | 0.2s his ++
22 | 0.7s steadfast ++++++++
23 | 0.4s love ++++
24 | 0.6s endures +++++++
25 | 0.5s forever ++++++
26 | 0.3s Let ++++
27 | 0.5s Israel +++++
28 | 0.5s say ++++++
29 | 0.2s His +++
30 | 0.7s steadfast ++++++++
31 | 0.3s love ++++
32 | 0.4s endures +++++
33 | 0.5s forever ++++++
34 | 0.2s Let ++
35 | 0.1s the +
36 | 0.2s house +++
37 | 0.2s of ++
38 | 0.4s Aaron ++++
39 | 0.4s say +++++
40 | 0.2s His ++
41 | 0.7s steadfast +++++++
42 | 0.4s love ++++
43 | 0.5s endures +++++
44 | 0.5s forever ++++++
45 | 0.2s Let +++
46 | 0.2s those +++
47 | 0.1s who ++
48 | 0.3s fear ++++
49 | 0.1s the ++
50 | 0.4s LORD ++++
51 | 0.4s say ++++
52 | 0.2s His +++
53 | 0.7s steadfast +++++++
54 | 0.3s love ++++
55 | 0.5s endures ++++++
56 | 0.5s forever ++++++
57 | 0.9s ----------
58 | 0.2s Out +++
59 | 0.2s of ++
60 | 0.1s my ++
61 | 0.5s distress ++++++
62 | 0.1s I +
63 | 0.4s called +++++
64 | 0.1s on ++
65 | 0.1s the +
66 | 0.5s LORD +++++
67 | 0.6s the +++++++
68 | 0.3s LORD +++
69 | 0.4s answered +++++
70 | 0.3s me ++++
71 | 0.2s and ++
72 | 0.3s set ++++
73 | 0.1s me ++
74 | 0.5s free +++++
75 | 0.5s The +++++
76 | 0.3s LORD ++++
77 | 0.1s is ++
78 | 0.2s on ++
79 | 0.2s my ++
80 | 0.5s side +++++
81 | 0.1s I ++
82 | 0.2s will ++
83 | 0.2s not ++
84 | 0.4s fear +++++
85 | 0.6s What ++++++
86 | 0.3s can ++++
87 | 0.4s man ++++
88 | 0.2s do +++
89 | 0.1s to ++
90 | 0.2s me +++
91 | 0.2s The +++
92 | 0.2s LORD +++
93 | 0.1s is ++
94 | 0.2s on ++
95 | 0.2s my ++
96 | 0.4s side +++++
97 | 0.1s as ++
98 | 0.2s my ++
99 | 0.5s helper ++++++
100 | 0.2s I ++
101 | 0.3s shall +++
102 | 0.2s look +++
103 | 0.1s in ++
104 | 0.5s triumph ++++++
105 | 0.2s on ++
106 | 0.3s those +++
107 | 0.1s who ++
108 | 0.2s hate +++
109 | 0.2s me +++
110 | 1.0s -----------
111 | 0.1s It ++
112 | 0.1s is ++
113 | 0.3s better +++
114 | 0.1s to ++
115 | 0.2s take +++
116 | 0.5s refuge +++++
117 | 0.1s in +
118 | 0.1s the +
119 | 0.3s LORD ++++
120 | 0.1s than ++
121 | 0.1s to ++
122 | 0.3s trust ++++
123 | 0.1s in ++
124 | 0.4s man ++++
125 | 0.3s It +++
126 | 0.1s is ++
127 | 0.2s better +++
128 | 0.1s to ++
129 | 0.2s take +++
130 | 0.5s refuge +++++
131 | 0.1s in +
132 | 0.1s the +
133 | 0.6s LORD +++++++
134 | 0.2s than ++
135 | 0.1s to ++
136 | 0.4s trust +++++
137 | 0.1s in ++
138 | 0.6s princes +++++++
139 | 0.9s ----------
140 | 0.3s All ++++
141 | 0.6s nations +++++++
142 | 0.6s surrounded ++++++
143 | 0.3s me ++++
144 | 0.1s in ++
145 | 0.1s the +
146 | 0.3s name ++++
147 | 0.1s of +
148 | 0.1s the ++
149 | 0.3s LORD ++++
150 | 0.1s I ++
151 | 0.3s cut ++++
152 | 0.2s them +++
153 | 0.4s off ++++
154 | 0.8s ---------
155 | 0.1s They ++
156 | 0.6s surrounded +++++++
157 | 0.3s me +++
158 | 0.6s surrounded ++++++
159 | 0.1s me ++
160 | 0.1s on ++
161 | 0.2s every +++
162 | 0.5s side ++++++
163 | 0.1s in ++
164 | 0.1s the +
165 | 0.3s name +++
166 | 0.1s of +
167 | 0.1s the +
168 | 0.5s LORD +++++
169 | 0.1s I ++
170 | 0.3s cut +++
171 | 0.2s them ++
172 | 0.4s off ++++
173 | 0.5s They ++++++
174 | 0.6s surrounded ++++++
175 | 0.1s me ++
176 | 0.4s like ++++
177 | 0.8s bees ++++++++
178 | 0.6s they ++++++
179 | 0.2s went ++
180 | 0.2s out ++
181 | 0.2s like ++
182 | 0.1s a +
183 | 0.5s fire +++++
184 | 0.3s among +++
185 | 0.8s thorns ++++++++
186 | 0.1s in ++
187 | 0.1s the +
188 | 0.2s name +++
189 | 0.1s of +
190 | 0.1s the ++
191 | 0.3s LORD ++++
192 | 0.1s I +
193 | 0.3s cut +++
194 | 0.2s them ++
195 | 0.4s off +++++
196 | 0.5s ------
197 | 0.2s I ++
198 | 0.2s was +++
199 | 0.3s pushed ++++
200 | 0.6s hard ++++++
201 | 0.2s so ++
202 | 0.1s that ++
203 | 0.1s I +
204 | 0.2s was ++
205 | 0.6s falling ++++++
206 | 0.1s but ++
207 | 0.1s the +
208 | 0.3s LORD ++++
209 | 0.3s helped ++++
210 | 0.2s me +++
211 | 0.7s The +++++++
212 | 0.3s LORD +++
213 | 0.1s is ++
214 | 0.1s my ++
215 | 0.5s strength ++++++
216 | 0.1s and ++
217 | 0.2s my ++
218 | 0.5s song ++++++
219 | 0.2s he ++
220 | 0.2s has ++
221 | 0.4s become +++++
222 | 0.2s my ++
223 | 0.7s salvation ++++++++
224 | 0.4s Glad +++++
225 | 0.5s songs +++++
226 | 0.2s of ++
227 | 0.6s salvation +++++++
228 | 0.1s are ++
229 | 0.1s in +
230 | 0.1s the ++
231 | 0.4s tents ++++
232 | 0.1s of +
233 | 0.1s the ++
234 | 0.6s righteous ++++++
235 | 0.8s ---------
236 | 0.2s The +++
237 | 0.2s right ++
238 | 0.3s hand +++
239 | 0.1s of +
240 | 0.1s the +
241 | 0.4s LORD ++++
242 | 0.3s does +++
243 | 0.7s valiantly +++++++
244 | 0.1s the ++
245 | 0.3s right +++
246 | 0.2s hand +++
247 | 0.1s of +
248 | 0.1s the +
249 | 0.4s LORD ++++
250 | 0.8s exalts +++++++++
251 | 0.2s the +++
252 | 0.2s right +++
253 | 0.2s hand +++
254 | 0.1s of +
255 | 0.1s the +
256 | 0.4s LORD +++++
257 | 0.3s does ++++
258 | 0.8s valiantly +++++++++
259 | 0.8s ---------
260 | 0.2s I ++
261 | 0.2s shall +++
262 | 0.2s not +++
263 | 0.4s die ++++
264 | 0.2s but ++
265 | 0.1s I ++
266 | 0.3s shall +++
267 | 0.4s live +++++
268 | 0.2s and ++
269 | 0.4s recount ++++
270 | 0.1s the ++
271 | 0.4s deeds +++++
272 | 0.1s of +
273 | 0.1s the +
274 | 0.4s LORD +++++
275 | 0.5s The ++++++
276 | 0.3s LORD +++
277 | 0.2s has +++
278 | 0.6s disciplined +++++++
279 | 0.2s me ++
280 | 0.8s severely +++++++++
281 | 0.1s but ++
282 | 0.1s he +
283 | 0.2s has ++
284 | 0.2s not ++
285 | 0.3s given +++
286 | 0.1s me ++
287 | 0.2s over ++
288 | 0.2s to ++
289 | 0.4s death ++++
290 | 0.3s Open ++++
291 | 0.2s to ++
292 | 0.2s me ++
293 | 0.1s the ++
294 | 0.4s gates +++++
295 | 0.2s of ++
296 | 0.7s righteousness ++++++++
297 | 0.2s that +++
298 | 0.2s I ++
299 | 0.2s may +++
300 | 0.3s enter ++++
301 | 0.3s through ++++
302 | 0.3s them ++++
303 | 0.1s and ++
304 | 0.2s give ++
305 | 0.5s thanks +++++
306 | 0.1s to ++
307 | 0.1s the +
308 | 0.5s LORD +++++
309 | 0.6s This ++++++
310 | 0.2s is ++
311 | 0.2s the ++
312 | 0.4s gate ++++
313 | 0.1s of ++
314 | 0.1s the ++
315 | 0.4s LORD +++++
316 | 0.2s the +++
317 | 0.6s righteous +++++++
318 | 0.3s shall +++
319 | 0.3s enter +++
320 | 0.3s through ++++
321 | 0.2s it ++
322 | 0.2s I +++
323 | 0.4s thank ++++
324 | 0.1s you ++
325 | 0.2s that ++
326 | 0.1s you +
327 | 0.2s have ++
328 | 0.5s answered +++++
329 | 0.3s me +++
330 | 0.2s and ++
331 | 0.1s have ++
332 | 0.5s become +++++
333 | 0.2s my +++
334 | 0.8s salvation ++++++++
335 | 0.1s The ++
336 | 0.5s stone ++++++
337 | 0.1s that ++
338 | 0.1s the ++
339 | 0.5s builders ++++++
340 | 0.6s rejected +++++++
341 | 0.4s has +++++
342 | 0.6s become ++++++
343 | 0.1s the ++
344 | 0.8s cornerstone +++++++++
345 | 0.7s -------
346 | 0.6s This +++++++
347 | 0.1s is ++
348 | 0.2s the ++
349 | 0.4s LORD's +++++
350 | 0.5s doing +++++
351 | 0.2s it ++
352 | 0.1s is ++
353 | 0.6s marvelous +++++++
354 | 0.2s in ++
355 | 0.2s our +++
356 | 0.6s eyes ++++++
357 | 0.6s This +++++++
358 | 0.1s is ++
359 | 0.1s the ++
360 | 0.2s day +++
361 | 0.1s that ++
362 | 0.1s the +
363 | 0.2s LORD +++
364 | 0.2s has ++
365 | 0.5s made +++++
366 | 0.2s let ++
367 | 0.2s us ++
368 | 0.7s rejoice +++++++
369 | 0.2s and ++
370 | 0.1s be +
371 | 0.4s glad +++++
372 | 0.1s in ++
373 | 0.2s it ++
374 | 0.8s ---------
375 | 0.3s Save ++++
376 | 0.2s us ++
377 | 0.2s we ++
378 | 0.4s pray ++++
379 | 0.1s O +
380 | 0.5s LORD ++++++
381 | 0.3s O ++++
382 | 0.3s LORD ++++
383 | 0.2s we ++
384 | 0.3s pray ++++
385 | 0.3s give +++
386 | 0.2s us +++
387 | 0.8s success ++++++++
388 | 0.6s -------
389 | 0.3s Blessed ++++
390 | 0.2s is +++
391 | 0.2s he ++
392 | 0.1s who ++
393 | 0.4s comes ++++
394 | 0.1s in +
395 | 0.1s the +
396 | 0.3s name +++
397 | 0.1s of +
398 | 0.1s the +
399 | 0.4s LORD +++++
400 | 0.9s ---------
401 | 0.2s We ++
402 | 0.4s bless ++++
403 | 0.2s you +++
404 | 0.2s from ++
405 | 0.1s the +
406 | 0.3s house ++++
407 | 0.1s of +
408 | 0.1s the +
409 | 0.4s LORD +++++
410 | 0.5s The +++++
411 | 0.3s LORD ++++
412 | 0.2s is ++
413 | 0.5s God ++++++
414 | 0.2s and ++
415 | 0.2s he ++
416 | 0.2s has ++
417 | 0.3s made +++
418 | 0.2s his ++
419 | 0.3s light +++
420 | 0.1s to +
421 | 0.4s shine ++++
422 | 0.3s upon ++++
423 | 0.3s us ++++
424 | 1.0s ----------
425 | 0.4s Bind +++++
426 | 0.2s the ++
427 | 0.5s festal +++++
428 | 0.7s sacrifice +++++++
429 | 0.2s with ++
430 | 0.8s cords +++++++++
431 | 0.2s up ++
432 | 0.1s to +
433 | 0.1s the +
434 | 0.5s horns +++++
435 | 0.1s of +
436 | 0.1s the ++
437 | 0.5s altar +++++
438 | 0.2s You +++
439 | 0.1s are ++
440 | 0.2s my ++
441 | 0.4s God +++++
442 | 0.1s and ++
443 | 0.1s I +
444 | 0.2s will ++
445 | 0.2s give ++
446 | 0.4s thanks ++++
447 | 0.2s to ++
448 | 0.2s you +++
449 | 0.2s you +++
450 | 0.2s are ++
451 | 0.2s my +++
452 | 0.6s God ++++++
453 | 0.1s I ++
454 | 0.2s will +++
455 | 0.5s extol ++++++
456 | 0.2s you +++
457 | 1.0s -----------
458 | 0.3s Oh +++
459 | 0.2s give ++
460 | 0.4s thanks +++++
461 | 0.1s to ++
462 | 0.1s the +
463 | 0.4s LORD ++++
464 | 0.2s for ++
465 | 0.2s he ++
466 | 0.2s is ++
467 | 0.5s good +++++
468 | 0.2s for +++
469 | 0.2s his ++
470 | 0.7s steadfast +++++++
471 | 0.3s love ++++
472 | 0.6s endures ++++++
473 | 0.6s forever ++++++
474 | Words left off: 0
475 |
--------------------------------------------------------------------------------
/reports/Gen.2:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 634
7 | Words found by aligner: 641
8 | Number of words: 7
9 | All words in the text are reported to be discovered in audio
10 | 0.3s Thus +++
11 | 0.1s the ++
12 | 0.4s heavens ++++
13 | 0.1s and ++
14 | 0.1s the ++
15 | 0.2s earth +++
16 | 0.2s were ++
17 | 0.4s finished +++++
18 | 0.1s and ++
19 | 0.2s all +++
20 | 0.1s the +
21 | 0.4s host ++++
22 | 0.1s of +
23 | 0.4s them +++++
24 | 0.2s And ++
25 | 0.1s on ++
26 | 0.1s the +
27 | 0.4s seventh +++++
28 | 0.3s day +++
29 | 0.3s God ++++
30 | 0.4s finished ++++
31 | 0.1s his ++
32 | 0.3s work +++
33 | 0.1s that ++
34 | 0.1s he ++
35 | 0.1s had ++
36 | 0.4s done +++++
37 | 0.2s and ++
38 | 0.1s he ++
39 | 0.4s rested +++++
40 | 0.1s on +
41 | 0.1s the +
42 | 0.4s seventh ++++
43 | 0.2s day ++
44 | 0.2s from ++
45 | 0.2s all ++
46 | 0.2s his ++
47 | 0.3s work +++
48 | 0.1s that ++
49 | 0.1s he +
50 | 0.1s had ++
51 | 0.3s done ++++
52 | 0.3s So +++
53 | 0.3s God ++++
54 | 0.3s blessed ++++
55 | 0.1s the ++
56 | 0.4s seventh +++++
57 | 0.4s day ++++
58 | 0.2s and ++
59 | 0.2s made ++
60 | 0.1s it +
61 | 0.5s holy +++++
62 | 0.8s because ++++++++
63 | 0.2s on +++
64 | 0.1s it ++
65 | 0.3s God ++++
66 | 0.4s rested +++++
67 | 0.2s from ++
68 | 0.2s all +++
69 | 0.2s his ++
70 | 0.3s work +++
71 | 0.1s that ++
72 | 0.1s he +
73 | 0.1s had ++
74 | 0.2s done +++
75 | 0.1s in ++
76 | 0.6s creation +++++++
77 | 0.4s These +++++
78 | 0.1s are +
79 | 0.1s the ++
80 | 0.7s generations +++++++
81 | 0.1s of +
82 | 0.1s the +
83 | 0.5s heavens +++++
84 | 0.1s and ++
85 | 0.1s the ++
86 | 0.4s earth ++++
87 | 0.1s when ++
88 | 0.1s they +
89 | 0.1s were ++
90 | 0.6s created ++++++
91 | 0.2s in ++
92 | 0.1s the ++
93 | 0.2s day +++
94 | 0.2s that ++
95 | 0.1s the ++
96 | 0.3s LORD ++++
97 | 0.4s God +++++
98 | 0.2s made +++
99 | 0.1s the ++
100 | 0.4s earth ++++
101 | 0.1s and ++
102 | 0.1s the +
103 | 0.6s heavens +++++++
104 | 1.8s When +++++++++++++++++++
105 | 0.3s no +++
106 | 0.3s bush +++
107 | 0.1s of ++
108 | 0.1s the +
109 | 0.4s field ++++
110 | 0.2s was +++
111 | 0.2s yet ++
112 | 0.1s in +
113 | 0.1s the +
114 | 0.5s land +++++
115 | 0.2s and ++
116 | 0.2s no +++
117 | 0.4s small ++++
118 | 0.3s plant ++++
119 | 0.1s of +
120 | 0.1s the +
121 | 0.4s field ++++
122 | 0.1s had ++
123 | 0.2s yet ++
124 | 0.4s sprung ++++
125 | 0.4s up--for ++++
126 | 0.2s the ++
127 | 0.3s LORD ++++
128 | 0.2s God +++
129 | 0.1s had ++
130 | 0.2s not ++
131 | 0.4s caused ++++
132 | 0.1s it +
133 | 0.1s to ++
134 | 0.3s rain +++
135 | 0.1s on ++
136 | 0.1s the +
137 | 0.4s land +++++
138 | 0.1s and ++
139 | 0.1s there ++
140 | 0.1s was ++
141 | 0.2s no ++
142 | 0.3s man ++++
143 | 0.1s to ++
144 | 0.3s work +++
145 | 0.1s the ++
146 | 0.6s ground +++++++
147 | 0.2s and ++
148 | 0.1s a +
149 | 0.4s mist ++++
150 | 0.1s was ++
151 | 0.2s going +++
152 | 0.2s up ++
153 | 0.2s from +++
154 | 0.1s the +
155 | 0.3s land ++++
156 | 0.1s and ++
157 | 0.1s was ++
158 | 0.4s watering +++++
159 | 0.1s the +
160 | 0.2s whole +++
161 | 0.3s face ++++
162 | 0.1s of +
163 | 0.1s the +
164 | 0.5s ground +++++
165 | 0.4s then +++++
166 | 0.1s the ++
167 | 0.3s LORD ++++
168 | 0.3s God ++++
169 | 0.4s formed +++++
170 | 0.1s the ++
171 | 0.4s man +++++
172 | 0.2s of +++
173 | 0.4s dust ++++
174 | 0.1s from ++
175 | 0.1s the +
176 | 0.6s ground ++++++
177 | 0.5s and +++++
178 | 0.4s breathed +++++
179 | 0.2s into ++
180 | 0.2s his ++
181 | 0.6s nostrils ++++++
182 | 0.1s the ++
183 | 0.4s breath ++++
184 | 0.1s of ++
185 | 0.4s life +++++
186 | 0.1s and ++
187 | 0.1s the +
188 | 0.4s man ++++
189 | 0.6s became ++++++
190 | 0.0s a +
191 | 0.4s living ++++
192 | 0.6s creature ++++++
193 | 0.2s And ++
194 | 0.1s the +
195 | 0.3s LORD +++
196 | 0.3s God ++++
197 | 0.4s planted ++++
198 | 0.1s a +
199 | 0.4s garden +++++
200 | 0.1s in ++
201 | 0.4s Eden ++++
202 | 0.2s in ++
203 | 0.2s the ++
204 | 0.4s east ++++
205 | 0.2s and ++
206 | 0.2s there +++
207 | 0.2s he ++
208 | 0.2s put ++
209 | 0.1s the +
210 | 0.4s man +++++
211 | 0.2s whom +++
212 | 0.1s he +
213 | 0.1s had ++
214 | 0.5s formed ++++++
215 | 0.2s And +++
216 | 0.2s out ++
217 | 0.1s of +
218 | 0.1s the ++
219 | 0.4s ground +++++
220 | 0.1s the +
221 | 0.3s LORD ++++
222 | 0.3s God ++++
223 | 0.2s made +++
224 | 0.1s to +
225 | 0.3s spring ++++
226 | 0.2s up ++
227 | 0.5s every +++++
228 | 0.4s tree ++++
229 | 0.2s that ++
230 | 0.1s is ++
231 | 0.5s pleasant +++++
232 | 0.1s to +
233 | 0.1s the ++
234 | 0.4s sight +++++
235 | 0.2s and +++
236 | 0.3s good +++
237 | 0.2s for ++
238 | 0.5s food +++++
239 | 1.1s The ++++++++++++
240 | 0.2s tree +++
241 | 0.1s of ++
242 | 0.3s life ++++
243 | 0.1s was ++
244 | 0.1s in +
245 | 0.1s the +
246 | 0.3s midst ++++
247 | 0.1s of +
248 | 0.1s the +
249 | 0.5s garden +++++
250 | 0.1s and ++
251 | 0.1s the +
252 | 0.4s tree ++++
253 | 0.1s of ++
254 | 0.1s the +
255 | 0.4s knowledge +++++
256 | 0.1s of ++
257 | 0.2s good +++
258 | 0.1s and ++
259 | 0.4s evil ++++
260 | 1.0s ----------
261 | 0.1s A +
262 | 0.3s ---
263 | 0.1s river ++
264 | 0.2s flowed +++
265 | 0.2s out ++
266 | 0.1s of +
267 | 0.4s Eden ++++
268 | 0.2s to ++
269 | 0.3s water +++
270 | 0.1s the ++
271 | 0.5s garden +++++
272 | 0.2s and ++
273 | 0.2s there ++
274 | 0.1s it ++
275 | 0.5s divided ++++++
276 | 0.1s and +
277 | 0.3s became ++++
278 | 0.4s four ++++
279 | 0.5s rivers ++++++
280 | 0.1s The +
281 | 0.3s name +++
282 | 0.1s of +
283 | 0.1s the +
284 | 0.5s first ++++++
285 | 0.2s is ++
286 | 0.1s the +
287 | 0.6s Pishon +++++++
288 | 0.2s It +++
289 | 0.1s is ++
290 | 0.1s the +
291 | 0.2s one ++
292 | 0.1s that ++
293 | 0.3s flowed ++++
294 | 0.3s around ++++
295 | 0.1s the +
296 | 0.3s whole ++++
297 | 0.3s land ++++
298 | 0.1s of +
299 | 0.4s Havilah +++++
300 | 0.2s where ++
301 | 0.2s there ++
302 | 0.1s is ++
303 | 0.5s gold +++++
304 | 0.1s And ++
305 | 0.1s the +
306 | 0.3s gold ++++
307 | 0.1s of +
308 | 0.2s that +++
309 | 0.4s land +++++
310 | 0.1s is ++
311 | 0.5s good +++++
312 | 0.5s bdellium ++++++
313 | 0.2s and ++
314 | 0.3s onyx ++++
315 | 0.3s stone +++
316 | 0.1s are +
317 | 0.3s there ++++
318 | 0.4s The ++++
319 | 0.2s name +++
320 | 0.1s of +
321 | 0.1s the +
322 | 0.4s second ++++
323 | 0.3s river +++
324 | 0.1s is ++
325 | 0.1s the ++
326 | 0.5s Gihon +++++
327 | 0.8s It ++++++++
328 | 0.1s is ++
329 | 0.1s the ++
330 | 0.2s one ++
331 | 0.1s that ++
332 | 0.3s flowed ++++
333 | 0.3s around +++
334 | 0.1s the +
335 | 0.3s whole +++
336 | 0.4s land +++++
337 | 0.1s of +
338 | 0.5s Cush ++++++
339 | 0.6s ------
340 | 0.1s And ++
341 | 0.1s the +
342 | 0.2s name +++
343 | 0.1s of +
344 | 0.1s the +
345 | 0.3s third ++++
346 | 0.3s river ++++
347 | 0.2s is ++
348 | 0.1s the +
349 | 0.6s Tigris +++++++
350 | 0.5s which +++++
351 | 0.4s flows ++++
352 | 0.4s east ++++
353 | 0.1s of +
354 | 0.6s Assyria ++++++
355 | 0.7s And ++++++++
356 | 0.1s the +
357 | 0.3s fourth ++++
358 | 0.4s river +++++
359 | 0.2s is +++
360 | 0.1s the ++
361 | 0.8s Euphrates +++++++++
362 | 1.3s The +++++++++++++
363 | 0.3s LORD ++++
364 | 0.5s God +++++
365 | 0.2s took ++
366 | 0.1s the ++
367 | 0.3s man ++++
368 | 0.2s and ++
369 | 0.2s put ++
370 | 0.1s him ++
371 | 0.1s in +
372 | 0.1s the ++
373 | 0.3s garden ++++
374 | 0.1s of +
375 | 0.2s Eden +++
376 | 0.2s to ++
377 | 0.3s work +++
378 | 0.2s it +++
379 | 0.2s and ++
380 | 0.3s keep +++
381 | 0.2s it ++
382 | 0.2s And ++
383 | 0.1s the ++
384 | 0.3s LORD +++
385 | 0.2s God +++
386 | 0.5s commanded ++++++
387 | 0.1s the +
388 | 0.3s man +++
389 | 0.4s saying +++++
390 | 0.2s You ++
391 | 0.2s may ++
392 | 0.4s surely ++++
393 | 0.2s eat ++
394 | 0.1s of ++
395 | 0.3s every +++
396 | 0.4s tree ++++
397 | 0.1s of +
398 | 0.1s the +
399 | 0.5s garden +++++
400 | 0.3s but +++
401 | 0.1s of +
402 | 0.1s the ++
403 | 0.2s tree +++
404 | 0.1s of +
405 | 0.1s the +
406 | 0.4s knowledge ++++
407 | 0.1s of +
408 | 0.2s good +++
409 | 0.1s and ++
410 | 0.4s evil +++++
411 | 0.1s you ++
412 | 0.3s shall +++
413 | 0.2s not +++
414 | 0.3s eat +++
415 | 0.7s for +++++++
416 | 0.2s in ++
417 | 0.1s the ++
418 | 0.2s day +++
419 | 0.2s that ++
420 | 0.1s you ++
421 | 0.2s eat ++
422 | 0.1s of ++
423 | 0.2s it ++
424 | 0.2s you +++
425 | 0.2s shall +++
426 | 0.4s surely +++++
427 | 0.5s die +++++
428 | 0.8s Then +++++++++
429 | 0.1s the +
430 | 0.3s LORD +++
431 | 0.3s God +++
432 | 0.5s said ++++++
433 | 0.1s It ++
434 | 0.1s is ++
435 | 0.2s not +++
436 | 0.4s good ++++
437 | 0.1s that ++
438 | 0.1s the +
439 | 0.3s man ++++
440 | 0.2s should ++
441 | 0.1s be ++
442 | 0.5s alone +++++
443 | 0.1s I ++
444 | 0.2s will ++
445 | 0.2s make +++
446 | 0.2s --
447 | 0.2s him ++
448 | 0.0s a +
449 | 0.5s helper ++++++
450 | 0.2s fit +++
451 | 0.2s for ++
452 | 0.3s him +++
453 | 1.2s ------------
454 | 0.2s Now +++
455 | 0.1s out ++
456 | 0.1s of +
457 | 0.1s the ++
458 | 0.4s ground +++++
459 | 0.1s the ++
460 | 0.3s LORD +++
461 | 0.3s God +++
462 | 0.1s had ++
463 | 0.4s formed ++++
464 | 0.3s every +++
465 | 0.3s beast ++++
466 | 0.1s of +
467 | 0.1s the +
468 | 0.4s field +++++
469 | 0.1s and ++
470 | 0.2s every +++
471 | 0.3s bird ++++
472 | 0.1s of +
473 | 0.1s the +
474 | 0.5s heavens +++++
475 | 0.4s and +++++
476 | 0.2s brought +++
477 | 0.1s them ++
478 | 0.1s to +
479 | 0.1s the +
480 | 0.2s man +++
481 | 0.1s to +
482 | 0.2s see +++
483 | 0.2s what ++
484 | 0.1s he +
485 | 0.1s would ++
486 | 0.3s call ++++
487 | 0.2s them ++
488 | 0.1s And ++
489 | 1.5s whatever ++++++++++++++++
490 | 0.1s the +
491 | 0.3s man ++++
492 | 0.4s called ++++
493 | 0.2s every +++
494 | 0.3s living +++
495 | 0.5s creature ++++++
496 | 0.2s that +++
497 | 0.2s was ++
498 | 0.2s its ++
499 | 0.5s name +++++
500 | 0.2s The +++
501 | 0.3s man +++
502 | 0.2s gave ++
503 | 0.4s names +++++
504 | 0.1s to +
505 | 0.3s all +++
506 | 0.7s livestock ++++++++
507 | 0.1s and ++
508 | 0.1s to +
509 | 0.1s the +
510 | 0.4s birds ++++
511 | 0.1s of +
512 | 0.1s the +
513 | 0.5s heavens +++++
514 | 0.3s and ++++
515 | 0.1s to ++
516 | 0.2s every +++
517 | 0.4s beast ++++
518 | 0.1s of +
519 | 0.1s the +
520 | 0.6s field ++++++
521 | 0.3s But +++
522 | 0.2s for ++
523 | 0.4s Adam +++++
524 | 0.2s there ++
525 | 0.2s was ++
526 | 0.2s not +++
527 | 0.3s found +++
528 | 0.1s a +
529 | 0.4s helper ++++
530 | 0.2s fit +++
531 | 0.2s for ++
532 | 0.3s him +++
533 | 0.2s So ++
534 | 0.1s the +
535 | 0.3s LORD +++
536 | 0.4s God ++++
537 | 0.5s caused +++++
538 | 0.1s a ++
539 | 0.3s deep ++++
540 | 0.4s sleep ++++
541 | 0.1s to ++
542 | 0.2s fall +++
543 | 0.3s upon +++
544 | 0.1s the +
545 | 0.3s man +++
546 | 0.1s and ++
547 | 0.2s while +++
548 | 0.2s he ++
549 | 0.5s slept ++++++
550 | 0.6s took ++++++
551 | 0.2s one ++
552 | 0.1s of +
553 | 0.2s his ++
554 | 0.4s ribs +++++
555 | 0.2s and ++
556 | 0.4s closed ++++
557 | 0.1s up ++
558 | 0.1s its ++
559 | 0.4s place +++++
560 | 0.2s with +++
561 | 0.5s flesh ++++++
562 | 1.0s -----------
563 | 0.2s And ++
564 | 0.1s the ++
565 | 0.2s rib +++
566 | 0.1s that +
567 | 0.1s the +
568 | 0.3s LORD +++
569 | 0.2s God +++
570 | 0.2s had ++
571 | 0.3s taken ++++
572 | 0.2s from ++
573 | 0.1s the +
574 | 0.5s man +++++
575 | 0.1s he ++
576 | 0.4s made ++++
577 | 0.3s into +++
578 | 0.1s a ++
579 | 0.4s woman +++++
580 | 0.2s and +++
581 | 0.2s brought +++
582 | 0.2s her ++
583 | 0.1s to ++
584 | 0.1s the +
585 | 0.5s man +++++
586 | 0.6s Then +++++++
587 | 0.1s the ++
588 | 0.3s man +++
589 | 0.4s said +++++
590 | 1.5s This +++++++++++++++
591 | 0.1s at ++
592 | 0.4s last ++++
593 | 0.2s is ++
594 | 0.2s bone +++
595 | 0.1s of ++
596 | 0.2s my ++
597 | 0.8s bones ++++++++
598 | 0.2s and ++
599 | 0.3s flesh ++++
600 | 0.1s of +
601 | 0.2s my ++
602 | 0.6s flesh ++++++
603 | 0.2s she ++
604 | 0.2s shall ++
605 | 0.1s be +
606 | 0.3s called ++++
607 | 0.5s Woman +++++
608 | 0.5s because +++++
609 | 0.1s she ++
610 | 0.1s was ++
611 | 0.3s taken ++++
612 | 0.1s out ++
613 | 0.1s of ++
614 | 0.4s Man +++++
615 | 1.4s ---------------
616 | 0.5s Therefore +++++
617 | 0.1s a +
618 | 0.2s man +++
619 | 0.2s shall ++
620 | 0.2s leave ++
621 | 0.2s his ++
622 | 0.4s father +++++
623 | 0.1s and ++
624 | 0.1s his ++
625 | 0.3s mother ++++
626 | 0.1s and +
627 | 0.3s hold +++
628 | 0.4s fast ++++
629 | 0.1s to +
630 | 0.1s his ++
631 | 0.4s wife +++++
632 | 0.1s and ++
633 | 0.1s they ++
634 | 0.2s shall ++
635 | 0.3s become ++++
636 | 0.4s one ++++
637 | 0.6s flesh ++++++
638 | 0.2s And ++
639 | 0.1s the +
640 | 0.3s man ++++
641 | 0.2s and ++
642 | 0.1s his ++
643 | 0.3s wife ++++
644 | 0.1s were +
645 | 0.2s both +++
646 | 0.5s naked ++++++
647 | 0.2s and ++
648 | 0.1s were +
649 | 0.2s not +++
650 | 0.6s ashamed ++++++
651 | Words left off: 0
652 |
--------------------------------------------------------------------------------
/reports/Gen.3:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 682
7 | Words found by aligner: 688
8 | Number of words: 6
9 | All words in the text are reported to be discovered in audio
10 | 0.1s Now ++
11 | 0.1s the ++
12 | 0.4s serpent +++++
13 | 0.2s was ++
14 | 0.2s more +++
15 | 0.5s crafty ++++++
16 | 0.3s than ++++
17 | 0.1s any ++
18 | 0.2s other ++
19 | 0.3s beast ++++
20 | 0.1s of +
21 | 0.1s the +
22 | 0.4s field +++++
23 | 0.1s that ++
24 | 0.1s the +
25 | 0.3s LORD +++
26 | 0.3s God ++++
27 | 0.1s had ++
28 | 0.4s made +++++
29 | 0.1s He ++
30 | 0.3s said +++
31 | 0.1s to +
32 | 0.1s the ++
33 | 0.4s woman +++++
34 | 0.4s Did +++++
35 | 0.4s God +++++
36 | 0.5s actually ++++++
37 | 0.7s say +++++++
38 | 0.2s You +++
39 | 0.3s shall +++
40 | 0.2s not +++
41 | 0.2s eat ++
42 | 0.1s of +
43 | 0.2s any ++
44 | 0.3s tree ++++
45 | 0.1s in ++
46 | 0.1s the +
47 | 0.5s garden +++++
48 | 0.1s And ++
49 | 0.7s the +++++++
50 | 0.5s woman +++++
51 | 0.2s said +++
52 | 0.1s to +
53 | 0.1s the +
54 | 0.5s serpent ++++++
55 | 0.1s We +
56 | 0.1s may +
57 | 0.5s eat ++++++
58 | 0.1s of +
59 | 0.1s the ++
60 | 0.2s fruit +++
61 | 0.1s of ++
62 | 0.1s the ++
63 | 0.4s trees ++++
64 | 0.1s in ++
65 | 0.1s the ++
66 | 0.5s garden ++++++
67 | 0.2s but ++
68 | 0.3s God ++++
69 | 0.4s said ++++
70 | 0.2s You ++
71 | 0.2s shall +++
72 | 0.2s not ++
73 | 0.2s eat +++
74 | 0.1s of +
75 | 0.1s the +
76 | 0.2s fruit +++
77 | 0.1s of +
78 | 0.1s the +
79 | 0.3s tree ++++
80 | 0.2s that ++
81 | 0.1s is ++
82 | 0.1s in +
83 | 0.1s the +
84 | 0.4s midst ++++
85 | 0.1s of +
86 | 0.1s the +
87 | 0.5s garden +++++
88 | 0.4s neither ++++
89 | 0.2s shall +++
90 | 0.1s you ++
91 | 0.3s touch ++++
92 | 0.1s it ++
93 | 0.3s lest ++++
94 | 0.1s you ++
95 | 0.4s die +++++
96 | 1.3s But ++++++++++++++
97 | 0.1s the ++
98 | 0.4s serpent ++++
99 | 0.2s said +++
100 | 0.1s to +
101 | 0.1s the ++
102 | 0.4s woman ++++
103 | 0.3s You +++
104 | 0.1s will ++
105 | 0.2s not +++
106 | 0.7s surely +++++++
107 | 0.6s die ++++++
108 | 0.2s For ++
109 | 0.3s God ++++
110 | 0.3s knows ++++
111 | 0.1s that ++
112 | 0.2s when ++
113 | 0.1s you ++
114 | 0.2s eat ++
115 | 0.1s of ++
116 | 0.1s it ++
117 | 0.2s your +++
118 | 0.3s eyes +++
119 | 0.1s will ++
120 | 0.2s be ++
121 | 0.6s opened ++++++
122 | 0.2s and ++
123 | 0.1s you ++
124 | 0.1s will ++
125 | 0.1s be ++
126 | 0.3s like +++
127 | 0.7s God +++++++
128 | 0.6s knowing +++++++
129 | 0.2s good +++
130 | 0.1s and ++
131 | 0.6s evil ++++++
132 | 0.2s So ++
133 | 0.1s when ++
134 | 0.1s the +
135 | 0.2s woman +++
136 | 0.3s saw +++
137 | 0.1s that ++
138 | 0.1s the +
139 | 0.2s tree +++
140 | 0.2s was ++
141 | 0.4s good ++++
142 | 0.1s for ++
143 | 0.6s food ++++++
144 | 0.2s and +++
145 | 0.1s that ++
146 | 0.1s it +
147 | 0.2s was ++
148 | 0.1s a +
149 | 0.5s delight +++++
150 | 0.1s to +
151 | 0.2s the ++
152 | 0.4s eyes +++++
153 | 0.1s and ++
154 | 0.1s that ++
155 | 0.1s the +
156 | 0.3s tree ++++
157 | 0.2s was ++
158 | 0.1s to ++
159 | 0.1s be ++
160 | 0.6s desired +++++++
161 | 0.1s to +
162 | 0.2s make +++
163 | 0.3s one +++
164 | 0.7s wise +++++++
165 | 0.2s she ++
166 | 0.2s took +++
167 | 0.1s of +
168 | 0.2s its ++
169 | 0.4s fruit +++++
170 | 0.2s and +++
171 | 0.3s ate ++++
172 | 0.2s and ++
173 | 0.2s she ++
174 | 0.3s also +++
175 | 0.2s gave +++
176 | 0.2s some +++
177 | 0.1s to ++
178 | 0.1s her ++
179 | 0.5s husband +++++
180 | 0.1s who +
181 | 0.1s was ++
182 | 0.2s with +++
183 | 0.3s her +++
184 | 0.1s and ++
185 | 0.3s he ++++
186 | 0.3s ate +++
187 | 0.7s Then +++++++
188 | 0.2s the ++
189 | 0.4s eyes +++++
190 | 0.1s of ++
191 | 0.3s both ++++
192 | 0.2s were ++
193 | 0.5s opened +++++
194 | 0.1s and ++
195 | 0.1s they ++
196 | 0.5s knew ++++++
197 | 0.2s that ++
198 | 0.1s they ++
199 | 0.1s were ++
200 | 0.4s naked +++++
201 | 0.2s And ++
202 | 0.1s they +
203 | 0.3s sewed ++++
204 | 0.3s fig ++++
205 | 0.3s leaves +++
206 | 0.5s together +++++
207 | 0.1s and +
208 | 0.2s made +++
209 | 0.6s themselves +++++++
210 | 1.0s loincloths +++++++++++
211 | 0.6s -------
212 | 0.2s And ++
213 | 0.1s they ++
214 | 0.3s heard +++
215 | 0.1s the +
216 | 0.4s sound ++++
217 | 0.1s of +
218 | 0.1s the ++
219 | 0.3s LORD +++
220 | 0.3s God ++++
221 | 0.4s walking +++++
222 | 0.1s in ++
223 | 0.1s the +
224 | 0.5s garden ++++++
225 | 0.1s in ++
226 | 0.1s the ++
227 | 0.4s cool +++++
228 | 0.1s of +
229 | 0.1s the ++
230 | 0.4s day ++++
231 | 0.1s and +
232 | 0.1s the +
233 | 0.3s man ++++
234 | 0.1s and +
235 | 0.1s his ++
236 | 0.3s wife ++++
237 | 0.3s hid +++
238 | 0.5s themselves ++++++
239 | 0.2s from ++
240 | 0.1s the ++
241 | 0.4s presence ++++
242 | 0.1s of +
243 | 0.1s the +
244 | 0.3s LORD +++
245 | 0.3s God ++++
246 | 0.2s among ++
247 | 0.1s the +
248 | 0.4s trees ++++
249 | 0.1s of +
250 | 0.1s the +
251 | 0.5s garden +++++
252 | 0.6s But +++++++
253 | 0.1s the ++
254 | 0.2s LORD +++
255 | 0.3s God ++++
256 | 0.4s called ++++
257 | 0.1s to +
258 | 0.1s the +
259 | 0.3s man ++++
260 | 0.1s and ++
261 | 0.3s said +++
262 | 0.1s to ++
263 | 0.2s him +++
264 | 1.0s Where ++++++++++
265 | 0.2s are ++
266 | 0.2s you +++
267 | 0.2s And +++
268 | 0.1s he +
269 | 0.4s said +++++
270 | 0.3s I +++
271 | 0.3s heard ++++
272 | 0.1s the ++
273 | 0.3s sound ++++
274 | 0.1s of +
275 | 0.1s you +
276 | 0.1s in +
277 | 0.1s the +
278 | 0.4s garden ++++
279 | 0.2s and ++
280 | 0.2s I ++
281 | 0.3s was ++++
282 | 0.4s afraid +++++
283 | 0.3s because +++
284 | 0.1s I +
285 | 0.2s was ++
286 | 0.5s naked +++++
287 | 0.2s and +++
288 | 0.1s I +
289 | 0.2s hid +++
290 | 0.5s myself ++++++
291 | 1.2s -------------
292 | 0.2s He ++
293 | 0.5s said +++++
294 | 0.2s Who +++
295 | 0.2s ---
296 | 0.3s told ++++
297 | 0.2s you ++
298 | 0.1s that ++
299 | 0.2s you ++
300 | 0.1s were +
301 | 0.6s naked ++++++
302 | 0.2s Have +++
303 | 0.1s you ++
304 | 0.3s eaten +++
305 | 0.1s of +
306 | 0.1s the +
307 | 0.3s tree ++++
308 | 0.1s of +
309 | 0.2s which ++
310 | 0.1s I +
311 | 0.5s commanded +++++
312 | 0.1s you ++
313 | 0.3s not ++++
314 | 0.1s to ++
315 | 0.3s eat +++
316 | 0.8s The ++++++++
317 | 0.3s man +++
318 | 0.3s said +++
319 | 0.3s The ++++
320 | 0.7s woman ++++++++
321 | 0.2s whom ++
322 | 0.1s you +
323 | 0.3s gave ++++
324 | 0.1s to +
325 | 0.1s be ++
326 | 0.2s with +++
327 | 0.2s me ++
328 | 0.3s she ++++
329 | 0.3s gave +++
330 | 0.1s me ++
331 | 0.3s fruit +++
332 | 0.1s of +
333 | 0.1s the +
334 | 0.3s tree ++++
335 | 0.1s and ++
336 | 0.2s I ++
337 | 0.4s ate +++++
338 | 1.1s Then ++++++++++++
339 | 0.1s the +
340 | 0.2s LORD +++
341 | 0.2s God +++
342 | 0.2s said +++
343 | 0.1s to +
344 | 0.1s the +
345 | 0.4s woman ++++
346 | 1.3s What +++++++++++++
347 | 0.2s is ++
348 | 0.2s this ++
349 | 0.1s that +
350 | 0.2s you ++
351 | 0.1s have +
352 | 0.5s done +++++
353 | 0.7s The ++++++++
354 | 0.3s woman +++
355 | 0.4s said ++++
356 | 0.8s The +++++++++
357 | 0.5s serpent ++++++
358 | 0.5s deceived ++++++
359 | 0.1s me ++
360 | 0.2s and ++
361 | 0.1s I ++
362 | 0.4s ate +++++
363 | 1.0s The +++++++++++
364 | 0.3s LORD ++++
365 | 0.3s God +++
366 | 0.3s said +++
367 | 0.1s to +
368 | 0.1s the ++
369 | 0.5s serpent ++++++
370 | 1.3s Because +++++++++++++
371 | 0.1s you +
372 | 0.2s have ++
373 | 0.3s done +++
374 | 0.5s this +++++
375 | 0.8s cursed +++++++++
376 | 0.1s are ++
377 | 0.2s you ++
378 | 0.3s above +++
379 | 0.3s all +++
380 | 0.7s livestock ++++++++
381 | 0.1s and ++
382 | 0.2s above +++
383 | 0.3s all ++++
384 | 0.4s beasts +++++
385 | 0.1s of +
386 | 0.1s the +
387 | 0.5s field ++++++
388 | 0.8s --------
389 | 0.1s on ++
390 | 0.2s your ++
391 | 0.4s belly ++++
392 | 0.1s you ++
393 | 0.2s shall +++
394 | 0.4s go +++++
395 | 0.2s and ++
396 | 0.4s dust ++++
397 | 0.1s you ++
398 | 0.2s shall +++
399 | 0.3s eat +++
400 | 0.2s all ++
401 | 0.1s the ++
402 | 0.3s days +++
403 | 0.1s of +
404 | 0.2s your ++
405 | 0.4s life +++++
406 | 0.9s ---------
407 | 0.2s I +++
408 | 0.2s will ++
409 | 0.3s put +++
410 | 0.5s enmity ++++++
411 | 0.3s between ++++
412 | 0.1s you ++
413 | 0.2s and +++
414 | 0.1s the +
415 | 0.4s woman +++++
416 | 0.1s and ++
417 | 0.3s between +++
418 | 0.3s your +++
419 | 0.6s offspring +++++++
420 | 0.2s and ++
421 | 0.2s her +++
422 | 0.6s offspring ++++++
423 | 0.2s he +++
424 | 0.3s shall +++
425 | 0.4s bruise +++++
426 | 0.2s your +++
427 | 0.4s head ++++
428 | 0.2s and ++
429 | 0.1s you ++
430 | 0.2s shall +++
431 | 0.3s bruise ++++
432 | 0.2s his +++
433 | 0.5s heel +++++
434 | 0.5s To +++++
435 | 0.8s the +++++++++
436 | 0.4s woman +++++
437 | 0.1s he +
438 | 0.4s said ++++
439 | 0.3s I +++
440 | 0.2s will ++
441 | 0.4s surely ++++
442 | 0.6s multiply ++++++
443 | 0.2s your +++
444 | 0.4s pain +++++
445 | 0.1s in ++
446 | 0.8s childbearing +++++++++
447 | 0.2s in +++
448 | 0.4s pain +++++
449 | 0.1s you ++
450 | 0.2s shall +++
451 | 0.3s bring +++
452 | 0.3s forth +++
453 | 0.5s children ++++++
454 | 0.3s Your +++
455 | 0.5s desire +++++
456 | 0.2s shall ++
457 | 0.1s be ++
458 | 0.1s for ++
459 | 0.1s your ++
460 | 0.5s husband ++++++
461 | 0.1s and ++
462 | 0.2s he +++
463 | 0.3s shall ++++
464 | 0.4s rule +++++
465 | 0.2s over ++
466 | 0.3s you +++
467 | 0.2s And +++
468 | 0.2s to ++
469 | 0.4s Adam ++++
470 | 0.1s he ++
471 | 0.4s said ++++
472 | 1.1s Because ++++++++++++
473 | 0.1s you ++
474 | 0.1s have +
475 | 0.3s listened ++++
476 | 0.1s to +
477 | 0.1s the +
478 | 0.3s voice ++++
479 | 0.1s of ++
480 | 0.2s your ++
481 | 0.3s wife ++++
482 | 0.1s and ++
483 | 0.1s have ++
484 | 0.4s eaten ++++
485 | 0.1s of +
486 | 0.1s the +
487 | 0.3s tree ++++
488 | 0.1s of ++
489 | 0.2s which +++
490 | 0.1s I ++
491 | 0.6s commanded ++++++
492 | 0.2s you +++
493 | 0.1s You ++
494 | 0.2s shall +++
495 | 0.2s not +++
496 | 0.2s eat ++
497 | 0.1s of ++
498 | 0.2s it +++
499 | 0.9s cursed ++++++++++
500 | 0.2s is ++
501 | 0.2s the ++
502 | 0.5s ground +++++
503 | 0.3s because ++++
504 | 0.1s of ++
505 | 0.3s you +++
506 | 0.7s in +++++++
507 | 0.4s pain +++++
508 | 0.1s you ++
509 | 0.2s shall +++
510 | 0.1s eat ++
511 | 0.1s of +
512 | 0.1s it +
513 | 0.2s all ++
514 | 0.1s the ++
515 | 0.3s days +++
516 | 0.1s of +
517 | 0.2s your ++
518 | 0.4s life +++++
519 | 0.5s thorns ++++++
520 | 0.3s and +++
521 | 0.4s thistles ++++
522 | 0.1s it +
523 | 0.2s shall ++
524 | 0.2s bring +++
525 | 0.3s forth ++++
526 | 0.2s for ++
527 | 0.2s you +++
528 | 0.3s and ++++
529 | 0.1s you ++
530 | 0.2s shall +++
531 | 0.2s eat +++
532 | 0.1s the ++
533 | 0.4s plants +++++
534 | 0.1s of +
535 | 0.1s the +
536 | 0.5s field ++++++
537 | 0.5s By ++++++
538 | 0.1s the ++
539 | 0.3s sweat ++++
540 | 0.1s of +
541 | 0.1s your ++
542 | 0.4s face +++++
543 | 0.1s you ++
544 | 0.2s shall +++
545 | 0.2s eat ++
546 | 0.4s bread +++++
547 | 0.2s till ++
548 | 0.1s you ++
549 | 0.5s return ++++++
550 | 0.1s to +
551 | 0.1s the ++
552 | 0.6s ground ++++++
553 | 0.2s for +++
554 | 0.2s out ++
555 | 0.1s of +
556 | 0.1s it ++
557 | 0.1s you ++
558 | 0.1s were +
559 | 0.5s taken +++++
560 | 0.2s for +++
561 | 0.4s you ++++
562 | 0.2s are ++
563 | 0.5s dust ++++++
564 | 0.5s and ++++++
565 | 0.2s to ++
566 | 0.4s dust ++++
567 | 0.2s you ++
568 | 0.3s shall +++
569 | 0.6s return ++++++
570 | 0.5s The ++++++
571 | 0.3s man +++
572 | 0.3s called ++++
573 | 0.2s his ++
574 | 0.4s wife's ++++
575 | 0.4s name ++++
576 | 0.5s Eve ++++++
577 | 0.4s because +++++
578 | 0.1s she ++
579 | 0.2s was ++
580 | 0.1s the +
581 | 0.3s mother ++++
582 | 0.1s of ++
583 | 0.2s all +++
584 | 0.4s living +++++
585 | 0.1s And ++
586 | 0.1s the +
587 | 0.3s LORD +++
588 | 0.3s God +++
589 | 0.2s made +++
590 | 0.2s for ++
591 | 0.3s Adam ++++
592 | 0.1s and ++
593 | 0.1s for ++
594 | 0.1s his ++
595 | 0.3s wife ++++
596 | 0.5s garments +++++
597 | 0.1s of ++
598 | 0.7s skins +++++++
599 | 0.2s and ++
600 | 0.5s clothed +++++
601 | 0.5s them +++++
602 | 0.3s Then ++++
603 | 0.1s the +
604 | 0.3s LORD ++++
605 | 0.3s God +++
606 | 0.4s said +++++
607 | 0.9s Behold ++++++++++
608 | 0.1s the +
609 | 0.2s man +++
610 | 0.2s has ++
611 | 0.3s become ++++
612 | 0.2s like ++
613 | 0.2s one ++
614 | 0.1s of +
615 | 0.3s us ++++
616 | 0.2s in ++
617 | 0.4s knowing ++++
618 | 0.3s good +++
619 | 0.1s and ++
620 | 0.4s evil +++++
621 | 0.3s Now ++++
622 | 0.2s lest +++
623 | 0.1s he +
624 | 0.3s reach +++
625 | 0.2s out ++
626 | 0.2s his ++
627 | 0.3s hand ++++
628 | 0.1s and +
629 | 0.2s take ++
630 | 0.3s also ++++
631 | 0.1s of +
632 | 0.1s the +
633 | 0.2s tree +++
634 | 0.1s of ++
635 | 0.4s life ++++
636 | 0.2s and ++
637 | 0.3s eat ++++
638 | 0.2s and ++
639 | 0.2s live +++
640 | 0.6s forever ++++++
641 | 0.5s therefore +++++
642 | 0.1s the +
643 | 0.3s LORD +++
644 | 0.3s God +++
645 | 0.2s sent +++
646 | 0.1s him ++
647 | 0.2s out +++
648 | 0.2s from ++
649 | 0.1s the +
650 | 0.3s garden ++++
651 | 0.1s of ++
652 | 0.3s Eden +++
653 | 0.2s to ++
654 | 0.3s work +++
655 | 0.1s the +
656 | 0.5s ground +++++
657 | 0.2s from ++
658 | 0.2s which ++
659 | 0.1s he +
660 | 0.2s was ++
661 | 0.4s taken +++++
662 | 1.1s -----------
663 | 0.2s He +++
664 | 0.4s drove ++++
665 | 0.2s out +++
666 | 0.1s the ++
667 | 0.3s man +++
668 | 0.3s and +++
669 | 0.2s at +++
670 | 0.1s the ++
671 | 0.3s east ++++
672 | 0.1s of +
673 | 0.1s the +
674 | 0.3s garden ++++
675 | 0.1s of ++
676 | 0.3s Eden +++
677 | 0.2s he ++
678 | 0.3s placed ++++
679 | 0.1s the +
680 | 0.7s cherubim ++++++++
681 | 0.1s and ++
682 | 0.1s a +
683 | 0.5s flaming +++++
684 | 0.4s sword +++++
685 | 0.2s that ++
686 | 0.4s turned +++++
687 | 0.3s every +++
688 | 0.3s way ++++
689 | 0.2s to ++
690 | 0.4s guard +++++
691 | 0.1s the ++
692 | 0.2s way +++
693 | 0.1s to ++
694 | 0.1s the +
695 | 0.2s tree +++
696 | 0.1s of +
697 | 0.4s life +++++
698 | Words left off: 0
699 |
--------------------------------------------------------------------------------
/reports/Col.1:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 620
7 | Words found by aligner: 624
8 | Number of words: 4
9 | All words in the text are reported to be discovered in audio
10 | 1.3s -------------
11 | 0.3s Paul +++
12 | 0.2s --
13 | 0.1s an ++
14 | 0.5s apostle +++++
15 | 0.1s of ++
16 | 0.3s Christ ++++
17 | 0.4s Jesus +++++
18 | 0.1s by ++
19 | 0.1s the ++
20 | 0.2s will ++
21 | 0.1s of +
22 | 0.5s God +++++
23 | 0.2s and ++
24 | 0.4s Timothy ++++
25 | 0.1s our ++
26 | 0.5s brother +++++
27 | 0.5s To ++++++
28 | 0.1s the ++
29 | 0.4s saints +++++
30 | 0.1s and ++
31 | 0.4s faithful ++++
32 | 0.4s brothers +++++
33 | 0.1s in ++
34 | 0.4s Christ +++++
35 | 0.1s at +
36 | 0.4s Colossae ++++
37 | 0.4s Grace +++++
38 | 0.2s to ++
39 | 0.2s you ++
40 | 0.3s and ++++
41 | 0.3s peace ++++
42 | 0.2s from +++
43 | 0.3s God +++
44 | 0.2s our ++
45 | 0.5s Father +++++
46 | 0.2s We +++
47 | 0.4s always +++++
48 | 0.4s thank ++++
49 | 0.3s God ++++
50 | 0.1s the +
51 | 0.4s Father ++++
52 | 0.1s of +
53 | 0.2s our ++
54 | 0.2s Lord +++
55 | 0.3s Jesus ++++
56 | 0.5s Christ +++++
57 | 0.2s when ++
58 | 0.1s we ++
59 | 0.2s pray +++
60 | 0.2s for ++
61 | 0.2s you +++
62 | 0.2s since +++
63 | 0.1s we ++
64 | 0.3s heard +++
65 | 0.1s of +
66 | 0.1s your ++
67 | 0.3s faith ++++
68 | 0.1s in ++
69 | 0.4s Christ ++++
70 | 0.6s Jesus ++++++
71 | 0.4s and +++++
72 | 0.1s of +
73 | 0.1s the ++
74 | 0.3s love ++++
75 | 0.1s that ++
76 | 0.1s you +
77 | 0.3s have ++++
78 | 0.2s for ++
79 | 0.2s all ++
80 | 0.1s the ++
81 | 0.6s saints ++++++
82 | 0.4s because +++++
83 | 0.1s of ++
84 | 0.1s the ++
85 | 0.3s hope ++++
86 | 0.2s laid +++
87 | 0.2s up ++
88 | 0.1s for ++
89 | 0.1s you ++
90 | 0.1s in +
91 | 0.4s heaven ++++
92 | 0.2s Of ++
93 | 0.2s this +++
94 | 0.2s you ++
95 | 0.1s have +
96 | 0.2s heard +++
97 | 0.4s before ++++
98 | 0.1s in +
99 | 0.1s the +
100 | 0.2s word +++
101 | 0.1s of +
102 | 0.1s the ++
103 | 0.4s truth ++++
104 | 0.1s the ++
105 | 0.5s gospel ++++++
106 | 0.4s which +++++
107 | 0.1s has ++
108 | 0.3s come +++
109 | 0.1s to ++
110 | 0.2s you +++
111 | 0.2s as +++
112 | 0.3s indeed ++++
113 | 0.1s in +
114 | 0.1s the +
115 | 0.4s whole ++++
116 | 0.4s world ++++
117 | 0.1s it ++
118 | 0.1s is ++
119 | 0.3s bearing ++++
120 | 0.3s fruit ++++
121 | 0.2s and ++
122 | 0.4s growing--as +++++
123 | 0.1s it ++
124 | 0.2s also ++
125 | 0.3s does +++
126 | 0.4s -----
127 | 0.2s among +++
128 | 0.4s you ++++
129 | 0.3s since ++++
130 | 0.1s the ++
131 | 0.2s day +++
132 | 0.1s you ++
133 | 0.3s heard ++++
134 | 0.2s it ++
135 | 0.1s and ++
136 | 0.5s understood +++++
137 | 0.1s the +
138 | 0.4s grace ++++
139 | 0.1s of ++
140 | 0.4s God ++++
141 | 0.1s in ++
142 | 0.4s truth +++++
143 | 0.4s just +++++
144 | 0.1s as ++
145 | 0.1s you ++
146 | 0.2s learned +++
147 | 0.1s it ++
148 | 0.2s from ++
149 | 0.6s Epaphras +++++++
150 | 0.2s our ++
151 | 0.4s beloved +++++
152 | 0.2s fellow +++
153 | 0.5s servant +++++
154 | 0.1s He ++
155 | 0.1s is ++
156 | 0.1s a ++
157 | 0.4s faithful ++++
158 | 0.5s minister +++++
159 | 0.1s of ++
160 | 0.5s Christ +++++
161 | 0.1s on ++
162 | 0.2s your ++
163 | 0.6s behalf ++++++
164 | 0.2s and +++
165 | 0.1s has ++
166 | 0.2s made +++
167 | 0.3s known +++
168 | 0.2s to ++
169 | 0.2s us ++
170 | 0.2s your ++
171 | 0.3s love +++
172 | 0.1s in ++
173 | 0.1s the +
174 | 0.5s Spirit +++++
175 | 0.2s And ++
176 | 0.2s so +++
177 | 0.2s from ++
178 | 0.1s the ++
179 | 0.2s day +++
180 | 0.2s we ++
181 | 0.5s heard +++++
182 | 0.2s we ++
183 | 0.2s have ++
184 | 0.3s not +++
185 | 0.5s ceased ++++++
186 | 0.1s to ++
187 | 0.3s pray ++++
188 | 0.2s for +++
189 | 0.2s you +++
190 | 0.4s asking +++++
191 | 0.1s that ++
192 | 0.1s you ++
193 | 0.2s may ++
194 | 0.1s be ++
195 | 0.5s filled ++++++
196 | 0.1s with ++
197 | 0.1s the ++
198 | 0.4s knowledge +++++
199 | 0.1s of +
200 | 0.2s his ++
201 | 0.4s will +++++
202 | 0.2s in +++
203 | 0.3s all ++++
204 | 0.6s spiritual ++++++
205 | 0.6s wisdom ++++++
206 | 0.1s and ++
207 | 0.8s understanding ++++++++
208 | 0.2s so +++
209 | 0.1s as +
210 | 0.1s to ++
211 | 0.4s walk ++++
212 | 0.1s in ++
213 | 0.1s a +
214 | 0.4s manner ++++
215 | 0.4s worthy ++++
216 | 0.1s of +
217 | 0.1s the +
218 | 0.5s Lord +++++
219 | 0.4s fully +++++
220 | 0.6s pleasing ++++++
221 | 0.1s to +
222 | 0.6s him +++++++
223 | 0.5s bearing +++++
224 | 0.4s fruit +++++
225 | 0.2s in ++
226 | 0.3s every +++
227 | 0.2s good +++
228 | 0.4s work ++++
229 | 0.1s and ++
230 | 0.6s increasing +++++++
231 | 0.1s in +
232 | 0.1s the +
233 | 0.4s knowledge ++++
234 | 0.1s of ++
235 | 0.5s God +++++
236 | 0.3s May +++
237 | 0.2s you +++
238 | 0.1s be ++
239 | 0.6s strengthened +++++++
240 | 0.2s with ++
241 | 0.3s all ++++
242 | 0.5s power ++++++
243 | 0.5s according +++++
244 | 0.1s to ++
245 | 0.2s his ++
246 | 0.7s glorious +++++++
247 | 0.4s might +++++
248 | 0.2s for ++
249 | 0.3s all +++
250 | 0.7s endurance ++++++++
251 | 0.2s and ++
252 | 0.5s patience +++++
253 | 0.2s with +++
254 | 0.5s joy ++++++
255 | 0.3s giving +++
256 | 0.4s thanks ++++
257 | 0.1s to ++
258 | 0.1s the +
259 | 0.5s Father ++++++
260 | 0.1s who ++
261 | 0.2s has ++
262 | 0.7s qualified +++++++
263 | 0.3s you +++
264 | 0.2s to ++
265 | 0.6s share ++++++
266 | 0.2s in +++
267 | 0.1s the +
268 | 0.7s inheritance +++++++
269 | 0.1s of +
270 | 0.1s the ++
271 | 0.4s saints +++++
272 | 0.2s in ++
273 | 0.4s light ++++
274 | 0.2s He +++
275 | 0.2s has +++
276 | 0.5s delivered +++++
277 | 0.2s us ++
278 | 0.2s from ++
279 | 0.1s the ++
280 | 0.5s domain +++++
281 | 0.1s of ++
282 | 0.7s darkness +++++++
283 | 0.6s and +++++++
284 | 0.7s transferred +++++++
285 | 0.2s us +++
286 | 0.1s to ++
287 | 0.1s the ++
288 | 0.6s kingdom +++++++
289 | 0.1s of ++
290 | 0.2s his ++
291 | 0.4s beloved +++++
292 | 0.4s Son +++++
293 | 0.3s in +++
294 | 0.3s whom ++++
295 | 0.2s we +++
296 | 0.3s have +++
297 | 0.7s redemption ++++++++
298 | 0.1s the ++
299 | 0.6s forgiveness ++++++
300 | 0.1s of ++
301 | 0.6s sins +++++++
302 | 0.2s He +++
303 | 0.2s is ++
304 | 0.2s the ++
305 | 0.4s image +++++
306 | 0.1s of ++
307 | 0.1s the ++
308 | 0.6s invisible ++++++
309 | 0.5s God ++++++
310 | 0.1s the ++
311 | 0.6s firstborn +++++++
312 | 0.1s of +
313 | 0.2s all +++
314 | 0.7s creation ++++++++
315 | 0.5s For +++++
316 | 0.3s by +++
317 | 0.4s him ++++
318 | 0.3s all +++
319 | 0.3s things +++
320 | 0.1s were ++
321 | 0.6s created +++++++
322 | 0.2s in ++
323 | 0.5s heaven ++++++
324 | 0.2s and ++
325 | 0.1s on ++
326 | 0.3s earth ++++
327 | 0.7s visible +++++++
328 | 0.2s and ++
329 | 0.6s invisible +++++++
330 | 0.8s whether +++++++++
331 | 0.6s thrones +++++++
332 | 0.1s or +
333 | 0.6s dominions +++++++
334 | 0.4s or ++++
335 | 0.5s rulers +++++
336 | 0.1s or ++
337 | 0.6s authorities--all +++++++
338 | 0.3s ---
339 | 0.3s things +++
340 | 0.1s were ++
341 | 0.5s created ++++++
342 | 0.3s through ++++
343 | 0.3s him ++++
344 | 0.1s and ++
345 | 0.3s for +++
346 | 0.3s him +++
347 | 0.2s And ++
348 | 0.2s he ++
349 | 0.2s is +++
350 | 0.6s before ++++++
351 | 0.2s all +++
352 | 0.5s things +++++
353 | 0.5s and ++++++
354 | 0.2s in +++
355 | 0.3s him ++++
356 | 0.4s all ++++
357 | 0.3s things ++++
358 | 0.4s hold +++++
359 | 0.6s together +++++++
360 | 0.2s And ++
361 | 0.1s he ++
362 | 0.2s is ++
363 | 0.1s the +
364 | 0.2s head ++
365 | 0.1s of +
366 | 0.1s the ++
367 | 0.4s body ++++
368 | 0.1s the ++
369 | 0.6s church ++++++
370 | 0.2s He +++
371 | 0.2s is ++
372 | 0.1s the +
373 | 0.5s beginning ++++++
374 | 0.1s the ++
375 | 0.7s firstborn +++++++
376 | 0.1s from ++
377 | 0.1s the ++
378 | 0.4s dead ++++
379 | 0.3s that ++++
380 | 0.2s in ++
381 | 0.5s everything ++++++
382 | 0.2s he +++
383 | 0.2s might +++
384 | 0.2s be ++
385 | 0.7s preeminent +++++++
386 | 0.3s For +++
387 | 0.2s in ++
388 | 0.3s him ++++
389 | 0.3s all +++
390 | 0.1s the ++
391 | 0.5s fullness ++++++
392 | 0.1s of ++
393 | 0.4s God ++++
394 | 0.1s was ++
395 | 0.4s pleased ++++
396 | 0.1s to +
397 | 0.5s dwell +++++
398 | 0.2s and +++
399 | 0.3s through ++++
400 | 0.2s him +++
401 | 0.2s to ++
402 | 0.6s reconcile +++++++
403 | 0.1s to ++
404 | 0.5s himself +++++
405 | 0.3s all +++
406 | 0.6s things ++++++
407 | 0.4s whether +++++
408 | 0.2s on ++
409 | 0.3s earth ++++
410 | 0.2s or ++
411 | 0.1s in ++
412 | 0.4s heaven ++++
413 | 0.4s making ++++
414 | 0.4s peace +++++
415 | 0.2s by ++
416 | 0.1s the ++
417 | 0.3s blood +++
418 | 0.1s of +
419 | 0.2s his ++
420 | 0.6s cross ++++++
421 | 0.2s And +++
422 | 0.3s you ++++
423 | 0.2s who +++
424 | 0.3s once +++
425 | 0.1s were +
426 | 0.7s alienated +++++++
427 | 0.1s and +
428 | 0.6s hostile ++++++
429 | 0.2s in ++
430 | 0.5s mind ++++++
431 | 0.5s doing ++++++
432 | 0.4s evil +++++
433 | 0.6s deeds ++++++
434 | 0.2s he ++
435 | 0.2s has ++
436 | 0.2s now ++
437 | 0.8s reconciled ++++++++
438 | 0.1s in ++
439 | 0.2s his ++
440 | 0.3s body ++++
441 | 0.1s of ++
442 | 0.3s flesh ++++
443 | 0.2s by +++
444 | 0.2s his ++
445 | 0.3s death ++++
446 | 0.3s in ++++
447 | 0.3s order +++
448 | 0.1s to ++
449 | 0.4s present ++++
450 | 0.2s you ++
451 | 0.6s holy ++++++
452 | 0.2s and +++
453 | 0.6s blameless +++++++
454 | 0.2s and +++
455 | 0.4s above ++++
456 | 0.5s reproach ++++++
457 | 0.4s before +++++
458 | 0.2s him +++
459 | 0.2s if ++
460 | 0.4s indeed ++++
461 | 0.1s you ++
462 | 0.5s continue ++++++
463 | 0.1s in +
464 | 0.1s the +
465 | 0.4s faith ++++
466 | 0.6s stable ++++++
467 | 0.1s and ++
468 | 0.7s steadfast ++++++++
469 | 0.2s not +++
470 | 0.5s shifting +++++
471 | 0.1s from ++
472 | 0.1s the +
473 | 0.3s hope +++
474 | 0.1s of +
475 | 0.1s the +
476 | 0.4s gospel ++++
477 | 0.2s that ++
478 | 0.2s you ++
479 | 0.4s heard ++++
480 | 0.2s which +++
481 | 0.1s has ++
482 | 0.2s been ++
483 | 0.6s proclaimed +++++++
484 | 0.1s in +
485 | 0.2s all +++
486 | 0.6s creation ++++++
487 | 0.2s under +++
488 | 0.4s heaven ++++
489 | 0.2s and ++
490 | 0.1s of +
491 | 0.2s which +++
492 | 0.3s I +++
493 | 0.5s Paul ++++++
494 | 0.3s became ++++
495 | 0.0s a +
496 | 0.6s minister ++++++
497 | 0.3s Now ++++
498 | 0.1s I ++
499 | 0.5s rejoice ++++++
500 | 0.1s in ++
501 | 0.2s my ++
502 | 0.6s sufferings ++++++
503 | 0.2s for ++
504 | 0.2s your ++
505 | 0.5s sake +++++
506 | 0.1s and ++
507 | 0.1s in ++
508 | 0.1s my ++
509 | 0.5s flesh +++++
510 | 0.2s I ++
511 | 0.2s am ++
512 | 0.4s filling +++++
513 | 0.2s up ++
514 | 0.1s what ++
515 | 0.2s is ++
516 | 0.4s lacking +++++
517 | 0.1s in ++
518 | 0.5s Christ's +++++
519 | 0.7s afflictions +++++++
520 | 0.2s for ++
521 | 0.1s the +
522 | 0.2s sake +++
523 | 0.1s of +
524 | 0.2s his ++
525 | 0.4s body +++++
526 | 0.2s that ++
527 | 0.2s is +++
528 | 0.1s the ++
529 | 0.5s church +++++
530 | 0.3s of +++
531 | 0.2s which +++
532 | 0.1s I ++
533 | 0.4s became ++++
534 | 0.1s a +
535 | 0.6s minister ++++++
536 | 0.4s according ++++
537 | 0.1s to +
538 | 0.1s the ++
539 | 0.6s stewardship ++++++
540 | 0.2s from +++
541 | 0.4s God +++++
542 | 0.2s that ++
543 | 0.2s was ++
544 | 0.4s given ++++
545 | 0.1s to ++
546 | 0.2s me ++
547 | 0.2s for ++
548 | 0.4s you +++++
549 | 0.1s to ++
550 | 0.3s make +++
551 | 0.1s the ++
552 | 0.2s word +++
553 | 0.1s of ++
554 | 0.4s God +++++
555 | 0.4s fully +++++
556 | 0.5s known +++++
557 | 0.1s the ++
558 | 0.7s mystery +++++++
559 | 0.5s hidden +++++
560 | 0.2s for +++
561 | 0.6s ages ++++++
562 | 0.1s and ++
563 | 0.8s generations +++++++++
564 | 0.2s but +++
565 | 0.3s now +++
566 | 0.5s revealed ++++++
567 | 0.1s to ++
568 | 0.2s his ++
569 | 0.6s saints +++++++
570 | 1.0s To +++++++++++
571 | 0.3s them ++++
572 | 0.3s God ++++
573 | 0.4s chose ++++
574 | 0.1s to ++
575 | 0.2s make +++
576 | 0.4s known +++++
577 | 0.4s how ++++
578 | 0.5s great +++++
579 | 0.3s among +++
580 | 0.1s the ++
581 | 0.7s Gentiles +++++++
582 | 0.2s are ++
583 | 0.1s the ++
584 | 0.5s riches +++++
585 | 0.1s of +
586 | 0.1s the ++
587 | 0.4s glory ++++
588 | 0.1s of +
589 | 0.2s this ++
590 | 0.5s mystery ++++++
591 | 0.2s which +++
592 | 0.1s is ++
593 | 0.6s Christ ++++++
594 | 0.2s in +++
595 | 0.4s you ++++
596 | 0.1s the ++
597 | 0.4s hope ++++
598 | 0.1s of ++
599 | 0.5s glory ++++++
600 | 0.3s Him +++
601 | 0.2s we +++
602 | 0.7s proclaim ++++++++
603 | 0.5s warning +++++
604 | 0.7s everyone +++++++
605 | 0.2s and +++
606 | 0.4s teaching ++++
607 | 0.4s everyone +++++
608 | 0.1s with ++
609 | 0.3s all +++
610 | 0.5s wisdom +++++
611 | 0.2s that ++
612 | 0.2s we ++
613 | 0.2s may ++
614 | 0.5s present +++++
615 | 0.5s everyone +++++
616 | 0.5s mature ++++++
617 | 0.1s in ++
618 | 0.6s Christ ++++++
619 | 0.2s For +++
620 | 0.3s this +++
621 | 0.2s I ++
622 | 0.7s toil +++++++
623 | 0.6s struggling ++++++
624 | 0.2s with ++
625 | 0.3s all ++++
626 | 0.3s his ++++
627 | 0.5s energy ++++++
628 | 0.1s that ++
629 | 0.2s he ++
630 | 0.6s powerfully +++++++
631 | 0.3s works +++
632 | 0.3s within ++++
633 | 0.2s me +++
634 | Words left off: 0
635 |
--------------------------------------------------------------------------------
/reports/John.3:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 751
7 | Words found by aligner: 757
8 | Number of words: 6
9 | All words in the text are reported to be discovered in audio
10 | 0.1s Now ++
11 | 0.1s there ++
12 | 0.1s was ++
13 | 0.1s a +
14 | 0.3s man +++
15 | 0.1s of +
16 | 0.1s the +
17 | 0.7s Pharisees +++++++
18 | 0.4s named +++++
19 | 0.9s Nicodemus +++++++++
20 | 0.1s a ++
21 | 0.3s ruler ++++
22 | 0.1s of +
23 | 0.1s the ++
24 | 0.5s Jews ++++++
25 | 0.2s This +++
26 | 0.2s man ++
27 | 0.3s came +++
28 | 0.1s to +
29 | 0.4s Jesus ++++
30 | 0.2s by ++
31 | 0.3s night ++++
32 | 0.1s and ++
33 | 0.2s said +++
34 | 0.1s to ++
35 | 0.2s him +++
36 | 0.6s Rabbi ++++++
37 | 0.1s we ++
38 | 0.2s know +++
39 | 0.1s that ++
40 | 0.1s you ++
41 | 0.1s are +
42 | 0.1s a +
43 | 0.4s teacher ++++
44 | 0.2s come +++
45 | 0.2s from ++
46 | 0.5s God +++++
47 | 0.1s for ++
48 | 0.2s no ++
49 | 0.1s one ++
50 | 0.2s can ++
51 | 0.2s do ++
52 | 0.2s these +++
53 | 0.5s signs +++++
54 | 0.2s that ++
55 | 0.1s you +
56 | 0.3s do +++
57 | 0.3s unless ++++
58 | 0.4s God ++++
59 | 0.1s is ++
60 | 0.3s with +++
61 | 0.1s him ++
62 | 0.5s Jesus +++++
63 | 0.4s answered ++++
64 | 0.3s him +++
65 | 0.7s --------
66 | 0.4s Truly ++++
67 | 0.4s truly ++++
68 | 0.1s I +
69 | 0.3s say +++
70 | 0.1s to ++
71 | 0.2s you +++
72 | 0.4s unless +++++
73 | 0.2s one +++
74 | 0.2s is ++
75 | 0.3s born ++++
76 | 0.5s again ++++++
77 | 0.1s he +
78 | 0.4s cannot ++++
79 | 0.3s see +++
80 | 0.1s the +
81 | 0.4s kingdom ++++
82 | 0.1s of +
83 | 0.5s God +++++
84 | 0.7s -------
85 | 0.6s Nicodemus +++++++
86 | 0.2s said +++
87 | 0.1s to ++
88 | 0.1s him ++
89 | 0.1s How +
90 | 1.0s can +++++++++++
91 | 0.1s a +
92 | 0.2s man +++
93 | 0.1s be ++
94 | 0.4s born +++++
95 | 0.1s when ++
96 | 0.1s he +
97 | 0.2s is ++
98 | 0.5s old +++++
99 | 0.2s Can ++
100 | 0.2s he ++
101 | 0.3s enter ++++
102 | 0.1s a +
103 | 0.3s second ++++
104 | 0.3s time ++++
105 | 0.2s into ++
106 | 0.1s his ++
107 | 0.3s mother's ++++
108 | 0.3s womb +++
109 | 0.1s and +
110 | 0.1s be +
111 | 0.5s born +++++
112 | 0.6s Jesus ++++++
113 | 0.5s answered +++++
114 | 0.4s Truly ++++
115 | 0.4s truly +++++
116 | 0.1s I +
117 | 0.3s say +++
118 | 0.1s to +
119 | 0.3s you +++
120 | 0.4s unless ++++
121 | 0.2s one ++
122 | 0.1s is ++
123 | 0.2s born +++
124 | 0.1s of ++
125 | 0.4s water +++++
126 | 0.1s and +
127 | 0.1s the +
128 | 0.5s Spirit +++++
129 | 0.1s he ++
130 | 0.5s cannot ++++++
131 | 0.2s enter +++
132 | 0.1s the ++
133 | 0.3s kingdom ++++
134 | 0.1s of ++
135 | 0.4s God +++++
136 | 0.8s That ++++++++
137 | 0.2s which ++
138 | 0.2s is ++
139 | 0.2s born +++
140 | 0.1s of +
141 | 0.1s the +
142 | 0.6s flesh +++++++
143 | 0.2s is ++
144 | 0.5s flesh ++++++
145 | 0.2s and ++
146 | 0.2s that ++
147 | 0.1s which ++
148 | 0.1s is ++
149 | 0.2s born +++
150 | 0.1s of +
151 | 0.1s the +
152 | 0.5s Spirit ++++++
153 | 0.1s is ++
154 | 0.5s spirit ++++++
155 | 0.2s Do ++
156 | 0.2s not ++
157 | 0.3s marvel ++++
158 | 0.1s that ++
159 | 0.1s I +
160 | 0.3s said +++
161 | 0.1s to +
162 | 0.2s you +++
163 | 0.1s You ++
164 | 0.3s must +++
165 | 0.1s be +
166 | 0.2s born +++
167 | 0.5s again ++++++
168 | 0.2s The +++
169 | 0.4s wind ++++
170 | 0.5s blows +++++
171 | 0.1s where ++
172 | 0.2s it ++
173 | 0.5s wishes ++++++
174 | 0.2s and ++
175 | 0.1s you +
176 | 0.3s hear +++
177 | 0.2s its ++
178 | 0.6s sound ++++++
179 | 0.2s but ++
180 | 0.1s you +
181 | 0.1s do ++
182 | 0.2s not ++
183 | 0.2s know ++
184 | 0.1s where ++
185 | 0.1s it +
186 | 0.4s comes ++++
187 | 0.2s from +++
188 | 0.1s or +
189 | 0.2s where ++
190 | 0.1s it +
191 | 0.5s goes ++++++
192 | 0.3s So +++
193 | 0.1s it +
194 | 0.2s is ++
195 | 0.2s with +++
196 | 0.5s everyone +++++
197 | 0.1s who ++
198 | 0.1s is ++
199 | 0.3s born ++++
200 | 0.1s of +
201 | 0.1s the +
202 | 0.5s Spirit ++++++
203 | 0.9s ---------
204 | 0.7s Nicodemus +++++++
205 | 0.2s said +++
206 | 0.2s to ++
207 | 0.2s him +++
208 | 0.3s How ++++
209 | 0.2s can ++
210 | 0.2s these ++
211 | 0.4s things ++++
212 | 0.5s be ++++++
213 | 0.5s Jesus ++++++
214 | 0.4s answered +++++
215 | 0.2s him ++
216 | 0.1s Are ++
217 | 0.1s you ++
218 | 0.1s the ++
219 | 0.4s teacher ++++
220 | 0.1s of +
221 | 0.7s Israel ++++++++
222 | 0.2s and ++
223 | 0.2s yet ++
224 | 0.1s you ++
225 | 0.1s do ++
226 | 0.2s not ++
227 | 0.6s understand ++++++
228 | 0.2s these ++
229 | 0.6s things ++++++
230 | 0.5s Truly +++++
231 | 0.3s truly ++++
232 | 0.1s I +
233 | 0.3s say +++
234 | 0.1s to ++
235 | 0.2s you +++
236 | 0.1s we ++
237 | 0.3s speak ++++
238 | 0.1s of ++
239 | 0.2s what ++
240 | 0.1s we ++
241 | 0.5s know +++++
242 | 0.2s and +++
243 | 0.2s bear ++
244 | 0.4s witness ++++
245 | 0.1s to ++
246 | 0.1s what ++
247 | 0.1s we ++
248 | 0.1s have ++
249 | 0.5s seen +++++
250 | 0.2s but ++
251 | 0.2s you ++
252 | 0.1s do ++
253 | 0.2s not ++
254 | 0.4s receive ++++
255 | 0.1s our ++
256 | 0.6s testimony +++++++
257 | 0.2s If ++
258 | 0.1s I ++
259 | 0.2s have ++
260 | 0.3s told +++
261 | 0.2s you ++
262 | 0.4s earthly ++++
263 | 0.4s things +++++
264 | 0.1s and ++
265 | 0.1s you +
266 | 0.1s do +
267 | 0.2s not +++
268 | 0.5s believe ++++++
269 | 0.2s how ++
270 | 0.1s can ++
271 | 0.1s you ++
272 | 0.3s believe ++++
273 | 0.1s if ++
274 | 0.1s I +
275 | 0.3s tell +++
276 | 0.1s you +
277 | 0.4s heavenly +++++
278 | 0.5s things ++++++
279 | 0.2s No +++
280 | 0.2s one ++
281 | 0.3s has +++
282 | 0.6s ascended ++++++
283 | 0.2s into ++
284 | 0.4s heaven +++++
285 | 0.4s except +++++
286 | 0.2s he +++
287 | 0.2s who ++
288 | 0.6s descended +++++++
289 | 0.2s from ++
290 | 0.4s heaven ++++
291 | 0.1s the ++
292 | 0.3s Son +++
293 | 0.1s of ++
294 | 0.5s Man +++++
295 | 0.2s And ++
296 | 0.2s as ++
297 | 0.5s Moses ++++++
298 | 0.3s lifted ++++
299 | 0.1s up ++
300 | 0.1s the +
301 | 0.4s serpent +++++
302 | 0.1s in +
303 | 0.1s the +
304 | 0.6s wilderness ++++++
305 | 0.2s so +++
306 | 0.3s must +++
307 | 0.1s the +
308 | 0.3s Son +++
309 | 0.1s of ++
310 | 0.4s Man ++++
311 | 0.1s be ++
312 | 0.3s lifted ++++
313 | 0.3s up +++
314 | 0.5s that +++++
315 | 0.4s whoever ++++
316 | 0.5s believes +++++
317 | 0.1s in ++
318 | 0.4s him +++++
319 | 0.2s may ++
320 | 0.2s have +++
321 | 0.5s eternal +++++
322 | 0.5s life +++++
323 | 0.3s For +++
324 | 0.4s God ++++
325 | 0.4s so ++++
326 | 0.3s loved ++++
327 | 0.1s the ++
328 | 0.5s world ++++++
329 | 0.1s that ++
330 | 0.1s he ++
331 | 0.5s gave +++++
332 | 0.2s his ++
333 | 0.2s only +++
334 | 0.5s Son ++++++
335 | 0.1s that ++
336 | 0.4s whoever ++++
337 | 0.4s believes +++++
338 | 0.1s in ++
339 | 0.3s him +++
340 | 0.3s should +++
341 | 0.3s not +++
342 | 0.5s perish ++++++
343 | 0.1s but ++
344 | 0.2s have +++
345 | 0.5s eternal +++++
346 | 0.4s life +++++
347 | 0.8s For ++++++++
348 | 0.3s God ++++
349 | 0.1s did ++
350 | 0.2s not ++
351 | 0.2s send +++
352 | 0.1s his ++
353 | 0.2s Son +++
354 | 0.2s into ++
355 | 0.1s the +
356 | 0.3s world +++
357 | 0.1s to ++
358 | 0.4s condemn +++++
359 | 0.1s the ++
360 | 0.4s world ++++
361 | 0.2s but +++
362 | 0.1s in ++
363 | 0.3s order ++++
364 | 0.2s that ++
365 | 0.2s the ++
366 | 0.4s world ++++
367 | 0.2s might ++
368 | 0.1s be ++
369 | 0.6s saved ++++++
370 | 0.2s through ++
371 | 0.4s him ++++
372 | 0.5s Whoever +++++
373 | 0.5s believes +++++
374 | 0.2s in ++
375 | 0.2s him +++
376 | 0.1s is ++
377 | 0.2s not +++
378 | 0.6s condemned +++++++
379 | 0.3s but ++++
380 | 0.3s whoever ++++
381 | 0.2s does ++
382 | 0.2s not +++
383 | 0.4s believe ++++
384 | 0.1s is ++
385 | 0.5s condemned +++++
386 | 0.5s already ++++++
387 | 0.4s because +++++
388 | 0.1s he +
389 | 0.2s has +++
390 | 0.2s not +++
391 | 0.4s believed +++++
392 | 0.1s in +
393 | 0.1s the +
394 | 0.3s name ++++
395 | 0.1s of +
396 | 0.1s the ++
397 | 0.2s only ++
398 | 0.3s Son +++
399 | 0.1s of +
400 | 0.5s God +++++
401 | 0.6s ------
402 | 0.2s And +++
403 | 0.3s this ++++
404 | 0.2s is ++
405 | 0.2s the ++
406 | 0.5s judgment ++++++
407 | 0.6s the ++++++
408 | 0.3s light +++
409 | 0.1s has ++
410 | 0.2s come ++
411 | 0.2s into ++
412 | 0.1s the ++
413 | 0.4s world +++++
414 | 0.2s and ++
415 | 0.4s people +++++
416 | 0.4s loved ++++
417 | 0.2s the ++
418 | 0.6s darkness +++++++
419 | 0.3s rather ++++
420 | 0.1s than ++
421 | 0.1s the +
422 | 0.3s light ++++
423 | 0.3s because ++++
424 | 0.2s their ++
425 | 0.3s works ++++
426 | 0.2s were ++
427 | 0.4s evil ++++
428 | 0.2s For +++
429 | 0.5s everyone +++++
430 | 0.1s who +
431 | 0.2s does +++
432 | 0.3s wicked ++++
433 | 0.5s things ++++++
434 | 0.6s hates +++++++
435 | 0.1s the ++
436 | 0.4s light +++++
437 | 0.2s and ++
438 | 0.2s does ++
439 | 0.2s not ++
440 | 0.3s come +++
441 | 0.1s to ++
442 | 0.1s the +
443 | 0.3s light ++++
444 | 0.3s lest +++
445 | 0.1s his ++
446 | 0.4s works ++++
447 | 0.2s should +++
448 | 0.1s be ++
449 | 0.8s exposed ++++++++
450 | 0.8s ---------
451 | 0.2s But +++
452 | 0.4s whoever ++++
453 | 0.3s does +++
454 | 0.2s what +++
455 | 0.1s is ++
456 | 0.4s true +++++
457 | 0.4s comes +++++
458 | 0.1s to ++
459 | 0.1s the +
460 | 0.4s light ++++
461 | 0.2s so ++
462 | 0.1s that ++
463 | 0.1s it +
464 | 0.2s may ++
465 | 0.1s be +
466 | 0.5s clearly +++++
467 | 0.3s seen ++++
468 | 0.1s that ++
469 | 0.2s his ++
470 | 0.4s works ++++
471 | 0.1s have ++
472 | 0.2s been ++
473 | 0.4s carried +++++
474 | 0.2s out ++
475 | 0.2s in ++
476 | 0.4s God +++++
477 | 0.4s After ++++
478 | 0.3s this ++++
479 | 0.5s Jesus +++++
480 | 0.2s and ++
481 | 0.1s his ++
482 | 0.6s disciples ++++++
483 | 0.3s went +++
484 | 0.2s into +++
485 | 0.1s the ++
486 | 0.4s Judean ++++
487 | 0.8s countryside ++++++++
488 | 0.2s and ++
489 | 0.1s he +
490 | 0.4s remained +++++
491 | 0.2s there ++
492 | 0.2s with ++
493 | 0.2s them +++
494 | 0.1s and ++
495 | 0.1s was ++
496 | 0.7s baptizing +++++++
497 | 0.3s John ++++
498 | 0.4s also ++++
499 | 0.2s was ++
500 | 0.6s baptizing ++++++
501 | 0.1s at ++
502 | 0.4s Aenon ++++
503 | 0.2s near ++
504 | 0.5s Salim ++++++
505 | 0.3s because +++
506 | 0.3s water ++++
507 | 0.1s was ++
508 | 0.5s plentiful +++++
509 | 0.3s there +++
510 | 0.2s and ++
511 | 0.4s people ++++
512 | 0.1s were ++
513 | 0.5s coming +++++
514 | 0.2s and ++
515 | 0.2s being +++
516 | 0.7s baptized ++++++++
517 | 0.2s for ++
518 | 0.3s John ++++
519 | 0.2s had ++
520 | 0.2s not +++
521 | 0.2s yet ++
522 | 0.2s been ++
523 | 0.2s put ++
524 | 0.1s in ++
525 | 0.4s prison +++++
526 | 0.3s Now +++
527 | 0.0s a +
528 | 0.6s discussion ++++++
529 | 0.4s arose +++++
530 | 0.3s between ++++
531 | 0.2s some ++
532 | 0.1s of ++
533 | 0.4s John's ++++
534 | 0.7s disciples +++++++
535 | 0.2s and ++
536 | 0.0s a +
537 | 0.5s Jew +++++
538 | 0.2s over +++
539 | 0.9s purification +++++++++
540 | 0.1s And ++
541 | 0.1s they +
542 | 0.2s came +++
543 | 0.1s to ++
544 | 0.4s John ++++
545 | 0.1s and ++
546 | 0.2s said +++
547 | 0.2s to ++
548 | 0.5s him +++++
549 | 0.5s Rabbi ++++++
550 | 0.2s he +++
551 | 0.1s who +
552 | 0.2s was ++
553 | 0.2s with ++
554 | 0.1s you ++
555 | 0.4s across ++++
556 | 0.1s the ++
557 | 0.4s Jordan ++++
558 | 0.1s to ++
559 | 0.2s whom ++
560 | 0.1s you +
561 | 0.2s bore +++
562 | 1.0s witness--look +++++++++++
563 | 0.2s he ++
564 | 0.2s is ++
565 | 0.7s baptizing +++++++
566 | 0.1s and +
567 | 0.3s all +++
568 | 0.1s are +
569 | 0.3s going +++
570 | 0.1s to ++
571 | 0.6s him ++++++
572 | 0.4s John ++++
573 | 0.6s answered +++++++
574 | 0.1s A ++
575 | 0.4s person ++++
576 | 0.3s cannot ++++
577 | 0.4s receive +++++
578 | 0.2s even +++
579 | 0.3s one +++
580 | 0.5s thing +++++
581 | 0.3s unless ++++
582 | 0.1s it +
583 | 0.1s is ++
584 | 0.3s given ++++
585 | 0.2s him +++
586 | 0.1s from ++
587 | 0.4s heaven ++++
588 | 0.2s You +++
589 | 0.5s yourselves ++++++
590 | 0.2s bear +++
591 | 0.1s me ++
592 | 0.5s witness +++++
593 | 0.1s that ++
594 | 0.1s I +
595 | 0.3s said +++
596 | 0.1s I ++
597 | 0.2s am ++
598 | 0.2s not +++
599 | 0.1s the +
600 | 0.6s Christ ++++++
601 | 0.1s but ++
602 | 0.1s I ++
603 | 0.1s have ++
604 | 0.2s been ++
605 | 0.4s sent ++++
606 | 0.4s before ++++
607 | 0.2s him +++
608 | 0.1s The +
609 | 1.3s one ++++++++++++++
610 | 0.1s who +
611 | 0.3s has ++++
612 | 0.1s the ++
613 | 0.5s bride +++++
614 | 0.1s is ++
615 | 0.1s the +
616 | 0.6s bridegroom ++++++
617 | 0.1s The +
618 | 0.3s friend ++++
619 | 0.1s of +
620 | 0.1s the +
621 | 0.6s bridegroom ++++++
622 | 0.1s who +
623 | 0.4s stands +++++
624 | 0.1s and +
625 | 0.3s hears ++++
626 | 0.2s him ++
627 | 0.8s rejoices +++++++++
628 | 0.5s greatly ++++++
629 | 0.1s at ++
630 | 0.1s the +
631 | 0.6s bridegroom's +++++++
632 | 0.6s voice ++++++
633 | 0.9s Therefore ++++++++++
634 | 0.2s this +++
635 | 0.3s joy ++++
636 | 0.2s of ++
637 | 0.5s mine +++++
638 | 0.2s is +++
639 | 0.2s now ++
640 | 0.6s complete ++++++
641 | 0.3s He ++++
642 | 0.3s must ++++
643 | 0.9s increase +++++++++
644 | 0.3s but +++
645 | 0.1s I ++
646 | 0.3s must ++++
647 | 0.7s decrease +++++++
648 | 0.7s --------
649 | 0.3s He +++
650 | 0.2s who ++
651 | 0.3s comes ++++
652 | 0.2s from +++
653 | 0.5s above +++++
654 | 0.2s is +++
655 | 0.3s above ++++
656 | 0.4s all +++++
657 | 0.3s He +++
658 | 0.1s who ++
659 | 0.1s is +
660 | 0.2s of ++
661 | 0.2s the ++
662 | 0.3s earth +++
663 | 0.5s belongs +++++
664 | 0.1s to ++
665 | 0.1s the ++
666 | 0.2s earth +++
667 | 0.1s and ++
668 | 0.4s speaks +++++
669 | 0.1s in ++
670 | 0.1s an ++
671 | 0.3s earthly ++++
672 | 0.5s way +++++
673 | 0.2s He +++
674 | 0.1s who ++
675 | 0.3s comes ++++
676 | 0.2s from ++
677 | 0.4s heaven +++++
678 | 0.1s is ++
679 | 0.3s above ++++
680 | 0.4s all +++++
681 | 0.2s He ++
682 | 0.3s bears ++++
683 | 0.4s witness ++++
684 | 0.1s to ++
685 | 0.2s what ++
686 | 0.1s he ++
687 | 0.1s has ++
688 | 0.5s seen ++++++
689 | 0.2s and ++
690 | 0.4s heard +++++
691 | 0.2s yet ++
692 | 0.3s no ++++
693 | 0.2s one +++
694 | 0.4s receives +++++
695 | 0.1s his ++
696 | 0.6s testimony +++++++
697 | 0.4s Whoever +++++
698 | 0.5s receives +++++
699 | 0.2s his ++
700 | 0.6s testimony +++++++
701 | 0.4s sets +++++
702 | 0.2s his +++
703 | 0.4s seal +++++
704 | 0.2s to ++
705 | 0.4s this ++++
706 | 0.2s that +++
707 | 0.6s God ++++++
708 | 0.2s is +++
709 | 0.5s true +++++
710 | 0.5s For ++++++
711 | 0.2s he +++
712 | 0.2s whom +++
713 | 0.3s God +++
714 | 0.2s has ++
715 | 0.4s sent ++++
716 | 0.4s utters ++++
717 | 0.1s the ++
718 | 0.3s words ++++
719 | 0.1s of ++
720 | 0.4s God +++++
721 | 0.2s for +++
722 | 0.1s he ++
723 | 0.2s gives +++
724 | 0.1s the ++
725 | 0.5s Spirit +++++
726 | 0.3s without ++++
727 | 0.5s measure +++++
728 | 0.1s The ++
729 | 0.4s Father ++++
730 | 0.3s loves +++
731 | 0.1s the ++
732 | 0.5s Son +++++
733 | 0.3s and ++++
734 | 0.1s has ++
735 | 0.3s given +++
736 | 0.3s all ++++
737 | 0.4s things ++++
738 | 0.2s into +++
739 | 0.2s his ++
740 | 0.4s hand +++++
741 | 0.4s Whoever +++++
742 | 0.4s believes +++++
743 | 0.1s in ++
744 | 0.1s the +
745 | 0.4s Son +++++
746 | 0.2s has +++
747 | 0.4s eternal ++++
748 | 0.4s life ++++
749 | 0.4s whoever ++++
750 | 0.2s does ++
751 | 0.2s not ++
752 | 0.3s obey ++++
753 | 0.1s the ++
754 | 0.4s Son +++++
755 | 0.3s shall ++++
756 | 0.3s not +++
757 | 0.3s see ++++
758 | 0.5s life +++++
759 | 0.2s but +++
760 | 0.2s the ++
761 | 0.4s wrath ++++
762 | 0.1s of +
763 | 0.4s God +++++
764 | 0.5s remains ++++++
765 | 0.2s on ++
766 | 0.2s him +++
767 | Words left off: 0
768 |
--------------------------------------------------------------------------------
/reports/Gen.1:
--------------------------------------------------------------------------------
1 | Any data appearing in the ESV text column herein is copyrighted:
2 | The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles,
3 | a publishing ministry of Good News Publishers. All rights reserved.
4 |
5 |
6 | Words in source text: 791
7 | Words found by aligner: 811
8 | Number of words: 20
9 | All words in the text are reported to be discovered in audio
10 | 0.2s In ++
11 | 0.1s the +
12 | 0.7s beginning +++++++
13 | 0.4s God +++++
14 | 0.6s created ++++++
15 | 0.1s the +
16 | 0.5s heavens +++++
17 | 0.1s and ++
18 | 0.2s the ++
19 | 0.3s earth ++++
20 | 0.2s The ++
21 | 0.3s earth +++
22 | 0.2s was +++
23 | 0.3s without +++
24 | 0.4s form +++++
25 | 0.1s and ++
26 | 0.5s void ++++++
27 | 0.2s and +++
28 | 0.5s darkness +++++
29 | 0.2s was ++
30 | 0.2s over ++
31 | 0.1s the ++
32 | 0.4s face ++++
33 | 0.1s of +
34 | 0.1s the +
35 | 0.4s deep ++++
36 | 0.8s ---------
37 | 0.1s And +
38 | 0.1s the +
39 | 0.4s Spirit +++++
40 | 0.1s of ++
41 | 0.3s God +++
42 | 0.2s was ++
43 | 0.4s hovering +++++
44 | 0.2s over ++
45 | 0.1s the +
46 | 0.3s face ++++
47 | 0.1s of ++
48 | 0.1s the ++
49 | 0.6s waters ++++++
50 | 0.8s --------
51 | 0.2s And ++
52 | 0.3s God ++++
53 | 0.4s said +++++
54 | 0.2s Let +++
55 | 0.1s there ++
56 | 0.2s be ++
57 | 0.5s light +++++
58 | 0.2s and ++
59 | 0.2s there ++
60 | 0.2s was +++
61 | 0.4s light +++++
62 | 0.2s And ++
63 | 0.3s God +++
64 | 0.3s saw ++++
65 | 0.1s that ++
66 | 0.1s the +
67 | 0.3s light +++
68 | 0.2s was ++
69 | 0.5s good ++++++
70 | 0.2s And ++
71 | 0.3s God +++
72 | 0.6s separated ++++++
73 | 0.1s the +
74 | 0.3s light ++++
75 | 0.2s from ++
76 | 0.1s the +
77 | 0.6s darkness +++++++
78 | 0.3s God +++
79 | 0.2s called +++
80 | 0.1s the +
81 | 0.4s light +++++
82 | 0.4s Day +++++
83 | 0.3s and +++
84 | 0.1s the ++
85 | 0.5s darkness ++++++
86 | 0.1s he ++
87 | 0.3s called +++
88 | 0.4s Night +++++
89 | 0.1s And ++
90 | 0.1s there +
91 | 0.2s was ++
92 | 0.5s evening ++++++
93 | 0.1s and ++
94 | 0.1s there ++
95 | 0.2s was ++
96 | 0.5s morning ++++++
97 | 0.3s the +++
98 | 0.4s first ++++
99 | 0.4s day +++++
100 | 0.2s And +++
101 | 0.3s God +++
102 | 0.7s said +++++++
103 | 0.2s Let ++
104 | 0.1s there ++
105 | 0.1s be ++
106 | 0.1s an +
107 | 0.7s expanse +++++++
108 | 0.1s in +
109 | 0.1s the +
110 | 0.3s midst ++++
111 | 0.1s of +
112 | 0.1s the ++
113 | 0.6s waters +++++++
114 | 0.2s and ++
115 | 0.1s let ++
116 | 0.1s it +
117 | 0.5s separate ++++++
118 | 0.1s the ++
119 | 0.4s waters +++++
120 | 0.2s from +++
121 | 0.1s the +
122 | 0.5s waters ++++++
123 | 0.2s And ++
124 | 0.3s God ++++
125 | 0.2s made +++
126 | 0.1s the ++
127 | 0.8s expanse +++++++++
128 | 0.2s and +++
129 | 0.6s separated ++++++
130 | 0.1s the ++
131 | 0.4s waters +++++
132 | 0.1s that ++
133 | 0.1s were ++
134 | 0.2s under +++
135 | 0.1s the ++
136 | 0.7s expanse ++++++++
137 | 0.1s from ++
138 | 0.1s the ++
139 | 0.4s waters +++++
140 | 0.2s that ++
141 | 0.1s were ++
142 | 0.3s above ++++
143 | 0.1s the ++
144 | 0.8s expanse ++++++++
145 | 0.2s And ++
146 | 0.1s it +
147 | 0.2s was ++
148 | 0.5s so +++++
149 | 1.0s ----------
150 | 0.2s And +++
151 | 0.4s God ++++
152 | 0.3s called +++
153 | 0.1s the ++
154 | 0.8s expanse ++++++++
155 | 0.5s Heaven +++++
156 | 0.1s And ++
157 | 0.1s there +
158 | 0.2s was ++
159 | 0.5s evening +++++
160 | 0.1s and ++
161 | 0.1s there +
162 | 0.1s was ++
163 | 0.5s morning +++++
164 | 0.2s the +++
165 | 0.4s second ++++
166 | 0.4s day ++++
167 | 0.8s ---------
168 | 0.2s And ++
169 | 0.3s God +++
170 | 0.5s said +++++
171 | 0.2s Let ++
172 | 0.1s the ++
173 | 0.4s waters ++++
174 | 0.2s under +++
175 | 0.1s the ++
176 | 0.4s heavens ++++
177 | 0.1s be ++
178 | 0.4s gathered ++++
179 | 0.4s together ++++
180 | 0.2s into +++
181 | 0.2s one +++
182 | 0.6s place +++++++
183 | 0.2s and ++
184 | 0.2s let ++
185 | 0.1s the ++
186 | 0.4s dry ++++
187 | 0.4s land ++++
188 | 0.6s appear ++++++
189 | 0.2s And ++
190 | 0.1s it ++
191 | 0.2s was ++
192 | 0.4s so +++++
193 | 0.4s God +++++
194 | 0.2s called +++
195 | 0.1s the ++
196 | 0.3s dry +++
197 | 0.5s land +++++
198 | 0.4s Earth ++++
199 | 0.1s and ++
200 | 0.1s the +
201 | 0.4s waters +++++
202 | 0.1s that ++
203 | 0.1s were ++
204 | 0.4s gathered ++++
205 | 0.4s together ++++
206 | 0.1s he ++
207 | 0.4s called ++++
208 | 0.8s Seas ++++++++
209 | 0.6s -------
210 | 0.2s And +++
211 | 0.3s God ++++
212 | 0.5s saw +++++
213 | 0.1s that ++
214 | 0.1s it +
215 | 0.2s was ++
216 | 0.5s good +++++
217 | 0.2s And +++
218 | 0.3s God +++
219 | 0.6s said +++++++
220 | 0.2s Let ++
221 | 0.2s the ++
222 | 0.2s earth ++
223 | 0.4s sprout +++++
224 | 1.0s vegetation ++++++++++
225 | 0.5s plants ++++++
226 | 0.4s yielding +++++
227 | 0.6s seed ++++++
228 | 0.2s and ++
229 | 0.3s fruit +++
230 | 0.4s trees ++++
231 | 0.3s bearing ++++
232 | 0.4s fruit ++++
233 | 0.1s in ++
234 | 0.2s which +++
235 | 0.1s is ++
236 | 0.2s their ++
237 | 0.5s seed +++++
238 | 0.3s each ++++
239 | 0.5s according +++++
240 | 0.2s to ++
241 | 0.1s its ++
242 | 0.5s kind ++++++
243 | 0.1s on +
244 | 0.2s the ++
245 | 0.3s earth ++++
246 | 0.2s And ++
247 | 0.1s it +
248 | 0.2s was ++
249 | 0.5s so ++++++
250 | 0.9s The +++++++++
251 | 0.3s ---
252 | 0.1s earth +
253 | 0.2s brought +++
254 | 0.4s forth ++++
255 | 0.9s vegetation +++++++++
256 | 0.5s plants +++++
257 | 0.3s yielding ++++
258 | 0.3s seed ++++
259 | 0.4s according ++++
260 | 0.1s to +
261 | 0.2s their +++
262 | 0.1s own ++
263 | 0.7s kinds ++++++++
264 | 0.2s and ++
265 | 0.5s trees +++++
266 | 0.3s bearing ++++
267 | 0.3s fruit ++++
268 | 0.1s in ++
269 | 0.2s which +++
270 | 0.1s is ++
271 | 0.2s their ++
272 | 0.5s seed +++++
273 | 0.3s each +++
274 | 0.5s according +++++
275 | 0.2s to ++
276 | 0.1s its ++
277 | 0.5s kind ++++++
278 | 1.1s -----------
279 | 0.2s And +++
280 | 0.3s God ++++
281 | 0.4s saw ++++
282 | 0.1s that ++
283 | 0.1s it +
284 | 0.2s was ++
285 | 0.5s good +++++
286 | 0.1s And ++
287 | 0.1s there +
288 | 0.1s was ++
289 | 0.5s evening +++++
290 | 0.1s and +
291 | 0.1s there ++
292 | 0.2s was ++
293 | 0.5s morning ++++++
294 | 0.3s the ++++
295 | 0.3s third ++++
296 | 0.4s day ++++
297 | 1.0s ----------
298 | 0.2s And +++
299 | 0.3s God ++++
300 | 0.5s said +++++
301 | 0.2s Let +++
302 | 0.1s there ++
303 | 0.1s be ++
304 | 0.4s lights +++++
305 | 0.1s in +
306 | 0.1s the +
307 | 0.6s expanse +++++++
308 | 0.1s of +
309 | 0.1s the +
310 | 0.5s heavens ++++++
311 | 0.2s to ++
312 | 0.5s separate +++++
313 | 0.1s the ++
314 | 0.3s day ++++
315 | 0.2s from ++
316 | 0.1s the +
317 | 0.4s night +++++
318 | 0.8s --------
319 | 0.2s And ++
320 | 0.1s let ++
321 | 0.2s them ++
322 | 0.1s be ++
323 | 0.2s for ++
324 | 0.6s signs ++++++
325 | 0.2s and +++
326 | 0.1s for ++
327 | 0.7s seasons +++++++
328 | 0.2s and +++
329 | 0.1s for ++
330 | 0.5s days +++++
331 | 0.2s and ++
332 | 0.6s years +++++++
333 | 0.1s and ++
334 | 0.1s let ++
335 | 0.2s them ++
336 | 0.2s be ++
337 | 0.5s lights ++++++
338 | 0.1s in ++
339 | 0.1s the +
340 | 0.5s expanse +++++
341 | 0.1s of +
342 | 0.1s the +
343 | 0.6s heavens ++++++
344 | 0.1s to ++
345 | 0.2s give ++
346 | 0.3s light +++
347 | 0.2s upon +++
348 | 0.1s the ++
349 | 0.3s earth ++++
350 | 0.7s -------
351 | 0.2s And ++
352 | 0.1s it +
353 | 0.2s was ++
354 | 0.6s so ++++++
355 | 0.2s And +++
356 | 0.4s God +++++
357 | 0.2s made +++
358 | 0.1s the ++
359 | 0.3s two ++++
360 | 0.4s great ++++
361 | 0.3s lights--the +++
362 | 0.7s -------
363 | 0.4s greater +++++
364 | 0.3s light +++
365 | 0.1s to +
366 | 0.2s rule +++
367 | 0.1s the ++
368 | 0.4s day ++++
369 | 0.1s and ++
370 | 0.1s the +
371 | 0.4s lesser ++++
372 | 0.3s light ++++
373 | 0.2s to ++
374 | 0.2s rule +++
375 | 0.1s the ++
376 | 0.4s night--and +++++
377 | 0.2s the ++
378 | 0.8s stars ++++++++
379 | 0.2s And ++
380 | 0.3s God ++++
381 | 0.3s set +++
382 | 0.2s them ++
383 | 0.1s in +
384 | 0.1s the +
385 | 0.6s expanse +++++++
386 | 0.1s of +
387 | 0.1s the +
388 | 0.4s heavens ++++
389 | 0.1s to ++
390 | 0.2s give ++
391 | 0.3s light ++++
392 | 0.1s on +
393 | 0.1s the ++
394 | 0.3s earth ++++
395 | 0.5s to ++++++
396 | 0.3s rule ++++
397 | 0.2s over ++
398 | 0.1s the ++
399 | 0.3s day ++++
400 | 0.1s and ++
401 | 0.2s over ++
402 | 0.1s the ++
403 | 0.4s night ++++
404 | 0.2s and ++
405 | 0.1s to ++
406 | 0.5s separate ++++++
407 | 0.1s the +
408 | 0.3s light ++++
409 | 0.2s from ++
410 | 0.1s the +
411 | 0.6s darkness +++++++
412 | 0.9s ---------
413 | 0.2s And ++
414 | 0.3s God ++++
415 | 0.3s saw ++++
416 | 0.1s that +
417 | 0.1s it +
418 | 0.1s was ++
419 | 0.3s good ++++
420 | 0.2s And +++
421 | 1.0s there +++++++++++
422 | 0.1s was ++
423 | 0.5s evening ++++++
424 | 0.1s and ++
425 | 0.1s there ++
426 | 0.2s was ++
427 | 0.6s morning ++++++
428 | 0.4s the +++++
429 | 0.3s fourth ++++
430 | 0.4s day +++++
431 | 0.9s ---------
432 | 0.1s And +
433 | 0.8s --------
434 | 0.2s God ++
435 | 0.1s said +
436 | 0.2s Let +++
437 | 0.1s the +
438 | 0.4s waters +++++
439 | 0.6s swarm ++++++
440 | 0.2s with +++
441 | 0.6s swarms +++++++
442 | 0.2s of ++
443 | 0.3s living +++
444 | 0.9s creatures +++++++++
445 | 0.2s and +++
446 | 0.1s let ++
447 | 0.4s birds +++++
448 | 0.4s fly +++++
449 | 0.3s above +++
450 | 0.2s the ++
451 | 0.2s earth +++
452 | 0.3s across ++++
453 | 0.1s the +
454 | 0.6s expanse ++++++
455 | 0.1s of +
456 | 0.1s the +
457 | 0.6s heavens ++++++
458 | 0.7s -------
459 | 0.2s So +++
460 | 0.3s God ++++
461 | 0.4s created +++++
462 | 0.1s the +
463 | 0.3s great ++++
464 | 0.3s sea ++++
465 | 0.6s creatures ++++++
466 | 0.2s and +++
467 | 0.2s every +++
468 | 0.4s living ++++
469 | 0.4s creature ++++
470 | 0.2s that ++
471 | 0.5s moves ++++++
472 | 0.2s with ++
473 | 0.2s which +++
474 | 0.1s the ++
475 | 0.4s waters +++++
476 | 0.6s swarm ++++++
477 | 0.4s according ++++
478 | 0.1s to +
479 | 0.2s their ++
480 | 0.6s kinds ++++++
481 | 0.3s and +++
482 | 0.2s every +++
483 | 0.4s winged +++++
484 | 0.3s bird ++++
485 | 0.4s according +++++
486 | 0.2s to ++
487 | 0.1s its ++
488 | 0.5s kind ++++++
489 | 0.2s And ++
490 | 0.3s God ++++
491 | 0.4s saw +++++
492 | 0.1s that ++
493 | 0.1s it +
494 | 0.2s was ++
495 | 0.5s good ++++++
496 | 0.2s And ++
497 | 0.3s God ++++
498 | 0.3s blessed ++++
499 | 0.2s them +++
500 | 0.5s saying +++++
501 | 0.2s Be ++
502 | 0.5s fruitful ++++++
503 | 0.1s and ++
504 | 0.6s multiply +++++++
505 | 0.2s and ++
506 | 0.3s fill ++++
507 | 0.1s the ++
508 | 0.5s waters ++++++
509 | 0.1s in +
510 | 0.1s the +
511 | 0.7s seas ++++++++
512 | 0.1s and ++
513 | 0.2s let ++
514 | 0.4s birds ++++
515 | 0.6s multiply ++++++
516 | 0.1s on ++
517 | 0.2s the ++
518 | 0.3s earth ++++
519 | 0.1s And ++
520 | 0.1s there ++
521 | 0.1s was ++
522 | 0.4s evening +++++
523 | 0.1s and +
524 | 0.1s there +
525 | 0.2s was ++
526 | 0.5s morning +++++
527 | 0.1s the +
528 | 0.3s fifth +++
529 | 0.5s day +++++
530 | 0.2s And +++
531 | 0.3s God ++++
532 | 0.3s said +++
533 | 0.3s Let ++++
534 | 0.4s the ++++
535 | 0.3s earth ++++
536 | 0.3s bring ++++
537 | 0.3s forth +++
538 | 0.4s living ++++
539 | 0.6s creatures ++++++
540 | 0.4s according +++++
541 | 0.1s to +
542 | 0.2s their ++
543 | 1.1s -----------
544 | 0.8s kinds--livestock ++++++++
545 | 0.2s and ++
546 | 0.4s creeping +++++
547 | 0.5s things ++++++
548 | 0.3s and +++
549 | 0.4s beasts ++++
550 | 0.1s of ++
551 | 0.1s the ++
552 | 0.2s earth +++
553 | 0.4s according +++++
554 | 0.1s to +
555 | 0.2s their ++
556 | 0.7s kinds +++++++
557 | 0.2s And ++
558 | 0.1s it ++
559 | 0.2s was ++
560 | 0.5s so +++++
561 | 0.2s And ++
562 | 0.3s God +++
563 | 0.2s made +++
564 | 0.1s the ++
565 | 0.4s beasts ++++
566 | 0.1s of +
567 | 0.2s the ++
568 | 0.2s earth ++
569 | 0.4s according +++++
570 | 0.1s to +
571 | 0.2s their ++
572 | 0.6s kinds +++++++
573 | 0.4s and +++++
574 | 0.1s the +
575 | 0.6s livestock ++++++
576 | 0.3s according ++++
577 | 0.1s to ++
578 | 0.2s their ++
579 | 0.6s kinds +++++++
580 | 0.2s and ++
581 | 0.5s everything ++++++
582 | 0.1s that ++
583 | 0.4s creeps +++++
584 | 0.1s on ++
585 | 0.1s the ++
586 | 0.4s ground +++++
587 | 0.4s according +++++
588 | 0.2s to ++
589 | 0.1s its ++
590 | 0.5s kind +++++
591 | 0.2s And ++
592 | 0.4s God ++++
593 | 0.4s saw +++++
594 | 0.2s that ++
595 | 0.1s it ++
596 | 0.2s was ++
597 | 0.5s good ++++++
598 | 1.6s Then +++++++++++++++++
599 | 0.3s God +++
600 | 0.7s said +++++++
601 | 0.2s Let +++
602 | 0.2s us ++
603 | 0.2s make +++
604 | 0.4s man ++++
605 | 0.1s in ++
606 | 0.2s our ++
607 | 0.5s image ++++++
608 | 0.4s after +++++
609 | 0.2s our ++
610 | 0.7s likeness +++++++
611 | 0.1s And ++
612 | 0.2s let ++
613 | 0.1s them ++
614 | 0.2s have ++
615 | 0.5s dominion +++++
616 | 0.2s over ++
617 | 0.1s the +
618 | 0.3s fish +++
619 | 0.1s of ++
620 | 0.1s the +
621 | 0.4s sea +++++
622 | 0.1s and ++
623 | 0.2s over ++
624 | 0.1s the +
625 | 0.4s birds +++++
626 | 0.1s of ++
627 | 0.1s the +
628 | 0.6s heavens ++++++
629 | 0.2s and ++
630 | 0.1s over ++
631 | 0.1s the ++
632 | 0.7s livestock ++++++++
633 | 0.1s and ++
634 | 0.3s over +++
635 | 0.2s all +++
636 | 0.1s the ++
637 | 0.3s earth ++++
638 | 0.1s and ++
639 | 0.2s over +++
640 | 0.3s every +++
641 | 0.5s creeping ++++++
642 | 0.2s thing +++
643 | 0.2s that ++
644 | 0.4s creeps +++++
645 | 0.1s on ++
646 | 0.2s the ++
647 | 0.3s earth ++++
648 | 0.2s So +++
649 | 0.3s God +++
650 | 0.5s created +++++
651 | 0.3s man ++++
652 | 0.1s in ++
653 | 0.2s his ++
654 | 0.2s own ++
655 | 0.5s image +++++
656 | 0.5s in ++++++
657 | 0.1s the ++
658 | 0.3s image ++++
659 | 0.1s of ++
660 | 0.4s God ++++
661 | 0.2s he ++
662 | 0.5s created ++++++
663 | 0.2s him +++
664 | 0.5s male ++++++
665 | 0.2s and ++
666 | 0.5s female ++++++
667 | 0.2s he ++
668 | 0.5s created ++++++
669 | 0.3s them +++
670 | 0.8s ---------
671 | 0.3s And +++
672 | 0.4s God ++++
673 | 0.4s blessed ++++
674 | 0.4s them +++++
675 | 0.2s And ++
676 | 0.3s God +++
677 | 0.2s said +++
678 | 0.1s to +
679 | 0.3s them ++++
680 | 0.2s Be ++
681 | 0.6s fruitful ++++++
682 | 0.2s and ++
683 | 0.6s multiply ++++++
684 | 0.2s and ++
685 | 0.3s fill ++++
686 | 0.2s the ++
687 | 0.4s earth ++++
688 | 0.1s and ++
689 | 0.5s subdue ++++++
690 | 0.2s it +++
691 | 0.1s and ++
692 | 0.1s have ++
693 | 0.5s dominion +++++
694 | 0.2s over ++
695 | 0.1s the +
696 | 0.3s fish +++
697 | 0.1s of +
698 | 0.1s the ++
699 | 0.5s sea +++++
700 | 0.4s and +++++
701 | 0.2s over ++
702 | 0.1s the +
703 | 0.4s birds +++++
704 | 0.1s of +
705 | 0.1s the +
706 | 0.6s heavens ++++++
707 | 0.2s and +++
708 | 0.3s over ++++
709 | 0.3s every ++++
710 | 0.4s living ++++
711 | 0.3s thing +++
712 | 0.1s that ++
713 | 0.5s moves ++++++
714 | 0.1s on ++
715 | 0.2s the ++
716 | 0.3s earth ++++
717 | 0.6s ------
718 | 0.2s And +++
719 | 0.3s God +++
720 | 0.4s said ++++
721 | 0.6s Behold ++++++
722 | 0.1s I ++
723 | 0.1s have ++
724 | 0.3s given +++
725 | 0.1s you ++
726 | 0.3s every ++++
727 | 0.5s plant ++++++
728 | 0.4s yielding ++++
729 | 0.4s seed ++++
730 | 0.1s that ++
731 | 0.1s is ++
732 | 0.1s on ++
733 | 0.1s the +
734 | 0.3s face ++++
735 | 0.1s of ++
736 | 0.3s all +++
737 | 0.2s the ++
738 | 0.3s earth ++++
739 | 0.2s and ++
740 | 0.3s every +++
741 | 0.4s tree +++++
742 | 0.2s with ++
743 | 0.5s seed +++++
744 | 0.1s in +
745 | 0.2s its ++
746 | 0.4s fruit +++++
747 | 0.2s You ++
748 | 0.2s shall ++
749 | 0.2s have +++
750 | 0.2s them +++
751 | 0.2s for ++
752 | 0.5s food ++++++
753 | 0.3s And +++
754 | 0.1s to ++
755 | 0.3s every ++++
756 | 0.3s beast ++++
757 | 0.1s of ++
758 | 0.1s the ++
759 | 0.2s earth +++
760 | 0.1s and ++
761 | 0.1s to ++
762 | 0.2s every +++
763 | 0.3s bird ++++
764 | 0.1s of +
765 | 0.1s the +
766 | 0.5s heavens ++++++
767 | 0.2s and ++
768 | 0.1s to ++
769 | 0.5s everything +++++
770 | 0.1s that ++
771 | 0.4s creeps +++++
772 | 0.1s on ++
773 | 0.2s the ++
774 | 0.3s earth +++
775 | 0.9s everything +++++++++
776 | 0.2s that ++
777 | 0.2s has +++
778 | 0.1s the ++
779 | 0.3s breath ++++
780 | 0.1s of ++
781 | 0.4s life ++++
782 | 0.2s I ++
783 | 0.1s have ++
784 | 0.3s given +++
785 | 0.2s every +++
786 | 0.4s green +++++
787 | 0.3s plant ++++
788 | 0.1s for ++
789 | 0.5s food +++++
790 | 1.2s -------------
791 | 0.2s And ++
792 | 0.1s it ++
793 | 0.1s was ++
794 | 0.5s so ++++++
795 | 0.3s And +++
796 | 0.3s God +++
797 | 0.2s saw +++
798 | 0.5s everything +++++
799 | 0.1s that ++
800 | 0.1s he +
801 | 0.2s had ++
802 | 0.4s made +++++
803 | 0.1s and ++
804 | 0.5s behold ++++++
805 | 0.1s it ++
806 | 0.2s was +++
807 | 0.4s very +++++
808 | 0.5s good +++++
809 | 0.1s And ++
810 | 0.1s there ++
811 | 0.2s was ++
812 | 0.6s evening ++++++
813 | 0.2s and ++
814 | 0.1s there ++
815 | 0.2s was ++
816 | 0.6s morning +++++++
817 | 0.2s the ++
818 | 0.4s sixth +++++
819 | 0.5s day +++++
820 | 1.0s ----------
821 | Words left off: 0
822 |
--------------------------------------------------------------------------------
/data/read-along/underscore.js:
--------------------------------------------------------------------------------
1 | // Underscore.js 1.1.7
2 | // (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
3 | // Underscore is freely distributable under the MIT license.
4 | // Portions of Underscore are inspired or borrowed from Prototype,
5 | // Oliver Steele's Functional, and John Resig's Micro-Templating.
6 | // For all details and documentation:
7 | // http://documentcloud.github.com/underscore
8 |
9 | (function() {
10 |
11 | // Baseline setup
12 | // --------------
13 |
14 | // Establish the root object, `window` in the browser, or `global` on the server.
15 | var root = this;
16 |
17 | // Save the previous value of the `_` variable.
18 | var previousUnderscore = root._;
19 |
20 | // Establish the object that gets returned to break out of a loop iteration.
21 | var breaker = {};
22 |
23 | // Save bytes in the minified (but not gzipped) version:
24 | var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
25 |
26 | // Create quick reference variables for speed access to core prototypes.
27 | var slice = ArrayProto.slice,
28 | unshift = ArrayProto.unshift,
29 | toString = ObjProto.toString,
30 | hasOwnProperty = ObjProto.hasOwnProperty;
31 |
32 | // All **ECMAScript 5** native function implementations that we hope to use
33 | // are declared here.
34 | var
35 | nativeForEach = ArrayProto.forEach,
36 | nativeMap = ArrayProto.map,
37 | nativeReduce = ArrayProto.reduce,
38 | nativeReduceRight = ArrayProto.reduceRight,
39 | nativeFilter = ArrayProto.filter,
40 | nativeEvery = ArrayProto.every,
41 | nativeSome = ArrayProto.some,
42 | nativeIndexOf = ArrayProto.indexOf,
43 | nativeLastIndexOf = ArrayProto.lastIndexOf,
44 | nativeIsArray = Array.isArray,
45 | nativeKeys = Object.keys,
46 | nativeBind = FuncProto.bind;
47 |
48 | // Create a safe reference to the Underscore object for use below.
49 | var _ = function(obj) { return new wrapper(obj); };
50 |
51 | // Export the Underscore object for **CommonJS**, with backwards-compatibility
52 | // for the old `require()` API. If we're not in CommonJS, add `_` to the
53 | // global object.
54 | if (typeof module !== 'undefined' && module.exports) {
55 | module.exports = _;
56 | _._ = _;
57 | } else {
58 | // Exported as a string, for Closure Compiler "advanced" mode.
59 | root['_'] = _;
60 | }
61 |
62 | // Current version.
63 | _.VERSION = '1.1.7';
64 |
65 | // Collection Functions
66 | // --------------------
67 |
68 | // The cornerstone, an `each` implementation, aka `forEach`.
69 | // Handles objects with the built-in `forEach`, arrays, and raw objects.
70 | // Delegates to **ECMAScript 5**'s native `forEach` if available.
71 | var each = _.each = _.forEach = function(obj, iterator, context) {
72 | if (obj == null) return;
73 | if (nativeForEach && obj.forEach === nativeForEach) {
74 | obj.forEach(iterator, context);
75 | } else if (obj.length === +obj.length) {
76 | for (var i = 0, l = obj.length; i < l; i++) {
77 | if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
78 | }
79 | } else {
80 | for (var key in obj) {
81 | if (hasOwnProperty.call(obj, key)) {
82 | if (iterator.call(context, obj[key], key, obj) === breaker) return;
83 | }
84 | }
85 | }
86 | };
87 |
88 | // Return the results of applying the iterator to each element.
89 | // Delegates to **ECMAScript 5**'s native `map` if available.
90 | _.map = function(obj, iterator, context) {
91 | var results = [];
92 | if (obj == null) return results;
93 | if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
94 | each(obj, function(value, index, list) {
95 | results[results.length] = iterator.call(context, value, index, list);
96 | });
97 | return results;
98 | };
99 |
100 | // **Reduce** builds up a single result from a list of values, aka `inject`,
101 | // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
102 | _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
103 | var initial = memo !== void 0;
104 | if (obj == null) obj = [];
105 | if (nativeReduce && obj.reduce === nativeReduce) {
106 | if (context) iterator = _.bind(iterator, context);
107 | return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
108 | }
109 | each(obj, function(value, index, list) {
110 | if (!initial) {
111 | memo = value;
112 | initial = true;
113 | } else {
114 | memo = iterator.call(context, memo, value, index, list);
115 | }
116 | });
117 | if (!initial) throw new TypeError("Reduce of empty array with no initial value");
118 | return memo;
119 | };
120 |
121 | // The right-associative version of reduce, also known as `foldr`.
122 | // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
123 | _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
124 | if (obj == null) obj = [];
125 | if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
126 | if (context) iterator = _.bind(iterator, context);
127 | return memo !== void 0 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
128 | }
129 | var reversed = (_.isArray(obj) ? obj.slice() : _.toArray(obj)).reverse();
130 | return _.reduce(reversed, iterator, memo, context);
131 | };
132 |
133 | // Return the first value which passes a truth test. Aliased as `detect`.
134 | _.find = _.detect = function(obj, iterator, context) {
135 | var result;
136 | any(obj, function(value, index, list) {
137 | if (iterator.call(context, value, index, list)) {
138 | result = value;
139 | return true;
140 | }
141 | });
142 | return result;
143 | };
144 |
145 | // Return all the elements that pass a truth test.
146 | // Delegates to **ECMAScript 5**'s native `filter` if available.
147 | // Aliased as `select`.
148 | _.filter = _.select = function(obj, iterator, context) {
149 | var results = [];
150 | if (obj == null) return results;
151 | if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
152 | each(obj, function(value, index, list) {
153 | if (iterator.call(context, value, index, list)) results[results.length] = value;
154 | });
155 | return results;
156 | };
157 |
158 | // Return all the elements for which a truth test fails.
159 | _.reject = function(obj, iterator, context) {
160 | var results = [];
161 | if (obj == null) return results;
162 | each(obj, function(value, index, list) {
163 | if (!iterator.call(context, value, index, list)) results[results.length] = value;
164 | });
165 | return results;
166 | };
167 |
168 | // Determine whether all of the elements match a truth test.
169 | // Delegates to **ECMAScript 5**'s native `every` if available.
170 | // Aliased as `all`.
171 | _.every = _.all = function(obj, iterator, context) {
172 | var result = true;
173 | if (obj == null) return result;
174 | if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
175 | each(obj, function(value, index, list) {
176 | if (!(result = result && iterator.call(context, value, index, list))) return breaker;
177 | });
178 | return result;
179 | };
180 |
181 | // Determine if at least one element in the object matches a truth test.
182 | // Delegates to **ECMAScript 5**'s native `some` if available.
183 | // Aliased as `any`.
184 | var any = _.some = _.any = function(obj, iterator, context) {
185 | iterator = iterator || _.identity;
186 | var result = false;
187 | if (obj == null) return result;
188 | if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
189 | each(obj, function(value, index, list) {
190 | if (result |= iterator.call(context, value, index, list)) return breaker;
191 | });
192 | return !!result;
193 | };
194 |
195 | // Determine if a given value is included in the array or object using `===`.
196 | // Aliased as `contains`.
197 | _.include = _.contains = function(obj, target) {
198 | var found = false;
199 | if (obj == null) return found;
200 | if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
201 | any(obj, function(value) {
202 | if (found = value === target) return true;
203 | });
204 | return found;
205 | };
206 |
207 | // Invoke a method (with arguments) on every item in a collection.
208 | _.invoke = function(obj, method) {
209 | var args = slice.call(arguments, 2);
210 | return _.map(obj, function(value) {
211 | return (method.call ? method || value : value[method]).apply(value, args);
212 | });
213 | };
214 |
215 | // Convenience version of a common use case of `map`: fetching a property.
216 | _.pluck = function(obj, key) {
217 | return _.map(obj, function(value){ return value[key]; });
218 | };
219 |
220 | // Return the maximum element or (element-based computation).
221 | _.max = function(obj, iterator, context) {
222 | if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
223 | var result = {computed : -Infinity};
224 | each(obj, function(value, index, list) {
225 | var computed = iterator ? iterator.call(context, value, index, list) : value;
226 | computed >= result.computed && (result = {value : value, computed : computed});
227 | });
228 | return result.value;
229 | };
230 |
231 | // Return the minimum element (or element-based computation).
232 | _.min = function(obj, iterator, context) {
233 | if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
234 | var result = {computed : Infinity};
235 | each(obj, function(value, index, list) {
236 | var computed = iterator ? iterator.call(context, value, index, list) : value;
237 | computed < result.computed && (result = {value : value, computed : computed});
238 | });
239 | return result.value;
240 | };
241 |
242 | // Sort the object's values by a criterion produced by an iterator.
243 | _.sortBy = function(obj, iterator, context) {
244 | return _.pluck(_.map(obj, function(value, index, list) {
245 | return {
246 | value : value,
247 | criteria : iterator.call(context, value, index, list)
248 | };
249 | }).sort(function(left, right) {
250 | var a = left.criteria, b = right.criteria;
251 | return a < b ? -1 : a > b ? 1 : 0;
252 | }), 'value');
253 | };
254 |
255 | // Groups the object's values by a criterion produced by an iterator
256 | _.groupBy = function(obj, iterator) {
257 | var result = {};
258 | each(obj, function(value, index) {
259 | var key = iterator(value, index);
260 | (result[key] || (result[key] = [])).push(value);
261 | });
262 | return result;
263 | };
264 |
265 | // Use a comparator function to figure out at what index an object should
266 | // be inserted so as to maintain order. Uses binary search.
267 | _.sortedIndex = function(array, obj, iterator) {
268 | iterator || (iterator = _.identity);
269 | var low = 0, high = array.length;
270 | while (low < high) {
271 | var mid = (low + high) >> 1;
272 | iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
273 | }
274 | return low;
275 | };
276 |
277 | // Safely convert anything iterable into a real, live array.
278 | _.toArray = function(iterable) {
279 | if (!iterable) return [];
280 | if (iterable.toArray) return iterable.toArray();
281 | if (_.isArray(iterable)) return slice.call(iterable);
282 | if (_.isArguments(iterable)) return slice.call(iterable);
283 | return _.values(iterable);
284 | };
285 |
286 | // Return the number of elements in an object.
287 | _.size = function(obj) {
288 | return _.toArray(obj).length;
289 | };
290 |
291 | // Array Functions
292 | // ---------------
293 |
294 | // Get the first element of an array. Passing **n** will return the first N
295 | // values in the array. Aliased as `head`. The **guard** check allows it to work
296 | // with `_.map`.
297 | _.first = _.head = function(array, n, guard) {
298 | return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
299 | };
300 |
301 | // Returns everything but the first entry of the array. Aliased as `tail`.
302 | // Especially useful on the arguments object. Passing an **index** will return
303 | // the rest of the values in the array from that index onward. The **guard**
304 | // check allows it to work with `_.map`.
305 | _.rest = _.tail = function(array, index, guard) {
306 | return slice.call(array, (index == null) || guard ? 1 : index);
307 | };
308 |
309 | // Get the last element of an array.
310 | _.last = function(array) {
311 | return array[array.length - 1];
312 | };
313 |
314 | // Trim out all falsy values from an array.
315 | _.compact = function(array) {
316 | return _.filter(array, function(value){ return !!value; });
317 | };
318 |
319 | // Return a completely flattened version of an array.
320 | _.flatten = function(array) {
321 | return _.reduce(array, function(memo, value) {
322 | if (_.isArray(value)) return memo.concat(_.flatten(value));
323 | memo[memo.length] = value;
324 | return memo;
325 | }, []);
326 | };
327 |
328 | // Return a version of the array that does not contain the specified value(s).
329 | _.without = function(array) {
330 | return _.difference(array, slice.call(arguments, 1));
331 | };
332 |
333 | // Produce a duplicate-free version of the array. If the array has already
334 | // been sorted, you have the option of using a faster algorithm.
335 | // Aliased as `unique`.
336 | _.uniq = _.unique = function(array, isSorted) {
337 | return _.reduce(array, function(memo, el, i) {
338 | if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) memo[memo.length] = el;
339 | return memo;
340 | }, []);
341 | };
342 |
343 | // Produce an array that contains the union: each distinct element from all of
344 | // the passed-in arrays.
345 | _.union = function() {
346 | return _.uniq(_.flatten(arguments));
347 | };
348 |
349 | // Produce an array that contains every item shared between all the
350 | // passed-in arrays. (Aliased as "intersect" for back-compat.)
351 | _.intersection = _.intersect = function(array) {
352 | var rest = slice.call(arguments, 1);
353 | return _.filter(_.uniq(array), function(item) {
354 | return _.every(rest, function(other) {
355 | return _.indexOf(other, item) >= 0;
356 | });
357 | });
358 | };
359 |
360 | // Take the difference between one array and another.
361 | // Only the elements present in just the first array will remain.
362 | _.difference = function(array, other) {
363 | return _.filter(array, function(value){ return !_.include(other, value); });
364 | };
365 |
366 | // Zip together multiple lists into a single array -- elements that share
367 | // an index go together.
368 | _.zip = function() {
369 | var args = slice.call(arguments);
370 | var length = _.max(_.pluck(args, 'length'));
371 | var results = new Array(length);
372 | for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
373 | return results;
374 | };
375 |
376 | // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
377 | // we need this function. Return the position of the first occurrence of an
378 | // item in an array, or -1 if the item is not included in the array.
379 | // Delegates to **ECMAScript 5**'s native `indexOf` if available.
380 | // If the array is large and already in sort order, pass `true`
381 | // for **isSorted** to use binary search.
382 | _.indexOf = function(array, item, isSorted) {
383 | if (array == null) return -1;
384 | var i, l;
385 | if (isSorted) {
386 | i = _.sortedIndex(array, item);
387 | return array[i] === item ? i : -1;
388 | }
389 | if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
390 | for (i = 0, l = array.length; i < l; i++) if (array[i] === item) return i;
391 | return -1;
392 | };
393 |
394 |
395 | // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
396 | _.lastIndexOf = function(array, item) {
397 | if (array == null) return -1;
398 | if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
399 | var i = array.length;
400 | while (i--) if (array[i] === item) return i;
401 | return -1;
402 | };
403 |
404 | // Generate an integer Array containing an arithmetic progression. A port of
405 | // the native Python `range()` function. See
406 | // [the Python documentation](http://docs.python.org/library/functions.html#range).
407 | _.range = function(start, stop, step) {
408 | if (arguments.length <= 1) {
409 | stop = start || 0;
410 | start = 0;
411 | }
412 | step = arguments[2] || 1;
413 |
414 | var len = Math.max(Math.ceil((stop - start) / step), 0);
415 | var idx = 0;
416 | var range = new Array(len);
417 |
418 | while(idx < len) {
419 | range[idx++] = start;
420 | start += step;
421 | }
422 |
423 | return range;
424 | };
425 |
426 | // Function (ahem) Functions
427 | // ------------------
428 |
429 | // Create a function bound to a given object (assigning `this`, and arguments,
430 | // optionally). Binding with arguments is also known as `curry`.
431 | // Delegates to **ECMAScript 5**'s native `Function.bind` if available.
432 | // We check for `func.bind` first, to fail fast when `func` is undefined.
433 | _.bind = function(func, obj) {
434 | if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
435 | var args = slice.call(arguments, 2);
436 | return function() {
437 | return func.apply(obj, args.concat(slice.call(arguments)));
438 | };
439 | };
440 |
441 | // Bind all of an object's methods to that object. Useful for ensuring that
442 | // all callbacks defined on an object belong to it.
443 | _.bindAll = function(obj) {
444 | var funcs = slice.call(arguments, 1);
445 | if (funcs.length == 0) funcs = _.functions(obj);
446 | each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
447 | return obj;
448 | };
449 |
450 | // Memoize an expensive function by storing its results.
451 | _.memoize = function(func, hasher) {
452 | var memo = {};
453 | hasher || (hasher = _.identity);
454 | return function() {
455 | var key = hasher.apply(this, arguments);
456 | return hasOwnProperty.call(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
457 | };
458 | };
459 |
460 | // Delays a function for the given number of milliseconds, and then calls
461 | // it with the arguments supplied.
462 | _.delay = function(func, wait) {
463 | var args = slice.call(arguments, 2);
464 | return setTimeout(function(){ return func.apply(func, args); }, wait);
465 | };
466 |
467 | // Defers a function, scheduling it to run after the current call stack has
468 | // cleared.
469 | _.defer = function(func) {
470 | return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
471 | };
472 |
473 | // Internal function used to implement `_.throttle` and `_.debounce`.
474 | var limit = function(func, wait, debounce) {
475 | var timeout;
476 | return function() {
477 | var context = this, args = arguments;
478 | var throttler = function() {
479 | timeout = null;
480 | func.apply(context, args);
481 | };
482 | if (debounce) clearTimeout(timeout);
483 | if (debounce || !timeout) timeout = setTimeout(throttler, wait);
484 | };
485 | };
486 |
487 | // Returns a function, that, when invoked, will only be triggered at most once
488 | // during a given window of time.
489 | _.throttle = function(func, wait) {
490 | return limit(func, wait, false);
491 | };
492 |
493 | // Returns a function, that, as long as it continues to be invoked, will not
494 | // be triggered. The function will be called after it stops being called for
495 | // N milliseconds.
496 | _.debounce = function(func, wait) {
497 | return limit(func, wait, true);
498 | };
499 |
500 | // Returns a function that will be executed at most one time, no matter how
501 | // often you call it. Useful for lazy initialization.
502 | _.once = function(func) {
503 | var ran = false, memo;
504 | return function() {
505 | if (ran) return memo;
506 | ran = true;
507 | return memo = func.apply(this, arguments);
508 | };
509 | };
510 |
511 | // Returns the first function passed as an argument to the second,
512 | // allowing you to adjust arguments, run code before and after, and
513 | // conditionally execute the original function.
514 | _.wrap = function(func, wrapper) {
515 | return function() {
516 | var args = [func].concat(slice.call(arguments));
517 | return wrapper.apply(this, args);
518 | };
519 | };
520 |
521 | // Returns a function that is the composition of a list of functions, each
522 | // consuming the return value of the function that follows.
523 | _.compose = function() {
524 | var funcs = slice.call(arguments);
525 | return function() {
526 | var args = slice.call(arguments);
527 | for (var i = funcs.length - 1; i >= 0; i--) {
528 | args = [funcs[i].apply(this, args)];
529 | }
530 | return args[0];
531 | };
532 | };
533 |
534 | // Returns a function that will only be executed after being called N times.
535 | _.after = function(times, func) {
536 | return function() {
537 | if (--times < 1) { return func.apply(this, arguments); }
538 | };
539 | };
540 |
541 |
542 | // Object Functions
543 | // ----------------
544 |
545 | // Retrieve the names of an object's properties.
546 | // Delegates to **ECMAScript 5**'s native `Object.keys`
547 | _.keys = nativeKeys || function(obj) {
548 | if (obj !== Object(obj)) throw new TypeError('Invalid object');
549 | var keys = [];
550 | for (var key in obj) if (hasOwnProperty.call(obj, key)) keys[keys.length] = key;
551 | return keys;
552 | };
553 |
554 | // Retrieve the values of an object's properties.
555 | _.values = function(obj) {
556 | return _.map(obj, _.identity);
557 | };
558 |
559 | // Return a sorted list of the function names available on the object.
560 | // Aliased as `methods`
561 | _.functions = _.methods = function(obj) {
562 | var names = [];
563 | for (var key in obj) {
564 | if (_.isFunction(obj[key])) names.push(key);
565 | }
566 | return names.sort();
567 | };
568 |
569 | // Extend a given object with all the properties in passed-in object(s).
570 | _.extend = function(obj) {
571 | each(slice.call(arguments, 1), function(source) {
572 | for (var prop in source) {
573 | if (source[prop] !== void 0) obj[prop] = source[prop];
574 | }
575 | });
576 | return obj;
577 | };
578 |
579 | // Fill in a given object with default properties.
580 | _.defaults = function(obj) {
581 | each(slice.call(arguments, 1), function(source) {
582 | for (var prop in source) {
583 | if (obj[prop] == null) obj[prop] = source[prop];
584 | }
585 | });
586 | return obj;
587 | };
588 |
589 | // Create a (shallow-cloned) duplicate of an object.
590 | _.clone = function(obj) {
591 | return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
592 | };
593 |
594 | // Invokes interceptor with the obj, and then returns obj.
595 | // The primary purpose of this method is to "tap into" a method chain, in
596 | // order to perform operations on intermediate results within the chain.
597 | _.tap = function(obj, interceptor) {
598 | interceptor(obj);
599 | return obj;
600 | };
601 |
602 | // Perform a deep comparison to check if two objects are equal.
603 | _.isEqual = function(a, b) {
604 | // Check object identity.
605 | if (a === b) return true;
606 | // Different types?
607 | var atype = typeof(a), btype = typeof(b);
608 | if (atype != btype) return false;
609 | // Basic equality test (watch out for coercions).
610 | if (a == b) return true;
611 | // One is falsy and the other truthy.
612 | if ((!a && b) || (a && !b)) return false;
613 | // Unwrap any wrapped objects.
614 | if (a._chain) a = a._wrapped;
615 | if (b._chain) b = b._wrapped;
616 | // One of them implements an isEqual()?
617 | if (a.isEqual) return a.isEqual(b);
618 | if (b.isEqual) return b.isEqual(a);
619 | // Check dates' integer values.
620 | if (_.isDate(a) && _.isDate(b)) return a.getTime() === b.getTime();
621 | // Both are NaN?
622 | if (_.isNaN(a) && _.isNaN(b)) return false;
623 | // Compare regular expressions.
624 | if (_.isRegExp(a) && _.isRegExp(b))
625 | return a.source === b.source &&
626 | a.global === b.global &&
627 | a.ignoreCase === b.ignoreCase &&
628 | a.multiline === b.multiline;
629 | // If a is not an object by this point, we can't handle it.
630 | if (atype !== 'object') return false;
631 | // Check for different array lengths before comparing contents.
632 | if (a.length && (a.length !== b.length)) return false;
633 | // Nothing else worked, deep compare the contents.
634 | var aKeys = _.keys(a), bKeys = _.keys(b);
635 | // Different object sizes?
636 | if (aKeys.length != bKeys.length) return false;
637 | // Recursive comparison of contents.
638 | for (var key in a) if (!(key in b) || !_.isEqual(a[key], b[key])) return false;
639 | return true;
640 | };
641 |
642 | // Is a given array or object empty?
643 | _.isEmpty = function(obj) {
644 | if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
645 | for (var key in obj) if (hasOwnProperty.call(obj, key)) return false;
646 | return true;
647 | };
648 |
649 | // Is a given value a DOM element?
650 | _.isElement = function(obj) {
651 | return !!(obj && obj.nodeType == 1);
652 | };
653 |
654 | // Is a given value an array?
655 | // Delegates to ECMA5's native Array.isArray
656 | _.isArray = nativeIsArray || function(obj) {
657 | return toString.call(obj) === '[object Array]';
658 | };
659 |
660 | // Is a given variable an object?
661 | _.isObject = function(obj) {
662 | return obj === Object(obj);
663 | };
664 |
665 | // Is a given variable an arguments object?
666 | _.isArguments = function(obj) {
667 | return !!(obj && hasOwnProperty.call(obj, 'callee'));
668 | };
669 |
670 | // Is a given value a function?
671 | _.isFunction = function(obj) {
672 | return !!(obj && obj.constructor && obj.call && obj.apply);
673 | };
674 |
675 | // Is a given value a string?
676 | _.isString = function(obj) {
677 | return !!(obj === '' || (obj && obj.charCodeAt && obj.substr));
678 | };
679 |
680 | // Is a given value a number?
681 | _.isNumber = function(obj) {
682 | return !!(obj === 0 || (obj && obj.toExponential && obj.toFixed));
683 | };
684 |
685 | // Is the given value `NaN`? `NaN` happens to be the only value in JavaScript
686 | // that does not equal itself.
687 | _.isNaN = function(obj) {
688 | return obj !== obj;
689 | };
690 |
691 | // Is a given value a boolean?
692 | _.isBoolean = function(obj) {
693 | return obj === true || obj === false;
694 | };
695 |
696 | // Is a given value a date?
697 | _.isDate = function(obj) {
698 | return !!(obj && obj.getTimezoneOffset && obj.setUTCFullYear);
699 | };
700 |
701 | // Is the given value a regular expression?
702 | _.isRegExp = function(obj) {
703 | return !!(obj && obj.test && obj.exec && (obj.ignoreCase || obj.ignoreCase === false));
704 | };
705 |
706 | // Is a given value equal to null?
707 | _.isNull = function(obj) {
708 | return obj === null;
709 | };
710 |
711 | // Is a given variable undefined?
712 | _.isUndefined = function(obj) {
713 | return obj === void 0;
714 | };
715 |
716 | // Utility Functions
717 | // -----------------
718 |
719 | // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
720 | // previous owner. Returns a reference to the Underscore object.
721 | _.noConflict = function() {
722 | root._ = previousUnderscore;
723 | return this;
724 | };
725 |
726 | // Keep the identity function around for default iterators.
727 | _.identity = function(value) {
728 | return value;
729 | };
730 |
731 | // Run a function **n** times.
732 | _.times = function (n, iterator, context) {
733 | for (var i = 0; i < n; i++) iterator.call(context, i);
734 | };
735 |
736 | // Add your own custom functions to the Underscore object, ensuring that
737 | // they're correctly added to the OOP wrapper as well.
738 | _.mixin = function(obj) {
739 | each(_.functions(obj), function(name){
740 | addToWrapper(name, _[name] = obj[name]);
741 | });
742 | };
743 |
744 | // Generate a unique integer id (unique within the entire client session).
745 | // Useful for temporary DOM ids.
746 | var idCounter = 0;
747 | _.uniqueId = function(prefix) {
748 | var id = idCounter++;
749 | return prefix ? prefix + id : id;
750 | };
751 |
752 | // By default, Underscore uses ERB-style template delimiters, change the
753 | // following template settings to use alternative delimiters.
754 | _.templateSettings = {
755 | evaluate : /<%([\s\S]+?)%>/g,
756 | interpolate : /<%=([\s\S]+?)%>/g
757 | };
758 |
759 | // JavaScript micro-templating, similar to John Resig's implementation.
760 | // Underscore templating handles arbitrary delimiters, preserves whitespace,
761 | // and correctly escapes quotes within interpolated code.
762 | _.template = function(str, data) {
763 | var c = _.templateSettings;
764 | var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
765 | 'with(obj||{}){__p.push(\'' +
766 | str.replace(/\\/g, '\\\\')
767 | .replace(/'/g, "\\'")
768 | .replace(c.interpolate, function(match, code) {
769 | return "'," + code.replace(/\\'/g, "'") + ",'";
770 | })
771 | .replace(c.evaluate || null, function(match, code) {
772 | return "');" + code.replace(/\\'/g, "'")
773 | .replace(/[\r\n\t]/g, ' ') + "__p.push('";
774 | })
775 | .replace(/\r/g, '\\r')
776 | .replace(/\n/g, '\\n')
777 | .replace(/\t/g, '\\t')
778 | + "');}return __p.join('');";
779 | var func = new Function('obj', tmpl);
780 | return data ? func(data) : func;
781 | };
782 |
783 | // The OOP Wrapper
784 | // ---------------
785 |
786 | // If Underscore is called as a function, it returns a wrapped object that
787 | // can be used OO-style. This wrapper holds altered versions of all the
788 | // underscore functions. Wrapped objects may be chained.
789 | var wrapper = function(obj) { this._wrapped = obj; };
790 |
791 | // Expose `wrapper.prototype` as `_.prototype`
792 | _.prototype = wrapper.prototype;
793 |
794 | // Helper function to continue chaining intermediate results.
795 | var result = function(obj, chain) {
796 | return chain ? _(obj).chain() : obj;
797 | };
798 |
799 | // A method to easily add functions to the OOP wrapper.
800 | var addToWrapper = function(name, func) {
801 | wrapper.prototype[name] = function() {
802 | var args = slice.call(arguments);
803 | unshift.call(args, this._wrapped);
804 | return result(func.apply(_, args), this._chain);
805 | };
806 | };
807 |
808 | // Add all of the Underscore functions to the wrapper object.
809 | _.mixin(_);
810 |
811 | // Add all mutator Array functions to the wrapper.
812 | each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
813 | var method = ArrayProto[name];
814 | wrapper.prototype[name] = function() {
815 | method.apply(this._wrapped, arguments);
816 | return result(this._wrapped, this._chain);
817 | };
818 | });
819 |
820 | // Add all accessor Array functions to the wrapper.
821 | each(['concat', 'join', 'slice'], function(name) {
822 | var method = ArrayProto[name];
823 | wrapper.prototype[name] = function() {
824 | return result(method.apply(this._wrapped, arguments), this._chain);
825 | };
826 | });
827 |
828 | // Start chaining a wrapped Underscore object.
829 | wrapper.prototype.chain = function() {
830 | this._chain = true;
831 | return this;
832 | };
833 |
834 | // Extracts the result from a wrapped and chained object.
835 | wrapper.prototype.value = function() {
836 | return this._wrapped;
837 | };
838 |
839 | })();
840 |
--------------------------------------------------------------------------------