{"version":3,"file":"index.mjs","sources":["../src/cardinals.js","../src/index.js"],"sourcesContent":["// See the plural rules at https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals#List_of_Plural_Rules\n// See the expressions to identify the plural form at http://docs.translatehouse.org/projects/localization-guide/en/latest/l10n/pluralforms.html#pluralforms-list\n// and at https://hg.mozilla.org/releases/mozilla-release/file/837bbcb850cd58eb07c7f6437078d5229986967c/intl/locale/PluralForm.jsm (resource://gre/modules/PluralForm.jsm)\n\n/* eslint-disable no-confusing-arrow, no-nested-ternary */\n/* istanbul ignore file */\n\nconst cardinals = {\n  rules: [\n    // Plural rule #0 (1 form)\n    // Families: Asian (Chinese, Japanese, Korean), Persian,\n    //   Turkic/Altaic (Turkish), Thai, Lao\n    // Locales: ay (Aymará), bo (Tibetan), cgg (Chiga), dz (Dzongkha),\n    //   id (Indonesian), ja (Japanese), jbo (Lojban), ka (Georgian),\n    //   km (Khmer), ko (Korean), lo (Lao), ms (Malay), my (Burmese),\n    //   sah (Yakut), su (Sundanese), th (Thai), tt (Tatar), ug (Uyghur),\n    //   vi (Vietnamese), wo (Wolof), zh-CN (Simplified Chinese)\n    // Forms: other\n    // everything: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n    // 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n    // 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, ...\n    () => 0,\n\n    // Plural rule #1 (2 forms)\n    // Families: Germanic (Danish, Dutch, English, Faroese, Frisian, German,\n    //   Norwegian, Swedish), Finno-Ugric (Estonian, Finnish, Hungarian),\n    //   Language isolate (Basque), Latin/Greek (Greek), Semitic (Hebrew),\n    //   Romanic (Italian, Portuguese, Spanish, Catalan), Vietnamese\n    // Locales: af (Afrikaans), an (Aragonese), anp (Angika), as (Assamese),\n    //   ast (Asturian), az (Azerbaijani), bg (Bulgarian), bn (Bengali),\n    //   brx (Bodo), ca (Catalan), da (Danish), de (German), doi (Dogri),\n    //   el (Greek), en (English), eo (Esperanto), es (Spanish),\n    //   es-AR (Argentinean Spanish), et (Estonian), eu (Basque),\n    //   ff (Fulah), fi (Finnish), fo (Faroese), fur (Friulian),\n    //   fy (Frisian), gl (Galician), gu (Gujarati), ha (Hausa),\n    //   he (Hebrew), hi (Hindi), hne (Chhattisgarhi), hu (Hungarian),\n    //   hy (Armenian), ia (Interlingua), it (Italian), kk (Kazakh),\n    //   kl (Greenlandic), kn (Kannada), ku (Kurdish), ky (Kyrgyz),\n    //   lb (Letzeburgesch), mai (Maithili), ml (Malayalam), mn (Mongolian),\n    //   mni (Manipuri), mr (Marathi), nah (Nahuatl), nap (Neapolitan),\n    //   nb (Norwegian Bokmal), ne (Nepali), nl (Dutch),\n    //   nn (Norwegian Nynorsk), no (Norwegian), nso (Northern Sotho),\n    //   or (Oriya), pa (Punjabi), pap (Papiamento), pms (Piemontese),\n    //   ps (Pashto), pt (Portuguese), rm (Romansh), rw (Kinyarwanda),\n    //   sat (Santali), sco (Scots), sd (Sindhi), se (Northern Sami),\n    //   si (Sinhala), so (Somali), son (Songhay), sq (Albanian),\n    //   sv (Swedish), sw (Swahili), ta (Tamil), te (Telugu), tk (Turkmen),\n    //   ur (Urdu), yo (Yoruba)\n    // Forms: one, other\n    // is 1: 1\n    // everything else: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n    // 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,\n    // 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, ...\n    n => n === 1 ? 0 : 1,\n\n    // Plural rule #2 (2 forms)\n    // Families: Romanic (French, Brazilian Portuguese)\n    // Locales: ach (Acholi), ak (Akan), am (Amharic), arn (Mapudungun),\n    //   br (Breton), fa (Persian), fil (Filipino), fr (French), gun (Gun),\n    //   ln (Lingala), mfe (Mauritian Creole), mg (Malagasy), mi (Maori),\n    //   oc (Occitan), pt-BR (Brazilian Portuguese), tg (Tajik), ti (Tigrinya),\n    //   tr (Turkish), uz (Uzbek), wa (Walloon), zh-TW (Traditional Chinese)\n    // Forms: one, other\n    // is 0 or 1: 0, 1\n    // everything else: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n    // 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n    // 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ...\n    n => n <= 1 ? 0 : 1,\n\n    // Plural rule #3 (3 forms)\n    // Families: Baltic (Latvian, Latgalian)\n    // Locales: lv (Latvian)\n    // Forms: zero, one, other\n    // ends in 0: 0\n    // ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131,\n    // 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291,\n    // ...\n    // everything else: 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18,\n    // 19, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42,\n    // 43, 44, 45, 46, 47, 48, 49, 52, 53, ...\n    n => n % 10 === 1 && n % 100 !== 11 ? 1 : n % 10 !== 0 ? 2 : 0,\n\n    // Plural rule #4 (4 forms)\n    // Families: Celtic (Scottish Gaelic)\n    // Locales: gd (Scottish Gaelic)\n    // Forms: one, two, few, other\n    // is 1 or 11: 1, 11\n    // is 2 or 12: 2, 12\n    // is 3-10 or 13-19: 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19\n    // everything else: 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,\n    // 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,\n    // 51, ...\n    n => n === 1 || n === 11 ? 0 : n === 2 || n === 12 ? 1 : n > 2 && n < 20 ? 2 : 3,\n\n    // Plural rule #5 (3 forms)\n    // Families: Romanic (Romanian)\n    // Locales: ro (Romanian)\n    // Forms: one, few, other\n    // is 1: 1\n    // is 0 or ends in 01-19, excluding 1: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n    // 13, 14, 15, 16, 17, 18, 19, 101, 102, 103, 104, 105, 106, 107, 108, 109,\n    // 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 201, 202, 203, 204, 205,\n    // 206, 207, 208, 209, 210, 211, 212, ...\n    // everything else: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,\n    // 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\n    // 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, ...\n    n => n === 1 ? 0 : n === 0 || (n % 100 > 0 && n % 100 < 20) ? 1 : 2,\n\n    // Plural rule #6 (3 forms)\n    // Families: Baltic (Lithuanian)\n    // Locales: lt (Lithuanian)\n    // Forms: one, few, other\n    // ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131,\n    // 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291,\n    // ...\n    // ends in 0 or ends in 11-19: 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n    // 30, 40, 50, 60, 70, 80, 90, 100, 110, 111, 112, 113, 114, 115, 116, 117,\n    // 118, 119, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 211, 212, 213,\n    // 214, 215, 216, 217, 218, 219, 220, ...\n    // everything else: 2, 3, 4, 5, 6, 7, 8, 9, 22, 23, 24, 25, 26, 27, 28, 29,\n    // 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53,\n    // 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 72, 73, ...\n    n => n % 10 === 1 && n % 100 !== 11\n      ? 0\n      : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 2 : 1,\n\n    // Plural rule #7 (3 forms)\n    // Families: Slavic (Belarusian, Bosnian, Croatian, Serbian, Russian, Ukrainian)\n    // Locales: be (Belarusian), bs (Bosnian), hr (Croatian), ru (Russian),\n    //   sr (Serbian), uk (Ukrainian)\n    // Forms: one, few, other\n    // ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131,\n    // 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291,\n    // ...\n    // ends in 2-4, excluding 12-14: 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44,\n    // 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94, 102, 103, 104,\n    // 122, 123, 124, 132, 133, 134, 142, 143, 144, 152, 153, 154, 162, 163, 164,\n    // 172, 173, 174, 182, 183, ...\n    // everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 25, 26, 27, 28, 29, 30, 35, 36, 37, 38, 39, 40, 45, 46, 47, 48, 49,\n    // 50, 55, 56, 57, 58, 59, 60, 65, 66, 67, 68, 69, 70, 75, 76, 77, ..., 112,\n    // 113, ..., 212, 213, ...\n    n => n % 10 === 1 && n % 100 !== 11\n      ? 0\n      : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2,\n\n    // Plural rule #8 (3 forms)\n    // Families: Slavic (Slovak, Czech)\n    // Locales: cs (Czech), sk (Slovak)\n    // Forms: one, few, other\n    // is 1: 1\n    // is 2-4: 2, 3, 4\n    // everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,\n    // 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, ...\n    n => n === 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2,\n\n    // Plural rule #9 (3 forms)\n    // Families: Slavic (Polish)\n    // Locales: pl (Polish)\n    // Forms: one, few, other\n    // is 1: 1\n    // ends in 2-4, excluding 12-14: 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44,\n    // 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94, 102, 103, 104,\n    // 122, 123, 124, 132, 133, 134, 142, 143, 144, 152, 153, 154, 162, 163, 164,\n    // 172, 173, 174, 182, 183, ...\n    // everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 21, 25, 26, 27, 28, 29, 30, 31, 35, 36, 37, 38, 39, 40, 41, 45, 46,\n    // 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 65, 66, 67, 68, ...\n    n => n === 1\n      ? 0\n      : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2,\n\n    // Plural rule #10 (4 forms)\n    // Families: Slavic (Slovenian, Sorbian)\n    // Locales: sl (Slovenian)\n    // Forms: one, two, few, other\n    // ends in 01: 1, 101, 201, ...\n    // ends in 02: 2, 102, 202, ...\n    // ends in 03-04: 3, 4, 103, 104, 203, 204, ...\n    // everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,\n    // 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, ...\n    n => n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3,\n\n    // Plural rule #11 (5 forms)\n    // Families: Celtic (Irish Gaelic)\n    // Locales: ga (Irish)\n    // Forms: one, two, few, many, other\n    // is 1: 1\n    // is 2: 2\n    // is 3-6: 3, 4, 5, 6\n    // is 7-10: 7, 8, 9, 10\n    // everything else: 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,\n    // 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,\n    // 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, ...\n    n => n === 1 ? 0 : n === 2 ? 1 : n > 2 && n < 7 ? 2 : n > 6 && n < 11 ? 3 : 4,\n\n    // Plural rule #12 (6 forms)\n    // Families: Semitic (Arabic)\n    // Locales: ar (Arabic)\n    // Forms: one, two, few, many, other, zero\n    // is 1: 1\n    // is 2: 2\n    // ends in 03-10: 3, 4, 5, 6, 7, 8, 9, 10, 103, 104, 105, 106, 107, 108, 109,\n    // 110, 203, 204, 205, 206, 207, 208, 209, 210, ...\n    // everything else but is 0 and ends in 00-02, excluding 0-2: 11, 12, 13, 14,\n    // 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,\n    // 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,\n    // 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, ...\n    // ends in 00-02, excluding 0-2: 100, 101, 102, 200, 201, 202, ...\n    // is 0: 0\n    n => n === 1\n      ? 0\n      : n === 2\n        ? 1\n        : n % 100 >= 3 && n % 100 <= 10\n          ? 2\n          : n % 100 >= 11 ? 3 : n !== 0 ? 4 : 5,\n\n    // Plural rule #13 (4 forms)\n    // Families: Semitic (Maltese)\n    // Locales: mt (Maltese)\n    // Forms: one, few, many, other\n    // is 1: 1\n    // is 0 or ends in 01-10, excluding 1: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101,\n    // 102, 103, 104, 105, 106, 107, 108, 109, 110, 201, 202, 203, 204, 205, 206,\n    // 207, 208, 209, 210, ...\n    // ends in 11-19: 11, 12, 13, 14, 15, 16, 17, 18, 19, 111, 112, 113, 114,\n    // 115, 116, 117, 118, 119, 211, 212, 213, 214, 215, 216, 217, 218, 219, ...\n    // everything else: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,\n    // 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\n    // 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, ...\n    n => n === 1\n      ? 0\n      : n === 0 || (n % 100 > 0 && n % 100 < 11)\n        ? 1\n        : n % 100 > 10 && n % 100 < 20 ? 2 : 3,\n\n    // Plural rule #14 (3 forms)\n    // Families: Unused\n    // Forms: one, few, other\n    // ends in 1: 1, 11, 21, 31, 41, 51, 61, 71, 81, 91, 101, 111, 121, 131, 141,\n    // 151, 161, 171, 181, 191, 201, 211, 221, 231, 241, 251, 261, 271, 281, 291,\n    // ...\n    // ends in 2: 2, 12, 22, 32, 42, 52, 62, 72, 82, 92, 102, 112, 122, 132, 142,\n    // 152, 162, 172, 182, 192, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292,\n    // ...\n    // everything else: 0, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 37, 38, 39, 40, 43,\n    // 44, 45, 46, 47, 48, 49, 50, 53, 54, 55, 56, 57, 58, 59, 60, 63, ...\n    n => n % 10 === 1 ? 0 : n % 10 === 2 ? 1 : 2,\n\n    // Plural rule #15 (2 forms)\n    // Families: Icelandic, Macedonian\n    // Locales: is (Icelandic), mk (Macedonian)\n    // Forms: one, other\n    // ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131,\n    // 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291,\n    // ...\n    // everything else: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n    // 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36,\n    // 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, ...\n    n => n % 10 === 1 && n % 100 !== 11 ? 0 : 1,\n\n    // Plural rule #16 (5 forms)\n    // Families: Celtic (Breton)\n    // Forms: one, two, few, many, other\n    // ends in 1, excluding 11, 71, 91: 21, 31, 41, 51, 61, 81, 101, 121, 131,\n    // 141, 151, 161, 181, 201, 221, 231, 241, 251, 261, 281, ...\n    // ends in 2, excluding 12, 72, 92: 2, 22, 32, 42, 52, 62, 82, 102, 122, 132,\n    // 142, 152, 162, 182, 202, 222, 232, 242, 252, 262, 282, ...\n    // ends in 3, 4 or 9 excluding 13, 14, 19, 73, 74, 79, 93, 94, 99: 3, 4, 9,\n    // 23, 24, 29, 33, 34, 39, 43, 44, 49, 53, 54, 59, ...\n    // ends in 000000: 1000000, 2000000, 3000000, 4000000, 5000000,\n    // 6000000, 7000000, 8000000, 9000000, 10000000, ...\n    // everything else: 0, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 25, 26, 27, 28, 30, 35, 36, 37, 38, 40, ...\n    n => n % 10 === 1 && n % 100 !== 11 && n % 100 !== 71 && n % 100 !== 91\n      ? 0\n      : n % 10 === 2 && n % 100 !== 12 && n % 100 !== 72 && n % 100 !== 92\n        ? 1\n        : (n % 10 === 3 || n % 10 === 4 || n % 10 === 9) &&\n          n % 100 !== 13 && n % 100 !== 73 && n % 100 !== 93 &&\n          n % 100 !== 14 && n % 100 !== 74 && n % 100 !== 94 &&\n          n % 100 !== 19 && n % 100 !== 79 && n % 100 !== 99\n            ? 2\n            : n !== 0 && n % 1000000 === 0\n              ? 3\n              : 4,\n\n    // Plural rule #17 (2 forms)\n    // Families: Ecuador indigenous languages (Shuar)\n    // Locales: jv (Javanese)\n    // Forms: zero, other\n    // is 0: 0\n    // everything else: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n    // 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,\n    // 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ...\n    n => n !== 0 ? 1 : 0,\n\n    // Plural rule #18 (6 forms)\n    // Families: Welsh\n    // Locales: cy (Welsh)\n    // Forms: zero, one, two, few, many, other\n    // is 0: 0\n    // is 1: 1\n    // is 2: 2\n    // is 3: 3\n    // is 6: 6\n    // everything else: 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,\n    // 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ...\n    n => n === 1 ? 1 : n === 2 ? 2 : n === 3 ? 3 : n === 6 ? 4 : n !== 0 ? 5 : 0,\n\n    // Plural rule #19 (3 forms)\n    // Locales: csb (Kashubian)\n    // Forms: one, few, other\n    // is 1: 1\n    // ends in 2-4, excluding 12-14: 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44,\n    // 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94, 102, 103, 104,\n    // 122, 123, 124, 132, 133, 134, 142, 143, 144, 152, 153, 154, 162, 163, 164,\n    // 172, 173, 174, 182, 183, ...\n    // everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 21, 25, 26, 27, 28, 29, 30, 31, 35, 36, 37, 38, 39, 40, 41, 45, 46,\n    // 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 65, 66, 67, 68, 69, 70,\n    // 71, 75, 76, 77, ..., 111, 115, ..., 211, 215, ...\n    n => n === 1\n      ? 0\n      : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2,\n\n    // Plural rule #20 (4 forms)\n    // Locales: kw (Cornish)\n    // Forms: one, two, few, other\n    // is 1: 1\n    // is 2: 2\n    // is 3: 3\n    // everything else: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,\n    // 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ...\n    n => n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3,\n\n    // Plural rule #21 (3 forms)\n    // Locales: me (Montenegro)\n    // Forms: one, few, other\n    // ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131,\n    // 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291,\n    // ...\n    // ends in 2-4, excluding 12-14: 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44,\n    // 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94, 102, 103, 104,\n    // 122, 123, 124, 132, 133, 134, 142, 143, 144, 152, 153, 154, 162, 163, 164,\n    // 172, 173, 174, 182, 183, ...\n    // everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n    // 20, 25, 26, 27, 28, 29, 30, 35, 36, 37, 38, 39, 40, 45, 46, 47, 48, 49,\n    // 50, 55, 56, 57, 58, 59, 60, 65, 66, 67, 68, 69, 70, 75, 76, 77, ..., 112,\n    // 113, ..., 212, 213, ...\n    n => n % 10 === 1 && n % 100 !== 11\n      ? 0\n      : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2,\n\n    // Plural rule #22 (3 forms)\n    // Locales: mnk (Mandinka)\n    // Forms: zero, one, other\n    // is 0: 0\n    // is 1: 1\n    // everything else: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n    // 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n    // 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, ...\n    n => n === 0 ? 0 : n === 1 ? 1 : 2\n  ],\n\n  rulesByLocale: {\n    ach: 2, // Acholi\n    af: 1, // Afrikaans\n    ak: 2, // Akan\n    am: 2, // Amharic\n    an: 1, // Aragonese\n    anp: 1, // Angika\n    ar: 12, // Arabic\n    arn: 2, // Mapudungun\n    as: 1, // Assamese\n    ast: 1, // Asturian\n    ay: 0, // Aymará\n    az: 1, // Azerbaijani\n    be: 7, // Belarusian\n    bg: 1, // Bulgarian\n    bn: 1, // Bengali\n    bo: 0, // Tibetan\n    br: 2, // Breton\n    brx: 1, // Bodo\n    bs: 7, // Bosnian\n    ca: 1, // Catalan\n    cgg: 0, // Chiga\n    cs: 8, // Czech\n    csb: 19, // Kashubian\n    cy: 18, // Welsh\n    da: 1, // Danish\n    de: 1, // German\n    doi: 1, // Dogri\n    dz: 0, // Dzongkha\n    el: 1, // Greek\n    en: 1, // English\n    eo: 1, // Esperanto\n    es: 1, // Spanish\n    'es-ar': 1, // Argentinean Spanish\n    et: 1, // Estonian\n    eu: 1, // Basque\n    fa: 2, // Persian\n    ff: 1, // Fulah\n    fi: 1, // Finnish\n    fil: 2, // Filipino\n    fo: 1, // Faroese\n    fr: 2, // French\n    fur: 1, // Friulian\n    fy: 1, // Frisian\n    ga: 11, // Irish\n    gd: 4, // Scottish Gaelic\n    gl: 1, // Galician\n    gu: 1, // Gujarati\n    gun: 2, // Gun\n    ha: 1, // Hausa\n    he: 1, // Hebrew\n    hi: 1, // Hindi\n    hne: 1, // Chhattisgarhi\n    hr: 7, // Croatian\n    hu: 1, // Hungarian\n    hy: 1, // Armenian\n    ia: 1, // Interlingua\n    id: 0, // Indonesian\n    is: 15, // Icelandic\n    it: 1, // Italian\n    ja: 0, // Japanese\n    jbo: 0, // Lojban\n    jv: 17, // Javanese\n    ka: 0, // Georgian\n    kk: 1, // Kazakh\n    kl: 1, // Greenlandic\n    km: 0, // Khmer\n    kn: 1, // Kannada\n    ko: 0, // Korean\n    ku: 1, // Kurdish\n    kw: 20, // Cornish\n    ky: 1, // Kyrgyz\n    lb: 1, // Letzeburgesch\n    ln: 2, // Lingala\n    lo: 0, // Lao\n    lt: 6, // Lithuanian\n    lv: 3, // Latvian\n    mai: 1, // Maithili\n    me: 21, // Montenegro\n    mfe: 2, // Mauritian Creole\n    mg: 2, // Malagasy\n    mi: 2, // Maori\n    mk: 15, // Macedonian\n    ml: 1, // Malayalam\n    mn: 1, // Mongolian\n    mni: 1, // Manipuri\n    mnk: 22, // Mandinka\n    mr: 1, // Marathi\n    ms: 0, // Malay\n    mt: 13, // Maltese\n    my: 0, // Burmese\n    nah: 1, // Nahuatl\n    nap: 1, // Neapolitan\n    nb: 1, // Norwegian Bokmal\n    ne: 1, // Nepali\n    nl: 1, // Dutch\n    nn: 1, // Norwegian Nynorsk\n    no: 1, // Norwegian\n    nso: 1, // Northern Sotho\n    oc: 2, // Occitan\n    or: 1, // Oriya\n    pa: 1, // Punjabi\n    pap: 1, // Papiamento\n    pl: 9, // Polish\n    pms: 1, // Piemontese\n    ps: 1, // Pashto\n    pt: 1, // Portuguese\n    'pt-br': 2, // Brazilian Portuguese\n    rm: 1, // Romansh\n    ro: 5, // Romanian\n    ru: 7, // Russian\n    rw: 1, // Kinyarwanda\n    sah: 0, // Yakut\n    sat: 1, // Santali\n    sco: 1, // Scots\n    sd: 1, // Sindhi\n    se: 1, // Northern Sami\n    si: 1, // Sinhala\n    sk: 8, // Slovak\n    sl: 10, // Slovenian\n    so: 1, // Somali\n    son: 1, // Songhay\n    sq: 1, // Albanian\n    sr: 7, // Serbian\n    su: 0, // Sundanese\n    sv: 1, // Swedish\n    sw: 1, // Swahili\n    ta: 1, // Tamil\n    te: 1, // Telugu\n    tg: 2, // Tajik\n    th: 0, // Thai\n    ti: 2, // Tigrinya\n    tk: 1, // Turkmen\n    tr: 2, // Turkish\n    tt: 0, // Tatar\n    ug: 0, // Uyghur\n    uk: 7, // Ukrainian\n    ur: 1, // Urdu\n    uz: 2, // Uzbek\n    vi: 0, // Vietnamese\n    wa: 2, // Walloon\n    wo: 0, // Wolof\n    yo: 1, // Yoruba\n    'zh-cn': 0, // Simplified Chinese\n    'zh-tw': 2 // Traditional Chinese\n  },\n\n  formsByIndex: [\n    ['other'], // 0: Asian\n    ['one', 'other'], // 1: Germanic\n    ['one', 'other'], // 2: Romanic (French)\n    ['zero', 'one', 'other'], // 3: Baltic (Latvian, Latgalian)\n    ['one', 'two', 'few', 'other'], // 4: Celtic (Scottish Gaelic)\n    ['one', 'few', 'other'], // 5: Romanic (Romanian)\n    ['one', 'few', 'other'], // 6: Baltic (Lithuanian)\n    ['one', 'few', 'other'], // 7: Slavic (Russian)\n    ['one', 'few', 'other'], // 8: Slavic (Slovak, Czech)\n    ['one', 'few', 'other'], // 9: Slavic (Polish)\n    ['one', 'two', 'few', 'other'], // 10: Slavic (Slovenian, Sorbian)\n    ['one', 'two', 'few', 'many', 'other'], // 11: Celtic (Irish Gaelic)\n    ['one', 'two', 'few', 'many', 'other', 'zero'], // 12: Semitic (Arabic)\n    ['one', 'few', 'many', 'other'], // 13: Semitic (Maltese)\n    ['one', 'few', 'other'], // 14: Unused\n    ['one', 'other'], // 15: Icelandic, Macedonian\n    ['one', 'two', 'few', 'many', 'other'], // 16: Celtic (Breton)\n    ['zero', 'other'], // 17: Ecuador (Shuar)\n    ['zero', 'one', 'two', 'few', 'many', 'other'], // 18: Welsh\n    ['one', 'few', 'other'], // 19: csb (Kashubian)\n    ['one', 'two', 'few', 'other'], // 20: kw (Cornish)\n    ['one', 'few', 'other'], // 21: me (Montenegro)\n    ['zero', 'one', 'other'] // 22: mnk (Mandinka)\n  ]\n}\n\nexport default cardinals\n","import cardinals from './cardinals.js'\n\nconst { rules, rulesByLocale, formsByIndex } = cardinals\n\nfunction normalizeLocale (locale) {\n  return locale.toLowerCase().replace('_', '-')\n}\n\nfunction getLanguage (locale) {\n  const separator = locale.indexOf('-')\n  return separator > 0 ? locale.substr(0, separator) : locale\n}\n\nfunction getPluralRuleIndexForCardinalsByLocale (locale) {\n  locale = normalizeLocale(locale)\n  let index = rulesByLocale[locale]\n  if (index === undefined) {\n    const language = getLanguage(locale)\n    index = rulesByLocale[language]\n  }\n  if (index === undefined) {\n    throw new Error(`Unrecognized locale: \"${locale}\".`)\n  }\n  return index\n}\n\nfunction adaptPluralRuleForFormName (rule, index) {\n  const forms = formsByIndex[index]\n  return function (count) {\n    return forms[rule(count)]\n  }\n}\n\nfunction getPluralRuleForCardinalsByLocale (locale) {\n  const index = getPluralRuleIndexForCardinalsByLocale(locale)\n  return rules[index]\n}\n\nfunction getPluralRuleForCardinalsByIndex (index) {\n  const rule = rules[index]\n  if (rule === undefined) {\n    throw new Error(`Invalid index: \"${index}\".`)\n  }\n  return rule\n}\n\nfunction getPluralRuleForNamedFormsForCardinalsByLocale (locale) {\n  const index = getPluralRuleIndexForCardinalsByLocale(locale)\n  return adaptPluralRuleForFormName(rules[index], index)\n}\n\nfunction getPluralRuleForNamedFormsForCardinalsByIndex (index) {\n  const rule = rules[index]\n  if (rule === undefined) {\n    throw new Error(`Invalid index: \"${index}\".`)\n  }\n  return adaptPluralRuleForFormName(rules[index], index)\n}\n\nfunction getPluralFormForCardinalByLocale (locale, count) {\n  const rule = getPluralRuleForCardinalsByLocale(locale)\n  return rule(count)\n}\n\nfunction getPluralFormForCardinalByIndex (index, count) {\n  const rule = getPluralRuleForCardinalsByIndex(index)\n  return rule(count)\n}\n\nfunction getPluralFormNameForCardinalByLocale (locale, count) {\n  const rule = getPluralRuleForNamedFormsForCardinalsByLocale(locale)\n  return rule(count)\n}\n\nfunction getPluralFormNameForCardinalByIndex (index, count) {\n  const rule = getPluralRuleForNamedFormsForCardinalsByIndex(index)\n  return rule(count)\n}\n\nlet supportedLocales\n\nfunction getSupportedLocales() {\n  if (!supportedLocales) supportedLocales = Object.keys(rulesByLocale)\n  return supportedLocales\n}\n\nfunction getPluralFormCountForLocale(locale) {\n  const index = rulesByLocale[locale]\n  if (index === undefined) return\n  return formsByIndex[index].length\n}\n\nfunction getPluralFormNamesForLocale(locale) {\n  const index = rulesByLocale[locale]\n  if (index === undefined) return\n  return formsByIndex[index]\n}\n\nexport {\n  getPluralRuleForCardinalsByLocale, getPluralRuleForNamedFormsForCardinalsByLocale,\n  getPluralFormForCardinalByLocale, getPluralFormNameForCardinalByLocale,\n  getPluralRuleForCardinalsByIndex, getPluralRuleForNamedFormsForCardinalsByIndex,\n  getPluralFormForCardinalByIndex, getPluralFormNameForCardinalByIndex,\n  getSupportedLocales, getPluralFormCountForLocale, getPluralFormNamesForLocale\n}\n"],"names":[],"mappings":"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EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,EAAE;AACX,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,CAAC;AACT,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,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"}