Commit 52dc1d79 authored by Mathias Bynens's avatar Mathias Bynens Committed by Commit Bot

[regexp] Update RegExp property sequence data to Unicode 12

Unicode v12 was released today:
https://unicode.org/versions/Unicode12.0.0/

This patch updates the following sequence property escapes per
Unicode 12:

- Emoji_Flag_Sequence (no changes)
- Emoji_Keycap_Sequence (no changes)
- Emoji_Tag_Sequence (no changes)
- Emoji_ZWJ_Sequence

Note that Emoji_Modifier_Sequence is still using Unicode 11 data. This
will be fixed automatically once a version of ICU with Unicode 12 support
rolls into V8, at which point I'll update the relevant tests.

Bug: v8:7467
Change-Id: Iba575a471382ba7b029da06c2868c368ff43c649
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1503764Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60052}
parent 4edcc860
......@@ -18,22 +18,22 @@ package.json
{
"private": true,
"dependencies": {
"unicode-11.0.0": "^0.7.8"
"unicode-12.0.0": "^0.7.9"
}
}
```
generate-unicode-sequence-property-data.js
```
const toHex = (symbol) => {
return '0x' + symbol.codePointAt(0).toString(16)
.toUpperCase().padStart(6, '0');
};
```
const generateData = (property) => {
const sequences =
require(`unicode-11.0.0/Sequence_Property/${ property }/index.js`);
require(`unicode-12.0.0/Sequence_Property/${ property }/index.js`);
const id = property.replace(/_/g, '') + 's';
const buffer = [];
for (const sequence of sequences) {
......@@ -43,7 +43,7 @@ const generateData = (property) => {
}
const output =
`const uc32 UnicodePropertySequences::k${ id }[] = {\n` +
`${ buffer.join('\n') }\n0 // null-terminating the list\n};\n`;
`${ buffer.join('\n') }\n 0 // null-terminating the list\n};\n`;
return output;
};
......@@ -59,6 +59,7 @@ for (const property of properties) {
```
*/
// clang-format off
const uc32 UnicodePropertySequences::kEmojiFlagSequences[] = {
0x01F1E6, 0x01F1E8, 0,
0x01F1FF, 0x01F1FC, 0,
......@@ -329,94 +330,8 @@ const uc32 UnicodePropertySequences::kEmojiTagSequences[] = {
};
const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x0026F9, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3F3, 0x00FE0F, 0x00200D, 0x01F308, 0,
0x01F3F4, 0x00200D, 0x002620, 0x00FE0F, 0,
0x01F441, 0x00FE0F, 0x00200D, 0x01F5E8, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002708, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F468, 0,
0x01F468, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F468, 0,
0x01F468, 0x00200D, 0x01F33E, 0,
0x01F468, 0x00200D, 0x01F373, 0,
0x01F468, 0x00200D, 0x01F393, 0,
0x01F468, 0x00200D, 0x01F3A4, 0,
0x01F468, 0x00200D, 0x01F3A8, 0,
0x01F468, 0x00200D, 0x01F3EB, 0,
0x01F468, 0x00200D, 0x01F3ED, 0,
0x01F441, 0x00FE0F, 0x00200D, 0x01F5E8, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x01F466, 0,
0x01F468, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F468, 0x00200D, 0x01F467, 0,
......@@ -432,16 +347,97 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0,
0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F468, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F469, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F469, 0,
0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FF, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FB, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FC, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F468, 0x01F3FE, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FB, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FC, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F469, 0x01F3FE, 0,
0x01F9D1, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0,
0x01F9D1, 0x01F3FB, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FC, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FD, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FD, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FD, 0,
0x01F9D1, 0x01F3FE, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FE, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FB, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FC, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FD, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FE, 0,
0x01F9D1, 0x01F3FF, 0x00200D, 0x01F91D, 0x00200D, 0x01F9D1, 0x01F3FF, 0,
0x01F468, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002708, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x01F33E, 0,
0x01F468, 0x00200D, 0x01F373, 0,
0x01F468, 0x00200D, 0x01F393, 0,
0x01F468, 0x00200D, 0x01F3A4, 0,
0x01F468, 0x00200D, 0x01F3A8, 0,
0x01F468, 0x00200D, 0x01F3EB, 0,
0x01F468, 0x00200D, 0x01F3ED, 0,
0x01F468, 0x00200D, 0x01F4BB, 0,
0x01F468, 0x00200D, 0x01F4BC, 0,
0x01F468, 0x00200D, 0x01F527, 0,
0x01F468, 0x00200D, 0x01F52C, 0,
0x01F468, 0x00200D, 0x01F680, 0,
0x01F468, 0x00200D, 0x01F692, 0,
0x01F468, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -458,10 +454,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FB, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -478,10 +473,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FC, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -498,10 +492,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FD, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -518,10 +511,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FE, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9BD, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -538,19 +530,12 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F468, 0x01F3FF, 0x00200D, 0x01F52C, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F680, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F692, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9AF, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9BC, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x00200D, 0x002708, 0x00FE0F, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F469, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F468, 0,
0x01F469, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F469, 0,
0x01F469, 0x00200D, 0x01F33E, 0,
0x01F469, 0x00200D, 0x01F373, 0,
0x01F469, 0x00200D, 0x01F393, 0,
......@@ -558,26 +543,15 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x00200D, 0x01F3A8, 0,
0x01F469, 0x00200D, 0x01F3EB, 0,
0x01F469, 0x00200D, 0x01F3ED, 0,
0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F466, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F466, 0,
0x01F469, 0x00200D, 0x01F469, 0x00200D, 0x01F467, 0x00200D, 0x01F467, 0,
0x01F469, 0x00200D, 0x01F4BB, 0,
0x01F469, 0x00200D, 0x01F4BC, 0,
0x01F469, 0x00200D, 0x01F527, 0,
0x01F469, 0x00200D, 0x01F52C, 0,
0x01F469, 0x00200D, 0x01F680, 0,
0x01F469, 0x00200D, 0x01F692, 0,
0x01F469, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -594,10 +568,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FB, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -614,10 +587,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FC, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -634,10 +606,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FD, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -654,10 +625,9 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FE, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9BD, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x002695, 0x00FE0F, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x002696, 0x00FE0F, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x002708, 0x00FE0F, 0,
......@@ -674,10 +644,81 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F469, 0x01F3FF, 0x00200D, 0x01F52C, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F680, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F692, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9AF, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9BC, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9BD, 0,
0x0026F9, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x0026F9, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x0026F9, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C3, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3C4, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CA, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CB, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F3CC, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F46E, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F46E, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F46E, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
......@@ -742,7 +783,8 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F481, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F482, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F482, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F482, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x002764, 0x00FE0F, 0x00200D, 0x01F48B, 0x00200D,
0x01F468, 0,
0x01F482, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F482, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F482, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
......@@ -776,8 +818,6 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F487, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F487, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F487, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
......@@ -788,6 +828,8 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F575, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F575, 0x00FE0F, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F645, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F645, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F645, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
......@@ -1006,6 +1048,42 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F9B9, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9B9, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9B9, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CD, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CD, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CE, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CE, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FB, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FC, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FC, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FD, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FD, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FE, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9CF, 0x01F3FF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9CF, 0x01F3FF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9D6, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9D6, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9D6, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
......@@ -1106,8 +1184,61 @@ const uc32 UnicodePropertySequences::kEmojiZWJSequences[] = {
0x01F9DE, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F9DF, 0x00200D, 0x002640, 0x00FE0F, 0,
0x01F9DF, 0x00200D, 0x002642, 0x00FE0F, 0,
0x01F468, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B0, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B1, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B2, 0,
0x01F468, 0x01F3FF, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FB, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FC, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FD, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FE, 0x00200D, 0x01F9B3, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B0, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B1, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B2, 0,
0x01F469, 0x01F3FF, 0x00200D, 0x01F9B3, 0,
0x01F3F3, 0x00FE0F, 0x00200D, 0x01F308, 0,
0x01F3F4, 0x00200D, 0x002620, 0x00FE0F, 0,
0x01F415, 0x00200D, 0x01F9BA, 0,
0x01F482, 0x01F3FB, 0x00200D, 0x002640, 0x00FE0F, 0,
0 // null-terminating the list
};
// clang-format on
} // namespace internal
} // namespace v8
......
......@@ -15,7 +15,6 @@ namespace internal {
class UnicodePropertySequences : public AllStatic {
public:
static const uc32 kEmojiFlagSequences[];
static const uc32 kEmojiTagSequences[];
static const uc32 kEmojiZWJSequences[];
};
......
// Copyright 2018 the V8 project authors. All rights reserved.
// Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_Flag_Sequence}/u;
assertTrue(re.test('\u{1F1E6}\u{1F1E8}'));
......
// Copyright 2018 the V8 project authors. All rights reserved.
// Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_Keycap_Sequence}/u;
assertTrue(re.test('#\uFE0F\u20E3'));
......
......@@ -4,6 +4,9 @@
// Flags: --harmony-regexp-sequence
// TODO(mathias): Update these tests once a Unicode 12-friendly ICU
// version rolls into V8.
const re = /\p{Emoji_Modifier_Sequence}/u;
assertTrue(re.test('\u261D\u{1F3FB}'));
......
// Copyright 2018 the V8 project authors. All rights reserved.
// Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_Tag_Sequence}/u;
assertTrue(re.test('\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}'));
......
// Copyright 2018 the V8 project authors. All rights reserved.
// Copyright 2019 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-regexp-sequence
// These tests have been generated by the script at
// https://gist.github.com/mathiasbynens/3b42c99a227521dabfe68d9e63f00f42.
// Do not modify this file directly!
const re = /\p{Emoji_ZWJ_Sequence}/u;
assertTrue(re.test('\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}'));
......@@ -23,6 +27,16 @@ assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}'));
assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}'));
assertTrue(re.test('\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}'));
......@@ -37,6 +51,52 @@ assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}'));
assertTrue(re.test('\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}'));
assertTrue(re.test('\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}'));
assertTrue(re.test('\u{1F468}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2708\uFE0F'));
......@@ -53,10 +113,9 @@ assertTrue(re.test('\u{1F468}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u2708\uFE0F'));
......@@ -73,10 +132,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u2708\uFE0F'));
......@@ -93,10 +151,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u2708\uFE0F'));
......@@ -113,10 +170,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u2708\uFE0F'));
......@@ -133,10 +189,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u2708\uFE0F'));
......@@ -153,10 +208,9 @@ assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u200D\u2708\uFE0F'));
......@@ -173,10 +227,9 @@ assertTrue(re.test('\u{1F469}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u2708\uFE0F'));
......@@ -193,10 +246,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u2708\uFE0F'));
......@@ -213,10 +265,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u2708\uFE0F'));
......@@ -233,10 +284,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u2708\uFE0F'));
......@@ -253,10 +303,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9BD}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2695\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2696\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u2708\uFE0F'));
......@@ -273,146 +322,9 @@ assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F527}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F52C}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F680}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F692}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F46E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9AF}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9BC}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9BD}'));
assertTrue(re.test('\u26F9\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u26F9\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u26F9\u{1F3FC}\u200D\u2640\uFE0F'));
......@@ -485,166 +397,56 @@ assertTrue(re.test('\u{1F3CC}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F3CC}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F3CC}\uFE0F\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F3CC}\uFE0F\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F46F}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F46F}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F471}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F473}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F477}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F481}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F481}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FB}\u200D\u2640\uFE0F'));
......@@ -657,6 +459,54 @@ assertTrue(re.test('\u{1F481}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F481}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F482}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F486}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F487}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F575}\uFE0F\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F645}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F645}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F645}\u{1F3FB}\u200D\u2640\uFE0F'));
......@@ -729,6 +579,54 @@ assertTrue(re.test('\u{1F64E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F64E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F64E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F64E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6A3}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B4}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B5}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F926}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F926}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F926}\u{1F3FB}\u200D\u2640\uFE0F'));
......@@ -753,6 +651,56 @@ assertTrue(re.test('\u{1F937}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F937}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F937}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F937}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F938}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F939}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93C}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93D}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F93E}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9B8}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9B8}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9B8}\u{1F3FB}\u200D\u2640\uFE0F'));
......@@ -777,6 +725,191 @@ assertTrue(re.test('\u{1F9B9}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9B9}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9B9}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9B9}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CD}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9CF}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D6}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D7}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D8}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9D9}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DA}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DB}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FB}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FC}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FD}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DD}\u{1F3FF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DE}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F9DF}\u200D\u2642\uFE0F'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F468}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FB}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FC}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FD}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FE}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B0}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B1}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B2}'));
assertTrue(re.test('\u{1F469}\u{1F3FF}\u200D\u{1F9B3}'));
assertTrue(re.test('\u{1F3F3}\uFE0F\u200D\u{1F308}'));
assertTrue(re.test('\u{1F3F4}\u200D\u2620\uFE0F'));
assertTrue(re.test('\u{1F9DC}\u{1F3FE}\u200D\u2640\uFE0F'));
assertTrue(re.test('\u{1F415}\u200D\u{1F9BA}'));
assertTrue(re.test('\u{1F482}\u{1F3FB}\u200D\u2640\uFE0F'));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment