twitter_cldr 5.3.0 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (674) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +6 -1
  3. data/lib/twitter_cldr.rb +22 -3
  4. data/lib/twitter_cldr/formatters/list_formatter.rb +1 -1
  5. data/lib/twitter_cldr/resources.rb +2 -0
  6. data/lib/twitter_cldr/resources/currency_symbols_importer.rb +1 -1
  7. data/lib/twitter_cldr/resources/hyphenation_importer.rb +4 -2
  8. data/lib/twitter_cldr/resources/parent_locales_importer.rb +54 -0
  9. data/lib/twitter_cldr/resources/properties/emoji_importer.rb +3 -3
  10. data/lib/twitter_cldr/resources/requirements/unicode_requirement.rb +1 -1
  11. data/lib/twitter_cldr/resources/segment_dictionaries_importer.rb +2 -1
  12. data/lib/twitter_cldr/shared/casefolder.rb +57 -56
  13. data/lib/twitter_cldr/shared/hyphenator.rb +4 -4
  14. data/lib/twitter_cldr/shared/locale.rb +57 -7
  15. data/lib/twitter_cldr/version.rb +1 -1
  16. data/lib/twitter_cldr/versions.rb +3 -8
  17. data/resources/collation/tailoring/en-001.yml +4 -0
  18. data/resources/collation/tries/en-001.dump +0 -0
  19. data/resources/locales/af/languages.yml +1 -0
  20. data/resources/locales/af/timezones.yml +3 -1
  21. data/resources/locales/af/units.yml +20 -20
  22. data/resources/locales/ar/languages.yml +3 -2
  23. data/resources/locales/ar/territories.yml +2 -0
  24. data/resources/locales/ar/timezones.yml +3 -1
  25. data/resources/locales/ar/units.yml +28 -28
  26. data/resources/locales/az/languages.yml +1 -0
  27. data/resources/locales/az/timezones.yml +3 -1
  28. data/resources/locales/az/units.yml +20 -20
  29. data/resources/locales/be/languages.yml +1 -0
  30. data/resources/locales/be/timezones.yml +3 -1
  31. data/resources/locales/be/units.yml +23 -23
  32. data/resources/locales/bg/languages.yml +2 -0
  33. data/resources/locales/bg/timezones.yml +3 -1
  34. data/resources/locales/bg/units.yml +20 -20
  35. data/resources/locales/bn/languages.yml +1 -0
  36. data/resources/locales/bn/timezones.yml +3 -1
  37. data/resources/locales/bn/units.yml +22 -22
  38. data/resources/locales/bo/units.yml +9 -9
  39. data/resources/locales/bs/languages.yml +2 -0
  40. data/resources/locales/bs/territories.yml +2 -0
  41. data/resources/locales/bs/timezones.yml +3 -1
  42. data/resources/locales/bs/units.yml +22 -22
  43. data/resources/locales/ca/languages.yml +2 -1
  44. data/resources/locales/ca/timezones.yml +3 -1
  45. data/resources/locales/ca/units.yml +19 -19
  46. data/resources/locales/cs/languages.yml +1 -0
  47. data/resources/locales/cs/timezones.yml +3 -1
  48. data/resources/locales/cs/units.yml +32 -32
  49. data/resources/locales/cy/languages.yml +1 -0
  50. data/resources/locales/cy/timezones.yml +3 -1
  51. data/resources/locales/cy/units.yml +30 -30
  52. data/resources/locales/da/languages.yml +3 -2
  53. data/resources/locales/da/timezones.yml +3 -1
  54. data/resources/locales/da/units.yml +23 -23
  55. data/resources/locales/de-AT/languages.yml +3 -2
  56. data/resources/locales/de-AT/timezones.yml +3 -1
  57. data/resources/locales/de-AT/units.yml +23 -23
  58. data/resources/locales/de-CH/languages.yml +2 -1
  59. data/resources/locales/de-CH/timezones.yml +3 -1
  60. data/resources/locales/de-CH/units.yml +23 -23
  61. data/resources/locales/de/languages.yml +3 -2
  62. data/resources/locales/de/timezones.yml +3 -1
  63. data/resources/locales/de/units.yml +23 -23
  64. data/resources/locales/el/languages.yml +1 -0
  65. data/resources/locales/el/timezones.yml +3 -1
  66. data/resources/locales/el/units.yml +20 -20
  67. data/resources/locales/en-001/calendars.yml +292 -0
  68. data/resources/locales/en-001/currencies.yml +1014 -0
  69. data/resources/locales/en-001/day_periods.yml +96 -0
  70. data/resources/locales/en-001/fields.yml +553 -0
  71. data/resources/locales/en-001/languages.yml +624 -0
  72. data/resources/locales/en-001/layout.yml +5 -0
  73. data/resources/locales/en-001/lists.yml +49 -0
  74. data/resources/locales/en-001/numbers.yml +439 -0
  75. data/resources/locales/en-001/plural_rules.yml +10 -0
  76. data/resources/locales/en-001/plurals.yml +19 -0
  77. data/resources/locales/en-001/territories.yml +267 -0
  78. data/resources/locales/en-001/timezones.yml +758 -0
  79. data/resources/locales/en-001/units.yml +1520 -0
  80. data/resources/locales/en-150/languages.yml +2 -2
  81. data/resources/locales/en-150/timezones.yml +3 -1
  82. data/resources/locales/en-150/units.yml +43 -35
  83. data/resources/locales/en-AU/languages.yml +2 -2
  84. data/resources/locales/en-AU/timezones.yml +3 -1
  85. data/resources/locales/en-AU/units.yml +43 -35
  86. data/resources/locales/en-CA/languages.yml +2 -2
  87. data/resources/locales/en-CA/timezones.yml +3 -1
  88. data/resources/locales/en-CA/units.yml +43 -35
  89. data/resources/locales/en-GB/languages.yml +2 -2
  90. data/resources/locales/en-GB/timezones.yml +3 -1
  91. data/resources/locales/en-GB/units.yml +41 -33
  92. data/resources/locales/en-IE/languages.yml +2 -2
  93. data/resources/locales/en-IE/timezones.yml +3 -1
  94. data/resources/locales/en-IE/units.yml +43 -35
  95. data/resources/locales/en-IN/languages.yml +2 -2
  96. data/resources/locales/en-IN/timezones.yml +3 -1
  97. data/resources/locales/en-IN/units.yml +43 -35
  98. data/resources/locales/en-NZ/languages.yml +2 -2
  99. data/resources/locales/en-NZ/timezones.yml +3 -1
  100. data/resources/locales/en-NZ/units.yml +43 -35
  101. data/resources/locales/en-SG/languages.yml +2 -2
  102. data/resources/locales/en-SG/timezones.yml +3 -1
  103. data/resources/locales/en-SG/units.yml +43 -35
  104. data/resources/locales/en-US/languages.yml +2 -2
  105. data/resources/locales/en-US/timezones.yml +3 -1
  106. data/resources/locales/en-US/units.yml +43 -34
  107. data/resources/locales/en-ZA/languages.yml +2 -2
  108. data/resources/locales/en-ZA/timezones.yml +3 -1
  109. data/resources/locales/en-ZA/units.yml +43 -35
  110. data/resources/locales/en/languages.yml +2 -2
  111. data/resources/locales/en/timezones.yml +3 -1
  112. data/resources/locales/en/units.yml +43 -34
  113. data/resources/locales/es-419/languages.yml +1 -0
  114. data/resources/locales/es-419/timezones.yml +3 -1
  115. data/resources/locales/es-419/units.yml +23 -23
  116. data/resources/locales/es-AR/languages.yml +1 -0
  117. data/resources/locales/es-AR/timezones.yml +3 -1
  118. data/resources/locales/es-AR/units.yml +23 -23
  119. data/resources/locales/es-CO/languages.yml +1 -0
  120. data/resources/locales/es-CO/timezones.yml +3 -1
  121. data/resources/locales/es-CO/units.yml +23 -23
  122. data/resources/locales/es-MX/languages.yml +3 -2
  123. data/resources/locales/es-MX/timezones.yml +3 -1
  124. data/resources/locales/es-MX/units.yml +23 -23
  125. data/resources/locales/es-US/languages.yml +5 -4
  126. data/resources/locales/es-US/territories.yml +1 -1
  127. data/resources/locales/es-US/timezones.yml +3 -1
  128. data/resources/locales/es-US/units.yml +23 -23
  129. data/resources/locales/es/languages.yml +1 -0
  130. data/resources/locales/es/timezones.yml +3 -1
  131. data/resources/locales/es/units.yml +22 -22
  132. data/resources/locales/et/languages.yml +1 -2
  133. data/resources/locales/et/timezones.yml +3 -1
  134. data/resources/locales/et/units.yml +21 -21
  135. data/resources/locales/eu/calendars.yml +12 -12
  136. data/resources/locales/eu/languages.yml +1 -0
  137. data/resources/locales/eu/territories.yml +1 -0
  138. data/resources/locales/eu/timezones.yml +5 -1
  139. data/resources/locales/eu/units.yml +20 -20
  140. data/resources/locales/fa/currencies.yml +2 -0
  141. data/resources/locales/fa/territories.yml +1 -0
  142. data/resources/locales/fa/timezones.yml +3 -1
  143. data/resources/locales/fa/units.yml +23 -23
  144. data/resources/locales/fi/languages.yml +2 -1
  145. data/resources/locales/fi/territories.yml +2 -0
  146. data/resources/locales/fi/timezones.yml +3 -1
  147. data/resources/locales/fi/units.yml +26 -26
  148. data/resources/locales/fil/languages.yml +1 -0
  149. data/resources/locales/fil/timezones.yml +3 -1
  150. data/resources/locales/fil/units.yml +24 -24
  151. data/resources/locales/fr-BE/languages.yml +2 -1
  152. data/resources/locales/fr-BE/timezones.yml +3 -1
  153. data/resources/locales/fr-BE/units.yml +25 -25
  154. data/resources/locales/fr-CA/languages.yml +2 -1
  155. data/resources/locales/fr-CA/timezones.yml +3 -1
  156. data/resources/locales/fr-CA/units.yml +25 -25
  157. data/resources/locales/fr-CH/languages.yml +2 -1
  158. data/resources/locales/fr-CH/timezones.yml +3 -1
  159. data/resources/locales/fr-CH/units.yml +25 -25
  160. data/resources/locales/fr/languages.yml +2 -1
  161. data/resources/locales/fr/timezones.yml +3 -1
  162. data/resources/locales/fr/units.yml +25 -25
  163. data/resources/locales/ga/currencies.yml +5 -11
  164. data/resources/locales/ga/languages.yml +13 -110
  165. data/resources/locales/ga/timezones.yml +3 -1
  166. data/resources/locales/ga/units.yml +35 -35
  167. data/resources/locales/gl/languages.yml +1 -0
  168. data/resources/locales/gl/timezones.yml +3 -1
  169. data/resources/locales/gl/units.yml +19 -19
  170. data/resources/locales/gu/languages.yml +1 -4
  171. data/resources/locales/gu/timezones.yml +3 -1
  172. data/resources/locales/gu/units.yml +20 -20
  173. data/resources/locales/he/languages.yml +1 -0
  174. data/resources/locales/he/timezones.yml +3 -1
  175. data/resources/locales/he/units.yml +27 -27
  176. data/resources/locales/hi/languages.yml +4 -3
  177. data/resources/locales/hi/timezones.yml +3 -1
  178. data/resources/locales/hi/units.yml +20 -20
  179. data/resources/locales/hr/languages.yml +3 -2
  180. data/resources/locales/hr/timezones.yml +3 -1
  181. data/resources/locales/hr/units.yml +25 -25
  182. data/resources/locales/hu/currencies.yml +58 -18
  183. data/resources/locales/hu/languages.yml +3 -2
  184. data/resources/locales/hu/timezones.yml +3 -1
  185. data/resources/locales/hu/units.yml +22 -22
  186. data/resources/locales/hy/currencies.yml +2 -2
  187. data/resources/locales/hy/languages.yml +1 -0
  188. data/resources/locales/hy/timezones.yml +3 -1
  189. data/resources/locales/hy/units.yml +20 -20
  190. data/resources/locales/id/languages.yml +1 -0
  191. data/resources/locales/id/timezones.yml +3 -1
  192. data/resources/locales/id/units.yml +20 -20
  193. data/resources/locales/is/languages.yml +1 -4
  194. data/resources/locales/is/timezones.yml +3 -1
  195. data/resources/locales/is/units.yml +26 -26
  196. data/resources/locales/it-CH/currencies.yml +2 -2
  197. data/resources/locales/it-CH/languages.yml +1 -1
  198. data/resources/locales/it-CH/timezones.yml +3 -1
  199. data/resources/locales/it-CH/units.yml +20 -20
  200. data/resources/locales/it/currencies.yml +2 -2
  201. data/resources/locales/it/languages.yml +1 -1
  202. data/resources/locales/it/timezones.yml +3 -1
  203. data/resources/locales/it/units.yml +20 -20
  204. data/resources/locales/ja/languages.yml +3 -2
  205. data/resources/locales/ja/timezones.yml +3 -1
  206. data/resources/locales/ja/units.yml +21 -21
  207. data/resources/locales/ka/languages.yml +1 -0
  208. data/resources/locales/ka/timezones.yml +3 -1
  209. data/resources/locales/ka/units.yml +19 -19
  210. data/resources/locales/km/languages.yml +1 -0
  211. data/resources/locales/km/lists.yml +7 -2
  212. data/resources/locales/km/plurals.yml +1 -1
  213. data/resources/locales/km/timezones.yml +3 -1
  214. data/resources/locales/km/units.yml +17 -17
  215. data/resources/locales/kn/languages.yml +1 -0
  216. data/resources/locales/kn/timezones.yml +3 -1
  217. data/resources/locales/kn/units.yml +22 -22
  218. data/resources/locales/ko/languages.yml +2 -1
  219. data/resources/locales/ko/timezones.yml +3 -1
  220. data/resources/locales/ko/units.yml +21 -21
  221. data/resources/locales/lo/languages.yml +1 -0
  222. data/resources/locales/lo/plurals.yml +1 -1
  223. data/resources/locales/lo/territories.yml +2 -0
  224. data/resources/locales/lo/timezones.yml +3 -1
  225. data/resources/locales/lo/units.yml +18 -18
  226. data/resources/locales/lt/territories.yml +2 -0
  227. data/resources/locales/lt/timezones.yml +3 -1
  228. data/resources/locales/lt/units.yml +27 -27
  229. data/resources/locales/lv/languages.yml +2 -1
  230. data/resources/locales/lv/timezones.yml +3 -1
  231. data/resources/locales/lv/units.yml +23 -23
  232. data/resources/locales/mk/languages.yml +1 -0
  233. data/resources/locales/mk/timezones.yml +3 -1
  234. data/resources/locales/mk/units.yml +22 -22
  235. data/resources/locales/mr/timezones.yml +3 -1
  236. data/resources/locales/mr/units.yml +23 -23
  237. data/resources/locales/ms/currencies.yml +24 -1
  238. data/resources/locales/ms/languages.yml +1 -0
  239. data/resources/locales/ms/territories.yml +2 -0
  240. data/resources/locales/ms/timezones.yml +3 -1
  241. data/resources/locales/ms/units.yml +23 -21
  242. data/resources/locales/mt/currencies.yml +0 -598
  243. data/resources/locales/mt/units.yml +9 -9
  244. data/resources/locales/my/languages.yml +1 -0
  245. data/resources/locales/my/plurals.yml +1 -1
  246. data/resources/locales/my/territories.yml +2 -0
  247. data/resources/locales/my/timezones.yml +3 -1
  248. data/resources/locales/my/units.yml +18 -18
  249. data/resources/locales/nb/currencies.yml +2 -2
  250. data/resources/locales/nb/languages.yml +2 -1
  251. data/resources/locales/nb/territories.yml +1 -1
  252. data/resources/locales/nb/timezones.yml +3 -1
  253. data/resources/locales/nb/units.yml +24 -24
  254. data/resources/locales/nl-BE/languages.yml +3 -2
  255. data/resources/locales/nl-BE/timezones.yml +3 -1
  256. data/resources/locales/nl-BE/units.yml +27 -27
  257. data/resources/locales/nl/languages.yml +3 -2
  258. data/resources/locales/nl/timezones.yml +3 -1
  259. data/resources/locales/nl/units.yml +27 -27
  260. data/resources/locales/pl/languages.yml +2 -1
  261. data/resources/locales/pl/timezones.yml +102 -162
  262. data/resources/locales/pl/units.yml +28 -28
  263. data/resources/locales/pt-PT/languages.yml +3 -2
  264. data/resources/locales/pt-PT/timezones.yml +2 -0
  265. data/resources/locales/pt-PT/units.yml +20 -20
  266. data/resources/locales/pt/languages.yml +2 -1
  267. data/resources/locales/pt/timezones.yml +3 -1
  268. data/resources/locales/pt/units.yml +21 -21
  269. data/resources/locales/ro/languages.yml +3 -2
  270. data/resources/locales/ro/timezones.yml +3 -1
  271. data/resources/locales/ro/units.yml +25 -25
  272. data/resources/locales/ru/languages.yml +3 -2
  273. data/resources/locales/ru/timezones.yml +3 -1
  274. data/resources/locales/ru/units.yml +27 -27
  275. data/resources/locales/sk/languages.yml +1 -0
  276. data/resources/locales/sk/timezones.yml +3 -1
  277. data/resources/locales/sk/units.yml +27 -27
  278. data/resources/locales/sl/languages.yml +1 -0
  279. data/resources/locales/sl/timezones.yml +3 -1
  280. data/resources/locales/sl/units.yml +24 -24
  281. data/resources/locales/sq/languages.yml +1 -0
  282. data/resources/locales/sq/timezones.yml +3 -1
  283. data/resources/locales/sq/units.yml +22 -22
  284. data/resources/locales/sr-Cyrl-ME/languages.yml +2 -0
  285. data/resources/locales/sr-Cyrl-ME/territories.yml +2 -0
  286. data/resources/locales/sr-Cyrl-ME/timezones.yml +3 -1
  287. data/resources/locales/sr-Cyrl-ME/units.yml +22 -22
  288. data/resources/locales/sr-Latn-ME/languages.yml +2 -0
  289. data/resources/locales/sr-Latn-ME/territories.yml +2 -0
  290. data/resources/locales/sr-Latn-ME/timezones.yml +3 -1
  291. data/resources/locales/sr-Latn-ME/units.yml +22 -22
  292. data/resources/locales/sr/languages.yml +2 -0
  293. data/resources/locales/sr/territories.yml +2 -0
  294. data/resources/locales/sr/timezones.yml +3 -1
  295. data/resources/locales/sr/units.yml +22 -22
  296. data/resources/locales/sv/currencies.yml +4 -1
  297. data/resources/locales/sv/languages.yml +3 -2
  298. data/resources/locales/sv/timezones.yml +3 -1
  299. data/resources/locales/sv/units.yml +27 -27
  300. data/resources/locales/sw/territories.yml +1 -1
  301. data/resources/locales/sw/timezones.yml +5 -1
  302. data/resources/locales/sw/units.yml +20 -20
  303. data/resources/locales/ta/languages.yml +1 -0
  304. data/resources/locales/ta/timezones.yml +3 -1
  305. data/resources/locales/ta/units.yml +22 -22
  306. data/resources/locales/th/languages.yml +2 -1
  307. data/resources/locales/th/plurals.yml +1 -1
  308. data/resources/locales/th/timezones.yml +3 -1
  309. data/resources/locales/th/units.yml +18 -18
  310. data/resources/locales/tr/languages.yml +3 -2
  311. data/resources/locales/tr/timezones.yml +3 -1
  312. data/resources/locales/tr/units.yml +26 -26
  313. data/resources/locales/uk/languages.yml +3 -2
  314. data/resources/locales/uk/timezones.yml +3 -1
  315. data/resources/locales/uk/units.yml +27 -27
  316. data/resources/locales/ur/languages.yml +1 -4
  317. data/resources/locales/ur/timezones.yml +3 -1
  318. data/resources/locales/ur/units.yml +22 -22
  319. data/resources/locales/vi/languages.yml +2 -1
  320. data/resources/locales/vi/timezones.yml +3 -1
  321. data/resources/locales/vi/units.yml +15 -15
  322. data/resources/locales/xh/units.yml +9 -9
  323. data/resources/locales/zh-Hant/languages.yml +2 -2
  324. data/resources/locales/zh-Hant/timezones.yml +3 -1
  325. data/resources/locales/zh-Hant/units.yml +23 -23
  326. data/resources/locales/zh/languages.yml +3 -2
  327. data/resources/locales/zh/timezones.yml +3 -1
  328. data/resources/locales/zh/units.yml +19 -19
  329. data/resources/locales/zu/currencies.yml +2 -2
  330. data/resources/locales/zu/languages.yml +1 -0
  331. data/resources/locales/zu/territories.yml +0 -1
  332. data/resources/locales/zu/timezones.yml +3 -1
  333. data/resources/locales/zu/units.yml +18 -18
  334. data/resources/shared/hyphenation/bg-BG.yml +2 -2
  335. data/resources/shared/hyphenation/ca.yml +6 -6
  336. data/resources/shared/hyphenation/de-AT.yml +4 -45
  337. data/resources/shared/hyphenation/de-CH.yml +4 -45
  338. data/resources/shared/hyphenation/de-DE.yml +4 -45
  339. data/resources/shared/hyphenation/en-GB.yml +4 -4
  340. data/resources/shared/hyphenation/en-US.yml +4 -4
  341. data/resources/shared/hyphenation/es.yml +2 -2
  342. data/resources/shared/hyphenation/fr.yml +5 -5
  343. data/resources/shared/hyphenation/gl.yml +2 -2
  344. data/resources/shared/hyphenation/hr-HR.yml +3 -3
  345. data/resources/shared/hyphenation/hu-HU.yml +2 -2
  346. data/resources/shared/hyphenation/is.yml +2 -2
  347. data/resources/shared/hyphenation/sl-SI.yml +3 -3
  348. data/resources/shared/hyphenation/sr-Latn.yml +2 -2
  349. data/resources/shared/hyphenation/sr.yml +2 -2
  350. data/resources/shared/hyphenation/sv.yml +2 -2
  351. data/resources/shared/likely_subtags.yml +12 -2
  352. data/resources/shared/metazones.yml +13 -1
  353. data/resources/shared/numbering_systems.yml +6 -0
  354. data/resources/shared/parent_locales.yml +172 -0
  355. data/resources/shared/segments/rules/el/sentence.yml +435 -424
  356. data/resources/shared/segments/rules/en-US-POSIX/word.yml +523 -483
  357. data/resources/shared/segments/rules/ja/line.yml +569 -716
  358. data/resources/shared/segments/rules/ja/word.yml +523 -483
  359. data/resources/shared/segments/rules/root/grapheme.yml +324 -318
  360. data/resources/shared/segments/rules/root/line.yml +569 -716
  361. data/resources/shared/segments/rules/root/sentence.yml +435 -424
  362. data/resources/shared/segments/rules/root/word.yml +523 -483
  363. data/resources/shared/segments/rules/zh-Hant/line.yml +569 -716
  364. data/resources/shared/segments/rules/zh/line.yml +569 -716
  365. data/resources/shared/segments/suppressions/en/sentence.yml +175 -4
  366. data/resources/shared/segments/suppressions/it/sentence.yml +77 -4
  367. data/resources/shared/segments/suppressions/ru/sentence.yml +46 -4
  368. data/resources/shared/segments/tests/line_break_test.yml +1027 -687
  369. data/resources/shared/territories_containment.yml +0 -1
  370. data/resources/shared/transforms/Han-Latin.yml +830 -830
  371. data/resources/shared/transforms/Myanmar-Latin.yml +192 -0
  372. data/resources/shared/transforms/transform_id_map.yml +4 -0
  373. data/resources/shared/validity_data.yml +5 -0
  374. data/resources/supported_locales.yml +1 -0
  375. data/resources/unicode_data/blocks.yml +32 -0
  376. data/resources/unicode_data/blocks/ancient_symbols.yml +16 -0
  377. data/resources/unicode_data/blocks/arabic_extended_a.yml +160 -0
  378. data/resources/unicode_data/blocks/bopomofo_extended.yml +80 -0
  379. data/resources/unicode_data/blocks/chakma.yml +16 -0
  380. data/resources/unicode_data/blocks/chorasmian.yml +449 -0
  381. data/resources/unicode_data/blocks/cjk_unified_ideographs.yml +2 -2
  382. data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_a.yml +2 -2
  383. data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_b.yml +2 -2
  384. data/resources/unicode_data/blocks/cjk_unified_ideographs_extension_g.yml +33 -0
  385. data/resources/unicode_data/blocks/combining_diacritical_marks_extended.yml +32 -0
  386. data/resources/unicode_data/blocks/dives_akuru.yml +1153 -0
  387. data/resources/unicode_data/blocks/enclosed_alphanumeric_supplement.yml +112 -0
  388. data/resources/unicode_data/blocks/enclosed_cjk_letters_and_months.yml +16 -0
  389. data/resources/unicode_data/blocks/ideographic_symbols_and_punctuation.yml +48 -0
  390. data/resources/unicode_data/blocks/khitan_small_script.yml +7521 -0
  391. data/resources/unicode_data/blocks/latin_extended_d.yml +96 -0
  392. data/resources/unicode_data/blocks/latin_extended_e.yml +64 -0
  393. data/resources/unicode_data/blocks/lisu_supplement.yml +17 -0
  394. data/resources/unicode_data/blocks/malayalam.yml +16 -0
  395. data/resources/unicode_data/blocks/miscellaneous_symbols_and_arrows.yml +16 -0
  396. data/resources/unicode_data/blocks/newa.yml +48 -0
  397. data/resources/unicode_data/blocks/oriya.yml +16 -0
  398. data/resources/unicode_data/blocks/sharada.yml +32 -0
  399. data/resources/unicode_data/blocks/sinhala.yml +16 -0
  400. data/resources/unicode_data/blocks/supplemental_arrows_c.yml +32 -0
  401. data/resources/unicode_data/blocks/supplemental_punctuation.yml +48 -0
  402. data/resources/unicode_data/blocks/supplemental_symbols_and_pictographs.yml +160 -0
  403. data/resources/unicode_data/blocks/syloti_nagri.yml +16 -0
  404. data/resources/unicode_data/blocks/symbols_and_pictographs_extended_a.yml +656 -0
  405. data/resources/unicode_data/blocks/symbols_for_legacy_computing.yml +3399 -0
  406. data/resources/unicode_data/blocks/tangut_components.yml +208 -0
  407. data/resources/unicode_data/blocks/tangut_supplement.yml +33 -0
  408. data/resources/unicode_data/blocks/transport_and_map_symbols.yml +64 -0
  409. data/resources/unicode_data/blocks/yezidi.yml +753 -0
  410. data/resources/unicode_data/casefolding.yml +12 -0
  411. data/resources/unicode_data/properties/{Script_Extensions/Armn → Age/12.1}/value.dump +1 -1
  412. data/resources/unicode_data/properties/Age/13.0/value.dump +0 -0
  413. data/resources/unicode_data/properties/Alphabetic/value.dump +0 -0
  414. data/resources/unicode_data/properties/Bidi_Class/AL/value.dump +0 -0
  415. data/resources/unicode_data/properties/Bidi_Class/EN/value.dump +0 -0
  416. data/resources/unicode_data/properties/Bidi_Class/L/value.dump +0 -0
  417. data/resources/unicode_data/properties/Bidi_Class/NSM/value.dump +0 -0
  418. data/resources/unicode_data/properties/Bidi_Class/ON/value.dump +0 -0
  419. data/resources/unicode_data/properties/Bidi_Class/R/value.dump +0 -0
  420. data/resources/unicode_data/properties/Bidi_Mirrored/N/value.dump +0 -0
  421. data/resources/unicode_data/properties/Block/CJK Unified Ideographs Extension G/value.dump +0 -0
  422. data/resources/unicode_data/properties/Block/Chorasmian/value.dump +3 -0
  423. data/resources/unicode_data/properties/Block/Dives Akuru/value.dump +0 -0
  424. data/resources/unicode_data/properties/Block/Khitan Small Script/value.dump +0 -0
  425. data/resources/unicode_data/properties/Block/Lisu Supplement/value.dump +3 -0
  426. data/resources/unicode_data/properties/Block/Symbols for Legacy Computing/value.dump +0 -0
  427. data/resources/unicode_data/properties/Block/Tangut Supplement/value.dump +0 -0
  428. data/resources/unicode_data/properties/Block/Yezidi/value.dump +3 -0
  429. data/resources/unicode_data/properties/Canonical_Combining_Class/0/value.dump +0 -0
  430. data/resources/unicode_data/properties/Canonical_Combining_Class/220/value.dump +3 -2
  431. data/resources/unicode_data/properties/Canonical_Combining_Class/230/value.dump +0 -0
  432. data/resources/unicode_data/properties/Canonical_Combining_Class/6/value.dump +3 -0
  433. data/resources/unicode_data/properties/Canonical_Combining_Class/7/value.dump +3 -2
  434. data/resources/unicode_data/properties/Canonical_Combining_Class/9/value.dump +5 -3
  435. data/resources/unicode_data/properties/Case_Ignorable/value.dump +0 -0
  436. data/resources/unicode_data/properties/Cased/value.dump +0 -0
  437. data/resources/unicode_data/properties/Changes_When_Casefolded/value.dump +0 -0
  438. data/resources/unicode_data/properties/Changes_When_Casemapped/value.dump +0 -0
  439. data/resources/unicode_data/properties/Changes_When_Lowercased/value.dump +0 -0
  440. data/resources/unicode_data/properties/Changes_When_Titlecased/value.dump +5 -2
  441. data/resources/unicode_data/properties/Changes_When_Uppercased/value.dump +5 -2
  442. data/resources/unicode_data/properties/Dash/value.dump +0 -0
  443. data/resources/unicode_data/properties/Diacritic/value.dump +0 -0
  444. data/resources/unicode_data/properties/East_Asian_Width/N/value.dump +0 -0
  445. data/resources/unicode_data/properties/East_Asian_Width/W/value.dump +0 -0
  446. data/resources/unicode_data/properties/Emoji/value.dump +0 -0
  447. data/resources/unicode_data/properties/Emoji_Modifier_Base/value.dump +5 -3
  448. data/resources/unicode_data/properties/Emoji_Presentation/value.dump +0 -0
  449. data/resources/unicode_data/properties/Extended_Pictographic/value.dump +0 -0
  450. data/resources/unicode_data/properties/Extender/value.dump +3 -2
  451. data/resources/unicode_data/properties/General_Category/L/l/value.dump +0 -0
  452. data/resources/unicode_data/properties/General_Category/L/m/value.dump +3 -2
  453. data/resources/unicode_data/properties/General_Category/L/o/value.dump +0 -0
  454. data/resources/unicode_data/properties/General_Category/L/u/value.dump +0 -0
  455. data/resources/unicode_data/properties/General_Category/M/c/value.dump +0 -0
  456. data/resources/unicode_data/properties/General_Category/M/n/value.dump +0 -0
  457. data/resources/unicode_data/properties/General_Category/N/d/value.dump +0 -0
  458. data/resources/unicode_data/properties/General_Category/N/o/value.dump +0 -0
  459. data/resources/unicode_data/properties/General_Category/P/d/value.dump +0 -0
  460. data/resources/unicode_data/properties/General_Category/P/o/value.dump +0 -0
  461. data/resources/unicode_data/properties/General_Category/S/k/value.dump +0 -0
  462. data/resources/unicode_data/properties/General_Category/S/o/value.dump +0 -0
  463. data/resources/unicode_data/properties/Grapheme_Base/value.dump +0 -0
  464. data/resources/unicode_data/properties/Grapheme_Cluster_Break/Extend/value.dump +0 -0
  465. data/resources/unicode_data/properties/Grapheme_Cluster_Break/Prepend/value.dump +0 -0
  466. data/resources/unicode_data/properties/Grapheme_Cluster_Break/SpacingMark/value.dump +0 -0
  467. data/resources/unicode_data/properties/Grapheme_Extend/value.dump +0 -0
  468. data/resources/unicode_data/properties/Grapheme_Link/value.dump +5 -3
  469. data/resources/unicode_data/properties/ID_Continue/value.dump +0 -0
  470. data/resources/unicode_data/properties/ID_Start/value.dump +0 -0
  471. data/resources/unicode_data/properties/Ideographic/value.dump +0 -0
  472. data/resources/unicode_data/properties/Indic_Positional_Category/Bottom/value.dump +5 -3
  473. data/resources/unicode_data/properties/Indic_Positional_Category/Bottom_And_Right/value.dump +5 -3
  474. data/resources/unicode_data/properties/Indic_Positional_Category/Left/value.dump +6 -3
  475. data/resources/unicode_data/properties/Indic_Positional_Category/Left_And_Right/value.dump +3 -2
  476. data/resources/unicode_data/properties/Indic_Positional_Category/Right/value.dump +0 -0
  477. data/resources/unicode_data/properties/Indic_Positional_Category/Top/value.dump +0 -0
  478. data/resources/unicode_data/properties/Indic_Positional_Category/Top_And_Bottom_And_Left/value.dump +4 -0
  479. data/resources/unicode_data/properties/Indic_Syllabic_Category/Bindu/value.dump +0 -0
  480. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant/value.dump +0 -0
  481. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Medial/value.dump +4 -2
  482. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Preceding_Repha/value.dump +3 -2
  483. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Prefixed/value.dump +3 -2
  484. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_With_Stacker/value.dump +3 -2
  485. data/resources/unicode_data/properties/Indic_Syllabic_Category/Invisible_Stacker/value.dump +3 -2
  486. data/resources/unicode_data/properties/Indic_Syllabic_Category/Nukta/value.dump +3 -2
  487. data/resources/unicode_data/properties/Indic_Syllabic_Category/Number/value.dump +0 -0
  488. data/resources/unicode_data/properties/Indic_Syllabic_Category/Pure_Killer/value.dump +5 -3
  489. data/resources/unicode_data/properties/Indic_Syllabic_Category/Vowel_Dependent/value.dump +7 -4
  490. data/resources/unicode_data/properties/Indic_Syllabic_Category/Vowel_Independent/value.dump +0 -0
  491. data/resources/unicode_data/properties/Joining_Group/AFRICAN QAF/value.dump +3 -2
  492. data/resources/unicode_data/properties/Joining_Group/AIN/value.dump +3 -3
  493. data/resources/unicode_data/properties/Joining_Group/BEH/value.dump +3 -2
  494. data/resources/unicode_data/properties/Joining_Group/GAF/value.dump +3 -2
  495. data/resources/unicode_data/properties/Joining_Group/HAH/value.dump +4 -2
  496. data/resources/unicode_data/properties/Joining_Group/LAM/value.dump +4 -2
  497. data/resources/unicode_data/properties/Joining_Group/No_Joining_Group/value.dump +0 -0
  498. data/resources/unicode_data/properties/Joining_Type/Dual_Joining/value.dump +0 -0
  499. data/resources/unicode_data/properties/Joining_Type/Left_Joining/value.dump +0 -0
  500. data/resources/unicode_data/properties/Joining_Type/Non_Joining/value.dump +0 -0
  501. data/resources/unicode_data/properties/Joining_Type/Right_Joining/value.dump +9 -3
  502. data/resources/unicode_data/properties/Line_Break/AL/value.dump +0 -0
  503. data/resources/unicode_data/properties/Line_Break/BA/value.dump +0 -0
  504. data/resources/unicode_data/properties/Line_Break/CM/value.dump +0 -0
  505. data/resources/unicode_data/properties/Line_Break/EB/value.dump +5 -3
  506. data/resources/unicode_data/properties/Line_Break/GL/value.dump +3 -2
  507. data/resources/unicode_data/properties/Line_Break/ID/value.dump +0 -0
  508. data/resources/unicode_data/properties/Line_Break/NU/value.dump +0 -0
  509. data/resources/unicode_data/properties/Lowercase/value.dump +0 -0
  510. data/resources/unicode_data/properties/Numeric_Type/0/value.dump +0 -0
  511. data/resources/unicode_data/properties/Numeric_Type/1/value.dump +5 -3
  512. data/resources/unicode_data/properties/Numeric_Type/2/value.dump +5 -3
  513. data/resources/unicode_data/properties/Numeric_Type/3/value.dump +5 -3
  514. data/resources/unicode_data/properties/Numeric_Type/4/value.dump +5 -3
  515. data/resources/unicode_data/properties/Numeric_Type/5/value.dump +5 -3
  516. data/resources/unicode_data/properties/Numeric_Type/6/value.dump +5 -3
  517. data/resources/unicode_data/properties/Numeric_Type/7/value.dump +5 -3
  518. data/resources/unicode_data/properties/Numeric_Type/8/value.dump +5 -3
  519. data/resources/unicode_data/properties/Numeric_Type/9/value.dump +5 -3
  520. data/resources/unicode_data/properties/Numeric_Type/value.dump +0 -0
  521. data/resources/unicode_data/properties/Other_Alphabetic/value.dump +0 -0
  522. data/resources/unicode_data/properties/Other_Grapheme_Extend/value.dump +0 -0
  523. data/resources/unicode_data/properties/Script/Arabic/value.dump +0 -0
  524. data/resources/unicode_data/properties/Script/Armenian/value.dump +1 -3
  525. data/resources/unicode_data/properties/Script/Bopomofo/value.dump +1 -1
  526. data/resources/unicode_data/properties/Script/Chakma/value.dump +0 -0
  527. data/resources/unicode_data/properties/Script/Chorasmian/value.dump +3 -0
  528. data/resources/unicode_data/properties/Script/Common/value.dump +0 -0
  529. data/resources/unicode_data/properties/Script/Dives_Akuru/value.dump +0 -0
  530. data/resources/unicode_data/properties/Script/Han/value.dump +0 -0
  531. data/resources/unicode_data/properties/Script/Inherited/value.dump +0 -0
  532. data/resources/unicode_data/properties/Script/Khitan_Small_Script/value.dump +0 -0
  533. data/resources/unicode_data/properties/Script/Latin/value.dump +0 -0
  534. data/resources/unicode_data/properties/Script/Lisu/value.dump +3 -2
  535. data/resources/unicode_data/properties/Script/Malayalam/value.dump +0 -0
  536. data/resources/unicode_data/properties/Script/Newa/value.dump +0 -0
  537. data/resources/unicode_data/properties/Script/Oriya/value.dump +1 -1
  538. data/resources/unicode_data/properties/Script/Sharada/value.dump +2 -3
  539. data/resources/unicode_data/properties/Script/Sinhala/value.dump +1 -1
  540. data/resources/unicode_data/properties/Script/Syloti_Nagri/value.dump +0 -0
  541. data/resources/unicode_data/properties/Script/Tangut/value.dump +0 -0
  542. data/resources/unicode_data/properties/Script/Yezidi/value.dump +5 -0
  543. data/resources/unicode_data/properties/Script_Extensions/Cyrl/value.dump +3 -2
  544. data/resources/unicode_data/properties/Script_Extensions/Geor/value.dump +2 -3
  545. data/resources/unicode_data/properties/Script_Extensions/Hani/value.dump +0 -0
  546. data/resources/unicode_data/properties/Script_Extensions/Latn/value.dump +0 -0
  547. data/resources/unicode_data/properties/Script_Extensions/Syrc/value.dump +3 -2
  548. data/resources/unicode_data/properties/Script_Extensions/Yezi/value.dump +6 -0
  549. data/resources/unicode_data/properties/Sentence_Break/Extend/value.dump +0 -0
  550. data/resources/unicode_data/properties/Sentence_Break/Lower/value.dump +0 -0
  551. data/resources/unicode_data/properties/Sentence_Break/Numeric/value.dump +0 -0
  552. data/resources/unicode_data/properties/Sentence_Break/OLetter/value.dump +0 -0
  553. data/resources/unicode_data/properties/Sentence_Break/STerm/value.dump +0 -0
  554. data/resources/unicode_data/properties/Sentence_Break/Upper/value.dump +0 -0
  555. data/resources/unicode_data/properties/Sentence_Terminal/value.dump +0 -0
  556. data/resources/unicode_data/properties/Terminal_Punctuation/value.dump +0 -0
  557. data/resources/unicode_data/properties/Unified_Ideograph/value.dump +0 -0
  558. data/resources/unicode_data/properties/Uppercase/value.dump +0 -0
  559. data/resources/unicode_data/properties/Word_Break/ALetter/value.dump +0 -0
  560. data/resources/unicode_data/properties/Word_Break/Extend/value.dump +0 -0
  561. data/resources/unicode_data/properties/Word_Break/MidLetter/value.dump +3 -2
  562. data/resources/unicode_data/properties/Word_Break/Numeric/value.dump +0 -0
  563. data/resources/unicode_data/properties/XID_Continue/value.dump +0 -0
  564. data/resources/unicode_data/properties/XID_Start/value.dump +0 -0
  565. data/resources/unicode_data/property_aliases.yml +24 -0
  566. data/resources/unicode_data/property_value_aliases.yml +63 -0
  567. data/spec/formatters/list_formatter_spec.rb +20 -0
  568. data/spec/formatters/plurals/plural_formatter_spec.rb +1 -1
  569. data/spec/shared/calendar_spec.rb +1 -1
  570. data/spec/shared/hyphenator_spec.rb +9 -1
  571. data/spec/shared/likely_subtags_spec.rb +8 -0
  572. data/spec/shared/locale_spec.rb +33 -1
  573. data/spec/shared/numbers_spec.rb +2 -2
  574. data/spec/timezones/tests/af.yml +5 -5
  575. data/spec/timezones/tests/ar.yml +5 -5
  576. data/spec/timezones/tests/az.yml +6 -6
  577. data/spec/timezones/tests/be.yml +6 -6
  578. data/spec/timezones/tests/bg.yml +6 -6
  579. data/spec/timezones/tests/bn.yml +5 -5
  580. data/spec/timezones/tests/bs.yml +6 -6
  581. data/spec/timezones/tests/ca.yml +6 -6
  582. data/spec/timezones/tests/cs.yml +6 -6
  583. data/spec/timezones/tests/cy.yml +5 -5
  584. data/spec/timezones/tests/da.yml +6 -6
  585. data/spec/timezones/tests/de-AT.yml +6 -6
  586. data/spec/timezones/tests/de-CH.yml +6 -6
  587. data/spec/timezones/tests/de.yml +6 -6
  588. data/spec/timezones/tests/el.yml +6 -6
  589. data/spec/timezones/tests/en-001.yml +12475 -0
  590. data/spec/timezones/tests/en-150.yml +5 -5
  591. data/spec/timezones/tests/en-AU.yml +5 -5
  592. data/spec/timezones/tests/en-CA.yml +5 -5
  593. data/spec/timezones/tests/en-GB.yml +5 -5
  594. data/spec/timezones/tests/en-IE.yml +5 -5
  595. data/spec/timezones/tests/en-IN.yml +5 -5
  596. data/spec/timezones/tests/en-NZ.yml +5 -5
  597. data/spec/timezones/tests/en-SG.yml +5 -5
  598. data/spec/timezones/tests/en-US.yml +5 -5
  599. data/spec/timezones/tests/en-ZA.yml +5 -5
  600. data/spec/timezones/tests/en.yml +5 -5
  601. data/spec/timezones/tests/es-419.yml +6 -6
  602. data/spec/timezones/tests/es-AR.yml +8 -8
  603. data/spec/timezones/tests/es-CO.yml +6 -6
  604. data/spec/timezones/tests/es-MX.yml +6 -6
  605. data/spec/timezones/tests/es-US.yml +6 -6
  606. data/spec/timezones/tests/es.yml +6 -6
  607. data/spec/timezones/tests/et.yml +6 -6
  608. data/spec/timezones/tests/eu.yml +9 -9
  609. data/spec/timezones/tests/fa.yml +5 -5
  610. data/spec/timezones/tests/fi.yml +6 -6
  611. data/spec/timezones/tests/fil.yml +5 -5
  612. data/spec/timezones/tests/fr-BE.yml +6 -6
  613. data/spec/timezones/tests/fr-CA.yml +6 -6
  614. data/spec/timezones/tests/fr-CH.yml +6 -6
  615. data/spec/timezones/tests/fr.yml +6 -6
  616. data/spec/timezones/tests/ga.yml +6 -6
  617. data/spec/timezones/tests/gl.yml +6 -6
  618. data/spec/timezones/tests/gu.yml +6 -6
  619. data/spec/timezones/tests/he.yml +5 -5
  620. data/spec/timezones/tests/hi.yml +5 -5
  621. data/spec/timezones/tests/hr.yml +6 -6
  622. data/spec/timezones/tests/hu.yml +6 -6
  623. data/spec/timezones/tests/hy.yml +6 -6
  624. data/spec/timezones/tests/id.yml +5 -5
  625. data/spec/timezones/tests/is.yml +6 -6
  626. data/spec/timezones/tests/it-CH.yml +6 -6
  627. data/spec/timezones/tests/it.yml +6 -6
  628. data/spec/timezones/tests/ja.yml +5 -5
  629. data/spec/timezones/tests/ka.yml +6 -6
  630. data/spec/timezones/tests/km.yml +6 -6
  631. data/spec/timezones/tests/kn.yml +5 -5
  632. data/spec/timezones/tests/ko.yml +5 -5
  633. data/spec/timezones/tests/lo.yml +6 -6
  634. data/spec/timezones/tests/lt.yml +6 -6
  635. data/spec/timezones/tests/lv.yml +6 -6
  636. data/spec/timezones/tests/mk.yml +6 -6
  637. data/spec/timezones/tests/mr.yml +6 -6
  638. data/spec/timezones/tests/ms.yml +6 -6
  639. data/spec/timezones/tests/my.yml +6 -6
  640. data/spec/timezones/tests/nb.yml +5 -5
  641. data/spec/timezones/tests/nl-BE.yml +6 -6
  642. data/spec/timezones/tests/nl.yml +6 -6
  643. data/spec/timezones/tests/pl.yml +197 -197
  644. data/spec/timezones/tests/pt-PT.yml +6 -6
  645. data/spec/timezones/tests/pt.yml +6 -6
  646. data/spec/timezones/tests/ro.yml +6 -6
  647. data/spec/timezones/tests/ru.yml +6 -6
  648. data/spec/timezones/tests/sk.yml +6 -6
  649. data/spec/timezones/tests/sl.yml +6 -6
  650. data/spec/timezones/tests/sq.yml +6 -6
  651. data/spec/timezones/tests/sr-Cyrl-ME.yml +6 -6
  652. data/spec/timezones/tests/sr-Latn-ME.yml +6 -6
  653. data/spec/timezones/tests/sr.yml +6 -6
  654. data/spec/timezones/tests/sv.yml +6 -6
  655. data/spec/timezones/tests/sw.yml +8 -8
  656. data/spec/timezones/tests/ta.yml +5 -5
  657. data/spec/timezones/tests/th.yml +5 -5
  658. data/spec/timezones/tests/tr.yml +5 -5
  659. data/spec/timezones/tests/uk.yml +6 -6
  660. data/spec/timezones/tests/ur.yml +6 -6
  661. data/spec/timezones/tests/vi.yml +5 -5
  662. data/spec/timezones/tests/zh-Hant.yml +5 -5
  663. data/spec/timezones/tests/zh.yml +5 -5
  664. data/spec/timezones/tests/zu.yml +6 -6
  665. data/spec/transforms/test_data.yml +6 -0
  666. data/spec/twitter_cldr_spec.rb +21 -0
  667. metadata +50 -14
  668. data/resources/uli/segments/de.yml +0 -5
  669. data/resources/uli/segments/en.yml +0 -3
  670. data/resources/uli/segments/es.yml +0 -5
  671. data/resources/uli/segments/fr.yml +0 -5
  672. data/resources/uli/segments/it.yml +0 -3
  673. data/resources/uli/segments/pt.yml +0 -5
  674. data/resources/uli/segments/ru.yml +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2783ec225d4f260deb8038237125dbc97b78840e951cbff630f3da502e31f41d
