UNPKG

@stltio/stealth

Version:

Device fingerprinting library

2,250 lines (2,239 loc) 92.8 kB
// src/index.ts import axios from "axios"; import jsSHA from "jssha"; // src/utils/hash.ts var hash = (r) => { for (var a, o = [], c = 0; c < 256; c++) { a = c; for (var f = 0; f < 8; f++) a = 1 & a ? 3988292384 ^ a >>> 1 : a >>> 1; o[c] = a; } for (var n = -1, t = 0; t < r.length; t++) n = n >>> 8 ^ o[255 & (n ^ r.charCodeAt(t))]; return (-1 ^ n) >>> 0; }; var hash_default = hash; // src/components/canvas.ts var canvas = () => { return new Promise((resolve) => { try { const canvas2 = document.createElement("canvas"); const ctx = canvas2.getContext("2d"); ctx.beginPath(); ctx.rect(0, 0, 16, 16); ctx.font = "16px 'Arial'"; ctx.textBaseline = "top"; ctx.textBaseline = "alphabetic"; ctx.rotate(0.05); ctx.fillStyle = "#f60"; ctx.fillText("\u{1F600}\u263A\u2668...\u2611\u2734\u{1F170}", 50, 70); ctx.stroke(); resolve({ canvas: hash_default(canvas2.toDataURL()) }); } catch (error) { resolve({ canvas: null }); } }); }; var canvas_default = canvas; // src/components/device.ts var device = () => { return new Promise((resolve) => { try { resolve({ device: { hardwareConcurrency: navigator.hardwareConcurrency, memory: navigator.deviceMemory, platform: navigator?.userAgentData?.platform || "unknown", mobile: navigator?.userAgentData?.mobile || "unknown", vendor: navigator?.userAgentData?.vendor || "unknown", architecture: getArchitecture(), videoCard: getVideoCard() } }); } catch { resolve({ device: null }); } }); }; var getVideoCard = () => { const canvas2 = document.createElement("canvas"); const gl = canvas2.getContext("webgl") ?? canvas2.getContext("experimental-webgl"); if (gl && "getParameter" in gl) { const debugInfo = gl.getExtension("WEBGL_debug_renderer_info"); return { vendor: (gl.getParameter(gl.VENDOR) || "").toString(), vendorUnmasked: debugInfo ? (gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL) || "").toString() : "", renderer: (gl.getParameter(gl.RENDERER) || "").toString(), rendererUnmasked: debugInfo ? (gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) || "").toString() : "", version: (gl.getParameter(gl.VERSION) || "").toString(), shadingLanguageVersion: (gl.getParameter(gl.SHADING_LANGUAGE_VERSION) || "").toString() }; } return "undefined"; }; var getArchitecture = () => { const f = new Float32Array(1); const u8 = new Uint8Array(f.buffer); f[0] = Infinity; f[0] = f[0] - f[0]; return u8[3]; }; var device_default = device; // src/components/permissions.ts var permissions = async () => { return new Promise((resolve) => { try { Promise.all([ getPermissionState("accelerometer"), getPermissionState("ambient-light-sensor"), getPermissionState("background-fetch"), getPermissionState("background-sync"), getPermissionState("bluetooth"), getPermissionState("camera"), getPermissionState("clipboard"), getPermissionState("device-info"), getPermissionState("display-capture"), getPermissionState("gamepad"), getPermissionState("geolocation"), getPermissionState("gyroscope"), getPermissionState("magnetometer"), getPermissionState("microphone"), getPermissionState("midi"), getPermissionState("nfc"), getPermissionState("notifications"), getPermissionState("persistent-storage"), getPermissionState("push"), getPermissionState("screen-wake-lock"), getPermissionState("speaker"), getPermissionState("speaker-selection") ]).then((permissions2) => { resolve({ permissions: permissions2.reduce((acc, perm) => { const { state, name } = perm || {}; if (acc[state]) { acc[state].push(name); return acc; } acc[state] = [name]; return acc; }, {}) }); }).catch(() => resolve({ permissions: null })); } catch { resolve({ permissions: null }); } }); }; var getPermissionState = (name) => navigator.permissions.query({ name }).then((res) => ({ name, state: res.state })).catch(() => ({ name, state: "unknown" })); var permissions_default = permissions; // src/components/screen.ts var screenDetails = () => { return new Promise((resolve) => { try { resolve({ screen: { isTouchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, width: screen.width, height: screen.height, mediaMatches: matchMedias() } }); } catch (error) { resolve({ screen: null }); } }); }; var matchMedias = () => { let results = []; const mediaQueries = { "prefers-contrast": [ "high", "more", "low", "less", "forced", "no-preference" ], "any-hover": ["hover", "none"], "any-pointer": ["none", "coarse", "fine"], pointer: ["none", "coarse", "fine"], hover: ["hover", "none"], update: ["fast", "slow"], "inverted-colors": ["inverted", "none"], "prefers-reduced-motion": ["reduce", "no-preference"], "prefers-reduced-transparency": ["reduce", "no-preference"], scripting: ["none", "initial-only", "enabled"], "forced-colors": ["active", "none"] }; Object.keys(mediaQueries).forEach((key) => { mediaQueries[key].forEach((value) => { if (matchMedia(`(${key}: ${value})`).matches) results.push(`${key}: ${value}`); }); }); return results; }; var screen_default = screenDetails; // src/components/browser.ts var browser = () => { return new Promise((resolve) => { try { resolve({ browser: { userAgent: navigator.userAgent, cookieEnabled: navigator.cookieEnabled, onLine: navigator.onLine, userAgentData: navigator.userAgentData, webdriver: navigator.webdriver, doNotTrack: navigator.doNotTrack, pdfViewerEnabled: navigator.pdfViewerEnabled, applePayVersion: getApplePayVersion(), ...getBrowser() } }); } catch (error) { resolve({ browser: null }); } }); }; var getBrowser = () => { if (typeof navigator === "undefined") { return { name: "unknown", version: "unknown" }; } const ua = navigator.userAgent; const regexes = [ // Edge /(?<name>Edge|Edg)\/(?<version>\d+(?:\.\d+)?)/, // Chrome, Chromium, Opera, Vivaldi, Brave, etc. /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\/(?<version>\d+(?:\.\d+)?)/, // Firefox, Waterfox, etc. /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\/(?<version>\d+(?:\.\d+)?)/, // Safari, Mobile Safari, etc. /(?<name>Safari)\/(?<version>\d+(?:\.\d+)?)/, // Internet Explorer, IE Mobile, etc. /(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)?)/, // Other browsers that use the format "BrowserName/version" /(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)?)/, // Samsung internet browser /(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)?)/ ]; const browserNameMap = { Edg: "Edge", OPR: "Opera" }; for (const regex of regexes) { const match = ua.match(regex); if (match && match.groups) { const name = browserNameMap[match.groups.name] || match.groups.name; return { name, version: match.groups.version }; } } return { name: "unknown", version: "unknown" }; }; var getApplePayVersion = () => { if (window.location.protocol === "https:" && typeof window.ApplePaySession === "function") { try { const versionCheck = window.ApplePaySession.supportsVersion; for (let i = 15; i > 0; i--) { if (versionCheck(i)) { return i; } } } catch (error) { return 0; } } return 0; }; var browser_default = browser; // src/components/intl.ts var intl = () => { return new Promise((resolve) => { try { resolve({ intl: { language: navigator.language, numberFormat: new Intl.NumberFormat(void 0, { notation: "compact", compactDisplay: "long" }).format(21e6), listFormat: new Intl.ListFormat(void 0, { style: "long", type: "disjunction" }).format(["0", "1"]), displayNames: new Intl.DisplayNames(void 0, { type: "language" }).of(navigator.language), dateTimeFormat: new Intl.DateTimeFormat(void 0, { month: "long", timeZoneName: "long" }).format(9747648e5), pluralRules: new Intl.PluralRules().select(1), relativeFormat: new Intl.RelativeTimeFormat(void 0, { localeMatcher: "best fit", numeric: "auto", style: "long" }).format(1, "day") } }); } catch (error) { resolve({ locales: null }); } }); }; var intl_default = intl; // src/components/audio.ts var audio = () => { return new Promise((resolve) => { try { const sampleRate = 44100; const numSamples = 5e3; const audioContext = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, numSamples, sampleRate); const audioBuffer = audioContext.createBufferSource(); const oscillator = audioContext.createOscillator(); oscillator.frequency.value = 1e3; const compressor = audioContext.createDynamicsCompressor(); compressor.threshold.value = -50; compressor.knee.value = 40; compressor.ratio.value = 12; compressor.attack.value = 0; compressor.release.value = 0.2; oscillator.connect(compressor); compressor.connect(audioContext.destination); oscillator.start(); let samples; audioContext.oncomplete = (event) => { samples = event.renderedBuffer.getChannelData(0); resolve({ audio: { sampleHash: hash_default(samples.join(",")), oscillator: oscillator.type, maxChannels: audioContext.destination.maxChannelCount, channelCountMode: audioBuffer.channelCountMode } }); }; audioContext.startRendering(); } catch (error) { resolve({ audio: null }); } }); }; var audio_default = audio; // src/components/webgl.ts var webgl = async () => { return new Promise((resolve) => { try { const canvas2 = document.createElement("canvas"); const width = 256; const height = 128; const ctx = canvas2.getContext("webgl2") || canvas2.getContext("experimental-webgl2") || canvas2.getContext("webgl") || canvas2.getContext("experimental-webgl") || canvas2.getContext("moz-webgl"); var f = "attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}"; var g = "precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}"; var h = ctx.createBuffer(); ctx.bindBuffer(ctx.ARRAY_BUFFER, h); var i = new Float32Array([-0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.7321, 0]); ctx.bufferData(ctx.ARRAY_BUFFER, i, ctx.STATIC_DRAW), h.itemSize = 3, h.numItems = 3; var j = ctx.createProgram(); var k = ctx.createShader(ctx.VERTEX_SHADER); ctx.shaderSource(k, f); ctx.compileShader(k); var l = ctx.createShader(ctx.FRAGMENT_SHADER); ctx.shaderSource(l, g); ctx.compileShader(l); ctx.attachShader(j, k); ctx.attachShader(j, l); ctx.linkProgram(j); ctx.useProgram(j); j.vertexPosAttrib = ctx.getAttribLocation(j, "attrVertex"); j.offsetUniform = ctx.getUniformLocation(j, "uniformOffset"); ctx.enableVertexAttribArray(j.vertexPosArray); ctx.vertexAttribPointer( j.vertexPosAttrib, h.itemSize, ctx.FLOAT, false, 0, 0 ); ctx.uniform2f(j.offsetUniform, 1, 1); ctx.drawArrays(ctx.TRIANGLE_STRIP, 0, h.numItems); var n = new Uint8Array(width * height * 4); ctx.readPixels(0, 0, width, height, ctx.RGBA, ctx.UNSIGNED_BYTE, n); const m = JSON.stringify(n).replace(/,?"[0-9]+":/g, ""); resolve({ webgl: hash_default(m) }); } catch { resolve({ webgl: null }); } }); }; var webgl_default = webgl; // src/components/math.ts var math = () => { return new Promise((resolve) => { try { resolve({ math: { acos: Math.acos(0.5), asin: integrate(Math.asin, -1, 1, 97), atan: integrate(Math.atan, -1, 1, 97), cos: integrate(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: integrate(Math.sin, -Math.PI, Math.PI, 97), sinh: integrate(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: integrate(Math.tan, 0, 2 * Math.PI, 97), tanh: integrate(Math.tanh, -9 / 7, 7 / 9, 97) } }); } catch { resolve({ math: null }); } }); }; var integrate = (fn, a, b, n) => { let sum = 0; const h = (b - a) / n; for (let i = 0; i < n; i++) { sum += fn(a + i * h) * h; } return sum; }; var math_default = math; // src/components/fonts.ts var fonts = async () => { return new Promise(async (resolve) => { try { const iframe = document.createElement("iframe"); iframe.style.display = "none"; document.body.appendChild(iframe); const results = await Promise.all( fontList.map((font) => { return new Promise(async (resolve2) => { const canvas2 = iframe.contentDocument.createElement("canvas"); const ctx = canvas2.getContext("2d"); try { const fontReady = iframe.contentDocument.fonts.check( `128px ${font}` ); if (fontReady) { ctx.font = `128px ${font}`; resolve2(ctx.measureText("\u{1F600}\u263A\u2668...\u2611\u2734\u{1F170}").width); } else { resolve2(0); } } catch { resolve2(0); } }); }) ); document.body.removeChild(iframe); const unique = [...new Set(results)]; resolve({ fonts: { unique: unique.length, hash: hash_default(unique.sort().join("|")), list: unique.sort() } }); } catch (error) { resolve({ fonts: null }); } }); }; var fontList = [ "mono", "system-ui", "-apple-system", "BlinkMacSystemFont", "MS Shell Dlg", "MS Shell Dlg \\32", "aakar", "Abadi MT Condensed", "Abadi MT Condensed Light", "ABeeZee", "Abel", "Abhaya Libre", "Abril Fatface", "Abyssinica SIL", "Academy Engraved LET", "AcadEref", "Aclonica", "Acme", "Actor", "Adamina", "Adlam", "Adobe Arabic", "Adobe Caslon Pro", "Adobe Caslon Pro Bold", "Adobe Devanagari", "Adobe Fangsong Std R", "Adobe Fan Heiti Std B", "Adobe Garamond", "Adobe Garamond Pro", "Adobe Garamond Pro Bold", "Adobe Gothic Std B", "Adobe Hebrew", "Adobe Heiti Std R", "Adobe Kaiti Std R", "Adobe Ming Std L", "Adobe Myungjo Std M", "Adobe Naskh Medium", "Adobe Song Std L", "Advent Pro", "Agency FB", "Aguafina Script", "Aharoni", "Aharoni Bold", "Aharoni CLM", "AIGDT", "Akronim", "Aladin", "AlArabiya", "AlBattar", "Al Bayan", "Al Bayan Bold", "Al Bayan Plain", "Albertus Extra Bold", "Albertus Medium", "Aldhabi", "Aldrich", "Alef", "Alegreya", "Alegreya Sans", "Alegreya Sans SC", "Alegreya SC", "Aleo", "Alexandra Script", "Alex Brush", "Alfa Slab One", "Algerian", "AlHor", "Alice", "Alike", "Alike Angular", "Allan", "Allerta", "Allerta Stencil", "Allura", "AlManzomah", "Almarai", "Almendra", "Almendra Display", "Almendra SC", "Al Nile", "Al Nile Bold", "Al Tarikh", "Al Tarikh Regular", "AlternateGothic2 BT", "AlYarmook", "Amadeus", "Amarante", "Amaranth", "Amatic SC", "Amazone BT", "AmdtSymbols", "American Typewriter", "American Typewriter Bold", "American Typewriter Condensed", "American Typewriter Condensed Bold", "American Typewriter Condensed Light", "American Typewriter Light", "American Typewriter Semibold", "AmerType Md BT", "Amethysta", "AMGDT", "Amiko", "Amiri", "Amiri Quran", "Amiri Quran Colored", "Amita", "Anaheim", "AnastasiaScript", "Andada", "Andale Mono", "Andalus", "Andika", "Android Emoji", "Angkor", "Angsana New", "Angsana New Bold", "Angsana New Bold Italic", "Angsana New Italic", "AngsanaUPC", "AngsanaUPC Bold", "AngsanaUPC Bold Italic", "AngsanaUPC Italic", "Ani", "AnjaliOldLipi", "Annabelle", "Annie Use Your Telescope", "Anonymous Pro", "Antic", "Antic Didone", "Antic Slab", "Antique Olive", "Anton", "Aparajita", "Aparajita Bold", "Aparajita Bold Italic", "Aparajita Italic", "Apple Braille", "Apple Braille Outline 6 Dot", "Apple Braille Outline 8 Dot", "Apple Braille Pinpoint 6 Dot", "Apple Braille Pinpoint 8 Dot", "Apple Chancery", "Apple Color Emoji", "AppleGothic", "AppleGothic Regular", "Apple LiGothic", "Apple LiGothic Medium", "Apple LiSung", "Apple LiSung Light", "AppleMyungjo", "AppleMyungjo Regular", "Apple SD Gothic Neo", "Apple SD Gothic Neo Bold", "Apple SD GothicNeo ExtraBold", "Apple SD Gothic Neo Heavy", "Apple SD Gothic Neo Light", "Apple SD Gothic Neo Medium", "Apple SD Gothic Neo Regular", "Apple SD Gothic Neo SemiBold", "Apple SD Gothic Neo Thin", "Apple SD Gothic Neo UltraLight", "Apple Symbols", "Aqua Kana", "AquaKana", "Aqua Kana Bold", "Arab", "Arabic Transparent", "Arabic Typesetting", "Arapey", "Arbutus", "Arbutus Slab", "Archer", "Architects Daughter", "Archivo", "Archivo Black", "Archivo Narrow", "Aref Ruqaa", "Arial", "Arial Baltic", "Arial Bold", "Arial Bold Italic", "Arial CE", "Arial Cyr", "Arial Greek", "Arial Hebrew", "Arial Hebrew Bold", "Arial Hebrew Light", "Arial Hebrew Scholar", "Arial Hebrew Scholar Bold", "Arial Hebrew Scholar Light", "Arial Italic", "Arial MT", "Arial Narrow", "Arial Narrow Bold", "Arial Narrow Bold Italic", "Arial Narrow Italic", "Arial Nova", "Arial Nova Bold", "Arial Nova Bold Italic", "Arial Nova Cond", "Arial Nova Cond Bold", "Arial Nova Cond Bold Italic", "Arial Nova Cond Italic", "Arial Nova Cond Light", "Arial Nova Cond Light Italic", "Arial Nova Italic", "Arial Nova Light", "Arial Nova Light Italic", "Arial Rounded MT Bold", "Arial TUR", "Arial Unicode MS", "Arima Madurai", "Arimo", "Ariston", "Arizonia", "Armata", "Arno Pro", "Arno Pro Caption", "Arno Pro Display", "Arno Pro Light Display", "Arno Pro Smbd", "Arno Pro Smbd Caption", "Arno Pro Smbd Display", "Arno Pro Smbd SmText", "Arno Pro Smbd Subhead", "Arno Pro SmText", "Arno Pro Subhead", "AR PL UKai CN", "AR PL UKai HK", "AR PL UKai TW", "AR PL UKai TW MBE", "AR PL UMing CN", "AR PL UMing HK", "AR PL UMing TW", "AR PL UMing TW MBE", "Arrus BT", "Arsenal", "Artifika", "Arundina", "Arvo", "Arya", "Asana Math", "Asap", "Asap Condensed", "Asar", "Asset", "Assistant", "Astloch", "Asul", "Athelas", "Athelas Bold", "Athelas Bold Italic", "Athelas Italic", "Athelas Regular", "Athiti", "Atma", "Atomic Age", "Aubrey", "Audiowide", "Aurora Cn BT", "Autour One", "AvantGarde Bk BT", "AvantGarde Md BT", "Avenir", "Avenir Black", "Avenir Black Oblique", "Avenir Book", "Avenir Book Oblique", "Avenir Heavy", "Avenir Heavy Oblique", "Avenir Light", "Avenir Light Oblique", "Avenir Medium", "Avenir Medium Oblique", "Avenir Next", "Avenir Next Bold", "Avenir Next Bold Italic", "Avenir Next Condensed", "Avenir Next Condensed Bold", "Avenir Next Condensed Bold Italic", "Avenir Next Condensed Demi Bold", "Avenir Next Condensed Demi Bold Italic", "Avenir Next Condensed Heavy", "Avenir Next Condensed Heavy Italic", "Avenir Next Condensed Italic", "Avenir Next Condensed Medium", "Avenir Next Condensed Medium Italic", "Avenir Next Condensed Regular", "Avenir Next Condensed Ultra Light", "Avenir Next Condensed Ultra Light Italic", "Avenir Next Demi Bold", "Avenir Next Demi Bold Italic", "Avenir Next Heavy", "Avenir Next Heavy Italic", "Avenir Next Italic", "Avenir Next Medium", "Avenir Next Medium Italic", "Avenir Next Regular", "Avenir Next Ultra Light", "Avenir Next Ultra Light Italic", "Avenir Oblique", "Avenir Roman", "Average", "Average Sans", "Averia Gruesa Libre", "Averia Libre", "Averia Sans Libre", "Averia Serif Libre", "Ayuthaya", "B612", "B612 Mono", "Bad Script", "Baghdad", "Baghdad Regular", "Bahiana", "Bahianita", "Bahnschrift", "Bahnschrift Light", "Bahnschrift SemiBold", "Bahnschrift SemiLight", "Bai Jamjuree", "Balinese", "Baloo", "Baloo Bhai", "Baloo Bhaijaan", "Baloo Bhaina", "Baloo Chettan", "Baloo Da", "Baloo Paaji", "Baloo Tamma", "Baloo Tammudu", "Baloo Thambi", "Balthazar", "Bamum", "Bandy", "Bangers", "Bangla MN", "Bangla MN Bold", "Bangla Sangam MN", "Bangla Sangam MN Bold", "Bank Gothic", "BankGothic Lt BT", "BankGothic Md BT", "Baoli SC", "Baoli SC Regular", "Baoli TC", "Baoli TC Regular", "Barlow", "Barlow Condensed", "Barlow Semi Condensed", "Barriecito", "Barrio", "Basic", "Baskerville", "Baskerville Bold", "Baskerville Bold Italic", "Baskerville Italic", "Baskerville Old Face", "Baskerville SemiBold", "Baskerville SemiBold Italic", "Bassa Vah", "Batak", "Batang", "BatangChe", "Battambang", "Bauer Bodoni", "Bauhaus 93", "Baumans", "Bayon", "Bazooka", "Bebas Neue", "Beirut", "Beirut Regular", "Belgrano", "Bellefair", "Belleza", "Bell Gothic Std Black", "Bell Gothic Std Light", "Bell MT", "Bembo", "BenchNine", "Bengali", "Benguiat Bk BT", "Bentham", "Berkshire Swash", "Berlin Sans FB", "Berlin Sans FB Demi", "Bernard MT Condensed", "BernhardFashion BT", "BernhardMod BT", "Beth Ellen", "Bevan", "Be Vietnam", "BiauKai", "Bickham Script One", "Bickham Script Pro Regular", "Bickham Script Pro Semibold", "Bickham Script Two", "Big Caslon", "Big Caslon Medium", "Bigelow Rules", "Bigshot One", "Big Shoulders Display", "Big Shoulders Text", "Bilbo", "Bilbo Swash Caps", "BinnerD", "BioRhyme", "BioRhyme Expanded", "Birch Std", "Biryani", "Bitstream Charter", "Bitstream Vera Sans Mono", "Bitter", "BIZ UDGothic", "BIZ UDGothic Bold", "BIZ UDMincho", "BIZ UDMincho Medium", "BIZ UDPGothic", "BIZ UDPGothic Bold", "BIZ UDPMincho", "BIZ UDPMincho Medium", "BIZ UDP\u30B4\u30B7\u30C3\u30AF", "Blackadder ITC", "Black And White Picture", "Black Han Sans", "Blackoak Std", "Black Ops One", "BlairMdITC TT", "Blinker", "Bodoni 72", "Bodoni 72 Bold", "Bodoni 72 Book", "Bodoni 72 Book Italic", "Bodoni 72 Oldstyle", "Bodoni 72 Oldstyle Bold", "Bodoni 72 Oldstyle Book", "Bodoni 72 Oldstyle Book Italic", "Bodoni 72 Smallcaps", "Bodoni 72 Smallcaps Book", "Bodoni MT", "Bodoni MT Black", "Bodoni MT Condensed", "Bodoni MT Poster Compressed", "Bodoni Ornaments", "Bokor", "Bonbon", "Boogaloo", "Book Antiqua", "Bookman Old Style", "Bookshelf Symbol 7", "Boulder", "Bowlby One", "Bowlby One SC", "BPG Algeti GPL&GNU", "BPG Chveulebrivi GPL&GNU", "BPG Courier GPL&GNU", "BPG Courier S GPL&GNU", "BPG DedaEna Block GPL&GNU", "BPG DejaVu Sans 2011 GNU-GPL", "BPG Elite GPL&GNU", "BPG Excelsior Caps GPL&GNU", "BPG Excelsior Condencerd GPL&GNU", "BPG Excelsior GPL&GNU", "BPG Glaho GPL&GNU", "BPG Gorda GPL&GNU", "BPG Ingiri GPL&GNU", "BPG Mrgvlovani Caps GNU&GPL", "BPG Mrgvlovani GPL&GNU", "BPG Nateli Caps GPL&GNU", "BPG Nateli Condenced GPL&GNU", "BPG Nateli GPL&GNU", "BPG Nino Medium Cond GPL&GNU", "BPG Nino Medium GPL&GNU", "BPG Sans GPL&GNU", "BPG Sans Medium GPL&GNU", "BPG Sans Modern GPL&GNU", "BPG Sans Regular GPL&GNU", "BPG Serif GPL&GNU", "BPG Serif Modern GPL&GNU", "Bradley Hand", "Bradley Hand Bold", "Bradley Hand ITC", "Brawler", "Bree Serif", "Bremen Bd BT", "Britannic Bold", "Broadway", "Browallia New", "Browallia New Bold", "Browallia New Bold Italic", "Browallia New Italic", "BrowalliaUPC", "BrowalliaUPC Bold", "BrowalliaUPC Bold Italic", "BrowalliaUPC Italic", "Brush Script MT", "Brush Script MT Italic", "Brush Script Std", "Bubblegum Sans", "Bubbler One", "Buda", "Buenard", "Buginese", "Buhid", "Bungee", "Bungee Hairline", "Bungee Inline", "Bungee Outline", "Bungee Shade", "Butcherman", "Butterfly Kids", "C059", "Cabin", "Cabin Condensed", "Cabin Sketch", "Caesar Dressing", "Cagliostro", "Cairo", "Caladea", "Caladings CLM", "Calibri", "Calibri Bold", "Calibri Bold Italic", "Calibri Italic", "Californian FB", "Calisto MT", "Calligraffitti", "Calligraph", "Calligrapher", "Cambay", "Cambo", "Cambria", "Cambria Bold", "Cambria Bold Italic", "Cambria Italic", "Cambria Math", "Canadian Aboriginal", "Candal", "Candara", "Candara Bold", "Candara Bold Italic", "Candara Italic", "Cantarell", "Cantarell Extra Bold", "Cantarell Light", "Cantarell Thin", "Cantata One", "Cantora One", "Capriola", "Cardo", "Carlito", "Carme", "Carolina", "Carrois Gothic", "Carrois Gothic SC", "Carter One", "Cascadia Code", "Cascadia Mono", "CaslonOpnface BT", "Castellar", "Catamaran", "Caudex", "Caveat", "Caveat Brush", "Cedarville Cursive", "Centaur", "Century", "Century Gothic", "Century Schoolbook", "Century Schoolbook L", "Ceremonious Two", "Ceviche One", "Cezanne", "CG Omega", "CG Times", "Chakma", "Chakra Petch", "Chalkboard", "Chalkboard Bold", "Chalkboard SE", "Chalkboard SE Bold", "Chalkboard SE Light", "Chalkboard SE Regular", "Chalkduster", "Cham", "Chandas", "Changa", "Changa One", "Chango", "Chaparral Pro", "Chaparral Pro Light", "Charcoal CY", "Charis SIL Compact", "Charlemagne Std", "Charlesworth", "Charm", "Charmonman", "Charter", "Charter Bd BT", "Charter Black", "Charter Black Italic", "Charter Bold", "Charter Bold Italic", "Charter BT", "Charter Italic", "Charter Roman", "Chathura", "Chaucer", "Chau Philomene One", "Chela One", "Chelsea Market", "ChelthmITC Bk BT", "Chenla", "Cherokee", "Cherry Cream Soda", "Cherry Swash", "Chewy", "Chicle", "Chilanka", "Chiller", "Chivo", "Chonburi", "Cinzel", "Cinzel Decorative", "CityBlueprint", "Clarendon", "Clarendon Blk BT", "Clarendon BT", "Clarendon Condensed", "Clarendon Lt BT", "Clean", "Clicker Script", "CloisterBlack BT", "cmex10", "cmmi10", "cmr10", "cmsy10", "Cochin", "Cochin Bold", "Cochin Bold Italic", "Cochin Italic", "Coda", "Coda Caption", "Codystar", "Coiny", "Colonna MT", "Combo", "Comfortaa", "Comfortaa Light", "Comic Sans", "Comic Sans MS", "Comic Sans MS Bold", "Comic Sans MS Bold Italic", "Comic Sans MS Italic", "Coming Soon", "CommercialPi BT", "CommercialScript BT", "Complex", "Concert One", "Condiment", "Consolas", "Consolas Bold", "Consolas Bold Italic", "Consolas Italic", "Constantia", "Constantia Bold", "Constantia Bold Italic", "Constantia Italic", "Content", "Contrail One", "Convergence", "Cookie", "Cooper Black", "Cooper Std Black", "Copperplate", "Copperplate Bold", "Copperplate Gothic", "Copperplate Gothic Bold", "Copperplate Gothic Light", "Copperplate Light", "CopperplGoth Bd BT", "Copse", "Coptic", "Copyist", "Corbel", "Corbel Bold", "Corbel Bold Italic", "Corbel Italic", "Corbel Light", "Corbel Light Italic", "Corben", "Cordia New", "Cordia New Bold", "Cordia New Bold Italic", "Cordia New Italic", "CordiaUPC", "CordiaUPC Bold", "CordiaUPC Bold Italic", "CordiaUPC Italic", "Cormorant", "Cormorant Garamond", "Cormorant Infant", "Cormorant SC", "Cormorant Unicase", "Cormorant Upright", "Cornerstone", "Coronet", "Corsiva Hebrew", "Corsiva Hebrew Bold", "Cortoba", "CountryBlueprint", "Courgette", "Courier", "Courier 10 Pitch", "Courier Bold", "Courier Bold Oblique", "Courier New", "Courier New Baltic", "Courier New Bold", "Courier New Bold Italic", "Courier New CE", "Courier New Cyr", "Courier New Greek", "Courier New Italic", "Courier New TUR", "Courier Oblique", "Cousine", "Coustard", "Covered By Your Grace", "Crafty Girls", "Creepster", "Crete Round", "Crimson Pro", "Crimson Text", "Croissant One", "Crushed", "Cuckoo", "Cuprum", "Curlz MT", "Cursor", "Cute Font", "Cutive", "Cutive Mono", "D050000L", "Damascus", "Damascus Bold", "Damascus Light", "Damascus Medium", "Damascus Regular", "Damascus Semi Bold", "Damion", "Dancing Script", "Dangrek", "Darker Grotesque", "DaunPenh", "Dauphin", "David", "David Bold", "David CLM", "David Libre", "Dawning of a New Day", "Days One", "DB LCD Temp", "Decor", "DecoType Naskh", "DecoType Naskh Regular", "DejaVu Math TeX Gyre", "DejaVu Sans", "DejaVu Sans Condensed", "DejaVu Sans Light", "DejaVu Sans Mono", "DejaVu Serif", "DejaVu Serif Condensed", "Dekko", "Delicious", "Delius", "Delius Swash Caps", "Delius Unicase", "Della Respira", "DengXian", "DengXian Bold", "DengXian Light", "Denk One", "Denmark", "Deseret", "Devanagari", "Devanagari MT", "Devanagari MT Bold", "Devanagari Sangam MN", "Devanagari Sangam MN Bold", "Devonshire", "DFKai-SB", "Dhurjati", "Didact Gothic", "Didot", "Didot Bold", "Didot Italic", "DilleniaUPC", "DilleniaUPC Bold", "DilleniaUPC Bold Italic", "DilleniaUPC Italic", "Dimnah", "DIN", "DIN Alternate", "DIN Alternate Bold", "DIN Condensed", "DIN Condensed Bold", "Dingbats", "Diplomata", "Diplomata SC", "Diwan Kufi", "Diwan Kufi Regular", "Diwan Mishafi", "Diwan Thuluth", "Diwan Thuluth Regular", "DM Sans", "DM Serif Display", "DM Serif Text", "Dogra", "Do Hyeon", "DokChampa", "Dokdo", "Domine", "Donegal One", "Doppio One", "Dorsa", "Dosis", "Dotum", "DotumChe", "Droid Arabic Kufi", "Droid Arabic Naskh", "Droid Naskh Shift Alt", "Droid Sans", "Droid Sans Arabic", "Droid Sans Armenian", "Droid Sans Devanagari", "Droid Sans Ethiopic", "Droid Sans Fallback", "Droid Sans Georgian", "Droid Sans Hebrew", "Droid Sans Japanese", "Droid Sans Mono", "Droid Sans Tamil", "Droid Sans Thai", "Droid Serif", "Dr Sugiyama", "Drugulin CLM", "Duru Sans", "Dutch801 Rm BT", "Dutch801 XBd BT", "Dynalight", "Dyuthi", "Eagle Lake", "East Sea Dokdo", "Eater", "EB Garamond", "Ebrima", "Ebrima Bold", "Eccentric Std", "Economica", "Eczar", "Edwardian Script ITC", "Eeyek Unicode", "Elbasan", "Electrolize", "Electron", "Elephant", "Ellinia CLM", "El Messiri", "Elsie", "Elsie Swash Caps", "Emblema One", "Emilys Candy", "EmojiOne Mozilla", "Encode Sans", "Encode Sans Condensed", "Encode Sans Expanded", "Encode Sans Semi Condensed", "Encode Sans Semi Expanded", "Engagement", "Englebert", "English 111 Vivace BT", "EngraversGothic BT", "Engravers MT", "Enriqueta", "Eras Bold ITC", "Eras Demi ITC", "Eras Light ITC", "Eras Medium ITC", "Erica One", "esint10", "Esteban", "Estrangelo Edessa", "Ethiopic", "EucrosiaUPC", "EucrosiaUPC Bold", "EucrosiaUPC Bold Italic", "EucrosiaUPC Italic", "eufm10", "Euphemia", "Euphemia UCAS", "Euphemia UCAS Bold", "Euphemia UCAS Italic", "Euphoria Script", "EuroRoman", "Eurostile", "Ewert", "Exo", "Exo 2", "Exotc350 Bd BT", "Expletus Sans", "Ezra SIL", "Ezra SIL SR", "Fahkwang", "FangSong", "Fanwood Text", "Farah", "Farah Regular", "Farisi", "Farisi Regular", "Farro", "Farsan", "Fascinate", "Fascinate Inline", "Faster One", "Fasthand", "Fauna One", "Faustina", "Federant", "Federo", "Felipa", "Felix Titling", "Fenix", "Finger Paint", "Fira Code", "Fira Mono", "Fira Sans", "Fira Sans Condensed", "Fira Sans Extra Condensed", "Fixed", "Fixed Miriam Transparent", "Fixedsys", "Fjalla One", "Fjord One", "Flamenco", "Flavors", "Fondamento", "FontAwesome", "Fontdiner Swanky", "Fontin", "Footlight MT Light", "Forte", "Forum", "Francois One", "Franklin Gothic Book", "Franklin Gothic Demi", "Franklin Gothic Demi Cond", "Franklin Gothic Heavy", "Franklin Gothic Medium", "Franklin Gothic Medium Cond", "Franklin Gothic Medium Italic", "FrankRuehl", "Frank Ruehl CLM", "Frank Ruhl Libre", "Fransiscan", "Freckle Face", "Fredericka the Great", "Fredoka One", "Free Avant Garde", "Free Bookman", "Free Chancery", "Free Courier", "Freefrm721 Blk BT", "Freehand", "Freehand521 BT", "Free Helvetian", "Free Helvetian Condensed", "FreeMono", "Free Paladin", "FreeSans", "Free Schoolbook", "FreeSerif", "FreesiaUPC", "FreesiaUPC Bold", "FreesiaUPC Bold Italic", "FreesiaUPC Italic", "Freestyle Script", "Free Times", "French Script MT", "Fresca", "Frijole", "FrnkGothITC Bk BT", "Fruitger", "Fruktur", "Frutiger", "Fugaz One", "Furat", "Futura", "Futura Bk BT", "FuturaBlack BT", "Futura Bold", "Futura Condensed ExtraBold", "Futura Condensed Medium", "Futura Lt BT", "Futura Md BT", "Futura Medium", "Futura Medium Italic", "Futura ZBlk BT", "Gabriela", "Gabriola", "Gadugi", "Gadugi Bold", "Gaegu", "Gafata", "Galada", "Galdeano", "Galindo", "Galliard BT", "Galvji", "Gamja Flower", "Garamond", "Garamond Premr Pro", "Garamond Premr Pro Smbd", "Gargi", "Garuda", "Gautami", "Gautami Bold", "Gayathri", "Gayathri Thin", "GB18030 Bitmap", "GDT", "Geeza Pro", "Geeza Pro Bold", "Geeza Pro Regular", "Geneva", "Geneva CY", "GENISO", "Gentium", "GentiumAlt", "Gentium Basic", "Gentium Book Basic", "Geo", "Geometr231 BT", "Geometr231 Hv BT", "Geometr231 Lt BT", "Georgia", "Georgia Bold", "Georgia Bold Italic", "Georgia Italic", "Georgian", "Georgia Pro", "Georgia Pro Black", "Georgia Pro Black Italic", "Georgia Pro Bold", "Georgia Pro Bold Italic", "Georgia Pro Cond", "Georgia Pro Cond Black", "Georgia Pro Cond Black Italic", "Georgia Pro Cond Bold", "Georgia Pro Cond Bold Italic", "Georgia Pro Cond Italic", "Georgia Pro Cond Light", "Georgia Pro Cond Light Italic", "Georgia Pro Cond Semibold", "Georgia Pro Cond Semibold Italic", "Georgia Pro Italic", "Georgia Pro Light", "Georgia Pro Light Italic", "Georgia Pro Semibold", "Georgia Pro Semibold Italic", "GeoSlab 703 Lt BT", "GeoSlab 703 XBd BT", "Geostar", "Geostar Fill", "Germania One", "GFS Didot", "GFS Neohellenic", "Giddyup Std", "Gidugu", "Gigi", "Gilda Display", "Gill Sans", "Gill Sans Bold", "Gill Sans Bold Italic", "Gill Sans Italic", "Gill Sans Light", "Gill Sans Light Italic", "Gill Sans MT", "Gill Sans MT Condensed", "Gill Sans MT Ext Condensed Bold", "Gill Sans Nova", "Gill Sans Nova Bold", "Gill Sans Nova Bold Italic", "Gill Sans Nova Cond", "Gill Sans Nova Cond Bold", "Gill Sans Nova Cond Bold Italic", "Gill Sans Nova Cond Italic", "Gill Sans Nova Cond Lt", "Gill Sans Nova Cond Lt Italic", "Gill Sans Nova Cond Ultra Bold", "Gill Sans Nova Cond XBd", "Gill Sans Nova Cond XBd Italic", "Gill Sans Nova Italic", "Gill Sans Nova Light", "Gill Sans Nova Light Italic", "Gill Sans Nova Ultra Bold", "Gill Sans SemiBold", "Gill Sans SemiBold Italic", "Gill Sans Ultra Bold", "Gill Sans UltraBold", "Gill Sans Ultra Bold Condensed", "Gisha", "Gisha Bold", "Give You Glory", "Glass Antiqua", "Glegoo", "Gloria Hallelujah", "Gloucester MT Extra Condensed", "Goblin One", "Gochi Hand", "Google Sans", "Gorditas", "Gotham", "Gotham Bold", "Gothic A1", "GothicE", "GothicG", "GothicI", "Goudy Bookletter 1911", "GoudyHandtooled BT", "Goudy Old Style", "GoudyOLSt BT", "Goudy Stout", "Graduate", "Granada", "Grand Hotel", "Grantha", "Graph", "Gravitas One", "Great Vibes", "GreekC", "GreekS", "Grenze", "Griffy", "Gruppo", "Gubbi", "Gudea", "Gugi", "Gujarati", "Gujarati MT", "Gujarati MT Bold", "Gujarati Sangam MN", "Gujarati Sangam MN Bold", "Gulim", "GulimChe", "GungSeo", "GungSeo Regular", "Gungsuh", "GungsuhChe", "Gunjala Gondi", "Gurajada", "Gurmukhi", "Gurmukhi MN", "Gurmukhi MN Bold", "Gurmukhi MT", "Gurmukhi Sangam MN", "Gurmukhi Sangam MN Bold", "Habibi", "Hadasim CLM", "Haettenschweiler", "Halant", "Hammersmith One", "Hanalei", "Hanalei Fill", "Handlee", "Hani", "Hanifi Rohingya", "Hannotate SC", "Hannotate SC Bold", "Hannotate SC Regular", "Hannotate TC", "Hannotate TC Bold", "Hannotate TC Regular", "Hanuman", "Hanunoo", "HanziPen SC", "HanziPen SC Bold", "HanziPen SC Regular", "HanziPen TC", "HanziPen TC Bold", "HanziPen TC Regular", "Happy Monkey", "Haramain", "Harlow Solid Italic", "Harmattan", "Harrington", "Headland One", "HeadLineA", "HeadLineA Regular", "Heather", "Heather Script One", "Heebo", "Hei", "Hei Regular", "Heiti SC", "Heiti SC Light", "Heiti SC Medium", "Heiti TC", "Heiti TC Light", "Heiti TC Medium", "Helv", "Helvetica", "Helvetica Bold", "Helvetica Bold Oblique", "Helvetica CY", "Helvetica CY Bold", "Helvetica CY BoldOblique", "Helvetica CY Oblique", "Helvetica CY Plain", "Helvetica Light", "Helvetica Light Oblique", "Helvetica LT MM", "Helvetica Neue", "Helvetica Neue Bold", "Helvetica Neue Bold Italic", "Helvetica Neue Condensed Black", "Helvetica Neue Condensed Bold", "Helvetica Neue DeskInterface", "Helvetica Neue Desk UI", "Helvetica Neue Desk UI Bold", "Helvetica Neue Desk UI Bold Italic", "Helvetica Neue Desk UI Italic", "Helvetica Neue Italic", "Helvetica Neue Light", "Helvetica Neue Light Italic", "Helvetica Neue Medium", "Helvetica Neue Medium Italic", "Helvetica Neue Thin", "Helvetica Neue Thin Italic", "Helvetica Neue UltraLight", "Helvetica Neue UltraLight Italic", "Helvetica Oblique", "Henny Penny", "Hepta Slab", "Herald", "Herculanum", "Herr Von Muellerhoff", "Hershey-Gothic-English", "Hershey-Gothic-German", "Hershey-Gothic-Italian", "Hershey-Plain-Duplex", "Hershey-Plain-Duplex-Italic", "Hershey-Plain-Triplex", "Hershey-Plain-Triplex-Italic", "Hershey-Script-Complex", "Hershey-Script-Simplex", "High Tower Text", "Hi Melody", "Hind", "Hind Guntur", "Hind Madurai", "Hind Siliguri", "Hind Vadodara", "Hiragino Kaku Gothic Pro", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic ProN W3", "Hiragino Kaku Gothic ProN W6", "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic Pro W6", "Hiragino Kaku Gothic Std", "Hiragino Kaku Gothic StdN", "Hiragino Kaku Gothic StdN W8", "Hiragino Kaku Gothic Std W8", "Hiragino Maru Gothic Pro", "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic ProN W4", "Hiragino Maru Gothic Pro W4", "Hiragino Mincho Pro", "Hiragino Mincho ProN", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN W6", "Hiragino Mincho Pro W3", "Hiragino Mincho Pro W6", "Hiragino Sans", "Hiragino Sans CNS", "Hiragino Sans CNS W3", "Hiragino Sans CNS W6", "Hiragino Sans GB", "Hiragino Sans GB W3", "Hiragino Sans GB W6", "Hiragino Sans W0", "Hiragino Sans W1", "Hiragino Sans W2", "Hiragino Sans W3", "Hiragino Sans W4", "Hiragino Sans W5", "Hiragino Sans W6", "Hiragino Sans W7", "Hiragino Sans W8", "Hiragino Sans W9", "Hobo Std", "Hoefler Text", "Hoefler Text Black", "Hoefler Text Black Italic", "Hoefler Text Italic", "Hoefler Text Ornaments", "HoloLens MDL2 Assets", "Holtwood One SC", "Homa", "Homemade Apple", "Homenaje", "Hor", "Humanst521 BT", "Humanst 521 Cn BT", "Humanst521 Lt BT", "IBM Plex Mono", "IBM Plex Sans", "IBM Plex Sans Condensed", "IBM Plex Serif", "Iceberg", "Iceland", "IM Fell Double Pica", "IM Fell Double Pica SC", "IM Fell DW Pica", "IM Fell DW Pica SC", "IM Fell English", "IM Fell English SC", "IM Fell French Canon", "IM Fell French Canon SC", "IM Fell Great Primer", "IM Fell Great Primer SC", "Impact", "Imprima", "Imprint MT Shadow", "InaiMathi", "InaiMathi Bold", "Incised901 Bd BT", "Incised901 BT", "Incised901 Lt BT", "Inconsolata", "Inder", "Indie Flower", "Informal011 BT", "Informal Roman", "Inika", "Ink Free", "Inknut Antiqua", "Interstate", "Iowan Old Style", "Iowan Old Style Black", "Iowan Old Style Black Italic", "Iowan Old Style Bold", "Iowan Old Style Bold Italic", "Iowan Old Style Italic", "Iowan Old Style Roman", "Iowan Old Style Titling", "IPAGothic", "IPAMincho", "IPAPGothic", "IPAPMincho", "Irish Grover", "IrisUPC", "IrisUPC Bold", "IrisUPC Bold Italic", "IrisUPC Italic", "Iskoola Pota", "Iskoola Pota Bold", "ISOCP", "ISOCP2", "ISOCP3", "ISOCPEUR", "ISOCT", "ISOCT2", "ISOCT3", "ISOCTEUR", "Istok Web", "Italiana", "Italianno", "Italic", "ItalicC", "ItalicT", "ITF Devanagari", "ITF Devanagari Bold", "ITF Devanagari Book", "ITF Devanagari Demi", "ITF Devanagari Light", "ITF Devanagari Marathi", "ITF Devanagari Marathi Bold", "ITF Devanagari Marathi Book", "ITF Devanagari Marathi Demi", "ITF Devanagari Marathi Light", "ITF Devanagari Marathi Medium", "ITF Devanagari Medium", "Itim", "Jacques Francois", "Jacques Francois Shadow", "Jaldi", "Jamrul", "Japan", "JasmineUPC", "JasmineUPC Bold", "JasmineUPC Bold Italic", "JasmineUPC Italic", "Javanese", "Javanese Text", "Jazz LET", "Jenson", "Jester", "Jet", "Jim Nightshade", "Jockey One", "Jokerman", "Jolly Lodger", "Jomhuria", "Jomolhari", "Josefin Sans", "Josefin Slab", "Joti One", "Jua", "Judson", "Juice ITC", "Julee", "Julius Sans One", "Junge", "Jura", "Just Another Hand", "Just Me Again Down Here", "K2D", "Kabel Bk BT", "Kabel Ult BT", "KacstArt", "KacstBook", "KacstDecorative", "KacstDigital", "KacstFarsi", "KacstLetter", "KacstNaskh", "KacstOffice", "KacstOne", "KacstPen", "KacstPoster", "KacstQurn", "KacstScreen", "KacstTitle", "KacstTitleL", "Kadwa", "Kai", "Kailasa", "Kailasa Bold", "Kailasa Regular", "Kai Regular", "KaiTi", "Kaiti SC", "Kaiti SC Black", "Kaiti SC Bold", "Kaiti SC Regular", "Kaiti TC", "Kaiti TC Black", "Kaiti TC Bold", "Kaiti TC Regular", "Kalam", "Kalapi", "Kalimati", "Kalinga", "Kalinga Bold", "Kalyani", "Kameron", "Kanit", "Kannada", "Kannada MN", "Kannada MN Bold", "Kannada Sangam MN", "Kannada Sangam MN Bold", "Kantumruy", "Karla", "Karma", "Kartika", "Kartika Bold", "Karumbi", "Katibeh", "Kaufmann Bd BT", "Kaufmann BT", "Kaushan Script", "Kavivanar", "Kavoon", "Kayah Li", "Kayrawan", "Kdam Thmor", "Keania One", "Kedage", "Kefa", "Kefa Bold", "Kefa Regular", "Kelly Slab", "Kenia", "Keraleeyam", "Keter YG", "Keyboard", "Khalid", "Khand", "Khmer", "Khmer MN", "Khmer MN Bold", "Khmer OS", "Khmer OS Battambang", "Khmer OS Bokor", "Khmer OS Content", "Khmer OS Fasthand", "Khmer OS Freehand", "Khmer OS Metal Chrieng", "Khmer OS Muol", "Khmer OS Muol Light", "Khmer OS Muol Pali", "Khmer OS Siemreap", "Khmer OS System", "Khmer Sangam MN", "Khmer UI", "Khmer UI Bold", "Khojki", "Khudawadi", "Khula", "Kinnari", "Kirang Haerang", "Kite One", "Klee", "Klee Demibold", "Klee Medium", "Knewave", "Kodchasan", "KodchiangUPC", "KodchiangUPC Bold", "KodchiangUPC Bold Italic", "KodchiangUPC Italic", "Kohinoor Bangla", "Kohinoor Bangla Bold", "Kohinoor Bangla Light", "Kohinoor Bangla Medium", "Kohinoor Bangla Semibold", "Kohinoor Devanagari", "Kohinoor Devanagari Bold", "Kohinoor Devanagari Light", "Kohinoor Devanagari Medium", "Kohinoor Devanagari Regular", "Kohinoor Devanagari Semibold", "Kohinoor Gujarati", "Kohinoor Gujarati Light", "Kohinoor Gujarati Medium", "Kohinoor Gujarati Semibold", "Kohinoor Telugu", "Kohinoor Telugu Bold", "Kohinoor Telugu Light", "Kohinoor Telugu Medium", "Kohinoor Telugu Semibold", "KoHo", "Kokila", "Kokila Bold", "Kokila Bold Italic", "Kokila Italic", "Kokonor", "Kokonor Regular", "Korinna BT", "Kosugi", "Kosugi Maru", "Kotta One", "Koulen", "Kozuka Gothic Pr6N B", "Kozuka Gothic Pr6N EL", "Kozuka Gothic Pr6N H", "Kozuka Gothic Pr6N L", "Kozuka Gothic Pr6N M", "Kozuka Gothic Pr6N R", "Kozuka Gothic Pro B", "Kozuka Gothic Pro EL", "Kozuka Gothic Pro H", "Kozuka Gothic Pro L", "Kozuka Gothic Pro M", "Kozuka Gothic Pro R", "Kozuka Mincho Pr6N B", "Kozuka Mincho Pr6N EL", "Kozuka Mincho Pr6N H", "Kozuka Mincho Pr6N L", "Kozuka Mincho Pr6N M", "Kozuka Mincho Pr6N R", "Kozuka Mincho Pro B", "Kozuka Mincho Pro EL", "Kozuka Mincho Pro H", "Kozuka Mincho Pro L", "Kozuka Mincho Pro M", "Kozuka Mincho Pro R", "Kranky", "Kreon", "Kristen ITC", "Kristi", "Krona One", "Krub", "Krungthep", "KufiStandardGK", "KufiStandardGK Regular", "Kulim Park", "Kumar One", "Kumar One Outline", "Kunstler Script", "Kurale", "La Belle Aurore", "Lacquer", "Laila", "Lakki Reddy", "Laksaman", "Lalezar", "Lancelot", "Lantinghei SC", "Lantinghei SC Demibold", "Lantinghei SC Extralight", "Lantinghei SC Heavy", "Lantinghei TC", "Lantinghei TC Demibold", "Lantinghei TC Extralight", "Lantinghei TC Heavy", "Lao", "Lao MN", "Lao MN Bold", "Lao Sangam MN", "Lao UI", "Lao UI Bold", "LastResort", "Lateef", "Latha", "Latha Bold", "Latin Modern Math", "Lato", "League Script", "Leckerli One", "Ledger", "Leelawadee", "Leelawadee Bold", "Leelawadee UI", "Leelawadee UI Bold", "Leelawadee UI Leelawadee UI", "Leelawadee UI Semilight", "Lekton", "Lemon", "Lemonada", "Lepcha", "Letter Gothic", "Letter Gothic Std", "Levenim MT", "Levenim MT Bold", "Lexend Deca", "Lexend Exa", "Lexend Giga", "Lexend Mega", "Lexend Peta", "Lexend Tera", "Lexend Zetta", "Liberation Mono", "Liberation Sans", "Liberation Sans Narrow", "Liberation Serif", "Libertinus Math", "Libian SC", "Libian SC Regular", "Libian TC", "Libian TC Regular", "Libre Barcode 39", "Libre Barcode 39 Extended", "Libre Barcode 39 Extended Text", "Libre Barcode 39 Text", "Libre Barcode 128", "Libre Barcode 128 Text", "Libre Baskerville", "Libre Caslon Display", "Libre Caslon Text", "Libre Franklin", "Life Savers", "LiHei Pro", "Likhan", "Lilita One", "Lily Script One", "LilyUPC", "LilyUPC Bold", "LilyUPC Bold Italic", "LilyUPC Italic", "Limbu", "Limelight", "Linden Hill", "LingWai SC", "LingWai SC Medium", "LingWai TC", "LingWai TC Medium", "Linux Biolinum Keyboard O", "Linux Biolinum O", "Linux Libertine Display O", "Linux Libertine Initials O", "Linux Libertine Mono O", "Linux Libertine O", "LiSong Pro", "Lisu", "Literata", "Lithograph", "Lithograph Light", "Lithos Pro Regular", "Liu Jian Mao Cao", "Livvic", "LKLUG", "Lobster", "Lobster Two", "Lohit Assamese", "Lohit Bengali", "Lohit Devanagari", "Lohit Gujarati", "Lohit Gurmukhi", "Lohit Hindi", "Lohit Kannada", "Lohit Malayalam", "Lohit Marathi", "Lohit Nepali", "Lohit Odia", "Lohit Oriya", "Lohit Punjabi", "Lohit Tamil", "Lohit Tamil Classical", "Lohit Telugu", "Loma", "Londrina Outline", "Londrina Shadow", "Londrina Sketch", "Londrina Solid", "Long Cang", "Long Island", "Lora", "Loved by the King", "Lovers Quarrel", "Love Ya Like A Sister", "Lucida Bright", "Lucida Calligraphy", "Lucida Console", "Lucida Fax", "Lucida Grande", "Lucida Grande Bold", "Lucida Handwriting", "Lucida Sans", "Lucida Sans Typewriter", "Lucida Sans Unicode", "Luckiest Guy", "Luminari", "Lusitana", "Lustria", "Lydian BT", "Macondo", "Macondo Swash Caps", "Mada", "Madan", "Magneto", "Magra", "Mahajani", "Maiandra GD", "Maiden Orange", "Maitree", "Major Mono Display", "Mako", "Malayalam", "Malayalam MN", "Malayalam MN Bold", "Malayalam Sangam MN", "Malayalam Sangam MN Bold", "Malgun Gothic", "Malgun Gothic Bold", "Malgun Gothic Semilight", "Mali", "Mallanna", "Mallige", "Mandaic", "Mandali", "Mangal", "Mangal Bold", "Manjari