[automerger skipped] Merge "[RESTRICT AUTOMERGE] Revert "Sync emojicompat changes to aosp-master"" am: cf75197813 am: e0d66d349b -s ours
am skip reason: Merged-In I23bb6a7bc40bb9e27159ed2312b413f183cc17b7 with SHA-1 df41aae3a1 is already in history. Merged-In was found from reverted change.
Reverted change: https://android-review.googlesource.com/c/platform/external/noto-fonts/+/1745374
Original change: https://android-review.googlesource.com/c/platform/external/noto-fonts/+/1748232
Change-Id: I03afb7de4a9571d4eaaeeb3fbd37e00d5d4c0650
diff --git a/cjk/NotoSansCJK-Regular.ttc b/cjk/NotoSansCJK-Regular.ttc
index 80b7550..a0d8773 100644
--- a/cjk/NotoSansCJK-Regular.ttc
+++ b/cjk/NotoSansCJK-Regular.ttc
Binary files differ
diff --git a/emoji-compat/Android.mk b/emoji-compat-flatbuffers/Android.mk
similarity index 74%
rename from emoji-compat/Android.mk
rename to emoji-compat-flatbuffers/Android.mk
index fc01e3a..00721b9 100644
--- a/emoji-compat/Android.mk
+++ b/emoji-compat-flatbuffers/Android.mk
@@ -15,10 +15,9 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
-LOCAL_MODULE := noto-emoji-compat-java
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-MIT SPDX-license-identifier-OFL SPDX-license-identifier-Unicode-DFS
-LOCAL_LICENSE_CONDITIONS := by_exception_only notice
-LOCAL_NOTICE_FILE := $(LOCAL_PATH)/LICENSE_OFL $(LOCAL_PATH)/LICENSE_UNICODE
+LOCAL_MODULE := noto-emoji-compat-flatbuffers-java
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
LOCAL_SRC_FILES := $(call all-java-files-under, src/java)
LOCAL_SDK_VERSION := current
diff --git a/emoji-compat-flatbuffers/build.gradle b/emoji-compat-flatbuffers/build.gradle
new file mode 100644
index 0000000..20d8dfb
--- /dev/null
+++ b/emoji-compat-flatbuffers/build.gradle
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins {
+ id("java")
+}
+
+sourceSets {
+ main {
+ java.srcDirs = ['src/java']
+ }
+}
+
+compileJava {
+ sourceCompatibility = JavaVersion.VERSION_1_7
+ targetCompatibility = JavaVersion.VERSION_1_7
+}
+
+dependencies {
+ implementation("com.google.flatbuffers:flatbuffers-java:1.12.0")
+}
+
+// The "javadoc" task is unused so we don't want it to appear in the output of `./gradlew tasks`
+// So, we set the group to null
+tasks["javadoc"].group = null
diff --git a/emoji-compat/data/emoji_metadata.fbs b/emoji-compat-flatbuffers/data/emoji_metadata.fbs
similarity index 100%
rename from emoji-compat/data/emoji_metadata.fbs
rename to emoji-compat-flatbuffers/data/emoji_metadata.fbs
diff --git a/emoji-compat/data/flatbuffer_header.txt b/emoji-compat-flatbuffers/data/flatbuffer_header.txt
similarity index 69%
rename from emoji-compat/data/flatbuffer_header.txt
rename to emoji-compat-flatbuffers/data/flatbuffer_header.txt
index d67f3a8..2b40a04 100644
--- a/emoji-compat/data/flatbuffer_header.txt
+++ b/emoji-compat-flatbuffers/data/flatbuffer_header.txt
@@ -14,16 +14,3 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package androidx.text.emoji.flatbuffer;
-
-import com.google.flatbuffers.FlatBufferBuilder;
-import com.google.flatbuffers.Table;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * Automatically generated by the FlatBuffers compiler, do not modify.
- */
-@SuppressWarnings("unused")
\ No newline at end of file
diff --git a/emoji-compat/jarjar-rules.txt b/emoji-compat-flatbuffers/jarjar-rules.txt
similarity index 100%
rename from emoji-compat/jarjar-rules.txt
rename to emoji-compat-flatbuffers/jarjar-rules.txt
diff --git a/emoji-compat/settings.gradle b/emoji-compat-flatbuffers/settings.gradle
similarity index 100%
rename from emoji-compat/settings.gradle
rename to emoji-compat-flatbuffers/settings.gradle
diff --git a/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java b/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
new file mode 100644
index 0000000..0b2a694
--- /dev/null
+++ b/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
@@ -0,0 +1,89 @@
+// CHECKSTYLE:OFF Generated code
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// automatically generated by the FlatBuffers compiler, do not modify
+
+package androidx.text.emoji.flatbuffer;
+
+import java.nio.*;
+import java.lang.*;
+import java.util.*;
+import com.google.flatbuffers.*;
+
+@SuppressWarnings("unused")
+public final class MetadataItem extends Table {
+ public static void ValidateVersion() { Constants.FLATBUFFERS_1_12_0(); }
+ public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb) { return getRootAsMetadataItem(_bb, new MetadataItem()); }
+ public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb, MetadataItem obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
+ public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
+ public MetadataItem __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
+
+ public int id() { int o = __offset(4); return o != 0 ? bb.getInt(o + bb_pos) : 0; }
+ public boolean emojiStyle() { int o = __offset(6); return o != 0 ? 0!=bb.get(o + bb_pos) : false; }
+ public short sdkAdded() { int o = __offset(8); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
+ public short compatAdded() { int o = __offset(10); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
+ public short width() { int o = __offset(12); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
+ public short height() { int o = __offset(14); return o != 0 ? bb.getShort(o + bb_pos) : 0; }
+ public int codepoints(int j) { int o = __offset(16); return o != 0 ? bb.getInt(__vector(o) + j * 4) : 0; }
+ public int codepointsLength() { int o = __offset(16); return o != 0 ? __vector_len(o) : 0; }
+ public IntVector codepointsVector() { return codepointsVector(new IntVector()); }
+ public IntVector codepointsVector(IntVector obj) { int o = __offset(16); return o != 0 ? obj.__assign(__vector(o), bb) : null; }
+ public ByteBuffer codepointsAsByteBuffer() { return __vector_as_bytebuffer(16, 4); }
+ public ByteBuffer codepointsInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 16, 4); }
+
+ public static int createMetadataItem(FlatBufferBuilder builder,
+ int id,
+ boolean emojiStyle,
+ short sdkAdded,
+ short compatAdded,
+ short width,
+ short height,
+ int codepointsOffset) {
+ builder.startTable(7);
+ MetadataItem.addCodepoints(builder, codepointsOffset);
+ MetadataItem.addId(builder, id);
+ MetadataItem.addHeight(builder, height);
+ MetadataItem.addWidth(builder, width);
+ MetadataItem.addCompatAdded(builder, compatAdded);
+ MetadataItem.addSdkAdded(builder, sdkAdded);
+ MetadataItem.addEmojiStyle(builder, emojiStyle);
+ return MetadataItem.endMetadataItem(builder);
+ }
+
+ public static void startMetadataItem(FlatBufferBuilder builder) { builder.startTable(7); }
+ public static void addId(FlatBufferBuilder builder, int id) { builder.addInt(0, id, 0); }
+ public static void addEmojiStyle(FlatBufferBuilder builder, boolean emojiStyle) { builder.addBoolean(1, emojiStyle, false); }
+ public static void addSdkAdded(FlatBufferBuilder builder, short sdkAdded) { builder.addShort(2, sdkAdded, 0); }
+ public static void addCompatAdded(FlatBufferBuilder builder, short compatAdded) { builder.addShort(3, compatAdded, 0); }
+ public static void addWidth(FlatBufferBuilder builder, short width) { builder.addShort(4, width, 0); }
+ public static void addHeight(FlatBufferBuilder builder, short height) { builder.addShort(5, height, 0); }
+ public static void addCodepoints(FlatBufferBuilder builder, int codepointsOffset) { builder.addOffset(6, codepointsOffset, 0); }
+ public static int createCodepointsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addInt(data[i]); return builder.endVector(); }
+ public static void startCodepointsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
+ public static int endMetadataItem(FlatBufferBuilder builder) {
+ int o = builder.endTable();
+ return o;
+ }
+
+ public static final class Vector extends BaseVector {
+ public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; }
+
+ public MetadataItem get(int j) { return get(new MetadataItem(), j); }
+ public MetadataItem get(MetadataItem obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); }
+ }
+}
+
diff --git a/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataList.java b/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
new file mode 100644
index 0000000..6330098
--- /dev/null
+++ b/emoji-compat-flatbuffers/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
@@ -0,0 +1,76 @@
+// CHECKSTYLE:OFF Generated code
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// automatically generated by the FlatBuffers compiler, do not modify
+
+package androidx.text.emoji.flatbuffer;
+
+import java.nio.*;
+import java.lang.*;
+import java.util.*;
+import com.google.flatbuffers.*;
+
+@SuppressWarnings("unused")
+public final class MetadataList extends Table {
+ public static void ValidateVersion() { Constants.FLATBUFFERS_1_12_0(); }
+ public static MetadataList getRootAsMetadataList(ByteBuffer _bb) { return getRootAsMetadataList(_bb, new MetadataList()); }
+ public static MetadataList getRootAsMetadataList(ByteBuffer _bb, MetadataList obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
+ public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); }
+ public MetadataList __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
+
+ public int version() { int o = __offset(4); return o != 0 ? bb.getInt(o + bb_pos) : 0; }
+ public androidx.text.emoji.flatbuffer.MetadataItem list(int j) { return list(new androidx.text.emoji.flatbuffer.MetadataItem(), j); }
+ public androidx.text.emoji.flatbuffer.MetadataItem list(androidx.text.emoji.flatbuffer.MetadataItem obj, int j) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; }
+ public int listLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; }
+ public androidx.text.emoji.flatbuffer.MetadataItem.Vector listVector() { return listVector(new androidx.text.emoji.flatbuffer.MetadataItem.Vector()); }
+ public androidx.text.emoji.flatbuffer.MetadataItem.Vector listVector(androidx.text.emoji.flatbuffer.MetadataItem.Vector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; }
+ public String sourceSha() { int o = __offset(8); return o != 0 ? __string(o + bb_pos) : null; }
+ public ByteBuffer sourceShaAsByteBuffer() { return __vector_as_bytebuffer(8, 1); }
+ public ByteBuffer sourceShaInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 8, 1); }
+
+ public static int createMetadataList(FlatBufferBuilder builder,
+ int version,
+ int listOffset,
+ int sourceShaOffset) {
+ builder.startTable(3);
+ MetadataList.addSourceSha(builder, sourceShaOffset);
+ MetadataList.addList(builder, listOffset);
+ MetadataList.addVersion(builder, version);
+ return MetadataList.endMetadataList(builder);
+ }
+
+ public static void startMetadataList(FlatBufferBuilder builder) { builder.startTable(3); }
+ public static void addVersion(FlatBufferBuilder builder, int version) { builder.addInt(0, version, 0); }
+ public static void addList(FlatBufferBuilder builder, int listOffset) { builder.addOffset(1, listOffset, 0); }
+ public static int createListVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); }
+ public static void startListVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); }
+ public static void addSourceSha(FlatBufferBuilder builder, int sourceShaOffset) { builder.addOffset(2, sourceShaOffset, 0); }
+ public static int endMetadataList(FlatBufferBuilder builder) {
+ int o = builder.endTable();
+ return o;
+ }
+ public static void finishMetadataListBuffer(FlatBufferBuilder builder, int offset) { builder.finish(offset); }
+ public static void finishSizePrefixedMetadataListBuffer(FlatBufferBuilder builder, int offset) { builder.finishSizePrefixed(offset); }
+
+ public static final class Vector extends BaseVector {
+ public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; }
+
+ public MetadataList get(int j) { return get(new MetadataList(), j); }
+ public MetadataList get(MetadataList obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); }
+ }
+}
+
diff --git a/emoji/Android.bp b/emoji-compat/Android.bp
similarity index 83%
rename from emoji/Android.bp
rename to emoji-compat/Android.bp
index 5f391c1..c6b71ee 100644
--- a/emoji/Android.bp
+++ b/emoji-compat/Android.bp
@@ -37,15 +37,27 @@
name: "external_noto-fonts_emoji_license",
visibility: [":__subpackages__"],
license_kinds: [
- "SPDX-license-identifier-MIT",
+ "SPDX-license-identifier-Unicode-DFS",
"SPDX-license-identifier-OFL", // by exception only
],
license_text: [
- "NOTICE",
+ "LICENSE_OFL",
+ "LICENSE_UNICODE",
],
}
prebuilt_font {
name: "NotoColorEmoji.ttf",
- src: "NotoColorEmoji.ttf",
+ src: "font/NotoColorEmojiCompat.ttf",
+ dist: {
+ targets: ["droidcore"],
+ },
+}
+
+// To use in other build rules.
+genrule {
+ name: "NotoColorEmojiTtf",
+ srcs: ["font/NotoColorEmojiCompat.ttf"],
+ out: ["NotoColorEmoji.ttf"],
+ cmd: "cp $(in) $(out)",
}
diff --git a/emoji-compat/build.gradle b/emoji-compat/build.gradle
deleted file mode 100644
index 752eb39..0000000
--- a/emoji-compat/build.gradle
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-apply plugin: 'java'
-apply plugin: 'org.anarres.jarjar'
-apply plugin: 'maven'
-
-ext {
- flatbuffersDir = '../../flatbuffers'
-}
-
-buildscript {
- boolean unbundleBuild = (new File("unbundled-build")).exists()
- repositories {
- maven { url '../../../prebuilts/androidx/external' }
- if (unbundleBuild) {
- jcenter()
- }
- }
-
- dependencies {
- classpath 'org.anarres.jarjar:jarjar-gradle:1.0.1'
- }
-}
-
-sourceSets {
- main {
- java.srcDirs = ['src/java']
- }
-}
-
-compileJava {
- sourceCompatibility = JavaVersion.VERSION_1_7
- targetCompatibility = JavaVersion.VERSION_1_7
-}
-
-dependencies {
- compile 'com.google.flatbuffers:flatbuffers-java:1.12.0'
-}
-
-jarjar.repackage('rename') {
- destinationName "noto-emoji-compat-java.jar"
- from 'com.google.flatbuffers:flatbuffers-java:1.12.0'
- from files(sourceSets.main.output.classesDirs)
- dependsOn sourceSets.main.output
- classRename 'com.google.flatbuffers.**', 'androidx.text.emoji.flatbuffer.@1'
-}
-
-configurations {
- parser
-}
-
-artifacts {
- parser(rename.destinationPath) {
- name 'noto-emoji-compat'
- type 'jar'
- builtBy rename
- }
-}
-
-// The "javadoc" task is unused so we don't want it to appear in the output of `./gradlew tasks`
-// So, we set the group to null
-tasks["javadoc"].group = null
diff --git a/emoji-compat/createfont.py b/emoji-compat/createfont.py
index fb9dc5a..39204f8 100755
--- a/emoji-compat/createfont.py
+++ b/emoji-compat/createfont.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
#
# Copyright (C) 2017 The Android Open Source Project
#
@@ -43,8 +43,6 @@
- src/java/android/support/text/emoji/flatbuffer/*
"""
-from __future__ import print_function
-
import contextlib
import csv
import hashlib
@@ -52,24 +50,25 @@
import json
import os
import shutil
+import subprocess
import sys
import tempfile
from fontTools import ttLib
########### UPDATE OR CHECK WHEN A NEW FONT IS BEING GENERATED ###########
# Last Android SDK Version
-SDK_VERSION = 29
+SDK_VERSION = 30
# metadata version that will be embedded into font. If there are updates to the font that would
# cause data/emoji_metadata.txt to change, this integer number should be incremented. This number
# defines in which EmojiCompat metadata version the emoji is added to the font.
-METADATA_VERSION = 5
+METADATA_VERSION = 7
####### main directories where output files are created #######
SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
FONT_DIR = os.path.join(SCRIPT_DIR, 'font')
DATA_DIR = os.path.join(SCRIPT_DIR, 'data')
SUPPORTED_EMOJIS_DIR = os.path.join(SCRIPT_DIR, 'supported-emojis')
-JAVA_SRC_DIR = os.path.join(SCRIPT_DIR, 'src', 'java')
+JAVA_SRC_DIR = os.path.join('src', 'java')
####### output files #######
# font file
FONT_PATH = os.path.join(FONT_DIR, 'NotoColorEmojiCompat.ttf')
@@ -91,10 +90,12 @@
EMOJI_STYLE_OVERRIDE_FILE = os.path.join('additions', 'emoji-data.txt')
# emoji metadata file
INPUT_META_FILE = OUTPUT_META_FILE
+# default flatbuffer module location (if not specified by caller)
+FLATBUFFER_MODULE_DIR = os.path.join(SCRIPT_DIR, '..', 'emoji-compat-flatbuffers')
# flatbuffer schema
-FLATBUFFER_SCHEMA = os.path.join(DATA_DIR, 'emoji_metadata.fbs')
+FLATBUFFER_SCHEMA = os.path.join(FLATBUFFER_MODULE_DIR, 'data', 'emoji_metadata.fbs')
# file path for java header, it will be prepended to flatbuffer java files
-FLATBUFFER_HEADER = os.path.join(DATA_DIR, "flatbuffer_header.txt")
+FLATBUFFER_HEADER = os.path.join(FLATBUFFER_MODULE_DIR, 'data', 'flatbuffer_header.txt')
# temporary emoji metadata json output file
OUTPUT_JSON_FILE_NAME = 'emoji_metadata.json'
# temporary binary file generated by flatbuffer
@@ -106,7 +107,7 @@
FLATBUFFER_METADATA_LIST_JAVA = "MetadataList.java"
FLATBUFFER_METADATA_ITEM_JAVA = "MetadataItem.java"
# directory under source where flatbuffer java files will be copied into
-FLATBUFFER_JAVA_TARGET = os.path.join(JAVA_SRC_DIR, FLATBUFFER_PACKAGE_PATH)
+FLATBUFFER_JAVA_TARGET = os.path.join(FLATBUFFER_MODULE_DIR, JAVA_SRC_DIR, FLATBUFFER_PACKAGE_PATH)
# meta tag name used in the font to embed the emoji metadata. This value is also used in
# MetadataListReader.java in order to locate the metadata location.
EMOJI_META_TAG_NAME = 'Emji'
@@ -131,29 +132,28 @@
"""Converts a list of codepoints into a string separated with space."""
return ' '.join([to_hex_str(x) for x in codepoints])
-def prepend_header_to_file(file_path):
+def prepend_header_to_file(file_path, header_path):
"""Prepends the header to the file. Used to update flatbuffer java files with header, comments
and annotations."""
with open(file_path, "r+") as original_file:
- with open(FLATBUFFER_HEADER, "r") as copyright_file:
+ with open(header_path, "r") as copyright_file:
original_content = original_file.read()
- start_index = original_content.index("public final class")
original_file.seek(0)
- original_file.write(copyright_file.read() + "\n" + original_content[start_index:])
+ original_file.write(copyright_file.read() + "\n" + original_content)
-def update_flatbuffer_java_files(flatbuffer_java_dir):
+def update_flatbuffer_java_files(flatbuffer_java_dir, header_dir, target_dir):
"""Prepends headers to flatbuffer java files and copies to the final destination"""
tmp_metadata_list = flatbuffer_java_dir + FLATBUFFER_METADATA_LIST_JAVA
tmp_metadata_item = flatbuffer_java_dir + FLATBUFFER_METADATA_ITEM_JAVA
- prepend_header_to_file(tmp_metadata_list)
- prepend_header_to_file(tmp_metadata_item)
+ prepend_header_to_file(tmp_metadata_list, header_dir)
+ prepend_header_to_file(tmp_metadata_item, header_dir)
- if not os.path.exists(FLATBUFFER_JAVA_TARGET):
- os.makedirs(FLATBUFFER_JAVA_TARGET)
+ if not os.path.exists(target_dir):
+ os.makedirs(target_dir)
- shutil.copy(tmp_metadata_list, FLATBUFFER_JAVA_TARGET + FLATBUFFER_METADATA_LIST_JAVA)
- shutil.copy(tmp_metadata_item, FLATBUFFER_JAVA_TARGET + FLATBUFFER_METADATA_ITEM_JAVA)
+ shutil.copy(tmp_metadata_list, os.path.join(target_dir, FLATBUFFER_METADATA_LIST_JAVA))
+ shutil.copy(tmp_metadata_item, os.path.join(target_dir, FLATBUFFER_METADATA_ITEM_JAVA))
def create_test_data(unicode_path):
"""Read all the emojis in the unicode files and update the test file"""
@@ -422,14 +422,14 @@
if not 'meta' in ttf:
ttf['meta'] = ttLib.getTableClass('meta')()
meta = ttf['meta']
- with open(flatbuffer_bin_filename) as flatbuffer_bin_file:
+ with open(flatbuffer_bin_filename, 'rb') as flatbuffer_bin_file:
meta.data[EMOJI_META_TAG_NAME] = flatbuffer_bin_file.read()
# sort meta tables for faster access
update_ttlib_orig_sort()
-def validate_input_files(font_path, unicode_path):
+def validate_input_files(font_path, unicode_path, flatbuffer_path):
"""Validate the existence of font file and the unicode files"""
if not os.path.isfile(font_path):
raise ValueError("Font file does not exist: " + font_path)
@@ -445,10 +445,20 @@
if not os.path.isfile(emoji_filename):
raise ValueError("Unicode emoji data file does not exist: " + emoji_filename)
+ if not os.path.isdir(flatbuffer_path):
+ raise ValueError(
+ "Flatbuffer directory does not exist or is not a directory " + flatbuffer_path)
+
+ flatbuffer_filenames = [os.path.join(flatbuffer_path, FLATBUFFER_SCHEMA),
+ os.path.join(flatbuffer_path, FLATBUFFER_HEADER)]
+ for flatbuffer_filename in flatbuffer_filenames:
+ if not os.path.isfile(flatbuffer_filename):
+ raise ValueError("Flatbuffer file does not exist: " + flatbuffer_filename)
+
def add_file_to_sha(sha_algo, file_path):
with open(file_path, 'rb') as input_file:
- for data in iter(lambda: input_file.read(8192), ''):
+ for data in iter(lambda: input_file.read(8192), b''):
sha_algo.update(data)
def create_sha_from_source_files(font_paths):
@@ -463,7 +473,7 @@
"""Creates the EmojiCompat font"""
def __init__(self, font_path, unicode_path):
- validate_input_files(font_path, unicode_path)
+ validate_input_files(font_path, unicode_path, FLATBUFFER_MODULE_DIR)
self.font_path = font_path
self.unicode_path = unicode_path
@@ -491,7 +501,7 @@
"""Read image size data from CBDT."""
cbdt = ttf['CBDT']
for strike_data in cbdt.strikeData:
- for key, data in strike_data.iteritems():
+ for key, data in strike_data.items():
data.decompile()
self.glyph_to_image_metrics_map[key] = data.metrics
@@ -501,7 +511,7 @@
cmap = ttf['cmap']
for table in cmap.tables:
if table.format == 12 and table.platformID == 3 and table.platEncID == 10:
- for codepoint, glyph_name in table.cmap.iteritems():
+ for codepoint, glyph_name in table.cmap.items():
glyph_to_codepoint_map[glyph_name] = codepoint
self.update_emoji_data([codepoint], glyph_name)
return table
@@ -546,7 +556,7 @@
glyph_names = [x["input"] for x in seq]
codepoints = [glyph_to_codepoint_map[x] for x in glyph_names]
outputs = [x["output"] for x in seq if x["output"]]
- nonempty_outputs = filter(lambda x: x.strip() , outputs)
+ nonempty_outputs = list(filter(lambda x: x.strip() , outputs))
if len(nonempty_outputs) == 0:
print("Warning: no output glyph is set for " + str(glyph_names))
continue
@@ -561,12 +571,12 @@
def get_substitutions(self, lookup_list, index):
result = []
for x in lookup_list.Lookup[index].SubTable:
- for input, output in x.mapping.iteritems():
+ for input, output in x.mapping.items():
result.append({"input": input, "output": output})
return result
def add_gsub_ligature_subtable(self, subtable, glyph_to_codepoint_map):
- for name, ligatures in subtable.ligatures.iteritems():
+ for name, ligatures in subtable.ligatures.items():
for ligature in ligatures:
glyph_names = [name] + ligature.Component
codepoints = [glyph_to_codepoint_map[x] for x in glyph_names]
@@ -649,8 +659,14 @@
total_emoji_count = self.write_metadata_json(output_json_file)
# create the flatbuffers binary and java classes
- sys_command = 'flatc -o {0} -b -j {1} {2}'
- os.system(sys_command.format(tmp_dir, FLATBUFFER_SCHEMA, output_json_file))
+ flatc_command = ['flatc',
+ '-o',
+ tmp_dir,
+ '-b',
+ '-j',
+ FLATBUFFER_SCHEMA,
+ output_json_file]
+ subprocess.check_output(flatc_command)
# inject metadata binary into font
inject_meta_into_font(ttf, flatbuffer_bin_file)
@@ -662,7 +678,9 @@
# save the new font
ttf.save(FONT_PATH)
- update_flatbuffer_java_files(flatbuffer_java_dir)
+ update_flatbuffer_java_files(flatbuffer_java_dir, #tmp dir
+ FLATBUFFER_HEADER,
+ FLATBUFFER_JAVA_TARGET)
create_test_data(self.unicode_path)
@@ -678,9 +696,17 @@
print("Please specify a path to font and unicode files.\n"
"usage: createfont.py noto-color-emoji-path unicode-dir-path")
-
-if __name__ == '__main__':
- if len(sys.argv) < 3:
+def parse_args(argv):
+ # parse manually to avoid any extra dependencies
+ if len(argv) < 3:
print_usage()
sys.exit(1)
- EmojiFontCreator(sys.argv[1], sys.argv[2]).create_font()
+ return (sys.argv[1], sys.argv[2])
+
+def main():
+ font_file, unicode_dir = parse_args(sys.argv)
+ EmojiFontCreator(font_file, unicode_dir).create_font()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/emoji-compat/data/emoji_metadata.txt b/emoji-compat/data/emoji_metadata.txt
index 3c5cdf4..6bee6fa 100644
--- a/emoji-compat/data/emoji_metadata.txt
+++ b/emoji-compat/data/emoji_metadata.txt
@@ -3244,3 +3244,337 @@
F0CDF 29 5 1F9D1 200D 1F9B3
F0CE0 29 5 1F9D1 200D 1F9BC
F0CE1 29 5 1F9D1 200D 1F9BD
+F0CE2 30 6 26A7
+F0CE3 30 6 1F6D6
+F0CE4 30 6 1F6D7
+F0CE5 30 6 1F6FB
+F0CE6 30 6 1F6FC
+F0CE7 30 6 1F90C
+F0CE8 30 6 1F972
+F0CE9 30 6 1F977
+F0CEA 30 6 1F978
+F0CEB 30 6 1F9A3
+F0CEC 30 6 1F9A4
+F0CED 30 6 1F9AB
+F0CEE 30 6 1F9AC
+F0CEF 30 6 1F9AD
+F0CF0 30 6 1F9CB
+F0CF1 30 6 1FA74
+F0CF2 30 6 1FA83
+F0CF3 30 6 1FA84
+F0CF4 30 6 1FA85
+F0CF5 30 6 1FA86
+F0CF6 30 6 1FA96
+F0CF7 30 6 1FA97
+F0CF8 30 6 1FA98
+F0CF9 30 6 1FA99
+F0CFA 30 6 1FA9A
+F0CFB 30 6 1FA9B
+F0CFC 30 6 1FA9C
+F0CFD 30 6 1FA9D
+F0CFE 30 6 1FA9E
+F0CFF 30 6 1FA9F
+F0D00 30 6 1FAA0
+F0D01 30 6 1FAA1
+F0D02 30 6 1FAA2
+F0D03 30 6 1FAA3
+F0D04 30 6 1FAA4
+F0D05 30 6 1FAA5
+F0D06 30 6 1FAA6
+F0D07 30 6 1FAA7
+F0D08 30 6 1FAA8
+F0D09 30 6 1FAB0
+F0D0A 30 6 1FAB1
+F0D0B 30 6 1FAB2
+F0D0C 30 6 1FAB3
+F0D0D 30 6 1FAB4
+F0D0E 30 6 1FAB5
+F0D0F 30 6 1FAB6
+F0D10 30 6 1FAC0
+F0D11 30 6 1FAC1
+F0D12 30 6 1FAC2
+F0D13 30 6 1FAD0
+F0D14 30 6 1FAD1
+F0D15 30 6 1FAD2
+F0D16 30 6 1FAD3
+F0D17 30 6 1FAD4
+F0D18 30 6 1FAD5
+F0D19 30 6 1FAD6
+F0D1A 30 6 1F3F3 200D 26A7
+F0D1B 30 6 1F408 200D 2B1B
+F0D1C 30 6 1F43B 200D 2744
+F0D1D 30 6 1F468 1F3FB 200D 1F37C
+F0D1E 30 6 1F468 1F3FC 200D 1F37C
+F0D1F 30 6 1F468 1F3FD 200D 1F37C
+F0D20 30 6 1F468 1F3FE 200D 1F37C
+F0D21 30 6 1F468 1F3FF 200D 1F37C
+F0D22 30 6 1F468 200D 1F37C
+F0D23 30 6 1F469 1F3FB 200D 1F37C
+F0D24 30 6 1F469 1F3FC 200D 1F37C
+F0D25 30 6 1F469 1F3FD 200D 1F37C
+F0D26 30 6 1F469 1F3FE 200D 1F37C
+F0D27 30 6 1F469 1F3FF 200D 1F37C
+F0D28 30 6 1F469 200D 1F37C
+F0D29 30 6 1F470 1F3FB 200D 2640
+F0D2A 30 6 1F470 1F3FB 200D 2642
+F0D2B 30 6 1F470 1F3FC 200D 2640
+F0D2C 30 6 1F470 1F3FC 200D 2642
+F0D2D 30 6 1F470 1F3FD 200D 2640
+F0D2E 30 6 1F470 1F3FD 200D 2642
+F0D2F 30 6 1F470 1F3FE 200D 2640
+F0D30 30 6 1F470 1F3FE 200D 2642
+F0D31 30 6 1F470 1F3FF 200D 2640
+F0D32 30 6 1F470 1F3FF 200D 2642
+F0D33 30 6 1F470 200D 2640
+F0D34 30 6 1F470 200D 2642
+F0D35 30 6 1F90C 1F3FB
+F0D36 30 6 1F90C 1F3FC
+F0D37 30 6 1F90C 1F3FD
+F0D38 30 6 1F90C 1F3FE
+F0D39 30 6 1F90C 1F3FF
+F0D3A 30 6 1F935 1F3FB 200D 2640
+F0D3B 30 6 1F935 1F3FB 200D 2642
+F0D3C 30 6 1F935 1F3FC 200D 2640
+F0D3D 30 6 1F935 1F3FC 200D 2642
+F0D3E 30 6 1F935 1F3FD 200D 2640
+F0D3F 30 6 1F935 1F3FD 200D 2642
+F0D40 30 6 1F935 1F3FE 200D 2640
+F0D41 30 6 1F935 1F3FE 200D 2642
+F0D42 30 6 1F935 1F3FF 200D 2640
+F0D43 30 6 1F935 1F3FF 200D 2642
+F0D44 30 6 1F935 200D 2640
+F0D45 30 6 1F935 200D 2642
+F0D46 30 6 1F977 1F3FB
+F0D47 30 6 1F977 1F3FC
+F0D48 30 6 1F977 1F3FD
+F0D49 30 6 1F977 1F3FE
+F0D4A 30 6 1F977 1F3FF
+F0D4B 30 6 1F9D1 1F3FB 200D 1F37C
+F0D4C 30 6 1F9D1 1F3FB 200D 1F384
+F0D4D 30 6 1F9D1 1F3FC 200D 1F37C
+F0D4E 30 6 1F9D1 1F3FC 200D 1F384
+F0D4F 30 6 1F9D1 1F3FD 200D 1F37C
+F0D50 30 6 1F9D1 1F3FD 200D 1F384
+F0D51 30 6 1F9D1 1F3FE 200D 1F37C
+F0D52 30 6 1F9D1 1F3FE 200D 1F384
+F0D53 30 6 1F9D1 1F3FF 200D 1F37C
+F0D54 30 6 1F9D1 1F3FF 200D 1F384
+F0D55 30 6 1F9D1 200D 1F37C
+F0D56 30 6 1F9D1 200D 1F384
+F0D57 30 7 2764 200D 1F525
+F0D58 30 7 2764 200D 1FA79
+F0D59 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0D5A 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0D5B 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0D5C 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0D5D 30 7 1F468 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0D5E 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0D5F 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0D60 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0D61 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0D62 30 7 1F468 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0D63 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0D64 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0D65 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0D66 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0D67 30 7 1F468 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0D68 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0D69 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0D6A 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0D6B 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0D6C 30 7 1F468 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0D6D 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0D6E 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0D6F 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0D70 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0D71 30 7 1F468 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0D72 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FB
+F0D73 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FC
+F0D74 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FD
+F0D75 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FE
+F0D76 30 7 1F468 1F3FB 200D 2764 200D 1F468 1F3FF
+F0D77 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FB
+F0D78 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FC
+F0D79 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FD
+F0D7A 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FE
+F0D7B 30 7 1F468 1F3FC 200D 2764 200D 1F468 1F3FF
+F0D7C 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FB
+F0D7D 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FC
+F0D7E 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FD
+F0D7F 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FE
+F0D80 30 7 1F468 1F3FD 200D 2764 200D 1F468 1F3FF
+F0D81 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FB
+F0D82 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FC
+F0D83 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FD
+F0D84 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FE
+F0D85 30 7 1F468 1F3FE 200D 2764 200D 1F468 1F3FF
+F0D86 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FB
+F0D87 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FC
+F0D88 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FD
+F0D89 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FE
+F0D8A 30 7 1F468 1F3FF 200D 2764 200D 1F468 1F3FF
+F0D8B 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0D8C 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0D8D 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0D8E 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0D8F 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0D90 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FB
+F0D91 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FC
+F0D92 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FD
+F0D93 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FE
+F0D94 30 7 1F469 1F3FB 200D 2764 200D 1F48B 200D 1F469 1F3FF
+F0D95 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0D96 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0D97 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0D98 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0D99 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0D9A 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FB
+F0D9B 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FC
+F0D9C 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FD
+F0D9D 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FE
+F0D9E 30 7 1F469 1F3FC 200D 2764 200D 1F48B 200D 1F469 1F3FF
+F0D9F 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0DA0 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0DA1 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0DA2 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0DA3 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0DA4 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FB
+F0DA5 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FC
+F0DA6 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FD
+F0DA7 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FE
+F0DA8 30 7 1F469 1F3FD 200D 2764 200D 1F48B 200D 1F469 1F3FF
+F0DA9 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0DAA 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0DAB 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0DAC 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0DAD 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0DAE 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FB
+F0DAF 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FC
+F0DB0 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FD
+F0DB1 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FE
+F0DB2 30 7 1F469 1F3FE 200D 2764 200D 1F48B 200D 1F469 1F3FF
+F0DB3 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FB
+F0DB4 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FC
+F0DB5 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FD
+F0DB6 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FE
+F0DB7 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F468 1F3FF
+F0DB8 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FB
+F0DB9 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FC
+F0DBA 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FD
+F0DBB 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FE
+F0DBC 30 7 1F469 1F3FF 200D 2764 200D 1F48B 200D 1F469 1F3FF
+F0DBD 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FB
+F0DBE 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FC
+F0DBF 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FD
+F0DC0 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FE
+F0DC1 30 7 1F469 1F3FB 200D 2764 200D 1F468 1F3FF
+F0DC2 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FB
+F0DC3 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FC
+F0DC4 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FD
+F0DC5 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FE
+F0DC6 30 7 1F469 1F3FB 200D 2764 200D 1F469 1F3FF
+F0DC7 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FB
+F0DC8 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FC
+F0DC9 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FD
+F0DCA 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FE
+F0DCB 30 7 1F469 1F3FC 200D 2764 200D 1F468 1F3FF
+F0DCC 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FB
+F0DCD 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FC
+F0DCE 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FD
+F0DCF 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FE
+F0DD0 30 7 1F469 1F3FC 200D 2764 200D 1F469 1F3FF
+F0DD1 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FB
+F0DD2 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FC
+F0DD3 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FD
+F0DD4 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FE
+F0DD5 30 7 1F469 1F3FD 200D 2764 200D 1F468 1F3FF
+F0DD6 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FB
+F0DD7 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FC
+F0DD8 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FD
+F0DD9 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FE
+F0DDA 30 7 1F469 1F3FD 200D 2764 200D 1F469 1F3FF
+F0DDB 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FB
+F0DDC 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FC
+F0DDD 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FD
+F0DDE 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FE
+F0DDF 30 7 1F469 1F3FE 200D 2764 200D 1F468 1F3FF
+F0DE0 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FB
+F0DE1 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FC
+F0DE2 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FD
+F0DE3 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FE
+F0DE4 30 7 1F469 1F3FE 200D 2764 200D 1F469 1F3FF
+F0DE5 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FB
+F0DE6 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FC
+F0DE7 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FD
+F0DE8 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FE
+F0DE9 30 7 1F469 1F3FF 200D 2764 200D 1F468 1F3FF
+F0DEA 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FB
+F0DEB 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FC
+F0DEC 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FD
+F0DED 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FE
+F0DEE 30 7 1F469 1F3FF 200D 2764 200D 1F469 1F3FF
+F0DEF 30 7 1F48F 1F3FB
+F0DF0 30 7 1F48F 1F3FC
+F0DF1 30 7 1F48F 1F3FD
+F0DF2 30 7 1F48F 1F3FE
+F0DF3 30 7 1F48F 1F3FF
+F0DF4 30 7 1F491 1F3FB
+F0DF5 30 7 1F491 1F3FC
+F0DF6 30 7 1F491 1F3FD
+F0DF7 30 7 1F491 1F3FE
+F0DF8 30 7 1F491 1F3FF
+F0DF9 30 7 1F62E 200D 1F4A8
+F0DFA 30 7 1F635 200D 1F4AB
+F0DFB 30 7 1F636 200D 1F32B
+F0DFC 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FC
+F0DFD 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FD
+F0DFE 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FE
+F0DFF 30 7 1F9D1 1F3FB 200D 2764 200D 1F48B 200D 1F9D1 1F3FF
+F0E00 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FB
+F0E01 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FD
+F0E02 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FE
+F0E03 30 7 1F9D1 1F3FC 200D 2764 200D 1F48B 200D 1F9D1 1F3FF
+F0E04 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FB
+F0E05 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FC
+F0E06 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FE
+F0E07 30 7 1F9D1 1F3FD 200D 2764 200D 1F48B 200D 1F9D1 1F3FF
+F0E08 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FB
+F0E09 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FC
+F0E0A 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FD
+F0E0B 30 7 1F9D1 1F3FE 200D 2764 200D 1F48B 200D 1F9D1 1F3FF
+F0E0C 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FB
+F0E0D 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FC
+F0E0E 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FD
+F0E0F 30 7 1F9D1 1F3FF 200D 2764 200D 1F48B 200D 1F9D1 1F3FE
+F0E10 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FC
+F0E11 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FD
+F0E12 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FE
+F0E13 30 7 1F9D1 1F3FB 200D 2764 200D 1F9D1 1F3FF
+F0E14 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FB
+F0E15 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FD
+F0E16 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FE
+F0E17 30 7 1F9D1 1F3FC 200D 2764 200D 1F9D1 1F3FF
+F0E18 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FB
+F0E19 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FC
+F0E1A 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FE
+F0E1B 30 7 1F9D1 1F3FD 200D 2764 200D 1F9D1 1F3FF
+F0E1C 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FB
+F0E1D 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FC
+F0E1E 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FD
+F0E1F 30 7 1F9D1 1F3FE 200D 2764 200D 1F9D1 1F3FF
+F0E20 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FB
+F0E21 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FC
+F0E22 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FD
+F0E23 30 7 1F9D1 1F3FF 200D 2764 200D 1F9D1 1F3FE
+F0E24 30 7 1F9D4 1F3FB 200D 2640
+F0E25 30 7 1F9D4 1F3FB 200D 2642
+F0E26 30 7 1F9D4 1F3FC 200D 2640
+F0E27 30 7 1F9D4 1F3FC 200D 2642
+F0E28 30 7 1F9D4 1F3FD 200D 2640
+F0E29 30 7 1F9D4 1F3FD 200D 2642
+F0E2A 30 7 1F9D4 1F3FE 200D 2640
+F0E2B 30 7 1F9D4 1F3FE 200D 2642
+F0E2C 30 7 1F9D4 1F3FF 200D 2640
+F0E2D 30 7 1F9D4 1F3FF 200D 2642
+F0E2E 30 7 1F9D4 200D 2640
+F0E2F 30 7 1F9D4 200D 2642
diff --git a/emoji-compat/font/NotoColorEmojiCompat.ttf b/emoji-compat/font/NotoColorEmojiCompat.ttf
index 20d32a8..2325304 100644
--- a/emoji-compat/font/NotoColorEmojiCompat.ttf
+++ b/emoji-compat/font/NotoColorEmojiCompat.ttf
Binary files differ
diff --git a/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java b/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
deleted file mode 100644
index eec1339..0000000
--- a/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataItem.java
+++ /dev/null
@@ -1,160 +0,0 @@
-// CHECKSTYLE:OFF Generated code
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.text.emoji.flatbuffer;
-
-import com.google.flatbuffers.FlatBufferBuilder;
-import com.google.flatbuffers.Table;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * Automatically generated by the FlatBuffers compiler, do not modify.
- */
-@SuppressWarnings("unused")
-public final class MetadataItem extends Table {
- public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb) {
- return getRootAsMetadataItem(_bb, new MetadataItem());
- }
-
- public static MetadataItem getRootAsMetadataItem(ByteBuffer _bb, MetadataItem obj) {
- _bb.order(ByteOrder.LITTLE_ENDIAN);
- return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb));
- }
-
- public void __init(int _i, ByteBuffer _bb) {
- bb_pos = _i;
- bb = _bb;
- }
-
- public MetadataItem __assign(int _i, ByteBuffer _bb) {
- __init(_i, _bb);
- return this;
- }
-
- public int id() {
- int o = __offset(4);
- return o != 0 ? bb.getInt(o + bb_pos) : 0;
- }
-
- public boolean emojiStyle() {
- int o = __offset(6);
- return o != 0 ? 0 != bb.get(o + bb_pos) : false;
- }
-
- public short sdkAdded() {
- int o = __offset(8);
- return o != 0 ? bb.getShort(o + bb_pos) : 0;
- }
-
- public short compatAdded() {
- int o = __offset(10);
- return o != 0 ? bb.getShort(o + bb_pos) : 0;
- }
-
- public short width() {
- int o = __offset(12);
- return o != 0 ? bb.getShort(o + bb_pos) : 0;
- }
-
- public short height() {
- int o = __offset(14);
- return o != 0 ? bb.getShort(o + bb_pos) : 0;
- }
-
- public int codepoints(int j) {
- int o = __offset(16);
- return o != 0 ? bb.getInt(__vector(o) + j * 4) : 0;
- }
-
- public int codepointsLength() {
- int o = __offset(16);
- return o != 0 ? __vector_len(o) : 0;
- }
-
- public ByteBuffer codepointsAsByteBuffer() {
- return __vector_as_bytebuffer(16, 4);
- }
-
- public static int createMetadataItem(FlatBufferBuilder builder,
- int id,
- boolean emojiStyle,
- short sdkAdded,
- short compatAdded,
- short width,
- short height,
- int codepointsOffset) {
- builder.startTable(7);
- MetadataItem.addCodepoints(builder, codepointsOffset);
- MetadataItem.addId(builder, id);
- MetadataItem.addHeight(builder, height);
- MetadataItem.addWidth(builder, width);
- MetadataItem.addCompatAdded(builder, compatAdded);
- MetadataItem.addSdkAdded(builder, sdkAdded);
- MetadataItem.addEmojiStyle(builder, emojiStyle);
- return MetadataItem.endMetadataItem(builder);
- }
-
- public static void startMetadataItem(FlatBufferBuilder builder) {
- builder.startTable(7);
- }
-
- public static void addId(FlatBufferBuilder builder, int id) {
- builder.addInt(0, id, 0);
- }
-
- public static void addEmojiStyle(FlatBufferBuilder builder, boolean emojiStyle) {
- builder.addBoolean(1, emojiStyle, false);
- }
-
- public static void addSdkAdded(FlatBufferBuilder builder, short sdkAdded) {
- builder.addShort(2, sdkAdded, 0);
- }
-
- public static void addCompatAdded(FlatBufferBuilder builder, short compatAdded) {
- builder.addShort(3, compatAdded, 0);
- }
-
- public static void addWidth(FlatBufferBuilder builder, short width) {
- builder.addShort(4, width, 0);
- }
-
- public static void addHeight(FlatBufferBuilder builder, short height) {
- builder.addShort(5, height, 0);
- }
-
- public static void addCodepoints(FlatBufferBuilder builder, int codepointsOffset) {
- builder.addOffset(6, codepointsOffset, 0);
- }
-
- public static int createCodepointsVector(FlatBufferBuilder builder, int[] data) {
- builder.startVector(4, data.length, 4);
- for (int i = data.length - 1; i >= 0; i--) builder.addInt(data[i]);
- return builder.endVector();
- }
-
- public static void startCodepointsVector(FlatBufferBuilder builder, int numElems) {
- builder.startVector(4, numElems, 4);
- }
-
- public static int endMetadataItem(FlatBufferBuilder builder) {
- int o = builder.endTable();
- return o;
- }
-}
-
diff --git a/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataList.java b/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
deleted file mode 100644
index 1851401..0000000
--- a/emoji-compat/src/java/androidx/text/emoji/flatbuffer/MetadataList.java
+++ /dev/null
@@ -1,124 +0,0 @@
-// CHECKSTYLE:OFF Generated code
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.text.emoji.flatbuffer;
-
-import com.google.flatbuffers.FlatBufferBuilder;
-import com.google.flatbuffers.Table;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * Automatically generated by the FlatBuffers compiler, do not modify.
- */
-@SuppressWarnings("unused")
-public final class MetadataList extends Table {
- public static MetadataList getRootAsMetadataList(ByteBuffer _bb) {
- return getRootAsMetadataList(_bb, new MetadataList());
- }
-
- public static MetadataList getRootAsMetadataList(ByteBuffer _bb, MetadataList obj) {
- _bb.order(ByteOrder.LITTLE_ENDIAN);
- return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb));
- }
-
- public void __init(int _i, ByteBuffer _bb) {
- bb_pos = _i;
- bb = _bb;
- }
-
- public MetadataList __assign(int _i, ByteBuffer _bb) {
- __init(_i, _bb);
- return this;
- }
-
- public int version() {
- int o = __offset(4);
- return o != 0 ? bb.getInt(o + bb_pos) : 0;
- }
-
- public MetadataItem list(int j) {
- return list(new MetadataItem(), j);
- }
-
- public MetadataItem list(MetadataItem obj, int j) {
- int o = __offset(6);
- return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null;
- }
-
- public int listLength() {
- int o = __offset(6);
- return o != 0 ? __vector_len(o) : 0;
- }
-
- public String sourceSha() {
- int o = __offset(8);
- return o != 0 ? __string(o + bb_pos) : null;
- }
-
- public ByteBuffer sourceShaAsByteBuffer() {
- return __vector_as_bytebuffer(8, 1);
- }
-
- public static int createMetadataList(FlatBufferBuilder builder,
- int version,
- int listOffset,
- int sourceShaOffset) {
- builder.startTable(3);
- MetadataList.addSourceSha(builder, sourceShaOffset);
- MetadataList.addList(builder, listOffset);
- MetadataList.addVersion(builder, version);
- return MetadataList.endMetadataList(builder);
- }
-
- public static void startMetadataList(FlatBufferBuilder builder) {
- builder.startTable(3);
- }
-
- public static void addVersion(FlatBufferBuilder builder, int version) {
- builder.addInt(0, version, 0);
- }
-
- public static void addList(FlatBufferBuilder builder, int listOffset) {
- builder.addOffset(1, listOffset, 0);
- }
-
- public static int createListVector(FlatBufferBuilder builder, int[] data) {
- builder.startVector(4, data.length, 4);
- for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]);
- return builder.endVector();
- }
-
- public static void startListVector(FlatBufferBuilder builder, int numElems) {
- builder.startVector(4, numElems, 4);
- }
-
- public static void addSourceSha(FlatBufferBuilder builder, int sourceShaOffset) {
- builder.addOffset(2, sourceShaOffset, 0);
- }
-
- public static int endMetadataList(FlatBufferBuilder builder) {
- int o = builder.endTable();
- return o;
- }
-
- public static void finishMetadataListBuffer(FlatBufferBuilder builder, int offset) {
- builder.finish(offset);
- }
-}
-
diff --git a/emoji-compat/supported-emojis/emojis.txt b/emoji-compat/supported-emojis/emojis.txt
index f39c2e2..a4818c0 100644
--- a/emoji-compat/supported-emojis/emojis.txt
+++ b/emoji-compat/supported-emojis/emojis.txt
@@ -670,6 +670,7 @@
1F3F0
1F3F3 FE0F
1F3F3 FE0F 200D 1F308
+1F3F3 FE0F 200D 26A7 FE0F
1F3F4
1F3F4 200D 2620 FE0F
1F3F4 E0067 E0062 E0065 E006E E0067 E007F
@@ -694,6 +695,7 @@
1F406
1F407
1F408
+1F408 200D 2B1B
1F408 FE0F
1F409
1F40A
@@ -750,6 +752,7 @@
1F439
1F43A
1F43B
+1F43B 200D 2744 FE0F
1F43C
1F43D
1F43E
@@ -882,6 +885,7 @@
1F468 1F3FB
1F468 1F3FB 200D 1F33E
1F468 1F3FB 200D 1F373
+1F468 1F3FB 200D 1F37C
1F468 1F3FB 200D 1F393
1F468 1F3FB 200D 1F3A4
1F468 1F3FB 200D 1F3A8
@@ -907,9 +911,20 @@
1F468 1F3FB 200D 2695 FE0F
1F468 1F3FB 200D 2696 FE0F
1F468 1F3FB 200D 2708 FE0F
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FB
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FC
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FD
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FE
+1F468 1F3FB 200D 2764 FE0F 200D 1F468 1F3FF
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F468 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
1F468 1F3FC
1F468 1F3FC 200D 1F33E
1F468 1F3FC 200D 1F373
+1F468 1F3FC 200D 1F37C
1F468 1F3FC 200D 1F393
1F468 1F3FC 200D 1F3A4
1F468 1F3FC 200D 1F3A8
@@ -935,9 +950,20 @@
1F468 1F3FC 200D 2695 FE0F
1F468 1F3FC 200D 2696 FE0F
1F468 1F3FC 200D 2708 FE0F
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FB
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FC
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FD
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FE
+1F468 1F3FC 200D 2764 FE0F 200D 1F468 1F3FF
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F468 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
1F468 1F3FD
1F468 1F3FD 200D 1F33E
1F468 1F3FD 200D 1F373
+1F468 1F3FD 200D 1F37C
1F468 1F3FD 200D 1F393
1F468 1F3FD 200D 1F3A4
1F468 1F3FD 200D 1F3A8
@@ -963,9 +989,20 @@
1F468 1F3FD 200D 2695 FE0F
1F468 1F3FD 200D 2696 FE0F
1F468 1F3FD 200D 2708 FE0F
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FB
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FC
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FD
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FE
+1F468 1F3FD 200D 2764 FE0F 200D 1F468 1F3FF
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F468 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
1F468 1F3FE
1F468 1F3FE 200D 1F33E
1F468 1F3FE 200D 1F373
+1F468 1F3FE 200D 1F37C
1F468 1F3FE 200D 1F393
1F468 1F3FE 200D 1F3A4
1F468 1F3FE 200D 1F3A8
@@ -991,9 +1028,20 @@
1F468 1F3FE 200D 2695 FE0F
1F468 1F3FE 200D 2696 FE0F
1F468 1F3FE 200D 2708 FE0F
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FB
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FC
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FD
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FE
+1F468 1F3FE 200D 2764 FE0F 200D 1F468 1F3FF
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F468 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
1F468 1F3FF
1F468 1F3FF 200D 1F33E
1F468 1F3FF 200D 1F373
+1F468 1F3FF 200D 1F37C
1F468 1F3FF 200D 1F393
1F468 1F3FF 200D 1F3A4
1F468 1F3FF 200D 1F3A8
@@ -1019,8 +1067,19 @@
1F468 1F3FF 200D 2695 FE0F
1F468 1F3FF 200D 2696 FE0F
1F468 1F3FF 200D 2708 FE0F
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FB
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FC
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FD
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FE
+1F468 1F3FF 200D 2764 FE0F 200D 1F468 1F3FF
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F468 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
1F468 200D 1F33E
1F468 200D 1F373
+1F468 200D 1F37C
1F468 200D 1F393
1F468 200D 1F3A4
1F468 200D 1F3A8
@@ -1063,6 +1122,7 @@
1F469 1F3FB
1F469 1F3FB 200D 1F33E
1F469 1F3FB 200D 1F373
+1F469 1F3FB 200D 1F37C
1F469 1F3FB 200D 1F393
1F469 1F3FB 200D 1F3A4
1F469 1F3FB 200D 1F3A8
@@ -1092,9 +1152,30 @@
1F469 1F3FB 200D 2695 FE0F
1F469 1F3FB 200D 2696 FE0F
1F469 1F3FB 200D 2708 FE0F
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FB
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FC
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FD
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FE
+1F469 1F3FB 200D 2764 FE0F 200D 1F468 1F3FF
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FB
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FC
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FD
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FE
+1F469 1F3FB 200D 2764 FE0F 200D 1F469 1F3FF
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
+1F469 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
1F469 1F3FC
1F469 1F3FC 200D 1F33E
1F469 1F3FC 200D 1F373
+1F469 1F3FC 200D 1F37C
1F469 1F3FC 200D 1F393
1F469 1F3FC 200D 1F3A4
1F469 1F3FC 200D 1F3A8
@@ -1124,9 +1205,30 @@
1F469 1F3FC 200D 2695 FE0F
1F469 1F3FC 200D 2696 FE0F
1F469 1F3FC 200D 2708 FE0F
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FB
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FC
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FD
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FE
+1F469 1F3FC 200D 2764 FE0F 200D 1F468 1F3FF
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FB
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FC
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FD
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FE
+1F469 1F3FC 200D 2764 FE0F 200D 1F469 1F3FF
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
+1F469 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
1F469 1F3FD
1F469 1F3FD 200D 1F33E
1F469 1F3FD 200D 1F373
+1F469 1F3FD 200D 1F37C
1F469 1F3FD 200D 1F393
1F469 1F3FD 200D 1F3A4
1F469 1F3FD 200D 1F3A8
@@ -1156,9 +1258,30 @@
1F469 1F3FD 200D 2695 FE0F
1F469 1F3FD 200D 2696 FE0F
1F469 1F3FD 200D 2708 FE0F
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FB
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FC
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FD
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FE
+1F469 1F3FD 200D 2764 FE0F 200D 1F468 1F3FF
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FB
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FC
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FD
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FE
+1F469 1F3FD 200D 2764 FE0F 200D 1F469 1F3FF
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
+1F469 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
1F469 1F3FE
1F469 1F3FE 200D 1F33E
1F469 1F3FE 200D 1F373
+1F469 1F3FE 200D 1F37C
1F469 1F3FE 200D 1F393
1F469 1F3FE 200D 1F3A4
1F469 1F3FE 200D 1F3A8
@@ -1188,9 +1311,30 @@
1F469 1F3FE 200D 2695 FE0F
1F469 1F3FE 200D 2696 FE0F
1F469 1F3FE 200D 2708 FE0F
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FB
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FC
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FD
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FE
+1F469 1F3FE 200D 2764 FE0F 200D 1F468 1F3FF
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FB
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FC
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FD
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FE
+1F469 1F3FE 200D 2764 FE0F 200D 1F469 1F3FF
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
+1F469 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
1F469 1F3FF
1F469 1F3FF 200D 1F33E
1F469 1F3FF 200D 1F373
+1F469 1F3FF 200D 1F37C
1F469 1F3FF 200D 1F393
1F469 1F3FF 200D 1F3A4
1F469 1F3FF 200D 1F3A8
@@ -1220,8 +1364,29 @@
1F469 1F3FF 200D 2695 FE0F
1F469 1F3FF 200D 2696 FE0F
1F469 1F3FF 200D 2708 FE0F
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FB
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FC
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FD
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FE
+1F469 1F3FF 200D 2764 FE0F 200D 1F468 1F3FF
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FB
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FC
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FD
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FE
+1F469 1F3FF 200D 2764 FE0F 200D 1F469 1F3FF
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FB
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FC
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FD
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FE
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F468 1F3FF
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FB
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FC
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FD
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FE
+1F469 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F469 1F3FF
1F469 200D 1F33E
1F469 200D 1F373
+1F469 200D 1F37C
1F469 200D 1F393
1F469 200D 1F3A4
1F469 200D 1F3A8
@@ -1300,10 +1465,22 @@
1F46F 200D 2642 FE0F
1F470
1F470 1F3FB
+1F470 1F3FB 200D 2640 FE0F
+1F470 1F3FB 200D 2642 FE0F
1F470 1F3FC
+1F470 1F3FC 200D 2640 FE0F
+1F470 1F3FC 200D 2642 FE0F
1F470 1F3FD
+1F470 1F3FD 200D 2640 FE0F
+1F470 1F3FD 200D 2642 FE0F
1F470 1F3FE
+1F470 1F3FE 200D 2640 FE0F
+1F470 1F3FE 200D 2642 FE0F
1F470 1F3FF
+1F470 1F3FF 200D 2640 FE0F
+1F470 1F3FF 200D 2642 FE0F
+1F470 200D 2640 FE0F
+1F470 200D 2642 FE0F
1F471
1F471 1F3FB
1F471 1F3FB 200D 2640 FE0F
@@ -1495,8 +1672,18 @@
1F48D
1F48E
1F48F
+1F48F 1F3FB
+1F48F 1F3FC
+1F48F 1F3FD
+1F48F 1F3FE
+1F48F 1F3FF
1F490
1F491
+1F491 1F3FB
+1F491 1F3FC
+1F491 1F3FD
+1F491 1F3FE
+1F491 1F3FF
1F492
1F493
1F494
@@ -1884,6 +2071,7 @@
1F62C
1F62D
1F62E
+1F62E 200D 1F4A8
1F62F
1F630
1F631
@@ -1891,7 +2079,9 @@
1F633
1F634
1F635
+1F635 200D 1F4AB
1F636
+1F636 200D 1F32B FE0F
1F637
1F638
1F639
@@ -2196,6 +2386,8 @@
1F6D1
1F6D2
1F6D5
+1F6D6
+1F6D7
1F6E0 FE0F
1F6E1 FE0F
1F6E2 FE0F
@@ -2214,6 +2406,8 @@
1F6F8
1F6F9
1F6FA
+1F6FB
+1F6FC
1F7E0
1F7E1
1F7E2
@@ -2226,6 +2420,12 @@
1F7E9
1F7EA
1F7EB
+1F90C
+1F90C 1F3FB
+1F90C 1F3FC
+1F90C 1F3FD
+1F90C 1F3FE
+1F90C 1F3FF
1F90D
1F90E
1F90F
@@ -2355,10 +2555,22 @@
1F934 1F3FF
1F935
1F935 1F3FB
+1F935 1F3FB 200D 2640 FE0F
+1F935 1F3FB 200D 2642 FE0F
1F935 1F3FC
+1F935 1F3FC 200D 2640 FE0F
+1F935 1F3FC 200D 2642 FE0F
1F935 1F3FD
+1F935 1F3FD 200D 2640 FE0F
+1F935 1F3FD 200D 2642 FE0F
1F935 1F3FE
+1F935 1F3FE 200D 2640 FE0F
+1F935 1F3FE 200D 2642 FE0F
1F935 1F3FF
+1F935 1F3FF 200D 2640 FE0F
+1F935 1F3FF 200D 2642 FE0F
+1F935 200D 2640 FE0F
+1F935 200D 2642 FE0F
1F936
1F936 1F3FB
1F936 1F3FC
@@ -2524,10 +2736,18 @@
1F96F
1F970
1F971
+1F972
1F973
1F974
1F975
1F976
+1F977
+1F977 1F3FB
+1F977 1F3FC
+1F977 1F3FD
+1F977 1F3FE
+1F977 1F3FF
+1F978
1F97A
1F97B
1F97C
@@ -2569,12 +2789,17 @@
1F9A0
1F9A1
1F9A2
+1F9A3
+1F9A4
1F9A5
1F9A6
1F9A7
1F9A8
1F9A9
1F9AA
+1F9AB
+1F9AC
+1F9AD
1F9AE
1F9AF
1F9B0
@@ -2653,6 +2878,7 @@
1F9C8
1F9C9
1F9CA
+1F9CB
1F9CD
1F9CD 1F3FB
1F9CD 1F3FB 200D 2640 FE0F
@@ -2712,6 +2938,8 @@
1F9D1 1F3FB
1F9D1 1F3FB 200D 1F33E
1F9D1 1F3FB 200D 1F373
+1F9D1 1F3FB 200D 1F37C
+1F9D1 1F3FB 200D 1F384
1F9D1 1F3FB 200D 1F393
1F9D1 1F3FB 200D 1F3A4
1F9D1 1F3FB 200D 1F3A8
@@ -2738,9 +2966,19 @@
1F9D1 1F3FB 200D 2695 FE0F
1F9D1 1F3FB 200D 2696 FE0F
1F9D1 1F3FB 200D 2708 FE0F
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FC
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FD
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FE
+1F9D1 1F3FB 200D 2764 FE0F 200D 1F9D1 1F3FF
1F9D1 1F3FC
1F9D1 1F3FC 200D 1F33E
1F9D1 1F3FC 200D 1F373
+1F9D1 1F3FC 200D 1F37C
+1F9D1 1F3FC 200D 1F384
1F9D1 1F3FC 200D 1F393
1F9D1 1F3FC 200D 1F3A4
1F9D1 1F3FC 200D 1F3A8
@@ -2767,9 +3005,19 @@
1F9D1 1F3FC 200D 2695 FE0F
1F9D1 1F3FC 200D 2696 FE0F
1F9D1 1F3FC 200D 2708 FE0F
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FB
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FD
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FE
+1F9D1 1F3FC 200D 2764 FE0F 200D 1F9D1 1F3FF
1F9D1 1F3FD
1F9D1 1F3FD 200D 1F33E
1F9D1 1F3FD 200D 1F373
+1F9D1 1F3FD 200D 1F37C
+1F9D1 1F3FD 200D 1F384
1F9D1 1F3FD 200D 1F393
1F9D1 1F3FD 200D 1F3A4
1F9D1 1F3FD 200D 1F3A8
@@ -2796,9 +3044,19 @@
1F9D1 1F3FD 200D 2695 FE0F
1F9D1 1F3FD 200D 2696 FE0F
1F9D1 1F3FD 200D 2708 FE0F
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FB
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FC
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FE
+1F9D1 1F3FD 200D 2764 FE0F 200D 1F9D1 1F3FF
1F9D1 1F3FE
1F9D1 1F3FE 200D 1F33E
1F9D1 1F3FE 200D 1F373
+1F9D1 1F3FE 200D 1F37C
+1F9D1 1F3FE 200D 1F384
1F9D1 1F3FE 200D 1F393
1F9D1 1F3FE 200D 1F3A4
1F9D1 1F3FE 200D 1F3A8
@@ -2825,9 +3083,19 @@
1F9D1 1F3FE 200D 2695 FE0F
1F9D1 1F3FE 200D 2696 FE0F
1F9D1 1F3FE 200D 2708 FE0F
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FF
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FB
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FC
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FD
+1F9D1 1F3FE 200D 2764 FE0F 200D 1F9D1 1F3FF
1F9D1 1F3FF
1F9D1 1F3FF 200D 1F33E
1F9D1 1F3FF 200D 1F373
+1F9D1 1F3FF 200D 1F37C
+1F9D1 1F3FF 200D 1F384
1F9D1 1F3FF 200D 1F393
1F9D1 1F3FF 200D 1F3A4
1F9D1 1F3FF 200D 1F3A8
@@ -2854,8 +3122,18 @@
1F9D1 1F3FF 200D 2695 FE0F
1F9D1 1F3FF 200D 2696 FE0F
1F9D1 1F3FF 200D 2708 FE0F
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FB
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FC
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FD
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F48B 200D 1F9D1 1F3FE
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FB
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FC
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FD
+1F9D1 1F3FF 200D 2764 FE0F 200D 1F9D1 1F3FE
1F9D1 200D 1F33E
1F9D1 200D 1F373
+1F9D1 200D 1F37C
+1F9D1 200D 1F384
1F9D1 200D 1F393
1F9D1 200D 1F3A4
1F9D1 200D 1F3A8
@@ -2892,10 +3170,22 @@
1F9D3 1F3FF
1F9D4
1F9D4 1F3FB
+1F9D4 1F3FB 200D 2640 FE0F
+1F9D4 1F3FB 200D 2642 FE0F
1F9D4 1F3FC
+1F9D4 1F3FC 200D 2640 FE0F
+1F9D4 1F3FC 200D 2642 FE0F
1F9D4 1F3FD
+1F9D4 1F3FD 200D 2640 FE0F
+1F9D4 1F3FD 200D 2642 FE0F
1F9D4 1F3FE
+1F9D4 1F3FE 200D 2640 FE0F
+1F9D4 1F3FE 200D 2642 FE0F
1F9D4 1F3FF
+1F9D4 1F3FF 200D 2640 FE0F
+1F9D4 1F3FF 200D 2642 FE0F
+1F9D4 200D 2640 FE0F
+1F9D4 200D 2642 FE0F
1F9D5
1F9D5 1F3FB
1F9D5 1F3FC
@@ -3088,18 +3378,59 @@
1FA71
1FA72
1FA73
+1FA74
1FA78
1FA79
1FA7A
1FA80
1FA81
1FA82
+1FA83
+1FA84
+1FA85
+1FA86
1FA90
1FA91
1FA92
1FA93
1FA94
1FA95
+1FA96
+1FA97
+1FA98
+1FA99
+1FA9A
+1FA9B
+1FA9C
+1FA9D
+1FA9E
+1FA9F
+1FAA0
+1FAA1
+1FAA2
+1FAA3
+1FAA4
+1FAA5
+1FAA6
+1FAA7
+1FAA8
+1FAB0
+1FAB1
+1FAB2
+1FAB3
+1FAB4
+1FAB5
+1FAB6
+1FAC0
+1FAC1
+1FAC2
+1FAD0
+1FAD1
+1FAD2
+1FAD3
+1FAD4
+1FAD5
+1FAD6
203C FE0F
2049 FE0F
2122 FE0F
@@ -3234,6 +3565,7 @@
26A0 FE0F
26A1
26A1 FE0F
+26A7 FE0F
26AA
26AA FE0F
26AB
@@ -3343,6 +3675,8 @@
2763 FE0F
2764
2764 FE0F
+2764 FE0F 200D 1F525
+2764 FE0F 200D 1FA79
2795
2796
2797
diff --git a/emoji/MODULE_LICENSE_OFL b/emoji/MODULE_LICENSE_OFL
deleted file mode 100644
index e69de29..0000000
--- a/emoji/MODULE_LICENSE_OFL
+++ /dev/null
diff --git a/emoji/NOTICE b/emoji/NOTICE
deleted file mode 100644
index d952d62..0000000
--- a/emoji/NOTICE
+++ /dev/null
@@ -1,92 +0,0 @@
-This Font Software is licensed under the SIL Open Font License,
-Version 1.1.
-
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font
-creation efforts of academic and linguistic communities, and to
-provide a free and open framework in which fonts may be shared and
-improved in partnership with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply to
-any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software
-components as distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to,
-deleting, or substituting -- in part or in whole -- any of the
-components of the Original Version, by changing formats or by porting
-the Font Software to a new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed,
-modify, redistribute, and sell modified and unmodified copies of the
-Font Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components, in
-Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the
-corresponding Copyright Holder. This restriction only applies to the
-primary font name as presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created using
-the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/emoji/NotoColorEmoji.ttf b/emoji/NotoColorEmoji.ttf
deleted file mode 100644
index 8fdd4d7..0000000
--- a/emoji/NotoColorEmoji.ttf
+++ /dev/null
Binary files differ
diff --git a/emoji/README.android b/emoji/README.android
deleted file mode 100644
index 62abd6c..0000000
--- a/emoji/README.android
+++ /dev/null
@@ -1,8 +0,0 @@
-URL: https://github.com/googlei18n/noto-emoji
-Version: 2.007
-License: OFL 1.1
-License File: NOTICE
-
-Description:
-Noto Color Emoji font.
-
diff --git a/fonts.mk b/fonts.mk
index 13bfbfb..3ee7169 100644
--- a/fonts.mk
+++ b/fonts.mk
@@ -25,20 +25,14 @@
NotoSansAdlam-VF.ttf \
NotoSansAhom-Regular.otf \
NotoSansAnatolianHieroglyphs-Regular.otf \
- NotoSansArmenian-Bold.otf \
- NotoSansArmenian-Medium.otf \
- NotoSansArmenian-Regular.otf \
+ NotoSansArmenian-VF.ttf \
NotoSansAvestan-Regular.ttf \
NotoSansBalinese-Regular.ttf \
NotoSansBamum-Regular.ttf \
NotoSansBassaVah-Regular.otf \
NotoSansBatak-Regular.ttf \
- NotoSansBengali-Bold.otf \
- NotoSansBengali-Medium.otf \
- NotoSansBengali-Regular.otf \
- NotoSansBengaliUI-Bold.otf \
- NotoSansBengaliUI-Medium.otf \
- NotoSansBengaliUI-Regular.otf \
+ NotoSansBengali-VF.ttf \
+ NotoSansBengaliUI-VF.ttf \
NotoSansBhaiksuki-Regular.otf \
NotoSansBrahmi-Regular.ttf \
NotoSansBuginese-Regular.ttf \
@@ -54,28 +48,22 @@
NotoSansCuneiform-Regular.ttf \
NotoSansCypriot-Regular.ttf \
NotoSansDeseret-Regular.ttf \
- NotoSansDevanagari-Bold.otf \
- NotoSansDevanagari-Medium.otf \
- NotoSansDevanagari-Regular.otf \
- NotoSansDevanagariUI-Bold.otf \
- NotoSansDevanagariUI-Medium.otf \
- NotoSansDevanagariUI-Regular.otf \
+ NotoSansDevanagari-VF.ttf \
+ NotoSansDevanagariUI-VF.ttf \
NotoSansEgyptianHieroglyphs-Regular.ttf \
NotoSansElbasan-Regular.otf \
- NotoSansEthiopic-Bold.ttf \
- NotoSansEthiopic-Regular.ttf \
+ NotoSansEthiopic-VF.ttf \
NotoSansGeorgian-VF.ttf \
NotoSansGlagolitic-Regular.ttf \
NotoSansGothic-Regular.ttf \
+ NotoSansGrantha-Regular.ttf \
NotoSansGujarati-Bold.ttf \
NotoSansGujarati-Regular.ttf \
NotoSansGujaratiUI-Bold.ttf \
NotoSansGujaratiUI-Regular.ttf \
NotoSansGunjalaGondi-Regular.otf \
- NotoSansGurmukhi-Bold.ttf \
- NotoSansGurmukhi-Regular.ttf \
- NotoSansGurmukhiUI-Bold.ttf \
- NotoSansGurmukhiUI-Regular.ttf \
+ NotoSansGurmukhi-VF.ttf \
+ NotoSansGurmukhiUI-VF.ttf \
NotoSansHanifiRohingya-Regular.otf \
NotoSansHanunoo-Regular.ttf \
NotoSansHatran-Regular.otf \
@@ -86,10 +74,8 @@
NotoSansInscriptionalParthian-Regular.ttf \
NotoSansJavanese-Regular.otf \
NotoSansKaithi-Regular.ttf \
- NotoSansKannada-Bold.ttf \
- NotoSansKannada-Regular.ttf \
- NotoSansKannadaUI-Bold.ttf \
- NotoSansKannadaUI-Regular.ttf \
+ NotoSansKannada-VF.ttf \
+ NotoSansKannadaUI-VF.ttf \
NotoSansKayahLi-Regular.ttf \
NotoSansKharoshthi-Regular.ttf \
NotoSansKhmer-VF.ttf \
@@ -107,19 +93,17 @@
NotoSansLisu-Regular.ttf \
NotoSansLycian-Regular.ttf \
NotoSansLydian-Regular.ttf \
- NotoSansMalayalam-Bold.otf \
- NotoSansMalayalam-Medium.otf \
- NotoSansMalayalam-Regular.otf \
- NotoSansMalayalamUI-Bold.otf \
- NotoSansMalayalamUI-Medium.otf \
- NotoSansMalayalamUI-Regular.otf \
+ NotoSansMalayalam-VF.ttf \
+ NotoSansMalayalamUI-VF.ttf \
NotoSansMandaic-Regular.ttf \
NotoSansManichaean-Regular.otf \
NotoSansMarchen-Regular.otf \
NotoSansMasaramGondi-Regular.otf \
+ NotoSansMedefaidrin-VF.ttf \
NotoSansMeeteiMayek-Regular.ttf \
NotoSansMeroitic-Regular.otf \
NotoSansMiao-Regular.otf \
+ NotoSansModi-Regular.ttf \
NotoSansMongolian-Regular.ttf \
NotoSansMro-Regular.otf \
NotoSansMultani-Regular.otf \
@@ -158,13 +142,10 @@
NotoSansSaurashtra-Regular.ttf \
NotoSansSharada-Regular.otf \
NotoSansShavian-Regular.ttf \
- NotoSansSinhala-Bold.otf \
- NotoSansSinhala-Medium.otf \
- NotoSansSinhala-Regular.otf \
- NotoSansSinhalaUI-Bold.otf \
- NotoSansSinhalaUI-Medium.otf \
- NotoSansSinhalaUI-Regular.otf \
+ NotoSansSinhala-VF.ttf \
+ NotoSansSinhalaUI-VF.ttf \
NotoSansSoraSompeng-Regular.otf \
+ NotoSansSoyombo-VF.ttf \
NotoSansSundanese-Regular.ttf \
NotoSansSylotiNagri-Regular.ttf \
NotoSansSymbols-Regular-Subsetted.ttf \
@@ -177,24 +158,17 @@
NotoSansTaiLe-Regular.ttf \
NotoSansTaiTham-Regular.ttf \
NotoSansTaiViet-Regular.ttf \
- NotoSansTamil-Bold.otf \
- NotoSansTamil-Medium.otf \
- NotoSansTamil-Regular.otf \
- NotoSansTamilUI-Bold.otf \
- NotoSansTamilUI-Medium.otf \
- NotoSansTamilUI-Regular.otf \
- NotoSansTelugu-Bold.ttf \
- NotoSansTelugu-Regular.ttf \
- NotoSansTeluguUI-Bold.ttf \
- NotoSansTeluguUI-Regular.ttf \
+ NotoSansTakri-VF.ttf \
+ NotoSansTamil-VF.ttf \
+ NotoSansTamilUI-VF.ttf \
+ NotoSansTelugu-VF.ttf \
+ NotoSansTeluguUI-VF.ttf \
NotoSansThaana-Bold.ttf \
NotoSansThaana-Regular.ttf \
NotoSansThai-Bold.ttf \
NotoSansThai-Regular.ttf \
NotoSansThaiUI-Bold.ttf \
NotoSansThaiUI-Regular.ttf \
- NotoSansTibetan-Bold.ttf \
- NotoSansTibetan-Regular.ttf \
NotoSansTifinagh-Regular.otf \
NotoSansUgaritic-Regular.ttf \
NotoSansVai-Regular.ttf \
@@ -205,37 +179,30 @@
NotoSerif-BoldItalic.ttf \
NotoSerif-Italic.ttf \
NotoSerif-Regular.ttf \
- NotoSerifArmenian-Bold.otf \
- NotoSerifArmenian-Regular.otf \
- NotoSerifBengali-Bold.ttf \
- NotoSerifBengali-Regular.ttf \
+ NotoSerifArmenian-VF.ttf \
+ NotoSerifBengali-VF.ttf \
NotoSerifCJK-Regular.ttc \
- NotoSerifDevanagari-Bold.ttf \
- NotoSerifDevanagari-Regular.ttf \
- NotoSerifEthiopic-Bold.otf \
- NotoSerifEthiopic-Regular.otf \
+ NotoSerifDevanagari-VF.ttf \
+ NotoSerifDogra-Regular.ttf \
+ NotoSerifEthiopic-VF.ttf \
NotoSerifGeorgian-VF.ttf \
- NotoSerifGujarati-Bold.ttf \
- NotoSerifGujarati-Regular.ttf \
- NotoSerifGurmukhi-Bold.otf \
- NotoSerifGurmukhi-Regular.otf \
+ NotoSerifGujarati-VF.ttf \
+ NotoSerifGurmukhi-VF.ttf \
NotoSerifHebrew-Bold.ttf \
NotoSerifHebrew-Regular.ttf \
- NotoSerifKannada-Bold.ttf \
- NotoSerifKannada-Regular.ttf \
+ NotoSerifKannada-VF.ttf \
NotoSerifKhmer-Bold.otf \
NotoSerifKhmer-Regular.otf \
NotoSerifLao-Bold.ttf \
NotoSerifLao-Regular.ttf \
- NotoSerifMalayalam-Bold.ttf \
- NotoSerifMalayalam-Regular.ttf \
+ NotoSerifMalayalam-VF.ttf \
NotoSerifMyanmar-Bold.otf \
NotoSerifMyanmar-Regular.otf \
- NotoSerifSinhala-Bold.otf \
- NotoSerifSinhala-Regular.otf \
- NotoSerifTamil-Bold.otf \
- NotoSerifTamil-Regular.otf \
- NotoSerifTelugu-Bold.ttf \
- NotoSerifTelugu-Regular.ttf \
+ NotoSerifNyiakengPuachueHmong-VF.ttf \
+ NotoSerifSinhala-VF.ttf \
+ NotoSerifTamil-VF.ttf \
+ NotoSerifTelugu-VF.ttf \
NotoSerifThai-Bold.ttf \
- NotoSerifThai-Regular.ttf
+ NotoSerifThai-Regular.ttf \
+ NotoSerifTibetan-VF.ttf \
+ NotoSerifYezidi-VF.ttf
diff --git a/other/Android.bp b/other/Android.bp
index fb0f0fb..b6ebb4e 100644
--- a/other/Android.bp
+++ b/other/Android.bp
@@ -67,6 +67,27 @@
src: "NotoSerif-BoldItalic.ttf",
}
+
+prebuilt_font {
+ name: "NotoNaskhArabic-Bold.ttf",
+ src: "NotoNaskhArabic-Bold.ttf",
+}
+
+prebuilt_font {
+ name: "NotoNaskhArabic-Regular.ttf",
+ src: "NotoNaskhArabic-Regular.ttf",
+}
+
+prebuilt_font {
+ name: "NotoNaskhArabicUI-Bold.ttf",
+ src: "NotoNaskhArabicUI-Bold.ttf",
+}
+
+prebuilt_font {
+ name: "NotoNaskhArabicUI-Regular.ttf",
+ src: "NotoNaskhArabicUI-Regular.ttf",
+}
+
prebuilt_font {
name: "NotoSansAdlam-VF.ttf",
src: "NotoSansAdlam-VF.ttf",
@@ -83,6 +104,11 @@
}
prebuilt_font {
+ name: "NotoSansArmenian-VF.ttf",
+ src: "NotoSansArmenian-VF.ttf",
+}
+
+prebuilt_font {
name: "NotoSansAvestan-Regular.ttf",
src: "NotoSansAvestan-Regular.ttf",
}
@@ -108,33 +134,13 @@
}
prebuilt_font {
- name: "NotoSansBengali-Bold.otf",
- src: "NotoSansBengali-Bold.otf",
+ name: "NotoSansBengali-VF.ttf",
+ src: "NotoSansBengali-VF.ttf",
}
prebuilt_font {
- name: "NotoSansBengali-Medium.otf",
- src: "NotoSansBengali-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansBengali-Regular.otf",
- src: "NotoSansBengali-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansBengaliUI-Bold.otf",
- src: "NotoSansBengaliUI-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSansBengaliUI-Medium.otf",
- src: "NotoSansBengaliUI-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansBengaliUI-Regular.otf",
- src: "NotoSansBengaliUI-Regular.otf",
+ name: "NotoSansBengaliUI-VF.ttf",
+ src: "NotoSansBengaliUI-VF.ttf",
}
prebuilt_font {
@@ -208,6 +214,16 @@
}
prebuilt_font {
+ name: "NotoSansDevanagari-VF.ttf",
+ src: "NotoSansDevanagari-VF.ttf",
+}
+
+prebuilt_font {
+ name: "NotoSansDevanagariUI-VF.ttf",
+ src: "NotoSansDevanagariUI-VF.ttf",
+}
+
+prebuilt_font {
name: "NotoSansEgyptianHieroglyphs-Regular.ttf",
src: "NotoSansEgyptianHieroglyphs-Regular.ttf",
}
@@ -218,13 +234,13 @@
}
prebuilt_font {
- name: "NotoSansEthiopic-Bold.ttf",
- src: "NotoSansEthiopic-Bold.ttf",
+ name: "NotoSansEthiopic-VF.ttf",
+ src: "NotoSansEthiopic-VF.ttf",
}
prebuilt_font {
- name: "NotoSansEthiopic-Regular.ttf",
- src: "NotoSansEthiopic-Regular.ttf",
+ name: "NotoSansGeorgian-VF.ttf",
+ src: "NotoSansGeorgian-VF.ttf",
}
prebuilt_font {
@@ -238,6 +254,11 @@
}
prebuilt_font {
+ name: "NotoSansGrantha-Regular.ttf",
+ src: "NotoSansGrantha-Regular.ttf",
+}
+
+prebuilt_font {
name: "NotoSansGujarati-Bold.ttf",
src: "NotoSansGujarati-Bold.ttf",
}
@@ -258,23 +279,23 @@
}
prebuilt_font {
- name: "NotoSansGurmukhi-Bold.ttf",
- src: "NotoSansGurmukhi-Bold.ttf",
+ name: "NotoSansGunjalaGondi-Regular.otf",
+ src: "NotoSansGunjalaGondi-Regular.otf",
}
prebuilt_font {
- name: "NotoSansGurmukhi-Regular.ttf",
- src: "NotoSansGurmukhi-Regular.ttf",
+ name: "NotoSansGurmukhi-VF.ttf",
+ src: "NotoSansGurmukhi-VF.ttf",
}
prebuilt_font {
- name: "NotoSansGurmukhiUI-Bold.ttf",
- src: "NotoSansGurmukhiUI-Bold.ttf",
+ name: "NotoSansGurmukhiUI-VF.ttf",
+ src: "NotoSansGurmukhiUI-VF.ttf",
}
prebuilt_font {
- name: "NotoSansGurmukhiUI-Regular.ttf",
- src: "NotoSansGurmukhiUI-Regular.ttf",
+ name: "NotoSansHanifiRohingya-Regular.otf",
+ src: "NotoSansHanifiRohingya-Regular.otf",
}
prebuilt_font {
@@ -288,6 +309,16 @@
}
prebuilt_font {
+ name: "NotoSansHebrew-Bold.ttf",
+ src: "NotoSansHebrew-Bold.ttf",
+}
+
+prebuilt_font {
+ name: "NotoSansHebrew-Regular.ttf",
+ src: "NotoSansHebrew-Regular.ttf",
+}
+
+prebuilt_font {
name: "NotoSansImperialAramaic-Regular.ttf",
src: "NotoSansImperialAramaic-Regular.ttf",
}
@@ -313,23 +344,13 @@
}
prebuilt_font {
- name: "NotoSansKannada-Bold.ttf",
- src: "NotoSansKannada-Bold.ttf",
+ name: "NotoSansKannada-VF.ttf",
+ src: "NotoSansKannada-VF.ttf",
}
prebuilt_font {
- name: "NotoSansKannada-Regular.ttf",
- src: "NotoSansKannada-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansKannadaUI-Bold.ttf",
- src: "NotoSansKannadaUI-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansKannadaUI-Regular.ttf",
- src: "NotoSansKannadaUI-Regular.ttf",
+ name: "NotoSansKannadaUI-VF.ttf",
+ src: "NotoSansKannadaUI-VF.ttf",
}
prebuilt_font {
@@ -353,6 +374,11 @@
}
prebuilt_font {
+ name: "NotoSansKhojki-Regular.otf",
+ src: "NotoSansKhojki-Regular.otf",
+}
+
+prebuilt_font {
name: "NotoSansLao-Bold.ttf",
src: "NotoSansLao-Bold.ttf",
}
@@ -408,33 +434,13 @@
}
prebuilt_font {
- name: "NotoSansMalayalam-Bold.otf",
- src: "NotoSansMalayalam-Bold.otf",
+ name: "NotoSansMalayalam-VF.ttf",
+ src: "NotoSansMalayalam-VF.ttf",
}
prebuilt_font {
- name: "NotoSansMalayalam-Medium.otf",
- src: "NotoSansMalayalam-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansMalayalam-Regular.otf",
- src: "NotoSansMalayalam-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansMalayalamUI-Bold.otf",
- src: "NotoSansMalayalamUI-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSansMalayalamUI-Medium.otf",
- src: "NotoSansMalayalamUI-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansMalayalamUI-Regular.otf",
- src: "NotoSansMalayalamUI-Regular.otf",
+ name: "NotoSansMalayalamUI-VF.ttf",
+ src: "NotoSansMalayalamUI-VF.ttf",
}
prebuilt_font {
@@ -453,6 +459,16 @@
}
prebuilt_font {
+ name: "NotoSansMasaramGondi-Regular.otf",
+ src: "NotoSansMasaramGondi-Regular.otf",
+}
+
+prebuilt_font {
+ name: "NotoSansMedefaidrin-VF.ttf",
+ src: "NotoSansMedefaidrin-VF.ttf",
+}
+
+prebuilt_font {
name: "NotoSansMeeteiMayek-Regular.ttf",
src: "NotoSansMeeteiMayek-Regular.ttf",
}
@@ -468,6 +484,11 @@
}
prebuilt_font {
+ name: "NotoSansModi-Regular.ttf",
+ src: "NotoSansModi-Regular.ttf",
+}
+
+prebuilt_font {
name: "NotoSansMongolian-Regular.ttf",
src: "NotoSansMongolian-Regular.ttf",
}
@@ -658,33 +679,13 @@
}
prebuilt_font {
- name: "NotoSansSinhala-Bold.otf",
- src: "NotoSansSinhala-Bold.otf",
+ name: "NotoSansSinhala-VF.ttf",
+ src: "NotoSansSinhala-VF.ttf",
}
prebuilt_font {
- name: "NotoSansSinhala-Regular.otf",
- src: "NotoSansSinhala-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansSinhala-Medium.otf",
- src: "NotoSansSinhala-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansSinhalaUI-Bold.otf",
- src: "NotoSansSinhalaUI-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSansSinhalaUI-Medium.otf",
- src: "NotoSansSinhalaUI-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansSinhalaUI-Regular.otf",
- src: "NotoSansSinhalaUI-Regular.otf",
+ name: "NotoSansSinhalaUI-VF.ttf",
+ src: "NotoSansSinhalaUI-VF.ttf",
}
prebuilt_font {
@@ -693,6 +694,11 @@
}
prebuilt_font {
+ name: "NotoSansSoyombo-VF.ttf",
+ src: "NotoSansSoyombo-VF.ttf",
+}
+
+prebuilt_font {
name: "NotoSansSundanese-Regular.ttf",
src: "NotoSansSundanese-Regular.ttf",
}
@@ -703,6 +709,16 @@
}
prebuilt_font {
+ name: "NotoSansSymbols-Regular-Subsetted.ttf",
+ src: "NotoSansSymbols-Regular-Subsetted.ttf",
+}
+
+prebuilt_font {
+ name: "NotoSansSymbols-Regular-Subsetted2.ttf",
+ src: "NotoSansSymbols-Regular-Subsetted2.ttf",
+}
+
+prebuilt_font {
name: "NotoSansSyriacEastern-Regular.ttf",
src: "NotoSansSyriacEastern-Regular.ttf",
}
@@ -743,53 +759,28 @@
}
prebuilt_font {
- name: "NotoSansTamil-Bold.otf",
- src: "NotoSansTamil-Bold.otf",
+ name: "NotoSansTakri-VF.ttf",
+ src: "NotoSansTakri-VF.ttf",
}
prebuilt_font {
- name: "NotoSansTamil-Medium.otf",
- src: "NotoSansTamil-Medium.otf",
+ name: "NotoSansTamil-VF.ttf",
+ src: "NotoSansTamil-VF.ttf",
}
prebuilt_font {
- name: "NotoSansTamil-Regular.otf",
- src: "NotoSansTamil-Regular.otf",
+ name: "NotoSansTamilUI-VF.ttf",
+ src: "NotoSansTamilUI-VF.ttf",
}
prebuilt_font {
- name: "NotoSansTamilUI-Bold.otf",
- src: "NotoSansTamilUI-Bold.otf",
+ name: "NotoSansTelugu-VF.ttf",
+ src: "NotoSansTelugu-VF.ttf",
}
prebuilt_font {
- name: "NotoSansTamilUI-Medium.otf",
- src: "NotoSansTamilUI-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansTamilUI-Regular.otf",
- src: "NotoSansTamilUI-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansTelugu-Bold.ttf",
- src: "NotoSansTelugu-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansTelugu-Regular.ttf",
- src: "NotoSansTelugu-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansTeluguUI-Bold.ttf",
- src: "NotoSansTeluguUI-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansTeluguUI-Regular.ttf",
- src: "NotoSansTeluguUI-Regular.ttf",
+ name: "NotoSansTeluguUI-VF.ttf",
+ src: "NotoSansTeluguUI-VF.ttf",
}
prebuilt_font {
@@ -803,13 +794,28 @@
}
prebuilt_font {
- name: "NotoSansTibetan-Bold.ttf",
- src: "NotoSansTibetan-Bold.ttf",
+ name: "NotoSansThai-Bold.ttf",
+ src: "NotoSansThai-Bold.ttf",
}
prebuilt_font {
- name: "NotoSansTibetan-Regular.ttf",
- src: "NotoSansTibetan-Regular.ttf",
+ name: "NotoSansThai-Regular.ttf",
+ src: "NotoSansThai-Regular.ttf",
+}
+
+prebuilt_font {
+ name: "NotoSansThaiUI-Bold.ttf",
+ src: "NotoSansThaiUI-Bold.ttf",
+}
+
+prebuilt_font {
+ name: "NotoSansThaiUI-Regular.ttf",
+ src: "NotoSansThaiUI-Regular.ttf",
+}
+
+prebuilt_font {
+ name: "NotoSansTifinagh-Regular.otf",
+ src: "NotoSansTifinagh-Regular.otf",
}
prebuilt_font {
@@ -823,151 +829,6 @@
}
prebuilt_font {
- name: "NotoSansYi-Regular.ttf",
- src: "NotoSansYi-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoNaskhArabic-Regular.ttf",
- src: "NotoNaskhArabic-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoNaskhArabic-Bold.ttf",
- src: "NotoNaskhArabic-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoNaskhArabicUI-Regular.ttf",
- src: "NotoNaskhArabicUI-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoNaskhArabicUI-Bold.ttf",
- src: "NotoNaskhArabicUI-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansArmenian-Regular.otf",
- src: "NotoSansArmenian-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansArmenian-Bold.otf",
- src: "NotoSansArmenian-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSansArmenian-Medium.otf",
- src: "NotoSansArmenian-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansDevanagari-Regular.otf",
- src: "NotoSansDevanagari-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansDevanagari-Bold.otf",
- src: "NotoSansDevanagari-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSansDevanagari-Medium.otf",
- src: "NotoSansDevanagari-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansDevanagariUI-Regular.otf",
- src: "NotoSansDevanagariUI-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansDevanagariUI-Bold.otf",
- src: "NotoSansDevanagariUI-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSansDevanagariUI-Medium.otf",
- src: "NotoSansDevanagariUI-Medium.otf",
-}
-
-prebuilt_font {
- name: "NotoSansGeorgian-VF.ttf",
- src: "NotoSansGeorgian-VF.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansHebrew-Regular.ttf",
- src: "NotoSansHebrew-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansHebrew-Bold.ttf",
- src: "NotoSansHebrew-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansSymbols-Regular-Subsetted.ttf",
- src: "NotoSansSymbols-Regular-Subsetted.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansSymbols-Regular-Subsetted2.ttf",
- src: "NotoSansSymbols-Regular-Subsetted2.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansThai-Regular.ttf",
- src: "NotoSansThai-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansThai-Bold.ttf",
- src: "NotoSansThai-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansThaiUI-Regular.ttf",
- src: "NotoSansThaiUI-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoSansThaiUI-Bold.ttf",
- src: "NotoSansThaiUI-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSerifArmenian-Bold.otf",
- src: "NotoSerifArmenian-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSansGunjalaGondi-Regular.otf",
- src: "NotoSansGunjalaGondi-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansHanifiRohingya-Regular.otf",
- src: "NotoSansHanifiRohingya-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansKhojki-Regular.otf",
- src: "NotoSansKhojki-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansMasaramGondi-Regular.otf",
- src: "NotoSansMasaramGondi-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSansTifinagh-Regular.otf",
- src: "NotoSansTifinagh-Regular.otf",
-}
-
-prebuilt_font {
name: "NotoSansWancho-Regular.otf",
src: "NotoSansWancho-Regular.otf",
}
@@ -978,38 +839,33 @@
}
prebuilt_font {
- name: "NotoSerifArmenian-Regular.otf",
- src: "NotoSerifArmenian-Regular.otf",
+ name: "NotoSansYi-Regular.ttf",
+ src: "NotoSansYi-Regular.ttf",
}
prebuilt_font {
- name: "NotoSerifBengali-Bold.ttf",
- src: "NotoSerifBengali-Bold.ttf",
+ name: "NotoSerifArmenian-VF.ttf",
+ src: "NotoSerifArmenian-VF.ttf",
}
prebuilt_font {
- name: "NotoSerifBengali-Regular.ttf",
- src: "NotoSerifBengali-Regular.ttf",
+ name: "NotoSerifBengali-VF.ttf",
+ src: "NotoSerifBengali-VF.ttf",
}
prebuilt_font {
- name: "NotoSerifDevanagari-Bold.ttf",
- src: "NotoSerifDevanagari-Bold.ttf",
+ name: "NotoSerifDevanagari-VF.ttf",
+ src: "NotoSerifDevanagari-VF.ttf",
}
prebuilt_font {
- name: "NotoSerifDevanagari-Regular.ttf",
- src: "NotoSerifDevanagari-Regular.ttf",
+ name: "NotoSerifDogra-Regular.ttf",
+ src: "NotoSerifDogra-Regular.ttf",
}
prebuilt_font {
- name: "NotoSerifEthiopic-Bold.otf",
- src: "NotoSerifEthiopic-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSerifEthiopic-Regular.otf",
- src: "NotoSerifEthiopic-Regular.otf",
+ name: "NotoSerifEthiopic-VF.ttf",
+ src: "NotoSerifEthiopic-VF.ttf",
}
prebuilt_font {
@@ -1018,23 +874,13 @@
}
prebuilt_font {
- name: "NotoSerifGujarati-Bold.ttf",
- src: "NotoSerifGujarati-Bold.ttf",
+ name: "NotoSerifGujarati-VF.ttf",
+ src: "NotoSerifGujarati-VF.ttf",
}
prebuilt_font {
- name: "NotoSerifGujarati-Regular.ttf",
- src: "NotoSerifGujarati-Regular.ttf",
-}
-
-prebuilt_font {
- name: "NotoSerifGurmukhi-Bold.otf",
- src: "NotoSerifGurmukhi-Bold.otf",
-}
-
-prebuilt_font {
- name: "NotoSerifGurmukhi-Regular.otf",
- src: "NotoSerifGurmukhi-Regular.otf",
+ name: "NotoSerifGurmukhi-VF.ttf",
+ src: "NotoSerifGurmukhi-VF.ttf",
}
prebuilt_font {
@@ -1048,13 +894,8 @@
}
prebuilt_font {
- name: "NotoSerifKannada-Bold.ttf",
- src: "NotoSerifKannada-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSerifKannada-Regular.ttf",
- src: "NotoSerifKannada-Regular.ttf",
+ name: "NotoSerifKannada-VF.ttf",
+ src: "NotoSerifKannada-VF.ttf",
}
prebuilt_font {
@@ -1078,13 +919,8 @@
}
prebuilt_font {
- name: "NotoSerifMalayalam-Bold.ttf",
- src: "NotoSerifMalayalam-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSerifMalayalam-Regular.ttf",
- src: "NotoSerifMalayalam-Regular.ttf",
+ name: "NotoSerifMalayalam-VF.ttf",
+ src: "NotoSerifMalayalam-VF.ttf",
}
prebuilt_font {
@@ -1098,33 +934,23 @@
}
prebuilt_font {
- name: "NotoSerifSinhala-Bold.otf",
- src: "NotoSerifSinhala-Bold.otf",
+ name: "NotoSerifNyiakengPuachueHmong-VF.ttf",
+ src: "NotoSerifNyiakengPuachueHmong-VF.ttf",
}
prebuilt_font {
- name: "NotoSerifSinhala-Regular.otf",
- src: "NotoSerifSinhala-Regular.otf",
+ name: "NotoSerifSinhala-VF.ttf",
+ src: "NotoSerifSinhala-VF.ttf",
}
prebuilt_font {
- name: "NotoSerifTamil-Bold.otf",
- src: "NotoSerifTamil-Bold.otf",
+ name: "NotoSerifTamil-VF.ttf",
+ src: "NotoSerifTamil-VF.ttf",
}
prebuilt_font {
- name: "NotoSerifTamil-Regular.otf",
- src: "NotoSerifTamil-Regular.otf",
-}
-
-prebuilt_font {
- name: "NotoSerifTelugu-Bold.ttf",
- src: "NotoSerifTelugu-Bold.ttf",
-}
-
-prebuilt_font {
- name: "NotoSerifTelugu-Regular.ttf",
- src: "NotoSerifTelugu-Regular.ttf",
+ name: "NotoSerifTelugu-VF.ttf",
+ src: "NotoSerifTelugu-VF.ttf",
}
prebuilt_font {
@@ -1136,3 +962,13 @@
name: "NotoSerifThai-Regular.ttf",
src: "NotoSerifThai-Regular.ttf",
}
+
+prebuilt_font {
+ name: "NotoSerifTibetan-VF.ttf",
+ src: "NotoSerifTibetan-VF.ttf",
+}
+
+prebuilt_font {
+ name: "NotoSerifYezidi-VF.ttf",
+ src: "NotoSerifYezidi-VF.ttf",
+}
diff --git a/other/NotoSansArmenian-Bold.otf b/other/NotoSansArmenian-Bold.otf
deleted file mode 100644
index 11700a9..0000000
--- a/other/NotoSansArmenian-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansArmenian-Medium.otf b/other/NotoSansArmenian-Medium.otf
deleted file mode 100644
index 17dbffb..0000000
--- a/other/NotoSansArmenian-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansArmenian-Regular.otf b/other/NotoSansArmenian-Regular.otf
deleted file mode 100644
index 60bb53f..0000000
--- a/other/NotoSansArmenian-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansArmenian-VF.ttf b/other/NotoSansArmenian-VF.ttf
new file mode 100644
index 0000000..769660a
--- /dev/null
+++ b/other/NotoSansArmenian-VF.ttf
Binary files differ
diff --git a/other/NotoSansBengali-Bold.otf b/other/NotoSansBengali-Bold.otf
deleted file mode 100644
index 03fa2ce..0000000
--- a/other/NotoSansBengali-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengali-Medium.otf b/other/NotoSansBengali-Medium.otf
deleted file mode 100644
index fa98001..0000000
--- a/other/NotoSansBengali-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengali-Regular.otf b/other/NotoSansBengali-Regular.otf
deleted file mode 100644
index be3fde0..0000000
--- a/other/NotoSansBengali-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengali-VF.ttf b/other/NotoSansBengali-VF.ttf
new file mode 100644
index 0000000..a034779
--- /dev/null
+++ b/other/NotoSansBengali-VF.ttf
Binary files differ
diff --git a/other/NotoSansBengaliUI-Bold.otf b/other/NotoSansBengaliUI-Bold.otf
deleted file mode 100644
index ea58c5a..0000000
--- a/other/NotoSansBengaliUI-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengaliUI-Medium.otf b/other/NotoSansBengaliUI-Medium.otf
deleted file mode 100644
index ba35bab..0000000
--- a/other/NotoSansBengaliUI-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengaliUI-Regular.otf b/other/NotoSansBengaliUI-Regular.otf
deleted file mode 100644
index 491fd93..0000000
--- a/other/NotoSansBengaliUI-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansBengaliUI-VF.ttf b/other/NotoSansBengaliUI-VF.ttf
new file mode 100644
index 0000000..a2bd0c3
--- /dev/null
+++ b/other/NotoSansBengaliUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansDevanagari-Bold.otf b/other/NotoSansDevanagari-Bold.otf
deleted file mode 100644
index 383f279..0000000
--- a/other/NotoSansDevanagari-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagari-Medium.otf b/other/NotoSansDevanagari-Medium.otf
deleted file mode 100644
index c454f83..0000000
--- a/other/NotoSansDevanagari-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagari-Regular.otf b/other/NotoSansDevanagari-Regular.otf
deleted file mode 100644
index 68b2c13..0000000
--- a/other/NotoSansDevanagari-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagari-VF.ttf b/other/NotoSansDevanagari-VF.ttf
new file mode 100644
index 0000000..f871a48
--- /dev/null
+++ b/other/NotoSansDevanagari-VF.ttf
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Bold.otf b/other/NotoSansDevanagariUI-Bold.otf
deleted file mode 100644
index 113ebb4..0000000
--- a/other/NotoSansDevanagariUI-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Medium.otf b/other/NotoSansDevanagariUI-Medium.otf
deleted file mode 100644
index 48658e8..0000000
--- a/other/NotoSansDevanagariUI-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagariUI-Regular.otf b/other/NotoSansDevanagariUI-Regular.otf
deleted file mode 100644
index eda9bef..0000000
--- a/other/NotoSansDevanagariUI-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansDevanagariUI-VF.ttf b/other/NotoSansDevanagariUI-VF.ttf
new file mode 100644
index 0000000..1c023cf
--- /dev/null
+++ b/other/NotoSansDevanagariUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansEthiopic-Bold.ttf b/other/NotoSansEthiopic-Bold.ttf
deleted file mode 100644
index 6465bce..0000000
--- a/other/NotoSansEthiopic-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansEthiopic-Regular.ttf b/other/NotoSansEthiopic-Regular.ttf
deleted file mode 100644
index 1c6194d..0000000
--- a/other/NotoSansEthiopic-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansEthiopic-VF.ttf b/other/NotoSansEthiopic-VF.ttf
new file mode 100644
index 0000000..e2f46a9
--- /dev/null
+++ b/other/NotoSansEthiopic-VF.ttf
Binary files differ
diff --git a/other/NotoSansGrantha-Regular.ttf b/other/NotoSansGrantha-Regular.ttf
new file mode 100644
index 0000000..3039d73
--- /dev/null
+++ b/other/NotoSansGrantha-Regular.ttf
Binary files differ
diff --git a/other/NotoSansGurmukhi-Bold.ttf b/other/NotoSansGurmukhi-Bold.ttf
deleted file mode 100644
index f9ae322..0000000
--- a/other/NotoSansGurmukhi-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGurmukhi-Regular.ttf b/other/NotoSansGurmukhi-Regular.ttf
deleted file mode 100644
index b86bbc6..0000000
--- a/other/NotoSansGurmukhi-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGurmukhi-VF.ttf b/other/NotoSansGurmukhi-VF.ttf
new file mode 100644
index 0000000..ba48e40
--- /dev/null
+++ b/other/NotoSansGurmukhi-VF.ttf
Binary files differ
diff --git a/other/NotoSansGurmukhiUI-Bold.ttf b/other/NotoSansGurmukhiUI-Bold.ttf
deleted file mode 100644
index 9064d6b..0000000
--- a/other/NotoSansGurmukhiUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGurmukhiUI-Regular.ttf b/other/NotoSansGurmukhiUI-Regular.ttf
deleted file mode 100644
index 6de832d..0000000
--- a/other/NotoSansGurmukhiUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansGurmukhiUI-VF.ttf b/other/NotoSansGurmukhiUI-VF.ttf
new file mode 100644
index 0000000..930289f
--- /dev/null
+++ b/other/NotoSansGurmukhiUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansKannada-Bold.ttf b/other/NotoSansKannada-Bold.ttf
deleted file mode 100644
index b3c1032..0000000
--- a/other/NotoSansKannada-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansKannada-Regular.ttf b/other/NotoSansKannada-Regular.ttf
deleted file mode 100644
index be9d761..0000000
--- a/other/NotoSansKannada-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansKannada-VF.ttf b/other/NotoSansKannada-VF.ttf
new file mode 100644
index 0000000..7447a89
--- /dev/null
+++ b/other/NotoSansKannada-VF.ttf
Binary files differ
diff --git a/other/NotoSansKannadaUI-Bold.ttf b/other/NotoSansKannadaUI-Bold.ttf
deleted file mode 100644
index 715f013..0000000
--- a/other/NotoSansKannadaUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansKannadaUI-Regular.ttf b/other/NotoSansKannadaUI-Regular.ttf
deleted file mode 100644
index bea2878..0000000
--- a/other/NotoSansKannadaUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansKannadaUI-VF.ttf b/other/NotoSansKannadaUI-VF.ttf
new file mode 100644
index 0000000..e7f6400
--- /dev/null
+++ b/other/NotoSansKannadaUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansMalayalam-Bold.otf b/other/NotoSansMalayalam-Bold.otf
deleted file mode 100644
index f748b3b..0000000
--- a/other/NotoSansMalayalam-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalam-Medium.otf b/other/NotoSansMalayalam-Medium.otf
deleted file mode 100644
index e8cd727..0000000
--- a/other/NotoSansMalayalam-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalam-Regular.otf b/other/NotoSansMalayalam-Regular.otf
deleted file mode 100644
index 1eaa950..0000000
--- a/other/NotoSansMalayalam-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalam-VF.ttf b/other/NotoSansMalayalam-VF.ttf
new file mode 100644
index 0000000..8221617
--- /dev/null
+++ b/other/NotoSansMalayalam-VF.ttf
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Bold.otf b/other/NotoSansMalayalamUI-Bold.otf
deleted file mode 100644
index 669bf1f..0000000
--- a/other/NotoSansMalayalamUI-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Medium.otf b/other/NotoSansMalayalamUI-Medium.otf
deleted file mode 100644
index 0468ce9..0000000
--- a/other/NotoSansMalayalamUI-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalamUI-Regular.otf b/other/NotoSansMalayalamUI-Regular.otf
deleted file mode 100644
index 3e22f89..0000000
--- a/other/NotoSansMalayalamUI-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansMalayalamUI-VF.ttf b/other/NotoSansMalayalamUI-VF.ttf
new file mode 100644
index 0000000..81abb01
--- /dev/null
+++ b/other/NotoSansMalayalamUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansMedefaidrin-VF.ttf b/other/NotoSansMedefaidrin-VF.ttf
new file mode 100644
index 0000000..7dda52d
--- /dev/null
+++ b/other/NotoSansMedefaidrin-VF.ttf
Binary files differ
diff --git a/other/NotoSansModi-Regular.ttf b/other/NotoSansModi-Regular.ttf
new file mode 100644
index 0000000..dd4e340
--- /dev/null
+++ b/other/NotoSansModi-Regular.ttf
Binary files differ
diff --git a/other/NotoSansSinhala-Bold.otf b/other/NotoSansSinhala-Bold.otf
deleted file mode 100644
index 1ccfb67..0000000
--- a/other/NotoSansSinhala-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhala-Medium.otf b/other/NotoSansSinhala-Medium.otf
deleted file mode 100644
index 7b62820..0000000
--- a/other/NotoSansSinhala-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhala-Regular.otf b/other/NotoSansSinhala-Regular.otf
deleted file mode 100644
index 027fd25..0000000
--- a/other/NotoSansSinhala-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhala-VF.ttf b/other/NotoSansSinhala-VF.ttf
new file mode 100644
index 0000000..cee6ff2
--- /dev/null
+++ b/other/NotoSansSinhala-VF.ttf
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Bold.otf b/other/NotoSansSinhalaUI-Bold.otf
deleted file mode 100644
index 8d22bf2..0000000
--- a/other/NotoSansSinhalaUI-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Medium.otf b/other/NotoSansSinhalaUI-Medium.otf
deleted file mode 100644
index 8b5e701..0000000
--- a/other/NotoSansSinhalaUI-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhalaUI-Regular.otf b/other/NotoSansSinhalaUI-Regular.otf
deleted file mode 100644
index 925536d..0000000
--- a/other/NotoSansSinhalaUI-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansSinhalaUI-VF.ttf b/other/NotoSansSinhalaUI-VF.ttf
new file mode 100644
index 0000000..681e121
--- /dev/null
+++ b/other/NotoSansSinhalaUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansSoyombo-VF.ttf b/other/NotoSansSoyombo-VF.ttf
new file mode 100644
index 0000000..cba7dc0
--- /dev/null
+++ b/other/NotoSansSoyombo-VF.ttf
Binary files differ
diff --git a/other/NotoSansSymbols-Regular-Subsetted.ttf b/other/NotoSansSymbols-Regular-Subsetted.ttf
index ebea59b..b98dccc 100644
--- a/other/NotoSansSymbols-Regular-Subsetted.ttf
+++ b/other/NotoSansSymbols-Regular-Subsetted.ttf
Binary files differ
diff --git a/other/NotoSansSymbols-Regular-Subsetted2.ttf b/other/NotoSansSymbols-Regular-Subsetted2.ttf
index cc3e29f..1b5d2a3 100644
--- a/other/NotoSansSymbols-Regular-Subsetted2.ttf
+++ b/other/NotoSansSymbols-Regular-Subsetted2.ttf
Binary files differ
diff --git a/other/NotoSansTakri-VF.ttf b/other/NotoSansTakri-VF.ttf
new file mode 100644
index 0000000..73f5fbe
--- /dev/null
+++ b/other/NotoSansTakri-VF.ttf
Binary files differ
diff --git a/other/NotoSansTamil-Bold.otf b/other/NotoSansTamil-Bold.otf
deleted file mode 100644
index c9611a3..0000000
--- a/other/NotoSansTamil-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamil-Medium.otf b/other/NotoSansTamil-Medium.otf
deleted file mode 100644
index 1e84a9b..0000000
--- a/other/NotoSansTamil-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamil-Regular.otf b/other/NotoSansTamil-Regular.otf
deleted file mode 100644
index b77a33c..0000000
--- a/other/NotoSansTamil-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamil-VF.ttf b/other/NotoSansTamil-VF.ttf
new file mode 100644
index 0000000..da4ee1c
--- /dev/null
+++ b/other/NotoSansTamil-VF.ttf
Binary files differ
diff --git a/other/NotoSansTamilUI-Bold.otf b/other/NotoSansTamilUI-Bold.otf
deleted file mode 100644
index 665d6fd..0000000
--- a/other/NotoSansTamilUI-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamilUI-Medium.otf b/other/NotoSansTamilUI-Medium.otf
deleted file mode 100644
index 64997d3..0000000
--- a/other/NotoSansTamilUI-Medium.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamilUI-Regular.otf b/other/NotoSansTamilUI-Regular.otf
deleted file mode 100644
index 7ee7d4f..0000000
--- a/other/NotoSansTamilUI-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTamilUI-VF.ttf b/other/NotoSansTamilUI-VF.ttf
new file mode 100644
index 0000000..e97c942
--- /dev/null
+++ b/other/NotoSansTamilUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansTelugu-Bold.ttf b/other/NotoSansTelugu-Bold.ttf
deleted file mode 100644
index cfb2588..0000000
--- a/other/NotoSansTelugu-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTelugu-Regular.ttf b/other/NotoSansTelugu-Regular.ttf
deleted file mode 100644
index 5134cbd..0000000
--- a/other/NotoSansTelugu-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTelugu-VF.ttf b/other/NotoSansTelugu-VF.ttf
new file mode 100644
index 0000000..591b80d
--- /dev/null
+++ b/other/NotoSansTelugu-VF.ttf
Binary files differ
diff --git a/other/NotoSansTeluguUI-Bold.ttf b/other/NotoSansTeluguUI-Bold.ttf
deleted file mode 100644
index 93e1886..0000000
--- a/other/NotoSansTeluguUI-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTeluguUI-Regular.ttf b/other/NotoSansTeluguUI-Regular.ttf
deleted file mode 100644
index aa5fea2..0000000
--- a/other/NotoSansTeluguUI-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTeluguUI-VF.ttf b/other/NotoSansTeluguUI-VF.ttf
new file mode 100644
index 0000000..1a47312
--- /dev/null
+++ b/other/NotoSansTeluguUI-VF.ttf
Binary files differ
diff --git a/other/NotoSansTibetan-Bold.ttf b/other/NotoSansTibetan-Bold.ttf
deleted file mode 100644
index 7a5144d..0000000
--- a/other/NotoSansTibetan-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansTibetan-Regular.ttf b/other/NotoSansTibetan-Regular.ttf
deleted file mode 100644
index 65f0e93..0000000
--- a/other/NotoSansTibetan-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSansWarangCiti-Regular.otf b/other/NotoSansWarangCiti-Regular.otf
index 5da59fe..2a3b78a 100644
--- a/other/NotoSansWarangCiti-Regular.otf
+++ b/other/NotoSansWarangCiti-Regular.otf
Binary files differ
diff --git a/other/NotoSerifArmenian-Bold.otf b/other/NotoSerifArmenian-Bold.otf
deleted file mode 100644
index 7df98e3..0000000
--- a/other/NotoSerifArmenian-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifArmenian-Regular.otf b/other/NotoSerifArmenian-Regular.otf
deleted file mode 100644
index 05df944..0000000
--- a/other/NotoSerifArmenian-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifArmenian-VF.ttf b/other/NotoSerifArmenian-VF.ttf
new file mode 100644
index 0000000..5525d52
--- /dev/null
+++ b/other/NotoSerifArmenian-VF.ttf
Binary files differ
diff --git a/other/NotoSerifBengali-Bold.ttf b/other/NotoSerifBengali-Bold.ttf
deleted file mode 100644
index 05bb9d5..0000000
--- a/other/NotoSerifBengali-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifBengali-Regular.ttf b/other/NotoSerifBengali-Regular.ttf
deleted file mode 100644
index 56670b7..0000000
--- a/other/NotoSerifBengali-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifBengali-VF.ttf b/other/NotoSerifBengali-VF.ttf
new file mode 100644
index 0000000..24c0774
--- /dev/null
+++ b/other/NotoSerifBengali-VF.ttf
Binary files differ
diff --git a/other/NotoSerifDevanagari-Bold.ttf b/other/NotoSerifDevanagari-Bold.ttf
deleted file mode 100644
index 2016dd9..0000000
--- a/other/NotoSerifDevanagari-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifDevanagari-Regular.ttf b/other/NotoSerifDevanagari-Regular.ttf
deleted file mode 100644
index ebb66f7..0000000
--- a/other/NotoSerifDevanagari-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifDevanagari-VF.ttf b/other/NotoSerifDevanagari-VF.ttf
new file mode 100644
index 0000000..bf013a7
--- /dev/null
+++ b/other/NotoSerifDevanagari-VF.ttf
Binary files differ
diff --git a/other/NotoSerifDogra-Regular.ttf b/other/NotoSerifDogra-Regular.ttf
new file mode 100644
index 0000000..74ab75c
--- /dev/null
+++ b/other/NotoSerifDogra-Regular.ttf
Binary files differ
diff --git a/other/NotoSerifEthiopic-Bold.otf b/other/NotoSerifEthiopic-Bold.otf
deleted file mode 100644
index 76758eb..0000000
--- a/other/NotoSerifEthiopic-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifEthiopic-Regular.otf b/other/NotoSerifEthiopic-Regular.otf
deleted file mode 100644
index 0d86e2e..0000000
--- a/other/NotoSerifEthiopic-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifEthiopic-VF.ttf b/other/NotoSerifEthiopic-VF.ttf
new file mode 100644
index 0000000..10b5e26
--- /dev/null
+++ b/other/NotoSerifEthiopic-VF.ttf
Binary files differ
diff --git a/other/NotoSerifGujarati-Bold.ttf b/other/NotoSerifGujarati-Bold.ttf
deleted file mode 100644
index 4981a55..0000000
--- a/other/NotoSerifGujarati-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGujarati-Regular.ttf b/other/NotoSerifGujarati-Regular.ttf
deleted file mode 100644
index ccec6f7..0000000
--- a/other/NotoSerifGujarati-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGujarati-VF.ttf b/other/NotoSerifGujarati-VF.ttf
new file mode 100644
index 0000000..5861501
--- /dev/null
+++ b/other/NotoSerifGujarati-VF.ttf
Binary files differ
diff --git a/other/NotoSerifGurmukhi-Bold.otf b/other/NotoSerifGurmukhi-Bold.otf
deleted file mode 100644
index d362ea2..0000000
--- a/other/NotoSerifGurmukhi-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGurmukhi-Regular.otf b/other/NotoSerifGurmukhi-Regular.otf
deleted file mode 100644
index f2595e7..0000000
--- a/other/NotoSerifGurmukhi-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifGurmukhi-VF.ttf b/other/NotoSerifGurmukhi-VF.ttf
new file mode 100644
index 0000000..6c104cc
--- /dev/null
+++ b/other/NotoSerifGurmukhi-VF.ttf
Binary files differ
diff --git a/other/NotoSerifKannada-Bold.ttf b/other/NotoSerifKannada-Bold.ttf
deleted file mode 100644
index c71ca76..0000000
--- a/other/NotoSerifKannada-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifKannada-Regular.ttf b/other/NotoSerifKannada-Regular.ttf
deleted file mode 100644
index 6f43122..0000000
--- a/other/NotoSerifKannada-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifKannada-VF.ttf b/other/NotoSerifKannada-VF.ttf
new file mode 100644
index 0000000..c523ad7
--- /dev/null
+++ b/other/NotoSerifKannada-VF.ttf
Binary files differ
diff --git a/other/NotoSerifMalayalam-Bold.ttf b/other/NotoSerifMalayalam-Bold.ttf
deleted file mode 100644
index dff759a..0000000
--- a/other/NotoSerifMalayalam-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifMalayalam-Regular.ttf b/other/NotoSerifMalayalam-Regular.ttf
deleted file mode 100644
index cd2e66f..0000000
--- a/other/NotoSerifMalayalam-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifMalayalam-VF.ttf b/other/NotoSerifMalayalam-VF.ttf
new file mode 100644
index 0000000..e270f5d
--- /dev/null
+++ b/other/NotoSerifMalayalam-VF.ttf
Binary files differ
diff --git a/other/NotoSerifNyiakengPuachueHmong-VF.ttf b/other/NotoSerifNyiakengPuachueHmong-VF.ttf
new file mode 100644
index 0000000..e87a202
--- /dev/null
+++ b/other/NotoSerifNyiakengPuachueHmong-VF.ttf
Binary files differ
diff --git a/other/NotoSerifSinhala-Bold.otf b/other/NotoSerifSinhala-Bold.otf
deleted file mode 100644
index ec8a3f9..0000000
--- a/other/NotoSerifSinhala-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifSinhala-Regular.otf b/other/NotoSerifSinhala-Regular.otf
deleted file mode 100644
index 876c153..0000000
--- a/other/NotoSerifSinhala-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifSinhala-VF.ttf b/other/NotoSerifSinhala-VF.ttf
new file mode 100644
index 0000000..9109b83
--- /dev/null
+++ b/other/NotoSerifSinhala-VF.ttf
Binary files differ
diff --git a/other/NotoSerifTamil-Bold.otf b/other/NotoSerifTamil-Bold.otf
deleted file mode 100644
index d0d57cd..0000000
--- a/other/NotoSerifTamil-Bold.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTamil-Regular.otf b/other/NotoSerifTamil-Regular.otf
deleted file mode 100644
index 33b2b13..0000000
--- a/other/NotoSerifTamil-Regular.otf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTamil-VF.ttf b/other/NotoSerifTamil-VF.ttf
new file mode 100644
index 0000000..91acc2b
--- /dev/null
+++ b/other/NotoSerifTamil-VF.ttf
Binary files differ
diff --git a/other/NotoSerifTelugu-Bold.ttf b/other/NotoSerifTelugu-Bold.ttf
deleted file mode 100644
index a4e7e56..0000000
--- a/other/NotoSerifTelugu-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTelugu-Regular.ttf b/other/NotoSerifTelugu-Regular.ttf
deleted file mode 100644
index 2234780..0000000
--- a/other/NotoSerifTelugu-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/other/NotoSerifTelugu-VF.ttf b/other/NotoSerifTelugu-VF.ttf
new file mode 100644
index 0000000..16a187b
--- /dev/null
+++ b/other/NotoSerifTelugu-VF.ttf
Binary files differ
diff --git a/other/NotoSerifTibetan-VF.ttf b/other/NotoSerifTibetan-VF.ttf
new file mode 100644
index 0000000..6090383
--- /dev/null
+++ b/other/NotoSerifTibetan-VF.ttf
Binary files differ
diff --git a/other/NotoSerifYezidi-VF.ttf b/other/NotoSerifYezidi-VF.ttf
new file mode 100644
index 0000000..fabcbbb
--- /dev/null
+++ b/other/NotoSerifYezidi-VF.ttf
Binary files differ
diff --git a/other/subset_noto_sans_symbols.py b/other/subset_noto_sans_symbols.py
index 1e0b395..6cff884 100755
--- a/other/subset_noto_sans_symbols.py
+++ b/other/subset_noto_sans_symbols.py
@@ -19,8 +19,13 @@
__author__ = 'roozbeh@google.com (Roozbeh Pournader)'
+import contextlib
import os
import sys
+import tempfile
+
+from fontTools import ttLib
+from pathlib import PurePosixPath
from nototools import subset
from nototools import unicode_data
@@ -137,6 +142,15 @@
android_emoji.add(int(codepoint, 16))
return android_emoji
+def rename_postscript_name(source_font, target_font, new_name):
+ """Rename the post script name to given one"""
+ with contextlib.closing(ttLib.TTFont(source_font)) as ttf:
+ nameTable = ttf['name']
+ for name in nameTable.names:
+ if (name.nameID == 6 and name.platformID == 3 and name.platEncID == 1
+ and name.langID == 0x0409):
+ name.string = new_name
+ ttf.save(target_font)
def main(argv):
"""Subset the Noto Symbols font.
@@ -168,18 +182,27 @@
source_file_name = argv[1]
target_file_name = argv[2]
+
+ tmp = tempfile.NamedTemporaryFile()
subset.subset_font(
source_file_name,
- target_file_name,
+ tmp.name,
include=target_coverage)
+ # Use given file name as the PostScript name.
+ postScriptName = PurePosixPath(target_file_name).stem
+ rename_postscript_name(tmp.name, target_file_name, postScriptName)
+
second_subset_coverage = DEFAULT_EMOJI | android_emoji
second_subset_file_name = argv[3]
subset.subset_font(
source_file_name,
- second_subset_file_name,
+ tmp.name,
include=second_subset_coverage)
+ # Use given file name as the PostScript name.
+ postScriptName = PurePosixPath(second_subset_file_name).stem
+ rename_postscript_name(tmp.name, second_subset_file_name, postScriptName)
if __name__ == '__main__':
main(sys.argv)