4
- data.tar.gz: 751cc8931ee11db35a533584a1b9f3d8a946e9505641d33caad6a5a5dbc6e866
3
+ metadata.gz: 72981bad7d4ed54141a4e9dd7dc94cb49035766eed724834916ac772c48f7eed
4
+ data.tar.gz: 96889477a704251878f8f863caef717a7e371831cb909a4724ebc32aedcc447b
5
5
  SHA512:
6
- metadata.gz: 7cdc1ec2718ac86b0645813fc0bdfe13b1c2bee075ca90e13231a3d566d915e7ef9bcdf6d69f8d0a7cbcdaf6868eae5c27bfb4b32b52efbd7dcf1adabc20c39d
7
- data.tar.gz: 20b7e24ec990cc00fb77d60d62c75247108748629c5478a0a315d96e04a76c443f8abc2a4df21b7c4093ad7cc46ee81c4276ca15f97c8698073b7ac9bca98c65
6
+ metadata.gz: 64876d8266dbe0e629b21bd8e62a49aea758046e14a74f31afc4e751e7c93d9081ac1f73e4a1ff64899a2c9dda519e14fab83d8ed017e953ebeb42967f3040cf
7
+ data.tar.gz: e953e933a7a0c6a1a45167613591e5a2e93653ef64aff35066474bc3f371511ae5f1d06f06ab6683500960d01aaebea7714dbb8d1d535a5724fe8122b309a95c
data/Rakefile CHANGED
@@ -53,7 +53,7 @@ end
53
53
 
