--[[-----------------

Values that look like meaningless pass-through assignments actually have the purpose of forcing a dashed box
on printable characters that otherwise would not be identified as needing one. This avoids setting up a second config table for the box status.

The character U+1F3F7 LABEL actually looks like the tags in the Tags block. At least according to the standard. Reality will vary by font. See:
* https://www.unicode.org/charts/PDF/U1F300.pdf
* https://www.unicode.org/charts/PDF/UE0000.pdf

--]]-----------------

local display = {
-- Basic Latin
	[0x0000] = "NUL",
	[0x0001] = "SOH",
	[0x0002] = "STX",
	[0x0003] = "ETX",
	[0x0004] = "EOT",
	[0x0005] = "ENQ",
	[0x0006] = "ACK",
	[0x0007] = "BEL",
	[0x0008] = "BS",
	[0x0009] = "HT",
	[0x000A] = "LF",
	[0x000B] = "VT",
	[0x000C] = "FF",
	[0x000D] = "CR",
	[0x000E] = "SO",
	[0x000F] = "SI",
	[0x0010] = "DLE",
	[0x0011] = "DC1",
	[0x0012] = "DC2",
	[0x0013] = "DC3",
	[0x0014] = "DC4",
	[0x0015] = "NAK",
	[0x0016] = "SYN",
	[0x0017] = "ETB",
	[0x0018] = "CAN",
	[0x0019] = "EM",
	[0x001A] = "SUB",
	[0x001B] = "ESC",
	[0x001C] = "FS",
	[0x001D] = "GS",
	[0x001E] = "RS",
	[0x001F] = "US",
	[0x0020] = "SP",
	[0x007F] = "DEL",
-- Latin-1 Supplement
	[0x0080] = "XXX",
	[0x0081] = "XXX",
	[0x0082] = "BPH",
	[0x0083] = "NBH",
	[0x0084] = "IND",
	[0x0085] = "NEL",
	[0x0086] = "SSA",
	[0x0087] = "ESA",
	[0x0088] = "HTS",
	[0x0089] = "HTJ",
	[0x008A] = "VTS",
	[0x008B] = "PLD",
	[0x008C] = "PLU",
	[0x008D] = "RI",
	[0x008E] = "SS2",
	[0x008F] = "SS3",
	[0x0090] = "DCS",
	[0x0091] = "PU1",
	[0x0092] = "PU2",
	[0x0093] = "STS",
	[0x0094] = "CCH",
	[0x0095] = "MW",
	[0x0096] = "SPA",
	[0x0097] = "EPA",
	[0x0098] = "SOS",
	[0x0099] = "XXX",
	[0x009A] = "SCI",
	[0x009B] = "CSI",
	[0x009C] = "ST",
	[0x009D] = "OSC",
	[0x009E] = "PM",
	[0x009F] = "APC",
	[0x00A0] = "NB SP",
	[0x00AD] = "SHY -",
-- Combining Diacritical Marks
	[0x034F] = "CGJ ◌",
-- Arabic
	[0x0600] = mw.ustring.char(0x0600),
	[0x0601] = mw.ustring.char(0x0601),
	[0x0602] = mw.ustring.char(0x0602),
	[0x0603] = mw.ustring.char(0x0603),
	[0x0604] = mw.ustring.char(0x0604),
	[0x0605] = mw.ustring.char(0x0605),
	[0x061C] = "ALM",
	[0x06DD] = mw.ustring.char(0x06DD),
-- Syriac
	[0x070F] = mw.ustring.char(0x070F).." SAM",
-- Arabic Extended-B
	[0x0890] = mw.ustring.char(0x0890),
	[0x0891] = mw.ustring.char(0x0891),
-- Arabic Extended-A
	[0x08E2] = mw.ustring.char(0x08E2),
-- Kannada
	[0x0CF1] = mw.ustring.char(0x0CF1),
	[0x0CF2] = mw.ustring.char(0x0CF2),
-- Malayalam
	[0x0D4E] = mw.ustring.char(0x0D4E),
-- Tibetan
	[0x0F0C] = mw.ustring.char(0x0F0C).." NB",
-- Myanmar
	[0x1039] = mw.ustring.char(0x1039),
-- Hangul Jamo
	[0x115F] = "HC F",
	[0x1160] = "HJ F",
-- Ogham
	[0x1680] = mw.ustring.char(0x1680),
-- Khmer
	[0x17B4] = "KIV AQ",
	[0x17B5] = "KIV AA",
	[0x17D2] = mw.ustring.char(0x17D2),
-- Mongolian
	[0x180B] = "FV S1",
	[0x180C] = "FV S2",
	[0x180D] = "FV S3",
	[0x180E] = "MV S",
	[0x180F] = "FV S4",
-- Tai Tham
	[0x1A60] = mw.ustring.char(0x1A60),
-- Sundanese
	[0x1BAB] = mw.ustring.char(0x1BAB),
-- Vedic Extensions
	[0x1CF5] = mw.ustring.char(0x1CF5),
	[0x1CF6] = mw.ustring.char(0x1CF6),
-- General Punctuation
	[0x2000] = "NQ SP",
	[0x2001] = "MQ SP",
	[0x2002] = "EN SP",
	[0x2003] = "EM SP",
	[0x2004] = "3/M SP",
	[0x2005] = "4/M SP",
	[0x2006] = "6/M SP",
	[0x2007] = "F SP",
	[0x2008] = "P SP",
	[0x2009] = "TH SP",
	[0x200A] = "H SP",
	[0x200B] = "ZW SP",
	[0x200C] = "ZW NJ",
	[0x200D] = "ZW J",
	[0x200E] = "LRM",
	[0x200F] = "RLM",
	[0x2011] = "NB ‑",
	[0x2028] = "L SEP",
	[0x2029] = "P SEP",
	[0x202A] = "LRE",
	[0x202B] = "RLE",
	[0x202C] = "PDF",
	[0x202D] = "LRO",
	[0x202E] = "RLO",
	[0x202F] = "NNB SP",
	[0x205F] = "MM SP",
	[0x2060] = "WJ",
	[0x2061] = "<i>ƒ</i><small>()</small>",
	[0x2062] = "✕",
	[0x2063] = ",",
	[0x2064] = "+",
	[0x2066] = "LRI",
	[0x2067] = "RLI",
	[0x2068] = "FSI",
	[0x2069] = "PDI",
	[0x206A] = "I SS",
	[0x206B] = "A SS",
	[0x206C] = "I AFS",
	[0x206D] = "A AFS",
	[0x206E] = "NA DS",
	[0x206F] = "NO DS",
-- Tifinagh
	[0x2D7F] = mw.ustring.char(0x2D7F),
-- Supplemental Punctuation
	[0x2E3A] = "2M"..mw.ustring.char(0x2E3A),
	[0x2E3B] = "3M"..mw.ustring.char(0x2E3B),
-- CJK Symbols and Punctuation
	[0x3000] = "ID SP", --whitespace anyway
	[0x303E] = mw.ustring.char(0x303E),
-- Hangul Compatibility Jamo
	[0x3164] = "HF",
-- Meetei Mayek Extensions
	[0xAAF6] = mw.ustring.char(0xAAF6),
-- Variation Selectors
	[0xFE00] = "VS 1",
	[0xFE01] = "VS 2",
	[0xFE02] = "VS 3",
	[0xFE03] = "VS 4",
	[0xFE04] = "VS 5",
	[0xFE05] = "VS 6",
	[0xFE06] = "VS 7",
	[0xFE07] = "VS 8",
	[0xFE08] = "VS 9",
	[0xFE09] = "VS 10",
	[0xFE0A] = "VS 11",
	[0xFE0B] = "VS 12",
	[0xFE0C] = "VS 13",
	[0xFE0D] = "VS 14",
	[0xFE0E] = "VS 15",
	[0xFE0F] = "VS 16",
-- Arabic Presentation Forms-B
	[0xFEFF] = "ZWN BSP",
-- Halfwidth and Fullwidth Forms
	[0xFFA0] = "HW HF",
-- Specials
	[0xFFF9] = "IA A",
	[0xFFFA] = "IA S",
	[0xFFFB] = "IA T",
	[0xFFFC] = "OBJ",
-- Kharoshthi
	[0x10A3F] = mw.ustring.char(0x10A3F),
-- Brahmi
	[0x11003] = mw.ustring.char(0x11003),
	[0x11004] = mw.ustring.char(0x11004),
	[0x1107F] = "BNJ",
-- Kaithi
	[0x110BD] = mw.ustring.char(0x110BD),
	[0x110CD] = mw.ustring.char(0x110CD),
-- Chakma
	[0x11133] = mw.ustring.char(0x11133),
-- Sharada
	[0x111C2] = mw.ustring.char(0x111C2),
	[0x111C3] = mw.ustring.char(0x111C3),
-- Newa
	[0x11460] = mw.ustring.char(0x11460),
	[0x11461] = mw.ustring.char(0x11461),
-- Dives Akuru
	[0x1193E] = mw.ustring.char(0x1193E),
	[0x1193F] = mw.ustring.char(0x1193F),
	[0x11941] = mw.ustring.char(0x11941),
-- Zanabazar Square
	[0x11A3A] = mw.ustring.char(0x11A3A),
	[0x11A47] = mw.ustring.char(0x11A47),
-- Soyombo
	[0x11A84] = mw.ustring.char(0x11A84),
	[0x11A85] = mw.ustring.char(0x11A85),
	[0x11A86] = mw.ustring.char(0x11A86),
	[0x11A87] = mw.ustring.char(0x11A87),
	[0x11A88] = mw.ustring.char(0x11A88),
	[0x11A89] = mw.ustring.char(0x11A89),
	[0x11A99] = mw.ustring.char(0x11A99),
-- Masaram Gondi
	[0x11D45] = mw.ustring.char(0x11D45),
	[0x11D46] = mw.ustring.char(0x11D46),
-- Gunjala Gondi
	[0x11D97] = mw.ustring.char(0x11D97),
-- Kawi
	[0x11F02] = mw.ustring.char(0x11F02),
	[0x11F42] = mw.ustring.char(0x11F42),
-- Egyptian Hieroglyph Format Controls
	[0x13430] = mw.ustring.char(0x13430),
	[0x13431] = mw.ustring.char(0x13431),
	[0x13432] = mw.ustring.char(0x13432),
	[0x13433] = mw.ustring.char(0x13433),
	[0x13434] = mw.ustring.char(0x13434),
	[0x13435] = mw.ustring.char(0x13435),
	[0x13436] = mw.ustring.char(0x13436),
	[0x13437] = mw.ustring.char(0x13437),
	[0x13438] = mw.ustring.char(0x13438),
	[0x13439] = mw.ustring.char(0x13439),
	[0x1343A] = mw.ustring.char(0x1343A),
	[0x1343B] = mw.ustring.char(0x1343B),
	[0x1343C] = mw.ustring.char(0x1343C),
	[0x1343D] = mw.ustring.char(0x1343D),
	[0x1343E] = mw.ustring.char(0x1343E),
	[0x1343F] = mw.ustring.char(0x1343F),
	[0x13440] = mw.ustring.char(0x13440),
	[0x13441] = "FB",
	[0x13442] = "HB",
	[0x13447] = mw.ustring.char(0x13447),
	[0x13448] = mw.ustring.char(0x13448),
	[0x13449] = mw.ustring.char(0x13449),
	[0x1344A] = mw.ustring.char(0x1344A),
	[0x1344B] = mw.ustring.char(0x1344B),
	[0x1344C] = mw.ustring.char(0x1344C),
	[0x1344D] = mw.ustring.char(0x1344D),
	[0x1344E] = mw.ustring.char(0x1344E),
	[0x1344F] = mw.ustring.char(0x1344F),
	[0x13450] = mw.ustring.char(0x13450),
	[0x13451] = mw.ustring.char(0x13451),
	[0x13452] = mw.ustring.char(0x13452),
	[0x13453] = mw.ustring.char(0x13453),
	[0x13454] = mw.ustring.char(0x13454),
	[0x13455] = mw.ustring.char(0x13455),
-- Miao
	[0x16F8F] = mw.ustring.char(0x16F8F),
	[0x16F90] = mw.ustring.char(0x16F90),
	[0x16F91] = mw.ustring.char(0x16F91),
	[0x16F92] = mw.ustring.char(0x16F92),
-- Ideographic Symbols and Punctuation
	[0x16FE4] = "KSS F",
-- Duployan
	[0x1BC9D] = "DT LS",
-- Shorthand Format Controls
	[0x1BCA0] = mw.ustring.char(0x1BCA0),
	[0x1BCA1] = mw.ustring.char(0x1BCA1),
	[0x1BCA2] = mw.ustring.char(0x1BCA2),
	[0x1BCA3] = mw.ustring.char(0x1BCA3),
-- Musical Symbols
	[0x1D159] = "NULL NOTE HEAD",
	[0x1D173] = "BEGIN BEAM",
	[0x1D174] = "END BEAM",
	[0x1D175] = "BEGIN TIE",
	[0x1D176] = "END TIE",
	[0x1D177] = "BEGIN SLUR",
	[0x1D178] = "END SLUR",
	[0x1D179] = "BEGIN PHR.",
	[0x1D17A] = "END PHR.",
-- Sutton SignWriting
	[0x1DA9B] = "SW F2",
	[0x1DA9C] = "SW F3",
	[0x1DA9D] = "SW F4",
	[0x1DA9E] = "SW F5",
	[0x1DA9F] = "SW F6",
	[0x1DAA1] = "SW R2",
	[0x1DAA2] = "SW R3",
	[0x1DAA3] = "SW R4",
	[0x1DAA4] = "SW R5",
	[0x1DAA5] = "SW R6",
	[0x1DAA6] = "SW R7",
	[0x1DAA7] = "SW R8",
	[0x1DAA8] = "SW R9",
	[0x1DAA9] = "SW R10",
	[0x1DAAA] = "SW R11",
	[0x1DAAB] = "SW R12",
	[0x1DAAC] = "SW R13",
	[0x1DAAD] = "SW R14",
	[0x1DAAE] = "SW R15",
	[0x1DAAF] = "SW R16",
-- Enclosed Alphanumeric Supplement
	[0x1F1E6] = mw.ustring.char(0x1F1E6),
	[0x1F1E7] = mw.ustring.char(0x1F1E7),
	[0x1F1E8] = mw.ustring.char(0x1F1E8),
	[0x1F1E9] = mw.ustring.char(0x1F1E9),
	[0x1F1EA] = mw.ustring.char(0x1F1EA),
	[0x1F1EB] = mw.ustring.char(0x1F1EB),
	[0x1F1EC] = mw.ustring.char(0x1F1EC),
	[0x1F1ED] = mw.ustring.char(0x1F1ED),
	[0x1F1EE] = mw.ustring.char(0x1F1EE),
	[0x1F1EF] = mw.ustring.char(0x1F1EF),
	[0x1F1F0] = mw.ustring.char(0x1F1F0),
	[0x1F1F1] = mw.ustring.char(0x1F1F1),
	[0x1F1F2] = mw.ustring.char(0x1F1F2),
	[0x1F1F3] = mw.ustring.char(0x1F1F3),
	[0x1F1F4] = mw.ustring.char(0x1F1F4),
	[0x1F1F5] = mw.ustring.char(0x1F1F5),
	[0x1F1F6] = mw.ustring.char(0x1F1F6),
	[0x1F1F7] = mw.ustring.char(0x1F1F7),
	[0x1F1F8] = mw.ustring.char(0x1F1F8),
	[0x1F1F9] = mw.ustring.char(0x1F1F9),
	[0x1F1FA] = mw.ustring.char(0x1F1FA),
	[0x1F1FB] = mw.ustring.char(0x1F1FB),
	[0x1F1FC] = mw.ustring.char(0x1F1FC),
	[0x1F1FD] = mw.ustring.char(0x1F1FD),
	[0x1F1FE] = mw.ustring.char(0x1F1FE),
	[0x1F1FF] = mw.ustring.char(0x1F1FF),
	}

-- Tags
local tag = ' '..mw.ustring.char(0x1F3F7)
display[0xE0001] = "BEGIN"..tag
display[0xE0020] = "SP"..tag
for n = 0xE0021,0xE007F do display[n] = (string.char(n-0xE0000)..tag) end

-- Variation Selectors Supplement
for n = 0xE0100,0x0E01EF do display[n] = "VS "..(n-0xE00EF) end

return display