/****************************************************************************** * canon.h - Canonical text information to be included by VerseKey.cpp * * $Id$ * * Copyright 1998-2005 CrossWire Bible Society (http://www.crosswire.org) * CrossWire Bible Society * P. O. Box 2528 * Tempe, AZ 85280-2528 * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation version 2. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * */ /****************************************************************************** * [on]tbooks - initialize static instance for all canonical text names * and chapmax */ struct sbook VerseKey::otbooks[] = { {"Genesis", "Gen", 50}, {"Exodus", "Exod", 40}, {"Leviticus", "Lev", 27}, {"Numbers", "Num", 36}, {"Deuteronomy", "Deut", 34}, {"Joshua", "Josh", 24}, {"Judges", "Judg", 21}, {"Ruth", "Ruth", 4}, {"I Samuel", "1Sam", 31}, {"II Samuel", "2Sam", 24}, {"I Kings", "1Kgs", 22}, {"II Kings", "2Kgs", 25}, {"I Chronicles", "1Chr", 29}, {"II Chronicles", "2Chr", 36}, {"Ezra", "Ezra", 10}, {"Nehemiah", "Neh", 13}, {"Esther", "Esth", 10}, {"Job", "Job", 42}, {"Psalms", "Ps", 150}, {"Proverbs", "Prov", 31}, {"Ecclesiastes", "Eccl", 12}, {"Song of Solomon", "Song", 8}, {"Isaiah", "Isa", 66}, {"Jeremiah", "Jer", 52}, {"Lamentations", "Lam", 5}, {"Ezekiel", "Ezek", 48}, {"Daniel", "Dan", 12}, {"Hosea", "Hos", 14}, {"Joel", "Joel", 3}, {"Amos", "Amos", 9}, {"Obadiah", "Obad", 1}, {"Jonah", "Jonah", 4}, {"Micah", "Mic", 7}, {"Nahum", "Nah", 3}, {"Habakkuk", "Hab", 3}, {"Zephaniah", "Zeph", 3}, {"Haggai", "Hag", 2}, {"Zechariah", "Zech", 14}, {"Malachi", "Mal", 4} }; struct sbook VerseKey::ntbooks[] = { {"Matthew", "Matt", 28}, {"Mark", "Mark", 16}, {"Luke", "Luke", 24}, {"John", "John", 21}, {"Acts", "Acts", 28}, {"Romans", "Rom", 16}, {"I Corinthians", "1Cor", 16}, {"II Corinthians", "2Cor", 13}, {"Galatians", "Gal", 6}, {"Ephesians", "Eph", 6}, {"Philippians", "Phil", 4}, {"Colossians", "Col", 4}, {"I Thessalonians", "1Thess", 5}, {"II Thessalonians", "2Thess", 3}, {"I Timothy", "1Tim", 6}, {"II Timothy", "2Tim", 4}, {"Titus", "Titus", 3}, {"Philemon", "Phlm", 1}, {"Hebrews", "Heb", 13}, {"James", "Jas", 5}, {"I Peter", "1Pet", 5}, {"II Peter", "2Pet", 3}, {"I John", "1John", 5}, {"II John", "2John", 1}, {"III John", "3John", 1}, {"Jude", "Jude", 1}, {"Revelation of John", "Rev", 22} }; /****************************************************************************** * Abbreviations - MUST be in alphabetical order & by PRIORITY * RULE: first match of entire key * (e.g. key: "1CH"; match: "1CHRONICLES") */ const struct abbrev VerseKey::builtin_abbrevs[] = { {"1 C", 46}, // 1 Corinthians {"1 CHRONICLES", 13}, // 1 Chronicles {"1 CORINTHIANS", 46}, // 1 Corinthians {"1 JN", 62}, // 1 John {"1 JOHN", 62}, // 1 John {"1 KGS", 11}, // 1 Kings {"1 KINGS", 11}, // 1 Kings {"1 PETER", 60}, // 1 Peter {"1 PTR", 60}, // 1 Peter {"1 SAMUEL", 9}, // 1 Samuel {"1 THESSALONIANS", 52}, // 1 Thessalonians {"1 TIMOTHY", 54}, // 1 Timothy {"1C", 46}, // 1 Corinthians {"1CHRONICLES", 13}, // 1 Chronicles {"1CORINTHIANS", 46}, // 1 Corinthians {"1JN", 62}, // 1 John {"1JOHN", 62}, // 1 John {"1KGS", 11}, // 1 Kings {"1KINGS", 11}, // 1 Kings {"1PETER", 60}, // 1 Peter {"1PTR", 60}, // 1 Peter {"1SAMUEL", 9}, // 1 Samuel {"1THESSALONIANS", 52}, // 1 Thessalonians {"1TIMOTHY", 54}, // 1 Timothy {"2 C", 47}, // 2 Corinthians {"2 CHRONICLES", 14}, // 2 Chronicles {"2 CORINTHIANS", 47}, // 2 Corinthians {"2 JN", 63}, // 2 John {"2 JOHN", 63}, // 2 John {"2 KGS", 12}, // 2 Kings {"2 KINGS", 12}, // 2 Kings {"2 PETER", 61}, // 2 Peter {"2 PTR", 61}, // 2 Peter {"2 SAMUEL", 10}, // 2 Samuel {"2 THESSALONIANS", 53}, // 2 Thessalonians {"2 TIMOTHY", 55}, // 2 Timothy {"2C", 47}, // 2 Corinthians {"2CHRONICLES", 14}, // 2 Chronicles {"2CORINTHIANS", 47}, // 2 Corinthians {"2JN", 63}, // 2 John {"2JOHN", 63}, // 2 John {"2KGS", 12}, // 2 Kings {"2KINGS", 12}, // 2 Kings {"2PETER", 61}, // 2 Peter {"2PTR", 61}, // 2 Peter {"2SAMUEL", 10}, // 2 Samuel {"2THESSALONIANS", 53}, // 2 Thessalonians {"2TIMOTHY", 55}, // 2 Timothy {"3 JN", 64}, // 3 John {"3 JOHN", 64}, // 3 John {"3JN", 64}, // 3 John {"3JOHN", 64}, // 3 John {"ACTS", 44}, // Acts {"AMOS", 30}, // Amos {"APOCALYPSE OF ST. JOHN", 66}, // Apocalypse of St. John (Rev.) {"C", 51}, // Colossians {"CANTICLE OF CANTICLES", 22}, // Canticle of Canticles (Song of S.) {"COLOSSIANS", 51}, // Colossians {"D", 5}, // Deuteronomy {"DANIEL", 27}, // Daniel {"DEUTERONOMY", 5}, // Deuteronomy {"E", 49}, // Ephesians {"ECCLESIASTES", 21}, // Ecclesiastes {"EPHESIANS", 49}, // Ephesians {"ESTER", 17}, // Esther {"ESTHER", 17}, // Esther {"EXODUS", 2}, // Exodus {"EZEKIEL", 26}, // Ezekiel {"EZK", 26}, // Ezekiel {"EZRA", 15}, // Ezra {"G", 1}, // Genesis {"GALATIANS", 48}, // Galatians {"GENESIS", 1}, // Genesis {"H", 58}, // Hebrews {"HABAKKUK", 35}, // Habakkuk {"HAGGAI", 37}, // Haggai {"HEBREWS", 58}, // Hebrews {"HOSEA", 28}, // Hosea {"I C", 46}, // 1 Corinthians {"I CHRONICLES", 13}, // 1 Chronicles {"I CORINTHIANS", 46}, // 1 Corinthians {"I JN", 62}, // 1 John {"I JOHN", 62}, // 1 John {"I KGS", 11}, // 1 Kings {"I KINGS", 11}, // 1 Kings {"I PETER", 60}, // 1 Peter {"I PTR", 60}, // 1 Peter {"I SAMUEL", 9}, // 1 Samuel {"I THESSALONIANS", 52}, // 1 Thessalonians {"I TIMOTHY", 54}, // 1 Timothy {"IC", 46}, // 1 Corinthians {"ICHRONICLES", 13}, // 1 Chronicles {"ICORINTHIANS", 46}, // 1 Corinthians {"II C", 47}, // 2 Corinthians {"II CHRONICLES", 14}, // 2 Chronicles {"II CORINTHIANS", 47}, // 2 Corinthians {"II JN", 63}, // 2 John {"II JOHN", 63}, // 2 John {"II KGS", 12}, // 2 Kings {"II KINGS", 12}, // 2 Kings {"II PETER", 61}, // 2 Peter {"II PTR", 61}, // 2 Peter {"II SAMUEL", 10}, // 2 Samuel {"II THESSALONIANS", 53}, // 2 Thessalonians {"II TIMOTHY", 55}, // 2 Timothy {"IIC", 47}, // 2 Corinthians {"IICHRONICLES", 14}, // 2 Chronicles {"IICORINTHIANS", 47}, // 2 Corinthians {"III JN", 64}, // 3 John {"III JOHN", 64}, // 3 John {"IIIJN", 64}, // 3 John {"IIIJOHN", 64}, // 3 John {"IIJN", 63}, // 2 John {"IIJOHN", 63}, // 2 John {"IIKGS", 12}, // 2 Kings {"IIKINGS", 12}, // 2 Kings {"IIPETER", 61}, // 2 Peter {"IIPTR", 61}, // 2 Peter {"IISAMUEL", 10}, // 2 Samuel {"IITHESSALONIANS", 53}, // 2 Thessalonians {"IITIMOTHY", 55}, // 2 Timothy {"IJN", 62}, // 1 John {"IJOHN", 62}, // 1 John {"IKGS", 11}, // 1 Kings {"IKINGS", 11}, // 1 Kings {"IPETER", 60}, // 1 Peter {"IPTR", 60}, // 1 Peter {"ISA", 23}, // Isaiah {"ISAIAH", 23}, // Isaiah {"ISAMUEL", 9}, // 1 Samuel {"ITHESSALONIANS", 52}, // 1 Thessalonians {"ITIMOTHY", 54}, // 1 Timothy {"J", 43}, // John {"JAMES", 59}, // James {"JAS", 59}, // James {"JDGS", 7}, // Judges {"JEREMIAH", 24}, // Jeremiah {"JHN", 43}, // John {"JN", 43}, // John {"JO", 43}, // John {"JOB", 18}, // Job {"JOEL", 29}, // Joel {"JOHN", 43}, // John {"JOL", 29}, // Joel {"JONAH", 32}, // Jonah {"JOSHUA", 6}, // Joshua {"JUDE", 65}, // Jude {"JUDGES", 7}, // Judges {"L", 42}, // Luke {"LAMENTATIONS", 25}, // Lamentations {"LEVITICUS", 3}, // Leviticus {"LK", 42}, // Luke {"LUKE", 42}, // Luke {"MA", 40}, // Matthew {"MALACHI", 39}, // Malachi {"MARK", 41}, // Mark {"MATTHEW", 40}, // Matthew {"MICAH", 33}, // Micah {"MK", 41}, // Mark {"MRK", 41}, // Mark {"MT", 40}, // Matthew {"N", 4}, // Numbers {"NAHUM", 34}, // Nahum {"NAM", 34}, // Nahum {"NEHEMIAH", 16}, // Nehemiah {"NUMBERS", 4}, // Numbers {"OBADIAH", 31}, // Obadiah {"P", 19}, // Psalms {"PHIL", 50}, // Philippians {"PHILEMON", 57}, // Philemon {"PHILIPPIANS", 50}, // Philippians {"PHLM", 57}, // Philemon {"PHM", 57}, // Philemon {"PHP", 50}, // Philippians {"PROVERBS", 20}, // Proverbs {"PSALMS", 19}, // Psalms {"PSM", 19}, // Psalms {"PSS", 19}, // Psalms {"QOHELETH", 21}, // Qohelet (Ecclesiastes) {"REVELATION OF JOHN", 66}, // Revelation {"ROMANS", 45}, // Romans {"RUTH", 8}, // Ruth {"SNG", 22}, // Song of Solomon {"SOLOMON", 22}, // Song of Solomon {"SONG OF SOLOMON", 22}, // Song of Solomon {"SONG OF SONGS", 22}, // Song of Solomon {"SOS", 22}, // Song of Solomon {"TITUS", 56}, // Titus {"ZECHARIAH", 38}, // Zechariah {"ZEPHANIAH", 36}, // Zephaniah {"", -1} }; /****************************************************************************** * Maximum verses per chapter */ int VerseKey::vm[] = { // Genesis 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26, // Exodus 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38, // Leviticus 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34, // Numbers 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13, // Deuteronomy 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12, // Joshua 18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33, // Judges 36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25, // Ruth 22, 23, 18, 22, // I Samual 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13, // II Samuel 27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25, // I Kings 53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53, // II Kings 18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30, // I Chronicles 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30, // II Chronicles 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23, // Ezra 11, 70, 13, 24, 17, 22, 28, 36, 15, 44, // Nehemiah 11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31, // Esther 22, 23, 15, 17, 14, 14, 10, 17, 32, 3, // Job 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, 34, 17, // Psalms 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7, 12, 15, 21, 10, 20, 14, 9, 6, // Proverbs 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31, // Ecclesiastes 18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14, // Song of Solomon 17, 17, 11, 16, 16, 13, 13, 14, // Isaiah 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24, // Jeremiah 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34, // Lamentations 22, 22, 66, 22, 22, // Ezekiel 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35, // Daniel 21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13, // Hosea 11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9, // Joel 20, 32, 21, // Amos 15, 16, 15, 13, 27, 14, 17, 14, 15, // Obadiah 21, // Jonah 17, 10, 10, 11, // Micah 16, 13, 12, 13, 15, 16, 20, // Nahum 15, 13, 19, // Habakkuk 17, 20, 19, // Zephaniah 18, 15, 20, // Haggai 15, 23, // Zechariah 21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21, // Malachi 14, 17, 18, 6, // ----------------------------------------------------------------- // Matthew 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20, // Mark 45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20, // Luke 80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53, // John 51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25, // Acts 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31, // Romans 32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27, // I Corinthians 31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24, // II Corinthians 24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14, // Galatians 24, 21, 29, 31, 26, 18, // Ephesians 23, 22, 21, 32, 33, 24, // Philippians 30, 30, 21, 23, // Colossians 29, 23, 25, 18, // I Thessalonians 10, 20, 13, 18, 28, // II Thessalonians 12, 17, 18, // I Timothy 20, 15, 16, 16, 25, 21, // II Timothy 18, 26, 17, 22, // Titus 16, 15, 15, // Philemon 25, // Hebrews 14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25, // James 27, 26, 18, 17, 20, // I Peter 25, 25, 22, 19, 14, // II Peter 21, 22, 18, // I John 10, 29, 24, 21, 21, // II John 13, // III John 14, // Jude 25, // Revelation of John 20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, 27, 21 }; long VerseKey::otbks[] = { 0, 1, 52, 93, 121, 158, 193, 218, 240, 245, 277, 302, 325, 351, 381, 418, 429, 443, 454, 497, 648, 680, 693, 702, 769, 822, 828, 877, 890, 905, 909, 919, 921, 926, 934, 938, 942, 946, 949, 964 }; long VerseKey::otcps[] = { 0, 2, 3, 35, 61, 86, 113, 146, 169, 194, 217, 247, 280, 313, 334, 353, 378, 400, 417, 445, 479, 518, 537, 572, 597, 618, 686, 721, 757, 804, 827, 863, 907, 963, 996, 1017, 1049, 1079, 1123, 1160, 1191, 1215, 1239, 1297, 1336, 1371, 1406, 1435, 1470, 1502, 1525, 1559, 1586, 1587, 1610, 1636, 1659, 1691, 1715, 1746, 1772, 1805, 1841, 1871, 1882, 1934, 1957, 1989, 2017, 2054, 2071, 2099, 2125, 2152, 2189, 2221, 2255, 2274, 2315, 2353, 2375, 2419, 2466, 2505, 2524, 2560, 2584, 2620, 2656, 2695, 2725, 2757, 2801, 2840, 2841, 2859, 2876, 2894, 2930, 2950, 2981, 3020, 3057, 3082, 3103, 3151, 3160, 3220, 3278, 3312, 3347, 3364, 3395, 3433, 3461, 3486, 3520, 3565, 3589, 3645, 3692, 3727, 3728, 3783, 3818, 3870, 3920, 3952, 3980, 4070, 4097, 4121, 4158, 4194, 4211, 4245, 4291, 4333, 4384, 4398, 4431, 4454, 4484, 4520, 4562, 4593, 4619, 4638, 4704, 4728, 4760, 4801, 4818, 4873, 4916, 4973, 5003, 5038, 5052, 5053, 5100, 5138, 5168, 5218, 5252, 5278, 5305, 5326, 5356, 5379, 5412, 5445, 5464, 5494, 5518, 5541, 5562, 5585, 5607, 5628, 5652, 5683, 5709, 5732, 5752, 5772, 5799, 5868, 5898, 5919, 5950, 6003, 6033, 6046, 6047, 6066, 6091, 6109, 6134, 6150, 6178, 6205, 6241, 6269, 6313, 6337, 6362, 6396, 6412, 6476, 6487, 6506, 6535, 6587, 6597, 6643, 6678, 6695, 6729, 6730, 6767, 6791, 6823, 6848, 6880, 6921, 6947, 6983, 7041, 7060, 7101, 7117, 7143, 7164, 7185, 7217, 7231, 7263, 7294, 7343, 7369, 7370, 7393, 7417, 7436, 7459, 7460, 7489, 7526, 7548, 7571, 7584, 7606, 7624, 7647, 7675, 7703, 7719, 7745, 7769, 7822, 7858, 7882, 7941, 7972, 7997, 8040, 8056, 8080, 8110, 8133, 8178, 8204, 8217, 8243, 8255, 8287, 8301, 8302, 8330, 8363, 8403, 8416, 8442, 8466, 8496, 8515, 8529, 8549, 8577, 8609, 8649, 8683, 8721, 8745, 8775, 8809, 8853, 8880, 8903, 8955, 8995, 9021, 9022, 9076, 9123, 9152, 9187, 9206, 9245, 9297, 9364, 9393, 9423, 9467, 9501, 9536, 9568, 9603, 9638, 9663, 9710, 9732, 9776, 9806, 9860, 9861, 9880, 9906, 9934, 9979, 10007, 10041, 10062, 10092, 10130, 10167, 10189, 10211, 10237, 10267, 10306, 10327, 10369, 10407, 10445, 10467, 10494, 10515, 10553, 10574, 10605, 10606, 10661, 10717, 10742, 10786, 10813, 10895, 10936, 10977, 11022, 11037, 11085, 11126, 11141, 11159, 11189, 11233, 11261, 11279, 11299, 11308, 11339, 11359, 11392, 11424, 11456, 11489, 11524, 11546, 11577, 11578, 11596, 11615, 11633, 11656, 11671, 11714, 11737, 11756, 11788, 11808, 11832, 11849, 11872, 11888, 11908, 11923, 11943, 11978, 11990, 12028, 12049, 12062, 12084, 12112, 12141, 12165, 12175, 12203, 12240, 12268, 12290, 12324, 12350, 12384, 12412, 12436, 12437, 12449, 12520, 12534, 12559, 12577, 12600, 12629, 12666, 12682, 12727, 12728, 12740, 12761, 12794, 12818, 12838, 12858, 12932, 12951, 12990, 13030, 13067, 13115, 13147, 13148, 13171, 13195, 13211, 13229, 13244, 13259, 13270, 13288, 13321, 13325, 13326, 13349, 13363, 13390, 13412, 13440, 13471, 13493, 13516, 13552, 13575, 13596, 13622, 13651, 13674, 13710, 13733, 13750, 13772, 13802, 13832, 13867, 13898, 13916, 13942, 13949, 13964, 13988, 14017, 14043, 14075, 14116, 14139, 14173, 14211, 14228, 14262, 14287, 14329, 14360, 14385, 14420, 14438, 14439, 14446, 14459, 14468, 14477, 14490, 14501, 14519, 14529, 14550, 14569, 14577, 14586, 14593, 14601, 14607, 14619, 14635, 14686, 14701, 14711, 14725, 14757, 14764, 14775, 14798, 14811, 14826, 14836, 14848, 14861, 14886, 14898, 14921, 14944, 14973, 14986, 15027, 15050, 15064, 15082, 15096, 15108, 15114, 15141, 15159, 15171, 15181, 15196, 15217, 15241, 15261, 15271, 15278, 15286, 15310, 15324, 15336, 15348, 15366, 15379, 15388, 15401, 15413, 15424, 15438, 15459, 15467, 15503, 15540, 15546, 15571, 15592, 15621, 15645, 15656, 15669, 15690, 15763, 15777, 15797, 15814, 15823, 15842, 15855, 15869, 15887, 15895, 15914, 15967, 15985, 16002, 16018, 16024, 16048, 16060, 16074, 16087, 16097, 16107, 16113, 16122, 16151, 16174, 16210, 16256, 16305, 16349, 16363, 16395, 16403, 16414, 16425, 16435, 16444, 16463, 16483, 16486, 16516, 16693, 16701, 16710, 16720, 16725, 16734, 16740, 16747, 16753, 16760, 16769, 16778, 16782, 16801, 16805, 16809, 16831, 16858, 16868, 16877, 16902, 16916, 16927, 16935, 16948, 16964, 16986, 16997, 17018, 17033, 17043, 17050, 17051, 17085, 17108, 17144, 17172, 17196, 17232, 17260, 17297, 17316, 17349, 17381, 17410, 17436, 17472, 17506, 17540, 17569, 17594, 17624, 17655, 17687, 17717, 17753, 17788, 17817, 17846, 17874, 17903, 17931, 17965, 17997, 17998, 18017, 18044, 18067, 18084, 18105, 18118, 18148, 18166, 18185, 18206, 18217, 18232, 18233, 18251, 18269, 18281, 18298, 18315, 18329, 18343, 18358, 18359, 18391, 18414, 18441, 18448, 18479, 18493, 18519, 18542, 18564, 18599, 18616, 18623, 18646, 18679, 18689, 18704, 18719, 18727, 18753, 18760, 18778, 18804, 18823, 18847, 18860, 18882, 18896, 18926, 18951, 18985, 18995, 19016, 19041, 19059, 19070, 19093, 19132, 19155, 19164, 19196, 19226, 19252, 19281, 19310, 19336, 19350, 19366, 19389, 19416, 19428, 19452, 19468, 19481, 19499, 19513, 19526, 19548, 19563, 19585, 19608, 19620, 19633, 19653, 19666, 19692, 19717, 19718, 19738, 19776, 19802, 19834, 19866, 19897, 19932, 19955, 19982, 20008, 20032, 20050, 20078, 20101, 20123, 20145, 20173, 20197, 20213, 20232, 20247, 20278, 20319, 20330, 20369, 20394, 20417, 20435, 20468, 20493, 20534, 20579, 20606, 20629, 20649, 20682, 20704, 20733, 20752, 20769, 20788, 20811, 20825, 20856, 20862, 20891, 20899, 20947, 20987, 21034, 21099, 21134, 21135, 21158, 21181, 21248, 21271, 21294, 21295, 21324, 21335, 21363, 21381, 21399, 21414, 21442, 21461, 21473, 21496, 21522, 21551, 21575, 21599, 21608, 21672, 21697, 21730, 21745, 21795, 21828, 21860, 21910, 21938, 21956, 21978, 22015, 22042, 22064, 22091, 22110, 22143, 22177, 22209, 22225, 22264, 22293, 22317, 22347, 22397, 22424, 22445, 22473, 22505, 22531, 22556, 22580, 22616, 22617, 22639, 22689, 22720, 22758, 22790, 22819, 22848, 22876, 22904, 22926, 22972, 22986, 22987, 22999, 23023, 23029, 23049, 23065, 23077, 23094, 23109, 23127, 23143, 23156, 23171, 23188, 23198, 23199, 23220, 23253, 23275, 23276, 23292, 23309, 23325, 23339, 23367, 23382, 23400, 23415, 23431, 23432, 23454, 23455, 23473, 23484, 23495, 23507, 23508, 23525, 23539, 23552, 23566, 23582, 23599, 23620, 23621, 23637, 23651, 23671, 23672, 23690, 23711, 23731, 23732, 23751, 23767, 23788, 23789, 23805, 23829, 23830, 23852, 23866, 23877, 23892, 23904, 23920, 23935, 23959, 23977, 23990, 24008, 24023, 24033, 24055, 24056, 24071, 24089, 24108 }; long VerseKey::ntbks[] = { 0, 1, 30, 47, 72, 94, 123, 140, 157, 171, 178, 185, 190, 195, 201, 205, 212, 217, 221, 223, 237, 243, 249, 253, 259, 261, 263, 265 }; long VerseKey::ntcps[] = { 0, 2, 3, 29, 53, 71, 97, 146, 181, 211, 246, 285, 328, 359, 410, 469, 506, 546, 575, 603, 639, 670, 705, 752, 799, 839, 891, 938, 1014, 1081, 1102, 1103, 1149, 1178, 1214, 1256, 1300, 1357, 1395, 1434, 1485, 1538, 1572, 1617, 1655, 1728, 1776, 1797, 1798, 1879, 1932, 1971, 2016, 2056, 2106, 2157, 2214, 2277, 2320, 2375, 2435, 2471, 2507, 2540, 2572, 2610, 2654, 2703, 2751, 2790, 2862, 2919, 2973, 2974, 3026, 3052, 3089, 3144, 3192, 3264, 3318, 3378, 3420, 3463, 3521, 3572, 3611, 3643, 3671, 3705, 3732, 3773, 3816, 3848, 3874, 3875, 3902, 3950, 3977, 4015, 4058, 4074, 4135, 4176, 4220, 4269, 4300, 4326, 4379, 4408, 4450, 4491, 4526, 4555, 4597, 4636, 4677, 4708, 4744, 4772, 4800, 4833, 4878, 4910, 4911, 4944, 4974, 5006, 5032, 5054, 5078, 5104, 5144, 5178, 5200, 5237, 5259, 5274, 5298, 5332, 5360, 5361, 5393, 5410, 5434, 5456, 5470, 5491, 5532, 5546, 5574, 5608, 5643, 5675, 5689, 5730, 5789, 5814, 5815, 5840, 5858, 5877, 5896, 5918, 5937, 5954, 5979, 5995, 6014, 6048, 6070, 6085, 6086, 6111, 6133, 6163, 6195, 6222, 6241, 6242, 6266, 6289, 6311, 6344, 6378, 6403, 6404, 6435, 6466, 6488, 6512, 6513, 6543, 6567, 6593, 6612, 6613, 6624, 6645, 6659, 6678, 6707, 6708, 6721, 6739, 6758, 6759, 6780, 6796, 6813, 6830, 6856, 6878, 6879, 6898, 6925, 6943, 6966, 6967, 6984, 7000, 7016, 7017, 7043, 7044, 7059, 7078, 7098, 7115, 7130, 7151, 7180, 7194, 7223, 7263, 7304, 7334, 7360, 7361, 7389, 7416, 7435, 7453, 7474, 7475, 7501, 7527, 7550, 7570, 7585, 7586, 7608, 7631, 7650, 7651, 7662, 7692, 7717, 7739, 7761, 7762, 7776, 7777, 7792, 7793, 7819, 7820, 7841, 7871, 7894, 7906, 7921, 7939, 7957, 7971, 7993, 8005, 8025, 8043, 8062, 8083, 8092, 8114, 8133, 8158, 8180, 8196, 8224 }; int VerseKey::offsize[2][2] = { {sizeof (VerseKey::otbks) / sizeof(long), sizeof (VerseKey::otcps) / sizeof(long)} , {sizeof (VerseKey::ntbks) / sizeof(long), sizeof (VerseKey::ntcps) / sizeof(long)} };