54
54
  task :update do
55
55
  klasses = TwitterCldr::Resources.importer_classes_for_ruby_engine
56
- TwitterCldr::Resources::ImportResolver.new(klasses).import
56
+ TwitterCldr::Resources::ImportResolver.new(klasses, allow_missing_dependencies: true).import
57
57
  end
58
58
 
59
59
  task :add_locale, :locale do |_, args|
@@ -141,6 +141,11 @@ namespace :update do
141
141
  TwitterCldr::Resources::CasefolderClassGenerator.new.import
142
142
  end
143
143
 
144
+ desc 'Import parent locale data'
145
+ task :parent_locales do
146
+ TwitterCldr::Resources::ParentLocalesImporter.new.import
147
+ end
148
+
144
149
  desc 'Import postal codes resource'
145
150
  task :postal_codes do
146
151
  TwitterCldr::Resources::PostalCodesImporter.new.import
@@ -112,9 +112,28 @@ module TwitterCldr
112
112
  end
113
113
 
114
114
  def convert_locale(locale)
115
- locale = locale.to_sym if locale.respond_to?(:to_sym)
115
+ locale = normalize_locale(locale)
116
+
117
+ unless supported_locale?(locale)
118
+ loc = TwitterCldr::Shared::Locale.parse(locale)
119
+ max_supported = loc.max_supported
120
+
121
+ if loc.dasherized == 'und' || !max_supported
122
+ return locale
123
+ end
124
+
125
+ locale = normalize_locale(max_supported.dasherized)
126
+ end
127
+
128
+ locale
129
+ end
130
+
131
+ def normalize_locale(locale)
132
+ return locale unless (locale.is_a?(String) || locale.is_a?(Symbol))
133
+
134
+ locale = locale.to_sym
116
135
  locale = lowercase_locales_map.fetch(locale, locale)
