mirror of
https://github.com/uutils/coreutils
synced 2025-01-09 03:39:08 +00:00
192 lines
15 KiB
Rust
192 lines
15 KiB
Rust
/*
|
|
* This file is part of `fmt` from the uutils coreutils package.
|
|
*
|
|
* (c) kwantam <kwantam@gmail.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
fn bsearch_range_value_table(c: char, is_cjk: bool, r: &'static [(char, char, u8, u8)]) -> u8 {
|
|
match r.bsearch(|&(lo, hi, _, _)| {
|
|
if lo <= c && c <= hi { Equal }
|
|
else if hi < c { Less }
|
|
else { Greater }
|
|
}) {
|
|
Some(idx) => {
|
|
let (_, _, r_ncjk, r_cjk) = r[idx];
|
|
if is_cjk { r_cjk } else { r_ncjk }
|
|
}
|
|
None => 1
|
|
}
|
|
}
|
|
|
|
pub fn width(c: char, is_cjk: bool) -> Option<uint> {
|
|
match c as uint {
|
|
_c @ 0 => Some(0), // null is zero width
|
|
cu if cu < 0x20 => None, // control sequences have no width
|
|
cu if cu < 0x7F => Some(1), // ASCII
|
|
cu if cu < 0xA0 => None, // more control sequences
|
|
_ => Some(bsearch_range_value_table(c, is_cjk, charwidth_table) as uint)
|
|
}
|
|
}
|
|
|
|
// character width table. Based on Markus Kuhn's free wcwidth() implementation,
|
|
// http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
|
|
static charwidth_table : &'static [(char, char, u8, u8)] = &[
|
|
('\xa1', '\xa1', 1, 2), ('\xa4', '\xa4', 1, 2), ('\xa7', '\xa8', 1, 2), ('\xaa', '\xaa', 1,
|
|
2), ('\xae', '\xae', 1, 2), ('\xb0', '\xb4', 1, 2), ('\xb6', '\xba', 1, 2), ('\xbc', '\xbf',
|
|
1, 2), ('\xc6', '\xc6', 1, 2), ('\xd0', '\xd0', 1, 2), ('\xd7', '\xd8', 1, 2), ('\xde',
|
|
'\xe1', 1, 2), ('\xe6', '\xe6', 1, 2), ('\xe8', '\xea', 1, 2), ('\xec', '\xed', 1, 2),
|
|
('\xf0', '\xf0', 1, 2), ('\xf2', '\xf3', 1, 2), ('\xf7', '\xfa', 1, 2), ('\xfc', '\xfc', 1,
|
|
2), ('\xfe', '\xfe', 1, 2), ('\u0101', '\u0101', 1, 2), ('\u0111', '\u0111', 1, 2),
|
|
('\u0113', '\u0113', 1, 2), ('\u011b', '\u011b', 1, 2), ('\u0126', '\u0127', 1, 2),
|
|
('\u012b', '\u012b', 1, 2), ('\u0131', '\u0133', 1, 2), ('\u0138', '\u0138', 1, 2),
|
|
('\u013f', '\u0142', 1, 2), ('\u0144', '\u0144', 1, 2), ('\u0148', '\u014b', 1, 2),
|
|
('\u014d', '\u014d', 1, 2), ('\u0152', '\u0153', 1, 2), ('\u0166', '\u0167', 1, 2),
|
|
('\u016b', '\u016b', 1, 2), ('\u01ce', '\u01ce', 1, 2), ('\u01d0', '\u01d0', 1, 2),
|
|
('\u01d2', '\u01d2', 1, 2), ('\u01d4', '\u01d4', 1, 2), ('\u01d6', '\u01d6', 1, 2),
|
|
('\u01d8', '\u01d8', 1, 2), ('\u01da', '\u01da', 1, 2), ('\u01dc', '\u01dc', 1, 2),
|
|
('\u0251', '\u0251', 1, 2), ('\u0261', '\u0261', 1, 2), ('\u02c4', '\u02c4', 1, 2),
|
|
('\u02c7', '\u02c7', 1, 2), ('\u02c9', '\u02cb', 1, 2), ('\u02cd', '\u02cd', 1, 2),
|
|
('\u02d0', '\u02d0', 1, 2), ('\u02d8', '\u02db', 1, 2), ('\u02dd', '\u02dd', 1, 2),
|
|
('\u02df', '\u02df', 1, 2), ('\u0300', '\u036f', 0, 0), ('\u0391', '\u03a1', 1, 2),
|
|
('\u03a3', '\u03a9', 1, 2), ('\u03b1', '\u03c1', 1, 2), ('\u03c3', '\u03c9', 1, 2),
|
|
('\u0401', '\u0401', 1, 2), ('\u0410', '\u044f', 1, 2), ('\u0451', '\u0451', 1, 2),
|
|
('\u0483', '\u0489', 0, 0), ('\u0591', '\u05bd', 0, 0), ('\u05bf', '\u05bf', 0, 0),
|
|
('\u05c1', '\u05c2', 0, 0), ('\u05c4', '\u05c5', 0, 0), ('\u05c7', '\u05c7', 0, 0),
|
|
('\u0600', '\u0605', 0, 0), ('\u0610', '\u061a', 0, 0), ('\u061c', '\u061c', 0, 0),
|
|
('\u064b', '\u065f', 0, 0), ('\u0670', '\u0670', 0, 0), ('\u06d6', '\u06dd', 0, 0),
|
|
('\u06df', '\u06e4', 0, 0), ('\u06e7', '\u06e8', 0, 0), ('\u06ea', '\u06ed', 0, 0),
|
|
('\u070f', '\u070f', 0, 0), ('\u0711', '\u0711', 0, 0), ('\u0730', '\u074a', 0, 0),
|
|
('\u07a6', '\u07b0', 0, 0), ('\u07eb', '\u07f3', 0, 0), ('\u0816', '\u0819', 0, 0),
|
|
('\u081b', '\u0823', 0, 0), ('\u0825', '\u0827', 0, 0), ('\u0829', '\u082d', 0, 0),
|
|
('\u0859', '\u085b', 0, 0), ('\u08e4', '\u0902', 0, 0), ('\u093a', '\u093a', 0, 0),
|
|
('\u093c', '\u093c', 0, 0), ('\u0941', '\u0948', 0, 0), ('\u094d', '\u094d', 0, 0),
|
|
('\u0951', '\u0957', 0, 0), ('\u0962', '\u0963', 0, 0), ('\u0981', '\u0981', 0, 0),
|
|
('\u09bc', '\u09bc', 0, 0), ('\u09c1', '\u09c4', 0, 0), ('\u09cd', '\u09cd', 0, 0),
|
|
('\u09e2', '\u09e3', 0, 0), ('\u0a01', '\u0a02', 0, 0), ('\u0a3c', '\u0a3c', 0, 0),
|
|
('\u0a41', '\u0a51', 0, 0), ('\u0a70', '\u0a71', 0, 0), ('\u0a75', '\u0a82', 0, 0),
|
|
('\u0abc', '\u0abc', 0, 0), ('\u0ac1', '\u0ac8', 0, 0), ('\u0acd', '\u0acd', 0, 0),
|
|
('\u0ae2', '\u0ae3', 0, 0), ('\u0b01', '\u0b01', 0, 0), ('\u0b3c', '\u0b3c', 0, 0),
|
|
('\u0b3f', '\u0b3f', 0, 0), ('\u0b41', '\u0b44', 0, 0), ('\u0b4d', '\u0b56', 0, 0),
|
|
('\u0b62', '\u0b63', 0, 0), ('\u0b82', '\u0b82', 0, 0), ('\u0bc0', '\u0bc0', 0, 0),
|
|
('\u0bcd', '\u0bcd', 0, 0), ('\u0c00', '\u0c00', 0, 0), ('\u0c3e', '\u0c40', 0, 0),
|
|
('\u0c46', '\u0c56', 0, 0), ('\u0c62', '\u0c63', 0, 0), ('\u0c81', '\u0c81', 0, 0),
|
|
('\u0cbc', '\u0cbc', 0, 0), ('\u0cbf', '\u0cbf', 0, 0), ('\u0cc6', '\u0cc6', 0, 0),
|
|
('\u0ccc', '\u0ccd', 0, 0), ('\u0ce2', '\u0ce3', 0, 0), ('\u0d01', '\u0d01', 0, 0),
|
|
('\u0d41', '\u0d44', 0, 0), ('\u0d4d', '\u0d4d', 0, 0), ('\u0d62', '\u0d63', 0, 0),
|
|
('\u0dca', '\u0dca', 0, 0), ('\u0dd2', '\u0dd6', 0, 0), ('\u0e31', '\u0e31', 0, 0),
|
|
('\u0e34', '\u0e3a', 0, 0), ('\u0e47', '\u0e4e', 0, 0), ('\u0eb1', '\u0eb1', 0, 0),
|
|
('\u0eb4', '\u0ebc', 0, 0), ('\u0ec8', '\u0ecd', 0, 0), ('\u0f18', '\u0f19', 0, 0),
|
|
('\u0f35', '\u0f35', 0, 0), ('\u0f37', '\u0f37', 0, 0), ('\u0f39', '\u0f39', 0, 0),
|
|
('\u0f71', '\u0f7e', 0, 0), ('\u0f80', '\u0f84', 0, 0), ('\u0f86', '\u0f87', 0, 0),
|
|
('\u0f8d', '\u0fbc', 0, 0), ('\u0fc6', '\u0fc6', 0, 0), ('\u102d', '\u1030', 0, 0),
|
|
('\u1032', '\u1037', 0, 0), ('\u1039', '\u103a', 0, 0), ('\u103d', '\u103e', 0, 0),
|
|
('\u1058', '\u1059', 0, 0), ('\u105e', '\u1060', 0, 0), ('\u1071', '\u1074', 0, 0),
|
|
('\u1082', '\u1082', 0, 0), ('\u1085', '\u1086', 0, 0), ('\u108d', '\u108d', 0, 0),
|
|
('\u109d', '\u109d', 0, 0), ('\u1100', '\u115f', 2, 2), ('\u1160', '\u11ff', 0, 0),
|
|
('\u135d', '\u135f', 0, 0), ('\u1712', '\u1714', 0, 0), ('\u1732', '\u1734', 0, 0),
|
|
('\u1752', '\u1753', 0, 0), ('\u1772', '\u1773', 0, 0), ('\u17b4', '\u17b5', 0, 0),
|
|
('\u17b7', '\u17bd', 0, 0), ('\u17c6', '\u17c6', 0, 0), ('\u17c9', '\u17d3', 0, 0),
|
|
('\u17dd', '\u17dd', 0, 0), ('\u180b', '\u180e', 0, 0), ('\u18a9', '\u18a9', 0, 0),
|
|
('\u1920', '\u1922', 0, 0), ('\u1927', '\u1928', 0, 0), ('\u1932', '\u1932', 0, 0),
|
|
('\u1939', '\u193b', 0, 0), ('\u1a17', '\u1a18', 0, 0), ('\u1a1b', '\u1a1b', 0, 0),
|
|
('\u1a56', '\u1a56', 0, 0), ('\u1a58', '\u1a60', 0, 0), ('\u1a62', '\u1a62', 0, 0),
|
|
('\u1a65', '\u1a6c', 0, 0), ('\u1a73', '\u1a7f', 0, 0), ('\u1ab0', '\u1abe', 0, 0),
|
|
('\u1b00', '\u1b03', 0, 0), ('\u1b34', '\u1b34', 0, 0), ('\u1b36', '\u1b3a', 0, 0),
|
|
('\u1b3c', '\u1b3c', 0, 0), ('\u1b42', '\u1b42', 0, 0), ('\u1b6b', '\u1b73', 0, 0),
|
|
('\u1b80', '\u1b81', 0, 0), ('\u1ba2', '\u1ba5', 0, 0), ('\u1ba8', '\u1ba9', 0, 0),
|
|
('\u1bab', '\u1bad', 0, 0), ('\u1be6', '\u1be6', 0, 0), ('\u1be8', '\u1be9', 0, 0),
|
|
('\u1bed', '\u1bed', 0, 0), ('\u1bef', '\u1bf1', 0, 0), ('\u1c2c', '\u1c33', 0, 0),
|
|
('\u1c36', '\u1c37', 0, 0), ('\u1cd0', '\u1cd2', 0, 0), ('\u1cd4', '\u1ce0', 0, 0),
|
|
('\u1ce2', '\u1ce8', 0, 0), ('\u1ced', '\u1ced', 0, 0), ('\u1cf4', '\u1cf4', 0, 0),
|
|
('\u1cf8', '\u1cf9', 0, 0), ('\u1dc0', '\u1dff', 0, 0), ('\u200b', '\u200f', 0, 0),
|
|
('\u2010', '\u2010', 1, 2), ('\u2013', '\u2016', 1, 2), ('\u2018', '\u2019', 1, 2),
|
|
('\u201c', '\u201d', 1, 2), ('\u2020', '\u2022', 1, 2), ('\u2024', '\u2027', 1, 2),
|
|
('\u202a', '\u202e', 0, 0), ('\u2030', '\u2030', 1, 2), ('\u2032', '\u2033', 1, 2),
|
|
('\u2035', '\u2035', 1, 2), ('\u203b', '\u203b', 1, 2), ('\u203e', '\u203e', 1, 2),
|
|
('\u2060', '\u206f', 0, 0), ('\u2074', '\u2074', 1, 2), ('\u207f', '\u207f', 1, 2),
|
|
('\u2081', '\u2084', 1, 2), ('\u20ac', '\u20ac', 1, 2), ('\u20d0', '\u20f0', 0, 0),
|
|
('\u2103', '\u2103', 1, 2), ('\u2105', '\u2105', 1, 2), ('\u2109', '\u2109', 1, 2),
|
|
('\u2113', '\u2113', 1, 2), ('\u2116', '\u2116', 1, 2), ('\u2121', '\u2122', 1, 2),
|
|
('\u2126', '\u2126', 1, 2), ('\u212b', '\u212b', 1, 2), ('\u2153', '\u2154', 1, 2),
|
|
('\u215b', '\u215e', 1, 2), ('\u2160', '\u216b', 1, 2), ('\u2170', '\u2179', 1, 2),
|
|
('\u2189', '\u2189', 1, 2), ('\u2190', '\u2199', 1, 2), ('\u21b8', '\u21b9', 1, 2),
|
|
('\u21d2', '\u21d2', 1, 2), ('\u21d4', '\u21d4', 1, 2), ('\u21e7', '\u21e7', 1, 2),
|
|
('\u2200', '\u2200', 1, 2), ('\u2202', '\u2203', 1, 2), ('\u2207', '\u2208', 1, 2),
|
|
('\u220b', '\u220b', 1, 2), ('\u220f', '\u220f', 1, 2), ('\u2211', '\u2211', 1, 2),
|
|
('\u2215', '\u2215', 1, 2), ('\u221a', '\u221a', 1, 2), ('\u221d', '\u2220', 1, 2),
|
|
('\u2223', '\u2223', 1, 2), ('\u2225', '\u2225', 1, 2), ('\u2227', '\u222c', 1, 2),
|
|
('\u222e', '\u222e', 1, 2), ('\u2234', '\u2237', 1, 2), ('\u223c', '\u223d', 1, 2),
|
|
('\u2248', '\u2248', 1, 2), ('\u224c', '\u224c', 1, 2), ('\u2252', '\u2252', 1, 2),
|
|
('\u2260', '\u2261', 1, 2), ('\u2264', '\u2267', 1, 2), ('\u226a', '\u226b', 1, 2),
|
|
('\u226e', '\u226f', 1, 2), ('\u2282', '\u2283', 1, 2), ('\u2286', '\u2287', 1, 2),
|
|
('\u2295', '\u2295', 1, 2), ('\u2299', '\u2299', 1, 2), ('\u22a5', '\u22a5', 1, 2),
|
|
('\u22bf', '\u22bf', 1, 2), ('\u2312', '\u2312', 1, 2), ('\u2329', '\u232a', 2, 2),
|
|
('\u2460', '\u24e9', 1, 2), ('\u24eb', '\u254b', 1, 2), ('\u2550', '\u2573', 1, 2),
|
|
('\u2580', '\u258f', 1, 2), ('\u2592', '\u2595', 1, 2), ('\u25a0', '\u25a1', 1, 2),
|
|
('\u25a3', '\u25a9', 1, 2), ('\u25b2', '\u25b3', 1, 2), ('\u25b6', '\u25b7', 1, 2),
|
|
('\u25bc', '\u25bd', 1, 2), ('\u25c0', '\u25c1', 1, 2), ('\u25c6', '\u25c8', 1, 2),
|
|
('\u25cb', '\u25cb', 1, 2), ('\u25ce', '\u25d1', 1, 2), ('\u25e2', '\u25e5', 1, 2),
|
|
('\u25ef', '\u25ef', 1, 2), ('\u2605', '\u2606', 1, 2), ('\u2609', '\u2609', 1, 2),
|
|
('\u260e', '\u260f', 1, 2), ('\u2614', '\u2615', 1, 2), ('\u261c', '\u261c', 1, 2),
|
|
('\u261e', '\u261e', 1, 2), ('\u2640', '\u2640', 1, 2), ('\u2642', '\u2642', 1, 2),
|
|
('\u2660', '\u2661', 1, 2), ('\u2663', '\u2665', 1, 2), ('\u2667', '\u266a', 1, 2),
|
|
('\u266c', '\u266d', 1, 2), ('\u266f', '\u266f', 1, 2), ('\u269e', '\u269f', 1, 2),
|
|
('\u26be', '\u26bf', 1, 2), ('\u26c4', '\u26cd', 1, 2), ('\u26cf', '\u26e1', 1, 2),
|
|
('\u26e3', '\u26e3', 1, 2), ('\u26e8', '\u26ff', 1, 2), ('\u273d', '\u273d', 1, 2),
|
|
('\u2757', '\u2757', 1, 2), ('\u2776', '\u277f', 1, 2), ('\u2b55', '\u2b59', 1, 2),
|
|
('\u2cef', '\u2cf1', 0, 0), ('\u2d7f', '\u2d7f', 0, 0), ('\u2de0', '\u2dff', 0, 0),
|
|
('\u2e80', '\u2e99', 2, 2), ('\u2e9b', '\u2ef3', 2, 2), ('\u2f00', '\u2fd5', 2, 2),
|
|
('\u2ff0', '\u2ffb', 2, 2), ('\u3000', '\u3029', 2, 2), ('\u302a', '\u302d', 0, 0),
|
|
('\u302e', '\u303e', 2, 2), ('\u3041', '\u3096', 2, 2), ('\u3099', '\u309a', 0, 0),
|
|
('\u309b', '\u30ff', 2, 2), ('\u3105', '\u312d', 2, 2), ('\u3131', '\u318e', 2, 2),
|
|
('\u3190', '\u31ba', 2, 2), ('\u31c0', '\u31e3', 2, 2), ('\u31f0', '\u321e', 2, 2),
|
|
('\u3220', '\u3247', 2, 2), ('\u3248', '\u324f', 1, 2), ('\u3250', '\u32fe', 2, 2),
|
|
('\u3300', '\u4dbf', 2, 2), ('\u4e00', '\ua48c', 2, 2), ('\ua490', '\ua4c6', 2, 2),
|
|
('\ua66f', '\ua672', 0, 0), ('\ua674', '\ua67d', 0, 0), ('\ua69f', '\ua69f', 0, 0),
|
|
('\ua6f0', '\ua6f1', 0, 0), ('\ua802', '\ua802', 0, 0), ('\ua806', '\ua806', 0, 0),
|
|
('\ua80b', '\ua80b', 0, 0), ('\ua825', '\ua826', 0, 0), ('\ua8c4', '\ua8c4', 0, 0),
|
|
('\ua8e0', '\ua8f1', 0, 0), ('\ua926', '\ua92d', 0, 0), ('\ua947', '\ua951', 0, 0),
|
|
('\ua960', '\ua97c', 2, 2), ('\ua980', '\ua982', 0, 0), ('\ua9b3', '\ua9b3', 0, 0),
|
|
('\ua9b6', '\ua9b9', 0, 0), ('\ua9bc', '\ua9bc', 0, 0), ('\ua9e5', '\ua9e5', 0, 0),
|
|
('\uaa29', '\uaa2e', 0, 0), ('\uaa31', '\uaa32', 0, 0), ('\uaa35', '\uaa36', 0, 0),
|
|
('\uaa43', '\uaa43', 0, 0), ('\uaa4c', '\uaa4c', 0, 0), ('\uaa7c', '\uaa7c', 0, 0),
|
|
('\uaab0', '\uaab0', 0, 0), ('\uaab2', '\uaab4', 0, 0), ('\uaab7', '\uaab8', 0, 0),
|
|
('\uaabe', '\uaabf', 0, 0), ('\uaac1', '\uaac1', 0, 0), ('\uaaec', '\uaaed', 0, 0),
|
|
('\uaaf6', '\uaaf6', 0, 0), ('\uabe5', '\uabe5', 0, 0), ('\uabe8', '\uabe8', 0, 0),
|
|
('\uabed', '\uabed', 0, 0), ('\uac00', '\ud7a3', 2, 2), ('\ue000', '\uf8ff', 1, 2),
|
|
('\uf900', '\ufaff', 2, 2), ('\ufb1e', '\ufb1e', 0, 0), ('\ufe00', '\ufe0f', 0, 0),
|
|
('\ufe10', '\ufe19', 2, 2), ('\ufe20', '\ufe2d', 0, 0), ('\ufe30', '\ufe52', 2, 2),
|
|
('\ufe54', '\ufe66', 2, 2), ('\ufe68', '\ufe6b', 2, 2), ('\ufeff', '\ufeff', 0, 0),
|
|
('\uff01', '\uff60', 2, 2), ('\uffe0', '\uffe6', 2, 2), ('\ufff9', '\ufffb', 0, 0),
|
|
('\ufffd', '\ufffd', 1, 2), ('\U000101fd', '\U000101fd', 0, 0), ('\U000102e0', '\U000102e0',
|
|
0, 0), ('\U00010376', '\U0001037a', 0, 0), ('\U00010a01', '\U00010a0f', 0, 0),
|
|
('\U00010a38', '\U00010a3f', 0, 0), ('\U00010ae5', '\U00010ae6', 0, 0), ('\U00011001',
|
|
'\U00011001', 0, 0), ('\U00011038', '\U00011046', 0, 0), ('\U0001107f', '\U00011081', 0, 0),
|
|
('\U000110b3', '\U000110b6', 0, 0), ('\U000110b9', '\U000110ba', 0, 0), ('\U000110bd',
|
|
'\U000110bd', 0, 0), ('\U00011100', '\U00011102', 0, 0), ('\U00011127', '\U0001112b', 0, 0),
|
|
('\U0001112d', '\U00011134', 0, 0), ('\U00011173', '\U00011173', 0, 0), ('\U00011180',
|
|
'\U00011181', 0, 0), ('\U000111b6', '\U000111be', 0, 0), ('\U0001122f', '\U00011231', 0, 0),
|
|
('\U00011234', '\U00011234', 0, 0), ('\U00011236', '\U00011237', 0, 0), ('\U000112df',
|
|
'\U000112df', 0, 0), ('\U000112e3', '\U000112ea', 0, 0), ('\U00011301', '\U00011301', 0, 0),
|
|
('\U0001133c', '\U0001133c', 0, 0), ('\U00011340', '\U00011340', 0, 0), ('\U00011366',
|
|
'\U00011374', 0, 0), ('\U000114b3', '\U000114b8', 0, 0), ('\U000114ba', '\U000114ba', 0, 0),
|
|
('\U000114bf', '\U000114c0', 0, 0), ('\U000114c2', '\U000114c3', 0, 0), ('\U000115b2',
|
|
'\U000115b5', 0, 0), ('\U000115bc', '\U000115bd', 0, 0), ('\U000115bf', '\U000115c0', 0, 0),
|
|
('\U00011633', '\U0001163a', 0, 0), ('\U0001163d', '\U0001163d', 0, 0), ('\U0001163f',
|
|
'\U00011640', 0, 0), ('\U000116ab', '\U000116ab', 0, 0), ('\U000116ad', '\U000116ad', 0, 0),
|
|
('\U000116b0', '\U000116b5', 0, 0), ('\U000116b7', '\U000116b7', 0, 0), ('\U00016af0',
|
|
'\U00016af4', 0, 0), ('\U00016b30', '\U00016b36', 0, 0), ('\U00016f8f', '\U00016f92', 0, 0),
|
|
('\U0001b000', '\U0001b001', 2, 2), ('\U0001bc9d', '\U0001bc9e', 0, 0), ('\U0001bca0',
|
|
'\U0001bca3', 0, 0), ('\U0001d167', '\U0001d169', 0, 0), ('\U0001d173', '\U0001d182', 0, 0),
|
|
('\U0001d185', '\U0001d18b', 0, 0), ('\U0001d1aa', '\U0001d1ad', 0, 0), ('\U0001d242',
|
|
'\U0001d244', 0, 0), ('\U0001e8d0', '\U0001e8d6', 0, 0), ('\U0001f100', '\U0001f10a', 1, 2),
|
|
('\U0001f110', '\U0001f12d', 1, 2), ('\U0001f130', '\U0001f169', 1, 2), ('\U0001f170',
|
|
'\U0001f19a', 1, 2), ('\U0001f200', '\U0001f202', 2, 2), ('\U0001f210', '\U0001f23a', 2, 2),
|
|
('\U0001f240', '\U0001f248', 2, 2), ('\U0001f250', '\U0001f251', 2, 2), ('\U00020000',
|
|
'\U0002fffd', 2, 2), ('\U00030000', '\U0003fffd', 2, 2), ('\U000e0001', '\U000e007f', 0, 0),
|
|
('\U000e0100', '\U000e01ef', 0, 0), ('\U000f0000', '\U000ffffd', 1, 2), ('\U00100000',
|
|
'\U0010fffd', 1, 2)
|
|
];
|