#!/usr/bin/env node let font = titles = random = false; const cmp = require("./completions.js"), fonts = { "alien": { "a": "\u15e9", "b": "\u15f7", "c": "\u1462", "d": "\u1572", "e": "\u163f", "f": "\u15b4", "g": "\u161c", "h": "\u157c", "i": "\u14f0", "j": "\u149a", "k": "\u15bd\u1438", "l": "\u14aa", "m": "\u163b", "n": "\u1609", "o": "\u14cd", "p": "\u1575", "q": "\u1574", "r": "\u1587", "s": "S", "t": "\u15b6", "u": "\u1458", "v": "\u143a", "w": "\u163a", "x": "\u166d", "y": "\u15bb", "z": "\u15f1", "A": "\u15e9", "B": "\u15f7", "C": "\u1462", "D": "\u1572", "E": "\u163f", "F": "\u15b4", "G": "\u161c", "H": "\u157c", "I": "\u14f0", "J": "\u149a", "K": "\u15bd\u1438", "L": "\u14aa", "M": "\u163b", "N": "\u1609", "O": "\u14cd", "P": "\u1575", "Q": "\u1574", "R": "\u1587", "S": "\u1515", "T": "\u15b6", "U": "\u1458", "V": "\u143a", "W": "\u163a", "X": "\u166d", "Y": "\u15bb", "Z": "\u15f1" }, "asian": { "a": "\u5342", "b": "\u4e43", "c": "\u531a", "d": "\u15ea", "e": "\u4e47", "f": "\u5343", "g": "\u13b6", "h": "\u5344", "i": "\u4e28", "j": "\uff8c", "k": "\u049c", "l": "\u3125", "m": "\u722a", "n": "\u51e0", "o": "\u3116", "p": "\u5369", "q": "\u024a", "r": "\u5c3a", "s": "\u4e02", "t": "\u3112", "u": "\u3129", "v": "\u142f", "w": "\u5c71", "x": "\u4e42", "y": "\u311a", "z": "\u4e59", "A": "\u5342", "B": "\u4e43", "C": "\u531a", "D": "\u15ea", "E": "\u4e47", "F": "\u5343", "G": "\u13b6", "H": "\u5344", "I": "\u4e28", "J": "\uff8c", "K": "\u049c", "L": "\u3125", "M": "\u722a", "N": "\u51e0", "O": "\u3116", "P": "\u5369", "Q": "\u024a", "R": "\u5c3a", "S": "\u4e02", "T": "\u3112", "U": "\u3129", "V": "\u142f", "W": "\u5c71", "X": "\u4e42", "Y": "\u311a", "Z": "\u4e59" }, "asian2": { "a": "\uff91", "b": "\u4e43", "c": "\u1103", "d": "\u308a", "e": "\u4e47", "f": "\uff77", "g": "\u30e0", "h": "\u3093", "i": "\uff89", "j": "\uff8c", "k": "\u30ba", "l": "\uff9a", "m": "\uffb6", "n": "\u5200", "o": "\u306e", "p": "\uff71", "q": "\u3090", "r": "\u5c3a", "s": "\u4e02", "t": "\uff72", "u": "\u3072", "v": "\u221a", "w": "W", "x": "\uff92", "y": "\uff98", "z": "\u4e59", "A": "\uff91", "B": "\u4e43", "C": "\u1103", "D": "\u308a", "E": "\u4e47", "F": "\uff77", "G": "\u30e0", "H": "\u3093", "I": "\uff89", "J": "\uff8c", "K": "\u30ba", "L": "\uff9a", "M": "\uffb6", "N": "\u5200", "O": "\u306e", "P": "\uff71", "Q": "\u3090", "R": "\u5c3a", "S": "\u4e02", "T": "\uff72", "U": "\u3072", "V": "\u221a", "X": "\uff92", "Y": "\uff98", "Z": "\u4e59" }, "bent": { "0": "\u2298", "1": "\ud835\udfd9", "2": "\u03e9", "3": "\u04e0", "4": "\u096b", "5": "\u01bc", "6": "\u03ec", "8": "\ud835\udfe0", "9": "\u096f", "a": "\u0105", "b": "\u048d", "c": "\u00e7", "d": "\u056a", "e": "\u04bd", "f": "\u0192", "g": "\u0581", "h": "\u0570", "i": "\u00ec", "j": "\u029d", "k": "\u049f", "l": "\u04c0", "m": "\u028d", "n": "\u0572", "o": "\u0585", "p": "\u0584", "q": "\u0566", "r": "\u027e", "s": "\u0282", "t": "\u0567", "u": "\u0574", "v": "\u0475", "w": "\u0561", "x": "\u00d7", "y": "\u057e", "z": "\u0540", "A": "\u023a", "B": "\u03b2", "C": "\u21bb", "D": "\u13a0", "E": "\u0190", "F": "\u0191", "G": "\u0193", "H": "\u01f6", "I": "\u012f", "J": "\u0644", "K": "\u04a0", "L": "\ua748", "M": "\u2c6e", "N": "\u17a0", "O": "\u0da7", "P": "\u03c6", "Q": "\u04a8", "R": "\u0f60", "S": "\u03da", "T": "\u0372", "U": "\u0531", "V": "\u1efc", "W": "\u0c1a", "X": "\u10ef", "Y": "\u04cb", "Z": "\u0240" }, "bolditalic": { "a": "\ud835\ude56", "b": "\ud835\ude57", "c": "\ud835\ude58", "d": "\ud835\ude59", "e": "\ud835\ude5a", "f": "\ud835\ude5b", "g": "\ud835\ude5c", "h": "\ud835\ude5d", "i": "\ud835\ude5e", "j": "\ud835\ude5f", "k": "\ud835\ude60", "l": "\ud835\ude61", "m": "\ud835\ude62", "n": "\ud835\ude63", "o": "\ud835\ude64", "p": "\ud835\ude65", "q": "\ud835\ude66", "r": "\ud835\ude67", "s": "\ud835\ude68", "t": "\ud835\ude69", "u": "\ud835\ude6a", "v": "\ud835\ude6b", "w": "\ud835\ude6c", "x": "\ud835\ude6d", "y": "\ud835\ude6e", "z": "\ud835\ude6f", "A": "\ud835\ude3c", "B": "\ud835\ude3d", "C": "\ud835\ude3e", "D": "\ud835\ude3f", "E": "\ud835\ude40", "F": "\ud835\ude41", "G": "\ud835\ude42", "H": "\ud835\ude43", "I": "\ud835\ude44", "J": "\ud835\ude45", "K": "\ud835\ude46", "L": "\ud835\ude47", "M": "\ud835\ude48", "N": "\ud835\ude49", "O": "\ud835\ude4a", "P": "\ud835\ude4b", "Q": "\ud835\ude4c", "R": "\ud835\ude4d", "S": "\ud835\ude4e", "T": "\ud835\ude4f", "U": "\ud835\ude50", "V": "\ud835\ude51", "W": "\ud835\ude52", "X": "\ud835\ude53", "Y": "\ud835\ude54", "Z": "\ud835\ude55" }, "bold": { "0": "\ud835\udfce", "1": "\ud835\udfcf", "2": "\ud835\udfd0", "3": "\ud835\udfd1", "4": "\ud835\udfd2", "5": "\ud835\udfd3", "6": "\ud835\udfd4", "7": "\ud835\udfd5", "8": "\ud835\udfd6", "9": "\ud835\udfd7", "a": "\ud835\udc1a", "b": "\ud835\udc1b", "c": "\ud835\udc1c", "d": "\ud835\udc1d", "e": "\ud835\udc1e", "f": "\ud835\udc1f", "g": "\ud835\udc20", "h": "\ud835\udc21", "i": "\ud835\udc22", "j": "\ud835\udc23", "k": "\ud835\udc24", "l": "\ud835\udc25", "m": "\ud835\udc26", "n": "\ud835\udc27", "o": "\ud835\udc28", "p": "\ud835\udc29", "q": "\ud835\udc2a", "r": "\ud835\udc2b", "s": "\ud835\udc2c", "t": "\ud835\udc2d", "u": "\ud835\udc2e", "v": "\ud835\udc2f", "w": "\ud835\udc30", "x": "\ud835\udc31", "y": "\ud835\udc32", "z": "\ud835\udc33", "A": "\ud835\udc00", "B": "\ud835\udc01", "C": "\ud835\udc02", "D": "\ud835\udc03", "E": "\ud835\udc04", "F": "\ud835\udc05", "G": "\ud835\udc06", "H": "\ud835\udc07", "I": "\ud835\udc08", "J": "\ud835\udc09", "K": "\ud835\udc0a", "L": "\ud835\udc0b", "M": "\ud835\udc0c", "N": "\ud835\udc0d", "O": "\ud835\udc0e", "P": "\ud835\udc0f", "Q": "\ud835\udc10", "R": "\ud835\udc11", "S": "\ud835\udc12", "T": "\ud835\udc13", "U": "\ud835\udc14", "V": "\ud835\udc15", "W": "\ud835\udc16", "X": "\ud835\udc17", "Y": "\ud835\udc18", "Z": "\ud835\udc19" }, "circled": { "A": "\u24b6", "B": "\u24b7", "C": "\u24b8", "D": "\u24b9", "E": "\u24ba", "F": "\u24bb", "G": "\u24bc", "H": "\u24bd", "I": "\u24be", "J": "\u24bf", "K": "\u24c0", "L": "\u24c1", "M": "\u24c2", "N": "\u24c3", "O": "\u24c4", "P": "\u24c5", "Q": "\u24c6", "R": "\u24c7", "S": "\u24c8", "T": "\u24c9", "U": "\u24ca", "V": "\u24cb", "W": "\u24cc", "X": "\u24cd", "Y": "\u24ce", "Z": "\u24cf", "a": "\u24d0", "b": "\u24d1", "c": "\u24d2", "d": "\u24d3", "e": "\u24d4", "f": "\u24d5", "g": "\u24d6", "h": "\u24d7", "i": "\u24d8", "j": "\u24d9", "k": "\u24da", "l": "\u24db", "m": "\u24dc", "n": "\u24dd", "o": "\u24de", "p": "\u24df", "q": "\u24e0", "r": "\u24e1", "s": "\u24e2", "t": "\u24e3", "u": "\u24e4", "v": "\u24e5", "w": "\u24e6", "x": "\u24e7", "y": "\u24e8", "z": "\u24e9", "1": "\u2460", "2": "\u2461", "3": "\u2462", "4": "\u2463", "5": "\u2464", "6": "\u2465", "7": "\u2466", "8": "\u2467", "9": "\u2468" }, "currency": { "a": "\u20b3", "b": "\u0e3f", "c": "\u20b5", "d": "\u0110", "e": "\u0246", "f": "\u20a3", "g": "\u20b2", "h": "\u2c67", "i": "\u0142", "j": "J", "k": "\u20ad", "l": "\u2c60", "m": "\u20a5", "n": "\u20a6", "o": "\u00d8", "p": "\u20b1", "q": "Q", "r": "\u2c64", "s": "\u20b4", "t": "\u20ae", "u": "\u0244", "v": "V", "w": "\u20a9", "x": "\u04fe", "y": "\u024e", "z": "\u2c6b", "A": "\u20b3", "B": "\u0e3f", "C": "\u20b5", "D": "\u0110", "E": "\u0246", "F": "\u20a3", "G": "\u20b2", "H": "\u2c67", "I": "\u0142", "J": "J", "K": "\u20ad", "L": "\u2c60", "M": "\u20a5", "N": "\u20a6", "O": "\u00d8", "P": "\u20b1", "Q": "Q", "R": "\u2c64", "S": "\u20b4", "T": "\u20ae", "U": "\u0244", "V": "V", "W": "\u20a9", "X": "\u04fe", "Y": "\u024e", "Z": "\u2c6b" }, "cursive": { "a": "\ud835\udcea", "b": "\ud835\udceb", "c": "\ud835\udcec", "d": "\ud835\udced", "e": "\ud835\udcee", "f": "\ud835\udcef", "g": "\ud835\udcf0", "h": "\ud835\udcf1", "i": "\ud835\udcf2", "j": "\ud835\udcf3", "k": "\ud835\udcf4", "l": "\ud835\udcf5", "m": "\ud835\udcf6", "n": "\ud835\udcf7", "o": "\ud835\udcf8", "p": "\ud835\udcf9", "q": "\ud835\udcfa", "r": "\ud835\udcfb", "s": "\ud835\udcfc", "t": "\ud835\udcfd", "u": "\ud835\udcfe", "v": "\ud835\udcff", "w": "\ud835\udd00", "x": "\ud835\udd01", "y": "\ud835\udd02", "z": "\ud835\udd03", "A": "\ud835\udcd0", "B": "\ud835\udcd1", "C": "\ud835\udcd2", "D": "\ud835\udcd3", "E": "\ud835\udcd4", "F": "\ud835\udcd5", "G": "\ud835\udcd6", "H": "\ud835\udcd7", "I": "\ud835\udcd8", "J": "\ud835\udcd9", "K": "\ud835\udcda", "L": "\ud835\udcdb", "M": "\ud835\udcdc", "N": "\ud835\udcdd", "O": "\ud835\udcde", "P": "\ud835\udcdf", "Q": "\ud835\udce0", "R": "\ud835\udce1", "S": "\ud835\udce2", "T": "\ud835\udce3", "U": "\ud835\udce4", "V": "\ud835\udce5", "W": "\ud835\udce6", "X": "\ud835\udce7", "Y": "\ud835\udce8", "Z": "\ud835\udce9" }, "doublestruck": { "0": "\ud835\udfd8", "1": "\ud835\udfd9", "2": "\ud835\udfda", "3": "\ud835\udfdb", "4": "\ud835\udfdc", "5": "\ud835\udfdd", "6": "\ud835\udfde", "7": "\ud835\udfdf", "8": "\ud835\udfe0", "9": "\ud835\udfe1", "a": "\ud835\udd52", "b": "\ud835\udd53", "c": "\ud835\udd54", "d": "\ud835\udd55", "e": "\ud835\udd56", "f": "\ud835\udd57", "g": "\ud835\udd58", "h": "\ud835\udd59", "i": "\ud835\udd5a", "j": "\ud835\udd5b", "k": "\ud835\udd5c", "l": "\ud835\udd5d", "m": "\ud835\udd5e", "n": "\ud835\udd5f", "o": "\ud835\udd60", "p": "\ud835\udd61", "q": "\ud835\udd62", "r": "\ud835\udd63", "s": "\ud835\udd64", "t": "\ud835\udd65", "u": "\ud835\udd66", "v": "\ud835\udd67", "w": "\ud835\udd68", "x": "\ud835\udd69", "y": "\ud835\udd6a", "z": "\ud835\udd6b", "A": "\ud835\udd38", "B": "\ud835\udd39", "C": "\u2102", "D": "\ud835\udd3b", "E": "\ud835\udd3c", "F": "\ud835\udd3d", "G": "\ud835\udd3e", "H": "\u210d", "I": "\ud835\udd40", "J": "\ud835\udd41", "K": "\ud835\udd42", "L": "\ud835\udd43", "M": "\ud835\udd44", "N": "\u2115", "O": "\ud835\udd46", "P": "\u2119", "Q": "\u211a", "R": "\u211d", "S": "\ud835\udd4a", "T": "\ud835\udd4b", "U": "\ud835\udd4c", "V": "\ud835\udd4d", "W": "\ud835\udd4e", "X": "\ud835\udd4f", "Y": "\ud835\udd50", "Z": "\u2124" }, "flip": { ",": "\u02bb", "!": "\u00a1", "?": "\u00bf", ".": "\u0387", "'": "\u02cc", "\"": "\u02cc\u02cc", "*": "\u2093", "&": "\u214b", "1": "\u0196", "2": "\u0547", "3": "\u0190", "4": "h", "5": "\u0aec", "6": "9", "7": "L", "9": "6", "A": "\u2c6f", "a": "\u0250", "B": "\ua4ed", "b": "q", "C": "\ua4db", "c": "\u0254", "D": "\ua4f7", "d": "p", "E": "\u018e", "e": "\u01dd", "F": "\ua4de", "f": "\u025f", "G": "\ua4e8", "g": "\u0253", "h": "\u0265", "i": "\u1d09", "J": "\u017f", "j": "\u017f", "K": "\ua4d8", "k": "\u029e", "L": "\ua4f6", "l": "\u0e45", "M": "W", "m": "\u026f", "n": "u", "P": "\ua4d2", "p": "d", "Q": "\u1ff8", "q": "b", "R": "\ua4e4", "r": "\u0279", "T": "\ua4d5", "t": "\u0287", "U": "\ua4f5", "u": "n", "V": "\ua4e5", "v": "\u028c", "W": "M", "w": "\u028d", "Y": "\u2144", "y": "\u028e" }, "frakturbold": { "a": "\ud835\udd86", "b": "\ud835\udd87", "c": "\ud835\udd88", "d": "\ud835\udd89", "e": "\ud835\udd8a", "f": "\ud835\udd8b", "g": "\ud835\udd8c", "h": "\ud835\udd8d", "i": "\ud835\udd8e", "j": "\ud835\udd8f", "k": "\ud835\udd90", "l": "\ud835\udd91", "m": "\ud835\udd92", "n": "\ud835\udd93", "o": "\ud835\udd94", "p": "\ud835\udd95", "q": "\ud835\udd96", "r": "\ud835\udd97", "s": "\ud835\udd98", "t": "\ud835\udd99", "u": "\ud835\udd9a", "v": "\ud835\udd9b", "w": "\ud835\udd9c", "x": "\ud835\udd9d", "y": "\ud835\udd9e", "z": "\ud835\udd9f", "A": "\ud835\udd6c", "B": "\ud835\udd6d", "C": "\ud835\udd6e", "D": "\ud835\udd6f", "E": "\ud835\udd70", "F": "\ud835\udd71", "G": "\ud835\udd72", "H": "\ud835\udd73", "I": "\ud835\udd74", "J": "\ud835\udd75", "K": "\ud835\udd76", "L": "\ud835\udd77", "M": "\ud835\udd78", "N": "\ud835\udd79", "O": "\ud835\udd7a", "P": "\ud835\udd7b", "Q": "\ud835\udd7c", "R": "\ud835\udd7d", "S": "\ud835\udd7e", "T": "\ud835\udd7f", "U": "\ud835\udd80", "V": "\ud835\udd81", "W": "\ud835\udd82", "X": "\ud835\udd83", "Y": "\ud835\udd84", "Z": "\ud835\udd85" }, "fraktur": { "a": "\ud835\udd1e", "b": "\ud835\udd1f", "c": "\ud835\udd20", "d": "\ud835\udd21", "e": "\ud835\udd22", "f": "\ud835\udd23", "g": "\ud835\udd24", "h": "\ud835\udd25", "i": "\ud835\udd26", "j": "\ud835\udd27", "k": "\ud835\udd28", "l": "\ud835\udd29", "m": "\ud835\udd2a", "n": "\ud835\udd2b", "o": "\ud835\udd2c", "p": "\ud835\udd2d", "q": "\ud835\udd2e", "r": "\ud835\udd2f", "s": "\ud835\udd30", "t": "\ud835\udd31", "u": "\ud835\udd32", "v": "\ud835\udd33", "w": "\ud835\udd34", "x": "\ud835\udd35", "y": "\ud835\udd36", "z": "\ud835\udd37", "A": "\ud835\udd04", "B": "\ud835\udd05", "C": "\u212d", "D": "\ud835\udd07", "E": "\ud835\udd08", "F": "\ud835\udd09", "G": "\ud835\udd0a", "H": "\u210c", "I": "\u2111", "J": "\ud835\udd0d", "K": "\ud835\udd0e", "L": "\ud835\udd0f", "M": "\ud835\udd10", "N": "\ud835\udd11", "O": "\ud835\udd12", "P": "\ud835\udd13", "Q": "\ud835\udd14", "R": "\u211c", "S": "\ud835\udd16", "T": "\ud835\udd17", "U": "\ud835\udd18", "V": "\ud835\udd19", "W": "\ud835\udd1a", "X": "\ud835\udd1b", "Y": "\ud835\udd1c", "Z": "\u2128" }, "greek": { "a": "\u03b1", "b": "\u0432", "c": "\u00a2", "d": "\u2202", "e": "\u0454", "f": "\u0192", "h": "\u043d", "i": "\u03b9", "j": "\u05e0", "k": "\u043a", "l": "\u2113", "m": "\u043c", "n": "\u03b7", "o": "\u03c3", "p": "\u03c1", "r": "\u044f", "s": "\u0455", "t": "\u0442", "u": "\u03c5", "v": "\u03bd", "w": "\u03c9", "x": "\u03c7", "y": "\u0443", "A": "\u03b1", "B": "\u0432", "C": "\u00a2", "D": "\u2202", "E": "\u0454", "F": "\u0192", "G": "g", "H": "\u043d", "I": "\u03b9", "J": "\u05e0", "K": "\u043a", "L": "\u2113", "M": "\u043c", "N": "\u03b7", "O": "\u03c3", "P": "\u03c1", "Q": "q", "R": "\u044f", "S": "\u0455", "T": "\u0442", "U": "\u03c5", "V": "\u03bd", "W": "\u03c9", "X": "\u03c7", "Y": "\u0443", "Z": "z" }, "invertedsquares": { "q": "\ud83c\udd80", "w": "\ud83c\udd86", "e": "\ud83c\udd74", "r": "\ud83c\udd81", "t": "\ud83c\udd83", "y": "\ud83c\udd88", "u": "\ud83c\udd84", "i": "\ud83c\udd78", "o": "\ud83c\udd7e", "p": "\ud83c\udd7f", "a": "\ud83c\udd70", "s": "\ud83c\udd82", "d": "\ud83c\udd73", "f": "\ud83c\udd75", "g": "\ud83c\udd76", "h": "\ud83c\udd77", "j": "\ud83c\udd79", "k": "\ud83c\udd7a", "l": "\ud83c\udd7b", "z": "\ud83c\udd89", "x": "\ud83c\udd87", "c": "\ud83c\udd72", "v": "\ud83c\udd85", "b": "\ud83c\udd71", "n": "\ud83c\udd7d", "m": "\ud83c\udd7c" }, "italic": { "a": "\ud835\ude22", "b": "\ud835\ude23", "c": "\ud835\ude24", "d": "\ud835\ude25", "e": "\ud835\ude26", "f": "\ud835\ude27", "g": "\ud835\ude28", "h": "\ud835\ude29", "i": "\ud835\ude2a", "j": "\ud835\ude2b", "k": "\ud835\ude2c", "l": "\ud835\ude2d", "m": "\ud835\ude2e", "n": "\ud835\ude2f", "o": "\ud835\ude30", "p": "\ud835\ude31", "q": "\ud835\ude32", "r": "\ud835\ude33", "s": "\ud835\ude34", "t": "\ud835\ude35", "u": "\ud835\ude36", "v": "\ud835\ude37", "w": "\ud835\ude38", "x": "\ud835\ude39", "y": "\ud835\ude3a", "z": "\ud835\ude3b", "A": "\ud835\ude08", "B": "\ud835\ude09", "C": "\ud835\ude0a", "D": "\ud835\ude0b", "E": "\ud835\ude0c", "F": "\ud835\ude0d", "G": "\ud835\ude0e", "H": "\ud835\ude0f", "I": "\ud835\ude10", "J": "\ud835\ude11", "K": "\ud835\ude12", "L": "\ud835\ude13", "M": "\ud835\ude14", "N": "\ud835\ude15", "O": "\ud835\ude16", "P": "\ud835\ude17", "Q": "\ud835\ude18", "R": "\ud835\ude19", "S": "\ud835\ude1a", "T": "\ud835\ude1b", "U": "\ud835\ude1c", "V": "\ud835\ude1d", "W": "\ud835\ude1e", "X": "\ud835\ude1f", "Y": "\ud835\ude20", "Z": "\ud835\ude21" }, "mirrorflip": { ",": "\u02cb", "!": "\u00a1", "?": "\u01be", ".": "\u0387", "'": "\u02cc", "\"": "\u02cc\u02cc", "*": "\u2093", "&": "\u214b", "1": "\u0196", "2": "5", "4": "\u0aa4", "5": "\u0ae8", "6": "\u03f1", "7": "\u02e9", "9": "\u10db", "A": "\u2c6f", "a": "\u0251", "b": "p", "d": "q", "e": "\u050d", "F": "\u0537", "f": "\u027b", "G": "\u04bc", "g": "\u10db", "h": "\u03bc", "i": "\u1d09", "J": "\u0542", "j": "\u0e45", "k": "\u0138", "L": "\u0393", "l": "\u027c", "M": "W", "m": "w", "N": "\u0418", "n": "u", "P": "b", "p": "b", "Q": "\u2940", "q": "d", "R": "\u0281", "r": "\u0281", "S": "\u01a7", "s": "\u01a8", "T": "\ua4d5", "t": "\u03dd", "U": "\ua4f5", "u": "n", "V": "\u039b", "v": "\u028c", "W": "M", "w": "\u028d", "Y": "\u2144", "y": "\u03bb" }, "mirror": { ",": "\u02ce", "?": "\u2e2e", "(": ")", ")": "(", "1": "\u0196", "2": "\u03c2", "3": "\u01b8", "4": "\u03bc", "5": "\u091f", "6": "\u10db", "7": "\u0662", "9": "\u0b67", "a": "\u0252", "B": "\ua4ed", "b": "d", "C": "\u0186", "c": "\u0254", "D": "\ua4f7", "d": "b", "E": "\u018e", "e": "\u01dd", "F": "\ua7fb", "f": "\u0287", "G": "\u04d8", "g": "\u03f1", "h": "\u029c", "J": "\u10b1", "j": "\u012f", "K": "\ua4d8", "k": "\u029e", "L": "\u2143", "N": "\u0418", "P": "\ua7fc", "p": "q", "Q": "\u03d8", "q": "p", "R": "\u042f", "r": "\u027f", "S": "\u01a7", "s": "\u01a8", "t": "\u0248", "u": "\u03c5", "y": "\u03b3" }, "mono": { "0": "\ud835\udff6", "1": "\ud835\udff7", "2": "\ud835\udff8", "3": "\ud835\udff9", "4": "\ud835\udffa", "5": "\ud835\udffb", "6": "\ud835\udffc", "7": "\ud835\udffd", "8": "\ud835\udffe", "9": "\ud835\udfff", "a": "\ud835\ude8a", "b": "\ud835\ude8b", "c": "\ud835\ude8c", "d": "\ud835\ude8d", "e": "\ud835\ude8e", "f": "\ud835\ude8f", "g": "\ud835\ude90", "h": "\ud835\ude91", "i": "\ud835\ude92", "j": "\ud835\ude93", "k": "\ud835\ude94", "l": "\ud835\ude95", "m": "\ud835\ude96", "n": "\ud835\ude97", "o": "\ud835\ude98", "p": "\ud835\ude99", "q": "\ud835\ude9a", "r": "\ud835\ude9b", "s": "\ud835\ude9c", "t": "\ud835\ude9d", "u": "\ud835\ude9e", "v": "\ud835\ude9f", "w": "\ud835\udea0", "x": "\ud835\udea1", "y": "\ud835\udea2", "z": "\ud835\udea3", "A": "\ud835\ude70", "B": "\ud835\ude71", "C": "\ud835\ude72", "D": "\ud835\ude73", "E": "\ud835\ude74", "F": "\ud835\ude75", "G": "\ud835\ude76", "H": "\ud835\ude77", "I": "\ud835\ude78", "J": "\ud835\ude79", "K": "\ud835\ude7a", "L": "\ud835\ude7b", "M": "\ud835\ude7c", "N": "\ud835\ude7d", "O": "\ud835\ude7e", "P": "\ud835\ude7f", "Q": "\ud835\ude80", "R": "\ud835\ude81", "S": "\ud835\ude82", "T": "\ud835\ude83", "U": "\ud835\ude84", "V": "\ud835\ude85", "W": "\ud835\ude86", "X": "\ud835\ude87", "Y": "\ud835\ude88", "Z": "\ud835\ude89" }, "neon": { "a": "\u15e9", "b": "\u15f7", "c": "\u1455", "d": "\u15ea", "e": "E", "f": "\u15b4", "g": "G", "h": "\u157c", "i": "I", "j": "\u148d", "k": "K", "l": "\u14aa", "m": "\u15f0", "n": "\u144e", "o": "O", "p": "\u146d", "q": "\u146b", "r": "\u1587", "s": "\u1515", "t": "T", "u": "\u144c", "v": "\u142f", "w": "\u15ef", "x": "\u166d", "y": "Y", "z": "\u1614", "A": "\u15e9", "B": "\u15f7", "C": "\u1455", "D": "\u15ea", "F": "\u15b4", "H": "\u157c", "J": "\u148d", "L": "\u14aa", "M": "\u15f0", "N": "\u144e", "P": "\u146d", "Q": "\u146b", "R": "\u1587", "S": "\u1515", "U": "\u144c", "V": "\u142f", "W": "\u15ef", "X": "\u166d", "Z": "\u1614" }, "squares": { "a": "\ud83c\udd30", "b": "\ud83c\udd31", "c": "\ud83c\udd32", "d": "\ud83c\udd33", "e": "\ud83c\udd34", "f": "\ud83c\udd35", "g": "\ud83c\udd36", "h": "\ud83c\udd37", "i": "\ud83c\udd38", "j": "\ud83c\udd39", "k": "\ud83c\udd3a", "l": "\ud83c\udd3b", "m": "\ud83c\udd3c", "n": "\ud83c\udd3d", "o": "\ud83c\udd3e", "p": "\ud83c\udd3f", "q": "\ud83c\udd40", "r": "\ud83c\udd41", "s": "\ud83c\udd42", "t": "\ud83c\udd43", "u": "\ud83c\udd44", "v": "\ud83c\udd45", "w": "\ud83c\udd46", "x": "\ud83c\udd47", "y": "\ud83c\udd48", "z": "\ud83c\udd49", "A": "\ud83c\udd30", "B": "\ud83c\udd31", "C": "\ud83c\udd32", "D": "\ud83c\udd33", "E": "\ud83c\udd34", "F": "\ud83c\udd35", "G": "\ud83c\udd36", "H": "\ud83c\udd37", "I": "\ud83c\udd38", "J": "\ud83c\udd39", "K": "\ud83c\udd3a", "L": "\ud83c\udd3b", "M": "\ud83c\udd3c", "N": "\ud83c\udd3d", "O": "\ud83c\udd3e", "P": "\ud83c\udd3f", "Q": "\ud83c\udd40", "R": "\ud83c\udd41", "S": "\ud83c\udd42", "T": "\ud83c\udd43", "U": "\ud83c\udd44", "V": "\ud83c\udd45", "W": "\ud83c\udd46", "X": "\ud83c\udd47", "Y": "\ud83c\udd48", "Z": "\ud83c\udd49" }, "squiggle1": { "a": "\u0e04", "b": "\u0e52", "c": "\u03c2", "d": "\u0e54", "e": "\u0454", "f": "\u0166", "g": "\ufeee", "h": "\u0452", "i": "\u0e40", "j": "\u05df", "k": "\u043a", "l": "\u026d", "m": "\u0e53", "n": "\u0e20", "o": "\u0e4f", "p": "\u05e7", "q": "\u1ee3", "r": "\u0433", "s": "\u0e23", "t": "\u0547", "u": "\u0e22", "v": "\u05e9", "w": "\u0e2c", "x": "\u05d0", "y": "\u05e5", "z": "\u0579", "A": "\u0e04", "B": "\u0e52", "C": "\u03c2", "D": "\u0e54", "E": "\u0454", "F": "\u0166", "G": "\ufeee", "H": "\u0452", "I": "\u0e40", "J": "\u05df", "K": "\u043a", "L": "\u026d", "M": "\u0e53", "N": "\u0e20", "O": "\u0e4f", "P": "\u05e7", "Q": "\u1ee3", "R": "\u0433", "S": "\u0e23", "T": "\u0547", "U": "\u0e22", "V": "\u05e9", "W": "\u0e2c", "X": "\u05d0", "Y": "\u05e5", "Z": "\u0579" }, "squiggle2": { "a": "\u03b1", "b": "\u10a6", "c": "\u0188", "d": "\u0503", "e": "\u04bd", "f": "\u03dd", "g": "\u0260", "h": "\u050b", "i": "\u03b9", "j": "\u029d", "k": "\u0199", "l": "\u0285", "m": "\u0271", "n": "\u0273", "o": "\u03c3", "p": "\u03c1", "q": "\u03d9", "r": "\u027e", "s": "\u0282", "t": "\u019a", "u": "\u03c5", "v": "\u028b", "w": "\u026f", "y": "\u10e7", "z": "\u0225" }, "squiggle3": { "a": "\u01df", "b": "\u026e", "c": "\u0188", "d": "\u0256", "e": "\u025b", "f": "\u0284", "g": "\u0262", "h": "\u0266", "i": "\u0268", "j": "\u029d", "k": "\u04c4", "l": "\u029f", "m": "\u028d", "n": "\u057c", "o": "\u0585", "p": "\u0584", "q": "\u0566", "r": "\u0280", "s": "\u0586", "t": "\u0236", "u": "\u028a", "v": "\u028b", "w": "\u0561", "x": "\u04fc", "y": "\u028f", "z": "\u0290", "A": "\u01df", "B": "\u026e", "C": "\u0188", "D": "\u0256", "E": "\u025b", "F": "\u0284", "G": "\u0262", "H": "\u0266", "I": "\u0268", "J": "\u029d", "K": "\u04c4", "L": "\u029f", "M": "\u028d", "N": "\u057c", "O": "\u0585", "P": "\u0584", "Q": "\u0566", "R": "\u0280", "S": "\u0586", "T": "\u0236", "U": "\u028a", "V": "\u028b", "W": "\u0561", "X": "\u04fc", "Y": "\u028f", "Z": "\u0290" }, "squiggle4": { "a": "\u13d7", "b": "\u13f0", "c": "\u1348", "d": "\u13b4", "e": "\u13cb", "f": "\u13a6", "g": "\u13b6", "h": "\u13c2", "i": "\u13a5", "j": "\u13e0", "k": "\u13e6", "l": "\u13dd", "m": "\u13b7", "n": "\u13c1", "o": "\u13a7", "p": "\u13ae", "q": "\u13a4", "r": "\u13d2", "s": "\u13d5", "t": "\u13d6", "u": "\u13ec", "v": "\u13c9", "w": "\u13c7", "x": "\u1300", "y": "\u13a9", "z": "\u135a", "A": "\u13d7", "B": "\u13f0", "C": "\u1348", "D": "\u13b4", "E": "\u13cb", "F": "\u13a6", "G": "\u13b6", "H": "\u13c2", "I": "\u13a5", "J": "\u13e0", "K": "\u13e6", "L": "\u13dd", "M": "\u13b7", "N": "\u13c1", "O": "\u13a7", "P": "\u13ae", "Q": "\u13a4", "R": "\u13d2", "S": "\u13d5", "T": "\u13d6", "U": "\u13ec", "V": "\u13c9", "W": "\u13c7", "X": "\u1300", "Y": "\u13a9", "Z": "\u135a" }, "squiggle5": { "a": "\u0105", "b": "\u10EA", "c": "\u0188", "d": "\u0256", "e": "\u025B", "f": "\u0284", "g": "\u0260", "h": "\u0267", "i": "\u0131", "j": "\u029D", "k": "\u0199", "l": "\u0196", "m": "\u0271", "n": "\u014B", "o": "\u01A1", "p": "\u2118", "q": "\u0566", "r": "\u0F5E", "s": "\u0282", "t": "\u026C", "u": "\u0173", "v": "\u06F7", "w": "\u1FF3", "x": "\u04B3", "y": "\u10E7", "z": "\u0291", "A": "\u0105", "B": "\u10EA", "C": "\u0188", "D": "\u0256", "E": "\u025B", "F": "\u0284", "G": "\u0260", "H": "\u0267", "I": "\u0131", "J": "\u029D", "K": "\u0199", "L": "\u0196", "M": "\u0271", "N": "\u014B", "O": "\u01A1", "P": "\u2118", "Q": "\u0566", "R": "\u0F5E", "S": "\u0282", "T": "\u026C", "U": "\u0173", "V": "\u06F7", "W": "\u1FF3", "X": "\u04B3", "Y": "\u10E7", "Z": "\u0291" }, "squiggle6": { "a": "\u0e04", "b": "\u0e56", "c": "\u00a2", "d": "\u0ed3", "e": "\u0113", "g": "\u0e87", "j": "\u0e27", "m": "\u0e53", "n": "\u0e96", "o": "\u0ed0", "q": "\u0e51", "s": "\u015e", "u": "\u0e19", "v": "\u0e07", "w": "\u0e9f", "y": "\u0e2f", "z": "\u0e8a", "A": "\u0e04", "B": "\u0e56", "C": "\u00a2", "D": "\u0ed3", "E": "\u0113", "F": "f", "G": "\u0e87", "H": "h", "I": "i", "J": "\u0e27", "K": "k", "L": "l", "M": "\u0e53", "N": "\u0e96", "O": "\u0ed0", "P": "p", "Q": "\u0e51", "R": "r", "S": "\u015e", "T": "t", "U": "\u0e19", "V": "\u0e07", "W": "\u0e9f", "X": "x", "Y": "\u0e2f", "Z": "\u0e8a" }, "subscript": { "0": "\u2080", "1": "\u2081", "2": "\u2082", "3": "\u2083", "4": "\u2084", "5": "\u2085", "6": "\u2086", "7": "\u2087", "8": "\u2088", "9": "\u2089", "a": "\u2090", "e": "\u2091", "h": "\u2095", "i": "\u1d62", "j": "\u2c7c", "k": "\u2096", "l": "\u2097", "m": "\u2098", "n": "\u2099", "o": "\u2092", "p": "\u209a", "r": "\u1d63", "s": "\u209b", "t": "\u209c", "u": "\u1d64", "v": "\u1d65", "x": "\u2093", "A": "\u2090", "E": "\u2091", "H": "\u2095", "I": "\u1d62", "J": "\u2c7c", "K": "\u2096", "L": "\u2097", "M": "\u2098", "N": "\u2099", "O": "\u2092", "P": "\u209a", "R": "\u1d63", "S": "\u209b", "T": "\u209c", "U": "\u1d64", "V": "\u1d65", "X": "\u2093", "+": "\u208a", "-": "\u208b", "=": "\u208c", "(": "\u208d", ")": "\u208e" }, "superscript": { "0": "\u2070", "1": "\u00b9", "2": "\u00b2", "3": "\u00b3", "4": "\u2074", "5": "\u2075", "6": "\u2076", "7": "\u2077", "8": "\u2078", "9": "\u2079", "a": "\u1d43", "b": "\u1d47", "c": "\u1d9c", "d": "\u1d48", "e": "\u1d49", "f": "\u1da0", "g": "\u1d4d", "h": "\u02b0", "i": "\u2071", "j": "\u02b2", "k": "\u1d4f", "l": "\u02e1", "m": "\u1d50", "n": "\u207f", "o": "\u1d52", "p": "\u1d56", "r": "\u02b3", "s": "\u02e2", "t": "\u1d57", "u": "\u1d58", "v": "\u1d5b", "w": "\u02b7", "x": "\u02e3", "y": "\u02b8", "z": "\u1dbb", "A": "\u1d2c", "B": "\u1d2e", "C": "\u1d9c", "D": "\u1d30", "E": "\u1d31", "F": "\u1da0", "G": "\u1d33", "H": "\u1d34", "I": "\u1d35", "J": "\u1d36", "K": "\u1d37", "L": "\u1d38", "M": "\u1d39", "N": "\u1d3a", "O": "\u1d3c", "P": "\u1d3e", "R": "\u1d3f", "S": "\u02e2", "T": "\u1d40", "U": "\u1d41", "V": "\u2c7d", "W": "\u1d42", "X": "\u02e3", "Y": "\u02b8", "Z": "\u1dbb", "+": "\u207a", "-": "\u207b", "=": "\u207c", "(": "\u207d", ")": "\u207e" }, "symbols": { "a": "\u00e5", "b": "\u00df", "c": "\u00a2", "d": "\u00d0", "e": "\u00ea", "f": "\u00a3", "i": "\u00ef", "n": "\u00f1", "o": "\u00f0", "p": "\u00fe", "s": "\u00a7", "t": "\u2020", "u": "\u00b5", "y": "\u00a5", "A": "\u00c4", "B": "\u00df", "C": "\u00c7", "D": "\u00d0", "E": "\u00c8", "F": "\u00a3", "I": "\u00cc", "N": "\u00f1", "O": "\u00d6", "P": "\u00fe", "S": "\u00a7", "T": "\u2020", "U": "\u00da", "X": "\u00d7", "Y": "\u00a5" }, "upperangle": { "a": "\u039b", "b": "B", "c": "\u1103", "d": "D", "e": "\u03a3", "f": "F", "g": "G", "h": "\u0389", "i": "I", "j": "J", "k": "K", "l": "\u1102", "m": "M", "n": "\u041f", "o": "\u04e8", "p": "P", "q": "Q", "r": "\u042f", "s": "\u01a7", "t": "\u01ac", "u": "\u0426", "v": "V", "w": "\u0429", "x": "X", "y": "Y", "z": "Z", "A": "\u039b", "C": "\u1103", "E": "\u03a3", "H": "\u0389", "L": "\u1102", "N": "\u041f", "O": "\u04e8", "R": "\u042f", "S": "\u01a7", "T": "\u01ac", "U": "\u0426", "W": "\u0429" }, "upsidedown": { "a": "\u0250", "b": "q", "c": "\u0254", "d": "p", "e": "\u01dd", "f": "\u025f", "g": "\u0183", "h": "\u0265", "i": "\u0131", "j": "\u027e", "k": "\u029e", "l": "\u05df", "m": "\u026f", "n": "u", "p": "d", "q": "b", "r": "\u0279", "t": "\u0287", "u": "n", "v": "\u028c", "w": "\u028d", "y": "\u028e", "A": "\u2200", "B": "\ud801\udc12", "C": "\u0186", "D": "\u25d6", "E": "\u018e", "F": "\u2132", "G": "\u2141", "J": "\u017f", "K": "\u22ca", "L": "\u02e5", "M": "W", "P": "\u0500", "Q": "\u038c", "R": "\u1d1a", "T": "\u22a5", "U": "\u2229", "V": "\u039b", "W": "M", "Y": "\u2144", "&": "\u214b", ".": "\u02d9", ",": "'", "[": "]", "]": "[", "(": ")", ")": "(", "{": "}", "}": "{", "?": "\u00bf", "!": "\u00a1", "'": ",", "\"": "\u201e", "<": ">", ">": "<", "_": "\u203e", "\\": "/", ";": "\u061b", "`": ",", "\u203f": "\u2040", "\u2045": "\u2046", "\u2234": "\u2235", "1": "\u0196", "2": "\u1105", "3": "\u0190", "4": "\u3123", "5": "\u03db", "6": "9", "7": "\u3125", "9": "6" }, "wide": { "1": "\uff11", "2": "\uff12", "3": "\uff13", "4": "\uff14", "5": "\uff15", "6": "\uff16", "7": "\uff17", "8": "\uff18", "9": "\uff19", "0": "\uff10", "-": "\uff0d", "=": "\uff1d", "~": "~", "!": "\uff01", "@": "\uff20", "#": "\uff03", "$": "\uff04", "%": "\uff05", "&": "\uff06", "*": "\uff0a", "(": "\uff08", ")": "\uff09", "+": "\uff0b", "q": "\uff51", "w": "\uff57", "e": "\uff45", "r": "\uff52", "t": "\uff54", "y": "\uff59", "u": "\uff55", "i": "\uff49", "o": "\uff4f", "p": "\uff50", "Q": "\uff31", "W": "\uff37", "E": "\uff25", "R": "\uff32", "T": "\uff34", "Y": "\uff39", "U": "\uff35", "I": "\uff29", "O": "\uff2f", "P": "\uff30", "a": "\uff41", "s": "\uff53", "d": "\uff44", "f": "\uff46", "g": "\uff47", "h": "\uff48", "j": "\uff4a", "k": "\uff4b", "l": "\uff4c", ";": "\uff1b", "'": "\uff07", "A": "\uff21", "S": "\uff33", "D": "\uff24", "F": "\uff26", "G": "\uff27", "H": "\uff28", "J": "\uff2a", "K": "\uff2b", "L": "\uff2c", ":": "\uff1a", "z": "\uff5a", "x": "\uff58", "c": "\uff43", "v": "\uff56", "b": "\uff42", "n": "\uff4e", "m": "\uff4d", ",": "\uff0c", ".": "\uff0e", "/": "\uff0f", "Z": "\uff3a", "X": "\uff38", "C": "\uff23", "V": "\uff36", "B": "\uff22", "N": "\uff2e", "M": "\uff2d", "?": "\uff1f" } }, unicodereverse = (s) => { var regexCombiningMarks = /([\0-\u02FF\u0370-\u1AAF\u1B00-\u1DBF\u1E00-\u20CF\u2100-\uD7FF\uE000-\uFE1F\uFE30-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])([\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]+)/g; var regexSurrogatePair = /([\uD800-\uDBFF])([\uDC00-\uDFFF])/g; var r = []; s = s.replace(regexCombiningMarks, function($0, $1, $2) { return reverse($2) + $1; }).replace(regexSurrogatePair, '$2$1'); var i = s.length; while (i--) { r.push(s.charAt(i)); } return r.join(''); }, walk = (txt, f) => { var fancy = '', specimen = ''; for (var i = 0; i < txt.length; i++) { var s = txt[i]; if (s in fonts[f]) { specimen += fonts[f][s]; } else if (s.toLowerCase() in fonts[f]) { specimen += fonts[f][s.toLowerCase()]; } else if (s.toUpperCase() in fonts[f]) { specimen += fonts[f][s.toUpperCase()]; } else { specimen += s; } } fancy += (f.match(/^(mirror|flip|upsidedown)$/)) ? unicodereverse(specimen) : specimen; console.log(!titles ? `${fancy} ` : `${f.padEnd(15)} ${fancy} `); }, getfancy = (txt) => { (txt === '') && usage(); if (random) { var keys = Object.keys(fonts); font = keys[Math.floor(Math.random() * keys.length)]; } if (font) { fonts.hasOwnProperty(font) ? walk(txt, font) : usage('unknown font'); } else { for (f in fonts) { walk(txt, f); } } process.exit(0); }, setArgs = () => { const { parseArgs } = require("node:util"); const args = process.argv.slice(2); const options = { help: { type: "boolean", short: "h", }, font: { type: "string", short: "f", }, random: { type: "boolean", short: "r", }, titles: { type: "boolean", short: "t", }, completions: { type: "boolean", short: "c", } }; try { const { values, positionals } = parseArgs({ args, options, allowPositionals: true, }); font = values.font || false; titles = values.titles || false; random = values.random || false; values.help && usage(); values.completions ? completions() : getfancy(positionals.join(" ")); } catch (e) { usage(); } }, completions = async () => { await cmp.completions(); }, usage = (msg) => { (msg) && console.log(`error: ${msg}\n`); console.log(`usage: sofancy [-f (font) | -t | -r | -h | -c] string flags: -f|--font (font) : output in a single font -t|--titles : display titles in output -r|--random : pick a random font (clobbers -f) -c|--completions : install shell completions -h|--help : display this message examples: sofancy -f wide aesthetics aesthetics sofancy -t some string | fzf | xsel -i git commit -m "$(sofancy -tr message | sed 's/^.* /docs: /')" `); process.exit(); }; setArgs();