117
- TWITTER_LOCALE_MAP.fetch(locale, locale)
136
+ TWITTER_LOCALE_MAP.fetch(locale.downcase, locale)
118
137
  end
119
138
 
120
139
  def twitter_locale(locale)
@@ -127,7 +146,7 @@ module TwitterCldr
127
146
  end
128
147
 
129
148
  def supported_locale?(locale)
130
- !!locale && supported_locales.include?(convert_locale(locale))
149
+ !!locale && supported_locales.include?(normalize_locale(locale))
131
150
  end
132
151
 
133
152
  protected
@@ -54,7 +54,7 @@ module TwitterCldr
54
54
  result = result.localize.to_reordered_s(direction: :RTL)
55
55
  end
56
56
 
57
- result.gsub!(/(\d+)/) { elements[$1.to_i] }
57
+ result.gsub!(/(\d)/) { elements[$1.to_i] }
58
58
  result
59
59
  else
60
60
  elements[0] || ""
@@ -20,6 +20,7 @@ module TwitterCldr
20
20
  autoload :Loader, 'twitter_cldr/resources/loader'
21
21
  autoload :LocalesResourcesImporter, 'twitter_cldr/resources/locales_resources_importer'
22
22
  autoload :NumberFormatsImporter, 'twitter_cldr/resources/number_formats_importer'
23
+ autoload :ParentLocalesImporter, 'twitter_cldr/resources/parent_locales_importer'
23
24
  autoload :PostalCodesImporter, 'twitter_cldr/resources/postal_codes_importer'
24
25
  autoload :Properties, 'twitter_cldr/resources/properties'
25
26
  autoload :SegmentDictionariesImporter, 'twitter_cldr/resources/segment_dictionaries_importer'
@@ -59,6 +60,7 @@ module TwitterCldr
59
60
  LanguageCodesImporter,
60
61
  LocalesResourcesImporter,
61
62
  NumberFormatsImporter,
63
+ ParentLocalesImporter,
62
64
  PostalCodesImporter,
63
65
  RbnfTestImporter,
64
66
  SegmentDictionariesImporter,
@@ -32,7 +32,7 @@ module TwitterCldr
32
32
  end
33
33
 
34
34
  def symbol_data
35
- doc = Nokogiri::HTML(open(URL).read)
35
+ doc = Nokogiri::HTML(URI.open(URL).read)
36
36
  rows = doc.css('.currencySymblTable tr')
37
37
 
38
38
  rows[1..-1].each_with_object({}) do |row, ret|
@@ -46,11 +46,13 @@ module TwitterCldr
46
46
  end
47
47
 
48
48
  next if line.empty?
49
- next if line.start_with?('%') # ignore comments
49
+
50
+ # ignore comments
51
+ next if line.start_with?('%') || line.start_with?('#')
50
52
 
51
53
  if line =~ /\A[A-Z]+/ # capitals
52
54
  option, value = line.split(' ')
53
- options[option.downcase.to_sym] = value.to_i
55
+ options[option.downcase.to_sym] = value
54
56
  next
55
57
  end
56
58
 
@@ -0,0 +1,54 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2012 Twitter, Inc
4
+ # http://www.apache.org/licenses/LICENSE-2.0
5
+
6
+ require 'nokogiri'
7
+
8
+ module TwitterCldr
9
+ module Resources
10
+
11
+ class ParentLocalesImporter < Importer
12
+
13
+ requirement :cldr, Versions.cldr_version
14
+ output_path 'shared'
15
+ ruby_engine :mri
16
+
17
+ private
18
+
19
+ def execute
20
+ output_file = File.join(output_path, 'parent_locales.yml')
21
+ File.write(output_file, YAML.dump(parent_locales))
22
+ end
23
+
24
+ def parent_locales
25
+ @parent_locales ||= supplemental_data.xpath('//parentLocales/parentLocale').each_with_object({}) do |node, ret|
26
+ parent = node.attr('parent')
27
+ locales = node.attr('locales').split(' ')
28
+
29
+ locales.each do |locale|
30
+ ret[locale] = parent
31
+ end
32
+ end
33
+ end
34
+
35
+ def output_path
36
+ params.fetch(:output_path)
37
+ end
38
+
39
+ def supplemental_data
40
+ @supplemental_data ||= Nokogiri.XML(
41
+ File.read(
42
+ File.join(
43
+ requirements[:cldr].common_path,
44
+ 'supplemental',
45
+ 'supplementalData.xml'
46
+ )
47
+ )
48
+ )
49
+ end
50
+
51
+ end
52
+
53
+ end
54
+ end
@@ -8,16 +8,16 @@ module TwitterCldr
8
8
  module Properties
9
9
 
10
10
  class EmojiImporter < PropertyImporter
11
- DATA_FILE = 'emoji-data.txt'
11
+ DATA_FILE = 'ucd/emoji/emoji-data.txt'
12
12
 
13
- requirement :emoji, Versions.emoji_version, [DATA_FILE]
13
+ requirement :unicode, Versions.unicode_version, [DATA_FILE]
14
14
  output_path 'unicode_data/properties'
15
15
  ruby_engine :mri
16
16
 
17
17
  private
18
18
 
19
19
  def source_path
20
- requirements[:emoji].source_path_for(DATA_FILE)
20
+ requirements[:unicode].source_path_for(DATA_FILE)
21
21
  end
22
22
 
23
23
  def load
@@ -46,7 +46,7 @@ module TwitterCldr
46
46
  source_path = source_path_for(file)
47
47
  FileUtils.mkdir_p(File.dirname(source_path))
48
48
  remote_url = File.join(url % { version: version }, file)
49
- open(source_path, 'wb') { |file| file << open(remote_url).read }
49
+ File.open(source_path, 'wb') { |file| file << URI.open(remote_url).read }
50
50
  end
51
51
  end
52
52
 
@@ -21,6 +21,7 @@ module TwitterCldr
21
21
  ]
22
22
 
23
23
  output_path File.join(*%w(shared segments dictionaries))
24
+ requirement :dependency, TwitterCldr::Resources::property_importer_classes
24
25
  ruby_engine :mri
25
26
 
26
27
  def execute
@@ -35,7 +36,7 @@ module TwitterCldr
35
36
 
36
37
  def import_dictionary_file(dictionary_file)
37
38
  source_url = url_for(dictionary_file)
38
- source = open(source_url).read
39
+ source = URI.open(source_url).read
39
40
  lines = source.split("\n")
40
41
  trie = TwitterCldr::Utils::Trie.new
41
42
  space_regexp = TwitterCldr::Shared::UnicodeRegex.compile('\A[[:Z:][:C:]]+').to_regexp
@@ -8,7 +8,7 @@ module TwitterCldr
8
8
  class Casefolder
9
9
  class << self
10
10
 
11
- CASEFOLDING_SOURCE_C = "\101|\102|\103|\104|\105|\106|\107|\110|\111|\112|\113|\114|\115|\116|\117|\120|\121|\122|\123|\124|\125|\126|\127|\130|\131|\132|\302\265|\303\200|\303\201|\303\202|\303\203|\303\204|\303\205|\303\206|\303\207|\303\210|\303\211|\303\212|\303\213|\303\214|\303\215|\303\216|\303\217|\303\220|\303\221|\303\222|\303\223|\303\224|\303\225|\303\226|\303\230|\303\231|\303\232|\303\233|\303\234|\303\235|\303\236|\304\200|\304\202|\304\204|\304\206|\304\210|\304\212|\304\214|\304\216|\304\220|\304\222|\304\224|\304\226|\304\230|\304\232|\304\234|\304\236|\304\240|\304\242|\304\244|\304\246|\304\250|\304\252|\304\254|\304\256|\304\262|\304\264|\304\266|\304\271|\304\273|\304\275|\304\277|\305\201|\305\203|\305\205|\305\207|\305\212|\305\214|\305\216|\305\220|\305\222|\305\224|\305\226|\305\230|\305\232|\305\234|\305\236|\305\240|\305\242|\305\244|\305\246|\305\250|\305\252|\305\254|\305\256|\305\260|\305\262|\305\264|\305\266|\305\270|\305\271|\305\273|\305\275|\305\277|\306\201|\306\202|\306\204|\306\206|\306\207|\306\211|\306\212|\306\213|\306\216|\306\217|\306\220|\306\221|\306\223|\306\224|\306\226|\306\227|\306\230|\306\234|\306\235|\306\237|\306\240|\306\242|\306\244|\306\246|\306\247|\306\251|\306\254|\306\256|\306\257|\306\261|\306\262|\306\263|\306\265|\306\267|\306\270|\306\274|\307\204|\307\205|\307\207|\307\210|\307\212|\307\213|\307\215|\307\217|\307\221|\307\223|\307\225|\307\227|\307\231|\307\233|\307\236|\307\240|\307\242|\307\244|\307\246|\307\250|\307\252|\307\254|\307\256|\307\261|\307\262|\307\264|\307\266|\307\267|\307\270|\307\272|\307\274|\307\276|\310\200|\310\202|\310\204|\310\206|\310\210|\310\212|\310\214|\310\216|\310\220|\310\222|\310\224|\310\226|\310\230|\310\232|\310\234|\310\236|\310\240|\310\242|\310\244|\310\246|\310\250|\310\252|\310\254|\310\256|\310\260|\310\262|\310\272|\310\273|\310\275|\310\276|\311\201|\311\203|\311\204|\311\205|\311\206|\311\210|\311\212|\311\214|\311\216|\315\205|\315\260|\315\262|\315\266|\315\277|\316\206|\316\210|\316\211|\316\212|\316\214|\316\216|\316\217|\316\221|\316\222|\316\223|\316\224|\316\225|\316\226|\316\227|\316\230|\316\231|\316\232|\316\233|\316\234|\316\235|\316\236|\316\237|\316\240|\316\241|\316\243|\316\244|\316\245|\316\246|\316\247|\316\250|\316\251|\316\252|\316\253|\317\202|\317\217|\317\220|\317\221|\317\225|\317\226|\317\230|\317\232|\317\234|\317\236|\317\240|\317\242|\317\244|\317\246|\317\250|\317\252|\317\254|\317\256|\317\260|\317\261|\317\264|\317\265|\317\267|\317\271|\317\272|\317\275|\317\276|\317\277|\320\200|\320\201|\320\202|\320\203|\320\204|\320\205|\320\206|\320\207|\320\210|\320\211|\320\212|\320\213|\320\214|\320\215|\320\216|\320\217|\320\220|\320\221|\320\222|\320\223|\320\224|\320\225|\320\226|\320\227|\320\230|\320\231|\320\232|\320\233|\320\234|\320\235|\320\236|\320\237|\320\240|\320\241|\320\242|\320\243|\320\244|\320\245|\320\246|\320\247|\320\250|\320\251|\320\252|\320\253|\320\254|\320\255|\320\256|\320\257|\321\240|\321\242|\321\244|\321\246|\321\250|\321\252|\321\254|\321\256|\321\260|\321\262|\321\264|\321\266|\321\270|\321\272|\321\274|\321\276|\322\200|\322\212|\322\214|\322\216|\322\220|\322\222|\322\224|\322\226|\322\230|\322\232|\322\234|\322\236|\322\240|\322\242|\322\244|\322\246|\322\250|\322\252|\322\254|\322\256|\322\260|\322\262|\322\264|\322\266|\322\270|\322\272|\322\274|\322\276|\323\200|\323\201|\323\203|\323\205|\323\207|\323\211|\323\213|\323\215|\323\220|\323\222|\323\224|\323\226|\323\230|\323\232|\323\234|\323\236|\323\240|\323\242|\323\244|\323\246|\323\250|\323\252|\323\254|\323\256|\323\260|\323\262|\323\264|\323\266|\323\270|\323\272|\323\274|\323\276|\324\200|\324\202|\324\204|\324\206|\324\210|\324\212|\324\214|\324\216|\324\220|\324\222|\324\224|\324\226|\324\230|\324\232|\324\234|\324\236|\324\240|\324\242|\324\244|\324\246|\324\250|\324\252|\324\254|\324\256|\324\261|\324\262|\324\263|\324\264|\324\265|\324\266|\324\267|\324\270|\324\271|\324\272|\324\273|\324\274|\324\275|\324\276|\324\277|\325\200|\325\201|\325\202|\325\203|\325\204|\325\205|\325\206|\325\207|\325\210|\325\211|\325\212|\325\213|\325\214|\325\215|\325\216|\325\217|\325\220|\325\221|\325\222|\325\223|\325\224|\325\225|\325\226|\341\202\240|\341\202\241|\341\202\242|\341\202\243|\341\202\244|\341\202\245|\341\202\246|\341\202\247|\341\202\250|\341\202\251|\341\202\252|\341\202\253|\341\202\254|\341\202\255|\341\202\256|\341\202\257|\341\202\260|\341\202\261|\341\202\262|\341\202\263|\341\202\264|\341\202\265|\341\202\266|\341\202\267|\341\202\270|\341\202\271|\341\202\272|\341\202\273|\341\202\274|\341\202\275|\341\202\276|\341\202\277|\341\203\200|\341\203\201|\341\203\202|\341\203\203|\341\203\204|\341\203\205|\341\203\207|\341\203\215|\341\217\270|\341\217\271|\341\217\272|\341\217\273|\341\217\274|\341\217\275|\341\262\200|\341\262\201|\341\262\202|\341\262\203|\341\262\204|\341\262\205|\341\262\206|\341\262\207|\341\262\210|\341\262\220|\341\262\221|\341\262\222|\341\262\223|\341\262\224|\341\262\225|\341\262\226|\341\262\227|\341\262\230|\341\262\231|\341\262\232|\341\262\233|\341\262\234|\341\262\235|\341\262\236|\341\262\237|\341\262\240|\341\262\241|\341\262\242|\341\262\243|\341\262\244|\341\262\245|\341\262\246|\341\262\247|\341\262\250|\341\262\251|\341\262\252|\341\262\253|\341\262\254|\341\262\255|\341\262\256|\341\262\257|\341\262\260|\341\262\261|\341\262\262|\341\262\263|\341\262\264|\341\262\265|\341\262\266|\341\262\267|\341\262\270|\341\262\271|\341\262\272|\341\262\275|\341\262\276|\341\262\277|\341\270\200|\341\270\202|\341\270\204|\341\270\206|\341\270\210|\341\270\212|\341\270\214|\341\270\216|\341\270\220|\341\270\222|\341\270\224|\341\270\226|\341\270\230|\341\270\232|\341\270\234|\341\270\236|\341\270\240|\341\270\242|\341\270\244|\341\270\246|\341\270\250|\341\270\252|\341\270\254|\341\270\256|\341\270\260|\341\270\262|\341\270\264|\341\270\266|\341\270\270|\341\270\272|\341\270\274|\341\270\276|\341\271\200|\341\271\202|\341\271\204|\341\271\206|\341\271\210|\341\271\212|\341\271\214|\341\271\216|\341\271\220|\341\271\222|\341\271\224|\341\271\226|\341\271\230|\341\271\232|\341\271\234|\341\271\236|\341\271\240|\341\271\242|\341\271\244|\341\271\246|\341\271\250|\341\271\252|\341\271\254|\341\271\256|\341\271\260|\341\271\262|\341\271\264|\341\271\266|\341\271\270|\341\271\272|\341\271\274|\341\271\276|\341\272\200|\341\272\202|\341\272\204|\341\272\206|\341\272\210|\341\272\212|\341\272\214|\341\272\216|\341\272\220|\341\272\222|\341\272\224|\341\272\233|\341\272\240|\341\272\242|\341\272\244|\341\272\246|\341\272\250|\341\272\252|\341\272\254|\341\272\256|\341\272\260|\341\272\262|\341\272\264|\341\272\266|\341\272\270|\341\272\272|\341\272\274|\341\272\276|\341\273\200|\341\273\202|\341\273\204|\341\273\206|\341\273\210|\341\273\212|\341\273\214|\341\273\216|\341\273\220|\341\273\222|\341\273\224|\341\273\226|\341\273\230|\341\273\232|\341\273\234|\341\273\236|\341\273\240|\341\273\242|\341\273\244|\341\273\246|\341\273\250|\341\273\252|\341\273\254|\341\273\256|\341\273\260|\341\273\262|\341\273\264|\341\273\266|\341\273\270|\341\273\272|\341\273\274|\341\273\276|\341\274\210|\341\274\211|\341\274\212|\341\274\213|\341\274\214|\341\274\215|\341\274\216|\341\274\217|\341\274\230|\341\274\231|\341\274\232|\341\274\233|\341\274\234|\341\274\235|\341\274\250|\341\274\251|\341\274\252|\341\274\253|\341\274\254|\341\274\255|\341\274\256|\341\274\257|\341\274\270|\341\274\271|\341\274\272|\341\274\273|\341\274\274|\341\274\275|\341\274\276|\341\274\277|\341\275\210|\341\275\211|\341\275\212|\341\275\213|\341\275\214|\341\275\215|\341\275\231|\341\275\233|\341\275\235|\341\275\237|\341\275\250|\341\275\251|\341\275\252|\341\275\253|\341\275\254|\341\275\255|\341\275\256|\341\275\257|\341\276\270|\341\276\271|\341\276\272|\341\276\273|\341\276\276|\341\277\210|\341\277\211|\341\277\212|\341\277\213|\341\277\230|\341\277\231|\341\277\232|\341\277\233|\341\277\250|\341\277\251|\341\277\252|\341\277\253|\341\277\254|\341\277\270|\341\277\271|\341\277\272|\341\277\273|\342\204\246|\342\204\252|\342\204\253|\342\204\262|\342\205\240|\342\205\241|\342\205\242|\342\205\243|\342\205\244|\342\205\245|\342\205\246|\342\205\247|\342\205\250|\342\205\251|\342\205\252|\342\205\253|\342\205\254|\342\205\255|\342\205\256|\342\205\257|\342\206\203|\342\222\266|\342\222\267|\342\222\270|\342\222\271|\342\222\272|\342\222\273|\342\222\274|\342\222\275|\342\222\276|\342\222\277|\342\223\200|\342\223\201|\342\223\202|\342\223\203|\342\223\204|\342\223\205|\342\223\206|\342\223\207|\342\223\210|\342\223\211|\342\223\212|\342\223\213|\342\223\214|\342\223\215|\342\223\216|\342\223\217|\342\260\200|\342\260\201|\342\260\202|\342\260\203|\342\260\204|\342\260\205|\342\260\206|\342\260\207|\342\260\210|\342\260\211|\342\260\212|\342\260\213|\342\260\214|\342\260\215|\342\260\216|\342\260\217|\342\260\220|\342\260\221|\342\260\222|\342\260\223|\342\260\224|\342\260\225|\342\260\226|\342\260\227|\342\260\230|\342\260\231|\342\260\232|\342\260\233|\342\260\234|\342\260\235|\342\260\236|\342\260\237|\342\260\240|\342\260\241|\342\260\242|\342\260\243|\342\260\244|\342\260\245|\342\260\246|\342\260\247|\342\260\250|\342\260\251|\342\260\252|\342\260\253|\342\260\254|\342\260\255|\342\260\256|\342\261\240|\342\261\242|\342\261\243|\342\261\244|\342\261\247|\342\261\251|\342\261\253|\342\261\255|\342\261\256|\342\261\257|\342\261\260|\342\261\262|\342\261\265|\342\261\276|\342\261\277|\342\262\200|\342\262\202|\342\262\204|\342\262\206|\342\262\210|\342\262\212|\342\262\214|\342\262\216|\342\262\220|\342\262\222|\342\262\224|\342\262\226|\342\262\230|\342\262\232|\342\262\234|\342\262\236|\342\262\240|\342\262\242|\342\262\244|\342\262\246|\342\262\250|\342\262\252|\342\262\254|\342\262\256|\342\262\260|\342\262\262|\342\262\264|\342\262\266|\342\262\270|\342\262\272|\342\262\274|\342\262\276|\342\263\200|\342\263\202|\342\263\204|\342\263\206|\342\263\210|\342\263\212|\342\263\214|\342\263\216|\342\263\220|\342\263\222|\342\263\224|\342\263\226|\342\263\230|\342\263\232|\342\263\234|\342\263\236|\342\263\240|\342\263\242|\342\263\253|\342\263\255|\342\263\262|\352\231\200|\352\231\202|\352\231\204|\352\231\206|\352\231\210|\352\231\212|\352\231\214|\352\231\216|\352\231\220|\352\231\222|\352\231\224|\352\231\226|\352\231\230|\352\231\232|\352\231\234|\352\231\236|\352\231\240|\352\231\242|\352\231\244|\352\231\246|\352\231\250|\352\231\252|\352\231\254|\352\232\200|\352\232\202|\352\232\204|\352\232\206|\352\232\210|\352\232\212|\352\232\214|\352\232\216|\352\232\220|\352\232\222|\352\232\224|\352\232\226|\352\232\230|\352\232\232|\352\234\242|\352\234\244|\352\234\246|\352\234\250|\352\234\252|\352\234\254|\352\234\256|\352\234\262|\352\234\264|\352\234\266|\352\234\270|\352\234\272|\352\234\274|\352\234\276|\352\235\200|\352\235\202|\352\235\204|\352\235\206|\352\235\210|\352\235\212|\352\235\214|\352\235\216|\352\235\220|\352\235\222|\352\235\224|\352\235\226|\352\235\230|\352\235\232|\352\235\234|\352\235\236|\352\235\240|\352\235\242|\352\235\244|\352\235\246|\352\235\250|\352\235\252|\352\235\254|\352\235\256|\352\235\271|\352\235\273|\352\235\275|\352\235\276|\352\236\200|\352\236\202|\352\236\204|\352\236\206|\352\236\213|\352\236\215|\352\236\220|\352\236\222|\352\236\226|\352\236\230|\352\236\232|\352\236\234|\352\236\236|\352\236\240|\352\236\242|\352\236\244|\352\236\246|\352\236\250|\352\236\252|\352\236\253|\352\236\254|\352\236\255|\352\236\256|\352\236\260|\352\236\261|\352\236\262|\352\236\263|\352\236\264|\352\236\266|\352\236\270|\352\236\272|\352\236\274|\352\236\276|\352\237\202|\352\237\204|\352\237\205|\352\237\206|\352\255\260|\352\255\261|\352\255\262|\352\255\263|\352\255\264|\352\255\265|\352\255\266|\352\255\267|\352\255\270|\352\255\271|\352\255\272|\352\255\273|\352\255\274|\352\255\275|\352\255\276|\352\255\277|\352\256\200|\352\256\201|\352\256\202|\352\256\203|\352\256\204|\352\256\205|\352\256\206|\352\256\207|\352\256\210|\352\256\211|\352\256\212|\352\256\213|\352\256\214|\352\256\215|\352\256\216|\352\256\217|\352\256\220|\352\256\221|\352\256\222|\352\256\223|\352\256\224|\352\256\225|\352\256\226|\352\256\227|\352\256\230|\352\256\231|\352\256\232|\352\256\233|\352\256\234|\352\256\235|\352\256\236|\352\256\237|\352\256\240|\352\256\241|\352\256\242|\352\256\243|\352\256\244|\352\256\245|\352\256\246|\352\256\247|\352\256\250|\352\256\251|\352\256\252|\352\256\253|\352\256\254|\352\256\255|\352\256\256|\352\256\257|\352\256\260|\352\256\261|\352\256\262|\352\256\263|\352\256\264|\352\256\265|\352\256\266|\352\256\267|\352\256\270|\352\256\271|\352\256\272|\352\256\273|\352\256\274|\352\256\275|\352\256\276|\352\256\277|\357\274\241|\357\274\242|\357\274\243|\357\274\244|\357\274\245|\357\274\246|\357\274\247|\357\274\250|\357\274\251|\357\274\252|\357\274\253|\357\274\254|\357\274\255|\357\274\256|\357\274\257|\357\274\260|\357\274\261|\357\274\262|\357\274\263|\357\274\264|\357\274\265|\357\274\266|\357\274\267|\357\274\270|\357\274\271|\357\274\272|\360\220\220\200|\360\220\220\201|\360\220\220\202|\360\220\220\203|\360\220\220\204|\360\220\220\205|\360\220\220\206|\360\220\220\207|\360\220\220\210|\360\220\220\211|\360\220\220\212|\360\220\220\213|\360\220\220\214|\360\220\220\215|\360\220\220\216|\360\220\220\217|\360\220\220\220|\360\220\220\221|\360\220\220\222|\360\220\220\223|\360\220\220\224|\360\220\220\225|\360\220\220\226|\360\220\220\227|\360\220\220\230|\360\220\220\231|\360\220\220\232|\360\220\220\233|\360\220\220\234|\360\220\220\235|\360\220\220\236|\360\220\220\237|\360\220\220\240|\360\220\220\241|\360\220\220\242|\360\220\220\243|\360\220\220\244|\360\220\220\245|\360\220\220\246|\360\220\220\247|\360\220\222\260|\360\220\222\261|\360\220\222\262|\360\220\222\263|\360\220\222\264|\360\220\222\265|\360\220\222\266|\360\220\222\267|\360\220\222\270|\360\220\222\271|\360\220\222\272|\360\220\222\273|\360\220\222\274|\360\220\222\275|\360\220\222\276|\360\220\222\277|\360\220\223\200|\360\220\223\201|\360\220\223\202|\360\220\223\203|\360\220\223\204|\360\220\223\205|\360\220\223\206|\360\220\223\207|\360\220\223\210|\360\220\223\211|\360\220\223\212|\360\220\223\213|\360\220\223\214|\360\220\223\215|\360\220\223\216|\360\220\223\217|\360\220\223\220|\360\220\223\221|\360\220\223\222|\360\220\223\223|\360\220\262\200|\360\220\262\201|\360\220\262\202|\360\220\262\203|\360\220\262\204|\360\220\262\205|\360\220\262\206|\360\220\262\207|\360\220\262\210|\360\220\262\211|\360\220\262\212|\360\220\262\213|\360\220\262\214|\360\220\262\215|\360\220\262\216|\360\220\262\217|\360\220\262\220|\360\220\262\221|\360\220\262\222|\360\220\262\223|\360\220\262\224|\360\220\262\225|\360\220\262\226|\360\220\262\227|\360\220\262\230|\360\220\262\231|\360\220\262\232|\360\220\262\233|\360\220\262\234|\360\220\262\235|\360\220\262\236|\360\220\262\237|\360\220\262\240|\360\220\262\241|\360\220\262\242|\360\220\262\243|\360\220\262\244|\360\220\262\245|\360\220\262\246|\360\220\262\247|\360\220\262\250|\360\220\262\251|\360\220\262\252|\360\220\262\253|\360\220\262\254|\360\220\262\255|\360\220\262\256|\360\220\262\257|\360\220\262\260|\360\220\262\261|\360\220\262\262|\360\221\242\240|\360\221\242\241|\360\221\242\242|\360\221\242\243|\360\221\242\244|\360\221\242\245|\360\221\242\246|\360\221\242\247|\360\221\242\250|\360\221\242\251|\360\221\242\252|\360\221\242\253|\360\221\242\254|\360\221\242\255|\360\221\242\256|\360\221\242\257|\360\221\242\260|\360\221\242\261|\360\221\242\262|\360\221\242\263|\360\221\242\264|\360\221\242\265|\360\221\242\266|\360\221\242\267|\360\221\242\270|\360\221\242\271|\360\221\242\272|\360\221\242\273|\360\221\242\274|\360\221\242\275|\360\221\242\276|\360\221\242\277|\360\226\271\200|\360\226\271\201|\360\226\271\202|\360\226\271\203|\360\226\271\204|\360\226\271\205|\360\226\271\206|\360\226\271\207|\360\226\271\210|\360\226\271\211|\360\226\271\212|\360\226\271\213|\360\226\271\214|\360\226\271\215|\360\226\271\216|\360\226\271\217|\360\226\271\220|\360\226\271\221|\360\226\271\222|\360\226\271\223|\360\226\271\224|\360\226\271\225|\360\226\271\226|\360\226\271\227|\360\226\271\230|\360\226\271\231|\360\226\271\232|\360\226\271\233|\360\226\271\234|\360\226\271\235|\360\226\271\236|\360\226\271\237|\360\236\244\200|\360\236\244\201|\360\236\244\202|\360\236\244\203|\360\236\244\204|\360\236\244\205|\360\236\244\206|\360\236\244\207|\360\236\244\210|\360\236\244\211|\360\236\244\212|\360\236\244\213|\360\236\244\214|\360\236\244\215|\360\236\244\216|\360\236\244\217|\360\236\244\220|\360\236\244\221|\360\236\244\222|\360\236\244\223|\360\236\244\224|\360\236\244\225|\360\236\244\226|\360\236\244\227|\360\236\244\230|\360\236\244\231|\360\236\244\232|\360\236\244\233|\360\236\244\234|\360\236\244\235|\360\236\244\236|\360\236\244\237|\360\236\244\240|\360\236\244\241"
11
+ CASEFOLDING_SOURCE_C = "\101|\102|\103|\104|\105|\106|\107|\110|\111|\112|\113|\114|\115|\116|\117|\120|\121|\122|\123|\124|\125|\126|\127|\130|\131|\132|\302\265|\303\200|\303\201|\303\202|\303\203|\303\204|\303\205|\303\206|\303\207|\303\210|\303\211|\303\212|\303\213|\303\214|\303\215|\303\216|\303\217|\303\220|\303\221|\303\222|\303\223|\303\224|\303\225|\303\226|\303\230|\303\231|\303\232|\303\233|\303\234|\303\235|\303\236|\304\200|\304\202|\304\204|\304\206|\304\210|\304\212|\304\214|\304\216|\304\220|\304\222|\304\224|\304\226|\304\230|\304\232|\304\234|\304\236|\304\240|\304\242|\304\244|\304\246|\304\250|\304\252|\304\254|\304\256|\304\262|\304\264|\304\266|\304\271|\304\273|\304\275|\304\277|\305\201|\305\203|\305\205|\305\207|\305\212|\305\214|\305\216|\305\220|\305\222|\305\224|\305\226|\305\230|\305\232|\305\234|\305\236|\305\240|\305\242|\305\244|\305\246|\305\250|\305\252|\305\254|\305\256|\305\260|\305\262|\305\264|\305\266|\305\270|\305\271|\305\273|\305\275|\305\277|\306\201|\306\202|\306\204|\306\206|\306\207|\306\211|\306\212|\306\213|\306\216|\306\217|\306\220|\306\221|\306\223|\306\224|\306\226|\306\227|\306\230|\306\234|\306\235|\306\237|\306\240|\306\242|\306\244|\306\246|\306\247|\306\251|\306\254|\306\256|\306\257|\306\261|\306\262|\306\263|\306\265|\306\267|\306\270|\306\274|\307\204|\307\205|\307\207|\307\210|\307\212|\307\213|\307\215|\307\217|\307\221|\307\223|\307\225|\307\227|\307\231|\307\233|\307\236|\307\240|\307\242|\307\244|\307\246|\307\250|\307\252|\307\254|\307\256|\307\261|\307\262|\307\264|\307\266|\307\267|\307\270|\307\272|\307\274|\307\276|\310\200|\310\202|\310\204|\310\206|\310\210|\310\212|\310\214|\310\216|\310\220|\310\222|\310\224|\310\226|\310\230|\310\232|\310\234|\310\236|\310\240|\310\242|\310\244|\310\246|\310\250|\310\252|\310\254|\310\256|\310\260|\310\262|\310\272|\310\273|\310\275|\310\276|\311\201|\311\203|\311\204|\311\205|\311\206|\311\210|\311\212|\311\214|\311\216|\315\205|\315\260|\315\262|\315\266|\315\277|\316\206|\316\210|\316\211|\316\212|\316\214|\316\216|\316\217|\316\221|\316\222|\316\223|\316\224|\316\225|\316\226|\316\227|\316\230|\316\231|\316\232|\316\233|\316\234|\316\235|\316\236|\316\237|\316\240|\316\241|\316\243|\316\244|\316\245|\316\246|\316\247|\316\250|\316\251|\316\252|\316\253|\317\202|\317\217|\317\220|\317\221|\317\225|\317\226|\317\230|\317\232|\317\234|\317\236|\317\240|\317\242|\317\244|\317\246|\317\250|\317\252|\317\254|\317\256|\317\260|\317\261|\317\264|\317\265|\317\267|\317\271|\317\272|\317\275|\317\276|\317\277|\320\200|\320\201|\320\202|\320\203|\320\204|\320\205|\320\206|\320\207|\320\210|\320\211|\320\212|\320\213|\320\214|\320\215|\320\216|\320\217|\320\220|\320\221|\320\222|\320\223|\320\224|\320\225|\320\226|\320\227|\320\230|\320\231|\320\232|\320\233|\320\234|\320\235|\320\236|\320\237|\320\240|\320\241|\320\242|\320\243|\320\244|\320\245|\320\246|\320\247|\320\250|\320\251|\320\252|\320\253|\320\254|\320\255|\320\256|\320\257|\321\240|\321\242|\321\244|\321\246|\321\250|\321\252|\321\254|\321\256|\321\260|\321\262|\321\264|\321\266|\321\270|\321\272|\321\274|\321\276|\322\200|\322\212|\322\214|\322\216|\322\220|\322\222|\322\224|\322\226|\322\230|\322\232|\322\234|\322\236|\322\240|\322\242|\322\244|\322\246|\322\250|\322\252|\322\254|\322\256|\322\260|\322\262|\322\264|\322\266|\322\270|\322\272|\322\274|\322\276|\323\200|\323\201|\323\203|\323\205|\323\207|\323\211|\323\213|\323\215|\323\220|\323\222|\323\224|\323\226|\323\230|\323\232|\323\234|\323\236|\323\240|\323\242|\323\244|\323\246|\323\250|\323\252|\323\254|\323\256|\323\260|\323\262|\323\264|\323\266|\323\270|\323\272|\323\274|\323\276|\324\200|\324\202|\324\204|\324\206|\324\210|\324\212|\324\214|\324\216|\324\220|\324\222|\324\224|\324\226|\324\230|\324\232|\324\234|\324\236|\324\240|\324\242|\324\244|\324\246|\324\250|\324\252|\324\254|\324\256|\324\261|\324\262|\324\263|\324\264|\324\265|\324\266|\324\267|\324\270|\324\271|\324\272|\324\273|\324\274|\324\275|\324\276|\324\277|\325\200|\325\201|\325\202|\325\203|\325\204|\325\205|\325\206|\325\207|\325\210|\325\211|\325\212|\325\213|\325\214|\325\215|\325\216|\325\217|\325\220|\325\221|\325\222|\325\223|\325\224|\325\225|\325\226|\341\202\240|\341\202\241|\341\202\242|\341\202\243|\341\202\244|\341\202\245|\341\202\246|\341\202\247|\341\202\250|\341\202\251|\341\202\252|\341\202\253|\341\202\254|\341\202\255|\341\202\256|\341\202\257|\341\202\260|\341\202\261|\341\202\262|\341\202\263|\341\202\264|\341\202\265|\341\202\266|\341\202\267|\341\202\270|\341\202\271|\341\202\272|\341\202\273|\341\202\274|\341\202\275|\341\202\276|\341\202\277|\341\203\200|\341\203\201|\341\203\202|\341\203\203|\341\203\204|\341\203\205|\341\203\207|\341\203\215|\341\217\270|\341\217\271|\341\217\272|\341\217\273|\341\217\274|\341\217\275|\341\262\200|\341\262\201|\341\262\202|\341\262\203|\341\262\204|\341\262\205|\341\262\206|\341\262\207|\341\262\210|\341\262\220|\341\262\221|\341\262\222|\341\262\223|\341\262\224|\341\262\225|\341\262\226|\341\262\227|\341\262\230|\341\262\231|\341\262\232|\341\262\233|\341\262\234|\341\262\235|\341\262\236|\341\262\237|\341\262\240|\341\262\241|\341\262\242|\341\262\243|\341\262\244|\341\262\245|\341\262\246|\341\262\247|\341\262\250|\341\262\251|\341\262\252|\341\262\253|\341\262\254|\341\262\255|\341\262\256|\341\262\257|\341\262\260|\341\262\261|\341\262\262|\341\262\263|\341\262\264|\341\262\265|\341\262\266|\341\262\267|\341\262\270|\341\262\271|\341\262\272|\341\262\275|\341\262\276|\341\262\277|\341\270\200|\341\270\202|\341\270\204|\341\270\206|\341\270\210|\341\270\212|\341\270\214|\341\270\216|\341\270\220|\341\270\222|\341\270\224|\341\270\226|\341\270\230|\341\270\232|\341\270\234|\341\270\236|\341\270\240|\341\270\242|\341\270\244|\341\270\246|\341\270\250|\341\270\252|\341\270\254|\341\270\256|\341\270\260|\341\270\262|\341\270\264|\341\270\266|\341\270\270|\341\270\272|\341\270\274|\341\270\276|\341\271\200|\341\271\202|\341\271\204|\341\271\206|\341\271\210|\341\271\212|\341\271\214|\341\271\216|\341\271\220|\341\271\222|\341\271\224|\341\271\226|\341\271\230|\341\271\232|\341\271\234|\341\271\236|\341\271\240|\341\271\242|\341\271\244|\341\271\246|\341\271\250|\341\271\252|\341\271\254|\341\271\256|\341\271\260|\341\271\262|\341\271\264|\341\271\266|\341\271\270|\341\271\272|\341\271\274|\341\271\276|\341\272\200|\341\272\202|\341\272\204|\341\272\206|\341\272\210|\341\272\212|\341\272\214|\341\272\216|\341\272\220|\341\272\222|\341\272\224|\341\272\233|\341\272\240|\341\272\242|\341\272\244|\341\272\246|\341\272\250|\341\272\252|\341\272\254|\341\272\256|\341\272\260|\341\272\262|\341\272\264|\341\272\266|\341\272\270|\341\272\272|\341\272\274|\341\272\276|\341\273\200|\341\273\202|\341\273\204|\341\273\206|\341\273\210|\341\273\212|\341\273\214|\341\273\216|\341\273\220|\341\273\222|\341\273\224|\341\273\226|\341\273\230|\341\273\232|\341\273\234|\341\273\236|\341\273\240|\341\273\242|\341\273\244|\341\273\246|\341\273\250|\341\273\252|\341\273\254|\341\273\256|\341\273\260|\341\273\262|\341\273\264|\341\273\266|\341\273\270|\341\273\272|\341\273\274|\341\273\276|\341\274\210|\341\274\211|\341\274\212|\341\274\213|\341\274\214|\341\274\215|\341\274\216|\341\274\217|\341\274\230|\341\274\231|\341\274\232|\341\274\233|\341\274\234|\341\274\235|\341\274\250|\341\274\251|\341\274\252|\341\274\253|\341\274\254|\341\274\255|\341\274\256|\341\274\257|\341\274\270|\341\274\271|\341\274\272|\341\274\273|\341\274\274|\341\274\275|\341\274\276|\341\274\277|\341\275\210|\341\275\211|\341\275\212|\341\275\213|\341\275\214|\341\275\215|\341\275\231|\341\275\233|\341\275\235|\341\275\237|\341\275\250|\341\275\251|\341\275\252|\341\275\253|\341\275\254|\341\275\255|\341\275\256|\341\275\257|\341\276\270|\341\276\271|\341\276\272|\341\276\273|\341\276\276|\341\277\210|\341\277\211|\341\277\212|\341\277\213|\341\277\230|\341\277\231|\341\277\232|\341\277\233|\341\277\250|\341\277\251|\341\277\252|\341\277\253|\341\277\254|\341\277\270|\341\277\271|\341\277\272|\341\277\273|\342\204\246|\342\204\252|\342\204\253|\342\204\262|\342\205\240|\342\205\241|\342\205\242|\342\205\243|\342\205\244|\342\205\245|\342\205\246|\342\205\247|\342\205\250|\342\205\251|\342\205\252|\342\205\253|\342\205\254|\342\205\255|\342\205\256|\342\205\257|\342\206\203|\342\222\266|\342\222\267|\342\222\270|\342\222\271|\342\222\272|\342\222\273|\342\222\274|\342\222\275|\342\222\276|\342\222\277|\342\223\200|\342\223\201|\342\223\202|\342\223\203|\342\223\204|\342\223\205|\342\223\206|\342\223\207|\342\223\210|\342\223\211|\342\223\212|\342\223\213|\342\223\214|\342\223\215|\342\223\216|\342\223\217|\342\260\200|\342\260\201|\342\260\202|\342\260\203|\342\260\204|\342\260\205|\342\260\206|\342\260\207|\342\260\210|\342\260\211|\342\260\212|\342\260\213|\342\260\214|\342\260\215|\342\260\216|\342\260\217|\342\260\220|\342\260\221|\342\260\222|\342\260\223|\342\260\224|\342\260\225|\342\260\226|\342\260\227|\342\260\230|\342\260\231|\342\260\232|\342\260\233|\342\260\234|\342\260\235|\342\260\236|\342\260\237|\342\260\240|\342\260\241|\342\260\242|\342\260\243|\342\260\244|\342\260\245|\342\260\246|\342\260\247|\342\260\250|\342\260\251|\342\260\252|\342\260\253|\342\260\254|\342\260\255|\342\260\256|\342\261\240|\342\261\242|\342\261\243|\342\261\244|\342\261\247|\342\261\251|\342\261\253|\342\261\255|\342\261\256|\342\261\257|\342\261\260|\342\261\262|\342\261\265|\342\261\276|\342\261\277|\342\262\200|\342\262\202|\342\262\204|\342\262\206|\342\262\210|\342\262\212|\342\262\214|\342\262\216|\342\262\220|\342\262\222|\342\262\224|\342\262\226|\342\262\230|\342\262\232|\342\262\234|\342\262\236|\342\262\240|\342\262\242|\342\262\244|\342\262\246|\342\262\250|\342\262\252|\342\262\254|\342\262\256|\342\262\260|\342\262\262|\342\262\264|\342\262\266|\342\262\270|\342\262\272|\342\262\274|\342\262\276|\342\263\200|\342\263\202|\342\263\204|\342\263\206|\342\263\210|\342\263\212|\342\263\214|\342\263\216|\342\263\220|\342\263\222|\342\263\224|\342\263\226|\342\263\230|\342\263\232|\342\263\234|\342\263\236|\342\263\240|\342\263\242|\342\263\253|\342\263\255|\342\263\262|\352\231\200|\352\231\202|\352\231\204|\352\231\206|\352\231\210|\352\231\212|\352\231\214|\352\231\216|\352\231\220|\352\231\222|\352\231\224|\352\231\226|\352\231\230|\352\231\232|\352\231\234|\352\231\236|\352\231\240|\352\231\242|\352\231\244|\352\231\246|\352\231\250|\352\231\252|\352\231\254|\352\232\200|\352\232\202|\352\232\204|\352\232\206|\352\232\210|\352\232\212|\352\232\214|\352\232\216|\352\232\220|\352\232\222|\352\232\224|\352\232\226|\352\232\230|\352\232\232|\352\234\242|\352\234\244|\352\234\246|\352\234\250|\352\234\252|\352\234\254|\352\234\256|\352\234\262|\352\234\264|\352\234\266|\352\234\270|\352\234\272|\352\234\274|\352\234\276|\352\235\200|\352\235\202|\352\235\204|\352\235\206|\352\235\210|\352\235\212|\352\235\214|\352\235\216|\352\235\220|\352\235\222|\352\235\224|\352\235\226|\352\235\230|\352\235\232|\352\235\234|\352\235\236|\352\235\240|\352\235\242|\352\235\244|\352\235\246|\352\235\250|\352\235\252|\352\235\254|\352\235\256|\352\235\271|\352\235\273|\352\235\275|\352\235\276|\352\236\200|\352\236\202|\352\236\204|\352\236\206|\352\236\213|\352\236\215|\352\236\220|\352\236\222|\352\236\226|\352\236\230|\352\236\232|\352\236\234|\352\236\236|\352\236\240|\352\236\242|\352\236\244|\352\236\246|\352\236\250|\352\236\252|\352\236\253|\352\236\254|\352\236\255|\352\236\256|\352\236\260|\352\236\261|\352\236\262|\352\236\263|\352\236\264|\352\236\266|\352\236\270|\352\236\272|\352\236\274|\352\236\276|\352\237\202|\352\237\204|\352\237\205|\352\237\206|\352\237\207|\352\237\211|\352\237\265|\352\255\260|\352\255\261|\352\255\262|\352\255\263|\352\255\264|\352\255\265|\352\255\266|\352\255\267|\352\255\270|\352\255\271|\352\255\272|\352\255\273|\352\255\274|\352\255\275|\352\255\276|\352\255\277|\352\256\200|\352\256\201|\352\256\202|\352\256\203|\352\256\204|\352\256\205|\352\256\206|\352\256\207|\352\256\210|\352\256\211|\352\256\212|\352\256\213|\352\256\214|\352\256\215|\352\256\216|\352\256\217|\352\256\220|\352\256\221|\352\256\222|\352\256\223|\352\256\224|\352\256\225|\352\256\226|\352\256\227|\352\256\230|\352\256\231|\352\256\232|\352\256\233|\352\256\234|\352\256\235|\352\256\236|\352\256\237|\352\256\240|\352\256\241|\352\256\242|\352\256\243|\352\256\244|\352\256\245|\352\256\246|\352\256\247|\352\256\250|\352\256\251|\352\256\252|\352\256\253|\352\256\254|\352\256\255|\352\256\256|\352\256\257|\352\256\260|\352\256\261|\352\256\262|\352\256\263|\352\256\264|\352\256\265|\352\256\266|\352\256\267|\352\256\270|\352\256\271|\352\256\272|\352\256\273|\352\256\274|\352\256\275|\352\256\276|\352\256\277|\357\274\241|\357\274\242|\357\274\243|\357\274\244|\357\274\245|\357\274\246|\357\274\247|\357\274\250|\357\274\251|\357\274\252|\357\274\253|\357\274\254|\357\274\255|\357\274\256|\357\274\257|\357\274\260|\357\274\261|\357\274\262|\357\274\263|\357\274\264|\357\274\265|\357\274\266|\357\274\267|\357\274\270|\357\274\271|\357\274\272|\360\220\220\200|\360\220\220\201|\360\220\220\202|\360\220\220\203|\360\220\220\204|\360\220\220\205|\360\220\220\206|\360\220\220\207|\360\220\220\210|\360\220\220\211|\360\220\220\212|\360\220\220\213|\360\220\220\214|\360\220\220\215|\360\220\220\216|\360\220\220\217|\360\220\220\220|\360\220\220\221|\360\220\220\222|\360\220\220\223|\360\220\220\224|\360\220\220\225|\360\220\220\226|\360\220\220\227|\360\220\220\230|\360\220\220\231|\360\220\220\232|\360\220\220\233|\360\220\220\234|\360\220\220\235|\360\220\220\236|\360\220\220\237|\360\220\220\240|\360\220\220\241|\360\220\220\242|\360\220\220\243|\360\220\220\244|\360\220\220\245|\360\220\220\246|\360\220\220\247|\360\220\222\260|\360\220\222\261|\360\220\222\262|\360\220\222\263|\360\220\222\264|\360\220\222\265|\360\220\222\266|\360\220\222\267|\360\220\222\270|\360\220\222\271|\360\220\222\272|\360\220\222\273|\360\220\222\274|\360\220\222\275|\360\220\222\276|\360\220\222\277|\360\220\223\200|\360\220\223\201|\360\220\223\202|\360\220\223\203|\360\220\223\204|\360\220\223\205|\360\220\223\206|\360\220\223\207|\360\220\223\210|\360\220\223\211|\360\220\223\212|\360\220\223\213|\360\220\223\214|\360\220\223\215|\360\220\223\216|\360\220\223\217|\360\220\223\220|\360\220\223\221|\360\220\223\222|\360\220\223\223|\360\220\262\200|\360\220\262\201|\360\220\262\202|\360\220\262\203|\360\220\262\204|\360\220\262\205|\360\220\262\206|\360\220\262\207|\360\220\262\210|\360\220\262\211|\360\220\262\212|\360\220\262\213|\360\220\262\214|\360\220\262\215|\360\220\262\216|\360\220\262\217|\360\220\262\220|\360\220\262\221|\360\220\262\222|\360\220\262\223|\360\220\262\224|\360\220\262\225|\360\220\262\226|\360\220\262\227|\360\220\262\230|\360\220\262\231|\360\220\262\232|\360\220\262\233|\360\220\262\234|\360\220\262\235|\360\220\262\236|\360\220\262\237|\360\220\262\240|\360\220\262\241|\360\220\262\242|\360\220\262\243|\360\220\262\244|\360\220\262\245|\360\220\262\246|\360\220\262\247|\360\220\262\250|\360\220\262\251|\360\220\262\252|\360\220\262\253|\360\220\262\254|\360\220\262\255|\360\220\262\256|\360\220\262\257|\360\220\262\260|\360\220\262\261|\360\220\262\262|\360\221\242\240|\360\221\242\241|\360\221\242\242|\360\221\242\243|\360\221\242\244|\360\221\242\245|\360\221\242\246|\360\221\242\247|\360\221\242\250|\360\221\242\251|\360\221\242\252|\360\221\242\253|\360\221\242\254|\360\221\242\255|\360\221\242\256|\360\221\242\257|\360\221\242\260|\360\221\242\261|\360\221\242\262|\360\221\242\263|\360\221\242\264|\360\221\242\265|\360\221\242\266|\360\221\242\267|\360\221\242\270|\360\221\242\271|\360\221\242\272|\360\221\242\273|\360\221\242\274|\360\221\242\275|\360\221\242\276|\360\221\242\277|\360\226\271\200|\360\226\271\201|\360\226\271\202|\360\226\271\203|\360\226\271\204|\360\226\271\205|\360\226\271\206|\360\226\271\207|\360\226\271\210|\360\226\271\211|\360\226\271\212|\360\226\271\213|\360\226\271\214|\360\226\271\215|\360\226\271\216|\360\226\271\217|\360\226\271\220|\360\226\271\221|\360\226\271\222|\360\226\271\223|\360\226\271\224|\360\226\271\225|\360\226\271\226|\360\226\271\227|\360\226\271\230|\360\226\271\231|\360\226\271\232|\360\226\271\233|\360\226\271\234|\360\226\271\235|\360\226\271\236|\360\226\271\237|\360\236\244\200|\360\236\244\201|\360\236\244\202|\360\236\244\203|\360\236\244\204|\360\236\244\205|\360\236\244\206|\360\236\244\207|\360\236\244\210|\360\236\244\211|\360\236\244\212|\360\236\244\213|\360\236\244\214|\360\236\244\215|\360\236\244\216|\360\236\244\217|\360\236\244\220|\360\236\244\221|\360\236\244\222|\360\236\244\223|\360\236\244\224|\360\236\244\225|\360\236\244\226|\360\236\244\227|\360\236\244\230|\360\236\244\231|\360\236\244\232|\360\236\244\233|\360\236\244\234|\360\236\244\235|\360\236\244\236|\360\236\244\237|\360\236\244\240|\360\236\244\241"
12
12
  CASEFOLDING_SOURCE_F = "\303\237|\304\260|\305\211|\307\260|\316\220|\316\260|\326\207|\341\272\226|\341\272\227|\341\272\230|\341\272\231|\341\272\232|\341\272\236|\341\275\220|\341\275\222|\341\275\224|\341\275\226|\341\276\200|\341\276\201|\341\276\202|\341\276\203|\341\276\204|\341\276\205|\341\276\206|\341\276\207|\341\276\210|\341\276\211|\341\276\212|\341\276\213|\341\276\214|\341\276\215|\341\276\216|\341\276\217|\341\276\220|\341\276\221|\341\276\222|\341\276\223|\341\276\224|\341\276\225|\341\276\226|\341\276\227|\341\276\230|\341\276\231|\341\276\232|\341\276\233|\341\276\234|\341\276\235|\341\276\236|\341\276\237|\341\276\240|\341\276\241|\341\276\242|\341\276\243|\341\276\244|\341\276\245|\341\276\246|\341\276\247|\341\276\250|\341\276\251|\341\276\252|\341\276\253|\341\276\254|\341\276\255|\341\276\256|\341\276\257|\341\276\262|\341\276\263|\341\276\264|\341\276\266|\341\276\267|\341\276\274|\341\277\202|\341\277\203|\341\277\204|\341\277\206|\341\277\207|\341\277\214|\341\277\222|\341\277\223|\341\277\226|\341\277\227|\341\277\242|\341\277\243|\341\277\244|\341\277\246|\341\277\247|\341\277\262|\341\277\263|\341\277\264|\341\277\266|\341\277\267|\341\277\274|\357\254\200|\357\254\201|\357\254\202|\357\254\203|\357\254\204|\357\254\205|\357\254\206|\357\254\223|\357\254\224|\357\254\225|\357\254\226|\357\254\227"
13
13
  CASEFOLDING_SOURCE_S = "\341\272\236|\341\276\210|\341\276\211|\341\276\212|\341\276\213|\341\276\214|\341\276\215|\341\276\216|\341\276\217|\341\276\230|\341\276\231|\341\276\232|\341\276\233|\341\276\234|\341\276\235|\341\276\236|\341\276\237|\341\276\250|\341\276\251|\341\276\252|\341\276\253|\341\276\254|\341\276\255|\341\276\256|\341\276\257|\341\276\274|\341\277\214|\341\277\274"
14
14
  CASEFOLDING_SOURCE_T = "\111|\304\260"
@@ -145,61 +145,62 @@ module TwitterCldr
145
145
  42904=>[42905], 42906=>[42907], 42908=>[42909], 42910=>[42911], 42912=>[42913], 42914=>[42915], 42916=>[42917], 42918=>[42919],
146
146
  42920=>[42921], 42922=>[614], 42923=>[604], 42924=>[609], 42925=>[620], 42926=>[618], 42928=>[670], 42929=>[647],
147
147
  42930=>[669], 42931=>[43859], 42932=>[42933], 42934=>[42935], 42936=>[42937], 42938=>[42939], 42940=>[42941], 42942=>[42943],
148
- 42946=>[42947], 42948=>[42900], 42949=>[642], 42950=>[7566], 43888=>[5024], 43889=>[5025], 43890=>[5026], 43891=>[5027],
149
- 43892=>[5028], 43893=>[5029], 43894=>[5030], 43895=>[5031], 43896=>[5032], 43897=>[5033], 43898=>[5034], 43899=>[5035],
150
- 43900=>[5036], 43901=>[5037], 43902=>[5038], 43903=>[5039], 43904=>[5040], 43905=>[5041], 43906=>[5042], 43907=>[5043],
151
- 43908=>[5044], 43909=>[5045], 43910=>[5046], 43911=>[5047], 43912=>[5048], 43913=>[5049], 43914=>[5050], 43915=>[5051],
152
- 43916=>[5052], 43917=>[5053], 43918=>[5054], 43919=>[5055], 43920=>[5056], 43921=>[5057], 43922=>[5058], 43923=>[5059],
153
- 43924=>[5060], 43925=>[5061], 43926=>[5062], 43927=>[5063], 43928=>[5064], 43929=>[5065], 43930=>[5066], 43931=>[5067],
154
- 43932=>[5068], 43933=>[5069], 43934=>[5070], 43935=>[5071], 43936=>[5072], 43937=>[5073], 43938=>[5074], 43939=>[5075],
155
- 43940=>[5076], 43941=>[5077], 43942=>[5078], 43943=>[5079], 43944=>[5080], 43945=>[5081], 43946=>[5082], 43947=>[5083],
156
- 43948=>[5084], 43949=>[5085], 43950=>[5086], 43951=>[5087], 43952=>[5088], 43953=>[5089], 43954=>[5090], 43955=>[5091],
157
- 43956=>[5092], 43957=>[5093], 43958=>[5094], 43959=>[5095], 43960=>[5096], 43961=>[5097], 43962=>[5098], 43963=>[5099],
158
- 43964=>[5100], 43965=>[5101], 43966=>[5102], 43967=>[5103], 65313=>[65345], 65314=>[65346], 65315=>[65347], 65316=>[65348],
159
- 65317=>[65349], 65318=>[65350], 65319=>[65351], 65320=>[65352], 65321=>[65353], 65322=>[65354], 65323=>[65355], 65324=>[65356],
160
- 65325=>[65357], 65326=>[65358], 65327=>[65359], 65328=>[65360], 65329=>[65361], 65330=>[65362], 65331=>[65363], 65332=>[65364],
161
- 65333=>[65365], 65334=>[65366], 65335=>[65367], 65336=>[65368], 65337=>[65369], 65338=>[65370], 66560=>[66600], 66561=>[66601],
162
- 66562=>[66602], 66563=>[66603], 66564=>[66604], 66565=>[66605], 66566=>[66606], 66567=>[66607], 66568=>[66608], 66569=>[66609],
163
- 66570=>[66610], 66571=>[66611], 66572=>[66612], 66573=>[66613], 66574=>[66614], 66575=>[66615], 66576=>[66616], 66577=>[66617],
164
- 66578=>[66618], 66579=>[66619], 66580=>[66620], 66581=>[66621], 66582=>[66622], 66583=>[66623], 66584=>[66624], 66585=>[66625],
165
- 66586=>[66626], 66587=>[66627], 66588=>[66628], 66589=>[66629], 66590=>[66630], 66591=>[66631], 66592=>[66632], 66593=>[66633],
166
- 66594=>[66634], 66595=>[66635], 66596=>[66636], 66597=>[66637], 66598=>[66638], 66599=>[66639], 66736=>[66776], 66737=>[66777],
167
- 66738=>[66778], 66739=>[66779], 66740=>[66780], 66741=>[66781], 66742=>[66782], 66743=>[66783], 66744=>[66784], 66745=>[66785],
168
- 66746=>[66786], 66747=>[66787], 66748=>[66788], 66749=>[66789], 66750=>[66790], 66751=>[66791], 66752=>[66792], 66753=>[66793],
169
- 66754=>[66794], 66755=>[66795], 66756=>[66796], 66757=>[66797], 66758=>[66798], 66759=>[66799], 66760=>[66800], 66761=>[66801],
170
- 66762=>[66802], 66763=>[66803], 66764=>[66804], 66765=>[66805], 66766=>[66806], 66767=>[66807], 66768=>[66808], 66769=>[66809],
171
- 66770=>[66810], 66771=>[66811], 68736=>[68800], 68737=>[68801], 68738=>[68802], 68739=>[68803], 68740=>[68804], 68741=>[68805],
172
- 68742=>[68806], 68743=>[68807], 68744=>[68808], 68745=>[68809], 68746=>[68810], 68747=>[68811], 68748=>[68812], 68749=>[68813],
173
- 68750=>[68814], 68751=>[68815], 68752=>[68816], 68753=>[68817], 68754=>[68818], 68755=>[68819], 68756=>[68820], 68757=>[68821],
174
- 68758=>[68822], 68759=>[68823], 68760=>[68824], 68761=>[68825], 68762=>[68826], 68763=>[68827], 68764=>[68828], 68765=>[68829],
175
- 68766=>[68830], 68767=>[68831], 68768=>[68832], 68769=>[68833], 68770=>[68834], 68771=>[68835], 68772=>[68836], 68773=>[68837],
176
- 68774=>[68838], 68775=>[68839], 68776=>[68840], 68777=>[68841], 68778=>[68842], 68779=>[68843], 68780=>[68844], 68781=>[68845],
177
- 68782=>[68846], 68783=>[68847], 68784=>[68848], 68785=>[68849], 68786=>[68850], 71840=>[71872], 71841=>[71873], 71842=>[71874],
178
- 71843=>[71875], 71844=>[71876], 71845=>[71877], 71846=>[71878], 71847=>[71879], 71848=>[71880], 71849=>[71881], 71850=>[71882],
179
- 71851=>[71883], 71852=>[71884], 71853=>[71885], 71854=>[71886], 71855=>[71887], 71856=>[71888], 71857=>[71889], 71858=>[71890],
180
- 71859=>[71891], 71860=>[71892], 71861=>[71893], 71862=>[71894], 71863=>[71895], 71864=>[71896], 71865=>[71897], 71866=>[71898],
181
- 71867=>[71899], 71868=>[71900], 71869=>[71901], 71870=>[71902], 71871=>[71903], 93760=>[93792], 93761=>[93793], 93762=>[93794],
182
- 93763=>[93795], 93764=>[93796], 93765=>[93797], 93766=>[93798], 93767=>[93799], 93768=>[93800], 93769=>[93801], 93770=>[93802],
183
- 93771=>[93803], 93772=>[93804], 93773=>[93805], 93774=>[93806], 93775=>[93807], 93776=>[93808], 93777=>[93809], 93778=>[93810],
184
- 93779=>[93811], 93780=>[93812], 93781=>[93813], 93782=>[93814], 93783=>[93815], 93784=>[93816], 93785=>[93817], 93786=>[93818],
185
- 93787=>[93819], 93788=>[93820], 93789=>[93821], 93790=>[93822], 93791=>[93823], 125184=>[125218], 125185=>[125219], 125186=>[125220],
186
- 125187=>[125221], 125188=>[125222], 125189=>[125223], 125190=>[125224], 125191=>[125225], 125192=>[125226], 125193=>[125227], 125194=>[125228],
187
- 125195=>[125229], 125196=>[125230], 125197=>[125231], 125198=>[125232], 125199=>[125233], 125200=>[125234], 125201=>[125235], 125202=>[125236],
188
- 125203=>[125237], 125204=>[125238], 125205=>[125239], 125206=>[125240], 125207=>[125241], 125208=>[125242], 125209=>[125243], 125210=>[125244],
189
- 125211=>[125245], 125212=>[125246], 125213=>[125247], 125214=>[125248], 125215=>[125249], 125216=>[125250], 125217=>[125251], 223=>[115, 115],
190
- 304=>[105, 775], 329=>[700, 110], 496=>[106, 780], 912=>[953, 776, 769], 944=>[965, 776, 769], 1415=>[1381, 1410], 7830=>[104, 817], 7831=>[116, 776],
191
- 7832=>[119, 778], 7833=>[121, 778], 7834=>[97, 702], 7838=>[223], 8016=>[965, 787], 8018=>[965, 787, 768], 8020=>[965, 787, 769], 8022=>[965, 787, 834],
192
- 8064=>[7936, 953], 8065=>[7937, 953], 8066=>[7938, 953], 8067=>[7939, 953], 8068=>[7940, 953], 8069=>[7941, 953], 8070=>[7942, 953], 8071=>[7943, 953],
193
- 8072=>[8064], 8073=>[8065], 8074=>[8066], 8075=>[8067], 8076=>[8068], 8077=>[8069], 8078=>[8070], 8079=>[8071],
194
- 8080=>[7968, 953], 8081=>[7969, 953], 8082=>[7970, 953], 8083=>[7971, 953], 8084=>[7972, 953], 8085=>[7973, 953], 8086=>[7974, 953], 8087=>[7975, 953],
195
- 8088=>[8080], 8089=>[8081], 8090=>[8082], 8091=>[8083], 8092=>[8084], 8093=>[8085], 8094=>[8086], 8095=>[8087],
196
- 8096=>[8032, 953], 8097=>[8033, 953], 8098=>[8034, 953], 8099=>[8035, 953], 8100=>[8036, 953], 8101=>[8037, 953], 8102=>[8038, 953], 8103=>[8039, 953],
197
- 8104=>[8096], 8105=>[8097], 8106=>[8098], 8107=>[8099], 8108=>[8100], 8109=>[8101], 8110=>[8102], 8111=>[8103],
198
- 8114=>[8048, 953], 8115=>[945, 953], 8116=>[940, 953], 8118=>[945, 834], 8119=>[945, 834, 953], 8124=>[8115], 8130=>[8052, 953], 8131=>[951, 953],
199
- 8132=>[942, 953], 8134=>[951, 834], 8135=>[951, 834, 953], 8140=>[8131], 8146=>[953, 776, 768], 8147=>[953, 776, 769], 8150=>[953, 834], 8151=>[953, 776, 834],
200
- 8162=>[965, 776, 768], 8163=>[965, 776, 769], 8164=>[961, 787], 8166=>[965, 834], 8167=>[965, 776, 834], 8178=>[8060, 953], 8179=>[969, 953], 8180=>[974, 953],
201
- 8182=>[969, 834], 8183=>[969, 834, 953], 8188=>[8179], 64256=>[102, 102], 64257=>[102, 105], 64258=>[102, 108], 64259=>[102, 102, 105], 64260=>[102, 102, 108],
202
- 64261=>[115, 116], 64262=>[115, 116], 64275=>[1396, 1398], 64276=>[1396, 1381], 64277=>[1396, 1387], 64278=>[1406, 1398], 64279=>[1396, 1389]
148
+ 42946=>[42947], 42948=>[42900], 42949=>[642], 42950=>[7566], 42951=>[42952], 42953=>[42954], 42997=>[42998], 43888=>[5024],
149
+ 43889=>[5025], 43890=>[5026], 43891=>[5027], 43892=>[5028], 43893=>[5029], 43894=>[5030], 43895=>[5031], 43896=>[5032],
150
+ 43897=>[5033], 43898=>[5034], 43899=>[5035], 43900=>[5036], 43901=>[5037], 43902=>[5038], 43903=>[5039], 43904=>[5040],
151
+ 43905=>[5041], 43906=>[5042], 43907=>[5043], 43908=>[5044], 43909=>[5045], 43910=>[5046], 43911=>[5047], 43912=>[5048],
152
+ 43913=>[5049], 43914=>[5050], 43915=>[5051], 43916=>[5052], 43917=>[5053], 43918=>[5054], 43919=>[5055], 43920=>[5056],
153
+ 43921=>[5057], 43922=>[5058], 43923=>[5059], 43924=>[5060], 43925=>[5061], 43926=>[5062], 43927=>[5063], 43928=>[5064],
154
+ 43929=>[5065], 43930=>[5066], 43931=>[5067], 43932=>[5068], 43933=>[5069], 43934=>[5070], 43935=>[5071], 43936=>[5072],
155
+ 43937=>[5073], 43938=>[5074], 43939=>[5075], 43940=>[5076], 43941=>[5077], 43942=>[5078], 43943=>[5079], 43944=>[5080],
156
+ 43945=>[5081], 43946=>[5082], 43947=>[5083], 43948=>[5084], 43949=>[5085], 43950=>[5086], 43951=>[5087], 43952=>[5088],
157
+ 43953=>[5089], 43954=>[5090], 43955=>[5091], 43956=>[5092], 43957=>[5093], 43958=>[5094], 43959=>[5095], 43960=>[5096],
158
+ 43961=>[5097], 43962=>[5098], 43963=>[5099], 43964=>[5100], 43965=>[5101], 43966=>[5102], 43967=>[5103], 65313=>[65345],
159
+ 65314=>[65346], 65315=>[65347], 65316=>[65348], 65317=>[65349], 65318=>[65350], 65319=>[65351], 65320=>[65352], 65321=>[65353],
160
+ 65322=>[65354], 65323=>[65355], 65324=>[65356], 65325=>[65357], 65326=>[65358], 65327=>[65359], 65328=>[65360], 65329=>[65361],
161
+ 65330=>[65362], 65331=>[65363], 65332=>[65364], 65333=>[65365], 65334=>[65366], 65335=>[65367], 65336=>[65368], 65337=>[65369],
162
+ 65338=>[65370], 66560=>[66600], 66561=>[66601], 66562=>[66602], 66563=>[66603], 66564=>[66604], 66565=>[66605], 66566=>[66606],
163
+ 66567=>[66607], 66568=>[66608], 66569=>[66609], 66570=>[66610], 66571=>[66611], 66572=>[66612], 66573=>[66613], 66574=>[66614],
164
+ 66575=>[66615], 66576=>[66616], 66577=>[66617], 66578=>[66618], 66579=>[66619], 66580=>[66620], 66581=>[66621], 66582=>[66622],
165
+ 66583=>[66623], 66584=>[66624], 66585=>[66625], 66586=>[66626], 66587=>[66627], 66588=>[66628], 66589=>[66629], 66590=>[66630],
166
+ 66591=>[66631], 66592=>[66632], 66593=>[66633], 66594=>[66634], 66595=>[66635], 66596=>[66636], 66597=>[66637], 66598=>[66638],
167
+ 66599=>[66639], 66736=>[66776], 66737=>[66777], 66738=>[66778], 66739=>[66779], 66740=>[66780], 66741=>[66781], 66742=>[66782],
168
+ 66743=>[66783], 66744=>[66784], 66745=>[66785], 66746=>[66786], 66747=>[66787], 66748=>[66788], 66749=>[66789], 66750=>[66790],
169
+ 66751=>[66791], 66752=>[66792], 66753=>[66793], 66754=>[66794], 66755=>[66795], 66756=>[66796], 66757=>[66797], 66758=>[66798],
170
+ 66759=>[66799], 66760=>[66800], 66761=>[66801], 66762=>[66802], 66763=>[66803], 66764=>[66804], 66765=>[66805], 66766=>[66806],
171
+ 66767=>[66807], 66768=>[66808], 66769=>[66809], 66770=>[66810], 66771=>[66811], 68736=>[68800], 68737=>[68801], 68738=>[68802],
172
+ 68739=>[68803], 68740=>[68804], 68741=>[68805], 68742=>[68806], 68743=>[68807], 68744=>[68808], 68745=>[68809], 68746=>[68810],
173
+ 68747=>[68811], 68748=>[68812], 68749=>[68813], 68750=>[68814], 68751=>[68815], 68752=>[68816], 68753=>[68817], 68754=>[68818],
174
+ 68755=>[68819], 68756=>[68820], 68757=>[68821], 68758=>[68822], 68759=>[68823], 68760=>[68824], 68761=>[68825], 68762=>[68826],
175
+ 68763=>[68827], 68764=>[68828], 68765=>[68829], 68766=>[68830], 68767=>[68831], 68768=>[68832], 68769=>[68833], 68770=>[68834],
176
+ 68771=>[68835], 68772=>[68836], 68773=>[68837], 68774=>[68838], 68775=>[68839], 68776=>[68840], 68777=>[68841], 68778=>[68842],
177
+ 68779=>[68843], 68780=>[68844], 68781=>[68845], 68782=>[68846], 68783=>[68847], 68784=>[68848], 68785=>[68849], 68786=>[68850],
178
+ 71840=>[71872], 71841=>[71873], 71842=>[71874], 71843=>[71875], 71844=>[71876], 71845=>[71877], 71846=>[71878], 71847=>[71879],
179
+ 71848=>[71880], 71849=>[71881], 71850=>[71882], 71851=>[71883], 71852=>[71884], 71853=>[71885], 71854=>[71886], 71855=>[71887],
180
+ 71856=>[71888], 71857=>[71889], 71858=>[71890], 71859=>[71891], 71860=>[71892], 71861=>[71893], 71862=>[71894], 71863=>[71895],
181
+ 71864=>[71896], 71865=>[71897], 71866=>[71898], 71867=>[71899], 71868=>[71900], 71869=>[71901], 71870=>[71902], 71871=>[71903],
182
+ 93760=>[93792], 93761=>[93793], 93762=>[93794], 93763=>[93795], 93764=>[93796], 93765=>[93797], 93766=>[93798], 93767=>[93799],
183
+ 93768=>[93800], 93769=>[93801], 93770=>[93802], 93771=>[93803], 93772=>[93804], 93773=>[93805], 93774=>[93806], 93775=>[93807],
184
+ 93776=>[93808], 93777=>[93809], 93778=>[93810], 93779=>[93811], 93780=>[93812], 93781=>[93813], 93782=>[93814], 93783=>[93815],
185
+ 93784=>[93816], 93785=>[93817], 93786=>[93818], 93787=>[93819], 93788=>[93820], 93789=>[93821], 93790=>[93822], 93791=>[93823],
186
+ 125184=>[125218], 125185=>[125219], 125186=>[125220], 125187=>[125221], 125188=>[125222], 125189=>[125223], 125190=>[125224], 125191=>[125225],
187
+ 125192=>[125226], 125193=>[125227], 125194=>[125228], 125195=>[125229], 125196=>[125230], 125197=>[125231], 125198=>[125232], 125199=>[125233],
188
+ 125200=>[125234], 125201=>[125235], 125202=>[125236], 125203=>[125237], 125204=>[125238], 125205=>[125239], 125206=>[125240], 125207=>[125241],
189
+ 125208=>[125242], 125209=>[125243], 125210=>[125244], 125211=>[125245], 125212=>[125246], 125213=>[125247], 125214=>[125248], 125215=>[125249],
190
+ 125216=>[125250], 125217=>[125251], 223=>[115, 115], 304=>[105, 775], 329=>[700, 110], 496=>[106, 780], 912=>[953, 776, 769], 944=>[965, 776, 769],
191
+ 1415=>[1381, 1410], 7830=>[104, 817], 7831=>[116, 776], 7832=>[119, 778], 7833=>[121, 778], 7834=>[97, 702], 7838=>[223], 8016=>[965, 787],
192
+ 8018=>[965, 787, 768], 8020=>[965, 787, 769], 8022=>[965, 787, 834], 8064=>[7936, 953], 8065=>[7937, 953], 8066=>[7938, 953], 8067=>[7939, 953], 8068=>[7940, 953],
193
+ 8069=>[7941, 953], 8070=>[7942, 953], 8071=>[7943, 953], 8072=>[8064], 8073=>[8065], 8074=>[8066], 8075=>[8067], 8076=>[8068],
194
+ 8077=>[8069], 8078=>[8070], 8079=>[8071], 8080=>[7968, 953], 8081=>[7969, 953], 8082=>[7970, 953], 8083=>[7971, 953], 8084=>[7972, 953],
195
+ 8085=>[7973, 953], 8086=>[7974, 953], 8087=>[7975, 953], 8088=>[8080], 8089=>[8081], 8090=>[8082], 8091=>[8083], 8092=>[8084],
196
+ 8093=>[8085], 8094=>[8086], 8095=>[8087], 8096=>[8032, 953], 8097=>[8033, 953], 8098=>[8034, 953], 8099=>[8035, 953], 8100=>[8036, 953],
197
+ 8101=>[8037, 953], 8102=>[8038, 953], 8103=>[8039, 953], 8104=>[8096], 8105=>[8097], 8106=>[8098], 8107=>[8099], 8108=>[8100],
198
+ 8109=>[8101], 8110=>[8102], 8111=>[8103], 8114=>[8048, 953], 8115=>[945, 953], 8116=>[940, 953], 8118=>[945, 834], 8119=>[945, 834, 953],
199
+ 8124=>[8115], 8130=>[8052, 953], 8131=>[951, 953], 8132=>[942, 953], 8134=>[951, 834], 8135=>[951, 834, 953], 8140=>[8131], 8146=>[953, 776, 768],
200
+ 8147=>[953, 776, 769], 8150=>[953, 834], 8151=>[953, 776, 834], 8162=>[965, 776, 768], 8163=>[965, 776, 769], 8164=>[961, 787], 8166=>[965, 834], 8167=>[965, 776, 834],
201
+ 8178=>[8060, 953], 8179=>[969, 953], 8180=>[974, 953], 8182=>[969, 834], 8183=>[969, 834, 953], 8188=>[8179], 64256=>[102, 102], 64257=>[102, 105],
202
+ 64258=>[102, 108], 64259=>[102, 102, 105], 64260=>[102, 102, 108], 64261=>[115, 116], 64262=>[115, 116], 64275=>[1396, 1398], 64276=>[1396, 1381], 64277=>[1396, 1387],
203
+ 64278=>[1406, 1398], 64279=>[1396, 1389]
203
204
  }
204
205
  CASEFOLDING_HASH_T = CASEFOLDING_HASH.merge(
205
206
  {
@@ -10,10 +10,10 @@ module TwitterCldr
10
10
  class Hyphenator
11
11
  class UnsupportedLocaleError < StandardError; end
12
12
 
13
- BASE_RESOURCE_PATH = %w(shared hyphenation)
13
+ BASE_RESOURCE_PATH = %w(shared hyphenation).freeze
14
14
  DEFAULT_LEFT_HYPHEN_MIN = 2
15
15
  DEFAULT_RIGHT_HYPHEN_MIN = 2
16
- DEFAULT_NO_HYPHEN = %w(- ' )
16
+ DEFAULT_NO_HYPHEN = "-'’".freeze
17
17
 
18
18
  class << self
19
19
  def get(locale)
@@ -164,12 +164,12 @@ module TwitterCldr
164
164
 
165
165
  def left_hyphen_min
166
166
  @left_hyphen_min ||=
167
- options.fetch(:lefthyphenmin, DEFAULT_LEFT_HYPHEN_MIN)
167
+ options.fetch(:lefthyphenmin, DEFAULT_LEFT_HYPHEN_MIN).to_i
168
168
  end
169
169
 
170
170
  def right_hyphen_min
171
171
  @right_hyphen_min ||=
172
- options.fetch(:righthyphenmin, DEFAULT_RIGHT_HYPHEN_MIN)
172
+ options.fetch(:righthyphenmin, DEFAULT_RIGHT_HYPHEN_MIN).to_i
173
173
  end
174
174
 
175
175
  def no_hyphen
@@ -104,22 +104,24 @@ module TwitterCldr
104
104
  types << :script if script?(subtag)
105
105
  types << :region if region?(subtag)
106
106
  types << :variant if variant?(subtag)
107
+
108
+ types << :language if language?(normalize_subtag(subtag, :language))
109
+ types << :script if script?(normalize_subtag(subtag, :script))
110
+ types << :region if region?(normalize_subtag(subtag, :region))
111
+ types << :variant if variant?(normalize_subtag(subtag, :variant))
107
112
  end
108
113
  end
109
114
 
110
115
  def language?(subtag)
111
- subtag = normalize_subtag(subtag, :language)
112
116
  languages.include?(subtag) || language_aliases.include?(subtag.to_sym)
113
117
  end
114
118
 
115
119
  def script?(subtag)
116
- subtag = normalize_subtag(subtag, :script)
117
120
  scripts.include?(subtag) ||
118
121
  !!PropertyValueAliases.long_alias_for('sc', subtag)
119
122
  end
120
123
 
121
124
  def region?(subtag)
122
- subtag = normalize_subtag(subtag, :region)
123
125
  territories.include?(subtag) || region_aliases.include?(subtag.to_sym)
124
126
  end
125
127
 
@@ -207,6 +209,10 @@ module TwitterCldr
207
209
  @validity_resource ||=
208
210
  TwitterCldr.get_resource('shared', 'validity_data')[:validity_data]
209
211
  end
212
+
213
+ def parent_locales
214
+ @parent_locales ||= TwitterCldr.get_resource('shared', 'parent_locales')
215
+ end
210
216
  end
211
217
 
212
218
  attr_accessor :language, :script, :region, :variants
@@ -237,11 +243,9 @@ module TwitterCldr
237
243
 
238
244
  def supported
239
245
  @supported ||= begin
240
- found = permutations('-').find do |perm|
241
- TwitterCldr.supported_locale?(perm)
246
+ ancestor_chain.sort.find do |loc|
247
+ TwitterCldr.supported_locale?(loc.dasherized)
242
248
  end
243
-
244
- self.class.new(found) if found
245
249
  end
246
250
  end
247
251
 
@@ -271,6 +275,52 @@ module TwitterCldr
271
275
  perms.uniq
272
276
  end
273
277
 
278
+ def ==(other)
279
+ language == other.language &&
280
+ script == other.script &&
281
+ region == other.region &&
282
+ variants == other.variants
283
+ end
284
+
285
+ alias eql? ==
286
+
287
+ def hash
288
+ to_a.hash
289
+ end
290
+
291
+ def sort_key
292
+ k = 0
293
+ k += 3 if language
294
+ k += 2 if script
295
+ k += 1 if region
296
+ k
297
+ end
298
+
299
+ def <=>(other)
300
+ other.sort_key <=> sort_key
301
+ end
302
+
303
+ def ancestor_chain
304
+ ancestry = [self]
305
+ remaining = [self]
306
+
307
+ until remaining.empty?
308
+ locale = remaining.pop
309
+
310
+ if parent = self.class.send(:parent_locales)[locale.to_s]
311
+ parent = self.class.parse(parent)
312
+ ancestry << parent
313
+ remaining << parent
314
+ else
315
+ parents = locale.permutations.map { |p| self.class.parse(p) }
316
+ remaining += parents - ancestry
317
+ ancestry += parents - ancestry
318
+ end
319
+ end
320
+
321
+ ancestry
322
+ end
323
+
274
324
  end
275
325
  end
276
326
  end